BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Bundle.update: NetBeans と OSGi

Bundle.update: NetBeans と OSGi

原文(投稿日:2010/02/22)へのリンク

前回の Bundle.update 以降,NetBeans の新しいマイルストンに組込 OSGi バンドルのサポートが追加された。今週の London OSGi DevCon で話題になることは確実だ。それから ECF 3.2 のリリース。そして DVCS (Distributed Version Control System,分散バージョン管理システム) の世界では,EGit/JGit に大きな進展があった。

NetBeans 6.9 M1 と OSGi

NetBeans 6.9 マイルストン1 がリリースされた。注目の新機能 (new and noteworthy) として Netigso が発表されている。これまでは実験的機能として,コア・プラットフォームの一部にバンドルされていたものだ。

Netigso には Apache Felix のランタイムが組み込まれていて,OSGi バンドルを IDE のプロセス内で実行することができる。例えば,OSGi アプリケーションである GlassFish を NetBeans プロセス内部で動作させるようなことも可能だ。

さらに NetBeans モジュールから OSGi コンポーネントをラップして呼び出すことや,その逆の処理を可能にするようなシム(埋め木)も提供される。ただし NetBeans のモジュールシステムが置き換わるわけではない。2つのモジュールシステムが並存する,という表現が正しいだろう。

実験的機能ではあるが,OSGi を NetBeans モジュールシステムの基本ランタイムとして使用するNetBeansInOSGI というものもある。 NetBeans のモジュールがそのまま使用できて,コードの再コンパイルも不要だが,個々のモジュールは独自のランタイムではなく OSGi ランタイムになる。

先日リリースされた Eclipse 3.6M5,そして IntelliJ ユーザに OSGi 開発機能を提供する Osmorc プラグイン を合わせて,これですべての主要 IDE がインストール時点から OSGi 開発をサポートすることになる。

OSGi DevCon

今週は OSGi DevCon LondonJAX London が同時開催される。日程はここで確認できる。火曜日の 20:00 から 22:15 には JAX コミュニティナイト が開催される。参加自由だが,JAX の方に参加しない人は別途登録が必要だ。

カンファレンスの幕開けには,Kirk Knoernschild 氏によるキーノート “企業における OSGi” が予定されている。その プレビュー資料 で氏は,コード行数が7年ごとに倍になっている,と強調している。

ここでちょっと見方を変えて,その意味するところを今後の7年間に当てはめてみましょう。つまりそれは,2010 年から 2017 年の間に,これまで書いたものの合計と同じ量のコードを私たちが作り出す,ということなのです!

  • Spring フレームワークがリリースされた 2002 年から,2008 年の Spring フレームワーク リリース 2.5 までの間に,コード行数は 500% 以上増加している。
  • FreeBSD のコード行数は 2002 年にはざっと 800 万行であったが,2009 年には 1,600 万行近くに達している。
  • Linux カーネルには 2004 年時点で約600万行のコードがあったが,2009 年にはおよそ 1,200 万行までになった。

要するにコード量は増加の一途である,ということである。複雑性を管理しないことには,問題は大きくなるばかりだ。そして,モジュール化 (modularity) こそがその答なのだ。

ちなみに OSGi DevCon では,Java Persistence API や dm サーバ などと共に, OSGi の重要性が分からない人たちのためのチュートリアルも用意されている。

ECF リリース 3.2 とリモートサービス

先週 Scott Lewis 氏が発表した とおり,ECF (Eclipse Communication Framework) 3.2 がリリースされた。Eclipse ダウンロードページ から入手可能になっている。ECF は P2 アップデートマネージャの HTTP ダウンロードなど,Eclipse と外部との通信の基本になるものだ。

今回リリースのビッグニュース は,OSGi サービスによって VM 間の通信を実現する,OSGi 4.2 リモートサービス API のサポートだ。この通信には コンフィギュレーションプロパティ service.remote.interfacesservice.exported.config 以外の追加コードを必要としない。まもなく現れる Modular Java シリーズの話題は,OSGi リモートサービスの利用に集中することだろう。

ECF ではこの他にも,REST ベース API への非同期アクセス,クライアント側要求のロードバランシング,そして Google Wave プロトコルへの早期アクセス,などの通信サービスが提供される。

EGit/JGit 早期アクセス

DVCS 人気の高まりとともに,Eclipse でも GitHg への機運が高まっている。2つの実装はともに要求への反応が早く,更新も頻繁だが,Eclipse がホストしていて Eclipse 更新用サイト も用意されているのは EGit の方だ。(HgEclipse にも アップデートサイト はあるが,Eclipse.org ではなく JavaForge に置かれている)

EGit は Eclipse の UI プロバイダであって,実際の処理はその下にある JGit が行っている。OSGi バンドルであるので,他の OSGi ランタイムに組み込んで Git サポートを提供することが可能だ。(例えば NetBeans の新しい OSGi システムにも使用できる。) 分散コンフィギュレーション情報を獲得,共有する必要のある OSGi ランタイムがあるなら,分散と更新のメカニズムとして Git を利用できるかも知れない。

DVCS を利用したことはないが詳しく知りたい,という方には,私が以前に書いた Eclipse ユーザ向けの Git のブログ記事がある。そこでは DVCS と Git の世界へやさしく招待すると同時に,SVN や CVS など,これまでの CVCS との違いについても説明している。また Ekke 氏が Git と Mercurial のチュートリアルのシリーズ を,Lars Vogel 氏が Git によるバージョン管理のチュートリアル を,それぞれ発表している。どちらも Eclipse での Git の 使用に関するものだ。

この記事に星をつける

おすすめ度
スタイル

BT