Web Services, sockets y ThinkInGrid
Creo que de entre todas las cosas que estamos desarrollando en ThinkInGrid la más importante se encuentra en la pasarela de entrada (API) a nuestra arquitectura basada en la comunicación por mensajes XML y donde esperamos que empresas de todo el mundo programen sus aplicaciones.
Como conseguir llegar a ser lo suficientemente específicos para que nuestra arquitectura sea sencilla de usar y como llegar a ser lo suficientemente abiertos para no limitar las mentes perturbadas (En las que me incluyo) a la hora de diseñar una nueva aplicación.
Llegados a este punto y como si de un hijo se tratara actualmente estamos trabajando en ello. Es por eso que hoy quiero mostraros un par de pinceladas sobre la decisión tomada sobre el acceso a la API.
La decisión… no cerrarnos a un solo tipo de acceso. Es por ello que hemos preparado un entorno que permitirá trabajar con web services o con el sistema tradicional de sockets (Habilitando un puerto para dicho proposito). Por supuesto…a gusto del consumidor.
Sobre la primera, el motivo es claro, subirnos al carro de las nuevas arquitecturas SOA, facilitar la comunicación entre máquinas en una red y ofrecer al desarrollador la posibilidad de brindarle las ventajas que proporciona dicha tecnología. Para ello, mediante un servidor de aplicaciones (Tomcat, WebLogic, etc.), nuestro framework y Axis ofrecemos la posibilidad de interactuar fácilmente con toda la arquitectura grid que pueda tener un dominio o grupo de dominios determinado. Como ejemplo de uso y que nos servirá para accelerar implantaciones en cliente estamos desarrollando un entorno web para el mantenimiento de dominios Grid.
Los sockets, para los nostálgicos, para los que prefieren seguir realizando comunicaciones entre máquinas sin depender de un servidor web, o simplemente para los que por necesidad de entorno precisan de esta comunicación.
¿Que creéis vosotros? En ThinkInGrid creemos que no podíamos descartar ninguna de las dos opciones y es por eso que hemos dedicado nuestro tiempo a implementar las dos posibilidades. Por ejemplo, Albert está acabando unos scripts muy chulos con el ANT para facilitar la carga del framework.
Y eso es todo lo que os puedo contar… seguimos en contacto.
Por desgracia los servicios web (SW) fallan en uno de sus supuestos puntos fuertes: la interoperabilidad. Con cosas sencillas no es un problema atacar un SW implementado en Java desde un cliente .Net, Python o Symbian C++. Y viceversa. Pero si se empiezan a complicar los datos intercambiados (simplemente vectores binarios o tipos complejos) el resultado es desalentador. Más que un API, se tiene un engendro de dudas, y con clientes variopintos… Así que cuidado.
Sería más sencillo implementar un API sencillo REST. Por dos razones fundamentales: sólo necesitas un servidor web (conocido, escalable y rápido) como framework de soporte básico (en motor de AXIS tiene su miga) y un formato razonable para el intercambio de datos. En vuestro caso proporcionando los esquemas XML de los mensajes funcionaría de manera perfecta. Así matáis dos pájaros de un tiro: se simplifican los clientes y el trato con los clientes que hacen los clientes.
Por no hablar de usar HTTP en toda su potencia: integrar autenticación, usar confidencialidad, cachear, …
Lo dicho, la teoría de los SW es preciosa, pero la cantidad de basura innecesaria es tremenda. Y pensando en grid… debería ser más ligero. ¿no?
Luis - diciembre 29, 2006 a las 1:42 pm |
Hola,
os hago un comentario rápido. Me parece que el tener SOA y sockets es café para todos, una solución un poco cogida con pinzas porque no os acaba de funcionar algo y lo solucionáis con otra arquitectura. A todo ello no se si sale rentable dedicar recursos a desarrollar interficie socket y SOA a la vez en vez de centrarse en una solución que la podáis acabar y pulirla para que funcione bien.
Por otro lado, cuando liberaréis cógido? Una de las virtudes de liberarlo es precisamente hacerlo en el momento del desarrollo del software ya que permite a terceros participar y mejorar vuestro software de forma colaborativa.
Lluis R. - diciembre 29, 2006 a las 2:47 pm |
Sabía que hoy sería un buen día ;). Después de unos makis temporizados observo que tengo gente que lee mis post aburridos y le gusta opinar. Será por los formatos de las letritas? 🙂
A ver, todo esto se merece un nuevo post… en breve lo tenéis subido
xfernandez - diciembre 29, 2006 a las 5:35 pm |