Você está na página 1de 23

Alumno: Calzada meza, Jos Antonio Tema: Cliente Servidor

TEMA I:
EL PARADIGMA CLIENTE SERVIDOR

EL PARADIGMA CLIENTE SERVIDOR

En la prctica el esquema de programacin mas utilizado para la implementacin de aplicaciones distribuidas es el paradigma cliente - servidor. La motivacin fundamental para el empleo del paradigma cliente - servidor surge del problema del rendezvous. Para entender dicho problema, imaginemos un tcnico de computadoras que inicia la ejecucin de dos programas en mquinas distintas y que tiene la intencin de que dichos programas puedan comunicar entre s. Una vez iniciado el primer programa este enva un mensaje a su contertulio. La conexin con la maquina a la cual va dirigido el mensaje se puede establecer en un intervalo de unos pocos milisegundos (recordar que las computadoras funcionan a velocidades muchos ordenes de magnitud por encima de los humanos), por lo que el proceso recin lanzado determina que su contertulio todava no existe, con lo cual emite un mensaje de error y finaliza su ejecucin.

EL PARADIGMA CLIENTE-SERVIDOR COMO


ABSTRACCIN

El modelo de paso de mensajes


No especifica cmo se sincronizan los procesos No especifica cuantos tipos de procesos comunican No especifica el protocolo (dilogo) a seguir entre los procesos

El paradigma cliente-servidor es una abstraccin del modelo de paso de mensajes

Especifica cmo se sincronizan los procesos: el servidor espera de forma pasiva la llegada de peticiones de clientes Especifica que hay dos tipos de procesos y sus roles: servidores y clientes Especifica el modelo de dilogo basado en peticin-respuesta

Restringirnos al modelo cliente-servidor, limita lo que podemos hacer con una aplicacin distribuida, pero abstrae algunos de los problemas asociados al IPC Al desarrollar con APIs cliente-servidor (i.e. servlets) se percibe esa abstraccin

EL PARADIGMA CLIENTE-SERVIDOR COMO


ARQUITECTURA SOFTWARE

Definicin de arquitectura de un sistema software La arquitectura comprende la enumeracin de los componentes software especificando sus interfaces y la relacin que estos guardan entre s Un patrn arquitectural es una plantilla o descripcin que puede aplicarse al diseo de arquitecturas de sistemas que tienen una problemtica similar El modelo cliente servidor es un patrn arquitectural de software distribuido que define dos tipos de componentes y un modelo de interaccin basado en un dilogo peticin-respuesta Este patrn arquitectural puede aplicarse al diseo de aplicaciones distribuidas en mltiples niveles de abstraccin

EL PARADIGMA CLIENTE-SERVIDOR COMO


ARQUITECTURA SOFTWARE

El patrn cliente-servidor trata de proporcionar una arquitectura escalable para el desarrollo de aplicaciones distribuidas en la que intervienen slo dos tipos de procesos: clientes y servidores La interaccin entre el cliente y el servidor es sncrona El servidor
Es pasivo, espera las peticiones de los clientes Cuando recibe peticiones, debe procesarlas y ofrecer una respuesta Suele ser diseado con objetivos de eficiencia

El cliente
Es activo, tiene la iniciativa de iniciar el dilogo con el servidor enviando peticiones Por cada peticin enviada, se debe obtener una respuesta Suele ser diseado con el objetivo de interaccionar con el usuario final

EL PARADIGMA CLIENTE-SERVIDOR COMO


ARQUITECTURA DE SISTEMA

Un sistema distribuido est compuesto por Nodos de procesamiento (ordenadores) Infraestructuras de comunicaciones (red) En muchas ocasiones se eligen caractersticas especficas sobre los nodos de procesamiento en trminos de hardware, sistema operativo, prestaciones, etc. Estas caractersticas dependen del papel que el nodo est destinado a representar En muchas ocasiones, los ordenadores que estn destinados a almacenar procesos servidor (desde el punto de vista de arquitectura software) tambin son denominados servidores ellos mismos En este caso, por tanto, la palabra servidor se refiere a un equipo, no a un proceso

