OSGi
OSGi Alliance, ранее известная как Open Services Gateway initiative (инициатива доступа к открытым службам) — организация открытых стандартов (Open Standards Development Organization — SDO). В течение последних нескольких лет она разрабатывала основанную на Java сервисную платформу OSGi (также известна как The Dynamic Module System for Java), которая могла управляться удалённо. Основная часть этой разработки — фреймворк (каркас), который определяет модель жизненного цикла приложения и служебного реестра. OSGi (Open Services Gateway Initiative) — спецификация динамической модульной системы и сервисной платформы для Java-приложений, разрабатываемая консорциумом OSGi Alliance. Спецификации дают модель для построения приложения из компонентов, связанных вместе посредством сервисов[3]. Суть заключается в возможности переинсталлировать динамически компоненты и составные части приложения без необходимости останавливать и перезапускать его. Круг применений данной спецификации довольно широк: изначально разрабатывалась для создания встроенных систем (в частности, для автомобилей BMW, также в разработке спецификации активно участвует Siemens), но сейчас на базе OSGi строят многофункциональные автономные настольные приложения (например, Eclipse SDK) и корпоративные системы. На основе этого фреймворка было создано огромное количество OSGi-служб:
Версии стандарта OSGi![]()
Существуют 4 реализации стандарта OSGi с открытым исходным кодом: На основе Equinox построена среда разработки Eclipse 3.0+, претендующая на звание отраслевого стандарта компонентной сборки программ. Смежные RFC и стандарты Java
Жизненный циклВ процессе жизненного цикла добавляются пакеты, которые могут быть динамически установлены, запущены, остановлены, обновлены и удалены. Связки полагаются на уровень модуля для загрузки классов, но добавляют API для управления модулями во время выполнения. Уровень жизненного цикла представляет динамику, которая обычно не является частью приложения. Для обеспечения правильной работы среды используются широкие механизмы зависимостей. Операции жизненного цикла полностью защищены архитектурой безопасности.
Ниже приведен пример типичного Java-класса, реализующего интерфейс BundleActivator: package org.wikipedia;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
public class Activator implements BundleActivator {
private BundleContext context;
@Override
public void start(BundleContext context) throws Exception {
System.out.println("Starting: Hello World");
this.context = context;
}
@Override
public void stop(BundleContext context) throws Exception {
System.out.println("Stopping: Goodbye Cruel World");
this.context = null;
}
}
См. такжеПримечанияЛитература
Ссылки
|
Portal di Ensiklopedia Dunia