【ハウツー】
OSGiにおけるサービスの作成、レポジトリへの登録、サービスの取得は開発者がプログラミングする必要がある。また、依存先のBundleが更新された際の対応(サービスを再取得する等)もプログラミングする必要がある。
SpringDMは、SpringFrameworkを利用する感覚でOSGiを利用することができるOSGiのラッパーのようなものである。Beanを宣言・DIする感覚でOSGiのサービスを登録・取得することができる(図2)。
SpringDMを使って作成するBundleには大きく以下の3つが必要である
1.は、通常のクラスやインタフェースなので特に説明は必要ないだろう。2.のBean定義ファイルには、Beanの定義に加えてOSGiのサービスの定義を記述する。例えば、hello-dm-service Bundleとhello-dm-web Bundleがあるとしよう(図3)。
プレゼン層のhello-dm-web Bundleは、サービス層のhello-dm-serviceが用意するサービスを利用する。
以下に、hello-dm-service BundleのBean定義ファイル (抜粋)を示す。
(2)で宣言したBeanをOSGiのサービスとして(1)で登録している。
以下に、hello-dm-web BundleのBean定義ファイル(抜粋)を示す。
hello-dm-service Bundleで登録したサービスを取得している。取得したサービスはhello-dm-web内のBeanにDIすることができる。
3.のマニフェストファイルには、Bundleのバージョン、シンボル名(ID)、公開するパッケージ、使用する他のBundleのパッケージなどを記述する。以下に、hello-dm-service Bundleのマニフェストファイルを示す(各項目の説明はOSGi Service Platform Core Specification※5の 3.2.1 Bundle Manifest Headers を参照願う)。
※5 http://www.osgi.org/Release4/Downloadからダウンロードできる。
(1)により、hellodm.serviceパッケージを公開していることが分かる。
以下に、hello-dm-service Bundleのマニフェストファイルの抜粋を示す。
(1)により、hellodm.serviceパッケージを使用していることが分かる。
技術を習得するには実際に使ってみるのが手っ取り早い。環境の構築手順を説明するので、興味のある読者は是非環境を作ってほしい。サンプル自体の解説は割愛させていただくが、読者自身でソースコードを解読してほしい。
1. SpringDMのサイトからspring-osgi-1.2.1-with-dependencies.zipをダウンロードして解凍する。以後、作成されたフォルダを"SpringDMインストールフォルダ"と呼ぶ。
2. 筆者が作成したファイルをダウンロードして(こちらをクリック)解凍する。フォルダ内のappとlibフォルダを"SpringDMインストールフォルダ"内にコピーする(libフォルダは上書きコピー)。
3. "SpringDMインストールフォルダ"内のlibフォルダに移動し、以下のコマンドを実行する。
java -jar org.eclipse.osgi-3.2.2.jar -console
上記コマンドにより、OSGiの実装であるequinoxが起動する。equinoxの操作についてはhttp://eclipse.org/equinox/documents/quickstart.phpを参照願う。
4. http://localhost:8080/hellodm/sayHelloにアクセスして以下の画面が表示されれば完了。
1. eclipseのJavaEE版をインストールする。
2.サンプルのソースをダウンロードして(こちらをクリック)ファイルを解凍する。
3.eclipseプロジェクトのフォルダが2つ作成されるので、既存のプロジェクトとしてインポートする。
4.クラスパス変数として、"SpringDM_INST"を作成し"SpringDMインストールフォルダ"を指定する。
問題が無ければコンパイルが成功するはずである。プロジェクト配下のbuild.xmlをantで実行すればBundle(jarファイル・warファイル)が作成れる。Bundleのインストールや更新はequinoxのWebサイトを参照願う。
* * *
最近、Javaにおける動的なモジュールへの関心が高まっている。主要なアプリケーションサーバ製品がOSGiに対応し始めているほか※6、JDK7で導入予定のJSR291やJigsawシステムなどOSGi以外の動きがある。本稿で、SpringDMを始めとした動的なモジュールへの関心を持って頂けたら幸いである。
※6 話題性の高いものの1つにSpringSourceが提供するdm Serverがある。
執筆者紹介
土岐孝平(TOKI Kouhei) - 現場指向
JavaEEを使用したエンタープライズ・システムの設計を得意とし、技術コンサルティングや教育講師に従事する。最近では、日本Springユーザ会やOracle WeblogicServer勉強会などの講師としても活躍する傍ら、雑誌記事も多数執筆する。
| 理研、脳・脊髄形成に必要な神経板湾曲の仕組みを解明 [20:16 5/25] |
| 京大、「慢性閉塞性肺疾患」患者の労作時呼吸困難は鍼治療が有効と実証 [20:08 5/25] |
| 120Hz SHVカメラ用イメージセンサーを使った撮像装置 - SHVフルスペック化へ [18:10 5/25] |
| 京大、視覚による物体認知は前頭前野からのトップダウン信号が重要と確認 [17:45 5/25] |
| 製品数の拡大だけでなくBCPの展開なども含めた総合力で事業の強化を図るTI [17:25 5/25] |
|
[SKE48]松井玲奈、17人ランクインで手応え「飛躍できている」 握手会に1万2000人 [13:12 5/27] ホビー |
|
【レポート】【2010年非オタ編】成功したと思う歴代深夜アニメランキング [13:00 5/27] ホビー |
|
[東京スカイツリータウン]1/2000の模型が登場 スカイツリーやオフィス、駅など精巧に再現 [12:00 5/27] ホビー |
|
【連載】これだけは要チェック! TOEIC(R)単語帳 第106回 今回のお題は…「afterward」 [12:00 5/27] キャリア |
|
【レポート】駆け出しイラストレーターのでこ、自分のDTPスキル不足を憂うの巻 [12:00 5/27] クリエイティブ |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。