INGENIERIA DEL SOFTWARE
ARQUITECTURA CLIENTE SERVIDOR
DEFINICIÓN:
Sistema distribuido entre múltiples procesadores
donde hay clientes que solicitan servicios y servidores que los proporcionan. Separa
los servicios situando cada uno en su plataforma más adecuada.
EL MODELO CLIENTE – SERVIDOR
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 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.
La idea es tratar a
una computadora como un instrumento, que por sí sola pueda realizar muchas
tareas, pero con la consideración de que realice aquellas que son mas adecuadas
a sus características.
Si esto se aplica
tanto a clientes como servidores se entiende que la forma más estándar de
aplicación y uso de sistemas Cliente/Servidor es mediante la explotación de las
PC’s a través de interfaces gráficas de usuario; mientras que la administración
de datos y su seguridad e integridad se deja a cargo de computadoras centrales
tipo mainframe. Usualmente la mayoría del trabajo pesado se hace en el proceso
llamado servidor y el o los procesos cliente sólo se ocupan de la interacción
con el usuario (aunque esto puede variar).
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 / SERVIDOR
Esta arquitectura consiste
básicamente en un cliente que realiza peticiones a otro programa (el servidor)
que le da respuesta. Aunque esta idea se puede aplicar a programas que se
ejecutan sobre una sola computadora es más ventajosa en un sistema operativo
multiusuario distribuido a través de una red de computadoras.
En esta
arquitectura la capacidad de proceso está repartida entre los clientes y los
servidores, aunque son más importantes las ventajas de tipo organizativo
debidas a la centralización de la gestión de la información y la separación de
responsabilidades, lo que facilita y clarifica el diseño del sistema.
La separación entre
cliente y servidor es una separación de tipo lógico, donde el servidor no se
ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo
programa. Los tipos específicos de servidores incluyen los servidores web, los
servidores de archivo, los servidores del correo, etc. Mientras que sus
propósitos varían de unos servicios a otros, la arquitectura básica seguirá
siendo la misma.
Una disposición muy
común son los sistemas multicapa en los que el servidor se descompone en
diferentes programas que pueden ser ejecutados por diferentes computadoras
aumentando así el grado de distribución del sistema.
La arquitectura
cliente-servidor sustituye a la arquitectura monolítica en la que no hay
distribución, tanto a nivel físico como a nivel lógico.
La red
Cliente/Servidor es aquella red de comunicaciones en la que todos los clientes
están conectados a un servidor, en el que se centralizan los diversos recursos
y aplicaciones con que se cuenta; y que los pone a disposición de los clientes
cada vez que estos son solicitados. Esto significa que todas las gestiones que
se realizan se concentran en el servidor, de manera que en él se disponen los requerimientos
provenientes de los clientes que tienen prioridad, los archivos que son de uso
público y los que son de uso restringido, los archivos que son de sólo lectura
y los que, por el contrario, pueden ser modificados, etc. Este tipo de red
puede utilizarse conjuntamente en caso de que se esté utilizando en una red
mixta.
¿CUÁNDO IMPLANTAR
CLIENTE/SERVIDOR?
1. Cambios estructurales y organizativos.
2. Cambios en organigramas.
3. Respuesta dinámica de mercado.
4. Cambio en procesos de negocio.
¿QUÉ AYUDA A LA
IMPLEMENTACIÓN?
1. La demanda de sistemas fáciles.
2. Precio/rendimiento de estaciones y servidores.
3. Creciente acceso a la información para decisiones:
A.
Separación
datos-programas.
B.
Programas
flexibles.
4. Nuevas tecnologías de alta productividad.
.
CLIENTE
Es el que inicia un
requerimiento de servicio. El requerimiento inicial puede convertirse en
múltiples requerimientos de trabajo a través de redes LAN o WAN. La ubicación
de los datos o de las aplicaciones es totalmente transparente para el cliente. En
la arquitectura C/S el remitente de una solicitud es conocido como cliente.
CARACTERÍSTICAS DEL
CLIENTE:
1.
Es quien inicia solicitudes o peticiones, tienen por tanto un papel
activo en la comunicación (dispositivo maestro o amo).
2.
Espera y recibe las respuestas del servidor.
3.
Por lo general, puede conectarse a varios servidores a la vez.
4.
Normalmente interactúa directamente con los usuarios finales mediante
una interfaz gráfica de usuario.
5.
5. Al contratar un servicio de redes , se tiene que tener en la
velocidad de conexión que le otorga al cliente y el tipo de cable que utiliza ,
por ejemplo : cable de cobre ronda entre 1 ms y 50 ms.
SERVIDOR
Es cualquier
recurso de cómputo dedicado a responder a los requerimientos del cliente. Los
servidores pueden estar conectados a los clientes a través de redes, para
proveer de múltiples servicios a los clientes y ciudadanos tales como
impresión, acceso a bases de datos, fax, procesamiento de imágenes, etc. Al
receptor de la solicitud enviada por cliente se conoce como servidor.
CARACTERÍSTICAS DEL
SERVIDOR:
1. Al iniciarse
esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un
papel pasivo en la comunicación (dispositivo esclavo).
2. Tras la
recepción de una solicitud, la procesan y luego envían la respuesta al cliente.
3. Por lo general,
aceptan conexiones desde un gran número de clientes (en ciertos casos el número
máximo de peticiones puede estar limitado).
4. No es frecuente
que interactúen directamente con los usuarios finales.
FUNCIONES
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.