• No results found

RELIABILITY

In document Physician Practice Project (Page 161-165)

El acoplamiento, a nivel general, se refiere a las dependencias que se generan cuando cualquier cosa está conectada con otra [8]. Tendremos un alto acoplamiento o estrecho (en inglés tight) cuando exista un alto grado de dependencia, por el contrario tendremos bajo acomplamiento o flojo (en inglés loose) cuando la dependencia sea escasa. Como se puede observar, los términos alto o bajo tienen cierta ambigüedad y no es algo que se pueda cuantificar con exactitud.

40

En los servicios, existen dos vías principales de acoplamiento, tal y como se muestra en la Figura 25. Podemos hablar de acoplamiento en los servicios refiriéndonos a su relación con otros servicios, es decir, de forma externa entre el contrato del servicio y los consumidores del servicio, y también puede haber acoplamiento de forma interna, es decir, un acoplamiento entre el contrato del servicio y su implementación.

Fig. 25. Acoplamiento en los servicios. [8]

La implementación del servicio es la lógica de negocio del servicio (representado con un cuadrado) y el acceso a los datos necesarios por dicha lógica (representado con un cilindro). Veamos pues cada tipo de posible acoplamiento.

7.2.1 Acoplamiento entre los consumidores y el contrato (consumer-to- contract coupling)

Como no es posible obtener una independencia total, ya que esto implicaría que no hay relación entre los servicios, se obtiene la mínima dependencia generada entre servicios usando los contratos, tal y como se ha explicado en el principio de contrato estandarizado. El grado de acoplamiento vendrá determinado por el diseño del contrato, conseguiremos un bajo grado con operaciones bien definidas y estandarizadas que favorezcan servicios agnósticos como también se ha indicado en el principio de contrato.

41

Otro tipo de acoplamiento es el generado entre el contrato y la lógica implementada por el servicio. Este tipo de acoplamiento puede ser recíproco, es decir que puede haber acoplamiento entre el contrato y la lógica y viceversa, entre la lógica y el contrato (Figura 26).

Fig. 26. Acoplamiento entre el contrato del servicio y la lógica del servicio. [8]

7.2.3 Acoplamiento lógica-contrato (logic-to-contract coupling)

Este tipo de acoplamiento (Figura 27) se produce cuando se construye el contrato del servicio antes de su lógica. Esta estrategia se denomina contract-first, es decir, primero el contrato y posteriormente se generará la lógica en función de dicho contrato. Esta estrategia es muy efectiva debido a que aseguramos que el diseño estándar definido en el contrato es incorporado a la lógica de negocio del servicio [8].

Figura 27. Acoplamiento logic-to-contract. [8].

Aunque en la Figura 27 se indica que el acoplamiento es alto, éste es considerado un buen acoplamiento, debido al hecho antes mencionado de que trasladamos el diseño elaborado en el contrato a la lógica de negocio. Por otra parte, la lógica no está completamente acoplada al

42

contrato debido a que se podría reemplazar en el futuro la lógica del servicio sin afectar a los consumidores que han establecido relaciones de dependencia con el contrato del servicio, ya que no haría falta cambiar el contrato [8].

7.2.4 Acoplamiento contrato-lógica (contract-to-logic coupling)

Este tipo de acoplamiento es el caso opuesto al anterior, es decir, habiendo una lógica de servicio ya existente, se genera el contrato a partir de ella (Figura 28). Podría ser el caso de la generación de una capa de servicios a partir de componentes distribuidos tal y como hemos estudiado antes en la Figura 10. El contrato se generaría a partir de la lógica ya implementada por los componentes.

Fig. 28. Acoplamiento contract-to-logic. [8]

A diferencia del caso anterior, la lógica no depende del contrato, porque si ésta cambia, se debe generar un nuevo contrato. Como se observa pues, quien sí tiene un alto acoplamiento con la lógica es el contrato ya que su diseño depende completamente de la lógica. Esto implica que la estrategia contract-to-logic es un acoplamiento no deseado ya que el cambio de contrato puede causar problemas a los consumidores que dependen de dicho contrato, debiendo de realizar nuevos cambios cada vez que se realizan cambios en la lógica del servicio para adaptarlos a los nuevos cambios aparecidos en el contrato del servicio.

Retomando el ejemplo anteriormente mencionado sobre los servicios elaborados a partir de componentes, es posible que se genere un tercer tipo de acoplamiento en función de la tecnología utilizada en la implementación de estos componentes. Esto crea el acoplamiento contrato-tecnología que se explica a continuación.

43

Los contratos de los servicios elaborados a partir de componentes con tecnología propietaria (por ejemplo DCOM o CORBA) es posible que generen un alto acoplamiento con la tecnología en cuestión (Figura 29). Esto es debido a que estas tecnologías pueden llegar a imponer características específicas en los contratos [8].

Fig. 29. Alto acoplamiento en componentes con tecnología propietaria. [8]

Un ejemplo de este acoplamiento sería la imposición por parte de la tecnología en todos los contratos de un determinado protocolo de comunicación que podría ser propietario o no considerado como un estándar. Esto implicaría que los potenciales consumidores deberían soportar dicho protocolo para poder usar el servicio [8].

El concepto de bajo acoplamiento va íntimamente relacionado con el de la abstracción, ya que el bajo acoplamiento se consigue con niveles adecuados de abstracción en el diseño del contrato. A continuación veremos en detalle dicho principio.

In document Physician Practice Project (Page 161-165)