Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Internetworking en JAVA
Por qu JAVA ? (Introduccin a JAVA: estructura, IO, paralelismo, OO) La clase InetAddress
Los Sockets
Definicin Sockets TCP Sockets UDP (el multicast UDP) clientes, servidores, concurrencia, mantencion de estado
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Otros Sistemas
Sockets en C Sockets en Perl CORBA
Ejemplos tradicionales:
Cleinte Ping Servidor talk (o chat) Servidor WEB
1- Introduccin
Qu son las arquitecturas cliente/servidor ?
El modelo cliente/servidor (oidor/llamador)
Porque TCP/IP no provee ningun mecanismo que automticamente cree un programa que empeice a ejecutarse cuando llega un mensaje, un programa debe esperar a aceptar una comunicacin ANTES que el requerimiento llegue.
La forma de programar el envo recibo de datos con ditintos protocolos es tambin distinta:
En TCP la forma de transmitir datos es normalmente como un flujo de datos por la conexin establecida. Con UDP se deben armar paquetes de datos que son pasados a la internet para ser transmitidos con el mejor esfuerzo.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
TCP impone una carga bastante mayor a la red que UDP, por lo cual se debe evitar si es razonablemente posible
En general se recomienda, especialmente a principiantes, usar slo TCP en sus aplicaciones. El estilo de programacin es ms secillo. Los programadores slo usan UDP si el protocolo de la aplicacin misma maneja la confiabilidad, si la aplicacin requere usar broadcast o multicast de hardware o la aplicacin no puede tolerar el overhead de un circuito virtual. 9
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Para qu ?
Generalmente se hace ms eficiente el comporatamiento de los servidores con informacin. Informacin muy breve mantenida en el servidor puede hacer ms chicos los mensajes o permite producir respuestas ms rpido.
11
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Cuando el cliente abre un archivo se crea un entrada en la tabla. A la entrada se le asigna un handle para identificar el archivo y se le asigna la posicin actual (inicialmente 0). El cliente recibe el handler como respuesta. Cuando el cliente quiere extrer datos adicionales le envia el handle y la cantidad de bytes. Esto es usado por el servidor para saber gracias a la tabla de dnde exactamente debe extraer los datos (debe actualizar la posicin para que para la prxima vez se pueda hacer lo mismo). Cuando el cliente termina la lectura/escritura enva un mensaje para sea eliminada la entrada de la tabla
12
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
La red manda dos veces el datagrama con requerimiento de lectura Si el computador del cleinte se cae y rebootea el programa. Si el computador se cae antes de poder des-registrarse Si otro cliente se conecta en el mismo port que el que se cay sin avisar En una internet real, donde las mquinas pueden caerse y rebootear y los mensajespueden perderse, llegar atrasados, duplicados o en orden incorrecto un servidor con mantecin de estado puede resultar difcil de programar para hacerlo tolerante a los errores.
13
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
14
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Desventajas:
todas las aplicaciones deben saber cmo comunicarse con las dems. La dinmica se vuelve ms complicada (entrada/salida de aplicaciones)
15
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Desventajas:
se puede saturar el servidor o las lneas.
16
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl