Está en la página 1de 13

[INSTITUTO TECNOLGICO DE COMITANCILLO]

PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR.

INSTITUTO TECNOLGICO DE COMITANCILLO

MATERIA:
PROGRAMACION EN AMBIENTE CLIENTE-SERVIDOR

PROFESOR:
LIC. ISIDRO LOPEZ RUIZ

PRESENTA:
MICHEL CABRERA JIMENEZ

INVESTIGACION 1 UNIDAD:
CONTEXTO DE LA PROGRAMACION CLIENTE/SERVIDOR

CARRERA:
ING. EN INFOMATICA 7: SEMESTRE GRUPO: B

SAN PEDRO COMITANCILLO, OAX. SEPTIEMBRE DEL 2013. Ingeniera Informatica


UNIDAD 1: | CONTEXTO DE LA PROGRACION CLIENTE/SERVIDOR!

[INSTITUTO TECNOLGICO DE COMITANCILLO]

PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR.

1.1 Arquitectura del modelo cliente/servidor


Entre las principales definiciones se tiene: Desde un punto de vista conceptual: Es un modelo para construir sistemas de informacin, que se sustenta en la idea de repartir el tratamiento de la informacin y los datos por todo el sistema informtico, permitiendo mejorar el rendimiento del sistema global de informacin. En trminos de arquitectura: Los distintos aspectos que caracterizan a una aplicacin (proceso, almacenamiento, control y operaciones de entrada y salida de datos) en el sentido ms amplio, estn situados en ms de un computador, los cuales se encuentran interconectados mediante una red de comunicaciones. Cliente/Servidor Es la tecnologa que proporciona al usuario final el acceso transparente a las aplicaciones, datos, servicios de cmputo o cualquier otro recurso del grupo de trabajo y/o, a travs de la organizacin, en mltiples plataformas. El modelo soporta un medio ambiente distribuido en el cual los requerimientos de servicio hechos por estaciones de trabajo inteligentes o "clientes'', resultan en un trabajo realizado por otros computadores llamados servidores". Qu es una Arquitectura? Una arquitectura es un entramado de componentes funcionales que aprovechando diferentes estndares, convenciones, reglas y procesos, permite integrar una amplia gama de productos y servicios informticos, de manera que pueden ser utilizados eficazmente dentro de la organizacin. Debemos sealar que para seleccionar el modelo de una arquitectura, hay que partir del contexto tecnolgico y organizativo del momento y, que la arquitectura Cliente/Servidor requiere una determinada especializacin de cada uno de los diferentes componentes que la integran. http://docente.ucol.mx/sadanary/public_html/bd/cs.htm
Ingeniera Informatica
UNIDAD 1: | CONTEXTO DE LA PROGRACION CLIENTE/SERVIDOR!

[INSTITUTO TECNOLGICO DE COMITANCILLO]

PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR.

La arquitectura cliente-servidor define una relacin entre el usuario de una estacin de trabajo (el cliente frontal) y un servidor posterior de archivos, impresin, comunicaciones o fax, u otro tipo de sistema proveedor de servicios. El cliente debe ser un sistema inteligente con su propia capacidad de procesamiento para descargar en parte al sistema posterior (sta es la base del modelo cliente-servidor). Esta relacin consiste en una secuencia de llamadas seguidas de respuestas. Situar servicios de archivos (u otro tipo de servicios) en sistemas posteriores dedicados tiene muchas ventajas. Es ms sencillo realizar el mantenimiento y la seguridad de unos servidores situados en un mismo lugar, y ms simple el proceso de realizacin de copias de seguridad, siempre que los datos se encuentren en una nica ubicacin y una misma autoridad los gestione. Existen numerosas configuraciones

cliente-servidor posibles. En la Figura 3.1, varios clientes acceden a un nico servidor. Esta es la configuracin usual de una pequea red de rea local (LAN, Local Area Network). La Figura 3.2 muestra un modelo de base de datos distribuida en el que los clientes acceden a los datos ubicados en varios servidores.
http://www.angelfire.com/my/jimena/so2/com_guia2.htm

