Modelo Cliente Servidor

24
Modelo cliente- servidor Ingeniería de Software Sommervile

Transcript of Modelo Cliente Servidor

Page 1: Modelo Cliente Servidor

Modelo cliente-servidor

Ingeniería de Software Sommervile

Page 2: Modelo Cliente Servidor

• 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:

Page 3: Modelo Cliente Servidor

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.

Page 4: Modelo Cliente Servidor

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.

Page 5: Modelo Cliente Servidor

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

Page 6: Modelo Cliente Servidor

– Desventaja: puede permitir que cualquier cliente trate de accesar a sus recursos.

Page 7: Modelo Cliente Servidor

• Ejemplo

Page 8: Modelo Cliente Servidor

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

Page 9: Modelo Cliente Servidor

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

Page 10: Modelo Cliente Servidor

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

Page 11: Modelo Cliente Servidor

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

Page 12: Modelo Cliente Servidor

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

Page 13: Modelo Cliente Servidor

• Clientes y servidores son procesos diferentes

• A los procesos del cliente no le importan los del servidor y viceversa.

Page 14: Modelo Cliente Servidor

• Sin embargo, eso no implica que un servidor tenga que realizar sólo un proceso de servidor (no hay correspondencia 1:1).

Page 15: Modelo Cliente Servidor

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.

Page 16: Modelo Cliente Servidor

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

Page 17: Modelo Cliente Servidor

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

Page 18: Modelo Cliente Servidor
Page 19: Modelo Cliente Servidor

• Otro modelo es el de tres capas:

Page 20: Modelo Cliente Servidor

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

Page 21: Modelo Cliente Servidor

• 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

Page 22: Modelo Cliente Servidor

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

Page 23: Modelo Cliente Servidor

• Esto afecta a la escalabilidad y rendimiento del sistema. Es mejor usar un modelo de 3 capas:

Page 24: Modelo Cliente Servidor