PRIMERA ENTREGA

TRABAJO COLABORATIVO PERSISTENCIA Y DATOS TRANSACCIONALES PROFESOR: ALEXIS ROJAS CORDERO INTEGRANTES DEL GRUPO: CHALI

Views 120 Downloads 3 File size 203KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

TRABAJO COLABORATIVO PERSISTENCIA Y DATOS TRANSACCIONALES

PROFESOR:

ALEXIS ROJAS CORDERO

INTEGRANTES DEL GRUPO: CHALIAL MEZA WILLIAM DAVID- 1821023166 MARLES ANDRES FERNANDO – 1911020327 LUIS ALBERTO CASTILLO CHITIVA. 1821024940 BRYAN ALFREDO TINOCO HUERTAS 1811024550 JULIAN MARTINEZ MOLINA 1424009003

INSTITUCIÓN UNIVERSITARIA POLITÉCNICO GRANCOLOMBIANO FACULTAD DE INGENIERÍA, DISEÑO E INNOVACIÓN INGENIERÍA DE SOFTWARE

2020

TABLA DE CONTENIDO I.

INTRODUCCIÓN.......................................................................................................2

II.

JUSTIFICACIÓN.........................................................................................................5

III. OBJETIVOS................................................................................................................6 IV. ESTADO DEL ARTE.....................................................................................................7 V. CONCLUSIONES.........................................................................................................8 VI. REFERENCIAS BIBLIOGRAFICAS.................................................................................14

1

I.

INTRODUCCIÓN

El trabajo consiste en una investigación sobre la creación de socket, su definición, tipos de socket, haremos un breve repaso por la historia del socket. También se encontrará en este trabajo la familia de protocolos y la configuración necesaria para la creación de un socket, es importante conocer en principio que un socket es un punto de comunicación a través del cual un proceso puede enviar y recibir información, esto se conoce comúnmente como cliente servidor. La comunicación entre cliente y servidor debe ser confiable; esto quiere decir que no se pueden perder datos, y que éstos deben llegar al cliente en el mismo orden en el cual fueron enviados por el servidor; por esta razón se utiliza TCP/IP. En el presente trabajo encontraremos también la creación de una base de datos generada en PostgreSQL un sistema de gestión de bases de datos relacional orientado a objetos y de código abierto, publicado bajo la licencia PostgreSQL. También se elaborar el Modelo Entidad Relación de Persistencia en la base de datos para un cliente de un Banco XYZ.

II.

JUSTIFICACIÓN

El presente trabajo se enfocará en un análisis de la construcción de un socket, actualmente existe una gran demanda para generar mecanismos que puedan mantener interconectadas las aplicaciones y las bases de datos, no solo las grandes empresas tienen la necesidad de contar con sistemas de conexión para tener su información disponible, también se crean a diario muchas aplicaciones para la diversión y el ocio. en esta necesidad cada vez más amplia y creciente trabajaremos el estudio del socket y su construcción teniendo presente que existen diferentes tecnologías para el manejo de protocolos y definiremos como trabajan estas tecnologías

III.

OBJETIVOS

OBJETIVO GENERAL Comprender la definición de socket teniendo en cuenta una apreciación histórica y un marco teórico existente

OBJETIVOS ESPECIFICOS 

Analizar el material de los módulos y las lecturas complementarias con el fin identificar la teoría necesaria para la definición de Socket



Presentar un enfoque teórico e histórico de la creación de un socket



Comprender la intercomunicación de las aplicaciones y los protocolos utilizados



Describir la funcionalidad de los protocolos necesarios para la conexión



Implementar una base datos en el sistema de gestión de bases de datos PostgreSQL



Generar las diferentes relaciones de las tablas generadas

IV.

ESTADO DEL ARTE

Para conocer el principio del socket debemos remitirnos a la primera computadora creada en 1941, el ingeniero alemán Konrad Zuse, una de las primeras máquinas programables y automáticas la cual realizaba algunas operaciones matemáticas, consumía grandes cantidades de potencia y tenia un gran peso. Todo inicio con tubos al vacío y tarjetas perforadas

En la segunda generación de computadoras de 1965 a 1980 se incluye el transistor y los circuitos integrados, con lo que se redujo el tamaño de estas y donde inicia con la comunicación de paquetes y surge en esta época también el concepto de interconexión a través de redes

