Post on 05-Feb-2021
1. Definición de puerto
2. Sockets
3. Conceptos cliente/servidor
4. Definición de Stream
5. Concurrencia, multiprogramación y
multitarea
6. Servidores iterativos y concurrentes
7. Estándares
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Stream
• Es una secuencia de datos habilitados en un momento
dado.
• Una abstracción utilizada cuando se leen o escriben
archivos, o cuando se realiza una comunicación mediante
sockets.
• Son canales preconectados de entradas y salidas entre
una computadora, generalmente una secuencia de bytes.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Tipos de stream • Las conexiones I/O son conocidas como entrada estándar, salida
estándar y salida de error estándar.
• Un stream (flujo) es una secuencia de caracteres que fluyen hacia o desde un proceso.
• Un input stream (flujo de entrada) esta ligado a alguna fuente de entrada para el proceso, p.e. teclado o socket.
• Un output stream (flujo de salida) está ligado a una salida del proceso, p.e. monitor o socket.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Ejemplo aplicación cliente-servidor
1) El cliente lee líneas desde la entrada estándar (flujo inFromUser), las envía al servidor vía un socket (flujo outToServer)
2) El servidor lee líneas desde el socket
3) El servidor las convierte a mayúsculas, y las envía de vuelta al cliente
4) El cliente lee y muestra la línea modificada desde el socket (flujo inFromServer)
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Concurrencia
• Es el número máximo de flujos de ejecución secuenciales
(hilos) que podría estar ejecutado simultáneamente
• Las ejecuciones pueden ser en una máquina multitarea,
en una con múltiples procesadores o por medio de una
red de datos en varias computadoras.
• Un programa concurrente puede contener dos o más
procesos que cooperan para llevar a cabo una tarea en
común.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Multiprogramación
• Este concepto se refiere a diversas fracciones de
memoria las cuales contienen diferentes programas.
• División de tiempo compartido en donde diferentes
usuarios puedes ejecutar programas propios de forma
concurrente usando el mismo sistema desde la misma o
diferentes computadoras.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Multitarea
• La multitarea de computadoras se divide en dos campos:
procesos y threads (o procesos de poco peso)
• La multitarea son varias entidades (tareas) ejecutables
activas al mismo tiempo
• Ejemplo:
• Un navegador
• Cada ventana es un nuevo proceso y cada petición un thread.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
¿Qué pasa cuando varios clientes tratan
de conectarse en el mismo tiempo a un
servidor?
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Servidores Iterativos
• Una forma de ir atendiéndolos es uno por ciclo, como el
programa que atiende pedidos de archivos:
• Se acepta una conexión
• Se lee la petición
• Se lee desde el archivo y se escribe en el socket hasta encontrar
el fin de archivo.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Servidor secuencial (iterativo)
atendiendo a más de un cliente
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Durante la conversación, el puerto 4444 no puede
escuchar otras peticiones
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Solo después de efectuar la transmisión el puerto
4444 puede volver a escuchar
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Si hay interacción del servicio con el usuario, p. e.
transferir un archivo y digitar el nombre; el servidor
queda en espera de que el usuario conteste. –
Ineficiente -
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
¿Qué sucede si el servidor tiene que
esperar mucho al usuario? • Timeout de petición, y puede escuchar al siguiente cliente
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Desventajas servidores iterativos
• El problema es que todo cliente debe esperar su turno
para ser atendido.
• Si uno de ellos pide un archivo muy grande los demás
tienen que esperar.
• La mayor parte de espera es debido a las operaciones
I/O, hay capacidad de CPU desperdiciada.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Servidor concurrente
• Un servidor concurrente atiende a varios clientes al
mismo tiempo.
• Más aún, mientras está atendiendo sigue escuchando.
• Se trata de crear un nuevo proceso o línea de ejecución
cada vez que un cliente “llega” a pedir un servicio.
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Servidores Concurrentes: hay procesos
separados para atender el puerto y para
transferir la respuesta o el resultado de
la petición
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Después que el cliente contacta al servidor,
éste crea otro proceso para atender al cliente y
queda escuchando el puerto 4444
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Mientras el nuevo proceso está atendiendo
al primer cliente, el segundo cliente puede
contactar al servidor en el puerto 4444
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine
Macedo Reza
Y el servidor crea otro proceso…
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Estándares
POSIX
(Portable Operating System Interface for UNIX)
• La norma POSIX fue elaborada por IEEE para conseguir
la portabilidad en distintos entornos UNIX.
• La familia de estándares POSIX es designada
formalmente como IEEE 1003.
• En donde se definen varios puntos de la funcionalidad
como scheduling y el uso de hilos, entre otros
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
RFC (Request For Comments)
• Son un conjunto de informes, propuestas de documentos
y estándares de protocolos que describen el
funcionamiento interno de la Internet.
• Cada uno de estos documentos contiene una propuesta
oficial para generar un nuevo protocolo de Internet.
http://www.rfc-editor.org/
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Ejemplo SMTP (RFC 5321)
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
Ejemplos: Número de RFC No. RFC Protocolo
768 UDP
783 TFTP
791 IP
793 TCP
894 IP sobre ethernet
2131 DHCP
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza
2. Creación de sockets cliente/servidor
• Sockets en TCP
• Sockets en UDP
• Definición de DAEMON
• Concepto de Hilos
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza