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