Está en la página 1de 12

Tema 1.

Arquitectura Cliente/Servidor

SCS Sistemas Cliente/Servidor 4o inform atica http://ccia.ei.uvigo.es/docencia/SCS 3 de octubre de 2008

FJRP, FMBR 2008/09 ccia SCS

1.1 Sistemas Distribuidos

1.1.1 Denici on y caracter sticas (a) Deniciones computaci on distribuida. Modelo de computaci on adaptado a la ejecuci on de programas en sistemas distribuidos sistema distribuido. Sistema inform atico compuesto por un conjunto de nodos de procesamiento comunicados y coordinados mediante una red que permite el intercambio de mensajes entre los mismos Esquema

Middleware : Abstracci on que oculta las caracter sticas espec cas de cada nodo (hardware y S.O.)y proporciona un interfaz com un que permite la interacci on entre los componentes del sistema Conjunto de componentes y tecnolog as que se extienden a trav es de los distintos equipos formando una capa com un que ofrece una interfaz que uniformiza las caracter sticas de los equipos, los dota de coherencia y permite la comunicaci on entre ellos Ejemplos: paso de mensajes mediate sockets invocaci on remota de procedimientos objetos distribuidos

FJRP, FMBR 2008/09 ccia SCS

(b) Caracter sticas t picas Finalidad: hacer m as accesibles los recursos disponibles Caracter sticas: Transparentes: ocultan el hecho de que los recursos est en distribuidos transparencia de acceso : ocultar las diferencias en la representaci on de los datos (formatos) y en el acceso a los recursos transparencia de ubicaci on y migraci on: ocultar d onde se ubica un recurso y el hecho de que un recurso pueda ser movido a otra ubicaci on transparencia de replicaci on: ocultar que un recursos pueda estar replicado e distintas ubicaciones transparencia de concurrencia: permitir que un recurso se comparta por distintos usuarios de forma simult anea transparencia ante fallos : ocultar los fallos y la recuperaci on de los mismos Abiertos: soportan la interconexi on con otros sistemas Los servicios ofrecidos siguen reglas bien denidas y conocidas (protocolos) que describen su sintaxis (forma de usarlos) y su sem antica (qu e hacen/resultado) Son independientes de tecnolog as y recursos concretos Soportan la interoperabilidad y portabilidad de los recursos Escalables: capaces de hacer frente al crecimiento de la demanda Posibilidad de a nadir recursos y usuarios al sistema sin afectar a la consistencia del sistema T ecnicas: balanceo de cargas, distribuci on y replicaci on (cach es) de datos, recursos, equipos, ... Relacionado con tolerancia a fallos: fallos de nodos concretos no suponen que el sistema distribuido quede inoperativo

FJRP, FMBR 2008/09 ccia SCS

(c) Ventajas e inconvenientes Ventajas Econom a: compartici on de recursos costosos ahorro de costes Flexibilidad: Fiabilidad: tolerancia a fallos recursos cr ticos pueden ser replicados Escalabilidad: no limitado a recursos de un u nico equipo posibilidad de introducci on de nuevos nodos Inconvenientes Dicultad en el desarrollo del software Limitaciones de las redes (ancho de banda, latencias, ...) Porblemas de seguridad: control de accesos, condencialidad, integridad, etc

FJRP, FMBR 2008/09 ccia SCS

1.1.2 Arquitecturas de sistemas distribuidos En base a su topolog a: Arquitecturas centralizadas: los componentes del sistema presentan diferentes roles Paradigma cliente-servidor: dos tipos de elementos, servidor que gestiona un recurso y atiende las peticiones de los clientes Arquitecturas multicapa (n-tier ): generalizaci on del anterior, los componentes pueden emitir peticiones y responder a las peticiones sobre los recursos concretos que gestionan (clientes y servidores a la vez) Arquitecturas descentralizadas: todos los componentes tienen las mismas responsabilidades y funciones Sistemas entre iguales (peer-to-peer ) En base a su estructura: Basados en capas: elementos del sistema organizados en capas especializadas donde la comunicaci on est a limitada a componentes de capas contiguas conforme a un ujo preestablecido Basados en objetos (componentes): elementos del sistema son objetos aut onomos que pueden intercambiar mensajes (llamadas a m etodos) a trav es de la red de comunicaciones Basados en eventos: no sigue esquema petici on-respuesta elementos del sistema tienen acceso a un bus com un donde se env an/recogen eventos a os que se responde Operaciones: suscripci on, publicaci on, noticaci on

