OSGi

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