Trabajo de Investigación de Sistemas Distribuidos

Anuncio
UNIVERSIDAD DE MURCIA
FACULTAD DE INFORMÁTICA
GOOGLE WEB APIS Y AMAZON WEB SERVICES
(JUNIO 2005)
Profesor: Diego Sevilla Ruiz
Asignatura: Sistemas Distribuidos (Trabajo de Investigación )
Alumno: Vicente David Guardiola Buitrago
e­mail: [email protected]
5º Ingeniería Informática
Curso 2004­2005
Índice de contenido
1. Introducción.....................................................................................................................................3
2. Google Web APIs............................................................................................................................4
2.1. Servicios Ofrecidos..................................................................................................................4
2.1.1. Búsquedas........................................................................................................................4
2.1.2. Consultas de Cache..........................................................................................................5
2.1.3. Corrección Ortográfica....................................................................................................5
2.2. Procedimiento a Seguir para su Uso........................................................................................6
2.3. Material Proporcionado y Ayuda.............................................................................................6
2.4. Limitaciones de Uso................................................................................................................7
2.5. Condiciones de Uso y Coste....................................................................................................7
2.6. Problemas.................................................................................................................................8
2.7. Ejemplos..................................................................................................................................8
3. Amazon Web Services (AWS)......................................................................................................10
3.1. E­commerce Service (ECS)...................................................................................................10
3.1.1. Descripción del Servicio................................................................................................10
3.1.2. Pasos a Seguir Para su Uso............................................................................................11
3.1.3. Material Proporcionado y Ayuda...................................................................................12
3.1.4. Limitaciones de Uso.......................................................................................................12
3.1.5. Condiciones de Uso y Coste..........................................................................................12
3.1.6. Ejemplos de Uso............................................................................................................13
3.2. Simple Queue Service............................................................................................................16
3.2.1. Descripción del Servicio................................................................................................16
3.2.2. Material Proporcionado y Ayuda...................................................................................17
3.2.3. Limitaciones de Uso.......................................................................................................18
3.2.4. Condiciones de Uso y Coste..........................................................................................18
3.2.5. Ejemplos de Uso............................................................................................................18
3.3. Problemas...............................................................................................................................22
4. Conclusiones..................................................................................................................................24
5. Bibliografía....................................................................................................................................25
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
1. Introducción
En el presente trabajo se analizarán diversos servicios ofrecidos, en la forma de servicios web,
por dos grandes empresas en el mundo de la informática y que se caracterizan por usar las últimas
tecnologías y ser un referente para el resto.
Por una parte veremos los servicios ofrecidos por Google, conocidos como Google Web APIs.
Mediante estos servicios Google pone a disposición de los usuarios sus servicios principales para
ser usados como servicios web. Por otra parte, tenemos a Amazon que oferta diversos servicios bajo el nombre de Amazon Web
Services. Por una parte ofrece todo lo relacionado con su actividad principal, es decir, el comercio
electrónico. Pero además de esto ofrece otros dos servicios, uno para búsqueda de sitios web y
obtención de información de los mismos, que ofrece las funciones de otro portal diferente a
amazon.com pero que pertenece a la misma compañía y otro que ofrece un servicio de colas para
proporcionar comunicación a los componentes de aplicaciones distribuidas. En el resto de este documento se estudian los servicios mencionados indicando para cada uno los
siguientes aspectos:
• Funciones proporcionadas. Esta parte consistirá en la descripción del servicio indicando que
funciones exactas se ofrecen a los usuarios.
• Pasos a seguir para su uso. Todos los servicios requieren ciertos pasos para poder hacer uso
de ellos, en esta sección explicaré que pasos son necesarios para poder hacerlo.
• Bajo que condiciones y con que precio. Aquí mostraré los aspectos más destacables que he
encontrado en la licencia y las condiciones de uso. Además indicaré el precio que se debe
pagar por hacer uso del servicio correspondiente.
• Material proporcionado y soporte. Un punto importante es que material proporciona la
compañía para ayudar al desarrollador a hacer uso de los servicios. Así aquí comentaré tanto
la documentación como los ejemplos proporcionados además de que medios de obtener ayuda
ofrecen.
• Limitaciones impuestas por el proveedor. Otro aspecto interesante son las limitaciones en el
uso del servicio en el sentido de tamaño de los datos transferidos, número de peticiones, etc.
En este apartado se mostrarán estas limitaciones que son fundamentales conocer a la hora de
utilizar los servicios.
• Problemas. Se intentarán mostrar problemas encontrados durante el análisis de los diferentes
servicios.
• Ejemplos de uso. Para ver que forma tienen las llamadas y cuales son las respuestas se
mostrarán diversos ejemplos de uso de los diferentes servicios para poder entender un poco
mejor en que consiste cada servicio.
­ 3 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
2. Google Web APIs
Google ofrece con su servicio Google Web APIs la posibilidad de realizar consultas de igual
forma que se puede hacer a través de su página web, pero haciéndolo a través de servicios web lo
que permite realizar estas consultas desde cualquier tipo de aplicación. Además ofrece más
servicios como son el de uso de consulta de su cache y el de corrección ortográfica.
Actualmente este servicio se encuentra en Beta y al parecer muchas de las restricciones que tiene
y que veremos posteriormente son debidas al estado en el que se encuentra.
2.1. Servicios Ofrecidos
Google Web APIs ofrece varios servicios a sus usuarios, estos son:
• Búsquedas
• Consulta de la Cache de Google
• Corrección ortográfica (Spelling)
2.1.1. Búsquedas
Estas peticiones son búsquedas basadas en una cadena de búsqueda y diversos parámetros, la
típica búsqueda realizada desde los buscadores existentes para buscar sitios web de interés. La
petición de búsqueda enviada al servicio Google Web APIs es procesada haciendo uso de índice de
páginas web de Google, lo que quiere decir que usa la misma información y el mismo motor de
búsqueda que la realizada a través de la página web.
Los dos componentes necesarios para realizar la búsqueda son:
• Cadena de búsqueda: esta cadena es similar a la introducida cuando se realiza la búsqueda vía
web. Admitiendo todos los símbolos especiales como son las comillas, +, ­... y que no creo
que sea algo que merezca la pena entrar en detalle. Existen restricciones en este aspectos pero
esto se verá posteriormente.
• Parámetros: existen diversos parámetros que pueden indicarse ante la invocación de una
búsqueda para hacerla más precisa y personalizada, como son:
 Índice del primer resultado que se quiere recuperar. Esto es, obtener los resultados a partir