TEMA II:
CLIENTE - SERVIDOR

CLIENTE - SERVIDOR

TCP es un protocolo orientado a conexin. No hay relaciones maestro/esclavo. Las aplicaciones, sin embargo, utilizan un modelo cliente/servidor en las comunicaciones. Un servidor es una aplicacin que ofrece un servicio a usuarios de Internet; un cliente es el que pide ese servicio. Una aplicacin consta de una parte de servidor y una de cliente, que se pueden ejecutar en el mismo o en diferentes sistemas. Los usuarios invocan la parte cliente de la aplicacin, que construye una solicitud para ese servicio y se la enva al servidor de la aplicacin que usa TCP/IP como transporte. El servidor es un programa que recibe una solicitud, realiza el servicio requerido y devuelve los resultados en forma de una respuesta. Generalmente un servidor puede tratar mltiples peticiones(mltiples clientes) al mismo tiempo.

CLIENTE - SERVIDOR

Algunos servidores esperan las solicitudes en puertos bien conocidos de modo que sus clientes saben a que zcalo IP deben dirigir sus peticiones. El cliente emplea un puerto arbitrario para comunicarse. Los clientes que se quieren comunicar con un servidor que no usa un puerto bien conocido tienen otro mecanismo para saber a qu puerto dirigirse. Este mecanismo podra usar un servicio de registro como Portmap, que utiliza un puerto bien conocido.

CLIENTES Y SERVIDORES: QUIN HACE QU?


Las aplicaciones distribuidas existen para ofrecer unas funcionalidades al usuario La arquitectura abstracta de una aplicacin distribuida clienteservidor es siempre Capa de presentacin Suele residir en el cliente El servidor puede tener funcionalidades de presentacin menores Lgica de negocio: Puede residir en el servidor Puede residir en el cliente Puede residir parte en el cliente y parte en el servidor Capa de servicios: Es compartida, aunque suele tener ms peso en el servidor

EJEMPLOS DE APLICACIONES CLIENTE/SERVIDOR


La capa de presentacin requiere, entre otros: Capacidad para representar documentos HTML C Capacidad para representar imgenes en diferentes formatos C Capacidad para representar e interpretar otros tipos datos (pdf, applets, etc.) C La lgica de la aplicacin requiere, entre otros: No hay mucha lgica de negocio en un servidor/cliente web clsico Hay algo en un cliente o en un servidor web que no tenga que ver con Presentar los datos Proporcionar un servicio de lectura/codificacin/envo de ficheros? La capa de servicios debe proporcionar, entre otros La implementacin del protocolo HTTP Capacidad de acceder a ficheros identificados por un path HTTP S Comprimir y descomprimir un fichero (si se soporta el encoding gzip) C

EJEMPLOS DE APLICACIONES CLIENTE/SERVIDOR


Lgica de negocio en pseudocdigo VENTA (vendedor, numeroProductos, costeProducto){ pagado = numeroProductos*costeProducto ingresos = pagado pagado*0,1 pagado*0,15 InsertarEnTabla(TESORERIA, ingresos) BorrarDeTabla(INVENTARIO, numeroProductos) InsertarTabla(MATERIALES, numeroProductos, pagado*0,15) InsertarEnTabla(COMISIONES, vendedor, pagado*0,1)} Quin hace qu? Evidentemente, las tablas de datos deben estar en el servidor para que diferentes tiendas puedan compartirlas (servicio de BBDD) Evidentemente, en el cliente hay una GUI que permite al vendedor introducir su identificador, el nmero de productos vendidos y el coste por producto pactado Quin implementa la lgica de negocio? Qu pinta tiene el protocolo de nivel de aplicacin que necesitamos? Ambas respuestas estn muy relacionadas

