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標準
*  (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)