Primera Entrega
Primera Entrega
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
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.
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.
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):
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).
INGENIERIA DE SOFTWARE
5
DESARROLLO PRIMERA ENTREGA
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
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
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
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 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