Читать книгу Instalación y configuración del software de servidor web. IFCT0509 - José Luis Villada Romero - Страница 12
4. Estructura Cliente/Servidor
ОглавлениеAntes de explicar en qué consiste este modelo, es necesario presentar una serie de conceptos básicos para situarse en una perspectiva:
1 Sistema distribuido: la definición de sistema distribuido es algo compleja, ya que depende de qué aspecto se resalte dentro del sistema. Sin embargo, una buena definición podría ser: “sistema cuyos componentes hardware y software, conectados en red, establecen una comunicación y se coordinan para un fin concreto y además ofrecen una visión de sistema único”. Los objetivos que debe cumplir un sistema distribuido son:Facilitar el acceso de los usuarios a ciertos recursos remotos.Proporcionar transparencia de distribución.Soportar interconexión con otros sistemas.Proporcionar escalabilidad al sistema.
2 Arquitectura centralizada: es el modelo que siguen los sistemas distribuidos en los que los nodos solo pueden comunicarse a través de un nodo central.
3 Arquitectura descentralizada: es el modelo que siguen los sistemas distribuidos con una estructura en forma de árbol, donde existen nodos que actúan como nodos intermedios, que actúan a su vez como nodos centrales en un entorno local.
4 Arquitectura distribuida: se trata del modelo que siguen los sistemas distribuidos en el que todos los nodos pueden actuar como emisores y receptores a la vez.
El modelo cliente/servidor es un sistema distribuido que es evolución de un tipo de arquitectura centralizada, aunque sin llegar a serlo del todo. En este modelo, los nodos son procesos, entendidos como aplicaciones independientes.
Existen dos tipos de procesos: los clientes (front-end), que se encargan de solicitar peticiones de conexión para obtener información, y los servidores (back-end), que tratan esas peticiones, obtienen la información y la envían a los procesos clientes.
Las características básicas de una arquitectura cliente/servidor se pueden resumir en la siguiente lista:
1 El proceso cliente proporciona la interacción con el usuario y el resto del sistema, mientras que el servidor gestiona los recursos compartidos.
2 El proceso cliente y servidor tienen diferentes requisitos en cuanto a velocidad de cómputo, memoria, capacidad y la velocidad de disco, etc.
3 Los procesos clientes y servidor pueden ejecutarse en el mismo nodo.
4 Un servidor puede dar soporte a múltiples clientes.
5 Los clientes realizan peticiones y, por lo tanto, son agentes activos, mientras que los servidores actúan como pasivos en la comunicación.
6 La relación entre los clientes y los servidores se limita a la comunicación del mensaje.
7 La plataforma de hardware y el sistema operativo que dan soporte a los procesos pueden ser distintos.
8 Es un sistema escalable tanto horizontal (a nivel de clientes) como vertical (a nivel de servidores).
En función del servicio:
1 Servidores de archivos: NFS, SAMBA, etc.
2 Servidores de base de datos: el mensaje son peticiones SQL, Oracle, SQL Server.
3 Servidores de transacciones: el mensaje es la transacción (Conjunto de peticiones SQL), OLP, etc.
4 Servidores web: el mensaje son las peticiones HTTP.
La evolución del modelo cliente/servidor ha provocado que aparezca un tercer protagonista en este tipo de arquitecturas: el middleware. Se trata de un módulo o capa intermedia entre los clientes y los servidores. Esta capa proporciona una interfaz común que pueden usar los clientes para hacer las peticiones de servicio a los servidores, haciendo transparente la comunicación entre los nodos del sistema.
Definición
Middleware
Su definición más formal sería: conjunto de servicios y funciones reutilizables, expandibles, que permiten a muchas aplicaciones interactuar en un ambiente interconectado, ocultando la heterogeneidad y proporcionando un modelo de programación conveniente para los desarrolladores de aplicaciones.
Es un software que se basa en la reusabilidad y en los estándares para resolver problemas y tareas comunes que se encuentran en el ámbito del desarrollo de software.
Ejemplos: ODBC/JDBC, HTTP y SLL, CORBA, DCOM, JAVA RMI, etc.