0% encontró este documento útil (0 votos)
274 vistas16 páginas

Primera Entrega

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1/ 16

PRIMERA ENTREGA

SISTEMAS DISTRIBUIDOS

PROFESOR
ROJAS CORDERO ALEXIS

INTEGRANTES
ACOSTA HERNÁNDEZ ALEJANDRA – 0812040233
BERNAL ORTIZ JUAN CARLOS – 1621024722
BOHORQUEZ FORERO INGRID KATHERIN – 1711025620
ZAPATA JIMENEZ WILMAR DANIEL – 1721021035

INSTITUCIÓN UNIVERSITARIA POLITECNICO GRANCOLOMBIANO


FACULTAD DE INGENIERÍA, DISEÑO E INNOVACIÓN
ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN Y TELECOMUNICACIONES
SEPTIEMBRE
2020
CONTENIDO

PLANTEAMIENTO DEL PROBLEMA.....................................................................................................3


MARCO TEÓRICO................................................................................................................................4
Definición de Socket.......................................................................................................................4
Tipos de Sockets.............................................................................................................................5
Direcciones de Sockets...................................................................................................................5
DESARROLLO PRIMERA ENTREGA......................................................................................................6
CONCLUSIONES..................................................................................................................................7
BIBLIOGRAFIA.....................................................................................................................................8

INGENIERIA DE SOFTWARE
2
PLANTEAMIENTO DEL PROBLEMA

Se deben crear tres máquinas virtuales enlazadas a través de una red interna,
de tal manera que se comuniquen y hagan ping.

El objetivo es aprender en primera estancia a trabajar con aplicaciones


distribuidas transaccionales para lo cual se debe montar una máquina virtual
con Linux y sobre esta máquina instalar el eclipse para Java. Una vez echa
esta parte de la primera entrega desarrollar un taller de sockets que se
explica más adelante.

En segunda estancia, se busca que se aprenda a crear un sistema HPC (High


performance Compute) enlazando una maquina máster con dos máquinas
virtuales esclavas en Linux, probar la interconexión las redes y desarrollar los
talleres de la segunda y tercera entrega.

INGENIERIA DE SOFTWARE
3
MARCO TEÓRICO

Definició n de Socket
Es una tecnología que permite la comunicación entre un cliente y un servidor
en tiempo real, se puede utilizar los protocolos TCP y UDP, sin embargo, esta
práctica se centra en el protocolo TCP, es por eso que cada socket necesita la
dirección del servidor y un puerto en el cliente y en el servidor. Al ser una
tecnología que se ubica a nivel de la capa 4 del modelo OSI, puede funcionar
entre diferentes sistemas operativos e incluso funciona sin importar el
lenguaje en el que fue programado, la comunicación seguirá funcionando y
es por eso que esta tecnología es de mucha importancia.

Ilustración 1 - Modelo OSI

INGENIERIA DE SOFTWARE
4
Tipos de Sockets
Stream (SOCK_STREAM):

 Orientado a conexión.
 Fiable, se asegura el orden de entrega de mensajes.
 No mantiene separación entre mensajes.
 Si PF_INET se corresponde con el protocolo TCP.

Datagrama (SOCK_DGRAM):

 Sin conexión.
 No fiable, no se asegura el orden en la entrega.
 Mantiene la separación entre mensajes.
 Si PF_INET se corresponde con el protocolo UDP.

Raw (SOCK_RAW):

 Permite el acceso a los protocolos internos como IP.

Direcciones de Sockets
 Cada socket debe tener asignada una dirección única.
 Dependientes del dominio.
 Las direcciones se usan para:
o Asignar una dirección local a un socket (bind).
o Especificar una dirección remota (connect o sendto).

 Se utiliza la estructura genérica de dirección:


struct sockaddr mi_dir;
 Cada dominio usa una estructura específica.
o Uso de cast en las llamadas.
o Direcciones en PF_INET (struct sockaddr_in).
o Direcciones en PF_UNIX (struct sockaddr_un)

INGENIERIA DE SOFTWARE
5
DESARROLLO PRIMERA ENTREGA

Explicación código fuente

La arquitectura de este proyecto se divide de la siguiente manera

Como se puede observar en la grafica , tenemos una arquitectura de 4


componenentes

Cliente
Se verá reflejado un menú donde el usuario seleccionará opciones
disponibles que desee consumir a su necesidad