FJRP, FMBR 2008/09 ccia SCS

1.2 Paradigma Cliente/Servidor

Patr on arquitect onico para el desarrollo de sistemas distribuidos. Distribuye una aplicaci on entre 2 o m as componentes especializados cuya ejecuci on se distribuye entre 1 o m as equipos. Dene dos tipos de entidades diferenciadas (asim etricas) que se responsabilizan de acciones diferentes: clientes y servidores Especica 2 tipos de procesos con roles diferenciados Dene un modelo de interacci on basado en el concepto de servicio implementado sobre un di alogo petici on-respuesta Cliente inicia el di alogo mediante el env o de peticiones Servidor presta el servicio y responde las peticiones recibidas Especica el modo en que se sincronizan los procesos Cliente (parte activa) demanda servicios a los servidores se asume que cada petici on deber a obtener respuesta dise nado para soportar la interacci on con el usuario nal Servidor (parte pasiva) espera las peticiones de los clientes procesa esas peticiones y env a una respuesta dise no orientado a maximizar la eciencia Posibilidad de aplicar el patr on cliente-servidor en m ultiples niveles de abstracci on dentro de un mismo sistema distribuidos

FJRP, FMBR 2008/09 ccia SCS

1.3 Componentes de los Sistemas Cliente/Servidor

(a) Caracter sticas de los clientes Componente del sistema que interact ua con el usuario No comparte sus recursos con otros clientes (en general) No tiene restricciones especiales respecto a rendimiento, abilidad y escalabilidad no requiere equipos de altas prestaciones fallo en un cliente no afecta al resto del sistema Debe dar soporte a restricciones relativas a ergonom a (facilidad de uso) y seguridad (evitar comprometer los dem as componentes) (b) Caracter sticas de los servidores Componente del sistema que presta servicios al cliente Gestiona y comparte sus recursos con los clientes que sirve Suele tener restricciones especiales respecto a redimiento, abilidad, escalabilidad y seguridad capacidad suciente para atender m ultiple clientes fallos en el servidor son cr ticos e invalidan el sistema el n um. de clientes (peticiones) puede ser muy variable y aumentar si se requiere evitar comprometer la seguridad de los recursos o datos gestionados y de los clientes

FJRP, FMBR 2008/09 ccia SCS

(c) Caracter sticas del middleware Componente del sistema que da unidad y abstrae las peculiaridades de las plataformas (hardware y S.O.) de clientes y servidor Gestiona los aspecto de bajo nivel para ofrecer un interfaz com un y coherente para el desarrollo de clientes y servidores Misiones principales soporte al env o/recepci on de mensajes adaptaci on del formato de la informaci on intercambiada (marshaling /aplanamiento) localizaci on y acceso transparente a recursos/servicios: nombrado, direccionamiento soporte al paradigma de abstracci on: stubs/skeletons en RPC, RMI, CORBA, etc otros servicios: seguridad, replicaci on, control concurrencia, ... Combina e integra servicios de bajo nivel (S.O.): seguridad, autorizaci on/permisos, cheros distribuidos, ... servicios de red: librer as, pila de transporte TCP/IP,... servicios espec co (abstracci on)s: acceso a datos, portmapper, ORB, ... Aproximaciones (de menor a mayor nivel de abstracci on) middleware de paso de mensajes: interfaz de sockets (esquema petici on-respuesta) middleware de invocaci on de m etodos remota: RPC (llamadas a funciones) on moddleware de objetos distribuidos: RMI, CORBA (interacci entre objetos)

FJRP, FMBR 2008/09 ccia SCS

1.4 Modelos y tipolog as

Esquema abstracto de aplicaciones distribuidas gen ericas (capas) corresponde con las funciones t picas en un sistema Capa de presentaci on (interfaz de usuario) interacciona con el usuario, presenta los datos y recibe las entadas Capa de aplicaci on/negocio (l ogica de aplicaci on) responsable de las tareas propias de la aplicaci on concreta aplica las reglas de negocio sobre los datos y las entradas de usuario Capa de datos (almacenamiento y acceso a datos) responsable de la gesti on y almacenamiento permanente de los datos Cada tipo de sistema cliente-servidor distribuye esas capas de modo distinto entre los componentes cliente y servidor