El Esquema de funcionamiento de un Sistema Cliente/Servidor sera: 1. El cliente solicita una informacin al servidor. 2. El servidor recibe la peticin del cliente. 3. El servidor procesa dicha solicitud. 4. El servidor enva el resultado obtenido al cliente. 5. El cliente recibe el resultado y lo procesa.

Ingeniera Informatica

UNIDAD 1: | CONTEXTO DE LA PROGRACION CLIENTE/SERVIDOR!

[INSTITUTO TECNOLGICO DE COMITANCILLO]

PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR.

Componentes de la arquitectura cliente/servidor El proceso cliente que es quien inicia el dilogo, el proceso servidor que pasivamente espera a que lleguen peticiones de servicio y el middleware que corresponde a la interfaz que provee la conectividad entre el cliente y el servidor para poder intercambiar mensajes. Para entender en forma ms ordenada y clara los conceptos y elementos involucrados en esta tecnologa se puede aplicar una descomposicin o arquitectura de niveles.

Nivel de Presentacin: Agrupa a todos los elementos asociados al componente Cliente. Nivel de Aplicacin: Agrupa a todos los elementos asociados al componente Servidor. Nivel de comunicacin: Agrupa a todos los elementos que hacen posible la comunicacin entre los componentes Cliente y servidor. Nivel de base de datos: Agrupa a todas las actividades asociadas al acceso de los datos. http://oposicionestic.blogspot.mx/2011/06/arquitectura-cliente-servidor.html

1.2 Modelos de dos y tres capas


Arquitectura en 2 niveles La arquitectura en 2 niveles se utiliza para describir los sistemas cliente/servidor en donde el cliente solicita recursos y el servidor responde directamente a la solicitud, con sus propios recursos. Esto significa que el servidor no requiere otra aplicacin para proporcionar parte del servicio. Arquitectura en 3 niveles En la arquitectura en 3 niveles, existe un nivel intermediario. Esto significa que la arquitectura generalmente est compartida por: 1. Un cliente, es decir, el equipo que solicita los recursos, equipado con una interfaz de usuario (generalmente un navegador Web) para la presentacin
Ingeniera Informatica
UNIDAD 1: | CONTEXTO DE LA PROGRACION CLIENTE/SERVIDOR!

[INSTITUTO TECNOLGICO DE COMITANCILLO]

PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR.

2. El servidor de aplicaciones (tambin denominado software intermedio), cuya tarea es proporcionar los recursos solicitados, pero que requiere de otro servidor para hacerlo 3. El servidor de datos, que proporciona al servidor de aplicaciones los datos que requiere

Comparacin entre ambos tipos de arquitecturas La arquitectura en 2 niveles es, por lo tanto, una arquitectura cliente/servidor en la que el servidor es polivalente, es decir, puede responder directamente a todas las solicitudes de recursos del cliente. Sin embargo, en la arquitectura en 3 niveles, las aplicaciones al nivel del servidor son descentralizadas de uno a otro, es decir, cada servidor se especializa en una determinada tarea, (por ejemplo: servidor web/servidor de bases de datos). La arquitectura en 3 niveles permite:

Un mayor grado de flexibilidad Mayor seguridad, ya que la seguridad se puede definir independientemente para cada servicio y en cada nivel

Mejor rendimiento, ya que las tareas se comparten entre servidores


http://es.kioskea.net/contents/147-redes-arquitectura-cliente-servidor-en-3-niveles

Ingeniera Informatica

UNIDAD 1: | CONTEXTO DE LA PROGRACION CLIENTE/SERVIDOR!

[INSTITUTO TECNOLGICO DE COMITANCILLO]

PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR.

1.3 Usos y Aplicaciones


