OSGi

OSGi Alliance（従来の名称は Open Services Gateway initiative）は、1999年3月に設立された標準化団体。遠隔から管理できるJavaベースのサービスプラットフォームを定義している。この仕様の中心となるのは、アプリケーションライフサイクルのフレームワークとサービスレジストリである。そのフレームワークに基づいて、多数のOSGiサービスが定義された（ログ、構成管理、HTTPサービス（Java Servlet）、XML構文解析、機器アクセス、パッケージソフトウェア管理、基本パーミッション管理、ユーザー管理、I/O接続、結線管理、Jini、UPnP エクスポート、アプリケーション監視、宣言型サービス、消費電力管理、機器管理、セキュリティポリシー、診断/監視、フレームワーク階層化など）。

OSGi フレームワークの範囲 
このフレームワークは、スタンドアロンの Java/VM 環境に欠けている完全で動的なコンポーネントモデルを実装している。アプリケーションソフトウェアや（「バンドル; bundle」形式で配布される）コンポーネントは遠隔からインストール・起動・停止・（リブートせずに）アンインストールできる。Javaのパッケージやクラスの管理は詳細に規定されている。ライフサイクル管理は、遠隔から管理ポリシーをダウンロードすることでAPIを経由して行われる。サービスレジストリにより、バンドルが新たなサービスや消滅したサービスを自動検出して適切に対応する。

当初の目的はサービスゲートウェイの仕様だったが、適用範囲が広がっていった。OSGi の仕様は、携帯電話からオープンソースのEclipse IDEまで幅広く応用されている。他にも、自動車、ファクトリーオートメーション、ビル管理システム、携帯情報端末、グリッド・コンピューティング、エンターテインメント（例えば iPronto）、アプリケーションサーバなどに応用されている。

仕様策定プロセス 
OSGi の仕様はメンバーによりオープンな形で開発され、OSGi Specification License により配布後の変更も自由となっている。OSGi Alliance はメンバー企業向けに認証プログラムを実施している。2010年11月現在、認証されたOSGi実装は R4.0で6 例、R4 V4.2で3例である（list of certified）。

組織 
OSGi Alliance は1999年3月、サン・マイクロシステムズ、IBM、エリクソンなどにより設立された（それ以前に母体となった Connected Alliance という提携関係が存在した）。

2006年現在、25社以上が様々な業種から参加している（IBM、Bosh Software、ドイツテレコム、NTT、オラクル、レッドハット、日立製作所、 Adobe、Huaweiなど）。

各分野に委員会を設置しており、それぞれの分野の役員が選出されている。商業化に関しては別に委員会を設けており、それとは別に仕様策定は専門グループが行っている。

専門グループは、エンタープライズ、IoT、中核プラットフォームが現在活動中である。

コミュニティ 
2003年10月、ノキア、モトローラ、ProSyst などのOSGiメンバー企業が新たにモバイル専門グループ（Mobile Expert Group）を結成し、MIDPに基づいた新世代携帯電話向けのサービスプラットフォームの策定を行っている。ここでは、CLDCが管理できない部分への対応を行っている。この仕様は OSGi Release 4 の一部として公表されている。

2003年、Eclipseは、IDEプラットフォームおよびEclipse Rich Client Platformでのプラグイン・アーキテクチャの実行環境として OSGi 仕様を採用した。Eclipse には OSGi バンドル開発用ツールが含まれており、そのためのプラグインも各種用意されている（特に ProSyst と Knopflerfish が OSGi開発者向けの Eclipse プラグインを提供している）。

OSGi 仕様に関連したフリーソフトウェアの開発もされている。例えば、Equinox OSGi、Apache Felix、
mBS Equinox Editionなど。

仕様バージョン履歴 

 中核仕様
 OSGi Release 1 (R1): 2000年5月
 OSGi Release 2 (R2): 2001年10月
 OSGi Release 3 (R3): 2003年3月
 OSGi Release 4, Version 4.0: 2005年10月
 OSGi Release 4, Version 4.0.1: 2006年9月
 OSGi Release 4, Version 4.1: 2007年5月
 OSGi Release 4, Version 4.2: 2009年9月
 OSGi Release 5 (R5): 2012年6月
 OSGi Release 6 (R6): 2015年8月
 OSGi Release 7: 2018年4月

 モバイル仕様
 OSGi Release 4, Version 4.0.1: 2006年9月

関連情報入手先 
 Frequently Asked Questions
 ProSyst
 aQute: OSGi Info
 OSGi Users' Forums
 Makewave Japan

関連RFCおよびJava標準 
 RFC 2608 (Service Location Protocol)
 Sun Jini™ (Java Intelligent Network Infrastructure)
 Sun JCP JSR-8 (Open Services Gateway Specification)
 Sun JCP JSR-232 (Mobile Operational Management)
 Sun JCP JSR-246 (Device Management API)
 Sun JCP JSR-249 (Mobile Service Architecture for CDC)
 Sun JCP JSR-277 (JavaTM Module System)
 Sun JCP JSR-291 (Dynamic Component Support for JavaTM SE)

関連標準規格 
MHP / OCAP
Universal Plug and Play (UPnP)
Universal Powerline Association
HomePlug
LONWORKS
CORBA
CEBus
EHS / CECED CHAIN
X10
Java Management Extensions

書籍 
 OSGi Service Platform, Release 3, IOS Press, ISBN 1-58603-311-5

関連項目 
Knopflerfish
Apache Felix
JPOX
EasyBeans
DataNucleus

外部リンク 
OSGi ユーザフォーラムJapan
OSGi web site General Information
Specification Download
OSGi Alliance Developer Site
Javadoc for Release 6
OSGi enRoute
OSGi Tutorial: A Step by Step Introduction to OSGi Programming Based on Knopflerfish
Getting started with OSGi: tutorials from EclipseZone
Belgian Java User Group video presentation on Spring OSGi by Costin Leau
OSGi and Gravity Service Binder Tutorial
ApacheCon EU 2006 presentation about OSGi best practices by Marcel Offermans.
Enterprise OSGi Professional Services (www.4enterprise.org)

標準化団体