Blog!

Busqueda de información

Descomposición de Procesos de Negocio en Servicios SOA (Paradigma de orientación a servicios)

Ratio: 4 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio desactivado
 

BPM y SOA son utilizadas conjuntamente en la industria para lograr alineación de TI al negocio,  existen enfoques y metodologías para lograr este objetivo. En esta publicación hablaremos un poco de la propuesta de Arcitura y Thomas Earl para abordar este tema, mencionaremos algunos conceptos importantes, principalmente de la fase de análisis orientado a servicios por medio de la descomposición de un proceso de negocio en servicios candidatos.  

Para poder llevar a cabo la descomposición del proceso, es necesario que tengamos presentes algunos conceptos básicos. Es importante mencionar que este tipo de metodología es sólo una propuesta para la industria y puede ser adaptada dependiendo de nuestras implementaciones en cada proyecto.

 

El objetivo principal de la presente publicación es mostrar una pequeña parte del paradigma de orientación a servicios: Modelamiento de Servicios, mediante la descomposición de un proceso de negocio en servicios candidatos; y aunque no mostraremos el proceso completo de un modelado de servicios, sí mostraremos los principales pasos que un Analista SOA debe realizar.

Comencemos con las definiciones de orientación a servicios, proceso de negocio y de servicio.

Orientación a servicios

“La orientación a servicios es un paradigma de diseño destinado a la creación de unidades lógicas de solución que son formadas individualmente con el propósito de que puedan ser utilizadas colectiva y repetidamente en la realización de una estrategia de solución específica.”

 

Como podemos observar en la imagen, podemos conceptualizar la orientación a servicios como una capa superior a la orientación a objetos, en la cual se hace uso de metodologías, tecnologías y notaciones para diseñar unidades de solución soportándose en la orientación a objetos, la cual a su vez utiliza herramientas tecnológicas de más bajo nivel para dar soporte técnico.

Proceso de negocio

Proceso: “Es un conjunto de actividades coordinadas que combinan y utilizan recursos y capacidades con el fin de producir un resultado que directa o indirectamente crea valor para los clientes o los interesados.”

Proceso de negocio: “Es un conjunto de tareas y actividades que permiten lograr un objetivo organizacional específico.”

Podemos observar que la diferencia entre un proceso y un proceso de negocio es el enfoque organizacional que posee el último de estos.

Servicio

 

“Un servicio es una unidad lógica de solución a la cual se le ha aplicado la orientación a servicios y se le han aplicado los principios del paradigma orientado a objetos y que distinguen a un servicio de un componente o una aplicación.”

 

 

 

En otras palabras podemos conceptualizar un servicio como un contexto funcional, es decir, un conjunto o grupo de capacidades que pertenecen al mismo contexto o lógica funcional.

Estos servicios son las unidades que soportaran la ejecución de nuestro proceso de negocio.

Capacidad

“Cada servicio es asignado a su propio contexto funcional, el cual es compuesto de una colección de funciones o capacidades relacionadas a ese contexto.”

Esto lo podemos entender como las funciones que tiene cada servicio pero que deben estar acotadas a su contexto funcional específico.

 

Composición de Servicios

 

“Una composición de servicios es un conjunto de servicios colectivamente compuestos para automatizar una tarea o proceso de negocio específico.”

 

 

Creamos conjuntos de servicios para realizar funciones o tareas específicas. Hacemos uso de los servicios genéricos y multipropósito para formar estos conjuntos

Tipos de Lógica

Es importante también que identifiquemos tipos de lógica que nos ayudarán a clasificar nuestros servicios, a continuación se describen los cuatro tipos de lógica:

  • 1-      Negocio: Lógica que expresa capacidades de negocio. Ésta es nuestra lógica de más alto nivel y es generalmente expresada mediante BPM, BPMN o modelos de datos.
  • 2-      No Agnóstica: Lógica específica.Este tipo de lógica es utilizada para realizar tareas concretas y por esta razón tiende a no ser reutilizable.
  • 3-      Agnóstica: Lógica genérica.Este tipo de lógica permite una fácil reutilización.
  • 4-      Utilidad: Lógica que realiza tareas más técnicas y utilizando recursos tecnológicos.Este tipo de lógica es la de más bajo nivel se utiliza para realizar tareas como persistencia, acceso a datos, mensajería, seguridad, manejo de memoria y recursos computacionales, etc. Es altamente reutilizable.

 

Modelos de Servicio

Los tipos de lógica mostrados anteriormente nos pueden ayudar a definir los modelos de servicio, que no es más que la clasificación que aplicaremos a los servicios que se definan para soportar nuestro proceso de negocio.

Se definen tres modelos de negocio:

Tarea: Servicios con contextos funcionales de negocio no agnósticos. En esta clasificación tendremos a los servicios con lógica específica.