Cuando la operacin entre clientes y servidores se realiza a travs de una red (como es el caso de Internet), la informacin viaja codificada a lo largo de redes que pueden ser del tamao de un edificio o de tamao planetario. En caso de redes grandes, aparte de servidores y clientes, se necesita un tercer tipo de mquinas para gestionar las transmisiones. Se denominan enrutadores ("Routers"), y funcionan como elementos de recepcin y transmisin de trfico Internet. El paradigma cliente-servidor no solo se utiliza en referencia a las mquinas fsicas, tambin a los programas que las hacen funcionar segn su utilidad. Por ejemplo, son frecuentes expresiones tales como "cliente de correo" o "servidor de noticias" en referencia a programas. La primera se refiere al que utilizamos normalmente para interrogar nuestro buzn e-mail, "bajar" el correo y manipularlo (verlo, imprimirlo, borrarlo, etc.). El segundo se refiere a un programa o sistema de ellos, que en un servidor (mquina) realiza el trabajo de alojar los mensajes de noticias, atender las peticiones de los "clientes", etc. Observe que en realidad, el concepto cliente/servidor es muy genrico, y que puede ser entendido incluso en el mbito de una sola mquina, donde unas aplicaciones pueden prestar servicio a otras. Sin embargo, su significado desde el punto de vista informtico suele presuponer la existencia de varias mquinas (al menos dos) unidas en una red:

Un servidor es cualquier mquina que dispone un recurso para ser compartido. Un cliente es cualquier mquina que necesita un recurso externo. Un servidor de determinado recurso puede ser cliente de otros y a la inversa. Un cliente puede ser a su vez servidor de otro recurso. http://www.zator.com/Internet/A4_4.htm

Ingeniera Informatica

UNIDAD 1: | CONTEXTO DE LA PROGRACION CLIENTE/SERVIDOR!

[INSTITUTO TECNOLGICO DE COMITANCILLO]

PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR.

1.4 Comunicacin entre programas


