Google

jueves, junio 22, 2006

Principios de la orientación a servicios

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 cuales 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 indepencia entre el consumidor y la implementación del propio servicio. En el caso de los Servicios Web, esto se logrará medienta 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:


Como se puede observar en el gráfico, el objetivo de la Orientación a Servicios es obtener software totalmente reutilizable a través de un conjunto de técnicas y principios como los descritos anteriormente.

3 Comments:

At 7:58 p. m., Anonymous Anónimo said...

HOLA. DISCULPA MI ATREVIMIENTO. PERO POR LO QUE NOTO ESTA MUY METIDO EN LO QUE SE REFIERE A "SOA". MI NOMBRE ES NEFTALI Y ME PIDIERON DE TAREA QUE INVESTIGARA QUE ES SOA Y LO EXPUSIERA EN CLASES CON UN MINIMO DE 15 DIAPOSITIVAS EN POWER POINT Y CON UN EJEMPLO DE APLICACION PERO NO SE NI PAPAS DE QUE TRATE ESO.

YA LEI ALGO DE ESE TERMINO PERO ME FALTA ALGO UN POCO MAS CLARO, NO SE SI TE PUDIERAS AYUDARME EXPLIACNDOME POR MEDIO DE UN CORREO O ATRAVES DE TU PAGINA, TE LO AGRADECERIA MUCHO. DE ANTEMANO GRACIAS. MY CORREO ES nesmay9@hotmail.com

 
At 4:56 p. m., Anonymous Anónimo said...

Hola mi nombre es Aurora estoy realizando una investigación de SOA y por lo que estuve leyendo en tu blog sacaste los principios de la orientación a servicios del libro de Thomas Erl, me gustaria saber donde puedo conseguir ese libro en línea y que este en español.

Me gustaría que me pudieras auxiliar con esto la verdad me interesa conocer mucho sobre SOA.

Este es mi correo
auro_angelito@yahoo.com.mx

Atte. Aurora

 
At 6:17 a. m., Anonymous Anónimo said...

Hola!, bueno quisiera un poco de ayuda en cuanto a la definicion de SOA, no me ha quedado muy claro.

Tengo un trabajo de investigacion de la universidad, y es tratar todo lo referente a SOA.

Agradecere me envies una simple explicacion de SOA.

mi correo es: liliancarol16@gmail.com

 

Publicar un comentario en la entrada

<< Home