es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de
recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Las aplicaciones
Clientes realizan peticiones a una o varias aplicaciones Servidores, que deben encontrarse en ejecución
para atender dichas demandas.
El modelo Cliente/Servidor permite diversificar el trabajo que realiza cada aplicación, de forma que los
Clientes no se sobrecarguen, cosa que ocurriría si ellos mismos desempeñan las funciones que le son
proporcionadas de forma directa y transparente.
El Modelo de Servicios
Definición de Modelo de Servicios
Un modelo es una vista abstracta que establece las definiciones, reglas y relaciones entre las
estructuras relacionadas con la aplicación. Sirve de base para el intercambio de ideas durante el
desarrollo lógico de la aplicación y determina cómo será la aplicación resultante.
Lógica de Presentación
Esta lógica es la responsable del control de todos los aspectos relacionados con la interacción entre el
usuario y la aplicación.
Para llevar a cabo esta tarea de control, es necesario conocer qué tipos de usuarios utilizarán la
aplicación, qué actividades tienen que realizar y, teniendo en cuenta estos datos, cuáles son los
mejores estilos de interfaz para que esos usuarios realicen sus tareas. En esta lógica se engloban todas
las tareas que deben ser realizadas por la parte Cliente del modelo general. Con el fin de independizar
(en la medida de lo posible) la interfaz de usuario de las características propias de los procesos,
debemos tener presente que la codificación de las tareas asociadas a esta lógica consiste,
principalmente, en la llamada a procesos independientes situados en las otras lógicas, cuya ejecución
es totalmente transparente.
Lógica de Negocio
Es la lógica de la aplicación que controla la secuencia de acciones y fuerza el cumplimiento de las
reglas del negocio propias de cada empresa; además, asegura la integridad de las transacciones de las
operaciones necesarias que haya que realizar para que se cumplan dichas reglas. La lógica del negocio
también transforma una serie de datos en información útil para el usuario mediante la aplicación de
las reglas apropiadas.
Flexibilidad a la hora de decidir cómo
y dónde situar el código de esta
lógica: en componentes dentro de
una aplicación servidora; en
procedimientos almacenados, dentro
del sistema gestor de datos; o incluso
en el cliente.
La habilidad de colocar
distintas interfaces de
usuario para un mismo
conjunto estándar de
reglas de negocio.
Facilita el mantenimiento de las
reglas del negocio y de su lógica,
aislando los cambios de las
interfaces de los usuarios y de los
datos
La habilidad para
sustituir el código de
estas reglas, de forma
que, aunque el conjunto
de reglas que se
encuentra dentro de un
conjunto de servicios del
negocio varía de un país a
otro, las interfaces de
esos servicios pueden
permanecer constantes
Lógica de Datos
En este conjunto entran los procesos encargados de la gestión de los datos propiamente dicha, es decir,
los procesos encargados del mantenimiento de los datos, de garantizar las reglas de integridad
referencial establecidas, así como de la gestión de las transacciones. Estas tareas son realizadas,
generalmente, por un Sistema de Gestión de Bases de Datos Relacionales, como SQL Server, Oracle,
MySQL, Informix, etc.
Modelo Cliente/Servidor 2 capas
Uno de los objetivos de las aplicaciones de 2 capas es separar la
lógica de acceso a los datos de lo que es la interfaz de usuario y
trasladarla al servidor. Habitualmente, se implementan
servicios como procedimientos almacenados en el sistema
gestor de datos; con esto se 3 El Modelo Cliente/Servidor Ing.
Emiliano Marini www.linuxito.com pretende reducir la carga de
los clientes y centralizar las operaciones comunes de acceso a
los datos.
En este modelo intervienen únicamente dos entidades: El Cliente y El Servidor.
El papel de Cliente lo
desempeña la aplicación
final del usuario, que
implementará todas las
funciones
correspondientes a la
lógica de presentación,
más algunas de las
funciones relacionadas
con la lógica del negocio,
como pueden ser
determinadas validaciones
de datos y condiciones de
recuperación.
El papel de Servidor lo desempeña el
propio SGBD, el cual se ocupará de
todas las funciones
correspondientes a la lógica de
datos, más las restantes funciones
correspondientes a la lógica del
negocio, mediante la codificación de
Procedimientos Almacenados.
Desventajas
● Pobre escalabilidad: a medida que se incrementan
los clientes se debe redistribuir y reconfigurar la
aplicación y se deben reconfigurar firewalls, permisos
en servidores de BD, asignar nuevas direcciones IP, etc.
● Pobre mantenimiento: si se hacen cambios en el
código de la aplicación, se debe redistribuir.
● Pobre seguridad: la autenticación mediante
usuarios del motor de bases de datos (a nivel
de servicio) presenta un severo riesgo.
● Pobre confiabilidad: la heterogeneidad de
estaciones de trabajo, malware instalado,
compatibilidad, etc. puede tener implicancias
en la lógica del negocio.
Modelo Cliente/Servidor multicapa
La arquitectura cliente/servidor genérica tiene dos tipos de nodos
en la red: clientes y servidores. Consecuentemente, estas
arquitecturas genéricas se refieren a veces como arquitecturas de
dos niveles o dos capas.
Algunas redes disponen de tres tipos de
nodos:
● Clientes que interactúan con
los usuarios finales.
● Servidores de aplicación
que procesan los datos
para los clientes.
● Servidores de la base de
datos que almacenan los
datos para los servidores
de aplicación
Este modelo aporta una flexibilidad
adicional en la construcción de aplicaciones
cuando éstas aumentan su complejidad.
Influye tanto en el modelo de aplicación
(lógicas de presentación, del negocio y de
datos) como en la distribución de los
servicios
Ventajas
Mantenimiento: no hace falta
redistribuir la aplicación si se hacen
cambios en el código.
● SGBD: no hace falta utilizar credenciales del
motor de bases de datos en las estaciones de
trabajo clientes.
Desventajas
Procesamiento centralizado: todo el
procesamiento lo realiza el servidor
Microsoft Terminal, lo que rompe
con la idea principal del modelo
Cliente/Servidor de distribuir el
procesamiento.
Escalabilidad deficiente: a medida
que se incrementan los clientes se
deben reconfigurar firewalls,
permisos en en el servidor Microsoft
Terminal, asignar nuevas direcciones
IP, etc. Además el procesamiento
centralizado limita la escalabilidad
respecto a recursos de HW y
licencias.
Seguridad deficiente: la autenticación
mediante usuarios de Windows (a nivel
SO) introduce nuevas vulnerabilidades