BT

POJO Service RegistryがOSGiをクラスパスに持ち込む

| 作者: Alex Blewitt フォローする 4 人のフォロワー , 翻訳者 南 伸二 フォローする 0 人のフォロワー 投稿日 2011年4月27日. 推定読書時間: 2 分 |

原文(投稿日:2011/04/20)へのリンク

Google Code上の新しいプロジェクトPojo Service RegistryはJavaアプリケーションにOSGiライト(OSGi-lite)メカニズムを、OSGiランタイムの外で提供することを目的としている。

OSGiはそのモジュラリティへの強固なアプローチで知られているが、時折複数のクラスローダーの使用(自動的にバンドルをインストール、更新、削除することができるようにするために必要)が平坦なクラスパスを仮定しているライブラリとの問題を引き起こす。しかしながら、OSGi μサービスモデルを背景にプログラミングする利点は、実装やクライアントがつながるためにその実装に対する予備知識を必要としないということにある。

Pojo Service Registryの狙いはOSGiサービスモデルの利点を、複数のクラスローダーや動的なバンドルを要求することなく得る方法を提供することである。同じAPIやシグニチャが利用されるが、PojoSRでサービスを見つけるために、OSGiのような方法でエクスポートされているどんなサービスに対してもクラスパスをスキャンする。加えて、バンドルアクティベーターはスタートアップ時にクラスパススキャニングの一部として自動的に開始される。

これはOSGiライトとして言及されてはいるけれども、OSGi名前空間とAPIが使い続けられるかどうかは今後の課題である。というのも公式なOSGi仕様の一部ではないからだ。一方で、このプロジェクトから多くのプロジェクトが触発され、このプロジェクトを選択したり、このプロジェクトと協力したりしようとしていて、その中にはGoogle App Engine上のFelixの実装なども含まれる。このデモアプリケーションがhttp://pojosr-demo.appspot.com/system/consoleで利用できる。

FelixをGoogle App Engine上で動かすことは見た目ほどシンプルなことではない。例えば、GAEはスレッドを作成することができない(し、OSGiフレームワークは本来マルチスレッドである)– が、わずかな規模の小さい修正(イベント通知フレームワークを同期化することなども含む)によって、ランタイムが起動できるようになっている。

また1つの別の側面は、クラスパスがクラスパス上のJARのセットをもとに計算されるため、(Bundle-ClassPathを使っている)ネストされたどんなバンドルも解決されないということである。このことから、組み込むか、インライン化したネストされた依存性のどちらがよいかという疑問を投げかけているものもいる – 議論はあるけれど、クラスパスが平坦であるPojoSRのアプローチでは、それはどちらも意味がなく、それ独自のバンドルとして依存性を外に出すかもしれない。

PojoSRによって、完全なOSGiのやり方に進むことなくOSGi μサービスを使う方向に移行することができ、XMLファイルの内容ではなく、クラスパスの内容に適合させてサービスを提供することができる。それが正式にOSGiアライアンスによって受け入れられ許容されるかどうかが残された課題である。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT