- Google SOAP Search API
-
En Mayo del año 2002 Google lanzó un servicio denominado "Google SOAP Search API" el cual consiste en una API que permite a desarrolladores acceder a sus servicios de búsqueda desde sus propias aplicaciones utilizando los estandares SOAP y WSDL
Por lo tanto, una vez que se conoce la descripción WSDL de las operaciones de Google, el desarrollador podrá generar peticiones SOAP y procesar los mensajes de respuesta recibidos en su propia aplicación.
Contenido
Descripción y funcionalidad
Google SOAP Search API es un servicio Versión beta que permite a desarrolladores buscar y manipular información de la web de una manera rápida y sencilla. Los desarrolladores escriben programas que se conectan de forma remota al servicio de Google via SOAP para el intercambio de información.
Las funcionalidades de este servicio son: hacer consultas al índice de Google el cual cuenta con billones de páginas web y recibir los resultados en datos estructurados, acceder a la información de la cache de Google y chequear la correcta escritura de una palabra con las sugerencias ofrecidas por Google.
Algo importante para destacar es que el servicio utiliza la misma sintaxis de búsqueda que el sitio Google.com, por lo tanto, los usuarios del servicio podrán realizar las búsquedas de la misma forma en que lo harían en el sitio de Google.
Limitaciones
Google provee a cada usuario que posea una cuenta en su sitio, un límite de 1000 consultas por día al servicio, esto se debe a que esta API es solo un experimento y por ello su utilización se encuentra limitada.
La manera que tiene Google de limitar su servicio es utilizando un “Licence Key” que se debe enviar con cada consulta al servicio del sitio. Cada desarrollador puede tener solo un “Licence Key” y está prohibido crear otras cuentas para obtener más de una licencia.
Otras limitaciones con las que se cuenta al utilizar este servicio son:
- Máximo de 10 palabras en la consulta.
- Máximo de 10 resultados por consulta.
Operaciones
Esta API soporta tres operaciones:
- doSpellingSuggestion: permite solicitar a Google una sugerencia de escritura correcta para un término mal tecleado.
- doGetCachedPage: devuelve la caché almacenada de Google para una URL solicitada.
- doGoogleSearch: es el servicio de búsqueda tradicional de google.
Utilizando la descripción WSDL
Dentro del “Development Kit” que se debe descargar para comenzar a utilizar esta API, se encuentra un archivo llamado “GoogleSearch.wsdl” el cual describe la interfaz publica al servicio de Google.
Esta descripción indica que se soportan tres operaciones, las cuales fueron mencionadas anteriormente.
Para realizar una petición al servicio de búsqueda de Google utilizando su API es necesario conocer los parámetros requeridos, aquí presentaremos una breve descripción de los mismos para cada operación.
Descripción del formato de la operación “doGoogleSearch”
- Key: Es el “Licence Key”.
- Q: Es la consulta.
- Star: Posición del primer elemento a partir del cual solicitamos la búsqueda.
- MaxResults: Número máximo de elementos que contendrá la respuesta.
- Filter: Indica si se debe realizamos la búsqueda filtrando los elementos similares a otros mostrados no. ( tipo booleano)
- Restrict: Permite restringir la búsqueda a un almacén de búsqueda determinado.
- SafeSearch: Permite filtrar contenidos no aptos para menores.
- lr. Restringe la búsqueda a un idioma determinado.
- ie. Codificación de entrada.
- oe. Codificación de salida
Las respuestas a esta petición (return) son del tipo “GoogleSearchResult”. Esta estructura de datos esta contenida en la interfaz WSDL y su descripción no será ampliada aquí. Para más información : Google References
Descripción del formato de la operación “doSpellingSuggestion”
- Key: Es el “Licence Key”.
- Phrase: Palabra que se desea verificar su corrección.
La respuesta (return) a esta petición es de tipo “String”.Descripción del formato de la operación “doGetCachedPage”
- Key: Es el “Licence Key”.
- Url: URL de la página que deseamos conocer la cache.
La respuesta (return) a esta petición es de tipo “base64 encoded text”.
Utilizando la interfaz WSDL de Google en Delphi
En este apartado se tratará el tema de la utilización de la API de Google en el lenguaje de programación Delphi, ya que en los ejemplos del “Development Kit” no se encontraba disponible.
Como es sabido, los archivos WSDL se pueden utilizar con cualquier lenguaje de programación que soporte comunicación con WebServices, y Delphi es uno de ellos.
Para incorporar el servicio web de Google en las aplicaciones Delphi es necesario realizar los siguientes pasos:
- 1.Ir a File > New > Other > WebService > WSDL Importer
- 2.Indicar la ruta donde se encuentra el archivo “GoogleSearch.wsdl”
- 3.Hacer clic en Finísh.
Nota: en este caso se utilizó Delphi 2006 para Win32.
El resultado obtenido luego de estos pasos es una unidad llamada “GoogleSearch.pas” la cual contiene los métodos para comunicarnos con el WebService de Google.
Como se observa, la utilización del servicio de Google en Delphi y en cualquier otro lenguaje que soporte comunicación con WebServices, es muy sencilla y no es necesario tener conocimiento alguno acerca de XML o SOAP.
Comparación entre las APIs de Google y Yahoo!
En este apartado realizaremos una comparación de funcionalidad y de rendimiento entre los servicios de Google y de Yahoo! para sus “Search APIs.”
Una diferencia importante entre estos dos servicios es que Google utiliza SOAP para el intercambio de datos, mientras que Yahoo! utiliza REST El argumento de por que Yahoo! utiliza REST para su servicio y no SOAP es que es más sencilla la utilización y el tráfico no es lo suficientemente elevado como para utilizarlo.
Otra diferencia entre ambos servicios es que Yahoo! permite a desarrolladores que registren sus aplicaciones y poder usar su servicio en aplicaciones comerciales, algo que Google no ofrece.
El sistema que provee Yahoo! para limitar las peticiones de búsqueda es un “Application ID”, el cual es un string que se debe colocar en cada petición y solo se podrán realizar 5000 por día en el caso del servicio de búsqueda. Cada aplicación deberá tener su propio ID, siendo posible que un desarrollador obtenga múltiples IDs para sus aplicaciones.
Además del servicio de búsqueda tradicional de Yahoo! que viene con “Spelling Suggestion” al igual que Google, también incorpora otros servicios:
- Búsqueda de audio: permite realizar búsquedas de archivos de música
- Análisis de contenido: provee una lista de palabras significativas y frases extraídas de un amplio contenido.
- Búsqueda de imágenes: permite realizar búsquedas de archivos de imágenes.
- Búsqueda local: nos permite realizar búsquedas por medio de Yahoo! Local.
- MyWeb: es un motor de búsquedas personales que permite guardar páginas web, compartirlas y agregar comentarios sobre la misma.
- Búsquedas de noticias: permite realizar búsquedas de noticias en la web.
- Explorador de sitios: provee información que contiene el servicio “Site Explore” de Yahoo! acerca de páginas web.
- Búsquedas de video: permite realizar búsquedas de archivos de video.
Todas las comparaciones de rendimiento se realizaron con los ejemplos de aplicaciones descargados de las páginas de Google y Yahoo!.Las aplicaciones que ambas compañías brindan fueron modificadas para poder realizar las pruebas necesarias. Para ello se trabajó con los ejemplos en la plataforma .NET con el lenguaje Csharp. Para la prueba se cuenta con una conexión a Internet ADSL de 512 Kbps.
Tiempos de respuestas del servicio “search”
Este análisis midió los tiempos de respuesta de ambas empresas en la búsqueda de 10 palabras distintas, limitando las respuestas de ambos servicios a 10 resultados.
Como el gráfico indica, los tiempos de respuesta entre ambas APIs no difieren demasiado. El tiempo promedio de respuesta para el servicio de Google fue de 1.413 segundos, mientras que para Yahoo! fue de 1.571 segundos.
Tiempos de respuestas del servicio “Spelling Suggestion”
Este análisis midió los tiempos de respuesta de ambos servicios a 10 palabras con errores ortográficos esperando por una sugerencia para cada una de ellas.
Nuevamente, los resultados son similares entre ambos servicios. El tiempo de respuesta promedio para las sugerencias de Google fue de 1.29 segundos, mientras que para Yahoo! fue de 1.49 segundos.
Tiempos de búsqueda en la Base de Datos
Desafortunadamente esta comparación entre ambas APIs no se podrá realizar ya que Yahoo! no provee esta información en su API. Es por ello que solo mediremos el tiempo de búsqueda en la base de datos de la API de Google.
Como era de esperarse, los resultados obtenidos acerca del tiempo de búsqueda en las bases de datos de Google son bajos y su promedio es de 0,29 segundos. Se debe destacar que la medición de estos resultados son provistos por la API de Google y su comprobación resulta imposible, no siendo el caso de los análisis anteriores.Conclusión de la comparación
Luego de realizar los análisis de rendimiento se puede determinar que los tiempos de respuestas a los servicios “search” y “spelling suggestion” son similares, siendo un poco menores los de Google. Algo que cabe destacar es la cantidad de resultados totales que arrojaron las búsquedas, Yahoo! solo devolvió el 20% de los resultados que devolvió Google, siendo una diferencia considerable a la hora de optar por la elección de alguna de las APIs.
Por el lado de las “spelling suggestion”, los resultados fueron ambos favorables y no se encontraron deficiencias en ninguno de los dos servicios.
Requisitos
Para comenzar a utilizar este servicio se debe descargar el “Google SOAP Search API developer's kit” y luego se debe obtener el “Licence Key” (para ello se debe contar con una cuenta en Google).
Véase también
Enlaces externos
Categoría:- Interfaces de programación de aplicaciones de Google
Wikimedia foundation. 2010.