Marco Teórico Entrega 1
Marco Teórico Entrega 1
Marco Teórico Entrega 1
1
(2021-Jul-06) Qué es el paradigma cliente servidor [online-youtube] Available:
https://www.youtube.com/watch?v=cYJuTKa5R8E
2
(oct-07) Daniel Morato Paradigma cliente-servidor) [online] Available:
https://www.tlm.unavarra.es/~daniel/docencia/lir/lir03_04/slides/2-Paradigmaclienteservidor.pdf
Sacado de (2013-agost-07)paradigma cliente servidor)[online] Available:
https://prezi.com/hc938makmv2l/paradigma-clienteservidor/3
3
Sacado de (2013-agost-07)paradigma cliente servidor)[online] Available:
https://prezi.com/hc938makmv2l/paradigma-clienteservidor/
4
O.Blancarte Introducción a la arquitectura de software. Primera edición: Available:
https://reactiveprogramming.io/blog/es/estilos-arquitectonicos/cliente-servidor
Sockets
Los sockets (también llamados conectores) son un mecanismo de comunicación entre
procesos que permiten la comunicación bidireccional tanto entre procesos que se
ejecutan en una misma máquina como entre procesos lanzados en diferentes máquinas 5
Se denomina dominio de un socket al conjunto de sockets con los cuales se estable
comunicación, normalmente un servidor se ejecuta en una maquina especifica y tiene un
socket asociado a un número puerto especifico, el servidor simplemente espera a la
escucha en el sockets a que un cliente se conecte a una petición.
Los protocolos de comunicación usados en los sockets son: TCP, UDP, IP. Algunos 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 */6
Protocolo de transporte
Los protocolos de nivel de transporte TCP/IP permiten a los programas de aplicación
comunicarse con otros programas de aplicación.
UDP (User Datagram Protocol) y TCP son los protocolos básicos de nivel de transporte
para realizar conexiones entre sistemas principales de Internet. TCP y UDP permiten que
los programas envíen mensajes a las aplicaciones de otros sistemas principales y reciban
mensajes de dichas aplicaciones. Cuando una aplicación envía a la capa de transporte una
petición de envío de un mensaje, UDP y TCP dividen la información en paquetes, añaden
una cabecera de paquete incluida la dirección de destino y envían la información a la capa
de red para su proceso adicional. TCP y UDP utilizan puertos de protocolo en el sistema
principal para identificar el destino específico del mensaje. 7
Componentes del Socket TCP/IP
5
(2006-07) O.Suarez, A.Quesada, F.Santana Sistemas Operativos: Programación de Sistemas: Available:
http://sopa.dis.ulpgc.es/progsis/material-didactico-teorico/tema7_1transporpagina.pdf
6
Alexis Rojas Módulo: Persistencia y Datos Transaccionales Unidad 1: Sistemas de información
transaccionales con características ACID Escenario 1: Aplicaciones con énfasis en el manejo transaccional de
la información/ politécnico Grancolombiano
7
(2021-Mar-03) Protocolos a nivel de transporte de Internet (version7.1) IBM Available:
https://www.ibm.com/docs/es/aix/7.1?topic=protocols-internet-transport-level
Dentro del modelo TCP/IP podemos diferenciar diferentes capas, las cuales están destinadas
a una función de cara a establecer una comunicación. Se dividen en niveles y están
coordinadas entre sí. Estas son:
Nivel de enlace o acceso: Es la primera capa que nos encontramos, y crea el acceso
físico a la red. Esto se realiza especificando el modo en el que se deben enrutar los
datos. Esto no se ve afectado por el tipo de red que utilizamos.
JAVA
Java es una plataforma informática de lenguaje de programación creada por Sun
Microsystems en 1995. Ha evolucionado desde sus humildes comienzos hasta impulsar
una gran parte del mundo digital actual, ya que es una plataforma fiable en la que se
crean muchos servicios y aplicaciones. Los nuevos e innovadores productos y servicios
digitales diseñados para el futuro también siguen basándose en Java.
Hilos y sockets en JAVA
Hilos
Un hilo es un proceso en ejecución dentro de un programa, los hilos implementan
prioridad y mecanismos de sincronización, cada hilo después de su creación y antes de su
destrucción estará en uno de estos cuatro estados: (Nuevo, ejecutable, bloqueado,
muerto)
8
Sergio de Luz(2022-oct-16) Qué es un socket TCP o UDP y qué diferencias hay con los puertos Available:
https://www.redeszone.net/tutoriales/configuracion-puertos/que-es-socket-tcp-udp-diferencias-puertos/
(IllegalThreadStateException) si se intenta ejecutar cualquier método de la clase
Thread distinto de start().
• Ejecutable (Runnable): El thread puede estar ejecutándose, siempre y cuando se le
haya asignado un determinado tiempo de CPU. En la práctica puede no estar
siendo ejecutado en un instante determinado en beneficio de otro thread.
• Bloqueado (Blocked o Not Runnable): El thread podría estar ejecutándose, pero
hay alguna actividad interna suya que lo impide, como por ejemplo una espera
producida por una operación de escritura o lectura de datos por teclado (E/S). Si
un thread está en este estado, no se le asigna tiempo de CPU.
• Muerto (Dead): La forma habitual de que un thread muera es finalizando el
método run(). También puede llamarse al método stop() de la clase Thread,
aunque dicho método es considerado “peligroso” y no se debe utilizar. 9
Sockets en 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 ServerSocket que nos permitirá manipular la conexión
desde el lado del servidor.
Ejemplo:
Implementaremos (cliente y servidor) usando Java y se comunicarán usando el puerto
1234 (es bueno elegir los puertos en el rango de 1024 hasta 65535). La dinámica del
ejercicio será como se ve:
9
Grupo codesi/Ciclo de vida de las Threads/ Avaliable:
https://www.buscaminegocio.com/cursos-de-java/ciclo-de-vida-de-thread.html
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á. 10
10
Juan Gonzalez(2012-2022) Sockets (Cliente-Servidor) Available: https://www.programarya.com/Cursos-
Avanzados/Java/Sockets