Está en la página 1de 20

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

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/hitos-


mundiales/item/344-primer-computador-digital 23 de mayo de 2020.

Historia de la computadora Extraído de https://www.tecnologia-informatica.com/historia-de-


la-computadora/ el 23 de mayo de 2020

Cuáles son los protocolos de seguridad de la información extraído de https://clinic-


cloud.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

También podría gustarte