Arquitectura Cliente Servidor
nadiaz0731 de Julio de 2011
3.459 Palabras (14 Páginas)2.194 Visitas
INTRODUCCIÓN A LA ARQUITECTURA CLIENTE/SERVIDOR
CONCEPTO DE ARQUITECTURA CLIENTE / SERVIDOR.
La tecnología Cliente/Servidor es el procesamiento cooperativo de la información por medio de un
conjunto de procesadores, en el cual múltiples clientes, distribuidos geográficamente, solicitan
requerimientos a uno o más servidores centrales.
Desde el punto de vista funcional, se puede definir la computación Cliente/Servidor como una
arquitectura distribuida que permite a los usuarios finales obtener acceso a la información de
forma transparente aún en entornos multiplataforma. Se trata pues, de la arquitectura más
extendida en la realización de Sistemas Distribuidos.
Un sistema Cliente/Servidor es un Sistema de Información distribuido basado en las siguientes
características:
• Servicio: unidad básica de diseño. El servidor los proporciona y el cliente los utiliza.
• Recursos compartidos: Muchos clientes utilizan los mismos servidores y, a través de ellos,
comparten tanto recursos lógicos como físicos.
• Protocolos asimétricos: Los clientes inician “conversaciones”. Los servidores esperan su
establecimiento pasivamente.
• Transparencia de localización física de los servidores y clientes: El cliente no tiene por qué
saber dónde se encuentra situado el recurso que desea utilizar.
• Independencia de la plataforma HW y SW que se emplee.
• Sistemas débilmente acoplados. Interacción basada en envío de mensajes.
• Encapsulamiento de servicios. Los detalles de la implementación de un servicio son
transparentes al cliente.
• Escalabilidad horizontal (añadir clientes) y vertical (ampliar potencia de los servidores).
• Integridad: Datos y programas centralizados en servidores facilitan su integridad y
mantenimiento.
En el modelo usual Cliente/Servidor, un servidor, (daemon en la terminología sajona basada en
sistemas UNIX/LINUX, traducido como "demonio") se activa y espera las solicitudes de los clientes.
Habitualmente, programas cliente múltiples comparten los servicios de un programa servidor
común. Tanto los programas cliente como los servidores son con frecuencia parte de un programa
o aplicación mayores.
El Esquema de funcionamiento de un Sistema Cliente/Servidor sería:
1. El cliente solicita una información al servidor.
2. El servidor recibe la petición del cliente.
3. El servidor procesa dicha solicitud.
4. El servidor envía el resultado obtenido al cliente.
5. El cliente recibe el resultado y lo procesa.
COMPONENTES DE LA ARQUITECTURA CLIENTE/SERVIDOR
El modelo Cliente/Servidor es un modelo basado en la idea del servicio, en el que el cliente es un
proceso consumidor de servicios y el servidor es un proceso proveedor de servicios. Además esta
relación está establecida en función del intercambio de mensajes que es el único elemento de
acoplamiento entre ambos.
De estas líneas se deducen los tres elementos fundamentales sobre los cuales se desarrollan e
implantan los sistemas Cliente/Servidor: el proceso cliente que es quien inicia el diálogo, el
proceso servidor que pasivamente espera a que lleguen peticiones de servicio y el middleware que
corresponde a la interfaz que provee la conectividad entre el cliente y el servidor para poder
intercambiar mensajes.
Para entender en forma más ordenada y clara los conceptos y elementos involucrados en esta
tecnología se puede aplicar una descomposición o arquitectura de niveles. Esta descomposición
principalmente consiste en separar los elementos estructurales de esta tecnología en función de
aspectos más funcionales de la misma:
• Nivel de Presentación: Agrupa a todos los elementos asociados al componente Cliente.
• Nivel de Aplicación: Agrupa a todos los elementos asociados al componente Servidor.
• Nivel de comunicación: Agrupa a todos los elementos que hacen posible la comunicación
entre los componentes Cliente y servidor.
• Nivel de base de datos: Agrupa a todas las actividades asociadas al acceso de los datos.
Este modelo de descomposición en niveles, como se verá más adelante, permite introducir más
claramente la discusión del desarrollo de aplicaciones en arquitecturas de hardware y software en
planos.
ELEMENTOS PRINCIPALES
CLIENTE
Un cliente es todo proceso que reclama servicios de otro. Una definición un poco más elaborada
podría ser la siguiente: cliente es el proceso que permite al usuario formular los requerimientos y
pasarlos al servidor. Se lo conoce con el término front-end.
Éste normalmente maneja todas las funciones relacionadas con la manipulación y despliegue de
datos, por lo que están desarrollados sobre plataformas que permiten construir interfaces gráficas
de usuario (GUI), además de acceder a los servicios distribuidos en cualquier parte de la red. Las
funciones que lleva a cabo el proceso cliente se resumen en los siguientes puntos:
• Administrar la interfaz de usuario.
• Interactuar con el usuario.
• Procesar la lógica de la aplicación y hacer validaciones locales.
• Generar requerimientos de bases de datos.
• Recibir resultados del servidor.
• Formatear resultados.
La funcionalidad del proceso cliente marca la operativa de la aplicación (flujo de información o
lógica de negocio). De este modo el cliente se puede clasificar en:
• Cliente basado en aplicación de usuario. Si los datos son de baja interacción y están
fuertemente relacionados con la actividad de los usuarios de esos clientes.
• Cliente basado en lógica de negocio. Toma datos suministrados por el usuario y/o la base
de datos y efectúa los cálculos necesarios según los requerimientos del usuario.
SERVIDOR
Un servidor es todo proceso que proporciona un servicio a otros. Es el proceso encargado de
atender a múltiples clientes que hacen peticiones de algún recurso administrado por él. Al proceso
servidor se lo conoce con el término back-end. El servidor normalmente maneja todas las
funciones relacionadas con la mayoría de las reglas del negocio y los recursos de datos. Las
principales funciones que lleva a cabo el proceso servidor se enumeran a continuación:
• Aceptar los requerimientos de bases de datos que hacen los clientes.
• Procesar requerimientos de bases de datos.
• Formatear datos para trasmitirlos a los clientes.
• Procesar la lógica de la aplicación y realizar validaciones a nivel de bases de datos.
Puede darse el caso que un servidor actúe a su vez como cliente de otro servidor. Existen
numerosos tipos de servidores, cada uno de los cuales da lugar a un tipo de arquitectura
Cliente/Servidor diferente.
El término "servidor" se suele utilizar también para designar el hardware, de gran potencia,
capacidad y prestaciones, utilizado para albergar servicios que atienden a un gran número de
usuarios concurrentes. Desde el punto de vista de la arquitectura cliente/servidor y del
procesamiento cooperativo un servidor es un servicio software que atiende las peticiones de
procesos software clientes.
MIDDLEWARE
El middleware es un módulo intermedio que actúa como conductor entre sistemas permitiendo a
cualquier usuario de sistemas de información comunicarse con varias fuentes de información que
se encuentran conectadas por una red. En el caso que nos concierne, es el intermediario entre el
cliente y el servidor y se ejecuta en ambas partes.
La utilización del middleware permite desarrollar aplicaciones en arquitectura Cliente/Servidor
independizando los servidores y clientes, facilitando la interrelación entre ellos y evitando
dependencias de tecnologías propietarias. El concepto de middleware no es un concepto nuevo.
Los primeros * monitores de teleproceso* de los grandes sistemas basados en tecnología
Cliente/Servidor ya se basaban en él, pero es con el nacimiento de la tecnología basada en
sistemas abiertos cuando el concepto de middleware toma su máxima importancia. El middleware
se estructura en tres niveles:
• Protocolo de transporte.
• Network Operating System (NOS).
• Protocolo específico del servicio.
Las principales características de un middleware son:
• Simplifica el proceso de desarrollo de aplicaciones al independizar los entornos
propietarios.
• Permite la interconectividad de los Sistemas de Información del Organismo.
• Proporciona mayor control del negocio al poder contar con información procedente de
distintas plataformas sobre el mismo soporte.
• Facilita el desarrollo de sistemas complejos con diferentes tecnologías y arquitecturas.
Dentro de los inconvenientes más importantes destacan la mayor carga de máquina necesaria
para que puedan funcionar.
COMUNICACIÓN ENTRE LOS ELEMENTOS (NOS)
Como se ha comentado en el apartado anterior, el middleware es un conjunto de aplicaciones
encargadas de enlazar al cliente con el servidor. Para ello se estructura en tres capas diferentes:
• Protocolo
...