EclipseやSpringで使われている基盤技術OSGiとは
【特集】Java本来の実力を引出すOSGi徹底解説
日立ソフトウェアエンジニアリング株式会社 一瀬成広
株式会社日立製作所 中央研究所 中野正樹
2009/5/12
今回の主な内容 ・ 日本企業も多数参加している「OSGi Alliance」 ・ OSGiはEclipseでどのように利用されているのか ・ 【特徴1】幅広い環境でソフトウェアの部品化を実現 ・ 【特徴2】オープンな仕様で実装も多く、ツールもある ・ 【特徴3】バージョンや依存関係、アクセス制御の管理 ・ もともとのターゲットである組み込み機器でも |
読者の皆さんは、「OSGi」という技術を耳にしたことはありますか?
ソフトウェア統合開発環境の1つ「Eclipse」のコア技術というとピンと来る方も多いと思います。本稿では、ここ数年さまざまなアプリケーションの(SpringやJBoss、GlassFishでも)基盤技術として採用されているOSGiについて解説します。
日本企業も多数参加している「OSGi Alliance」
OSGiを一言でいうと、「Javaモジュールの動的追加や実行を管理するための基盤システム」です。この基盤システムの仕様をOSGi Service Platform仕様として、非営利団体であるOSGi Allianceが規定しています。
このOSGiの仕様を規定するOSGi Allianceは、1999年に「Open Service Gateway Initiative」という名称で設立されました。「Gateway」という単語が示すとおり、設立当時は、家庭や小規模オフィス向けのゲートウェイ装置で動作するサービスプログラムの実行基盤を規定することを目的としていました。
ところが現在では、その対象を車載機器やモバイル端末、エンタープライズシステムと広げてきています。そのため、2003年からは「Open Service Gateway Initiative」という名称は廃止し、「OSGi Alliance」に変更しています。OSGi Allianceには、2009年4月の時点で、通信キャリアやITベンダ、電機メーカーなど、日系企業含め100社以上がメンバーとして参加しています。
OSGiはEclipseでどのように利用されているのか
OSGiの適用先として最も有名なのは、Java開発者におなじみのEclipseではないでしょうか。OSGiは、Eclipse 3.0以降のプラグインの仕組みとして採用されています。
プラグインの特徴は、なんといっても後から必要に応じて機能を追加できることです。Eclipse 2.x以前でもプラグインの仕組みは存在していましたが、OSGiを利用することでEclipseを再起動しないでも追加したプラグインを有効にできるようになりました。
このように、動的にプラグイン(Javaモジュール)を後から追加できるのがOSGiの大きな特徴の1つとなっています。また、動的にプラグインを追加できる機能を支える背景として、非常に優れたモジュールの管理機構が規定されています。
図1 OSGiフレームワークの仕組み |
次ページでは、具体的なバンドル(Javaモジュール)の作り方やOSGiの代表的な特徴を2つ解説します。
1-2-3 |
INDEX | ||
Page1 | ||
日本企業も多数参加している「OSGi Alliance」 OSGiはEclipseでどのように利用されているのか |
||
Page2 | ||
【特徴1】幅広い環境でソフトウェアの部品化を実現 【特徴2】オープンな仕様で実装も多く、ツールもある |
||
Page3 | ||
【特徴3】バージョンや依存関係、アクセス制御の管理 もともとのターゲットである組み込み機器でも |
Java Solution全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|