FJRP, FMBR 2008/09 ccia SCS

1.4.1 Clientes ligeros vs. clientes pesados Clasicaci on dependiendo de las responsabilidades asignadas al cliente Cliente ligero (thin client ) No implementa ning un aspecto de la l ogica de aplicaci on Simplemente act ua como intermediario entre usuario y servidor recoge entradas y las env a al servidor presenta datos y resultados del servidor M nimos requisitos respecto a recursos hardware Aumenta la complejidad del servidor (mayores responsabilidades) Ejemplo: clientes basados en navegadores web (JSP, ASP, ...) capa de presentaci on repartida entre servidor (genera HTML al vuelo) y cliente (navegador) En u ltimos a nos surgen clientes ligeros ricos (tecnolog as AJAX) clientes basados en navegadores web + soporte de interacciones complejas (javascript, carga XML as ncrono, ...) Cliente pesado (fat client ) Implementa la mayor parte de la l ogica de aplicaci on Realiza procesamiento sobre datos de usuario antes de comunicar con servidor Requiere equipos con capacidad de proceso y/o almacenamiento de datos Servidor sencillo (responsabilidades m nimas, gesti on datos) Ejemplo: aplicaci on cliente contra servidor de base de datos Cliente h brido Implementaci on de l ogica de aplicaci on repartida entre cliente y servidor Ejemplo: aplicaci on cliente contra servidor de base de datos con procedimientos almacenados Comparaci on tipos de clientes

FJRP, FMBR 2008/09 ccia SCS

1.4.2 Arquitecturas 2-tier, 3-tier y n-tier Clasic. en funci on de la ubicaci on f sica de las distintas funcionalidades Modelo tradicional: 2-tier (cliente-servidor en 2 niveles) Un u nico servidor atiende a m ultiples clientes Problemas escasa escalabilidad en servidores de l ogica de negocio compleja o con grandes bases de datos (dif cil replicaci on, etc) rigidez: modicaciones en la l ogica de aplicaci on suponen grandes cambios en la totalidad de clientes dif cil evoluci on del servidor Limitaci on principal: alto acoplamiento/dependencia del cliente respecto del servidor Clientes ligeros, pesados o h bridos Modelo 3-tier (cliente-servidor en 3 niveles) Extensi on del modelo tradicional que pretende aumentar el desacoplamiento entre servidor y clientes Introduce un nivel intermedio (separa servidor en 2 componentes) cliente dedicado casi exclusivamente a interfaz de usuario servidor comparte con nivel intermedio la l ogica de la aplicaci on el reparto preciso depende del modelo concreto seguido Clientes ligeros o h bridos Modelos n-tier o multi-tier (cliente-servidor en n niveles) Generalizaci on del modelo 3-tier (a nade nuevas capas) La l ogica de aplicaci on se reparte en diferentes capas/niveles ubicadas entre el cliente y los datos Las capas intermedias se proporcionan servicios entre si. cada nivel se comunica s olo con los niveles contiguos a trav es de interfaces bien denidos Estructura t pica en sistemas basados en componentes distribuidos (objetos distribuidos) Clientes ligeros o h bridos

FJRP, FMBR 2008/09 ccia SCS

10

Benecios de las arquitecturas multinivel Elementos cr ticos de la l ogica de negocio ubicados en nivel medio m as cercanos a la capa de datos eciencia de acceso s olo los datos realmente necesarios llegan al cliente Mayor exibilidad y modularidad Escalabilidad: facilita a nadir recursos para soportar mayor n um. de clientes Extensibilidad: facilita a nadir nuevas funcionalidades al sistema sin afectar a los clientes existentes Seguridad: facilidad para propagar autenticaci on y permisos a trav es de las distintas capas Facilidades de desarrollo y administraci on: reusabilidad de componentes aislamiento frente a cambios en otras capas independencia frente a cambios en base de datos Desventajas de las arquitecturas multinivel Complejidad: mayor n um. de elementos hardware y software a denir, gestionar y mantener interacciones complejas entre componentes dicultad para detectar, asilar y coregir fallos Coste de comunicaciones: mayor latencia y consumo de ancho de banda (atravesar capas distribuidas por la red) Coste de mantenimiento: al crecer las capas aumenta el coste de instalaci on y mantenimiento

FJRP, FMBR 2008/09 ccia SCS

11