Читать книгу 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.


Instalación y configuración del software de servidor web. IFCT0509

Подняться наверх