Liberty: Arquitectura
Liberty es un entorno de ejecución dinámico y altamente configurable. Se utilizan los servicios OSGi para gestionar los ciclos de vida de los componentes y la inyección de dependencias y configuraciones. El proceso de servidor consta de una sola JVM, el kernel de Liberty y cualquier número de características opcionales. El código de característica y la mayor parte del código del kernel se ejecuta como paquetes OSGi dentro de una infraestructura OSGi. Las características proporcionan los modelos de programación y servicios necesarios para las aplicaciones.

El Launcher del kernel inicia la rutina de arranque del sistema e inicia la infraestructura OSGi. Se analiza la configuración y, a continuación, el gestor de características carga las características configuradas. El kernel hace un amplio uso de los servicios OSGi para proporcionar un entorno de ejecución muy dinámico. El servicio de administración de configuración OSGi gestiona la configuración del sistema, y un componente de Servicios declarativos de OSGi gestiona el ciclo de vida de los servicios del sistema. El servicio de supervisión de archivos detecta los cambios en los archivos de configuración y de aplicación, y el servicio de registro cronológico graba mensajes e información de depuración en el sistema de archivos local.

Las características se especifican en los archivos de configuración del sistema, que son el archivo server.xml y cualquier otro archivo incluido. Los archivos de configuración del servidor rellenan el servicio de administración de configuración OSGi, que inyecta la configuración de las características en el servicio del gestor de características. El gestor de característica correlaciona cada nombre de característica con una lista de paquetes que proporcionan la característica. Los paquetes se instalan en la infraestructura OSGi y se inician. El gestor de características responde a los cambios de configuración añadiendo y eliminando dinámicamente las características mientras se ejecuta el servidor.

Los servicios de tiempo de ejecución proporcionan valores predeterminados de configuración, para que la configuración que debe especificar se mantenga en el mínimo. Puede especificar las características que necesita, junto con cualquier adición o alteración de los valores predeterminados del sistema, en un archivo server.xml. Puede elegir la estructura de su configuración en varios archivos separados que se enlazan con el archivo padre server.xml utilizando una sintaxis "include". Durante el arranque del servidor, o cuando el usuario modifica los archivos de configuración, la gestión de configuración del kernel analiza la configuración y la aplica sobre los valores predeterminados del sistema. El conjunto de propiedades de configuración que pertenece a cada servicio se inyecta en el servicio cada vez que se actualiza la configuración.

El componente de servicios declarativos de OSGi se utiliza para que la función se pueda descomponer en servicios discretos, que se activan sólo cuando es necesario. Este comportamiento ayuda a que el entorno de ejecución sea "tardío y poco diligente", lo que mantiene pequeño el tamaño y rápido el inicio. Los servicios declarados se añaden al registro de servicios OSGi y se pueden resolver las dependencias entre servicios sin cargar las clases de implementación. La activación del servicio se puede diferir hasta que se utilice un servicio: cuando se resuelve la referencia de servicio. La configuración de cada servicio se inyecta a medida que se activa el servicio y se vuelve a inyectar si posteriormente se modifica la configuración.