Marco Teórico Entrega 1

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

Marco teórico

Arquitectura cliente servidor


Para dar la definición una definición más clara de la arquitectura cliente servidor
realizaremos una primera definición de que es servidor y cliente en informática:
Servidores:
Se tienen dos definiciones para los servidores Uno puede referirse al ordenador que pone
sus recursos (hardware) a disposición a través de una red, y el segundo se refiere al
programa (software) que funciona en dicho ordenador. El servidor atiende y responde a
las peticiones que le hacen los otros ordenadores.
Caracteristicas:
• Invocado automáticamente en el arranque de la máquina
• Puede gestionar peticiones simultáneas de varios clientes
• El programa no termina
• Espera pasivamente la llegada de peticiones de clientes Servidor
• En la misma máquina pueden estar funcionando varios servidores de diferentes
servicios
 Servidor.
• Se suele llamar también “servidor” a la máquina en que se ejecuta la aplicación
servidor
Cliente:
Cliente es el proceso que envía las peticiones al servidor 1
Caracteristicas:

 Invocado por el usuario


 Inicia el contacto con el servidor
 Puede comunicarse con: varios servidores alternativa y simultáneamente 2

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

Arquitectura cliente servidor:


Arquitectura Cliente-Servidor es uno de los estilos arquitectónicos distribuidos más
conocidos, el cual está compuesto por dos componentes, el proveedor y el consumidor. El
proveedor es un servidor que brinda una serie de servicios o recursos los cuales son
consumido por el Cliente.
En una arquitectura Cliente-Servidor existe un servidor y múltiples clientes que se
conectan al servidor para recuperar todos los recursos necesarios para funcionar, en este
sentido, el cliente solo es una capa para representar los datos y se detonan acciones para
modificar el estado del servidor, mientras que el servidor es el que hace todo el trabajo
pesado.

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.

 Nivel de red o Internet: Genera los paquetes de datos o datagramas, y se encarga de


administrar las direcciones IP. Es considerada la capa más importante ya que cuenta
con los protocolos IP, ARP, ICMP, EGMP o RARP.

 Nivel de transporte: Esta capa se encarga de dar a conocer el estado de las


transmisiones y los datos de enrutamiento. Para ello da uso de los puertos para
realizar una asociación entre una aplicación y los datos.

 Nivel de Aplicación: Es la parte más alta del protocolo TCP/IP, y se encarga de


comunicar las aplicaciones con todas las capas anteriores.8

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)

• Nuevo (New): El thread ha sido creado pero no inicializado, es decir, no se ha


ejecutado todavía el método start(). Se producirá un mensaje de error

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

También podría gustarte