INTRODUCCIÓN
- Con el incremento de la disponibilidad de computadoras personales y potentes servidores no muy caros, ha habido una tendencia hacia el proceso de datos distribuido, (DDP, Distributed Data Processing).
- Un sistema DDP implica la partición de la función de computación lo que conlleva a una organización distribuida de base de datos, el control de dispositivos y el control de interacciones (redes).
PROCESO CLIENTE/SERVIDOR
- Las máquinas cliente son generalmente PC monousuario o estaciones de trabajo que ofrece una interfaz muy amigable para el usuario final.
- Cada servidor ofrece una serie de servicios de usuario compartidos a los clientes.
- El servidor permite a los clientes compartir el acceso a la misma base de datos y permite el uso de sistemas de alto rendimiento para gestionar base de datos.
- Un elemento básico en el entorno cliente/servidor es la red.
- Los usuarios, aplicaciones y recursos quedan distribuidos en respuesta a los requisitos de determinada aplicación y quedan enlazados por una sola LAN ó WAN o por una serie de subredes.
TERMINOLOGÍA CLIENTE/SERVIDOR
- Interfaz de Programas de Aplicación
- Conjunto de funciones y programas de llamada que permiten comunicarse a clientes y servidores.
- Cliente
- El que puede consultar información o pedir un servicio del servidor.
- Middleware
- Conjunto de controladores, API u software que maneja la conectividad entre las aplicaciones de cliente y servidor.
- Base de datos relacional
- Base de datos donde el acceso a la información está limitado por la selección de filas que satisfacen todos los criterios de búsqueda.
- Servidor
- Computadora potente o mainframe, que contiene la información para que los clientes de red puedan manipularla.
- Lenguaje de consulta estructurado
- Lenguaje para direccionar, crear, actualizar o consultar base de datos relacionales.
APLICACIONES CLIENTE/SERVIDOR
- La característica central de la arquitectura cliente/servidor es la ubicación de las tareas entre clientes y servidores.
- Tanto en el cliente como en el servidor el software básico es el sistema operativo que se ejecuta de acuerdo a la plataforma del hardware.
- Las plataformas y los sistemas operativos del cliente y el servidor pueden ser diferentes.
- En tanto un cliente y un servidor compartan los mismo protocolos de comunicación y soporten las mismas aplicaciones, estás diferencias no son importantes.
- El software de comunicaciones es el que permite interoperar a cliente y servidor.
- TCP/IP
- Las funciones pueden repartirse entre el cliente y servidor de forma que se optimicen los recursos de la red.
- Optimizar la capacidad de los usuarios para realizar varias tareas y cooperar el uno con el otro en el uso de recursos compartidos.
- Un factor esencial para el éxito del entorno cliente/servidor es la manera como el cliente interactúa con el sistema como un todo.
APLICACIONES DE BASE DE DATOS
- El servidor es básicamente un servidor de base de datos.
- La interacción entre cliente y servidor se hace a través de transacciones, donde el cliente realiza una petición a la base de datos y recibe una respuesta de ella.
- El servidor es responsable del mantenimiento de la base de datos, para ello utiliza gestores de base de datos.
EJEMPLO: CLIENTE/SERVIDOR
- El ejemplo anterior se adapta bien a la arquitectura cliente/servidor por las siguientes razones:
- Para el manejo de base de datos (ordenación y búsqueda) se requiere de un disco grande, un procesador y una arquitectura E/S de alta velocidad. La PC no necesita cumplir estos requisitos.
- El servidor debe ser capaz de recuperar los registros solicitados por el cliente por lo tanto debe disponer del soporte de la lógica de base de datos.
CLASES DE APLICACIONES CLIENTE/SERVIDOR
- Proceso basado en una máquina central (Host)
- No es realmente una arquitectura cliente/servidor.
- El proceso basado en host se refiere al entorno tradicional de grandes sistemas donde casi todos los trabajos los realizaba la computadora central.
- La interfaz de usuario consiste con frecuencia en una terminal tonta.
- Proceso basado en el servidor
- Tipo básico de configuración cliente/servidor.
- Las estaciones de trabajo son responsables de proporcionar una interfaz gráfica al usuario.
- El servidor es el que hace todo el procesamiento.
- Con este tipo de configuración no se obtiene, en general, ganancias significativas de productividad, solo una interfaz amigable para el usuario.
- Proceso basado en el cliente
- Casi todo el proceso de aplicación puede hacerse en el cliente.
- El servidor realiza rutinas de tratamiento y validación de base de datos.
- Algunas funciones de base de datos residen el cliente.
- Esta arquitectura es la más común ya que permite al usuario utilizar aplicaciones a medida de sus necesidades.
- Proceso cooperativo
- El proceso de la aplicación se lleva a cabo de manera optimizada, aprovechando las potencias del cliente y servidor.
- Esta es la configuración más compleja de instalar y mantener.
- A largo plazo es la que ofrece mayor ganancia en productividad.
- El proceso cooperativo y el proceso basado en el cliente corresponden a configuraciones donde gran parte de la carga esta en el cliente.
- A este modelo se le conoce como cliente grueso.
- El beneficio principal es que se le saca el mayor provecho a las computadoras de escritorio.
- Descargan a los servidores del procesamiento de aplicaciones haciéndolos más eficientes y disminuyendo la posibilidad de cuellos de botellas.
ARQUITECTURA CLIENTE/SERVIDOR DE TRES CAPAS
- En esta arquitectura el software de aplicación esta divido en tres máquinas:
- Una máquina de usuario
- Cliente delgado
- Un servidor de capa intermedia
- Enlace entre los clientes delgados y los servidores de base de datos.
- Conversión de protocolos.
- Traducir un tipo de consulta de base de datos a otro.
- Puede mezclar e integrar resultados de diferentes fuentes.
- La interacción con el servidor final sigue el modelo cliente/servidor.
- Un servidor final
- Una máquina de usuario
CONSISTENCIA DE LA CACHE DE ARCHIVOS
- Cuando se utiliza un servidor de archivos, el rendimiento de la E/S puede degradarse considerablemente en el acceso a archivos locales por causa de retardo introducido por la red.
- Los sistemas individuales pueden usar cache de archivos para almacenar los registros a los que se ha accedido recientemente.
- Se suele usar un doble cache para reducir el tráfico de comunicaciones (cache del cliente) y la E/S a disco (cache del servidor).
- Cuando las cache contienen siempre copias exactas de los datos remotos se dice que las cache son consistentes.
- El método más simple para la consistencia de caches es emplear la técnica de bloqueo de archivos para prevenir el acceso simultáneo a un archivo.
MIDDLEWARE
- Las ventajas del esquema cliente/servidor es la modularidad y la capacidad de combinar plataformas y aplicaciones.
- Los desarrolladores deben disponer de un conjunto de herramientas que proporcionen una manera uniforme de acceder a los recursos del sistema en todas las plataformas.
- Interfaces estándares de programación y protocolos que se sitúen entre la aplicación, el software de comunicaciones y el sistema operativo se llaman middleware.
PASO DISTRIBUIDO DE MENSAJES
- En sistemas distribuidos donde no se comparte memoria principal se utiliza las técnicas de paso de mensajes para comunicación.
- Un proceso cliente solicita un servicio a través de un mensaje a un proceso servidor, el proceso servidor satisface la petición y envía mensaje de respuesta.
- Recieve
- Send
LLAMADAS A PROCEDIMIENTOS REMOTOS
- Lo fundamental de la técnica es permitir que programas de máquinas diferentes interactúen mediante la semántica de llamadas /retornos a simples procedimientos, como si los dos programas estuvieran en la misma máquina.
- Esta técnica es ampliamente aceptada
- Estandarizada
- Módulos de cliente y servidor pueden ser movidos entre computadoras y distintos sistemas operativos fácilmente.
ENLACE CLIENTE /SERVIDOR
- El enlace especificará la forma en la que se establecerá la relación entre el procedimiento remoto y el programa llamador.
- Enlaces no persistentes. Suponen que la conexión lógica se establece entre dos procesos en el momento de la llamada remota y que la conexión se pierde tan pronto como se devuelven los valores.
- Enlaces persistentes. La conexión establecida se mantiene después que el procedimiento termina, si existe un tiempo sin actividad la conexión termina.
AGRUPACIONES (CLUSTERS)
- Son una alternativa al multiprocesamiento simétrico (SMP).
- Una agrupación es un grupo de computadoras interconectadas que trabajan juntas como un recurso creando la ilusión de que es una máquina.
- A cada uno de las computadoras de la agrupación se les llama nodos.
- Ventajas que se pueden lograr con las agrupaciones:
- Escalabilidad total
- Escalabilidad incremental
- Alta disponibilidad
- Mejor relación rendimiento/precio
MÉTODOS DE AGRUPACIÓN
- Espera pasiva
- Un servidor secundario se hace cargo si el primario falla
- Sencillo de implementar
- Alto coste por que el servidor secundario no esta disponible para otras tareas de proceso.
- Secundaria activa
- Servidores separados
- Tienen sus propios discos
- Los datos se copian continuamente del servidor primario al secundario.
- Alta disponibilidad
- Incremento en la sobrecarga en la red.
- Servidores conectados a discos
- Los servidores están conectados a los mismos discos.
- Si un servidor falla sus discos pasan a estar a cargo de otro servidor.
- Reduce la sobrecarga de la red.
- Utiliza la tecnología RAID.
- Servidores compartiendo discos
- Múltiples servidores comparten acceso simultáneo a los mismos discos.
- Reduce el riesgo de caída por el fallo de un disco.
- Requiere software de gestión de bloqueos
- Usa la tecnología RAID
- Servidores separados
- En una agrupación el sistema operativo necesita algunas mejoras.
- Gestión de fallos
- Una agrupación de alta disponibilidad tiene una alta probabilidad de que todos los recursos estén siendo ocupados.
- Si se produce un fallo, el sistema operativo no garantiza el estado de las transacciones parcialmente ejecutadas.
- Una agrupación tolerante a fallos garantiza que los recursos siempre van a estar disponibles.
- Equilibrio de carga
- Capacidad eficaz de balancear la carga entre las computadoras disponibles.
- Proceso paralelo. Tres enfoques para ejecutar una sola aplicación en paralelo.
- Compilador paralelo
- Aplicaciones en paralelo
- Computación paramétrica
- Gestión de fallos
COMPARACIÓN ENTRE AGRUPACIONES Y SMP
- Tanto las agrupaciones como los multiprocesadores simétricos ofrecen una configuración de múltiples procesadores para dar soporte a aplicaciones de alta demanda.
- SMP es más fácil de gestionar.
- SMP ocupa menos espacio y necesita menos potencia.
- Las agrupaciones son más fuertes en términos de disponibilidad.