En la década de los 80 los equipos cuentan con mas transistores y circuitos integrados que hace los equipos mas pequeños, pero solo contaban con estas máquinas las grandes empresas, algunas universidades, la ciencia y las personas adineradas. El primer protocolo conocido es el NPC (Network Control Protocol) también deriva de este el protocolo FTP que se empezó a utilizar en abril de 1971, publicado como el RFC 114, antes de que existiera la pila TCP/IP. La estructura general fue establecida en 1973. Posteriormente se crea el protocolo TCP/IP El protocolo TCP / IP es el protocolo de comunicación fundamental de Internet y consta de dos protocolos, el TCP y el IP. El objetivo es que los ordenadores se comuniquen de una forma sencilla y transmitan información a través de la red., posteriormente surge el protocolo HTTP que controla la transferencia de datos en la World Wide WEB WWW proporciona un vehículo de entrega para las imágenes, gráficos, video,

hipertexto u otros datos en la Web. Mientras se recorre la web, el explorador intercambia mensajes con los servidores Web gracias al HTTP. Así vamos avanzando a otros tipos de protocolos como el TELNET un protocolo de Internet estándar que permite conectar terminales y aplicaciones en Internet. El protocolo proporciona reglas básicas que permiten vincular a un cliente con un intérprete de comandos del lado del servidor, surgen otros protocolos en 1982 por ejemplo surge el protocolo MTP (Simple Mail Transfer Protocol) es un protocolo de la familia del TCP/IP para la transmisión de correo electrónico y con el los protocolos IMAP y POP3.

Se crean una gran variedad de protocolos donde destacamos también el protocolo SSH (Secure Socket Shell) el cual proporciona autenticación y encriptación entre dos computadoras que se conectan a Internet o el Protocolo DNS (Sistema de ombres de Dominio) El cual rastrea al usuario para ubicar la dirección web en la dirección IP correspondiente

SOCKET:

Un socket es el extremo de un enlace de comunicación de dos-vías entre dos programas que se ejecutan en la red. Un socket se asocia a un número de puerto, para que TCP pueda identificar la aplicación a la cual se están enviando los datos.

Originalmente se construyó a principios de los 80, en los orígenes de internet las primeras computadoras en implementar sus protocolos fueron las de la Universidad de Berkeley, dicha implementación tuvo lugar en una variante del sistema operativo Unix conocida como BSD Unix. Pronto se hizo evidente que los programadores necesitarían un medio

sencillo y eficaz para escribir programas capaces de intercomunicarse entre sí, esta necesidad dio origen a la primera especificación e implementación de sockets, también en Unix. Hoy en día los sockets están implementados como bibliotecas de programación para multitud de sistemas operativos, simplificando el trabajo de los programadores. Designa un concepto abstracto por el cual dos programas “posiblemente situados en computadoras distintas” pueden intercambiar cualquier flujo de datos, por lo general de una manera fiable y ordenada

En las aplicaciones cliente / servidor, el servidor proporciona algún servicio, como, por ejemplo: procesamiento de consultas a una base de datos. El cliente utiliza el servicio proporcionado por el servidor, desplegando los datos de la consulta a la base de datos. La comunicación entre cliente y servidor debe ser confiable; esto quiere decir que no se pueden perder datos, y que éstos deben llegar al cliente en el mismo orden en el cual fueron enviados por el servidor; por esta razón se utiliza TCP/IP.

TCP proporciona un canal de comunicación confiable, punto a punto, que las aplicaciones cliente / servidor utilizan para comunicarse entre ellas a través de Internet. Para comunicarse a través de TCP, se establece una conexión entre el programa cliente y el programa servidor. Cada programa enlaza un socket en su extremo de la conexión. Para comunicarse, cliente y servidor leen y escriben hacia el socket asociado a la conexión.

Para entender este concepto de una manera sencilla es haciendo un paralelo con una conversación por teléfono o una conversación usando el chat, donde cada uno de los participantes de dicho evento está en lugares diferentes. Se denomina dominio de un socket

al conjunto de sockets con los cuales se establece comunicación. Los sockets usan protocolos de comunicación los cuales son: TCP, UDP, IP, y alguno de los dominios son: •

