Programación en Ambiente Cliente Servidor

9
 Instituto Tecnológico Superior de Acayucan Materia: Programac ión en Ambiente Cliente Servidor Docente: Lucia del Carmen Ugarte Sánchez

description

Investigación sobre todo lo esencial que se debe conocer sobre la programación en ambiente cliente servidor.

Transcript of Programación en Ambiente Cliente Servidor

  • Instituto Tecnolgico Superior de Acayucan

    Materia:

    Programacin en Ambiente Cliente Servidor

    Docente:

    Lucia del Carmen Ugarte Snchez

  • 1 Arquitectura del modelo cliente/servidor ................................................................................ 1

    1.2 Modelos de dos y tres capas ................................................................................................. 3

    1.3 Usos y Aplicaciones .............................................................................................................. 5

    1.4 Comunicacin entre programas ............................................................................................ 6

    1.5. Modelos de computacin distribuida................................................................................... 7

    1.5.1. RMI .................................................................................................................................. 7

  • Cliente Servidor Pgina 1

    OBJETIVO GENERAL DEL CURSO Analiza y disea soluciones de aplicaciones distribuidas utilizando los principales middlewares para

    el desarrollo de sistemas cliente/servidor.

    Competencia especfica a desarrollar

    Conocer los conceptos tericos bsicos relacionados con el modelo cliente/servidor.

    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.

  • Cliente Servidor Pgina 2

    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.

    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.

  • Cliente Servidor Pgina 3

    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.

    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 l

    servicio

  • Cliente Servidor Pgina 4

    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

    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

  • Cliente Servidor Pgina 5

    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

    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.

  • Cliente Servidor Pgina 6

    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.

  • Cliente Servidor Pgina 7

    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 mquinas 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.

    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).

    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.