Comenzaremos con un par de definiciones de SOA (por sus siglas en inglés):
“Una arquitectura de aplicación en la cual todas las funciones se definen como servicios independientes con interfaces invocables bien definidas, que pueden ser llamadas en secuencias definidas para formar procesos de negocios” (IBM).
“SOA es una arquitectura de software que comienza con una definición de interface y construye toda la topología de la aplicación como una topología de interfaces, implementaciones y llamados a interfaces. Sería mejor llamada “arquitectura orientada a interfaces”. SOA es una relación de servicios y consumidores de servicios, ambos suficientemente amplios para representar una función de negocios completa” (Gartner).
"Es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio. Permite la creación de sistemas altamente escalables que reflejan el negocio de la organización, a su vez brinda una forma bien definida de exposición e invocación de servicios (comúnmente pero no exclusivamente servicios web), lo cual facilita la interacción entre diferentes sistemas propios o de terceros" (Wikipedia).
Entonces, para entender los servicios, un pequeño esquema:
Por otro lado, existe una relación entre SOA y Web Services (WS):
Algunos estandares empleados en SOA que valdría la pena conocer:
Una lectura recomendada es la edición 21 del revista "The Architecture Journal" de Microsoft: "Service Orientation - Today and Tomorrow" (pueden incluso decargarla como archivo pdf, para hacerlo click aqui).
“Una arquitectura de aplicación en la cual todas las funciones se definen como servicios independientes con interfaces invocables bien definidas, que pueden ser llamadas en secuencias definidas para formar procesos de negocios” (IBM).
“SOA es una arquitectura de software que comienza con una definición de interface y construye toda la topología de la aplicación como una topología de interfaces, implementaciones y llamados a interfaces. Sería mejor llamada “arquitectura orientada a interfaces”. SOA es una relación de servicios y consumidores de servicios, ambos suficientemente amplios para representar una función de negocios completa” (Gartner).
"Es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio. Permite la creación de sistemas altamente escalables que reflejan el negocio de la organización, a su vez brinda una forma bien definida de exposición e invocación de servicios (comúnmente pero no exclusivamente servicios web), lo cual facilita la interacción entre diferentes sistemas propios o de terceros" (Wikipedia).
Entonces, para entender los servicios, un pequeño esquema:
Por otro lado, existe una relación entre SOA y Web Services (WS):
- Antes que nada, SOA es mucho más antiguo que los WS y mucho más amplio
- Asi mismo, los WS son solo una interface, pero proporcionan independencia de plataforma, bajo acoplamiento, auto-descripción y descubrimiento
- Y eventualmente, podría haber SOA sin WS
- Sin embargo, a pesar que los web services no son parte obligatoria de SOA, representan una implementación adecuada
Algunos estandares empleados en SOA que valdría la pena conocer:
- WSDL
- UDDI
- BPEL
- WS-Profile
- WS-Security
- WS-Choreography
- Y bueno, hay un largo etcétera
Una lectura recomendada es la edición 21 del revista "The Architecture Journal" de Microsoft: "Service Orientation - Today and Tomorrow" (pueden incluso decargarla como archivo pdf, para hacerlo click aqui).