Está en la página 1de 10

SEGUNDO BLOQUE: PROYECTO

PERSISTENCIA Y DATOS TRANSACCIONALES –


ENTREGA FINAL

JHONATAN STID ACERO ALFONSO

CÓDIGO: 1521020828

LUIS F ROJAS

CÓDIGO 1711022531

Presentado a:
ALEXIS ROJAS CORDERO
Tutor Virtual

INSTITUCION UNIVERSITARIA POLITÉCNICO


GRANCOLOMBIANO FACULTAD DE INGENIERÍA E
INNOVACIÓN

PROYECTO PERSISTENCIA Y DATOS TRANSACCIONALES

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:

El modelo de sockets más simple es:

• El servidor establece un puerto y espera


durante un cierto tiempo (timeout segundos),
a que el cliente establezca la conexión.
Cuando el cliente solicite una conexión, el servidor abrirá la conexión socket con el
método accept().
• El cliente establece una conexión con la máquina host a través del puerto que se
designe en puerto#
• El cliente y el servidor se comunican con manejadores InputStream y OutputStream

BASE DE DATOS UN BANCO.

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

Modelo Entidad Relación


Modelo Lógico
Modelo Físico

ELABORACIÓN DEL CÓDIGO


En ésta parte del proceso ilustraremos la construcción
de un sencillo sistema Cliente/Servidor en lenguaje
Java, es decir un Servidor que escucha en un puerto
determinado y un Cliente el cual enviará peticiones
para el servidor el cuál responderá después de su
procesamiento.

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

Una adecuada estructura de los paquetes, permite describir más


fácilmente la función de cada uno, hemos diseñado ésta de
manera que sea posible luego, describirlos uno a uno y sean
fácilmente identificables y correspondientes entre lo que se
encuentra en el Word y en el código fuente.

Código Control de Acción

El propósito fundamental nuestro servidor es estar a la escucha


de una conexión en el puerto 9800. Cuando reciba una petición
procesara esta y retornara el resultado en nuestro caso tenemos Ilustración 1Estructura de Paquetes
3 posibles procesos

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.

También podría gustarte