Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TRANSACCIONALES
Entrega 1
Presentado por:
Francisco Javier Tabares Arcila Cod: 1911025758
Jhon Fredy Vélez Londoño Cod: 1911023172
Raúl Edgardo Casallas Zamora Cod: 1911024589
OBJETIVOS........................................................................................................................... 3
Objetivo General:................................................................................................................ 3
Objetivos Específicos..........................................................................................................3
DESARROLLO....................................................................................................................... 4
1) Elaborar el Modelo Entidad Relación de Persistencia en la base de datos para un
cliente de un Banco XYZ:...................................................................................................4
2) Implantarlo en una base de datos Hsql, MySQL, PostgreSQL u Oracle-express-11g y
documentar el proceso:......................................................................................................5
3) Agregar el estado del arte de la construcción de un socket:...........................................8
REFERENCIAS.................................................................................................................... 11
OBJETIVOS
Objetivo General:
El banco XYZ requiere que se desarrolle un prototipo transaccional, para simular la
ejecución de tres transacciones a saber, una consulta, una consignación y un retiro.
Para el desarrollo del proyecto, se requiere:
Objetivos Específicos
Hacer un modelo entidad relación sencillo del banco XYZ, con las entidades
de saldo, cliente, ciudad, país y movimientos (el propósito es académico).
Implementar el modelo en una base de datos libre como Oracle 11g R2
Express, por ejemplo.
Desarrollar los sockets server y cliente respectivos para hacer una
consignación (insert), un retiro (update) y una consulta (select).
Probar las operaciones desde el socket cliente con el socket server iniciado.
DESARROLLO
Las tablas se crean las distintas tablas según el previo diseño y se establecen como
InnoDB y collation como utf8_general_ci para que pueda almacenar caracteres con
tilde, ñ y demás.
Según el previo diseño, se establecen las llaves primarias de las respectivas tablas
y se asignan a su vez las llaves foráneas. Todo esto se realiza por medio de los
constraints. Mostraremos como queda la tabla de Ciudad en su estructura, pues ahí
se pueden observar los índices, tanto de la llave primaria (PRIMARY), como de la
llave foránea (paisId_FK):
Quedando de la siguiente manera el diseño de la base de datos, banco-xyz:
MySQL crea automáticamente un socket para la conexión y muestra los parámetros
para utilizarlo:
SOCKET
Un socket es una API , que permite a una computadora comunicarse con sí misma o
con otra, siempre que estén unidas en red.
Realmente no son las computadoras las que se comunican entre sí, sino los
procesos que hay ejecutándose en ellas. Para realizar esta tarea el socket se vale
de la pila de protocolos TCP/IP.
Lo primero que vamos a hacer es ver en vivo cómo funciona un socket, con un
pequeño ejemplo (muy simple, sin tratamiento de errores y para un sólo cliente), y
luego vamos a explicar el código para que se entienda mejor.
Código-Cliente(Básico)
[php]
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($sock,’192.168.0.23′,’8000′);
socket_write($sock,"Hola",strlen("Hola"));
socket_close($sock);
echo "Fin del programa";
[/php]
Código-Servidor(Básico)
[php]
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($sock,"192.168.0.23","8000");
socket_listen($sock, 5);
$socket=socket_accept($sock);
$mensaje = socket_read($socket,4,PHP_NORMAL_READ);
socket_close($socket);
socket_close($sock);
[/php]
Recordemos que estos códigos están hechos de la manera mas básica posible, es
decir tienen carencias absolutamente en todos los aspectos. En resumidas cuentas,
si vas a utilizar sockets para algo más que trastear, JAMÁS haga un cliente-servidor
así (sin comprobaciones de errores, carentes de elementos de seguridad etc,…)
Bueno una vez comentado esto, vamos a pasar a explicar los códigos, y ver para
qué se usa cada función.
Tipo:
Es el tipo de socket que vamos a crear, como ya vimos anteriormente, vamos a usar
los sockets básicos (los más sencillos) que son:
SOCK_STREAM Proporciona flujos de bytes orientados a conexión, secuenciados,
fiables y full-duplex.
SOCK_DGRAM Socket para datagramas (no orientado a conexión, entrega no
fiable).
A parte de estos dos, existen otros dejamos aquí sus especificaciones (según el
manual oficial de PHP):
“SOCK_SEQPACKET Proporciona una ruta de transmisión de datos orientada a
conexión secuenciada, fiable, de dos direcciones para datagramas de longitud
máxima fija; se requiere un consumidor para leer un paquete entero con cada
llamada de lectura.
SOCK_RAW Proporciona acceso al protocolo de red sin formato. Este tipo especial
de socket se puede usar para construir manualmente cualquier tipo de protocolo. Un
uso común para este socket es realizar solicitudes ICMP (como ping).
SOCK_RDM Proporcional una capa de datagramas fiable que no garantiza el orden.
Lo más seguro es que esto no esté implementado en su sistema operativo.”
Protocolo:
Indica el protocolo sobre el que vamos a construir nuestro socket:
PHP soporta tres protocolos, aunque realmente en el curso solo vamos a ver los
siguientes 2:
TCP (Orientado a conexión, entrega fiable…).
UDP (No orientado a conexión, sin entrega fiable…).
Bien una vez explicada esta función, en la siguiente sesión vamos a ver qué hacen
el resto de funciones del código para finalmente comentar que va pasando en cada
línea del código en general.
REFERENCIAS