jueves, 4 de marzo de 2010

Soporte para Hessian (RPC) en Trac

API multi-protocolos para RPC

El día de hoy es histórico. Recientemente Odd Simon Simonsen me ha invitado a participar en el desarrollo del muy útil y exitoso plugin TracXmlRpc. El mismo permite que las aplicaciones realicen diversas operaciones sobre los entornos de administración de proyectos gestionados con Trac. En estos momentos se desarrolla una API que permitirá ejecutar los métodos disponibles a través de múltiples protocolos. Hace solo unos minutos efectué la primera llamada exitosa utilizando Hessian. Este es un protocolo binario muy popular en el ámbito de Java, pero puede ser implementado en cualquier otro lenguajes, y eso incluye a Python . Los detalles ...

... bueno, no quiero adelantar mucho todavía porque la implementación no está estable y muy probablemente se le hagan cambios incompatibles al prototipo de la API que existe hoy. Pero bueno, el plugin implementa dos protocolos muy populares para efectuar llamadas a procedimientos remotos: XML-RPC, JSON-RPC. Hay soporte para el primero en la librería estándar (i.e. xmlrpclib.ServerProxy), mientras que el segundo es accesible si se utilizan otras librerías (e.g. wsgi-jsonrpc). En el caso específico de Hessian, se necesita hacer lo siguiente desde el cliente para conectarse al servidor:

>>> from hessian.client import HessianProxy as HSP
>>> auth = {'username' : 'olemis', 'password' : 'canhurtyoureyes'}
>>> hsp = HSP('http://localhost/trac/newprj/hessian', auth)
>>> getattr(hsp, 'system.getAPIVersion')()
[1, 1, 0]

¡Eso es todo! Si quiere estar al tanto del desarrollo de esta nueva funcionalidad les invito a seguir los próximos artículos. El soporte de Hessian para Trac es solo el principio ;o) .

No hay comentarios:

Publicar un comentario