Entidad: Servicios con contextos funcionales agnósticos. En esta clasificación tendremos a los servicios con lógica no específica y multipropósito.

Utilidad: Servicios con contextos funcionales agnósticos. En esta clasificación tendremos a los servicios con tareas tecnológicas de bajo nivel.

Teniendo esta clasificación podemos entender que los servicios de tarea se componen de servicios de entidad, los cuales a su vez se componen de servicios de utilidad. De esta manera tenemos lo que llamamos composiciones de servicios.

La idea principal es que los servicios de entidad y de utilidad puedan ser utilizados las veces que sean necesarias por los servicios de tarea y así soportar el proceso de negocio.

Modelamiento de Servicios

El modelamiento de servicios se refiere a los pasos del paradigma de orientación a servicios que nos ayudan a descomponer nuestro proceso de negocio en servicios candidatos.

El modelamiento de servicios comprende sólo una pequeña parte de todo el paradigma de orientación a servicios.

Como mencionamos al inicio de esta publicación, a continuación llevaremos a cabo un ejemplo de descomposición de proceso de negocio en servicios.

 

En este caso el proceso de negocio trata de la generación de una orden de reparación de automóvil y se describe en el siguiente diagrama BPMN:

 

 

El cliente inicia el proceso enviando una solicitud de reparación al taller automotriz, se crea la orden de reparación, y se agenda una cita para revisión del vehículo y diagnóstico del mismo.  Como resultado de la revisión hay una tarea manual para generar la hoja de diagnóstico y cotización para la reparación, posteriormente se confirma el pago de la cuenta para la reparación y la factura no se genera hasta que el pago es confirmado. Finalmente se confirma la fecha para la terminación de la reparación y se notifica al cliente.

 

 

Teniendo definido el proceso de negocio, iniciamos su descomposición describiendo detalladamente las acciones realizadas en cada tarea de nuestro proceso, como se muestra a continuación:

 

El siguiente paso consiste en identificar tareas o acciones que no pueden conceptualizarse como servicios, por ejemplo actividades manuales que sean parte del proceso. A continuación se marcan con rojo las actividades descartadas y que no generaran ningún servicio.

 

 

El tercer paso es identificar acciones que puedan ser encapsuladas en un servicio agnóstico, es decir lógica genérica en nuestro proceso, lógica que pueda ser reutilizada. En este ejemplo se muestran en azul las acciones candidatas.

 

 

El cuarto paso consiste en identificar las acciones para los servicios no agnósticos, es decir vamos a identificar lógica específica. Para nuestro ejemplo resaltamos las acciones con color verde.

 

 

El quinto paso consiste en aplicar los principios del paradigma orientado a servicios (el cual consiste en total en ocho principios); en esta publicación se mencionan cuatro, los cuales me parecen los más importantes.

 

 

El potencial de ser reutilizado nos permite que un servicio forme parte de otros servicios o procesos de negocio sin la necesidad de crear varios de ellos, esta característica los hace multipropósito y nos permite tener inventarios de servicios de los cuales tomaremos los servicios necesarios para realizar nuestras composiciones. Para que un servicio sea reutilizable sus capacidades deben coincidir con el contexto funcional.

El potencial de ser descubierto se refiere a que en un inventario de servicios sea fácil ubicar y utilizar las capacidades de un servicio y el servicio en sí, para esto los nombres deben ser claros y deben expresar correctamente el contexto funcional de cada servicio. Los servicios deben comunicar fácilmente para que funcionen.

La autonomía se refiere al ambiente tecnológico en el cual reside el servicio, y este debe de proveer los recursos necesarios para que el servicio funcione de manera independiente.

El potencial de ser compuesto implica que un servicio debe funcionar de igual manera aunque la composición en donde participa sea escalada.

 

En el siguiente diagrama podemos ver nuestros servicios candidatos con sus capacidades, separados en servicios: de tarea, de entidad y de utilidad.

 

 

Por último, tomando los servicios que ya hemos creado formamos composiciones de servicios que soporten las tareas de nuestro proceso de negocio:

 

 

Como podemos ver, el Modelamiento de Servicios ofrece una serie de pasos para conceptualizar los servicios y composiciones que después usaremos para soportar nuestros procesos y de esta forma ofrecer soluciones orientadas a servicios para sistemas empresariales.

Esta publicación abarca sólo una pequeña parte de la metodología diseñada y publicada por Arcitura. Uno de sus objetivos es crear interés en este tipo de metodologías, si deseas saber más proporciono algunas referencias para obtener más información.

Abraham Bernal abernal[at]baware.com.mx / info[at]baware.com.mx

Referencias:

SOA Design Patterns – Thoma Erl – Prentice Hall

http://www.arcitura.com/

http://soapatterns.org/

Webinars Itehl Consulting

 

https://www.youtube.com/channel/UCLPs-Y8jpPgo7VwJE-Vj-KQ

 

 

 

Log in