Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CÓDIGO: 1521020828
LUIS F ROJAS
CÓDIGO 1711022531
Presentado a:
ALEXIS ROJAS CORDERO
Tutor Virtual
2019
SIMULADOR DE EJECUCIÓN DE TRES TRANSACCIONES
INTRODUCCIÓN
Como proyecto para la asignatura Persistencia y Datos Transaccionales se requiere realizar la
simulación de ejecución de tres transacciones como lo son, la consulta, una consignación y un retiro
todo esto parte del proceso transaccional del banco XYZ. Para el desarrollo del proyecto
adicionalmente, se requiere:
1. Hacer un modelo entidad relación sencillo del banco XYZ, con las entidades de saldo, cliente,
ciudad, país y movimientos
2. Implementar el modelo en una base de datos libre como Oracle 11g R2 Express, por ejemplo.
3. Desarrollar los sockets server y cliente respectivos para hacer una consignación (insert), un
retiro (update) y una consulta (select).
4. Probar las operaciones desde el socket cliente con el socket server iniciado.
MARCO DE REFERENCIA
Marco Teórico
Fundamentos de Socket
Los sockets son un mecanismo que nos permite establecer un enlace entre dos programas que
se ejecutan independientes el uno del otro (generalmente un programa cliente y un programa
servidor) Java por medio de la librería java.net nos provee dos clases: Socket para
implementar la conexión desde el lado del cliente y Server Socket que nos permitirá
manipular la conexión desde el lado del servidor.
El servidor estará a la espera de una conexión, en cuanto el cliente inicie enviará un mensaje
de petición al servidor, éste le responderá afirmativamente y una vez recibida la
confirmación, el cliente enviará un par de mensajes y la conexión finalizará.
Diseño del modelo de comunicaciones con sockets
En Java, crear una conexión socket TCP/IP se realiza
directamente con el paquete java.net. A
continuación, mostramos un diagrama de lo que
ocurre en el lado del cliente y del servidor:
Características principales
El banco está organizado en sucursales. Cada sucursal está ubicada en una ciudad concreta y se
identifica con un nombre único sin embargo esto no lo tendremos en cuenta por que vamos a analizar
una única ciudad y sucursal. Los clientes del banco se identifican mediante su valor de id_cliente.
Conjunto de relaciones de la base de datos bancaria.
• Cliente movimiento
• Cliente ciudad
• Ciudad país
Socket server
El servidor es el encargado de responder las peticiones de los clientes previo proceso de las mismas.
Un servidor puede atender peticiones de varios clientes. En este ejemplo solo atenderá a un cliente,
es recomendable el uso de Thread para sistemas multi-clientes.
Estructura de clases y paquetes
Case 1 Insertar
El servidor recibe los datos que se ingresaran a la BDD, éste método permite que el cliente envíe un
bloque de datos predeterminado para ser almacenados en la Base de Datos.
Case 2 Respuesta
El servidor responde a la pregunta del cliente según los datos de la BDD, con este método es posible
que el cliente haga consultas de manera que pueda comprobar y programar sus interacciones
Case 3 Salida
El servidor da por terminada la sesión del cliente, pero el servidor continuara a la escucha en el puerto
9800
El encargado de procesar las peticiones de los clientes es un “While” que itera según las peticiones
del cliente hasta que finalmente queda en espera de una nueva sesión. A continuación, el código
completo del “While” comentada línea a línea.
Código Principal
Por la estructura de manejo de java, es necesario un método principal que sea capaz de contener y
manejar las clases y métodos del socket de manera que interactúen correctamente.
Código Conexión
Para que el servidor pueda utilizar la base de datos es necesario crear un método de conexión y para
ella se hizo el siguiente código.
Socket cliente
Del lado del cliente el socket requiere una serie de métodos que estén alineados con los existentes en
el lado del servidor de manera que envíe la información necesaria y pueda interpretar correctamente
la información.
Código Conexión
Esta clase establece una sesión de cliente para que sea verificada la identidad del mismo y con ella se
mantengan las variables necesarias para filtrar la información que sea relevante para este cliente y
solo para él. Esto es útil tanto para verificar la identidad del cliente como para reducir la cantidad de
información que se va a transmitir.
Código Principal
Así mismo el cliente tiene una clase principal de manera que controla las interacciones tanto con el
servidor como otras que pueden existir de manera local.