Está en la página 1de 2

1.

Contratos de servicio estandarizados


Por un lado define el contrato, la interfaz del servicio, que nos
permite entre otras cosas que un servicio funcione como una caja
negra sin preocuparnos de cmo est implementado
internamente. Adems estos contratos estn estandarizados, es
decir, estn realizados con un lenguaje comn (unos tipos de datos
comunes) a los servicios del mismo dominio de negocio que permite
evitar las transformaciones entre los mismos en las llamadas entre
servicios.

2.

Servicios con bajo acoplamiento


Los servicios dependen lo mnimo posible los unos de los otros.
Incluso un cliente puede estar implementado en un lenguaje y
ejecutarse sobre una mquina con un sistema operativo, sobre un
servidor de aplicaciones, y en una mquina totalmente diferente a
donde se ejecuta el servicio

3.

Abstraccin
Aqu se pone el nfasis en ocultar los detalles internos de la
implementacin del servicio, para que podamos evolucionarlo
libremente sin afectar a los clientes. Evidentemente cuando ms
abstraido est un servicio, ms desacoplado estar.

4.

Reusabilidad
Es una de las justificaciones de SOA ms importante, mediante la
reutilizacin, logramos entre otras cosas, reducir el coste del
desarrollo.
Podemos decir que cuanto ms desacoplado est un servicio, ms
fcil ser reutilizarlo.

5.

Autonoma
Este concepto siempre me ha resultado un poco difuso. Digamos que
hace hincapi en que el servicio tiene control, o conocimiento, sobre
el entorno en el que se ejecuta.

6.

Sin estado
Este caracterstica va ms encaminada hacia el rendimiento y la
escalabilidad del servicio. Tambin, indirectamente, puede afectar al
desacoplamiento ya que normalmente para mantener la sesin o el
estado, el cliente tiene que guardar y enviar repetidamente un
identificador o token de sesin y eso acopla bastante.

7.

Capacidad de descubrimiento
Si no somos capaces de saber que existe el servicio que necesitamos,
difcilmente vamos a poder reutilizarlo. No parece que haya una
relacin directa con el desacoplamiento en este caso

8.

Composicin
La capacidad, muy importante, de que un servicio se pueda combinar
con otros para crear un servicio de ms alto nivel. Es decir, no
programamos nuevas lgicas si no que juntamos servicios ya
existentes.
Parece claro que para que podamos componer servicios junto otros,
stos deberan estar suficiente separados o desacoplados del
resto.