Web Services (WS-I)



Què és un Web Services?

És una interfície capaç de rebre una petició, engegar un procés y retornar els resultats. Tot això, a Internet i a través de protocols de xarxa (HTTP,FTP,SMTP).La comunicació entre els diferents entorns del Web Services es fa mitjançant XML.

Per tal d'establir un diàleg coherent entre el WSC (Web Service Client), el que envia la petició i rep la resposta i el WSS (Web Service Servidor), el que executa el procés i envia la resposta, s'utilitza SOAP (Simple Object Access Protocol), que és una codificació basada en XML.

Un Web Services, en comptes d'obtenir peticions des d'un navegador i retornar pàgines web com a resposta, rep peticions, mitjançant un missatge formatejat amb SOAP, des d'altres aplicacions, realitza la tasca que li han demanat i retorna un missatge de resposta també amb format SOAP.

Esquema del funcionament Web Services

IDEC: Infraestructura de dades espacials de catalunya

això implica:

- Independentment de l'arquitectura i llenguatges de programació utilitzats tant en el Web Services client com en el Web Services servidor, els dos hauran de ser capaços de poder enviar , rebre i interpretar SOAP. Això s'aconsegueix gràcies a les diferents llibreries o objectes dedicats als Web Services i basats amb tecnologies com .NET, JAVA, PHP o PERL.
- La necessitat d'obtenir/oferir informació sobre què fa i on està el Web Services (UDDI).
- La necessitat d'obtenir/oferir com interrogar el Web Service (WSDL).

Per a què serveix un Web Services?

Per tenir accés a informació i processos remots a través d'aplicacions web o desktop.

Això vol dir, per exemple, que un Web Services pot ser invocat remotament com una funcionalitat més dins d'una aplicació SIG desktop, amb les avantatges que: es totalment invisible per l'usuari final, al ser un procés remot el consum de recursos és absorbit pel Web Services i que l'aplicació pot estar desenvolupada en qualsevol llenguatge i plataforma.

La finalitat d'un Web Services, és la d'oferir, vendre o llogar un procés i que aquest pugui ser invocat per altres aplicacions sense tenir present el llenguatge de programació utilitzat.

Web Services i aplicació desktop

IDEC: Infraestructura de dades espacials de catalunya

Web Services vers OGC Web Services?

S'entén com a OGC Services com la integració de les diverses especificacions OGC, dedicades a realitzar geoprocessos (WMS, WFS, WCS, WTS, etc..)

Els dos tipus de serveis tenen en comú que:

- Utilitzen tecnologies com XML i HTTP.
- Executen processos en el servidor i envien un resultat conegut.


Però existeixen dues diferencies bàsiques:

- Els OGC Web Services, no utilitzen els mateixos llenguatges de comunicació (SOAP i WSDL). Encara que s'estan fent esforços per integrar-los.
- Els Web Services han estat concebuts per fer negoci i els OGC Web Services, no.


Això ha propiciat, en el primers, el desenvolupament de mecanismes de control i autentificació per tal de gestionar les transaccions i l'explotació dels processos.

SOAP (Simple Object Access Protocol)

Una de les principals raons del seu ús és el gran suport que ha rebut per part de la indústria. SOAP és el primer protocol d'aquest tipus que ha estat acceptat pràcticament per totes les grans companyies de software del món, entre les quals hi ha Microsoft, IBM, SUN Microsystems, SAP, etc.

Ja hem dit que SOAP s'utilitzarà com la "plantilla" encarregada del diàleg petició - resposta entre el WSC i el WSS.

SOAP dicta com s'han d'empaquetar (organitzar) , transmetre i definir les dades.

Un missatge SOAP està definit per tres nivells: ENVELOPE (obligatori), HEADER (opcional), BODY (obligatori).

SOAP és molt semblant a una carta: és un sobre (ENVELOPE) que conté una capçalera (HEADER) amb la direcció del receptor del missatge i amb un conjunt d'opcions de lliurement. Dins del sobre trobem el contingut del missatge (BODY).

Estructura missatge SOAP

<ENVELOPE>

<HEADER>

</HEADER>

<BODY>

</BODY>

</ENVELOPE>


  • ENVELOPE:
  • - És l'element arrel del document, dins del qual hi haurà un element (o cap ) HEADER i un element BODY.

    - Ha d'estar identificat amb NAMESPACES.

    - NO pot ser validat amb DTD

  • HEADERS:
  • - Element no obligatori.

    - Permet introduir-hi variables de seguretat en la transmissió del missatge : autentificació, enrutament, etc..

    - L'element HEADER és processat abans d'entrar dins del BODY.

  • BODY:
  • - Part on hi ha tota la informació del Web Services a tractar. Mètodes i dades.

    - Per descriure aquestes dades, SOAP utilitza XML Schema.

WSDL (Web Services Description Language)

Per tal de poder crear un WSC, necessitem saber com està constituït el WSS, es a dir, quins mètodes té implementat, quins tipus de dades espera rebre i quina serà la resposta.

WSDL és un document XML creat per el WSS i on es descriu tota aquest informació.

UDDI (Universal Description Discovery and Integration)

És un catàleg centralitzat, on és possible registrar i cercar Web Services.

Centre de Suport IDEC | Institut Cartogràfic de Catalunya | Parc de Montjuïc- 08038 Barcelona | Tel. +34 93 567 15 00 - Fax. +34 93 567 15 67 e-mail: idec@icc.cat