Activitats

Servei web públic

L’objectiu d’aquesta activitat és provar un dels serveis web públics disponibles per Internet.

Localitzeu un servei web SOAP que sigui disponible per Internet, i:

  • Feu-lo servir per obtenir resultats del servei que ofereix.
  • Poseu-hi valors impossibles i fixeu-vos què passa quan es produeix un error.

Mitjançant el navegador accediu a un cercador de serveis web com Seekda (http://webservices.seekda.com/browse).

Com que no tenim cap preferència a l’hora de triar un servei en comptes de fer servir el cercador, feu clic a l’enllaç Most Used Web Services.

Per fer l’exemple s’ha triat el servei IP2Geo, que segons la informació que hi ha a Seekda serveix per situar físicament on és una IP. També es pot veure que no hi ha documentació: aquesta està dins del fitxer WSDL (vegeu la figura figura).

Figura Localitzar un servei

L’adreça més important és la que proporciona el fitxer WSDL, i és aquest el que passarem al programa soapUI, en el qual s’ha de crear un nou projecte (figura figura).

Figura Crear un projecte

Un cop carregat es pot veure que només ofereix una funció (tot i que en diferents versions de SOAP) que es diu ResolveIP. Fent doble clic sobre “Request 1” obtindreu la plantilla de la petició (figura figura) on es pot veure que calen dues dades:

  • La IP que volem situar (ws:IPAddress)
  • La llicència (ws:licenseKey)

Com que no disposeu de llicència cal que mireu el WSDL (és on hi ha la documentació) per veure si es pot fer servir sense tenir-ne. En el WSDL s’indica que en el camp de la llicència cal posar: Use a License Key of 0 for Testing. Per tant, cal que ompliu els valors amb la IP (en l’exemple s’ha fet servir 80.58.0.33) i al camp de llicència hi poseu un zero (figura figura).

Figura Preparar la petició

En executar la petició podeu veure el resultat (figura figura).

Figura Resultat

La IP 80.58.0.33 és a l’Estat espanyol, en la latitud 40 i longitud -4, amb una probabilitat d’un 90%.

Podem situar la localització al Google Maps (figura figura).

Figura Localització de la IP al Google Maps

Instal·lació

L’objectiu d’aquesta activitat és veure com s’instal·la un entorn de desenvolupament de serveis web.

Instal·leu l’Apache Axis2 per a Java en un servidor Tomcat.

Es presenta la solució en Linux però és pràcticament idèntica en un altre sistema com Windows.

La instal·lació requereix tenir l’SDK de Java instal·lat en el sistema, i optarem per fer-lo servir mitjançant el Tomcat. També es pot fer fent servir el servidor Jetty que ve amb el paquet de distribució.

Instal·lem els paquets necessaris:

  1. $ sudo apt-get install sun-java6-jdk
  2. $ sudo apt-get install tomcat6 tomcat6-docs tomcat6-examples tomcat6-admin

El Tomcat requereix que li definim qui és l’administrador, de manera que editem l’arxiu /etc/tomcat6/tomcat-users.xml i hi afegim un usuari:

  1. <tomcat-users>
  2. <role rolename="manager" />
  3. <user username="xavier" password="1a1!" roles="admin,manager" />

Aleshores cal que reinicieu el servei:

  1. $ sudo service tomcat6 restart

Comproveu si el Tomcat està engegat visitant l’adreça http://localhost:8080.

Un cop teniu l’entorn configurat aneu a preparar l’Apache Axis2. Primer de tot heu de baixar el paquet WAR de l’Apache Axis2, des del seu lloc web:

Figura Baixar del web d’Axis

Podríeu fer el mateix amb els paquets binaris o de codi font si volguéssiu crear vosaltres mateixos el paquet WAR.

Aneu a l’àrea d’administració del Tomcat fent servir l’usuari i la contrasenya definida en l’arxiu XML.

Figura Àrea d’administració del Tomcat

En la part inferior feu servir el botó “Deploy” per pujar l’arxiu WAR de l’Axis2 al sistema.

Figura Pujar Axis2 al sistema

Un cop pujat el servei apareix llistat en els serveis que ofereix el Tomcat.

Figura Pujar l’Axis2 al sistema

Comproveu si funciona visitant l’adreça http://localhost:8080/axis2/.

Figura Pantalla inicial de l’Axis2

Instal·lar un servei

L’objectiu d’aquesta activitat és veure com s’instal·la un servei en un entorn de desenvolupament.

Instal·leu el servei web Autocars

baixeu-lo ( 4.3 KB )
a l’Axis2.

Important: tingueu en compte que abans de penjar-lo li heu de canviar l’extensió de .zip a .aar.

Per instal·lar un servei a l’Axis2 s’ha d’entrar al seu entorn d’administració. Aneu a http://localhost:8080/axis2/ i cliqueu a “Administració”.

La identificació per defecte està definida amb l’usuari admin i la contrasenya axis2.

Figura Identificació per entrar a l’entorn d’administració de l’Axis2

Un cop dins només cal que cliqueu a “Upload Service” i trieu l’arxiu que heu baixat.

Figura Pantalla d’administració de l’Axis2

Un cop estigui instal·lat el veureu, i també la llista de funcions que exporta, a http://localhost:8080/axis2/services/listServices.

Figura El servei d’Autocars afegit a l’Axis2

SOAP

L’objectiu d’aquesta activitat és fer servir el protocol SOAP per obtenir informació del servei web instal·lat anteriorment tal com ho faria un programa.

Fent servir el SoapUI, feu les peticions SOAP que calguin contra el servei Autocars que heu instal·lat a l’Axis2 i intenteu aconseguir respondre a la pregunta següent:

Quin és el bitllet més barat per anar de Figueres a un lloc de la costa en autocar?

El primer que podeu fer és aconseguir el WSDL i passar-lo al SoapUI perquè us mostri les funcions i els paràmetres que s’han de fer servir.

Des de la pàgina que mostra els serveis instal·lats a l’Axis2 cliqueu sobre el nom del servei “Autocars” per aconseguir el seu WSDL.

Figura L’Axis2 genera el WSDL automàticament

Si creeu un projecte al SoapUI tindrem disponibles les plantilles dels missatges que cal enviar al servei:

Figura El SoapUI amb les funcions a punt de ser usades

Si us fixeu en les funcions, el primer que cal fer és veure on podeu anar des de Figueres amb la funció onPucAnarDesDe, enviant com a paràmetre Figueres.

Figura El resultat de preguntar on es pot anar des de Figueres

Ens retorna una llista de pobles: Cabanes, Llançà, Empuriabrava, Cadaqués, Vilafant, l’Escala i Roses.

Un cop determinades les destinacions intenteu descobrir quines són de costa amb la funció EsDeCosta, i descobrireu que només són de costa Llançà, Empuriabrava, Cadaqués, l’Escala i Roses.

I ja només queda demanar el preu amb obtenirPreu:

Figura Preu per anar de Figueres a Llançà en autocar

El resultat és el que mostra la taula següent:

Taula: Preus per anar de Figueres a les poblacions de la costa
Origen Destinació Preu
Figueres Llançà 2,3
Figueres Empuriabrava 2,0
Figueres Cadaqués No s’hi pot anar
Figueres L’Escala 4,0
Figueres Roses 2,5

Per tant, el més barat és anar de Figueres a Empuriabrava.

REST

L’objectiu és fer servir REST per simular el comportament d’un programa a l’hora d’obtenir una resposta del servei web anterior.

Fent servir peticions REST contra el servei Autocars que heu instal·lat a l’Axis, intenteu respondre a la pregunta següent:

Quin és el preu del camí més curt per anar d’Empuriabrava a Cadaqués?

El primer pas és determinar el camí més curt fins a arribar a Cadaqués. Per tant, mireu on es pot anar des d’Empuriabrava, introduint al navegador l’expressió http://localhost:8080/axis2/services/Autocars/onPucAnarDesDe?origen=Empuriabrava.

Figura Llocs als quals es pot anar des d’Empuriabrava

Un cop tingueu les destinacions -i com que cap no és Cadaqués-, torneu a mirar on es pot anar des de cadascuna de les noves destinacions. Si ho representeu en un diagrama deixant els camins que tornen a les poblacions que ja teniu -perquè no poden ser el camí més curt-, tindreu el que mostra la figura següent:

Figura Camí més curt des d’Empuriabrava fins a Cadaqués

Per tant, el camí més curt és Empuriabrava-Figueres-Cadaqués.

Descobrim que es pot anar d’Empuriabrava a Figueres amb avioneta i autocar: http://localhost:8080/axis2/services/Autocars/comPucAnarDesDeA?origen=Empuriabrava&desti=Figueres.

I busquem els dos preus:

Això deixa clar que el més barat és anar-hi en autocar.

Taula: Preus per anar d’Empuriabrava a Figueres
Vehicle Preu
Avioneta 20,0
Autocar 2,0

Ara feu el mateix per anar de Figueres a Cadaqués per descobrir que només s’hi pot anar en taxi:

http://127.0.0.1:8080/axis2/services/Autocars/comPucAnarDesDeA?origen=Figueres&desti=Cadaqu%C3%A9s

I obtenim el preu amb:

http://127.0.0.1:8080/axis2/services/Autocars/obtenirPreu?origen=Figueres&desti=Cadaqu%C3%A9s&vehicle=taxi

Taula: Preus per anar de Figueres a Cadaqués
Vehicle Preu
Taxi 30,0

Per tant, per anar d’Empuriabrava a Cadaqués el preu més barat és 32 € (2 € + 30 €).

Anar a la pàgina anterior:
Serveis web
Anar a la pàgina següent:
Exercicis d'autoavaluació