del 4º, por ejemplo.  Número máximo de resultados que se quieren recuperar.
 Activación del filtro para eliminar resultados similares o que se encuentren en el mismo
host.
 Restricciones para limitar la búsqueda a un determinado lenguaje, país (basado en IP) o
tema.
 Realizar una búsqueda segura, en el sentido de no mostrar contenidos no aptos para
menores.
En resumen, se puede decir que ofrece las funciones que Google pone a disposición del usuario
cuando se realiza una búsqueda avanzada a través de la web.
­ 4 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
Lo descrito se refiere a la petición, la respuesta a este tipo de peticiones se compone de los
siguientes componentes, debe destacarse que la respuesta siempre existirá independientemente de
que la búsqueda produzca resultados o no:
• Se indica si en la búsqueda se ha aplicado el filtrado de páginas similares o del mismo host.
• Comentarios a la búsqueda para el usuario final. Son mensajes del tipo: Quiso decir...
• Número total de resultados que ha producido la búsqueda, indicándose si es estimado o
exacto.
• La propia cadena de búsqueda.
• Los índices inicial y final de los resultados devueltos.
• Tiempo empelado en la de búsqueda.
• Las coincidencias encontradas en el directorio ODP (Open directory Project)
• Los resultados en sí, que se componen de:
 En caso de haber coincidencia en el ODP, el resumen que allí se encuentra.
 La URL correspondiente al resultado.
 Un pequeño extracto en el que aparece el fragmento que ha producido la concordancia con
la cadena de búsqueda.
 El título del resultado.
 El tamaño del resultado en la cache de Google, si es que lo tiene.
 Información relacionada con el directorio ODP.
