Modelo Cliente Servidor
Modelo Cliente Servidor
1
INTRODUCCIÓN
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.
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.
2
COMPONENTES DE LA ARQUITECTURA CLIENTE/SERVIDOR
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:
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:
3
Generar requerimientos de bases de datos.
Recibir resultados del servidor.
Formatear resultados.
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
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.
4
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.
Uno de los aspectos claves para entender la tecnología Cliente/Servidor, y por tanto contar con la
capacidad de proponer y llevar a cabo soluciones de este tipo, es llegar a conocer la arquitectura
de este modelo y los conceptos o ideas asociados al mismo. Más allá de entender los
componentes cliente/middleware/servidor, es preciso analizar ciertas relaciones entre éstos, que
pueden definir el tipo de solución que se ajusta de mejor forma a las estadísticas y restricciones
acerca de los eventos y requerimientos de información que se obtuvieron en la etapa de análisis
de un determinado proyecto. De hecho el analista deberá conocer estos eventos o restricciones
del proyecto para que a partir de ahí, se puedan hacer las consideraciones y estimaciones de la
futura configuración, teniendo en cuenta aspectos como por ejemplo, la oportunidad de la
información, tiempo de respuesta, tamaños de registros, tamaño de bases de datos, estimaciones
del tráfico de red, distribución geográfica tanto de los procesos como de los datos, etc.
En tal sentido se presenta, en primer lugar, un esquema de clasificación basado en los conceptos
de Fat Client/Thin Client, Fat Server/Thin Server, es decir, basado en el tamaño de los
componentes. En segundo lugar tenemos una clasificación según la naturaleza del servicio que
nos ofrecen.
Este tipo de clasificación se basa en los grados de libertad que brinda el modelo Cliente/Servidor
para balancear la carga de proceso entre los niveles de presentación, aplicación y base de datos.
Dependiendo de qué segmento de las capas de software tenga que soportar la mayor o menor
carga de procesamiento, se habla de Fat Client (Thin Server) o Fat server (Thin Client).
Consideraciones de este tipo son importantes en el momento de decidir una plataforma de
desarrollo, al mismo tiempo que pueden definir la viabilidad o no de las mismas para enfrentar
5
un cierto número de restricciones impuestas por una problemática a resolver.
aplicación corren en un único proceso cliente, y el servidor es relegado a realizar las funciones
que provee un administrador de base de datos.
En general este tipo de arquitectura tiene mejor aplicación en sistemas de apoyo de decisiones
(DSS: Decision Support System) y sistemas de información ejecutiva (EIS: Executive
Information System), y como se concluirá más adelante, tiene pocas posibilidades de aplicarse en
sistemas de misión crítica.
En general este tipo de arquitectura presenta una flexibilidad mayor para desarrollar una gran
variedad de aplicaciones, incluyendo los sistemas de misión crítica a través de servidores de
transacciones.
SERVIDORES DE FICHEROS
Con un servidor de archivos, un cliente lo que hace es requerimientos de los mismos sobre una
red. Esta es una forma muy primitiva de servicios de datos, la cual necesita intercambio de
muchos mensajes sobre una red para hallar el dato requerido. Los servidores de archivos usan
recursos compartidos sobre la red y son necesarios para crear repositorios de documentos,
imágenes y archivos grandes sobre la red.
Este análisis está elaborado desde el punto de vista del modelo Cliente/Servidor, y está
directamente relacionado con la arquitectura en dos planos, que se describirá en el apartado
siguiente.
compartido a los datos con los mecanismos de protección necesarios, así como proveer
mecanismos para seleccionar resultados dentro de un conjunto de datos, posibilitando un ahorro
en procesos de comunicación. El servidor debe también proveer mecanismos de concurrencia,
seguridad y consistencia de datos, basado principalmente en el concepto de transacción en el que
todo se realiza, y por lo tanto se hace permanente, o todo falla, anulándose la transacción en tal
caso.
Los servidores de bases de datos actuales son una mezcla de SQL estándar más otras extensiones
propias de
cada proveedor. Por ejemplo casi todas las bases de datos están provistas con:
SERVIDORES DE TRANSACCIONES
7
lógica llamada transacción; evitando así el intercambio a través de la
red de un mensaje solicitud/respuesta por cada sentencia SQL, el cual es el caso de los sistemas
Cliente/Servidor dos planos, implementados a través de SQL remoto. Estas aplicaciones
denominadas OLTP (On Line Transaction Proccesing) están orientadas a dar soporte a los
procedimientos y reglas de los sistemas de misión crítica.
MODELOS CLIENTE/SERVIDOR
Dentro de esta categoría tenemos las aplicaciones en dos planos (two-tier), tres planos (three-tier)
y multi-planos (multi-tier). Dado que este término ha sido sobrecargado de significados por
cuanto se lo utiliza indistintamente para referirse tanto a aspectos lógicos (Software) como
físicos (Hardware), aquí se esquematizan ambas acepciones.
A NIVEL DE SOFTWARE
Este enfoque o clasificación es el más generalizado y el que más se ajusta a los enfoques
modernos, dado que se fundamenta en los componentes lógicos de la estructura Cliente/Servidor
y en la madurez y popularidad de la computación distribuida. Por ejemplo, esto permite hablar de
servidores de aplicación distribuidos a lo largo de una red, y no tiene mucho sentido identificar a
un equipo de hardware como servidor, si no más bien entenderlo como una plataforma física
sobre la cual pueden operar uno o más servidores de aplicaciones.
Esta estructura se caracteriza por la conexión directa entre el proceso cliente y un administrador
de bases de datos. Dependiendo de donde se localice el grupo de tareas correspondientes a la
lógica de negocios se pueden tener a su vez dos tipos distintos dentro de esta misma categoría:
8
IMPLEMENTADO CON SQL REMOTO
En este esquema el cliente envía mensajes con solicitudes SQL al servidor de bases de datos y el
resultado de cada instrucción SQL es devuelto por la red, no importando si son uno, diez, cien o
mil registros. Es el mismo cliente quien debe procesar todos los registros que le fueron devueltos
por el servidor de base de datos, según el requerimiento que él mismo hizo. Esto hace que este
tipo de estructura se adecue a los requerimientos de aplicaciones orientadas a los sistemas de
apoyo y gestión, pero resultan inadecuados para los sistemas críticos en que se requieran bajos
tiempos de respuesta.
Ventajas:
Inconvenientes:
Esta estructura se caracteriza por elaborar la aplicación en base a dos capas principales de
software, más la capa correspondiente al servidor de base de datos. Al igual que en la
arquitectura dos capas, y según las decisiones de diseño que se tomen, se puede balancear la
carga de trabajo entre el proceso cliente y el nuevo proceso correspondiente al servidor de
aplicación.
En este esquema el cliente envía mensajes directamente al servidor de aplicación el cual debe
administrar y responder todas las solicitudes. Es el servidor, dependiendo del tipo de solicitud,
quien accede y se conecta con la base de datos.
Ventajas:
9
Dado que mejora el rendimiento al optimizar el flujo de información entre componentes,
permite construir sistemas críticos de alta fiabilidad.
El mismo hecho de localizar las reglas del negocio en su propio ambiente, en vez de
distribuirlos en la capa de interfaz de usuario, permite reducir el impacto de hacer
mantenimiento, cambios urgentes de última hora o mejoras al sistema.
Disminuye el número de usuarios (licencias) conectados a la base de datos.
Inconvenientes:
A NIVEL DE HARDWARE
Los clientes son conectados vía LAN a un servidor de aplicaciones local, el cual, dependiendo de
la aplicación puede dar acceso a los datos administrados por él.
Los clientes son conectados vía LAN a un servidor de aplicaciones local, el cual a su vez se
comunica con un servidor central de bases de datos. El servidor local tiene un comportamiento
dual, dado que actúa como cliente o servidor en función de la dirección de la comunicación.
10
¿Qué es JSTL y EL? (JSP Standard Tag Library)
Java Standard Tag Library (JSTL) es un conjunto de tags JSP que resuelven las situaciones más
comunes de presentación. JSTL provee tags para setear, obtener y mostrar variables del entorno,
iterar colecciones, crear condiciones lógicas y formatear fechas y números, entre otras cosas.
JSTL comienza a ser sumamente útil cuando se combina con un nuevo lenguaje de expresiones
para JSP: Expression Language (EL). EL es una nueva sintáxis para referenciar objetos, atributos
y crear expresiones lógicas. EL y JSTL en conjunto forman una solución muy simple y poderosa
para resolver la presentación en los JSP.
JSTL no es más que un conjunto de librerías de etiquetas simples y estándares que encapsulan la
funcionalidad principal que es usada comúnmente para escribir páginas JSP. Las etiquetas JSTL
están organizadas en 4 librerías:
core: Comprende las funciones script básicas como loops, condicionales, y entrada/salida.
Conclusión
11
BIBLIOGRAFÍA
•John Wiley: Introduction to Client / Server Systems: A Practical Guide for Systems
Professionals
http://www.monografias.com/trabajos24/arquitectura-cliente-servidor/arquitectura-cliente-
servidor.shtml
www.alegsa.com.ar/.../**ventajas**_y_**desventajas**_del_**modelo**_**clienteservidor**.
htm
www.scribd.com/doc/272974/**Cliente**-**servidor**
12