Un problema con el que nos podemos encontrar a la
hora de construir una aplicación SOA es si la aplicación construida realmente
es una aplicación "SOA Compliant". Para comprobar si una aplicación
lo es, la mejor forma de hacerlo es chequeando que la aplicación cumpla con los
Principios de la Orientación a Servicios.
No existe una definición estándar de cuáles son
los Principios de la Orientación a Servicios, por lo tanto, lo único que se
puede proporcionar es un conjunto de Principios que estén muy asociados con la
Orientación a Servicios. Estos Principios según Thomas Erl son:
· Los
Servicios deben ser reusables: Todo servicio debe ser diseñado y construido
pensando en su reutilización dentro de la misma aplicación, dentro del dominio
de aplicaciones de la empresa o incluso dentro del dominio público para su uso
masivo.
·
Los
Servicios deben proporcionar un contrato formal: Todo servicio
desarrollado, debe proporcionar un contrato en el cual figuren: el nombre del
servicio, su forma de acceso, las funcionales que ofrece, los datos de entrada
de cada una de las funcionalidades y los datos de salida. De esta manera, todo
consumidor del servicio, accederá a este mediante el contrato, logrando así la
independencia entre el consumidor y la implementación del propio servicio. En el
caso de los Servicios Web, esto se logrará mediante la definición de interfaces
con WSDL.
· Los
Servicios deben tener bajo acoplamiento: Es decir, que los servicios tienen
que ser independientes los unos de los otros. Para lograr ese bajo
acoplamiento, lo que se hará es que cada vez que se vaya a ejecutar un
servicio, se accederá a él a través del contrato, logrando así la independencia
entre el servicio que se va a ejecutar y el que lo llama. Si conseguimos este
bajo acoplamiento, entonces los servicios podrán ser totalmente reutilizables.
· Los
Servicios deben permitir la composición: Todo servicio debe ser construido
de tal manera que pueda ser utilizado para construir servicios genéricos de más
alto nivel, el cual estará compuesto de servicios de más bajo nivel. En el caso
de los Servicios Web, esto se logrará mediante el uso de los protocolos para
orquestación(WS-BPEL) y coreografía (WS-CDL).
· Los
Servicios deben de ser autónomos: Todo Servicio debe tener su propio
entorno de ejecución. De esta manera el servicio es totalmente independiente y
nos podemos asegurar que así podrá ser reutilizable desde el punto de vista de
la plataforma de ejecución.
· Los
Servicios no deben tener estado: Un servicio no debe guardar ningún tipo de
información. Esto es así porque una aplicación está formada por un conjunto de
servicios, lo que implica que si un servicio almacena algún tipo de
información, se pueden producir problemas de inconsistencia de datos. La
solución, es que un servicio sólo contenga lógica, y que toda información esté
almacenada en algún sistema de información sea del tipo que sea.
· Los
Servicios deben poder ser descubiertos: Todo servicio debe poder ser
descubierto de alguna forma para que pueda ser utilizado, consiguiendo así
evitar la creación accidental de servicios que proporcionen las mismas
funcionalidades. En el caso de los Servicios Web, el descubrimiento se logrará
publicando los interfaces de los servicios en registros UDDI.
Cuando se desarrollan aplicaciones SOA es muy útil
y necesario tener en cuenta siempre estos principios, ya que nos van a dar las
pautas necesarias para tomar ciertas decisiones de diseño complejas.
Como se habrá podido observar, una característica
muy importante de los Principios de la Orientación a Servicios, es que todos
ellos se inter-relacionan. El siguiente gráfico muestra la inter-relación de
los diferentes principios:

No hay comentarios:
Publicar un comentario