Web Services desde Python
De nuevo aventurandonos en aguas fanganosas.... (aguas que no conozco).
Tengo que implementar en un cliente (Python) el interfaz con un Web Service (Java). Y también encargarme de parte del servicio en si (el core, que no del WebService).
Servidor
Para la parte servidora según el guru de turno (en este mundillo web, hay mucho gurú suelto y mucha sigla...) va a usar JAXWS.
Es posible que tenga que usar un parser de XML. Si al final es así usaré el que viene ya con java, JAXP.
Cliente
Y para la parte cliente, según he visto, hay dos opciones:
Tengo que implementar en un cliente (Python) el interfaz con un Web Service (Java). Y también encargarme de parte del servicio en si (el core, que no del WebService).
Servidor
Para la parte servidora según el guru de turno (en este mundillo web, hay mucho gurú suelto y mucha sigla...) va a usar JAXWS.
Es posible que tenga que usar un parser de XML. Si al final es así usaré el que viene ya con java, JAXP.
Cliente
Y para la parte cliente, según he visto, hay dos opciones:
La verdad... todavía no se cual usaré, a ver que puedo ver por la web... Parece que ZSI es mas completa pero SOAPpy mas sencilla de usar.
Ambas usan wstools y pyXML . La verdad... he echado un vistazo al enlace, y parece que la librería está muy bien. Hay que instalarla, ya que no viene incluida con python.
Para empezar abriendo boca, tutoriales para ambos productos: ZSI y SOAPpy.
Dentro de wstools hay un script muy util, xsdl2py.py que genera definiciones python a partir de un wsdl.
¿Cual usar: ZSI o SOAPpy?
En principio me decantaba por usar SOAPpy, porque parecía mas sencillo, pero tras instalar ambos, parece que ZSI es un producto mas maduro. Además ZSI ha pasado el test básico de ejecutar un ejemplo tonto de la distribución, mientras que SOAPpy no.
Nota posterior: ¡vaya! la versión que me habia instalado de SOAPpy era muy antigua. Actualmente las versiones estables son la 1.7 y la 0.11.5 para ZSI y SOAPpy respectivamente. Aunque ya van por la 2.0 y la 0.12.
Ambos usan la lista Pywebsvcs-talk [el archivo].
Web Services
El servicio que vamos usará el protocolo SOAP (sobre HTTP).
Para definir el servicio se usa WSDL. Que se tendrá que validar contra un XSD (un 'XML Schema')
Y ya para acabar unas entradas de la wikipedia:
Ambas usan wstools y pyXML . La verdad... he echado un vistazo al enlace, y parece que la librería está muy bien. Hay que instalarla, ya que no viene incluida con python.
Para empezar abriendo boca, tutoriales para ambos productos: ZSI y SOAPpy.
Dentro de wstools hay un script muy util, xsdl2py.py que genera definiciones python a partir de un wsdl.
¿Cual usar: ZSI o SOAPpy?
En principio me decantaba por usar SOAPpy, porque parecía mas sencillo, pero tras instalar ambos, parece que ZSI es un producto mas maduro. Además ZSI ha pasado el test básico de ejecutar un ejemplo tonto de la distribución, mientras que SOAPpy no.
Nota posterior: ¡vaya! la versión que me habia instalado de SOAPpy era muy antigua. Actualmente las versiones estables son la 1.7 y la 0.11.5 para ZSI y SOAPpy respectivamente. Aunque ya van por la 2.0 y la 0.12.
Ambos usan la lista Pywebsvcs-talk [el archivo].
Web Services
El servicio que vamos usará el protocolo SOAP (sobre HTTP).
Para definir el servicio se usa WSDL. Que se tendrá que validar contra un XSD (un 'XML Schema')
Y ya para acabar unas entradas de la wikipedia:
Para acabar, un tutorial de SOAP.
Notas finales:
- Para C++ está AXIS.
- Esto del web service es algo impuesto. Pero otras alternativas para hacer el servicio hubieran sido CORBA o XML RPC. Hay soporte para xml-rpc en python, y como orb que soporte python tenemos omniorb.
- En 'IBM developer works' IBM tienen un area sobre Web Services. En contreto hay varios articulos sobre python y SOAP: 1, 2, 3, 4 y 5. Que van de:
- Part 5: (2004) Nuevos desarrollos en SOAPpy.
- Part 4: (2003) Nuevos desarrollos en ZSI
- Part 3: (2002) Cambio de roles con ZSI y SOAPpy
- Part 2: (2002) Con y sin WSDL (sobre ZSI)
- Part 1: (2001) Introducción a varias librerías.
No hay comentarios:
Publicar un comentario