AF_NS /* Protocolos propiedad de XEROX */



AF_APPLETALK /* De Apple */



AF_SNA /* IBM */



PF_INET /* Protocolo para IPV4 */



PF_INET6 /* Protocolo para IPV6 */



PF_LOCAL /* Para comunicaciones locales */

El termino socket también es usado como el nombre de una interfaz de programación de aplicaciones (API) para la familia de protocolos de internet, provista usualmente por el sistema operativo. Los sockets de internet constituyen el mecanismo para la entrega de paquetes de datos provenientes de la tarjeta de red a los procesos o hilos apropiados, el socket queda definido por un par de direcciones IP local y remota, un protocolo de transporte y un par de números de puertos local y remoto.

Creación de un Socket:

Para la creación del socket se utiliza la arquitectura cliente servidor, en esta, el servidor se encuentra a la espera de que sus servicios sean llamados o utilizados por otras aplicaciones, la aplicación cliente, solicita los servicios mediante peticiones al servidor.

En la creación de un socket se deben inicializar ciertas variables pertenecientes al protocolo y la red.

El socket puede ser programado en varios lenguajes de programación como java, C# etc. Para crear un socket, se utiliza la función socket y se deben especificar tres parámetros: socket = socket(protocol_familiy, socket_type, protocol). En el constructor de la clase se deben especificar el tipo de socket, el protocolo y direcciones de red. 1. Familia de Protocolos (Protocol Family): Identifica a una familia de protocolos relacionados, como TCP/IP. 2. Tipo de Socket (Socket_type): Si el programa utilizará el socket para transmitir flujo de bytes o datagramas. SOCK_DGRAM para datagramas y SOCK_STREAM para flujo de bytes. 3. Protocolo a utilizar: Permite especificar qué protocolo utilizará el socket. IPPROTO_TCP, IPPROTO_UDP.

Ej:

socket_handle

=

socket(PF_INET,

SOCK_STREAM,

IPPROTO_TCP);

Cuando se llama a la función socket, la implementación del socket lo crea y devuelve un identificador de socket que identifica a un registro en la tabla de descripción. El registro muestra la estructura de datos del socket.

Familia de Protocolos Tipo de servicio Dirección IP Local Dirección IP Remota Puerto de Protocolo Local Puerto de Protocolo Remoto

Pasos para crear un socket: 1) Establecer el dominio en la comunicación: 

PF_INET: Protocolos de Internet versión 4.



PF_INET6: Protocolos de Internet versión 6.



PF_IPX: Protocolos IPX (Novell).



PF_APPLETALK: Protocolos Appletalk.



PF_UNIX o PF_LOCAL: Comunicación local.

2) Una vez se tiene le dominio se debe elegir el tipo de comunicación: SOCK_STREAM: Conexión con flujo ordenado de datos bidireccional. SOCK_DGRAM: Mensajes sin conexión, con datagramas de tamaño máximo dijo y sin conexión SOCK_SEQPACKET: Conexión con datos ordenados bidireccional y datagramas de longitud fija.

3) Después de tener del dominio y el tipo se debe elegir el protocolo que usara el conector a crear, normalmente caca dominio y tipo admite un protocolo particular, ya que su valor solo puede ser 0 Dominio PF_INET y tipo SOCK_STREAM: TCP. Dominio PF_INET y tipo SOCK_DGRAM: UDP.

4) Los sockets deben ser asociados a un puerto ya que el clienye necesita conocer el puerto disponible para el servicio.

1. Puerto 21 TCP: FTP (Transferencia de archivos). 2. Puerto 22 TCP: SSH (Conexión segura). 3. Puerto 25 TCP: SMTP (Correo electrónico). 4.

Puerto 80 TCP: HTTP (Web).

5. Puerto 443 TCP: HTTPS (Web segura). 6. Puerto 53 UDP: DNS (Servidor de nombres). 7. Puerto 123 UDP: NTP (Sincronización de la hora)

5) Cerrar conexión del socket se debe realizar con una función la cual retorna un 0 cuando se cierra la transacción.

Cada vez que la aplicación llama a la función socket, la implementación de esta reserva memoria para una nueva estructura de datos y almacena la dirección de la familia, el tipo de socket y el protocolo.

