El principio de reutilización del servicio es un principio de diseño , aplicado dentro del paradigma de diseño de orientación al servicio, para crear servicios [1] que se pueden reutilizar en una empresa. [2] Estos servicios reutilizables están diseñados para que la lógica de su solución sea independiente de cualquier tecnología o proceso comercial en particular .
Propósito
La reutilización del servicio generalmente se mide por la cantidad de funcionalidad adicional que contiene un servicio que podría reutilizarse en el futuro y la cantidad de funcionalidad del servicio que va más allá de los requisitos actuales. Esto fomenta los servicios que contienen capacidades adicionales creadas en torno a posibles escenarios futuros de uso del servicio. Sin embargo, poco se hace en el diseño de la lógica del servicio de manera que pueda reutilizarse para automatizar múltiples procesos comerciales. Esto da como resultado un mayor enfoque en equipar los servicios con funcionalidad adicional que concentrarse en hacer que la lógica del servicio central sea reutilizable, lo que lleva a servicios dorados cuyo desarrollo requiere más tiempo y esfuerzos. Es posible que esta funcionalidad adicional ni siquiera se encuentre dentro del contexto funcional original [nota 1] del servicio y es posible que ni siquiera se utilice en absoluto, ya que se creó sin establecer sus necesidades. La SOA resultante no podría proporcionar una verdadera reutilización del servicio como se prometió.
Otro concepto erróneo sobre la reutilización de servicios es que la reutilización se relaciona con la frecuencia de su uso. Contrariamente a esto, la reutilización real se relaciona con el momento en que el servicio se utiliza para automatizar múltiples procesos comerciales. Esta es la verdadera reutilización del servicio, ya que dicho servicio elimina la necesidad de crear un nuevo servicio y se convierte en parte de múltiples procesos comerciales sin ser parte de ningún proceso comercial en particular.
El principio de reutilización del servicio aborda estos conceptos erróneos al proporcionar un conjunto de pautas que ayudan a diseñar servicios que contienen lógica que no está vinculada a ningún proceso comercial en particular y, por lo tanto, podría reutilizarse en toda la empresa para automatizar múltiples procesos comerciales. Esto ayuda aún más a lograr un mayor retorno de la inversión. [3]
La aplicación compuesta de la reutilización del servicio, la abstracción del servicio y los principios de acoplamiento flexible del servicio ayudan a desarrollar servicios componibles. [4]
Solicitud
Este principio de diseño aboga por el desarrollo de servicios basados en los principios de diseño de productos comerciales que dictan el desarrollo de un producto de software con el tipo correcto y la cantidad correcta de lógica. Entonces, el enfoque aquí está en la calidad de la lógica empaquetada dentro del programa de software. Al concentrarse en la calidad, el potencial de reutilización del programa de software aumenta automáticamente. Para concentrarse en la calidad de la lógica, la reutilización del servicio requiere explorar el dominio empresarial, así como las tecnologías actuales en uso. Algunas de las consideraciones que ayudan a diseñar servicios con lógica reutilizable incluyen:
- ¿Cuáles son los objetivos a largo plazo de la organización?
- Analizar los contextos funcionales de los servicios actuales.
- Sistemas heredados actuales y cualquier plan futuro de desmantelamiento de dichos sistemas heredados.
- ¿Cuáles son los requisitos actuales que debe abordar el servicio?
- Detalles sobre los dominios comerciales correspondientes.
Al realizar este análisis, podemos llegar al tipo correcto de lógica reutilizable que debe incluirse dentro del servicio. Además, debido a que también se analizan los otros servicios, se minimizan las posibilidades de duplicación lógica. Es beneficioso para la aplicación de este principio tener un plan de inventario de servicios [5] (un conjunto de servicios candidatos), ya que entonces la identificación de la lógica agnóstica [nota 2] se vuelve bastante más fácil. Esto requiere realizar [6] a través del proceso de diseño y análisis orientado al servicio . La aplicación de este principio antes de la finalización de las capacidades del servicio brinda la oportunidad de ajustar y refactorizar la lógica en apoyo de hacerla reutilizable. Esto también brinda la oportunidad de equipar los servicios con capacidades adicionales que podrían ser reutilizadas por otros procesos comerciales, además del que se está automatizando actualmente, cuando se trata de automatizar dichos procesos.
Un concepto importante relacionado con la aplicación de este principio es la centralización lógica. Con el paso del tiempo, a medida que se emprenden diferentes proyectos de prestación de servicios, aumentan las posibilidades de que los servicios contengan una lógica duplicada. Esto solo se puede evitar si existe un estándar empresarial que dicta el análisis de los servicios actuales cuando se trata de agregar servicios con una nueva lógica reutilizable. Si un servicio ya existe con un contexto funcional que se ajusta a la nueva lógica reutilizable, entonces, en lugar de crear un nuevo servicio, dicha lógica debería convertirse en parte del servicio existente. Esto no solo ayuda a evitar la duplicación, sino que también aumenta el nivel de reutilización del servicio, ya que ahora la lógica reutilizable se encuentra dentro del contexto correcto y, por lo tanto, tiene más posibilidades de reutilización. Esto es exactamente lo que defiende el patrón de centralización lógica .
Consideraciones
La aplicación de este principio de diseño requiere realizar un proceso de análisis orientado al servicio de arriba hacia abajo [7] para llegar a un conjunto completo de servicios candidatos. Esto claramente requiere mayores recursos tanto en forma de tiempo como de esfuerzo. La aplicación del patrón de diseño de Centralización Lógica puede introducir problemas culturales, por ejemplo, desarrolladores de servicios que se muestran renuentes a reutilizar los servicios de otros, gerentes de proyectos que no están dispuestos a incorporar el uso de servicios existentes, ya que podría necesitar una adaptación del diseño de la solución, etc.
Al enfatizar la reutilización del servicio, la confiabilidad de los servicios reutilizables se convierte en un tema importante ya que múltiples consumidores de servicios dependen del mismo servicio. Otros principios de diseño, como el principio de autonomía del servicio y el principio de apatridia del servicio, brindan orientación para abordar los problemas relacionados con la confiabilidad y la disponibilidad.
Notas
- ^ El tipo de funcionalidad que incluye un servicio, por ejemplo, un servicio de Factura tendrá un contexto funcional que se ocupa del procesamiento relacionado con la factura, pero no del procesamiento de Órdenes de Compra.
- ^ Lógica que no está vinculada a un único proceso empresarial, es decir, independiente de ningún contexto particular y, por tanto, se puede utilizar para automatizar múltiples procesos empresariales.
Referencias
- ^ Servicios
- ^ Thomas Erl , Herbjörn Wilhelmsen SOA Patrón de la semana (# 4): Normalización del servicio [en línea]. Fecha de acceso: 14 de abril de 2010.
- ^ Hariharan. Error común al adoptar SOA [en línea]. Fecha de acceso: 14 de abril de 2010.
- ^ Kjell-Sverre Jerijærvi. Modelo de vencimiento de contratos SOA [en línea]. Fecha de acceso: 14 de abril de 2010.
- ^ Plan de inventario de servicio Archivado el 11 de mayo de 2010 en la Wayback Machine.
- ^ Modelado de servicios
- ^ Proceso de análisis orientado al servicio de arriba hacia abajo. Archivado el 9 de mayo de 2010 en la Wayback Machine.
Otras lecturas
- Mauro. et al. Integración de dispositivos orientada a servicios: análisis de patrones de diseño SOA. [en línea], págs. 1 a 10, 2010 43ª Conferencia Internacional de Hawai sobre Ciencias de Sistemas, 2010. Fecha de consulta: 8 de abril de 2010.
- Dennis Wisnosky. Principios y patrones en el Departamento de Defensa de EE. UU. [En línea]. Fecha de acceso: 14 de abril de 2010.