El modelo Cliente/Servidor es una arquitectura distribuida que permite a
los usuarios finales obtener acceso a la información en forma transparente aún
en entornos multiplataforma. En el modelo cliente servidor, el cliente envía un
mensaje solicitando un determinado servicio a un servidor (hace una petición),
y este envía uno o varios mensajes con la respuesta (provee el servicio). En un
sistema distribuido cada máquina puede cumplir el rol de servidor para algunas
tareas y el rol de cliente para otras. En
otras palabras la arquitectura Cliente/Servidor es una extensión de
programación modular en la que la base fundamental es separar una gran pieza de
software en módulos con el fin de hacer más fácil el desarrollo y mejorar su mantenimiento.
Esta arquitectura permite distribuir físicamente los procesos y los datos en
forma más eficiente lo que en computación distribuida afecta directamente el
tráfico de la red, reduciéndolo grandemente.
· CLIENTE
El cliente es el proceso que permite al usuario formular los
requerimientos y pasarlos al servidor, se le conoce con el término front-end. El
Cliente 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 una 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.
SERVIDOR
Es el proceso encargado de atender a múltiples clientes que hacen
peticiones de algún recurso administrado por él. Al proceso servidor se le
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
funciones que lleva a cabo el proceso servidor se resumen en los siguientes puntos:
-
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.
CARACTERÍSTICAS DE LA ARQUITECTURA
CLIENTE/SERVIDOR
Las características
básicas de una arquitectura Cliente/Servidor son:
- Combinación de
un cliente que interactúa con el usuario, y un servidor que interactúa con los
recursos compartidos. El proceso del cliente proporciona la interfaz entre el
usuario y el resto del sistema. El proceso del servidor actúa como un motor de
software que maneja recursos compartidos tales como bases de datos, impresoras,
módems, etc.
- Las tareas del
cliente y del servidor tienen diferentes requerimientos en cuanto a recursos de
cómputo como velocidad del procesador, memoria, velocidad y capacidades del
disco y input-output devices Se establece una relación entre procesos distintos,
los cuales pueden ser ejecutados en la misma máquina o en máquinas diferentes
distribuidas a lo largo de la red.
- Existe una
clara distinción de funciones basada en el concepto de "servicio",
que se establece entre clientes y servidores.
- La relación
establecida puede ser de muchos a uno, en la que un servidor puede dar servicio
a muchos clientes, regulando su acceso a recursos compartidos.
- Los clientes
corresponden a procesos activos en cuanto a que son éstos los que hacen
peticiones de servicios a los servidores. Estos últimos tienen un carácter pasivo
ya que esperan las peticiones de los clientes.
- No existe otra
relación entre clientes y servidores que no sea la que se establece a través
del intercambio de mensajes entre ambos. El mensaje es el mecanismo para la petición
y entrega de solicitudes de servicio.
- El ambiente es
heterogéneo. La plataforma de hardware y el sistema operativo del cliente y del
servidor no son siempre la misma. Precisamente una de las principales ventajas
de esta arquitectura es la posibilidad de conectar clientes y servidores independientemente
de sus plataformas.
• El concepto de
escalabilidad tanto horizontal com o vertical es aplicable a cualquier sistema
Cliente/Servidor. La escalabilidad horizontal permite agregar más estaciones de
trabajo activas sin afectar significativamente el rendimiento. La escalabilidad
vertical permite mejorar las características del servidor o agregar múltiples
servidores
Ventajas del esquema Cliente/Servidor
Entre las
principales ventajas del esquema Cliente/Servidor están:
- Uno de los
aspectos que más ha promovido el uso de sistemas Cliente/Servidor, es la
existencia de plataformas de hardware cada vez más baratas. Esta constituye a
su vez una de las más palpables ventajas de este esquema, la posibilidad de
utilizar máquinas considerablemente más baratas que las requeridas por una solución
centralizada, basada en sistemas grandes. Además, se pueden utilizar
componentes, tanto de hardware como de software, de varios fabricantes, lo cual
contribuye considerablemente a la reducción de costos y favorece la
flexibilidad en la implantación y actualización de soluciones.
- El esquema
Cliente/Servidor facilita la integración entre sistemas diferentes y comparte
información permitiendo, por ejemplo que las máquinas ya existentes puedan ser
utilizadas pero utilizando interfaces más amigables al usuario. De esta manera,
podemos integrar PCs con sistemas medianos y grandes, sin necesidad de que
todos tengan que utilizar el mismo sistema operacional.
- Al favorecer
el uso de interfaces gráficas interactivas, los sistemas construidos bajo este
esquema tienen mayor interacción y más intuitiva con el usuario. En el uso de interfaces
gráficas para el usuario, el esquema Cliente/Servidor presenta la ventaja, con
respecto a uno centralizado, de que no es siempre necesario transmitir información
gráfica por la red pues esta puede residir en el cliente, lo cual permite aprovechar
mejor el ancho de banda de la red.
- Una ventaja
adicional del uso del esquema Cliente/Servidor es que es más rápido el mantenimiento
y el desarrollo de aplicaciones, pues se pueden emplear las herramientas
existentes (por ejemplo los servidores de SQL o las herramientas de más bajo
nivel como los sockets o el RPC ).
- La estructura
inherentemente modular facilita además la integración de nuevas tecnologías y
el crecimiento de la infraestructura computacional, favoreciendo así la escalabilidad
de las soluciones.
- El esquema
Cliente/Servidor contribuye además, a proporcionar, a los diferentes departamentos
de una organización, soluciones locales, pero permitiendo la integración de la
información relevante a nivel global.
Desventajas
del esquema Cliente/Servidor
Entre las
principales desventajas del esquema Cliente/Servidor están:
- El
mantenimiento de los sistemas es más difícil pues implica la interacción de diferentes
partes de hardware y de software, distribuidas por distintos proveedores, lo
cual dificulta el diagnóstico de fallas.
- Se cuenta con
muy escasas herramientas para la administración y ajuste del desempeño de los sistemas.
- Es importante
que los clientes y los servidores utilicen el mismo mecanismo (por ejemplo
sockets o RPC), lo cual implica que se deben tener mecanismos generales que
existan en diferentes plataformas.
- Además, hay
que tener estrategias para el manejo de errores y para mantener la consistencia
de los datos.
- La seguridad
de un esquema Cliente/Servidor es otra preocupación importante. Por ejemplo, se
deben hacer verificaciones en el cliente y en el servidor.
- El desempeño
es otro de los aspectos que se deben tener en cuenta en el Cliente/Servidor.
Problemas de este estilo pueden presentarse por congestión en la red,
dificultad de tráfico de datos, etc.
No hay comentarios:
Publicar un comentario