29
de agosto 2003
Arquitectura
Cliente - Servidor:
Situaciones que apoyaron el modelo
En
muchas situaciones es más eficiente que el procesamiento centralizado, dado que
éste experimenta una "des-economía" de escala cuando aumenta mucho
la cantidad de usuarios.
Existían
ya en ese momento servidores razonablemente eficientes y confiables.
Se
había establecido un estándar de hecho para una interface Cliente/Servidor (el
ODBC SQL, adoptado por todos los fabricantes importantes de servidores).
Era
imprescindible, para apoyar con información a la creciente cantidad de
ejecutivos de nivel medio que necesitan tomar decisiones ante el computador,
ayudándose con las herramientas "front office", que utilizan con toda
naturalidad (planillas electrónicas, procesadores de texto, graficadores,
correos electrónicos, etc.
Arquitectura
Cliente - Servidor:
Conceptos
El
concepto de cliente/servidor proporciona una forma eficiente de utilizar todos
estos recursos de máquina, de tal forma que la seguridad y fiabilidad que
proporcionan los entornos mainframe se traspasa a la red de área local. A ésto
hay que añadir la ventaja de la potencia y simplicidad de los ordenadores
personales.
La
arquitectura cliente/servidor es un modelo para el desarrollo de sistemas de
información, en el que las transacciones se dividen en procesos independientes
que cooperan entre sí para intercambiar información, servicios o recursos. Se
denomina cliente al proceso que inicia el diálogo o solicita los recursos y
servidor, al proceso que responde a las solicitudes.
Es
el modelo de interacción más común entre aplicaciones en una red. No forma
parte de los conceptos de la Internet como los protocolos IP, TCP o UDP, sin
embargo todos los servicios estándares de alto nivel propuestos en Internet
funcionan según este modelo.
Los
principales componentes del esquema cliente/servidor son entonces los Clientes,
los Servidores y la infraestructura de comunicaciones.
Arquitectura
Cliente - Servidor:
Funciones del cliente
Manejo
de la interface del usuario.
Captura
y validación de los datos de entrada.
Generación
de consultas e informes sobre las bases de datos.
Funciones del Servidor
Gestión
de periféricos compartidos.
Control
de accesos concurrentes a bases de datos compartidas.
Enlaces
de comunicaciones con otras redes de área local o extensa.
Siempre
que un cliente requiere un servicio lo solicita al servidor correspondiente y éste,
le responde proporcionándolo. Normalmente, pero no necesariamente, el cliente y
el servidor están ubicados en distintos procesadores. Los clientes se suelen
situar en ordenadores personales y/o estaciones de trabajo y los servidores en
procesadores departamentales o de grupo.
Arquitectura
Cliente - Servidor:
Principales características
El
servidor presenta a todos sus clientes una interface única y bien definida.
El
cliente no necesita conocer la lógica del servidor, sólo su interface externa.
El
cliente no depende de la ubicación física del servidor, ni del tipo de equipo
físico en el que se encuentra, ni de su sistema operativo.
Los
cambios en el servidor implican pocos o ningún cambio en el cliente.
Arquitectura
Cliente - Servidor:
Componentes esenciales
Plataforma Operativa. La plataforma deberá soportar todos los modelos de
distribución Cliente/Servidor, todos los servicios de comunicación, y deberá
utilizar, preferentemente, componentes estándar de la industria para los
servicios de distribución. Los desarrollos propios deben coexistir con las
aplicaciones estándar y su integración deberá ser imperceptible para el
usuario. Igualmente, podrán acomodarse programas escritos utilizando diferentes
tecnologías y herramientas.
Arquitectura
Cliente - Servidor:
Componentes esenciales
Entorno de Desarrollo de Aplicaciones. Debe elegirse después de la
plataforma operativa. Aunque es conveniente evitar la proliferación de
herramientas de desarrollo, se garantizará que el enlace entre éstas y el
middleware no sea excesivamente rígido. Será posible utilizar diferentes
herramientas para desarrollar partes de una aplicación. Un entorno de aplicación
incremental, debe posibilitar la coexistencia de procesos cliente y servidor
desarrollados con distintos lenguajes de programación y/o herramientas, así
como utilizar distintas tecnologías (por ejemplo, lenguaje procedural, lenguaje
orientado a objetos, multimedia), y que han sido puestas en explotación en
distintos momentos del tiempo.
Arquitectura
Cliente - Servidor:
Componentes esenciales de la infraestructura
Gestión de Sistemas. Estas funciones aumentan considerablemente el costo
de una solución, pero no se pueden evitar. Siempre deben adaptarse a las
necesidades de la organización, y al decidir la plataforma operativa y el
entorno de desarrollo, es decir, en las primeras fases de la definición de la
solución, merece la pena considerar los aspectos siguientes:
¿Qué
necesitamos gestionar?
¿Dónde
estarán situados los procesadores y estaciones de trabajo?
¿Cuántos
tipos distintos se soportarán?
¿Qué
tipo de soporte es necesario y quién lo proporciona?
CLASE
30 AGOSTO
Arquitectura
Cliente - Servidor:
Clasificación según las funciones
Presentacion distribuida
el
cliente asume parte de las funciones de presentación de la aplicación,
mediante el uso de productos para el "maquillaje" de las pantallas del
mainframe
siguen
existiendo programas en el servidor, dedicados a esta tarea.
Esta
técnica no exige el cambio en las aplicaciones orientadas a terminales, pero
dificulta su mantenimiento.
el
servidor ejecuta todos los procesos y almacena la totalidad de los datos.
Presentacion remota
La
aplicación está soportada directamente por el servidor, excepto la presentación
que es totalmente remota y reside en el cliente.
Los
terminales del cliente soportan la captura de datos, incluyendo una validación
parcial de los mismos y una presentación de las consultas
Arquitectura
Cliente - Servidor:
Clasificación según las funciones
Proceso distribuido o cooperativo
La
lógica de los procesos se divide entre los distintos componentes del cliente y
del servidor.
El
diseñador de la aplicación debe definir los servicios y las interfaces del
sistema de información, de forma que los papeles de cliente y servidor sean
intercambiables, pero el control de los datos, que es responsabilidad exclusiva
del servidor
Gestión de datos remota
el
cliente realiza tanto las funciones de presentación como los procesos.
El
servidor almacena y gestiona los datos que permanecen en una base de datos
centralizada
Bases de datos distribuidas
El
reparto de tareas es como en el anterior y además el gestor de base de datos
divide sus componentes entre el cliente y el servidor.
Las
interfaces entre ambos, están dentro de las funciones del gestor de datos y,
por lo tanto, no tienen impacto en el desarrollo de las aplicaciones
Arquitectura
Cliente - Servidor:
Características físicas
Servidores
Existe
una plataforma de servidores que sustituye al ordenador central tradicional y
que da servicio a los clientes autorizados.
A
veces el antiguo ordenador central se integra en dicha plataforma como un
servidor más.
Estos
servidores suelen estar especializados por funciones (seguridad, cálculo, bases
de datos, comunicaciones, etc.)
Almacenamiento
Las
unidades de almacenamiento masivo en esta arquitectura, se caracterizan por
incorporar elementos de protección que evitan la pérdida de datos y permiten
multitud de accesos simultáneos (alta velocidad, niveles RAID, etc.).
Comunicación
Se
emplea un sistema de red que se encarga de transmitir la información entre
clientes y servidores.
Físicamente
consiste en un cableado (coaxial, par trenzado, fibra óptica, etc.) o en
conexiones mediante señales de radio o infrarrojas
Puede
Red Local (LAN), metropolitana (MAN) o de área extensa (WAN).
Arquitectura
Cliente - Servidor:
Características físicas
Comunicación
de procesos
Para
la comunicación de los procesos con la red se emplea un tipo de equipo lógico
denominado middleware
que controla las conversaciones.
Su
función es independizar ambos procesos (cliente y servidor).
La
interface que presenta es la estándar de los servicios de red, hace que los
procesos "piensen" en todo momento que se están comunicando con una
red.
Arquitectura
Cliente - Servidor:
Middleware
Es
un módulo intermedio que actúa como conductor entre dos módulos de software.
Para compartir datos, los dos módulos de software no necesitan saber cómo
comunicarse entre ellos, sino cómo comunicarse con el módulo de middleware
Debe
ser capaz de traducir la información de una aplicación y pasarla a la otra.
Permite la comunicación entre objetos y servicios de gestión básicos para
aplicaciones de objetos distribuidos.
En
una aplicación cliente / servidor el middleware reside entre la aplicación
cliente y la aplicación del sistema host que actúa como servidor.
Puede
definirse en términos de programación orientada a objetos. El módulo
identifica diferentes objetos y conoce qué propiedades tienen asociadas, por lo
que puede responder a peticiones referentes a los mismos.