Arquitectura Cliente-Servidor y Sistemas Distribuidos: Componentes, Tipos y Transacciones
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 5,6 KB
Componentes de Software
Se distinguen tres componentes básicos de software:
- Presentación: Tiene que ver con la presentación al usuario de un conjunto de objetos visuales y llevar a cabo el procesamiento de los datos producidos por el mismo y los devueltos por el servidor.
- Lógica de aplicación: Esta capa es la responsable del procesamiento de la información que tiene lugar en la aplicación.
- Base de datos: Está compuesta de los archivos que contienen los datos de la aplicación.
La mayoría de los sistemas distribuidos basados en LAN no utilizan los protocolos de capas completos, sí utilizan un subconjunto de toda una pila de protocolos. El modelo OSI no dice nada acerca de la forma de estructurar al sistema distribuido. El modelo cliente-servidor tiene como idea fundamental la estructuración del Sistema Operativo como:
- Un grupo de procesos en cooperación, llamados servidores, que ofrecen servicios a los usuarios.
- Un grupo de procesos usuarios llamados clientes.
Clasificación de los Sistemas Cliente/Servidor
Clasificación de los sistemas cliente/servidor de acuerdo al nivel de abstracción del servicio que ofrecen:
- Representación distribuida: La interacción con el usuario se realiza en el servidor, el cliente hace de pasarela entre el usuario y el servidor.
- Representación remota: La lógica de la aplicación y la base de datos se encuentran en el servidor. El cliente recibe y formatea los datos para interactuar con el usuario.
- Lógica distribuida: El cliente se encarga de la interacción con el usuario y de algunas funciones triviales de la aplicación. Por ejemplo, controles de rango de campos, campos obligatorios, etc. Mientras que el resto de la aplicación, junto con la base de datos, están en el servidor.
- Gestión remota de datos: El cliente realiza la interacción con el usuario y ejecuta la aplicación, y el servidor es quien maneja los datos.
- Base de datos distribuidas: El cliente realiza la interacción con el usuario, ejecuta la aplicación, debe conocer la topología de la red, así como la disposición y ubicación de los datos. Se delega parte de la gestión de la base de datos al cliente.
- Cliente-servidor a tres niveles: El cliente se encarga de la interacción con el usuario, el servidor de la lógica de aplicación y la base de datos puede estar en otro servidor.
Servicios de un Servidor de Archivos
Los sistemas de archivos son considerados como uno de los componentes más importantes de cualquier Sistema Distribuido. Debe tener conocimiento de cada uno de los sitios disponibles de información, de manera que los servicios sean transparentes para cualquier usuario. En Sistemas Distribuidos se utilizan dos tipos de servicios:
- Servicio de archivos: Es una especificación sobre el tipo de servicios de archivos que el sistema ofrece a los clientes, establece todas aquellas directivas sobre dónde encontrar un archivo.
- Servicio de directorios: Es un proceso que se ejecuta en alguna máquina y ayuda a implantar el servicio de archivos de manera que podamos establecer ligas entre uno o más grupos de archivos (directorios).
Un sistema puede tener uno o varios servidores de archivos que son transparentes para los clientes, ya que no deben conocer su posición.
Interfaz de un Servicio de Archivos
La interfaz de un servicio de archivos proporciona toda la información necesaria sobre cada archivo individual, como pueden ser sus atributos. La función más importante de un servicio de archivos corresponde a su mantenimiento, ya que este servicio se encarga de todas las operaciones disponibles de lectura y escritura, como pueden ser: create, read, write, delete.
Modelo de Acceso Remoto
Este tipo de servicios proporciona un gran número de operaciones para abrir y cerrar archivos, leer y escribir partes de archivos, moverse a través de un archivo, así como examinar y modificar los atributos de uno o varios archivos.
Procesamiento de Transacciones
Motivos del Uso de Transacciones
“Uno de los ingredientes básicos en todo sistema tolerante a fallas es el mecanismo de transacciones. Una transacción encierra un número de operaciones de forma que todas o ninguna de las operaciones se llevan a cabo. Las transacciones hacen que la recuperación de errores sea más fácil, ya que las transacciones sólo pueden terminar en uno de dos estados: transacción completa o transacción incompleta. Las transacciones resultan de gran importancia para simplificar la construcción de aplicaciones distribuidas, confiables y disponibles en todo momento, particularmente aplicaciones que requieren acceso concurrente a datos compartidos.”
Los sistemas distribuidos son potencialmente muy fiables debido a la posibilidad de proveer redundancia y autonomía de recursos en diferentes nodos, esto permite detectar y localizar fallas. Sin embargo, comúnmente tenemos varios aspectos que representan problemas para la integridad de los recursos y que a su vez motivan el uso de transacciones:
- Dificultad para mantener consistencia en los datos.
- Una misma vía de comunicación no siempre puede ser utilizada para proveer interacción entre dos procesos.
- Requerimientos de procesamiento en paralelo.
- Manejo interactivo de uno o más usuarios.