El principio de reutilización de servicios es un principio de diseño , aplicado dentro del paradigma de diseño orientado a servicios , para crear servicios [ 1 ] que puedan reutilizarse en toda una empresa. [ 2 ] Estos servicios reutilizables están diseñados de manera que su lógica de solución sea independiente de cualquier proceso empresarial o tecnología en particular.
Objetivo
La reutilización de servicios se suele medir por la cantidad de funcionalidad adicional que un servicio contiene y que podría reutilizarse en el futuro, y por la medida en que dicha funcionalidad va más allá de los requisitos actuales. Esto fomenta el desarrollo de servicios con capacidades adicionales diseñadas para posibles escenarios de uso futuros. Sin embargo, se presta poca atención al diseño de la lógica del servicio para que pueda reutilizarse y automatizar múltiples procesos de negocio. Esto conlleva un mayor enfoque en dotar a los servicios de funcionalidad adicional que en lograr que la lógica central sea reutilizable, lo que da lugar a servicios excesivamente complejos cuyo desarrollo requiere más tiempo y esfuerzo. Esta funcionalidad adicional puede incluso no corresponder al contexto funcional original [ nota 1 ] del servicio y podría no utilizarse en absoluto, ya que se diseñó sin definir sus necesidades. La arquitectura orientada a servicios (SOA) resultante no podría proporcionar la verdadera reutilización de servicios prometida.
Otro concepto erróneo sobre la reutilización de servicios es que se relaciona con la frecuencia de uso. Por el contrario, la verdadera reutilización se refiere a cuando el servicio se utiliza para automatizar múltiples procesos de negocio. Esta es la auténtica reutilización, ya que elimina la necesidad de crear un servicio completamente nuevo y se integra en múltiples procesos de negocio sin pertenecer a ninguno en particular.
El principio de reutilización de servicios aborda estas ideas erróneas al proporcionar un conjunto de directrices que ayudan a diseñar servicios que contienen lógica no vinculada a ningún proceso de negocio en particular y, por lo tanto, pueden reutilizarse en toda la empresa para automatizar múltiples procesos de negocio. Esto, a su vez, ayuda a lograr un mayor retorno de la inversión (ROI). [ 3 ]
La aplicación combinada de los principios de reutilización de servicios, abstracción de servicios y acoplamiento flexible de servicios ayuda a desarrollar servicios componibles. [ 4 ]
Solicitud
Este principio de diseño aboga por desarrollar servicios basados en los principios de diseño de productos comerciales que dictan el desarrollo de un producto de software con el tipo y la cantidad adecuados de lógica. Por lo tanto, el enfoque aquí está en la calidad de la lógica integrada en el 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 del negocio, 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 para desmantelar dichos sistemas heredados.
- ¿Cuáles son los requisitos actuales que el servicio debe cumplir?
- Detalles sobre el/los dominio(s) empresarial(es) correspondiente(s).
Al realizar este análisis, podemos llegar al tipo correcto de lógica reutilizable que debe incluirse en el servicio. Además, dado que también se analizan los demás servicios, se minimizan las posibilidades de duplicación de lógica. Para la aplicación de este principio, es beneficioso contar con un plano de inventario de servicios [ 5 ] (un conjunto de servicios candidatos), ya que entonces la identificación de la lógica agnóstica [ nota 2 ] resulta mucho más sencilla. Esto requiere realizar [ 6 ] a través del proceso de análisis y diseño orientado a servicios . 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 para que sea reutilizable. Esto también permite dotar a los servicios de capacidades adicionales que podrían ser reutilizadas por otros procesos de negocio, 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 de la lógica. Con el paso del tiempo, a medida que se emprenden diferentes proyectos de prestación de servicios, aumenta la probabilidad de que estos contengan lógica duplicada. Esto solo se puede evitar si existe un estándar empresarial que dicte el análisis de los servicios actuales al incorporarles nueva lógica reutilizable. Si ya existe un servicio con un contexto funcional que se ajusta a la nueva lógica reutilizable, en lugar de crear un nuevo servicio, dicha lógica debería integrarse en el 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 la lógica reutilizable se encuentra ahora en el contexto correcto y, por lo tanto, tiene mayores posibilidades de ser reutilizada. Esto es precisamente lo que defiende el patrón de centralización de la lógica .
Consideraciones
La aplicación de este principio de diseño requiere realizar un proceso de análisis orientado a servicios descendente [ 7 ] para obtener un conjunto completo de servicios candidatos. Esto exige, sin duda, un aumento de recursos, tanto en tiempo como en esfuerzo. La aplicación del patrón de diseño de centralización lógica puede generar problemas culturales, como la reticencia de los desarrolladores de servicios a reutilizar los servicios de otros, la falta de disposición de los gestores de proyectos a incorporar el uso de servicios existentes, ya que podría requerir la adaptación del diseño de la solución, etc.
Al priorizar la reutilización de servicios, la fiabilidad de estos se convierte en un aspecto crucial, ya que múltiples consumidores dependen del mismo servicio. Otros principios de diseño, como el de autonomía y el de ausencia de estado, ofrecen orientación para abordar los problemas relacionados con la fiabilidad y la disponibilidad.
Notas
- ↑ El tipo de funcionalidad que engloba un servicio, por ejemplo, un servicio de facturación tendrá un contexto funcional que se ocupa del procesamiento relacionado con las facturas, pero no se ocupará del procesamiento de las órdenes de compra.
- ↑ Lógica que no está vinculada a un único proceso de negocio, es decir, independiente de cualquier contexto particular y, por lo tanto, puede utilizarse para automatizar múltiples procesos de negocio.
Referencias
- ↑ "Servicios" . Archivado del original el 1 de mayo de 2012. Consultado el 8 de abril de 2010 .
- ↑ Thomas Erl , Herbjörn Wilhelmsen. Patrón SOA de la semana (n.º 4): Normalización de servicios [En línea]. Fecha de acceso: 14 de abril de 2010.
- ↑ Hariharan. Errores comunes al adoptar SOA [En línea]. Fecha de acceso: 14 de abril de 2010.
- ↑ Kjell-Sverre Jerijærvi. Modelo de madurez de contratos SOA [en línea]. Fecha de acceso: 14 de abril de 2010.
- ↑ Plano de inventario de servicios archivado el 11/05/2010 en Wayback Machine
- ↑ Modelado de servicios
- ↑ Proceso de análisis orientado al servicio de arriba hacia abajo. Archivado el 9 de mayo de 2010 en Wayback Machine.
Lecturas adicionales
- Mauro et al. Integración de dispositivos orientada a servicios: un análisis de patrones de diseño SOA. [en línea], págs. 1-10, 43.ª Conferencia Internacional de Hawái sobre Ciencias de Sistemas, 2010. Fecha de acceso: 8 de abril de 2010.
- Dennis Wisnosky. Principios y patrones en el Departamento de Defensa de los Estados Unidos [En línea]. Fecha de acceso: 14 de abril de 2010.
- Orientado a servicios (informática empresarial)