lunes, 30 de marzo de 2009

02 Conceptos Cliente y Servidor

Servidores y clientes
Es frecuente observar en la calle que son muchas las personas que cuando se refieren a los servidores lo hacen con sí se tratara de máquinas complejísimas, misteriosas, lejanas y enormes que parecen totalmente distintas de la computadora que usamos habitualmente. ¡Nada más lejos de la realidad!

Intentaremos aclarar algunos conceptos con ejemplos cotidianos. Pensemos en esas computadoras remotas (también llamados host) como si se tratara de uno esos sitios desde los que se sirven comidas a domicilio.

Quizá lo primero en lo que se te ocurra pensar sea en una pizza, no porque desconozcas que también es posible comprar otras cosas sino por la popularidad de ese tipo de servicio. Algo similar ocurre con los host. La frecuencia con la que accedemos a ellos en demanda de páginas web hace que tendamos a identificarlos con ellas, pero... también los host ofrecen –o pueden ofrecer– más servicios. Sigamos con las comidas a domicilio.

Cada una de esas empresas puede atender peticiones uno o varios servicios distintos (pizzas, helados, o platos regionales, por citar algunos ejemplos), pero la oferta de cada uno de esos servicios requiere una infraestructura adecuada a cada caso. La oferta de pizzas exigirá disponer de un horno, y la de helados necesitará de una instalación especial de refrigeración.

Pues bien, algo muy similar ocurre con los host. También éstos pueden ofrecer uno o varios servicios (páginas web, correo electrónico, transferencias FTP, noticias, etc.) y también es necesario que cada servicio disponga de su propia infraestructura, que en este caso sería un programa distinto (software de servidor) para cada uno de ellos.

Como puedes ver, no basta con hablar de servidores. Es necesario especificar también qué es lo que sirven, para lo cual habría que decir: servidor de páginas web, servidor de correo, etc. y tener presente que -aunque convivan en el mismo host– cada uno de ellos requiere su propio software y su propia configuración.

Resumiendo, cuando en lenguaje coloquial hablamos de un servidor estamos aludiendo un host (computadora remota) –el tamaño y la lejanía carecen de importancia– provisto de programas (software de servidor) que, cuando está accesible (conectado a Internet) y con el software activo (servicio en funcionamiento) es capaz de atender peticiones y devolver a los clientes los documentos solicitados, o un mensaje de error, en el caso de que no estuvieran disponibles.


Veamos un ejemplo de como se desarrolla ese proceso de petición-respuesta (en inglés "request-response").

Para leer el correo electrónico necesitas disponer de un programa –supongamos que es Outlook Express– instalado en tu ordenador y hacer, a través de él, una petición a una computadora remota (host). Si quisieras visualizar páginas web tendrías que utilizar un programa distinto –Internet Explorer, por ejemplo– capaz de realizar esta otra tarea.
Al programa que utilizamos para realizar cada petición le llamaremos cliente.

¿Qué es una petición?
Una petición es un conjunto de datos que un cliente (recuerda que el cliente siempre es uno de los programas instalados en tu PC) envía a través de Internet solicitando una respuesta determinada por parte de una computadora remota.

¿Qué contendría esa petición?
Cada tipo de petición tendrá contenidos distintos. Por ejemplo, cuando se trata de leer mensajes de correo, la petición realizada por el cliente (Outlook Express) contendría, entre otros, muchos de los datos de la configuración de la cuenta, tales como: el protocolo (forma de comunicación) – en el caso del correo lo habitual sería el protocolo POP (Post Office Protocol)–, el nombre de host donde está alojado el buzón (servidor POP ó servidor de correo entrante), el nombre de la cuenta, la contraseña de acceso, y algunas otras informaciones relativas a la gestión de esa cuenta tales como si deben conservarse o no los mensajes en el servidor, etc.

¿Qué ocurre con esa petición?
Cualquier petición pasa en primera instancia por un servidor de nombres de dominio (Domain Name Server) DNS, una especie de guía telefónica que contiene los nombres de los servidores y las direcciones IP a través de las cuales están conectados a Internet.

Podría decirnos –los datos son ficticios– que "medicos.hospitalcentral.ar" es el nombre de un host que está conectado a Internet a través de la dirección IP 111.112.113.114

Una vez resuelta esa petición por el servidor DNS (direccionamiento de la petición a la IP correspondiente) se comprobará si esa IP está activa (si efectivamente hay un ordenador conectado a través de ella) y, en caso de estarlo, se determinará si esa computadora puede atender la petición.

¿Qué tiene que ocurrir para que pueda atenderse una petición?
Es necesario que la computadora remota tenga instalado y funcionando el software de servidor adecuado al protocolo de nuestra petición. Ello quiere decir -siguiendo con el ejemplo– que el ordenador remoto debe tener instalado y funcionando un software específico de servidor de correo capaz de interpretar el protocolo POP3 especificado en la petición.