Client de serveis web 20/02/2007
Posted by Albert in PFC.trackback
Més endavant necessitaré utilitzar serveis web per a l’extensió d’OOo, així que he investigat què són i com utilitzar-los en Python. Un servei web és un sistema de programari que permet la interacció entre màquines sobre una xarxa. Hi ha diversos protocols per a serveis web, els més habituals són el SOAP per a enviar missatges i el WSDL per a descriure els serveis (els dos estan basats en XML). Hi ha una biblioteca per a Python, anomenada ZSI, que permet crea clients i servidors de serveis web.
La biblioteca ZSI permet interactuar amb serveis webs de diverses maneres. En principi, la manera que sembla més útil és amb un objecte ServiceProxy, que a partir del URL de la definició del servei web (WSDL) crea un objecte Python amb les operacions i tipus necessaris. Però després de fer algunes proves, sembla que no funciona amb molt serveis webs.
Una altre manera és amb un objecte Binding, que genera i envia missatges SOAP. Quan el servei web només utilitza tipus de dades senzills es pot utilitzar directament, quan es necessiten tipus de dades complexes definits en WSDL, cal definir-los en Python explícitament per tal de poder fer la conversió de SOAP a Python.
Com a prova he creat un afegit d’OpenOffice.org que utilitza un servei web per obtenir una llista d’idiomes que s’inserta al document.
El paqet de l’extensió d’OOo amb aquest afegit i l’anterior és: extensio_oo.zip. Per fer funcionar l’extensió cal tenir instal·lada la biblioteca ZSI de Python, en les distribucions GNU/Linux només cal instal·lar el paquet correspnent, però a Windows és més complicat ja que l’OpenOffice utilitza un intèrpret de Python que porta inclòs. L’OpenOffice no permet incloure en els paquets de les extensions fitxer addicionals, així que la sol·lució passarà per crear un instal·lador.

Comentaris»
No comments yet — be the first.