SISTEMAS DISTRIBUIDOS BASADOS EN COORDINACIÓN Concepto Un sistema distribuido basado en coordinación tiene como objetivo la cooperación y la comunicación entre componentes (servicios, objetos, módulos) del sistema distribuido. Estos tipos de sistemas poseen una taxonomía (estructura) para su funcionamiento que se puede aplicar de forma general otros sistemas. Esta taxonomía se basa en dos tipos de desacoplamiento para realizar la coordinación: Desacoplamiento referencial: Este tipo de desacoplamiento se da cuando no se requiere que los componentes que intervienen en una determinada tarea o actividad estén en funcionamiento. Desacoplamiento temporal: Este tipo de desacoplamiento se da cuando se requiere que los componentes que intervienen en una determinada tarea o actividad estén en funcionamiento. El siguiente cuadro explica la taxonomía que se debe implementar dependiendo el sistema. Arquitectura Desde sus comienzos el proyecto JINI (actualmente se conoce como Apache River) que está basado en el lenguaje java es pionero en este tipo de sistemas brindando una arquitectura que resolvió los principales problemas de las arquitecturas modernas SOA debido a que JINI basa su arquitectura en la flexibilidad y el desacoplamiento de los servicios que se puede ofrecer un sistema distribuido. Esta arquitectura se basa en 6 capas, la primera es la capa física por así decirse que es donde está la plataforma y arquitectura del sistema operativo, la segunda es la capa del lenguaje java que es de tipo desacoplado ya que se puede adaptar a las diferentes plataformas de los sistemas operativos, la tercera es el middleware RMI (invocación de métodos remotos) encargado de interactuar con la plataforma de java, la cuarta son dos protocolos que interactúan con la capa siguiente look up. Discovery: Es el protocolo encargado de encontrar un servicio en la red local. Ya sea para un cliente o un servicio. Join: Es el protocolo encargado del registro de un cliente o un servicio a un servicio de look up. Estos dos protocolos trabajan en conjunto para brindar el desacoplamiento de componentes que se mencionó antes. La quinta es la capa de Look up que es donde está almacenado el estado de un servicio a través de unos atributos que posee como el nombre, el estado (activo/inactivo), el identificador, el tipo de servicio…. La sexta es la capa donde está el javaspace (memoria compartida distribuida) y otros servicios que se le pueden agregar a la arquitectura. Proceso El siguiente es el proceso que se lleva a cabo en la arquitectura. Join/Discovery. Look up.