You are on page 1of 26

1. 2. 3. 4. 5.

Definicin de puerto Sockets Conceptos cliente/servidor Definicin de Stream Concurrencia, multiprogramacin y multitarea 6. Servidores iterativos y concurrentes 7. Estndares
M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Stream
Es una secuencia de datos habilitados en un momento dado. Una abstraccin utilizada cuando se leen o escriben archivos, o cuando se realiza una comunicacin mediante sockets.
Son canales preconectados de entradas y salidas entre una computadora, generalmente una secuencia de bytes.
M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Tipos de stream
Las conexiones I/O son conocidas como entrada estndar, salida estndar y salida de error estndar.

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.
M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Ejemplo aplicacin cliente-servidor


1) El cliente lee lneas desde la entrada estndar (flujo inFromUser), las enva al servidor va un socket (flujo outToServer) El servidor lee lneas desde el socket El servidor las convierte a maysculas, y las enva de vuelta al cliente El cliente lee y muestra la lnea modificada desde el socket (flujo inFromServer)

2) 3)

4)

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Concurrencia
Es el nmero mximo de flujos de ejecucin secuenciales (hilos) que podra estar ejecutado simultneamente
Las ejecuciones pueden ser en una mquina multitarea, en una con mltiples procesadores o por medio de una red de datos en varias computadoras. Un programa concurrente puede contener dos o ms procesos que cooperan para llevar a cabo una tarea en comn.
M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Multiprogramacin
Este concepto se refiere a diversas fracciones de memoria las cuales contienen diferentes programas.
Divisin de tiempo compartido en donde diferentes usuarios puedes ejecutar programas propios de forma concurrente usando el mismo sistema desde diferentes computadoras.
M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

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 peticin un thread.
M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Qu pasa cuando varios clientes tratan de conectarse en el mismo tiempo a un servidor?

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Servidores Iterativos
Una forma de ir atendindolos es uno por ciclo, como el programa que atiende pedidos de archivos:
Se acepta una conexin Se lee la peticin Se lee desde el archivo y se escribe en el socket hasta encontrar el fin de archivo.
M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Servidor secuencial (iterativo) atendiendo a ms de un cliente

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Durante la conversacin, el puerto 4444 no puede escuchar otras peticiones

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Solo despus de efectuar la transmisin el puerto 4444 puede volver a escuchar

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Si hay interaccin 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 -

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Qu sucede si el servidor tiene que esperar mucho al usuario?


Timeout de peticin, y puede escuchar al siguiente cliente

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

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 dems tienen que esperar. La mayor parte de espera es debido a las operaciones I/O, hay capacidad de CPU desperdiciada.
M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Servidor concurrente
Un servidor concurrente atiende a varios clientes al mismo tiempo.
Ms an, mientras est atendiendo sigue escuchando. Se trata de crear un nuevo proceso o lnea de ejecucin cada vez que un cliente llega a pedir un servicio.
M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Servidores Concurrentes: hay procesos separados para atender el puerto y para transferir la respuesta o el resultado de la peticin

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Despus que el cliente contacta al servidor, ste crea otro proceso para atender al cliente y queda escuchando el puerto 4444

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Mientras el nuevo proceso est atendiendo al primer cliente, el segundo cliente puede contactar al servidor en el puerto 4444

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Y el servidor crea otro proceso

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Estndares
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 estndares 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
M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

RFC (Request For Comments)


Son un conjunto de informes, propuestas de documentos y estndares 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/
M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Ejemplo SMTP (RFC 5321)

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

Ejemplos: Nmero de RFC


No. RFC 768 783 791 793 Protocolo UDP TFTP IP TCP

894 2131

IP sobre ethernet DHCP

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

2. Creacin de sockets cliente/servidor


Sockets en TCP

Sockets en UDP
Definicin de DAEMON Concepto de Hilos

M.I. Yasmine Macedo Reza Arquitecturas Cliente/Servidor 2013-2

You might also like