Servidor
Es el proceso de mayor consumo pues acá tendrá validaciones y
procesamiento lógico de dichas peticiones por parte del usuario , dentro del
servidor contamos con el alojamiento de sockets , Dao y Bases de datos ,
vale recordar que esto puede ir en diferentes servidores según su
arquitectura

INGENIERIA DE SOFTWARE
6
Sockets
Siempre estará disponible para cualquier consulta que se conecte al sockets
establecidos

Dao
Data Access Object , En esta clase procesa el tipo de consultas que el socket
requiera a la base de datos , esto se mantiene en clase diferente por temas
de seguridad , ya que esta es la última capa .

SQL Database
Gestor de bases de datos que puede estar alojada en servidor diferente o en
algún cloud computing diferente se proporciona dicha información de los
usuarios y donde será ejecutada sentencias por medio de Stored Procedure a
las peticiones que se hagan desde el DAO

Proceso ló gico y secuencial de forma técnica

En la clase servidor , lo primo que estamos observando que es se está asignando un puerto 8080 ,
donde lo estamos anexando a la ip local del servidor ,significa que la clase cliente deberá
conectarse esta misma dirección ip con este puerto local

INGENIERIA DE SOFTWARE
7
Esta imagen corresponde a la clase de Cliente , que claramente se le está dando a que dirección
deberá responder al hacer algún tipo de petición , ya se sabe que el cliente se le está informando
que el puerto 8080 es del servidor

Al hacer math el cliente y el servidor , desde el servidor se le envía una serie de opciones que
actualmente tiene disponible

INGENIERIA DE SOFTWARE
8
gráficamente en el cliente , se verá así con las opciones disponibles

Se puede observar que para este ejemplo practico seleccionamos la opción número 1 - RETIRO

INGENIERIA DE SOFTWARE
9
Podemos observar en esa imagen varias cosas interesantes

1 – En el debugger estamos analizando que la opción que el cliente seleccionó es 1 ( retiros ) y el


saldo a retirar el cliente seleccionó la cantidad de 20.000 $

2 – En el recuadro rojo, se analiza que el servidor hace un llamado a una capa llamada (DAO) pues
en esta capa trataremos todo lo relacionado al código duro y la persistencia , además debido a que
acá tenemos nuestra conexión a la bases de datos alojado en otra parte es una capa internal .

Al ingresar a la capa DAO, pues encontramos que lo primero es una cadena de conexión a SQL
SERVER que está contenerizada en DOCKER

INGENIERIA DE SOFTWARE
10
Según la consulta que el usuario seleccionó esto llamará un procedimiento almacenado en nuestra
bases de datos , en este caso el Sp a llamar es sp_updateSaldo con parámetros

Este es nuestro sp , donde tiene dos condiciones segúna la consulta , en este ejemplo es un retiro

INGENIERIA DE SOFTWARE
11
Lo primero que vamos a hacer es consultar nuestro saldo en la bases de datos que es de 909.000

Una vez ejecutado el sp , procede a restar 20.000 del saldo ,


por esa razón queda un total de 889.000 $

El server se encarga de informarle al usuario su nuevo saldo


y el estado de la transacción

INGENIERIA DE SOFTWARE
12
Así se vería por parte del cliente en forma visual la confirmación de la transacción y el nuevo
saldo

Nuevamente el servidor lanza el menú informando que otra transacción desea hacer

En este caso se seleccionó la opción de salir

En este recuadro rojo, el server internamente informa que el cliente con la dirección ip y puerto
finalizó la sesión satisfactoriamente .

Nos encantaría mostrar todos los casos posibles, pero evidentemente se nos hace muy largo esta
explicación técnica y adicional a eso el código se vuelve repetitivo entonces estamos seguros que
con esta explicación abordamos temas principales a nivel técnico ..

INGENIERIA DE SOFTWARE
13
Este es el sp de GetCuenta , consiste en obtener el saldo actual del usuario

rs.close();
calls.close();

Consiste en cerrar las conexiones abiertas que un procedimiento almacenado abre , esto se hace
por temas de seguridad .

INGENIERIA DE SOFTWARE
14
CONCLUSIONES

INGENIERIA DE SOFTWARE
15
BIBLIOGRAFIA
Sistemas Distribuidos Sockets. (Septiembre de 2020). Obtenido de
https://www.academia.edu/10928817/Sistemas_Distribuidos_Sockets

INGENIERIA DE SOFTWARE
16

También podría gustarte