martes, mayo 02, 2006

El protocolo Patata Caliente

A petición popular, voy a explicar cómo nos las arreglamos para diseñar un protocolo que permitiera jugar a la patata caliente por Internet. Normalmente los servicios que se ofrecen en Internet (Web, email, noticias, telefonía, intercambio de ficheros...) están soportados por protocolos específicos diseñados a tal efecto. Así, por ejemplo, el servicio web es soportado por el protocolo HTTP, y el de intercambio de ficheros por el protocolo FTP.

Todos podemos ofrecer un servicio en Internet: sólo necesitamos un servidor que permita la ejecución de tal servicio. Por ejemplo, yo puedo crear un servicio que sume dos números. Creo un programa que "escuche" en la línea telefónica de mi ordenador peticiones de realizar una suma. Cuando recibe una, la procesa y devuelve al equipo que envió la petición y los números, la suma de ambos. Todo esto puede sonar complicado, pero en realidad es muy sencillo. De ahí su éxito. De hecho, la red Internet como cableado e infraestructura es solo eso: un esqueleto. Los músculos son los servicios.

Una vez que tenemos un servidor ofreciendo una funcionalidad, necesitamos un cliente. En el programa que suma dos números, el cliente enviaría al servidor un saludo y los dos números, y quedaría a la espera del resultado. Éste esquema es el más utilizado en la teleinformática, y se denomina "modelo cliente-servidor" por razones obvias.

Cuando se nos planteó el desafío de crear un servicio "Patata Caliente" nos asustamos un poco, pero luego vimos que en realidad es algo muy simple. Hicimos un programa en lenguaje C del que no puedo dar código ni detalles hasta que mi compañero de prácticas realice la defensa en el mes de julio, para evitar que alguien presente un código equivalente y le suspendan...

Esencialmente, el programa se pone a la escucha de las peticiones que entren por un puerto concreto. Cuando le llega un "Hola" se pone a trabajar, enviando una pregunta. Un ejemplo de pregunta es "¿Cuándo mide el Everest?". La pregunta llega al cliente, que queda a la espera de que el usuario escriba la respuesta. Cuando se teclea un número, el cliente envía la respuesta dada por el usuario al servidor. El servidor la compara con la solución, y según sea mayor, menos o igual que la respuesta que proporcionó el usuario, responde. También decrementa el número de intentos y lo envía de vuelta.

El programa cliente recibe si el dato que el usuario proporcionó es la solución. En ese caso, presenta un mensaje de enhorabuena. En otro, indica si la respuesta es mayor o menor a la última dada. Comprueba asimismo que el usuario se encuentre dentro del número de intentos permitido.

El esquema es sencillo: el cliente se encarga interactuar con el usuario, como lo hace con nosotros el Firefox. Envía las respuestas de éste al servidor, quien se encarga de procesarlas adecuadamente, como hace un servidor web cuando el navegador solicita una web.

Espero haber aclarado algo. Tal vez esta información sólo sirva a quienes tengan algo más de experiencia en informática, pero siempre está bien tener una idea, al menos aproximada, de cómo funcionan las cosas.

4 Comentarios:

A las 4:56 p. m., Anonymous tu sister escribió... (¡Gracias, Anonymous tu sister!)

jajajaja voy a hacerme una patata como esa! ;) besos

 
A las 9:24 p. m., Anonymous Treiral_ escribió... (¡Gracias, Anonymous Treiral_!)

Mi hermana ya tiene esa forma BWAHHAhABJKHKASKAHJSAFDJNAFD XDDDDDDDDD
k perro soy xd

Hey Misslucifer, un saludo desde aquí porque no puedo postearte en el blog xD (y esta vez no se porque xD)

 
A las 5:45 p. m., Blogger Misslucifer escribió... (¡Gracias, Blogger Misslucifer!)

Que chula la patata (siempre pensando en lo mismo, so pervertido) :-D

PD. Treiral, ¿Por que das por supuesto que iba a dar con tu comentario aquí? :-P

 
A las 2:08 p. m., Anonymous osiris escribió... (¡Gracias, Anonymous osiris!)

yo hice una servidor de insultos... mi profe de sistemas abiertos era un cachondo...

 

Recuerda que nos hemos mudado a nosololinux.com

<< Home