![Mind Map: ARQUITECTURA SOA](https://www.mindmeister.com/image/xlarge/1431132210/mind-map-arquitectura-soa.png)
1. FUNDAMENTOS DE SOA
1.1. Encapsulación de la lógica en servicios
1.1.1. Para conservar su independencia, los servicios encapsulan su lógica dentro de un contexto bien definido. Cada servicio puede encapsular una tarea llevada a cabo en un único paso, o una tarea compuesta por varios pasos.
1.2. Relación entre servicios
1.2.1. Dentro de SOA, los servicios pueden ser usados por otros servicios u otros programas. Para poder interactuar unos con otros, los servicios deben tener consciencia de la existencia del resto de servicios. Esto se consigue a través del uso de descriptores de servicio.
1.3. Comunicación entre servicios
1.3.1. Una vez que un servicio manda un mensaje, éste pierde el control de lo que le pase a ese mensaje. Por ello es necesario que los mensajes existan como ‘unidades de comunicación independientes’. Esto quiere decir que, como los servicios, deben ser autónomos.
1.4. Diseño de los servicios
1.4.1. Acoplo débil: Los servicios mantienen una relación que minimiza dependencias y únicamente se necesita que tengan en cuenta la existencia de los otros servicios.
1.4.2. Contrato de servicio: Los servicios se adhieren a un acuerdo de comunicaciones, definido colectivamente por uno o más descriptores de servicio.
1.4.3. Autonomía: Los servicios tienen control sobre la lógica que encapsulan.
1.4.4. Abstracción: Más allá de lo que es descrito en el contrato del servicio, los servicios esconden del mundo exterior la lógica que implementan.
1.4.5. Reutilización: La lógica es dividida en servicios con la intención de promover la reutilización de los mismos.
1.4.6. Componibilidad: Colecciones de servicios pueden ser coordinadas y ensambladas para formar servicios compuestos.
1.4.7. Ausencia de estado: Los servicios minimizan la información retenida específica a una actividad.
2. SOA y la orientación a servicios son paradigmas de implementación agnóstica que pueden ser llevados a cabo con cualquier plataforma tecnológica adecuada.
3. CARACTERÍSTICAS DE SOA
3.1. Incrementa la calidad de servicio (QoS)
3.1.1. La capacidad de que las tareas sean llevadas a cabo de una manera segura, protegiendo el contenido de los mensajes. Permitir a las tareas ser llevadas a cabo de una manera fiable para que el envío del mensaje o de la notificación de fallo de envío esté garantizado. Requisitos de rendimiento para asegurar que los gastos asociados al uso de mensajes SOAP y procesado de XML no impidan la ejecución de una tarea.
3.2. Es esencialmente autónoma
3.2.1. El principio de autonomía de la orientación a servicios requiere que los servicios individuales sean tan independientes y autocontenidos como sea posible con respecto al control que tienen sobre su lógica.
3.3. Está basada en estándares abiertos
3.3.1. Quizás la característica más significativa de los servicios web es el hecho de que el intercambio de información está gobernado por estándares abiertos. Tras ser enviado desde un servicio web a otro, un mensaje viaja a través de un conjunto de protocolos globalmente aceptados y estandarizados.
3.4. Soporta diversidad en cuanto a proveedores
3.4.1. El uso de un Framework de comunicaciones abierto y estandarizado permite a los organizadores elegir el mejor entorno posible para una aplicación específica. Por ejemplo, sin tener en cuenta cuánto de propietario es un entorno de desarrollo, siempre que permita la creación de servicios web estándar, puede ser usada para crear una capa de interfaz de servicios no propietaria estableciéndose oportunidades de interoperabilidad con otras aplicaciones.
3.5. Promueve el descubrimiento
3.5.1. SOA soporta y anima al anuncio y descubrimiento de servicios por toda la empresa y más allá de la misma. Una SOA seria confiará en alguna forma de registro o directorio de servicio para administrar los descriptores de servicio.
3.6. Fomenta componibilidad
3.6.1. La componibilidad es una característica profundamente arraigada en SOA que puede ser llevada a cabo a diferentes niveles. Un ejemplo puede ser la división de un proceso de negocio en diferentes servicios, cada uno de los cuales es responsable de ejecutar una porción del proceso.
3.7. Promueve la reutilización
3.7.1. SOA establece un entorno que promueve la reutilización a muchos niveles. Por ejemplo, los servicios diseñados acorde con los principios de la orientación a servicios convienen que tengan en cuenta una posible reutilización, incluso si no existe necesidad de reuso en el momento del diseño. Colecciones de servicios que formen servicios compuestos pueden ser reutilizadas también por compuestos mayores.