domingo, 28 de septiembre de 2008

Web Services para todo?


En lo que va de este año, ya van por lo menos dos clientes en los que observo una especie de "obsesión" con la utilización de Web Services, indicando que las aplicaciones a construir deben estar basadas en SOA y, por lo tanto, deben consumir servicios internos mediante SOAP. WTF?

Para tener una arquitectura basada en u orientada a servicios, no se requieren Web Services! Es más, si las aplicaciones consumidoras y proveedoras de servicios están escritas en el mismo lenguaje de programación, se vuelve una pésima opción, por cuestiones de rendimiento y complejidad innecesaria en el diseño. Recordar los principios KISS y YAGNI!

Acerca del tema de la distribución innecesaria de los objetos se ha dicho bastante. Es más, es una de las razones por las que surgió Spring como respuesta al status quo impuesto por el estándar EJB 1.x/2.x. Esto lo explican bastante bien Rod Johnson y Juergen Hoeller en su libro J2EE Development without EJB.

Por poner otro ejempo, y citando a Martin Fowler:

Rule # 1 of Distributed Computing - Don't distribute your objects!


Finalmente, todos deberían conocer las 8 falacias de la computación distribuida:
  1. La red es confiable.
  2. La latencia es cero.
  3. El ancho de banda es infinito.
  4. La red es segura.
  5. La topología no cambia.
  6. Existe un único administrador.
  7. El costo del transporte es cero.
  8. La red es homogénea.
Personalmente, recomiendo utilizar Spring (o algo parecido) para exponer servicios y sólo hacerlos accesibles remotamente si la necesidad de integrar clientes externos (por ejemplo implementados en una plataforma o lenguaje distinto) surge.

3 comentarios:

Anónimo dijo...

"Fin de mes, pagaron ya!!!", tambien tengo esa experiencia con el concepto errado de SOA y WebServices que pueden ser los mismos, pero asi como se tiene ese concepto tambien se tiene el de "expongamos servicios, para que en un futuro algun aplicativo pueda usarlo" o frases como "tu desarrollo tiene que ser estandar por que en algun momento se puede cambiar la herramienta", yo pregunto!!! ¿CUANDO "#$%&/( HARÁN ESO? Me alegra saber que ya cada vez mas se da cuenta del error y buscan cambiar la situación.
Saludos!

JM dijo...

Saben? para variar estoy de acuerdo con eso... y le agregaria algo... estas empresas que ahora se desesperan por tener aplicaciones "orientadas a SOA" (porque asi lo piden ¬¬) no sacaron la idea de la nada, en su gran mayoria obtienen estas ideas "revolucionarias" gracias a el trabajo de las consultoras que, con el afan de vender claro (quien no?), dan asesorias (o auditorias) mencionando en estas como sugerencias el uso de las últimas tecnologías... y despues de eso los "jefes" de sistemas no piensan en otra cosa: "SOA, SOA, SOA, SAOO... ejem, digo.. SOA, SOA"...

tamare...

Bruno Francescoli dijo...

Pero digamos que quiero acceder a consultar varias bases de datos pero en kaliente(no es el grupo musical de la selva) como primero consultar en una bd ORACLE y otra en MySQL pero sin necesidad de reiniciar el sistema ahi se podria utilizar los web services pues accedes al servicio que exponen las empresas sin necesidad de tener permisos de administrador.
Saludos.

Saludos.