Академический Документы
Профессиональный Документы
Культура Документы
Arquitectura Cliente/Servidor
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
(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
(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
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
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
(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
(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)
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
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
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
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
11