La orientación a servicios es un paradigma de diseño para software informático en forma de servicios . Los principios del diseño orientado a servicios enfatizan la separación de preocupaciones en el software. La aplicación de la orientación a servicios da como resultado unidades de software divididas en unidades discretas, autónomas y accesibles en red, cada una diseñada para resolver una preocupación individual. Estas unidades se califican como servicios. [1] [2]
La orientación a servicios ha recibido mucha atención desde 2003 [3] debido a los beneficios que promete. Estos incluyen un mayor retorno de la inversión , agilidad organizacional e interoperabilidad , así como una mejor alineación entre el negocio y la TI . Se basa en gran medida en paradigmas de diseño anteriores y los mejora con la estandarización, el acoplamiento flexible y la participación del negocio. [4] El paradigma perdió impulso en 2009; [5] desde 2014, se puede observar un renovado interés bajo el nombre de Microservicios . En tecnología, las plataformas SOA de diferentes proveedores han utilizado diferentes definiciones de orientación a servicios. Algunos proveedores promueven principios y principios diferentes sobre otros, pero existe una buena cantidad de puntos en común. [6]
La orientación a servicios hereda una pequeña cantidad de principios de paradigmas anteriores, entre ellos la programación orientada a objetos , la ingeniería de software basada en componentes y el procesamiento distribuido abierto. Se reconoce comúnmente que varios principios de orientación a servicios tienen sus raíces en el paradigma de diseño orientado a objetos: los dos son paradigmas complementarios y siempre habrá una necesidad de ambos. [7] Los servicios también heredan una serie de características de los componentes de software, entre ellas
El procesamiento distribuido abierto (ODP) combina los conceptos de sistemas abiertos y computación distribuida, que son características esenciales de la orientación a servicios. Las características clave del ODP son heredadas por la orientación a servicios, incluidas la federación, la interoperabilidad, la heterogeneidad, la transparencia y el comercio/intermediación.
Don Box fue uno de los primeros en proporcionar un conjunto de pautas de diseño conocidas como sus "cuatro principios de orientación al servicio", que describió principalmente en relación con la plataforma Microsoft Indigo (posteriormente Windows Communication Foundation ) que estaba surgiendo en ese momento:
Otros proveedores y consultores independientes han publicado sus definiciones de orientación a servicios y SOA, por ejemplo, N. Josuttis en "SOA in Practice" y D: Krafzig et al. en "Enterprise SOA". Un artículo en la edición de diciembre de 2005 del IBM System Journal [8] titulado "Impact of service orientation at the business level" [9] proporcionó un estudio de cómo el paradigma de orientación a servicios se relaciona con la componentización fundamental y el IBM Component Business Model (CBM).
Paul Allen define la orientación a servicios como un paradigma (de negocios), con tres componentes principales: arquitectura de negocios, arquitectura orientada a servicios y gestión orientada al software. El libro de Allen define siete puntos de vista orientados a servicios (denominados SOV7): Allen, Paul (2006). Estrategias ganadoras y mejores prácticas de orientación a servicios . Cambridge University Press. ISBN 978-0521843362.
Allen utiliza los puntos de vista como punto de partida para plantear preguntas durante el proceso de diseño.
La orientación a servicios ha seguido recibiendo un reconocimiento cada vez mayor como una parte importante del panorama de la informática orientada a servicios y un enfoque de diseño válido para lograr una arquitectura orientada a servicios .