User Tools

Site Tools


wiki:arquitectura_basada_en_componentes_ossgi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
wiki:arquitectura_basada_en_componentes_ossgi [2024/11/11 13:51] adminwiki:arquitectura_basada_en_componentes_ossgi [2024/11/11 13:57] (current) admin
Line 67: Line 67:
  
  
-==== Capa de Módulo ====+===== Capa de Módulo =====
  
  
Line 77: Line 77:
  
  
-==== Capa de Ciclo de Vida ====+===== Capa de Ciclo de Vida =====
  
  
 La capa de ciclo de vida define cómo los **bundles** se instalan y gestionan dinámicamente en el marco OSGi. Si estuviéramos construyendo una casa, la capa de módulo proporcionaría los cimientos y la estructura, mientras que la capa de ciclo de vida sería el cableado eléctrico: hace que todo funcione. La capa de ciclo de vida define cómo los **bundles** se instalan y gestionan dinámicamente en el marco OSGi. Si estuviéramos construyendo una casa, la capa de módulo proporcionaría los cimientos y la estructura, mientras que la capa de ciclo de vida sería el cableado eléctrico: hace que todo funcione.
  
-{{:wiki:osgi_2.png?200|}}+{{:wiki:osgi_2.png?300|}}
  
 La capa de ciclo de vida cumple dos propósitos diferentes. Externamente a tu aplicación, la capa de ciclo de vida define con precisión las operaciones del ciclo de vida del *bundle* (por ejemplo, instalar, actualizar, iniciar, detener y desinstalar). Estas operaciones del ciclo de vida permiten administrar, gestionar y hacer evolucionar tu aplicación de manera bien definida. Esto significa que los *bundles* pueden ser agregados y eliminados del marco de manera segura sin necesidad de reiniciar el proceso de la aplicación. Internamente a tu aplicación, la capa de ciclo de vida define cómo los *bundles* acceden a su contexto de ejecución, lo que les proporciona una forma de interactuar con el marco OSGi y las facilidades que este proporciona durante la ejecución. Este enfoque general de la capa de ciclo de vida es poderoso, ya que permite crear aplicaciones gestionadas externamente (y de forma remota) o aplicaciones completamente autogestionadas (o cualquier combinación de ambas). La capa de ciclo de vida cumple dos propósitos diferentes. Externamente a tu aplicación, la capa de ciclo de vida define con precisión las operaciones del ciclo de vida del *bundle* (por ejemplo, instalar, actualizar, iniciar, detener y desinstalar). Estas operaciones del ciclo de vida permiten administrar, gestionar y hacer evolucionar tu aplicación de manera bien definida. Esto significa que los *bundles* pueden ser agregados y eliminados del marco de manera segura sin necesidad de reiniciar el proceso de la aplicación. Internamente a tu aplicación, la capa de ciclo de vida define cómo los *bundles* acceden a su contexto de ejecución, lo que les proporciona una forma de interactuar con el marco OSGi y las facilidades que este proporciona durante la ejecución. Este enfoque general de la capa de ciclo de vida es poderoso, ya que permite crear aplicaciones gestionadas externamente (y de forma remota) o aplicaciones completamente autogestionadas (o cualquier combinación de ambas).
 +
 +===== Capa de Servicio =====
 +
 +La capa de servicios soporta y promueve un modelo de programación de aplicaciones flexible que incorpora conceptos popularizados por la computación orientada a servicios (aunque estos conceptos formaban parte del marco OSGi antes de que SOA se hiciera popular). Los conceptos principales giran en torno al patrón de interacción orientado a servicios de publicar, buscar y enlazar: los proveedores de servicios publican sus servicios en un registro de servicios, mientras que los clientes de servicios buscan en el registro para encontrar los servicios disponibles que desean usar (ver Figura anterior). Hoy en día, SOA está en gran medida asociado con los servicios web, pero los servicios OSGi son locales a una sola máquina virtual (VM), razón por la cual algunas personas lo denominan "SOA en una VM".
 +
 +La capa de servicios de OSGi es muy intuitiva, ya que promueve un enfoque de desarrollo basado en interfaces, lo cual generalmente se considera una buena práctica. Específicamente, promueve la separación entre interfaz e implementación. Los servicios OSGi son simplemente interfaces Java que representan un contrato conceptual entre los proveedores de servicios y los clientes de servicios. Esto hace que la capa de servicios sea muy ligera, ya que los proveedores de servicios son simplemente objetos Java a los que se accede mediante invocación directa de métodos. Además, la capa de servicios amplía el dinamismo basado en *bundles* de la capa de ciclo de vida con dinamismo basado en servicios, es decir, los servicios pueden aparecer o desaparecer en cualquier momento. El resultado es un modelo de programación que evita los enfoques monolíticos y frágiles del pasado, a favor de ser modular y flexible.
 +
 +Como proyecto de ejemplo ver el siguiente repositorio: [[https://github.com/IS-LAB-EIC-UCN/osgi-tutorial]]
 +
wiki/arquitectura_basada_en_componentes_ossgi.1731343863.txt.gz · Last modified: 2024/11/11 13:51 by admin