La mayoría de la gente piensa que Google es "solo" una empresa de búsqueda, pero en los últimos años se ha empezado a proporcionar versiones gratuitas de aplicaciones que antes solo estaban disponibles como programas de escritorio independientes..

La cantidad de personas que utilizan Google para correo electrónico, programación, procesamiento de textos y creación de hojas de cálculo es cada vez mayor, pero los sitios web son solo una forma de acceder a todas estas aplicaciones..

Detrás de escena, la mayoría de lo que está disponible en Google a través de páginas web también está disponible a través de la programación.

¿Qué son los servicios web??

Los servicios web son similares a los sitios web muy simples: sitios diseñados para ser usados ​​por computadoras en lugar de humanos.

Imagina que escribes un script que llama a un servicio web. El script realiza una "solicitud" al servicio al enviar información (generalmente en XML) a una dirección web. El servicio generalmente responde con algún texto XML en lugar de devolver una página web HTML.

Por ejemplo, un motor de búsqueda podría permitirle enviar algunos términos de búsqueda y responder a aquellos con un archivo XML que enumera los nombres y ubicaciones de las páginas web que coinciden con sus criterios.

Ese es un caso simple, pero a medida que los sitios web se han vuelto más poderosos y similares a las aplicaciones de escritorio, los servicios web han comenzado a ofrecer una lista más larga de características. Han crecido hasta el punto de que muchos de ellos ahora cumplen una función similar a los lenguajes de macros de rol, como VBA, una vez que se sirven en Microsoft Office y otros productos..

Servicios de conexion

La aplicación de ejemplo que vamos a construir aquí conecta dos conjuntos diferentes de servicios web juntos. Uno es de la BBC, el otro de Google..

La BBC ofrece una gran cantidad de información de su listado de forma gratuita a través de servicios web. Si tiene una tarjeta de TV en su PC que puede recoger automáticamente los detalles del programa, es posible que esté utilizando uno de estos servicios de la BBC.

Google expone casi todo lo que hace como servicios web. Es parte de su plan para convertirse en el contenedor de toda la información sobre el planeta, y Google ha dado astutamente a los usuarios el mayor acceso posible a los datos y las aplicaciones que alberga..

Al conectar estos dos servicios web, podemos resolver un problema hipotético: desea ver documentales sobre el campo, pero cada vez que enciende el televisor, no puede encontrar lo que quiere y terminar viendo otra cosa. Este proyecto de programación de TV evita que esto suceda..

Puede filtrar los listados de la BBC para las cosas que desea, y luego publicar un evento para cada programa en el Calendario de Google para recordarle cuándo debe sintonizar los programas..

Pase a los camerinos

El primer conjunto de servicios web que veremos se ejecuta en el sitio web Backstage de la BBC. Este es un sistema experimental que se lanzó hace tres años y pone a disposición muchos datos de la BBC con la esperanza de que la gente encuentre formas interesantes e innovadoras de usarlo. Toda la documentación de los servicios web de Backstage se puede encontrar aquí: www.tinyurl.com/2af4vw.

El script que maneja el servicio de la BBC se llama 'bbc_progs.rb'. Aunque hay muchos servicios en oferta, solo vamos a utilizar tres. En primer lugar, llamaremos 'bbc.genre.getMembers'. Si envía a este servicio el código para un género particular de programa (como los documentales), devuelve una descripción XML de todos los programas de ese tipo actualmente listados en su base de datos..

A continuación, llamaremos 'bbc.programme.getLocations'. Esto devuelve un conjunto de direcciones donde puedes ver o escuchar el programa en la web. En realidad, las direcciones devueltas no siempre funcionan; la mayoría de los enlaces de radio están bien, pero la mayoría de los enlaces de TV están equivocados. Parece probable que, con el tiempo, se emita más televisión en la web, así que las grabaremos aquí por si acaso.