EJEMPLOS DE APLICACIONES CLIENTE/SERVIDOR

Solucin 1: El servidor proporciona al cliente un servicio para hacer operaciones InsertarEnTabla(tabla, columna, valor) BorrarDeLaTabla(tabla, comuna, valor) Se define un protocolo de peticin-respuesta para implementarlo Solucin 2: El servidor proporciona al cliente un servicio para hacer operaciones ActualizarVenta(vendedor, numeroProductos, costePorProducto) Se define un protocolo de peticin-respuesta para implementarlo Puede haber muchas otras soluciones intermedias Solucin 1: Donde reside la lgica de negocio, en el cliente o en el servidor? Solucin 2: Dnde reside la lgica de negocio, en el cliente o en el servidor?

CLIENTES GORDOS, FLACOS E HBRIDOS


Decimos que un cliente es Flaco (thin) Cuando no implementa en absoluto la lgica de la aplicacin Es un mero intermediario entre el usuario y el servidor Requiere muy pocos recursos hardware Gordo (thick, fat) Cuando implementa la mayor parte de la lgica de la aplicacin Procesa la informacin del usuario antes de comunicar con el servidor Requiere capacidad de proceso y, normalmente, capacidad de almacenamiento Hbrido (hybrid) Implementa una parte de la lgica de aplicacin Si optamos por una arquitectura basada en un cliente flaco/hbrido El servidor ser ms complicado Si optamos por una arquitectura basada en un cliente gordo El servidor ser ms sencillo

SERVIDORES CON ESTADOS Y SIN ESTADOS

SERVIDORES CON ESTADOS Y SIN ESTADOS

TEMA III:
Mecanismos de cach en la arquitectura cliente-servidor

MECANISMOS DE CACH
El mecanismo de cach, en el contexto de las redes de ordenadores, consiste en duplicar (una parte de) los datos que posee un nodo, en otro distinto del original, con el objetivo de mejorar las prestaciones del acceso a los mismos Las cachs son un elemento esencial de las aplicaciones cliente-servidor Para comprender el funcionamiento de una cach observemos lo siguiente:

MECANISMOS DE CACH

MECANISMOS DE CACH

El mecanismo de cach, en el contexto de las redes de ordenadores, consiste en duplicar (una parte de) los datos que posee un nodo, en otro distinto del original, con el objetivo de mejorar las prestaciones del acceso a los mismos Las cachs son un elemento esencial de las aplicaciones cliente-servidor Para comprender el funcionamiento de una cach observemos lo siguiente:

MECANISMOS DE CACH

El mecanismo de cach, en el contexto de las redes de ordenadores, consiste en duplicar (una parte de) los datos que posee un nodo, en otro distinto del original, con el objetivo de mejorar las prestaciones del acceso a los mismos Las cachs son un elemento esencial de las aplicaciones cliente-servidor Para comprender el funcionamiento de una cach observemos lo siguiente:

POR QU LA CACH MEJORA LA EFICIENCIA?


Mejora en trminos de latencia Escenario: t1 = Latencia cliente-cach, t2 = Latencia cach-servidor Descarga de servidor (proceso inmediato): TServ = t1 + t2 + t2 + t1 = 2(t1+t2) Descarga de cach (proceso inmediato): TCache = t1 + t1 = 2t1 La descarga desde la cach siempre tiene latencia de comunicacin menor Mejora en trminos de ancho de banda/tiempo de servicio Escenario: Fichero de 1G, 100 clientes que comparten la misma cach Sin cach: el servidor proporciona 100G bytes de datos a travs de su lnea Con cach: el servidor proporciona 1G byte de datos a travs de su lnea Mejora en trminos de escalabilidad Parte del trabajo del servidor la hace la cach: el servidor soporta ms clientes En general, la presencia de un sistema de cach permite que el cliente tenga la respuesta a sus peticiones de manera mucho ms rpida

Você também pode gostar