El proceso para la creacin de un servicio siempre comienza con la creacin del Socker. As como el cliente necesita llamadas especficas en determinados momentos, el servidor trabajo de modo similar pero aade unas pocas llamadas extras al sistema. El servidor utiliza la llamada del sistema Socket, pero debe hacer un trabajo extra que era opcional para el cliente, el cliente siempre realiza una conexin activa porque la persigue enrgicamente los servidores por otro lado necesitan proporcionar un numero de puesto especifico y consiste a los programas clientes si les va a prestar servicio. El programa servidor que escriba deber utilizar las llamadas de sistema socker (), bind (), listen (), accept (). Y mientras el programa cliente es una conexin activa, el servidor es una conexin pasiva. Las llamadas del sistemas () y accept () crean una conexin solo cuando el cliente pide una conexin (similar a la accin de responder al timbre de un telfono.

El ejemplo de servidor escucha en un socket (puerto 8000) esperando peticiones entrantes. Cualquier programa, como el cliente de ejemplo, puede conectar con este servidor y pasarle hasta 16.384 bytes de datos. El servidor trata los datos como datos ASCII y los convierte en maysculas antes de pasrselos a! programa cliente. Estos dos sencillos programas se pueden volver a utilizar fcilmente cuando se escriban programas cliente-servidor basados en socket. Los servidores que pueden recibir muchas peticiones simultneas lo usan para crear un proceso separado para la administracin de peticiones de servicio constitucionalmente caras. El servidor crea un socket permanente para la escucha de peticiones de servicio; cuando un cliente conecta con el servidor, se crea un socket temporal. Cada vez que un cliente conecta con un servidor, se abre un nuevo socket temporal entre el cliente y el servidor.
http://www.buenastareas.com/ensayos/2-1-1-Comunicacin-Con-Cliente-ServidorSockets/1613125.html

Ingeniera Informatica

UNIDAD 1: | CONTEXTO DE LA PROGRACION CLIENTE/SERVIDOR!

[INSTITUTO TECNOLGICO DE COMITANCILLO]

PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR.

1.5. Modelos de computacin distribuida


La computacin distribuida (o grid computing / network computing) es un modelo de computacin basado en el uso de recursos de una red de maquinas independientes para el procesado de unidades discretas de datos a travs de un protocolo comn cuyo objetivo es crear una potente red de procesado de datos que puede incluso superar a los grandes superordenadores. Estas redes de computacin distribuida son mayoritariamente utilizadas para investigaciones cientficas que necesitan largos tiempos de procesado mediante ordenadores Un sistema distribuido est compuesto de nodos, posiblemente heterogneos, conectados mediante una red. Un sistema de esta clase puede utilizarse efectivamente solo si el software es capaz de presentar al usuario el concepto de single system image (SSI) sobre el sistema fsicamente distribuido. De esta forma todos los recursos de un nodo deberan poder accederse transparentemente desde cualquier otro nodo.
http://campusvirtual.unex.es/cala/epistemowikia/index.php?title=Computacion_Distribuida_/_Computacin_Grid

1.5.1. RMI
RMI (Java Remote Method Invocation) es un mecanismo ofrecido por Java para invocar un mtodo de manera remota. Forma parte del entorno estndar de ejecucin de Java y proporciona un mecanismo simple para la comunicacin de servidores en aplicaciones distribuidas basadas exclusivamente en Java. Si se requiere comunicacin entre otras tecnologas debe utilizarse CORBA o SOAP en lugar de RMI. RMI se caracteriza por la facilidad de su uso en la programacin por estar especficamente diseado para Java; proporciona paso de objetos por referencia (no permitido por SOAP), recoleccin de basura distribuida y paso de tipos arbitrarios (funcionalidad no provista por CORBA). A travs de RMI, un programa Java puede exportar un objeto, con lo que dicho objeto estar accesible a travs de la red y el programa permanece a la espera de peticiones en un puerto TCP. A partir de ese momento, un cliente puede conectarse e invocar los mtodos proporcionados por el objeto. La invocacin se compone de los siguientes pasos:

Encapsulado (marshalling) de los parmetros (utilizando la funcionalidad de serializacin de Java).


Ingeniera Informatica
UNIDAD 1: | CONTEXTO DE LA PROGRACION CLIENTE/SERVIDOR!

[INSTITUTO TECNOLGICO DE COMITANCILLO]


PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR.

Invocacin del mtodo (del cliente sobre el servidor). El invocador se queda esperando una respuesta. Al terminar la ejecucin, el servidor serializa el valor de retorno (si lo hay) y lo enva al cliente. El cdigo cliente recibe la respuesta y contina como si la invocacin hubiera sido local. La arquitectura RMI puede verse como un modelo de cuatro capas. Primera capa

La primera capa es la de aplicacin y se corresponde con la implementacin real de las aplicaciones cliente y servidor. Aqu tienen lugar las llamadas a alto nivel para acceder y exportar objetos remotos. Cualquier aplicacin que quiera que sus mtodos estn disponibles para su acceso por clientes remotos debe declarar dichos mtodos en una interfaz que extienda java.rmi.Remote.

Segunda capa

La capa 2 es la capa proxy, o capa stub-skeleton. Esta capa es la que interacta directamente con la capa de aplicacin. Todas las llamadas a objetos remotos y acciones junto con sus parmetros y retorno de objetos tienen lugar en esta capa.

Tercera capa

La capa 3 es la de referencia remota, y es responsable del manejo de la parte semntica de las invocaciones remotas. Tambin es responsable de la gestin de la replicacin de objetos y realizacin de tareas especficas de la implementacin con los objetos remotos, como el establecimiento de las persistencias semnticas y estrategias adecuadas para la recuperacin de conexiones perdidas. En esta capa se espera una conexin de tipo stream desde la capa de transporte.

Cuarta Capa

La capa 4 es la de transporte. Es la responsable de realizar las conexiones necesarias y manejo del transporte de los datos de una mquina a otra. El protocolo de transporte subyacente para RMI es JRMP (Java Remote Method Protocol), que solamente es "comprendido" por programas Java.
http://es.wikipedia.org/wiki/Java_Remote_Method_Invocation

Ingeniera Informatica

UNIDAD 1: | CONTEXTO DE LA PROGRACION CLIENTE/SERVIDOR!

[INSTITUTO TECNOLGICO DE COMITANCILLO]

PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR.

1.5.2. COM/DCOM.
Microsoft Distributed COM (DCOM) extiende COM (Component Object Model) para soportar comunicacin entre objetos en ordenadores distintos, en una LAN, WAN, o incluso en Internet. Con DCOM una aplicacin puede ser distribuida en lugares que dan ms sentido al cliente y a la aplicacin. Como DCOM es una evolucin lgica de COM, se pueden utilizar los componentes creados en aplicaciones basadas en COM, y trasladarlas a entornos distribuidos. DCOM maneja detalles muy bajos de protocolos de red, por lo que uno se puede centrar en la realidad de los negocios: proporcionar soluciones a clientes.

La arquitectura DCOM DCOM es una extensin de COM, y ste define como los componentes y sus clientes interactan entre s. Esta interaccin es definida de tal manera que el cliente y el componente pueden conectar sin la necesidad de un sistema intermedio. El cliente llama a los mtodos del componente sin tener que preocuparse de niveles ms complejos. La Figura 1 ilustra esto en la notacin de COM

En los actuales sistemas operativos, los procesos estn separados unos de otros. Un cliente que necesita comunicarse con un componente en otro proceso no puede llamarlo directamente, y tendr que utilizar alguna forma de comunicacin entre procesos que proporcione el sistema operativo. COM proporciona este tipo de comunicacin de una forma transparente: intercepta las llamadas del cliente y las reenva al componente que est en otro proceso. La Figura 2 ilustra como las libreras de COM/DCOM proporcionan la forma de comunicar el cliente y el componente:

Ingeniera Informatica

UNIDAD 1: | CONTEXTO DE LA PROGRACION CLIENTE/SERVIDOR!

[INSTITUTO TECNOLGICO DE COMITANCILLO]

PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR.

Cuando el cliente y el componente residen en distintas mquinas, DCOM simplemente reemplaza la comunicacin entre procesos locales por un protocolo de red. Ni el cliente ni el componente se enteran de que la unin que los conecta es ahora un poco ms grande. La Figura 3 representa la arquitectura DCOM en su conjunto: Las librera de COM proporcionan servicios orientados a objetos a los clientes y componentes, y utilizan RPC y un proveedor de seguridad para generar paquetes de red estndar que entienda el protocolo estndar de DCOM.

http://www.elai.upm.es/webantigua/spain/Investiga/GCII/areas/administracion/DCOM.htm#Introduccin

1.5.3. Servicios Web.


Los servicios web son esenciales en las Infraestructuras de Datos Espaciales (IDE) porque permiten a los usuarios el acceder a datos de manera estndar mediante Sistemas de Informacin Geogrfica y otras aplicaciones a travs de Internet. Debido a que este tipo de servicios sirven como protocolo entre las aplicaciones cliente y nuestro servidor de mapas, no pueden ser utilizados directamente en un navegador como Microsoft Internet Explorer, Mozilla Firefox o Google Chrome. http://sitel.jalisco.gob.mx/portal2/index.php/top-servicios Adems de HTML, el desarrollo de nuevos lenguajes como XML ha hecho posible la utilizacin de estndares que permiten que las aplicaciones descritas en distintos lenguajes de programacin y ejecutadas en distintas plataformas puedan interoperar entre ellas, es decir, puedan intercambiar los datos. De esta forma, los distintos servicios que se ofrecen en la Word Wide Web pueden combinarse para ejecutar operaciones complejas.

Ingeniera Informatica

UNIDAD 1: | CONTEXTO DE LA PROGRACION CLIENTE/SERVIDOR!

[INSTITUTO TECNOLGICO DE COMITANCILLO]

PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR.

La interoperabilidad puede ser de 3 tipos: Tcnica: capacidad para que los sistemas de informacin intercambien seales y se realiza tanto a travs de una conexin fsica (cable, ondas, etc.), como por medio de una serie de protocolos de comunicaciones (TCP/IP, etc). Sintctica: capacidad para que un sistema pueda leer e interpretar los datos de otros sistemas. Para ello se utilizan una serie de aplicaciones como las Interfaz de programacin de aplicaciones que permiten intercambiar y analizar los datos. Semntica: capacidad de intercambiar el contenido de la informacin basndose en el significado. Estos servicios proporcionan mecanismos de comunicacin estndares entre diferentes aplicaciones, que interactan entre s para presentar informacin dinmica al usuario. Para proporcionar interoperabilidad y extensibilidad entre estas aplicaciones, y que al mismo tiempo sea posible su combinacin para realizar operaciones complejas, es necesaria una arquitectura de referencia estndar.
La estructura interna de un servicio web se basa en los siguientes protocolos y normas: SOAP (Simple Object Access Protocol): establece la forma en que dos objetos en diferentes procesos pueden comunicarse mediante el intercambio de datos en lenguaje XML.

UDDI (Universal Description, Discovery and Integration): lista los servicios web y los pone a disposicin de los usuarios.

WDSL (Web Services Description Language): permite que los servicios web describan cmo deben ser tratados por otras aplicaciones.

http://www.hipertexto.info/documentos/web_tecnolog.htm Ingeniera Informatica


UNIDAD 1: | CONTEXTO DE LA PROGRACION CLIENTE/SERVIDOR!

[INSTITUTO TECNOLGICO DE COMITANCILLO]

PROGRAMACION EN AMBIENTE CLIENTE/SERVIDOR.

1.5.4. Otros.
Modelo cliente-servidor: Es el modelo ms utilizado para realizar aplicaciones distribuidas. Existe un proceso servidor y uno o varios procesos clientes. Este modelo se utiliza en muchos servicios de Internet como HTTP, FTP, DNS... Este concepto tambin puede aplicarse a los ordenadores servidor o cliente, cuyo nombre se debe a que la ejecucin de la mayora de sus procesos son de tipo servidor o de tipo cliente. Peer-to-peer: En el modelo cliente-servidor hay una clara diferenciacin. El servidor ofrece a los clientes servicios y los clientes utilizan estos servicios. En sistemas P2P los procesos que participan en la comunicacin realizan los mimos papeles: de cliente y de servidor. Este sistema est ms asociado a lo que es la informtica distribuida, ya que se olvida de la centralizacin y tiene un sistema ms dinmico y descentralizado. Cluster: es un conjunto de ordenadores conectados por una red de alta velocidad (Gigabit Ethernet, Myrineto InfiniBand). Los computadores individuales pueden ser PC convencionales que se instalan en un rack. Todos los ordenadores trabajan como un nico recurso de computacin, mostrndose como un nico sistema. En un cluster todos los ordenadores comparten los discos y los distintos ordenadores que lo forman estn continuamente monitorizando para detectar posibles fallos de hardware. Si se detecta un fallo, se planifica el trabajo del nodo errneo en otro ordenador, de forma que el usuario no percibe la parada del servicio. Los cluster se realizan mediante un middleware que gestiona todo. Un cluster puede ser homogneo (misma arquitectura, SO...) o heterogneo (distintos entornos, middlewares ms complejos). Grid: El concepto de grid, es similar al concepto de cluster. La principal diferencia con un entorno cluster, es que en un entorno grid, los diferentes computadores del grid no pertenecen a un mismo dominio de administracin y por tanto estn sujetos a diferentes polticos de uso y de administracin. La primera mencin, y su definicin viene dada por Ian Foster: "Un sistema que coordina recursos, que no estn sujetos a un control centralizado usando interfaces y protocolos estndares, abiertos y de propsito general para proveer de servicios relevantes".

ftp://www.cc.uah.es/pub/Alumnos/I.T.I.Gestion/Sist.Operativos/TECWeb/T1/web/node/27.html

Ingeniera Informatica

UNIDAD 1: | CONTEXTO DE LA PROGRACION CLIENTE/SERVIDOR!