Intro C-S
Intro C-S
Intro C-S
ARQUITECTURA CLIENTE-SERVIDOR
La mayoría de redes trabajan bajo este modelo “Cliente/servidor”, conocida también como Redes
Basadas en Servidor. Una estación CLIENTE haciendo uso de su propia arquitectura(CPU), realiza
una petición de Recursos (Datos, Procesos, Aplicación, Espacio de Almacenamiento, Spools, etc..)
a otro equipo denominado SERVIDOR. El resultado del procesamiento puede ser almacenado
tanto en el Servidor para su uso futuro o en la estación Cliente, y a la vez puede ser compartida a
otras estaciones Clientes de una red. En redes basadas en Grupo de Trabajo (no existe un
Servidor Centralizado), cada estación Cliente actúa como Cliente y Servidor en la red.
El entorno Cliente/Servidor (C/S), tiene dos componentes prin.cipales en su arquitectura:
La aplicación compartida, a menudo denominada como CLIENTE o FRONT-END.
La aplicación del servidor que atiende las solicitudes y que procesa la información a
responder, conocida como: SERVIDOR o BACK-END
Hardware del Servidor.- Los equipos Servidores en un entorno C/S deben ser generalmente
más potentes, rápidos y capaces (storage) que los Clientes. Deben incluir procesamiento de Alta
Velocidad y Paralelismo (Core), necesitan gran cantidad de RAM y espacio en Terabytes de
almacenamiento en disco (en Array). Un equipo servidor, también debe ser capaz de gestionar:
Múltiples peticiones de clientes y usuario.
Seguridad en cada sesión abierta.
Tareas de gestión de Red, etc.
Definimos a la Arquitectura C/S, como: Un modelo en el que el procesamiento de Recursos entre un
equipo Servidor y uno o varios Clientes es compartido, siendo más potente, confiable, seguro y
rápido.
Algunas de las propiedades de los Sistemas basados en el modelo C/S, son:
Se basa en un modelo Sin Conexión, esto quiere decir:
Cuando los programadores diseñan software cliente - servidor, deben de escoger entre dos
tipos de interacción: Orientada a la Conexión o NO Orientada a la Conexión. Si el cliente y el
servidor utilizan UDP (User Datagrama Protocol), la iteración es sin conexión; por el
contrario, si emplean TCP (Transfer Control Protocol), la iteración es orientada a la
conexión.
El protocolo de la capa “n” utiliza la información de la capa “n”, es decir:
Cada capa del modelo OSI, proporciona una interfaz con la otra capa por encima de ella; la
interfaz consiste en un conjunto de operaciones para definir el servicio que la capa está
preparada para ofrecer a sus usuarios.
El encapsulamiento de los datos tanto en el modelo OSI y TCP/IP, está representado por los
siguientes gráficos:
Figura 2. Formato de un mensaje en una red típica Figura 3. Formato IP de un mensaje en TCP/IP
En el MODELO TCP/IP, la mayoría de los sistemas distribuidos basados en LAN no utilizan los
protocolos de capas completos; utilizan un subconjunto de toda una pila de protocolos. El
“modelo OSI” no dice nada acerca de la forma de estructurar al sistema distribuido. El “modelo
cliente - servidor” tiene como idea fundamental la estructuración del modelo OSI, como:
Un grupo de procesos en cooperación, llamados servidores; que ofrecen servicios a los
usuarios, y un grupo de procesos usuarios llamados clientes.
El “modelo cliente - servidor” se basa en un “protocolo solicitud/respuesta”, donde:
Es sencillo y sin conexión en el caso de emplear UDP.
No es complejo y es orientado a la conexión como OSI o TCP/IP.
El cliente envía un mensaje de solicitud al servidor pidiendo cierto servicio, el
servidor: Ejecuta el requerimiento. Regresa los datos solicitados o un código de error si
no pudo ejecutarlo correctamente.
No se tiene que establecer una conexión hasta que ésta se vaya utilizar.
La pila del protocolo IP es más corta y por lo tanto más eficiente; Si todas las máquinas
fuesen idénticas solo se necesitarían tres niveles de protocolos.
Por norma general, los programas de aplicación sólo emplean el UDP si:
El protocolo de aplicación a implementar especifica que se debe de emplear el UDP (puede
ser que el protocolo de aplicación haya sido diseñado para manejar errores que se puedan
producir durante la comunicación)
El protocolo de aplicación relega la seguridad de comunicación al hardware subyacente y no
importa la pérdida de algunos paquetes de información.
La aplicación no puede tolerar la sobrecarga (overhead) computacional o retraso requerido
por los circuitos virtuales TCP.
Para que un cliente pueda enviar un mensaje a un servidor, debe conocer previamente la
dirección de éste. Un esquema de direccionamiento se basa en la dirección de la máquina
destinataria del mensaje y puede ser: Limitativo si en la máquina destinataria se ejecutan varios
procesos, pues no se sabría para cuál de ellos es el mensaje.
Otro esquema de direccionamiento se basa en identificar los procesos destinatarios en vez de a
las máquinas y se logra:
Eliminar la ambigüedad acerca de quién es el receptor.
Pero presenta el problema de cómo identificar los procesos y una solución es una
nomenclatura que incluya la identificación de la máquina y del proceso, entonces: No se
necesitan coordenadas globales; Pueden repetirse los nombres de los procesos en distintas
máquinas.
También existe el método de dejar que cada proceso elija su propio identificador, considerando
que:
El espacio de direcciones es grande y disperso, por ejemplo: enteros binarios de 64 bits.
La probabilidad de que dos procesos elijan el mismo número es muy pequeña.
Existe el problema, para el núcleo emisor, de saber a qué máquina enviar el mensaje:
En una LAN, el emisor puede transmitir un paquete especial de localización con la dirección del
proceso destino. Este paquete de transmisión será recibido por todas las máquinas de la red.
Todos los núcleos verifican si la dirección es la suya; si lo es, regresa un mensaje aquí estoy con
su dirección en la red (número de máquina). El núcleo emisor utiliza esa dirección y la captura
para evitar a posteriori una nueva búsqueda del servidor.
Se hace referencia a los procesos de los servidores mediante cadenas en ASCII que son las
que aparecen en los programas.
No se referencian números binarios de máquinas o procesos.
Al ejecutar un cliente que intente utilizar un servidor: En su primer intento envía una
solicitud a un servidor especial de asociaciones (servidor de nombres) y le solicita el
número de la máquina donde en ese momento se localiza el servidor. Luego, conociendo la
dirección del servidor, se le envía la solicitud del servicio requerido.