El valor devuelto por la función es un entero; si el resultado es mayor o igual a cero indica que se ha creado correctamente el socket, si es negativo indica un error en la creación.

Configuración del Socket:

Una vez creado el socket, utilizando la función socket, se pueden utilizar las funciones de configuración dependiendo del uso que se le vaya a dar al socket:

1. Si se trata de un cliente orientado a conexión, se deberá llamar a la función connect que se encargará de almacenar toda la información local y remota en la estructura de datos del socket. 2. Si se trata de un cliente sin conexión las funciones llamadas son: •

Máquina Local: bind - Máquina remota: send

En el caso de un servidor orientado a conexión: •

Máquina Local: bind



Máquina Remota: listen y accept

En el caso de un servidor sin conexión: •

Máquina Local: bind



Máquina Remota: recvfrom

En resumen, un socket es un punto de comunicación a través del cual un proceso puede enviar o recibir información, esto se conoce comúnmente como cliente servidor.

V.

BASE DE DATOS

Para la creación de la base de datos usamos PostgreSQL, un sistema de gestión de bases de datos de objeto general y relacional, el sistema de base de datos de código abierto El nombre de la base de datos fue banco_xyy Creamos 5 tablas las cuales son: países, ciudades, clientes, saldos y movimientos Tabla Países La tabla países cuenta con los campos ID y TRANSACCIÓN, tomando id como llave Primaria

Tabla Ciudades La tabla ciudades cuenta con los campos ID, NOMBRE, FECHA_CREACION, FECHA_ACTUALIZACION y PAIS ID, se ha tomado como llave primaria el campo ID y como llave foránea PAIS_ID, haciendo una referencia a tabla países y agregando un update y un delete en modo CASCADE

Tabla Clientes La tabla cliente cuenta con los campos ID, NOMBRE, IDENTIFICACIÓN, DIRECCION, FECHA:CREACIÓN, FECHA_ACTUALIZACION ESTADO y PAIS ID, se ha tomado como llave primaria el campo ID y como llaves foráneas PAIS_ID y CIUDAD_ID, haciendo una referencia a las tablas países y ciudades agregando un update y un delete en modo CASCADE

Tabla Saldos

La tabla saldos cuenta con los campos ID, VALOR, CLIENTE_id Y FECHA, se ha tomado como llave primaria el campo ID y como llave foránea el campo CLIENTE_ID, haciendo una referencia a la tabla clientes y por ultimo agregando un update y un delete en modo CASCADE

Tabla Movimientos

La tabla movimientos tiene los campos ID, TIPO, VALOR, CLIENTE_ID y FECHA, se ha tomado el campo ID como llave primaria y el campo CLIENTE_ID haciendo una referencia a la tabla clientes y por ultimo agregando un update y un delete en modo CASCADE

MODELO ENTIDAD RELACIÓN A continuación, se presenta el modelo entidad relación que creamos para la base de datos BANCO_XYZ

VI.

CONCLUSIONES

El socket es el elemento más utilizado en las operaciones en tiempo real debido a su confiabilidad en el transporte de datos El socket es un programa controlado, el cual usa protocolos de red para realizar operaciones entre distintas aplicaciones. Las características de cada socket dependen del protocolo escogido, el más utilizado es el Transmission Control Protocol. Los sockets son procesos seguros ya que permiten realizar transacciones seguras en tiempo real. La evolución del socket a través del tiempo ha permitido mejorar procesos de seguridad en las transacciones. Los sockets pueden ser programados en distintos lenguajes de programación.

VII. REFERENCIAS BIBLIOGRÁFICAS

la primera computadora digital. Extraído de https://arteymedios.org/historias/hitosmundiales/item/344-primer-computador-digital 23 de mayo de 2020. Historia de la computadora Extraído de https://www.tecnologia-informatica.com/historia-dela-computadora/ el 23 de mayo de 2020 Cuáles son los protocolos de seguridad de la información extraído de https://cliniccloud.com/blog/protocolos-de-seguridad-de-la-informacion/ el 23 de mayo de 2020 Creación de un Socket en Linux Extraído de https://cs.uns.edu.ar/~ldm/mypage/data/rc/apuntes/introduccion_al_uso_de_sockets.pdf Creación de un Socket http://informatica.uv.es/iiguia/R/apuntes/laboratorio/Uso.pdf