Modelo Cliente Servidor
-
Upload
ricardo-se -
Category
Documents
-
view
30 -
download
0
Transcript of Modelo Cliente Servidor
Modelo cliente-servidor
Ingeniería de Software Sommervile
• El modelo arquitectónico cliente-servidor es un modelo de sistema en el que dicho sistema se organiza como un conjunto de servicios y servidores asociados, más unos clientes que acceden y usan los servicios. Los principales componentes de este modelo son:
1. Un conjunto de servidores que ofrecen servicios a otros subsistemas. Ejemplos de servidores son servidores de impresoras y servidores de archivos.
2. Un conjunto de clientes que llaman a los servicios ofrecidos por los servidores. Éstos normalmente son subsistemas en sí mismos.
3. Una red que permite a los clientes acceder a estos servicios; Aunque el cliente y servidor bien podrían ejecutarse en una única máquina.
• En este modelo los clientes necesitan de conocer al servidor. Sin embargo, los servidores no necesitan conocer a los clientes.
• Paréntesis:– Es una ventaja porque diversos clientes pueden
hacer uso del servidor sin necesidad de que éste se entere. (No implica hacer alguna instalación adicional en el servidor)
– Desventaja: puede permitir que cualquier cliente trate de accesar a sus recursos.
• Ejemplo
• La ventaja más importante del modelo cliente-servidor es que es una arquitectura distribuida.
• Se puede hacer uso efectivo de los sistemas en red con muchos procesadores distribuidos.
• Es fácil añadir un servidor e integrarlo (ya que el servidor no necesita conocer los clientes)
• Sin embargo, puede ser necesario realizar cambios a los clientes y servidores existentes para obtener los mayores beneficios de la integración de un nuevo servidor.
• Puede no haber un modelo de datos compartido entre los servidores.
• Existen dos tipos de sistemas distribuidos:
– Arquitecturas cliente servidor. (que ya se vió)– Arquitecturas de objetos distribuidos. En este caso
no hay distinción entre los servidores y clientes, y el sistema puede ser visto como un conjunto de objetos que interactúan y cuya localización es irrelevante. No hay distinción entre proveedor de servicios y el usuario de estos servicios.
• Una de las complicaciones de los sistemas distribuidos es que la representación de información, modelo de datos y protocolos pueden ser diferentes.
• Un sistema distribuido requiere de software que pueda gestionar estas partes distintas y asegurar la comunicación.
• Este tipo de software se llama middleware y está situado en medio de los diferentes componentes distribuidos del sistema. Ejemplo:– Software para gestionar comunicación entre base
de datos.– Administradores de transacciones – Convertidores de datos y controladores de
comunicación.
• Clientes y servidores son procesos diferentes
• A los procesos del cliente no le importan los del servidor y viceversa.
• Sin embargo, eso no implica que un servidor tenga que realizar sólo un proceso de servidor (no hay correspondencia 1:1).
Tipos
• La arquitectura de cliente-servidor más simple es la de dos capas.
• En ésta, la aplicación se organiza con un servidor ( o múltiples servidores idénticos) y un conjunto de clientes.
• A su vez existen dos subtipos de arquitecturas de dos capas:
– Modelo de cliente ligero: El procesamiento de las aplicaciones y la gestión de datos se hace en el servidor. El cliente sólo presenta los datos. (El cliente tiene poca carga de trabajo)
– Modelo de cliente gordo: el cliente implementa la lógica de la aplicación y las interacciones con el usuario del sistema. El servidor solo se hace cargo de la gestión de los datos.
• Otro modelo es el de tres capas:
• La elección de qué modelo de arquitectura utilizar depende enteramente de la aplicación.
• Al diseñar la arquitectura cliente-servidor, ésta debería reflejar la estructura lógica de la aplicación desarrollada.
• Por ejemplo
GUI para transacción bancaria
Procesamiento de datos.
Almacenamiento de datos.
Caja de texto para realizar búsqueda en facebook
Algoritmos de búsqueda
Base de datos de usuarios
• Una aplicación como la anterior quedaría mal distribuida en un modelo de dos capas.
• Tanto el cliente como el servidor podrían estar con una carga de trabajo excesiva.
• Esto afecta a la escalabilidad y rendimiento del sistema. Es mejor usar un modelo de 3 capas: