El modelo
Cliente-Servidor se ha convertido en la arquitectura informática
dominante, a la vez que las organizaciones demandan cada vez más las
facilidades del entorno PC multiusuario, junto con las ventajas de un
seguro centro de información centralizado.
Los
sistemas Cliente-Servidor explotan el poder computacional tanto del
cliente como del servidor, inteligentemente optimizando la intensidad
de las operaciones sobre el servidor y minimizando la cantidad de
datos que se transmiten por la red.
Sabiendo
que existe un gran Universo lleno de máquinas que pueden comunicarse
entre ellas; ¿Para qué puede servir esto?
La
respuesta a esta pregunta es simple: Prestar servicios. La idea
entonces es que existan máquinas que se encarguen de prestar
determinados servicios y otras que los utilicen.
De la
misma forma que en nuestra sociedad, en la red las máquinas cumplen
roles. Uno de esos roles es el de servidor y el otro es el de
cliente.
Por
ejemplo, cuando se nos termina el pan vamos a a la panadería a
comprar más. En ese caso el panadero cumple el rol de servidor y
nosotros el rol de clientes.
El
término computador local se utiliza para referirse al equipo que el
usuario utiliza para entrar en la red Internet. Desde ese computador
el usuario establece conexiones con otros computadores, denominados
computadores remotos, a los que solicita algún servicio. Estos
computadores remotos que ofrecen servicios reciben también el nombre
de servidores
o hosts.
La
utilización de las diferentes aplicaciones o servicios de Internet
se lleva a cabo respondiendo al modelo Cliente-Servidor.
Cuando se
utiliza un servicio en Internet, como consultar una base de datos,
transferir un fichero o participar en un foro de discusión, se
establece un proceso en el que entran en juego dos partes.
Por un
lado, el usuario, quien ejecuta una aplicación en el computador
local: el denominado
programa
cliente.
Este programa cliente se encarga de ponerse en contacto con el
computador remoto para solicitar el servicio deseado. El computador
remoto por su parte responderá a lo solicitado por el programa
cliente mediante otro programa, denominado
programa
servidor.
Los términos cliente y servidor se utilizan tanto para referirse a
los programas que cumplen estas funciones, como a los computadores
donde son ejecutados esos programas.
El
programa o los programas cliente que el usuario utiliza para acceder
a los servicios de Internet realizan dos funciones distintas. Por una
parte, se encargan de gestionar la comunicación con el servidor, de
solicitar un servicio concreto y de recibir los datos enviados por
éste; y por otra, es la herramienta que presenta al usuario los
datos en pantalla y que le ofrece los comandos necesarios para
utilizar las prestaciones que ofrece el servidor.
Así
pues, podremos decir que, Cliente-Servidor es una frase que se usa
para describir un modelo de interacción entre dos procesos, que se
ejecutan en forma simultánea.
Esta
comunicación estás basada en una serie de preguntas y respuestas,
que asegura que si dos aplicaciones intentan comunicarse, una
comienza la ejecución y espera indefinidamente que la otra le
responda y luego continúa con el proceso.
De manera
general, se definirá un
servidor
como el proveedor del servicio que está a la espera de los mensajes
de los clientes. Y al
cliente
como
la aplicación lógica de un computador que obtiene información y
recursos de otro computador, llamado servidor.
Los
procesos clientes son más sencillos que los procesos de los
servidores, los primeros no requieren de privilegios
de sistemas para operar, en cambio los procesos servidores sí.
El diseño
de los servidores debe ser muy cuidadoso, debe incluir código para
el manejo de:
-
Autenticación:
verificar la identidad del cliente.
seguridad de datos: para que
estos no puedan ser accedidos inapropiadamente.
-
Privacidad:
garantizar que la información privada de un usuario, no sea
accedida por alguien no autorizado.
-
Protección:
asegurar que las aplicaciones no monopolicen los recursos del
sistema.
-
Autorización:
verificar si el cliente tiene acceso al servicio proporcionado por
el servidor.