2.1.2. Consultas de Cache
Otro servicio ofrecido por Google es la consulta de su cache. Con este servicio permite obtener
directamente de su cache la página que se desee.
Sobre este servicio no se proporciona demasiada información, por no decir ninguna. Ni siquiera
en el material proporcionado se puede encontrar nada. Pero básicamente para realizar la petición se
debe proporcionar la URL que se desea obtener y la respuesta del servicio será la página solicitada
sí se encuentra en cache.
2.1.3. Corrección Ortográfica
De este servicio se puede decir igual de poco que del anterior, parecen estar puestos simplemente
como añadido al servicio principal que sería el de búsqueda.
El funcionamiento es simple, se envía una petición de corrección indicando la frase a corregir y
se responde con la sugerencia de corrección correspondiente, en caso de haberla. El funcionamiento
es similar al ofrecido en la Web de Google al realizar una búsqueda1.
1 La idea inicial que me vino a la mente al leer esto fue la necesidad de indicar el idioma de la frase, pero al basarse
en la misma función proporcionada en la página web, esto desaparece ya que, si no me equivoco, esta sugerencia se
realiza mediante la búsqueda simultánea de la frase indicada junto a la de variaciones de esta, de tal forma que si se
obtienen más resultados con alguna variación que con la frase original se supone que esa es la corrección adecuada.
Aunque una pregunta que se puede plantear es: ¿Qué variaciones se hacen?
­ 5 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
2.2. Procedimiento a Seguir para su Uso
Los pasos a seguir para hacer uso de este servicio son los siguientes:
1. Obtener el Kit de desarrollo. Este kit esta formado por ejemplos de uso del servicio para Java
y .NET y algo bastante interesante para poder hacer uso del servicio rápido que es una librería
Java que sirve de wrapper para el interface del servicio Google Web APIs.
2. Este paso es realmente el paso que se debe seguir para hace uso del servicio, porque el
primero y el tercero no los considero tales, es obtener una License Key para hacer uso del
servicio. Para ello sólo hay que registrarse después de los cual es enviada a la dirección de
correo que se le indique. Con esta clave podrán aplicar las limitaciones que posteriormente se
comentarán.
Además, si se tiene una cuenta de correo con gmail simplemente es necesario indicarle que se
quiere la clave y directamente la envían a la dirección sin necesidad de dar ningún dato más.
3. Por último, y tal como se encuentra en la documentación, hay que hacer la aplicación que
haga uso del servicio incluyendo en las peticiones que esta haga a los servicios la calve
proporcionada.
En resumen, lo único necesario es el paso 2, la obtención de la clave. Porque ver como funciona
el servicio se puede hacer desde el mismo momento que se tiene la clave haciendo uso de los
ejemplos proporcionados en el kit de desarrollo.
2.3. Material Proporcionado y Ayuda
El material proporcionado por Google no es demasiado extenso aunque lo considero suficiente.
Por una parte tenemos la información de la web que se reduce a un FAQ y a una Referencia en la
que explica los servicios ofrecidos (búsqueda, cache y spelling).
En esta referencia se puede ver también de forma un poco detallada los formatos de las
peticiones de búsqueda y de las respuestas, aunque nada de las peticiones de cache ni de corrección
ortográfica.
Además de esto, se puede encontrar el kit de desarrollo. Este kit de desarrollo contiene el
mismo documento de referencia que se encuentra en la web y luego ejemplos de código en .NET
(para C# y para VisualBasic ) y en Java. Además para el caso de Java se ofrece una librería con la
que se puede empezar a trabajar directamente con la API sin necesidad de tener que desarrollar nada
relacionado con SOAP para la construcción de una aplicación.
Por último, también se incluyen ejemplos de mensajes SOAP para los diversos servicios
ofrecidos.
El apartado de la ayuda es más complicado, como tal Google no ofrece ningún tipo de soporte al
encontrarse en beta. Google ofrece dos maneras de encontrar ayuda, por una parte proporciona un
grupo de discusión (http://groups.google.com/groups?group=google.public.web­apis) en el que los
usuarios pueden enviar sus dudas y ser respondidas por otros, puesto que los miembros de Google
sólo consultarán y responderán a dudas de este grupo ocasionalmente.
­ 6 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
Además también pone a disposición de los desarrolladores un e­mail (api­[email protected])
pero tampoco se comprometen a contestar a los mensajes enviados. 2.4. Limitaciones de Uso
Las limitaciones encontradas en el servicio Google Web APIs parecen estar derivadas del estado
Beta del servicio, o al menos eso indican en la documentación.
Estas limitaciones son:
• Cada petición de búsqueda sólo puede devolver un máximo de 10 resultados por consulta
•
•
•
•
La longitud de la frase de consulta se limita a 2048 bytes
El número de palabras que pueden existir en la frase de consulta no puede ser mayor de 10
En caso de usarse el limitador de búsqueda site, que reduce la búsqueda sólo a las páginas de
un único sitio, sólo puede ponerse un sitio, es decir, sólo puede haber una ocurrencia de este
limitador.
El número de consultas posibles por día es de 1000 consultas, este límite es respecto del total
de consultas realizadas independientemente del tipo.
Este punto es importante, ya que con esta limitación y con la establecida en las condiciones de
uso de limitar a una única clave de licencia por persona las posibilidades de uso del servicio
pueden verse bastante reducidas, claro que esto depende del uso que se le vaya hacer.
Así, una vez superado este número de consultas y como se puede leer en la FAQ:
“What happens if I go over my limit of 1,000 queries?
... You might want to get some sleep and start querying again tomorrow.”
2.5. Condiciones de Uso y Coste
En lo que respecta a las condiciones de uso del servicio, se deben tener en cuenta los siguientes
puntos extraídos de los términos y condiciones de uso:
– El servicio es sólo para uso personal, no puede ser usado de manera comercial.
– Sólo puede crearse una cuenta, proporcionándose para ello información correcta.
– No se puede usar el servicio con productos que sean competencia de los servicios ofrecidos
por Google.
– Se debe indicar que la aplicación creada usa o está basada en el servicio Google Web APIs,
pero cuidado con usar el logotipo de Google ya que para esto hace falta permiso por escrito de
Google.
Estos puntos son los más destacables de las condiciones de uso y en lo que respecta al coste de
su uso, en la actualidad el coste es cero, es decir, gratuito.
­ 7 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
2.6. Problemas
Un problema que he encontrado estudiando este servicio es la posible falta de eficiencia que
tiene el hecho de que para obtener, por ejemplo los 10 primeros resultados, luego del 20 al 29 y
luego del 30 al 35, se debe hacer tres veces la misma búsqueda en los índices de Google
Se podría hacer más eficiente guardando los resultados de la búsqueda y poder realizar las
peticiones de resultados sobre estos resultados ya obtenidos, pero el uso de servicios web limita esta
posibilidad. Podría hacerse por ejemplo almacenado los resultados y respondiendo al usuario con un
identificador que este podría usar para ir solicitando los resultados que quisiese, pero también existe
el problema de que por detrás del servicio se encontrará un cluster de servidores, con lo que se
deberían procesar las peticiones para poder redirigir las solicitudes de resultados sobre una
búsqueda anterior de alguna forma.
2.7. Ejemplos
Algunos ejemplos de ejecución de los proporcionados por Google en el kit de desarrollo son los
siguientes.
Para su ejecución no hace falta nada especial, simplemente tener Java instalado.
NOTA: Los resultados obtenidos se han recortado por su longitud.
⇨Búsqueda de “Diego Sevilla”
$ java -cp googleapi.jar com.google.soap.search.GoogleAPIDemo
rhx4VrxQFHLoPBVE75tL7Ref1yN8N0nZ search "Diego Sevilla"
Parameters:
Client key = rhx4VrxQFHLoPBVE75tL7Ref1yN8N0nZ
Directive = search
Args
= Diego Sevilla
Google Search Results:
======================
{
TM = 0.317843
Q = "Diego Sevilla"
CT = ""
TT = ""
CATs =
{
<EMPTY>
}
Start Index = 1
End
Index = 10
Estimated Total Results Number = 198000
Document Filtering = true
Estimate Correct = false
Rs =
{
[
URL = "http://neuromancer.dif.um.es/blog/"
Title = "<b>diego</b> <b>sevilla</b>’s weblog"
Snippet = "<b>diego</b> <b>sevilla</b>’s weblog it is better to remain silent
­ 8 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
and be thought a fool, than<br> to open your mouth and remove all doubt -groucho marx <b>...</b>"
Directory Category = {SE="", FVN=""}
Directory Title = ""
Summary = ""
Cached Size = "73k"
Related information present = true
Host Name = ""
],
[
URL = "http://neuromancer.dif.um.es/blog/index.php?p=35"
Title = "<b>diego</b> <b>sevilla</b>’s weblog » WordPress Anti-Spam, toma 1"
Snippet = "en al formulari que ens va donar <b>Diego</b> <b>Sevilla</b> y que
tenim molt ben explicada al<br> seu bloc, <b>...</b> Pingback by <b>diego</b>
<b>sevilla</b>’s weblog » Lo han vuelto a hacer, <b>...</b>"
Directory Category = {SE="", FVN=""}
Directory Title = ""
Summary = ""
Cached Size = "52k"
Related information present = true
Host Name = "neuromancer.dif.um.es"
],
...Más resultados...
}
}
⇨Obtención de la caché de Google de www.google.es/index.htm
$ java -cp googleapi.jar com.google.soap.search.GoogleAPIDemo
rhx4VrxQFHLoPBVE75tL7Ref1yN8N0nZ cached www.google.es/index.htm
Parameters:
Client key = rhx4VrxQFHLoPBVE75tL7Ref1yN8N0nZ
Directive = cached
Args
= www.google.es/index.htm
Cached page:
============
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<BASE HREF="http://www.google.es/"><table border=1 width=100%><tr><td><table
border=1 bgcolor=#ffffff cellpadding=10 cellspacing=0 width=100%
color=#ffffff><tr><td><font face=arial,sans-serif color=black size=-1>This is
... Más cosas ...
web</font></p></center></body></html>
⇨Corrección Ortográfica de jaba
$ java -cp googleapi.jar com.google.soap.search.GoogleAPIDemo
rhx4VrxQFHLoPBVE75tL7Ref1yN8N0nZ spell jaba
Parameters:
Client key = rhx4VrxQFHLoPBVE75tL7Ref1yN8N0nZ
Directive = spell
Args
= jaba
Spelling suggestion:
­ 9 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
java
­ 10 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
3. Amazon Web Services (AWS)
Amazon también ofrece diferentes servicios basados en servicios web bajo el nombre de
Amazon Web Services o AWS. Estos servicios son tres: – E­commerce Service (ECS): este es el servicio más importante y el que más relacionado está
con la actividad principal de Amazon. Con este servicio Amazon ofrece su sistema de
búsqueda de productos así como las funciones de comercio electrónico.
– Alexa Web Information Service (AWIS): mediante este servicio se ofrece acceso a Alexa
Internet, que es un servicio que ofrece búsqueda de sitios web e información sobre estos.
– Simple Queue Service: este consiste en un servicio de colas para comunicar mensajes en una
aplicación distribuida.
En esta sección me centraré en el análisis de ECS y el servicio de colas por considerarlos más
interesantes.
3.1. E­commerce Service (ECS)
3.1.1. Descripción del Servicio
Como se ha adelantado este servicio, que actualmente se encuentra en la versión 4.0, pretende
ofrecer las funciones que Amazon posee para el desarrollo de su propio sistema de comercio
electrónico. Las funciones ofrecidas son:
– Obtención de información detallada de los productos ofertados por Amazon, lo que incluye:
descripción, atributos, precio, imágenes,...
– Acceso a las revisiones de los clientes sobre los productos.
– Un sistema de búsqueda avanzado. Al parecer antes de esta versión la búsqueda estaba
restringida a una simple palabra de búsqueda, ahora la búsqueda puede ser más compleja
pudiendo buscar según determinados atributos.
– Ofrece la posibilidad de usar la función de cesta de compra remota, permitiendo las
operaciones comunes sobre este tipo de servicios. De esta manera la cesta de la compra puede
ser mantenida en los servidores de Amazon en lugar de en la aplicación creada, al igual que
ocurre cuando se hace a través de web.
– También se puede hacer uso de la lista de deseos (wish list) de Amazon.
– Una función interesante es la de Grupos de Respuesta Precisos, que consiste en especificar
qué datos exactos se quieren recuperar. Esto es una mejora importante de eficiencia respecto
al modo anterior, que al parecer consistía únicamente en pocos datos (lite) o muchos datos
(heavy).
­ 11 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
Concretamente, las operaciones ofrecidas son:
• Obtención de revisiones de productos y similares
• Búsqueda de revisiones de productos y similares
• Obtención de información de productos
• Búsqueda de productos
• Búsqueda de productos similares a uno dado
• Obtener información de una WishList
• Buscar WishList
• Añadir un producto al carrito de compra
• Borrar los elementos de un carrito de compra
• Crear un carrito de compra
• Obtener los elementos de un carrito de compra
• Modificar las cantidades de productos en un carrito de compra, moverlos de un sitio a otro,
etc.
• Obtener información de transacciones realizadas a través de Amazon
Puede verse que ofrece un gran número de funciones lo que permitiría hacer un aplicación
bastante completa haciendo uso de este servicio simplemente.
3.1.2. Pasos a Seguir Para su Uso2
Para el uso de este y el resto de servicios de AWS se debe estar registrado como desarrollador de
AWS. Para esto es necesario dar cierta información3:
– una dirección de e­mail válida
– la fecha de nacimiento – el nombre
– dirección – teléfono
Una vez completado este proceso se recibe un e­mail, con un enlace para validar el e­mail y así
poder obtener el ID necesario para trabajar. Finalmente se recibe el e­mail con el ID e información
adicional sobre los servicios.
A continuación, según las instrucciones de Amazon, y al igual que Google, te recomiendan
descaragr los ejemplos así como los ficheros WSDL del servicio correspondiente.
Seguidamente se supone que se debería leer la documentación y por último se debe escribir la
aplicación correspondiente.
Pero de igual manera que ocurre con Google, el paso realmente necesario para hacer uso del
servicio es obtener este ID, ya que al igual que con Google, se debe indicar este ID en cada
operación que se solicite.
2 Este procedimiento es común para el uso de ECS, AWIS y el servicio de colas
3 Parece ser que si ya se es usuario de Amazon no es necesario volver a registrarse
­ 12 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
3.1.3. Material Proporcionado y Ayuda
El material proporcionado por Amazon es bastante completo.
Ofrece una Referencia de la API bastante amplia además de ofrecer acceso REST a todos los
servicios pudiendo probarlo de manera sencilla sin necesidad de escribir nada de código.
Además de la referencia también se encuentran consejos para crear aplicaciones junto con la
arquitectura a seguir.
Se puede encontrar información sobre como enviar peticiones proporcionando una buena
descripción de todo el sistema.
En cuanto a los ejemplos proporcionados, se ofrecen numerosos ejemplos de código en Perl,
Java, C# y VisualBasic tanto para peticiones SOAP como REST.
Además están disponibles, como debe ser, el fichero WSDL correspondiente para poder hacer
uso del servicio.
Por último, para obtener ayuda se dispone de una discussion board para enviar tanto los fallos
encontrados como para preguntar sobre cualquier tipo de duda.
3.1.4. Limitaciones de Uso
En lo que respecta a las limitaciones de uso impuestas a los usuarios del servicio, la única
limitación encontrada es la restricción de una única petición por segundo para una IP dada, lo
que se traduce (al menos Amazon lo hace) en una petición por segundo por cada copia de la
aplicación, supongo que considerarán que en una máquina sólo se podrá ejecutar una aplicación4. 3.1.5. Condiciones de Uso y Coste
Respecto del coste, el uso del servicio es gratuito.
En cuanto a las condiciones, existen muchas pero las más interesantes son:
– No vender la información obtenida
– No utilizar contenidos “prohibidos”, violencia, violación de derechos de autor, etc.
– No obtener información relativa al precio a no ser que seas vendedor en Amazon o seas
participante del Amazon Services Associates.
– No utilizar la información obtenida de vendedores o compradores para marketing y similares.
– Comprometerse a almacenar la información recuperada un máximo de tiempo establecido
según el tipo de información y en consecuencia actualizar la información almacenada cierto
número de veces que depende del tipo de información durante ese período de
almacenamiento.
3.1.6. Ejemplos de Uso
Se pueden hacer pruebas del servicio haciendo peticiones REST desde el navegador web y
4 Pero... ¿Qué pasa con NAT?
­ 13 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
usando el ID obtenido mediante el registro.
A continuación mostraré diversas llamadas al servicio junto con la respuesta recibida para ver de
una forma más clara como funciona todo.
⇨Búsqueda de productos con la cadena Digital Camera: ItemSearch
Petición
http://webservices.amazon.com/onca/xml?Service=AWSECommerceService&Subscription
Id=149PEK1FNH2NYY2Z7T82&Operation=ItemSearch&Keywords=Digital%
20Camera&SearchIndex=Electronics
Respuesta
<ItemSearchResponse>
<OperationRequest>
<HTTPHeaders>
<Header Name="UserAgent" Value="Mozilla/5.0 (X11; U; Linux x86_64; en-US;
rv:1.7.7) Gecko/20050416 Fedora/1.0.3-1.3.1 Firefox/1.0.3"/>
</HTTPHeaders>
<RequestId>136BCT8QSNS38GQKQ1P4</RequestId>
<Arguments>
<Argument Name="Service" Value="AWSECommerceService"/>
<Argument Name="SearchIndex" Value="Electronics"/>
<Argument Name="SubscriptionId" Value="149PEK1FNH2NYY2Z7T82"/>
<Argument Name="Keywords" Value="Digital Camera"/>
<Argument Name="Operation" Value="ItemSearch"/>
</Arguments>
<RequestProcessingTime>0.094390869140625</RequestProcessingTime>
</OperationRequest>
<Items>
<Request>
<IsValid>True</IsValid>
<ItemSearchRequest>
<Keywords>Digital Camera</Keywords>
<SearchIndex>Electronics</SearchIndex>
</ItemSearchRequest>
</Request>
<TotalResults>12518</TotalResults>
<TotalPages>1252</TotalPages>
<Item>
<ASIN>B0001G6U5M</ASIN>
<DetailPageURL>
http://www.amazon.com/exec/obidos/redirect?tag=ws%26link_code=xm2%26camp=2025%
26creative=165953%26path=http://www.amazon.com/gp/redirect.html%
253fASIN=B0001G6U5M%2526tag=ws%2526lcode=xm2%2526cID=2025%2526ccmID=165953%
2526location=/o/ASIN/B0001G6U5M%25253FSubscriptionId=149PEK1FNH2NYY2Z7T82
</DetailPageURL>
<ItemAttributes>
<Manufacturer>Canon</Manufacturer>
<ProductGroup>Photography</ProductGroup>
<Title>
Canon PowerShot S410 4MP Digital Elph with 3x Optical Zoom
</Title>
</ItemAttributes>
</Item>
<Item>
­ 14 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
<ASIN>B0007QKN22</ASIN>
<DetailPageURL>
http://www.amazon.com/exec/obidos/redirect?tag=ws%26link_code=xm2%26camp=2025%
26creative=165953%26path=http://www.amazon.com/gp/redirect.html%
253fASIN=B0007QKN22%2526tag=ws%2526lcode=xm2%2526cID=2025%2526ccmID=165953%
2526location=/o/ASIN/B0007QKN22%25253FSubscriptionId=149PEK1FNH2NYY2Z7T82
</DetailPageURL>
<ItemAttributes>
<Manufacturer>Canon Cameras US</Manufacturer>
<ProductGroup>Photography</ProductGroup>
<Title>
Canon Digital Rebel XT 8MP Digital SLR Camera with EF-S 18-55mm f3.5-5.6 Lens
(Black)
</Title>
</ItemAttributes>
</Item>
... Más Resultados ...
</Items>
</ItemSearchResponse>
⇨Obtención de información de un producto obtenido de la búsqueda anterior:
ItemLookup
Se usa el valor ASIN de la respuesta anterior para identificar el producto
Petición
http://webservices.amazon.com/onca/xml?Service=AWSECommerceService&Subscription
Id=149PEK1FNH2NYY2Z7T82&Operation=ItemLookup&ItemId=B0007QKN22
Respuesta
<ItemLookupResponse>
<OperationRequest>
<HTTPHeaders>
<Header Name="UserAgent" Value="Mozilla/5.0 (X11; U; Linux x86_64; en-US;
rv:1.7.7) Gecko/20050416 Fedora/1.0.3-1.3.1 Firefox/1.0.3"/>
</HTTPHeaders>
<RequestId>0PXTJWFEQRWN02VF15E1</RequestId>
<Arguments>
<Argument Name="Service" Value="AWSECommerceService"/>
<Argument Name="SubscriptionId" Value="149PEK1FNH2NYY2Z7T82"/>
<Argument Name="ItemId" Value="B0007QKN22"/>
<Argument Name="Operation" Value="ItemLookup"/>
</Arguments>
<RequestProcessingTime>0.0105330944061279</RequestProcessingTime>
</OperationRequest>
<Items>
<Request>
<IsValid>True</IsValid>
<ItemLookupRequest>
<ItemId>B0007QKN22</ItemId>
</ItemLookupRequest>
</Request>
<Item>
<ASIN>B0007QKN22</ASIN>
­ 15 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
<DetailPageURL>
http://www.amazon.com/exec/obidos/redirect?tag=ws%26link_code=xm2%26camp=2025%
26creative=165953%26path=http://www.amazon.com/gp/redirect.html%
253fASIN=B0007QKN22%2526tag=ws%2526lcode=xm2%2526cID=2025%2526ccmID=165953%
2526location=/o/ASIN/B0007QKN22%25253FSubscriptionId=149PEK1FNH2NYY2Z7T82
</DetailPageURL>
<ItemAttributes>
<Manufacturer>Canon Cameras US</Manufacturer>
<ProductGroup>Photography</ProductGroup>
<Title>
Canon Digital Rebel XT 8MP Digital SLR Camera with EF-S 18-55mm f3.5-5.6 Lens
(Black)
</Title>
</ItemAttributes>
</Item>
</Items>
</ItemLookupResponse>
⇨Si a esto le añadimos un Grupo de Respuesta en el que se piden la imágenes solamente se
obtienen las imágenes que se tienen del producto seleccionado
Petición
http://webservices.amazon.com/onca/xml?Service=AWSECommerceService&Subscription
Id=149PEK1FNH2NYY2Z7T82&Operation=ItemLookup&ItemId=B0007QKN22&ResponseGroup=Im
ages
Respuesta
<ItemLookupResponse>
<OperationRequest>
<HTTPHeaders>
<Header Name="UserAgent" Value="Mozilla/5.0 (X11; U; Linux x86_64; en-US;
rv:1.7.7) Gecko/20050416 Fedora/1.0.3-1.3.1 Firefox/1.0.3"/>
</HTTPHeaders>
<RequestId>1281GKZPST22B1TYM0MH</RequestId>
<Arguments>
<Argument Name="Service" Value="AWSECommerceService"/>
<Argument Name="SubscriptionId" Value="149PEK1FNH2NYY2Z7T82"/>
<Argument Name="ItemId" Value="B0007QKN22"/>
<Argument Name="ResponseGroup" Value="Images"/>
<Argument Name="Operation" Value="ItemLookup"/>
</Arguments>
<RequestProcessingTime>0.0218260288238525</RequestProcessingTime>
</OperationRequest>
<Items>
<Request>
<IsValid>True</IsValid>
<ItemLookupRequest>
<ItemId>B0007QKN22</ItemId>
<ResponseGroup>Images</ResponseGroup>
</ItemLookupRequest>
</Request>
<Item>
<ASIN>B0007QKN22</ASIN>
<SmallImage>
<URL>
http://images.amazon.com/images/P/B0007QKN22.01._SCTHUMBZZZ_.jpg
­ 16 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
</URL>
<Height Units="pixels">67</Height>
<Width Units="pixels">75</Width>
</SmallImage>
<MediumImage>
<URL>
http://images.amazon.com/images/P/B0007QKN22.01._SCMZZZZZZZ_.jpg
</URL>
<Height Units="pixels">142</Height>
<Width Units="pixels">160</Width>
</MediumImage>
<LargeImage>
<URL>
http://images.amazon.com/images/P/B0007QKN22.01._SCLZZZZZZZ_.jpg
</URL>
<Height Units="pixels">398</Height>
<Width Units="pixels">450</Width>
</LargeImage>
</Item>
</Items>
</ItemLookupResponse>
3.2. Simple Queue Service
3.2.1. Descripción del Servicio
Como se apuntó al comienzo de esta sección este servicio proporcionado por Amazon consiste
en ofrecer a los usuarios el uso de estructuras de tipo cola sobre las que se pueden hacer las
operaciones típicas de una cola.
Actualmente se encuentra en la versión 1.0 Beta 2 por lo que en breve deberá estar disponible la
versión definitiva.
Mediante este servicio Amazon pretende ofrecer a los desarrolladores de aplicaciones
distribuidas un medio por el que comunicar a los componentes de la aplicación. De esta manera al
desarrollar la aplicación no se debe invertir tiempo ni recursos en crear un servicio de este tipo, se
puede usar directamente el ofrecido por Amazon que ya proporciona la infraestructura necesaria
para esto, tanto hardware como software, por lo que en determinadas situaciones será interesante su
uso en lugar de desarrollar una solución nueva.
Las funciones ofrecidas por este servicio son las básicas de una cola, a saber:
– Crear una cola
– Eliminar una cola
– Configurarla
– Obtener un listado de las colas que se tienen creadas
– Introducir datos en una cola. Estos datos estarán en formato de texto.
– Leer el primer elemento de la cola
– Desencolar un elemento concreto
­ 17 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
Además el servicio se encuentra claramente diseñado para su uso en aplicaciones distribuidas, de
manera que se permite el uso simultáneo por varios componentes de una aplicación no siendo
necesario ningún tipo de coordinación entre estos componentes ya que el servicio se encarga de
esto. Incluso ofrece un sistema de read­lock que puede ser usado por las aplicaciones si lo desean
para evitar problemas del tipo de mensajes duplicados, problema que es probable que ocurra y es
incluso indicado por el propio equipo de Amazon como posible.
Con esto, las operaciones concretas ofrecidas por el servicio son las siguientes:
• Crear una cola. Se puede especificar un nombre para esta cola y en caso de no hacerse se le
asignará uno por parte del servicio.
• Borrar una cola. Sólo pueden borrarse las colas que se encuentren vacías.
• Configurar una cola. Lo único configurable es el valor de read­lock por defecto para los
elementos de la cola.
• Encolar datos en formato texto.
• Desencolar.
• Obtener el número de elementos de una cola.
• Leer el primer elemento de la cola.
5
• Leer hasta 25 elementos de la cola indicando su ID.
• Bloquear la lectura de un elemento, especificando su ID, por un número determinado de
segundos.
• Obtener una lista de las colas que se tienen creadas.
• Obtener ayuda. La ayuda se refiere a información de operaciones y Grupos de Respuesta, por
lo que deberá indicarse el grupo u operación del que se quiera la ayuda.
3.2.2. Material Proporcionado y Ayuda
En lo que respecta al material proporcionado, es similar al que se puede obtener para ECS, es
decir, una Referencia de la API bastante completa explicando detalladamente cada operación con
todos sus parámetros, ejemplos de llamadas REST para todas las operaciones, y una lista de todos
los errores y mensajes de error posibles.
Además se ponen a disposición de los usuarios el fichero WSDL y el Schema correspondiente.
Pero en lo que respecta a ejemplos, el material es bastante escaso, se ofrecen dos ejemplos uno
para .NET y otro para mostrar el uso de peticiones REST con XSLT.
En cuanto a la ayuda, el medio proporcionado es el mismo que para ECS, es decir una discussion
bord.
3.2.3. Limitaciones de Uso
En las limitaciones encontradas siempre se hace referencia a que estas se deben al estado Beta
5 Con lo que se reduce la latencia media de acceso a un elemento de la cola
­ 18 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
del servicio por lo que se puede suponer que cuando deje de estar en este estado cambiarán o
incluso desaparecerán.
– El tamaño de los mensajes (datos) encolados no puede exceder de los 4 KB
– El tiempo máximo que se mantendrán estos mensajes en la cola es de 30 días, dado que la
cola se considera como un medio de almacenamiento temporal.
– Para un ID de usuario concreto sólo se pueden tener un máximo de 4.000 entradas por cola.
– También existen limitaciones de seguridad respecto al control de acceso a las colas. Se
establece que el único requisito para poder acceder a la cola es el conocer el ID del usuario y
el nombre de la cola.
3.2.4. Condiciones de Uso y Coste
La condiciones de uso son las mismas que para ECS y en lo que respecta al coste, este es cero
durante su estado Beta pero ya se anuncia que se cobrará por su uso cuando pase a estado definitivo,
aunque no se dice nada de cuanto será este precio.
3.2.5. Ejemplos de Uso
Vamos a ver algunos ejemplos del uso de este servicio haciendo uso de REST.
⇨Creación de una cola COLA_1: CreateQueue
Petición
http://webservices.amazon.com/onca/xml?Service=AWSSimpleQueueService&Subscripti
onId=149PEK1FNH2NYY2Z7T82&Operation=CreateQueue&QueueName=COLA_1
Respuesta
<CreateQueueResponse>
<OperationRequest>
<HTTPHeaders>
<Header Name="UserAgent" Value="Mozilla/5.0 (X11; U; Linux x86_64; en-US;
rv:1.7.7) Gecko/20050416 Fedora/1.0.3-1.3.1 Firefox/1.0.3"/>
</HTTPHeaders>
<RequestId>16WRNBR71KNTAQW9VMWD</RequestId>
<Arguments>
<Argument Name="Service" Value="AWSSimpleQueueService"/>
<Argument Name="QueueName" Value="COLA_1"/>
<Argument Name="SubscriptionId" Value="149PEK1FNH2NYY2Z7T82"/>
<Argument Name="Operation" Value="CreateQueue"/>
</Arguments>
</OperationRequest>
<CreateQueueResult>
<Request>
<IsValid>True</IsValid>
<Status>Success</Status>
<CreateQueueRequest>
<QueueName>COLA_1</QueueName>
</CreateQueueRequest>
</Request>
­ 19 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
<QueueId>13TA5N6VE1WVKD1GSJPT</QueueId>
</CreateQueueResult>
</CreateQueueResponse>
⇨Creación de una cola COLA_2: CreateQueue
Petición
http://webservices.amazon.com/onca/xml?Service=AWSSimpleQueueService&Subscripti
onId=149PEK1FNH2NYY2Z7T82&Operation=CreateQueue&QueueName=COLA_2
Respuesta
Similar a la anterior
⇨Obtener la lista de colas: ListMyQueues
Petición
http://webservices.amazon.com/onca/xml?Service=AWSSimpleQueueService&Subscripti
onId=149PEK1FNH2NYY2Z7T82&Operation=ListMyQueues
Respuesta
<ListMyQueuesResponse>
<OperationRequest>
<HTTPHeaders>
<Header Name="UserAgent" Value="Mozilla/5.0 (X11; U; Linux x86_64; en-US;
rv:1.7.7) Gecko/20050416 Fedora/1.0.3-1.3.1 Firefox/1.0.3"/>
</HTTPHeaders>
<RequestId>1K8X3VZVZW7DJH7YC949</RequestId>
<Arguments>
<Argument Name="Service" Value="AWSSimpleQueueService"/>
<Argument Name="SubscriptionId" Value="149PEK1FNH2NYY2Z7T82"/>
<Argument Name="Operation" Value="ListMyQueues"/>
</Arguments>
</OperationRequest>
<ListMyQueuesResult>
<Request>
<IsValid>True</IsValid>
<Status>Success</Status>
</Request>
<Queues>
<Queue>
<QueueId>13TA5N6VE1WVKD1GSJPT</QueueId>
<QueueName>COLA_1</QueueName>
<ReadLockTimeoutSeconds>60</ReadLockTimeoutSeconds>
</Queue>
<Queue>
<QueueId>1PA4XPMJ9KY1Q95MXM41</QueueId>
<QueueName>COLA_2</QueueName>
<ReadLockTimeoutSeconds>60</ReadLockTimeoutSeconds>
</Queue>
</Queues>
</ListMyQueuesResult>
</ListMyQueuesResponse
­ 20 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
⇨Encolar datos “Un, Dos, Tres Probando” en la COLA_1: Enqueue
Petición
http://webservices.amazon.com/onca/xml?Service=AWSSimpleQueueService&Subscripti
onId=149PEK1FNH2NYY2Z7T82&Operation=Enqueue&QueueName=COLA_1&QueueEntryBody.1=U
n, Dos, Tres Probando
Respuesta
<EnqueueResponse>
<OperationRequest>
<HTTPHeaders>
<Header Name="UserAgent" Value="Mozilla/5.0 (X11; U; Linux x86_64; en-US;
rv:1.7.7) Gecko/20050416 Fedora/1.0.3-1.3.1 Firefox/1.0.3"/>
</HTTPHeaders>
<RequestId>19DWYCWQAE2SVKHP3RM5</RequestId>
<Arguments>
<Argument Name="Service" Value="AWSSimpleQueueService"/>
<Argument Name="QueueName" Value="COLA_1"/>
<Argument Name="SubscriptionId" Value="149PEK1FNH2NYY2Z7T82"/>
<Argument Name="QueueEntryBody.1" Value="Un, Dos, Tres Probando"/>
<Argument Name="Operation" Value="Enqueue"/>
</Arguments>
</OperationRequest>
<EnqueueResult>
<Request>
<IsValid>True</IsValid>
<Status>Success</Status>
<EnqueueRequest>
<QueueName>COLA_1</QueueName>
<QueueEntryBodies>
<QueueEntryBody>Un, Dos, Tres Probando</QueueEntryBody>
</QueueEntryBodies>
</EnqueueRequest>
</Request>
<QueueEntryIds>
<QueueEntryId>
1173CBVREQHMN07CJKF3|16NM7D8DE7FHHQBNXQ5J|1TG51B4EGR9TFGCNASCF
</QueueEntryId>
</QueueEntryIds>
</EnqueueResult>
</EnqueueResponse>
⇨Leer los datos del primer elemeto de la cola COLA_1: Read
Petición
http://webservices.amazon.com/onca/xml?Service=AWSSimpleQueueService&Subscripti
onId=149PEK1FNH2NYY2Z7T82&Operation=Read&QueueName=COLA_1
Respuesta
<ReadResponse>
<OperationRequest>
<HTTPHeaders>
<Header Name="UserAgent" Value="Mozilla/5.0 (X11; U; Linux x86_64; en-US;
rv:1.7.7) Gecko/20050416 Fedora/1.0.3-1.3.1 Firefox/1.0.3"/>
</HTTPHeaders>
­ 21 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
<RequestId>1D1000DZS7AN7K3P5A6F</RequestId>
<Arguments>
<Argument Name="Service" Value="AWSSimpleQueueService"/>
<Argument Name="QueueName" Value="COLA_1"/>
<Argument Name="SubscriptionId" Value="149PEK1FNH2NYY2Z7T82"/>
<Argument Name="Operation" Value="Read"/>
</Arguments>
</OperationRequest>
<ReadResult>
<Request>
<IsValid>True</IsValid>
<Status>Success</Status>
<ReadRequest>
<QueueName>COLA_1</QueueName>
</ReadRequest>
</Request>
<QueueEntries>
<QueueEntry>
<QueueEntryId>
1173CBVREQHMN07CJKF3|16NM7D8DE7FHHQBNXQ5J|1TG51B4EGR9TFGCNASCF
</QueueEntryId>
<QueueEntryBody>Un, Dos, Tres Probando</QueueEntryBody>
</QueueEntry>
</QueueEntries>
</ReadResult>
</ReadResponse>
⇨Desencolar los datos leídos de la cola COLA_1: Dequeue
Se usa el QueueEntryId obtenido de la petición anterior. Este ID es asignado por el servicio al
encolar un dato.
Petición
http://webservices.amazon.com/onca/xml?Service=AWSSimpleQueueService&Subscripti
onId=149PEK1FNH2NYY2Z7T82&Operation=Dequeue&QueueName=COLA_1&QueueEntryId.1=117
3CBVREQHMN07CJKF3|16NM7D8DE7FHHQBNXQ5J|1TG51B4EGR9TFGCNASCF
Respuesta
<DequeueResponse>
<OperationRequest>
<HTTPHeaders>
<Header Name="UserAgent" Value="Mozilla/5.0 (X11; U; Linux x86_64; en-US;
rv:1.7.7) Gecko/20050416 Fedora/1.0.3-1.3.1 Firefox/1.0.3"/>
</HTTPHeaders>
<RequestId>0WJARQ4RBDGJZCK0D2CY</RequestId>
<Arguments>
<Argument Name="Service" Value="AWSSimpleQueueService"/>
<Argument Name="QueueName" Value="COLA_1"/>
<Argument Name="SubscriptionId" Value="149PEK1FNH2NYY2Z7T82"/>
<Argument Name="QueueEntryId.1" Value="1173CBVREQHMN07CJKF3|
16NM7D8DE7FHHQBNXQ5J|1TG51B4EGR9TFGCNASCF"/>
<Argument Name="Operation" Value="Dequeue"/>
</Arguments>
</OperationRequest>
<DequeueResult>
<Request>
<IsValid>True</IsValid>
­ 22 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
<Status>Success</Status>
<DequeueRequest>
<QueueName>COLA_1</QueueName>
<QueueEntryIds>
<QueueEntryId>
1173CBVREQHMN07CJKF3|16NM7D8DE7FHHQBNXQ5J|1TG51B4EGR9TFGCNASCF
</QueueEntryId>
</QueueEntryIds>
</DequeueRequest>
</Request>
</DequeueResult>
</DequeueResponse>
⇨Eliminar la cola COLA_1: DeleteQueue
Petición
http://webservices.amazon.com/onca/xml?Service=AWSSimpleQueueService&Subscripti
onId=149PEK1FNH2NYY2Z7T82&Operation=DeleteQueue&QueueName=COLA_1
Respuesta
<DeleteQueueResponse>
<OperationRequest>
<HTTPHeaders>
<Header Name="UserAgent" Value="Mozilla/5.0 (X11; U; Linux x86_64; en-US;
rv:1.7.7) Gecko/20050416 Fedora/1.0.3-1.3.1 Firefox/1.0.3"/>
</HTTPHeaders>
<RequestId>0CFH29ERC1W0R0MYGDPR</RequestId>
<Arguments>
<Argument Name="Service" Value="AWSSimpleQueueService"/>
<Argument Name="QueueName" Value="COLA_1"/>
<Argument Name="SubscriptionId" Value="149PEK1FNH2NYY2Z7T82"/>
<Argument Name="Operation" Value="DeleteQueue"/>
</Arguments>
</OperationRequest>
<DeleteQueueResult>
<Request>
<IsValid>True</IsValid>
<Status>Success</Status>
<DeleteQueueRequest>
<QueueName>COLA_1</QueueName>
</DeleteQueueRequest>
</Request>
</DeleteQueueResult>
</DeleteQueueResponse>
3.3. Problemas
En el análisis de AWS en conjunto la verdad es que pocos problemas he podido apreciar,
considerando el reducido uso que he hecho de ellos, por lo que problemas que pudiesen ser
encontrados ya estaban resueltos, como el uso de los Grupos de Respuesta o la posibilidad de
desencolar más de un elemento con una petición. Ciertamente se nota la experiencia de Amazon en
este campo y otros relacionados y su buen uso que hace de las tecnologías.
Aún así, sí que veo el problema (conocido por Amazon) de la seguridad. Por la documentación
­ 23 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
leída he podido intuir, aunque no lo dice claramente, que el uso de SSL/TLS está soportado, por lo
que en la cuestión de seguridad de la comunicación no habría problema, pero el hecho de poder
hacer uso de los servicios, cuando estos tienen consecuencias económicas (sobre todo ECS)
conociendo simplemente el ID o interferir en el correcto funcionamiento de una aplicación que haga
uso del servicio de colas pues no me parece demasiado bueno. Esperemos que conforme vayan
mejorando el servicio pongan algún tipo de solución a este problema, como el uso de los propios
certificados digitales empelados para SSL/TLS para identificar a ambas partes.
­ 24 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
4. Conclusiones
El estudio realizado muestra como las grandes empresas están dando apoyo y empuje a la
tecnología de los servicios web. Han creado servicios sencillos pero que a la vez dan bastante juego
para la realización de aplicaciones de diversos tipos y añadir funcionalidades a las existentes como
el caso de Google con sus búsquedas.
Además me ha gustado mucho el servicio de colas de Amazon. Lo considero una buena idea
incluso para aplicarla de forma personal, es decir tomarla como solución para problemas propios
creando uno mismo su propio servicio similar al propuesto por Amazon.
Visto esto, parece ser que en los próximos años será necesario saber trabajar con servicios web,
puesto que como se ha dicho, y se ha podido ver, los grandes de este mundo están apostando por
ellos y a pesar de no ser lo mejor que se puede tener, parece que viento sopla en esa dirección (por
el momento...).
Como conclusión concreta de los servicios, se puede pensar que el servicio ECS está pensado
para la creación de una aplicación de compra on­line que podría agrupar diversos sistemas de
compra on­line (si hubiese más que ofrecieran un servicio similar) como por ejemplo poder
comprar desde la misma aplicación y de forma directa en Amazon, Fnac, eBay,...
En lo que respectas al resto de servicios los considero como un accesorio a la aplicación en la
que se incluyan, digamos que serían funciones de valor añadido.
­ 25 ­
VICENTE DAVID GUARDIOLA BUITRAGO TRABAJO DE SISTEMAS DISTRIBUIDOS
5. Bibliografía
–
–
–
Google Web APIs service: http://www.google.es/apis/
Open Directory Project: http://dmoz.org/
Amazon Web Services: http://www.amazon.com/webservices
­ 26 ­
Descargar