lunes, 20 de julio de 2015

Los 8 principios del diseño SOA


SOA es una filosofía de hacer software y una arquitectura que se puede considerar 'mainstream' desde hace ya varios años, una filosofía que, además, es heredera, como defendía en el artículo 'SOA: El software y los viejos rockeros' publicado en A un Click de las TIC, de las más arraigadas tradiciones de la buena ingeniería software.

Leyendo 'Next Generation SOA', cuyo editor es Thomas Erl, me encuentro con lo que los autores consideren los ocho principios de diseño de SOA.

Son estos:

  • Contratos estandarizados: los servicios dentro del mismo inventario, deben estar acordes a los mismos principios de diseño de contratos.

  • Bajo acoplamiento: de los servicios respecto a su entorno y, a su vez, imponer bajo acoplamiento a sus consumidores.

  • Abstracción: con unos contratos que sólo contienen lo esencial y sin que exista más información que la publicada en los contratos.

  • Reutilización: contenedores de lógica agnóstica que pueda ser fácilmente reutilizada en diferentes contextos.

  • Autonomía: ejerciendo un alto control sobre el entorno de ejecución subyacente.

  • Ausencia de estado

  • Capacidad de ser descubiertos: complementados con metadatos que hacen que puedan ser adecuadamente descubiertos e interpretados.

  • Capacidad de ser combinados: formando lógicas más complejas.

En efecto, la mayoría de esos principios ya estaban presentes en las buenas prácticas de ingeniería software 'pre-SOA'. Sin embargo, otros principios son nuevos y algunos evolucionan de su formulación original a su 'versión SOA'.

Nada nuevo bajo el sol...pero sí una forma ordenada y clarificadora de verlo.

¿Y qué nos aportan estos principios?

Los autores nos aportan también una explicación clara y convincente: adaptación al cambio.

Así nos lo dicen:

At the heart of service-oriented solutions composed o such services is the inherent ability to accomodate change wether it be change originating from the business community (...) or the IT community... 

Creo que hay otros objetivos (orden, mantenibilidad, eficiencia, etc) que justifican estos principios, pero la adaptación al cambio es tan valioso por sí solo, que se justifica a sí mismo como explicación... y a los principios de diseño como buenas y valiosas prácticas.