Architettura liberty
Liberty è un ambiente di runtime altamente componibile e dinamico. I servizi OSGI sono utilizzati per gestire i cicli di vita dei componenti, e l'iniezione di dipendenze e configurazione. Il processo server comprende una singola JVM, il kernel Liberty e qualsiasi numero di funzioni opzionali. Il codice della funzione e la maggior parte del codice del kernel viene eseguito come bundle OSGi all'interno di un framework OSGi. Le funzioni forniscono i modelli di programmazione e i servizi richiesti dalle applicazioni.

Nella figura precedente, il runtime è un framework OSGI che contiene un kernel, una JVM, le funzioni Liberty e un contenitore che ospita due applicazioni.
Il launcher del kernel avvia il sistema e avvia il framework OSGi. La configurazione è paralizzata e poi le funzioni configurate vengono caricate dal feature manager. Il kernel utilizza estensivamente i servizi OSGi per fornire un ambiente di runtime altamente dinamico. Il Servizio OSGi Configuration Admin gestisce la configurazione del sistema e un componente OSGi Dichiarativo Services gestisce il ciclo di vita dei servizi di sistema. Il servizio di monitor dei file rileva le modifiche dei file delle applicazioni e della configurazione e il servizio di registrazione scrive messaggi e informazioni di debug al file system locale. Come mostra il diagramma di flusso, il kernel include un gestore di funzioni, un monitor di file, un servizio di registrazione e risorse OSGi per la gestione della configurazione e per la gestione dei servizi dichiarativi.

Nella figura precedente, il kernel Liberty comprende un feature manager che contiene un admin di configurazione OSGI, i servizi dichiarativi OSGI, un monitor di file e un servizio di registrazione. Il feature manager e i servizi dichiarativi OSGI sono collegati un bundle di feature. L'admin di configurazione OSGI e il monitor dei file sono connessi al file server.xml . Il servizio di registrazione è collegato al log di traccia.
Le funzioni sono specificate nei file di configurazione del sistema che sono il file server.xml e qualsiasi altro file incluso. I file di configurazione del server popolano il servizio OSGi Configuration Admin, che inietta la configurazione della funzione nel servizio del feature manager. Il feature manager associa ogni nome di funzione a un elenco di bundle che forniscono la funzione. I bundle sono installati nel framework OSGi e avviati. Il feature manager risponde alle modifiche di configurazione tramite l'aggiunta dinamicamente e la rimozione delle funzioni mentre il server è in esecuzione. Come mostra il seguente diagramma, il servizio OSGi Configuration Admin legge la configurazione dal file server.xml e inserisce la configurazione della funzione nel gestore funzioni. Il feature manager legge le liste bundle dai bundle che forniscono ogni funzione, poi installa e avvia questi bundle nel framework OSGi.

Nella figura precedente, un feature manager contiene un admin di configurazione OSGI. La configurazione OSGI admin legge la configurazione dal file server.xml e lo inietta nel feature manager. Il feature manager legge l'elenco bundle nel file useful-3.2.mf e installa e avvia un bundle di feature nel framework OSGI.
I servizi di runtime forniscono le impostazioni predefinite di configurazione in modo che la configurazione da specificare sia mantenuta al minimo. Specificare le funzioni necessarie, insieme a eventuali aggiunte o sovrascritture alle impostazioni predefinite del sistema, in un file server.xml . È possibile scegliere di strutturare la configurazione in un certo numero di file separati collegati al file server.xml principale utilizzando una sintassi include . All'avvio del server, o quando i file di configurazione dell'utente vengono modificati, la gestione della configurazione del kernel analizza la tua configurazione e lo applica sulle impostazioni predefinite del sistema. L'insieme delle proprietà di configurazione che appartengono a ciascun servizio viene iniettato nel servizio ogni volta che la configurazione viene aggiornata. Come mostra il seguente diagramma, L'amministratore di configurazione legge la configurazione predefinita da bundle nel kernel, applica la configurazione specificata dall'utente su questa configurazione predefinita, quindi inietta la configurazione unita in bundle di funzioni.

Nella figura precedente, la configurazione OSGI admin legge la configurazione predefinita dal bundle del kernel e il bundle di funzioni, unisce la configurazione degli utenti sopra i default e lo inietta nei bundle. La configurazione unita viene inviata al file server.xml e, facoltativamente, ad altri file XML.
Il componente OSGi Dichiarative Services viene utilizzato in modo tale che la funzione possa essere decomposta in servizi discreti, che vengono attivati solo quando necessario. Questo comportamento aiuta l'ambiente di runtime ad essere tardo e pigro, mantenendo la scarpa piccola e la startup veloce. I servizi dichiarati vengono aggiunti al registro dei servizi OSGi e le dipendenze tra i servizi possono essere risolte senza caricare le classi di implementazione. L'attivazione del servizio può essere ritardata fino a quando non viene utilizzato un servizio: quando il riferimento del servizio viene risolto. La configurazione per ogni servizio viene iniettata man mano che il servizio viene attivato, e viene reiniettato se la configurazione viene successivamente modificata.