2010 年 1 月初め、SpringSource は dm Server が Eclipse プロジェクトに参入し、Java モジュール化の新年の第一章が始まると発表しました。 OSGi はここ 1 か月にわたって成長を続けており、2010 年が Java モジュール化の年になることを示しています。
InfoQ からのニュース: 2010 年 1 月の Java モジュール化に関する最新の進捗状況。 (原題:「Bundle.update: A Year of Modularity」 http://www.infoq.com/cn/news/2010/01/year-of-modularity )
51CTO 編集者の推奨事項: OSGi 入門
dm サーバーが Eclipse に移行されました
最大のニュースは間違いなく Eclipse Virgo プロジェクトの提案です (51CTO 関連レポートはこちらを参照してください)。現在の dm サーバーのバージョンは 2.0.0 です。つまり、次の 2.1 バージョンは Eclipse で開発およびリリースされることになります。
既存のプロジェクトと新しい提案の大きな違いの 1 つはプロトコルです。これは、dm Server が将来的には現在の GPL ではなく、ビジネス慣行に適した EPL に基づく契約になることを意味します。目的は、ソフトウェア開発へのこのアプローチを奨励しながら、コミュニティへの貢献を促進することです。
現在のエンタープライズ OSGi と dm Server は多くの人々の関心を呼び起こしており、それらを中心としたイノベーションが止まることはありません。この関心は、OSGi サービス プラットフォームの動的モジュール機能への準拠を必要とする早期導入者やプロジェクトの間で特に高くなります。しかし、主流の開発チーム (エンタープライズ アプリケーションをできるだけ早く、より少ないトラブルで構築したいと考えているチーム) にとって、エンタープライズ OSGi の導入にかかる現在のコストは、短期的なメリットを超える可能性があります。この問題は、エンタープライズ OSGi が主流のエンタープライズ アプリケーション開発方法の事実上の標準になる前に考慮する必要があります。
OSGi と Equinox を紹介する新しい本が出版されました
OSGi と Equinox を紹介する新しい本が今週出版されました。これは Eclipse RunTime シリーズの最初の本でもあります。この本では、OSGi を使用してモジュール式 Java アプリケーションを構築する方法を紹介します。この本の例は Equinox に基づいていますが、他の OSGi プラットフォームで開発したい開発者にとっても有益です。
また、この本には、特定のサンプル コードを通じてシリーズの後続の書籍への道を開くことを目的として、最初から最後まで Toast サンプル プロジェクトが実装されています (これにより、この書籍を読んだ開発者がすぐに他の書籍を開始できるようになります)。この本は 4 部に分かれており、第 1 部では OSGi の概要、次に Toast サンプルの構築ガイド、第 3 部では OSGi の詳細を詳しく説明し、最後に参考文献を記載しています。
ECFリモートサービス開発完了
最近、Eclipse Communications Framework プロジェクトは OSGi リモート サービス仕様を実装しました。これにより、REST、WS-*、JMS、XMPP、Skype、ECF 汎用実装など、さまざまな異種プロトコルを介して VM 間で OSGi サービスを接続できます。
それだけでなく、ZeroConf、SLP、静的なファイルベースの検出など、さまざまな検出メカニズムがあります。
OSGi リモート サービスの Apache Felix 実装 (Apache CXF) もリリースされており、これは OSGi のリファレンス実装でもあります。ただし、この実装は WS-* トランスポート層を介したアクセスに重点を置いており、ECF はトランスポート層から独立しています。実装に関係なく、エンドユーザーと開発者が使用する API は同じです。これにより、ユーザーは実行時に実装を置き換えることができます。
エンタープライズ専門家グループの作業は完了に近づいています
最近、Peter Kriens 氏は、OSGi Enterprise Expert Group が間もなく完成すると発表しました。Enterprise Expert Group ドラフト 4 も少し前にリリースされました。これは、多数の Java EE 機能を提供します。最終バージョンは、OSGi DevCon と EclipseCon が開催される今年 3 月にリリースされると予想される理由があります。
EEG は、OSGi を介した JNDI スタイルの検索のための新しいクエリ メカニズムを提供し、JMX を使用して OSGi ランタイム、JTA、JPA、および DataSource を介したデータベース アクセスを管理し、リモート サービスとサービス コンポーネント アーキテクチャの管理も提供します。さらに、Web アプリケーション バンドルを WAR などのコンテナにインストールできるように、新しいデプロイメント バンドル: WAB がリリースされます。 InfoQ は、EEG の結果が発表され次第、詳細な報道を提供する予定です。
WebSphereがアルファ版をリリース
IBM WebSphere はしばらく OSGi に基づいて開発されており、最近 OSGi アプリケーションのアルファ版をリリースしました。このアプリケーションは Apache Aries に基づいており、OSGi Blueprint コンテナー (SpringSource によって提案された Eclipse Gemini と同様) が含まれています。これらのプロジェクトはすべて、エンタープライズ エキスパート グループの焦点でもある JNDI と JTA が直面する問題の一部を解決することを目的としています。
これらのコンテナは、複数のアプリケーションに対応できるように OSGi ランタイムの境界を拡張しています。将来的には、アプリケーションは OSGi Nested Frameworks を通じて分割される予定です (Web アプリケーション サーバーが WAR を分割する方法と同様)。ただし、Web アプリケーション サーバー (WAR は完全に分離されており、コードを共有できません) とは異なり、WAB は OSGi ランタイムを統合できるため、プライベート バンドルやサービスを使用するのと同じくらい簡単にコードとサービスを共有できます。
Tycho は Maven を使用して OSGi を構築します
最近、Sonatype は新しいバージョンの Maven 3 を使用して Tycho 0.6.0 をリリースしました。 Tycho は、Maven POM に依存関係が存在すると仮定するのではなく、OSGi Manifest.MF に基づいて依存関係を推論できる Maven ビルダーのセットです。これにより、POM ファースト (マニフェストが自動的に生成される場合) またはマニフェストファーストのいずれかで OSGi バンドルを作成できます。
Maven を使用するほとんどの OSGi 開発者 (Apache Felix の開発者など) は POM ファーストの開発方法に慣れていますが、マニフェストファーストの開発方法はこれを補足するものであり、Eclipse PDE (プラグイン開発) を通じてさらに高度なものにすることができます。環境)。OSGi バンドルを簡単に開発できます。
多くの Eclipse プロジェクトの中で、EGit とインキュベーション プロジェクト Tiger Stripe は、Ant ではなく Maven を使用して構築されています。
Maven プロジェクトは、大規模なリファクタリングが行われ、Google Guice を使用する Maven 3 に向けて移行しています。さらに、Maven リポジトリ (Sonatype によって管理) の成功は、複数の依存関係を持つ Java 開発が難しくないことを証明しています。また、OSGi バンドル リポジトリ (OBR や SpringSource リポジトリなど) を使用する人も増えており、さまざまなプロバイダーに分散できます。現在、OSGi リポジトリの統合セット (Nexus の助けを得て Tycho が使用) を提供するというテーマで探索的研究が進行中です。実験リポジトリは、bundles.sonatype.org および osgi.sonatype.org にあります。将来の目標は、複数の形式 (OBR、P2 など) へのアクセスを提供し、OSGi バンドルを Maven JAR と同じくらい簡単に使用できるようにすることです。
軽快かつ上品
OSGi バンドルを取得するだけの場合は、OSGi バンドル パーサーを使用することをお勧めします。最近、Paremus は、OSGi バンドルを取得およびダウンロードするためのパーサーである Nimble をリリースしました。
Paremus は、POSH (Paremus OSGi シェル) を Nimble パーサーにバインドします。このようにすると、同じコマンド セットを使用して一般的な OSGi フレームワークを初期化および管理できます (これにより、Felix、Equinox、および Knopflerfish のテストが簡素化されます)。また、Nimble の助けを借りて、Dave として OSGi ランタイムを迅速に開始できます。サベージはナレーションでこう言った。次の 2 行のコマンドを使用して、Spring ベースの OSGi Web アプリケーションをインストールして実行できます。
posh -kc "repos -l springdm;add org.springframework.osgi.samples.simplewebapp@active " open http://localhost:8080/simple-web-app/興味のある読者は、DZone の Nimble についてさらに詳しく学ぶことができます。
OSGi UK ユーザー グループと OSGi DevCon London
OSGi UK ユーザー グループは繁栄しており、100 名を超えるメンバーがいます。最新の講義は、Marcel Offerman (Luminis 社) と Graham Charters (IBM 社) によるものです。講義に関連するビデオや資料は数日以内にウェブサイトに掲載される予定です。
講演の最初の部分は、リモートを含む複数のデバイスでの OSGi の使用を簡素化することを目的としたインキュベーション プロジェクト Apache ACE の紹介でした。
再利用可能なコンポーネントからソフトウェアを組み立てるプロセスにおいて、解決するのが最も難しい問題は、増え続ける接続デバイスにソフトウェアを展開する方法です。デバイス上のソフトウェア スタックが異種であり、同時に異なるコンポーネントが必要な場合、状況はさらに悪化します。この講義では、Apache ACE (オープンソースの OSGi ベースのソリューション) に基づいてソフトウェア コンポーネントをさまざまなタイプのデバイスに配布する方法を紹介し、携帯電話からクラウド内のノードまですべてをカバーします。
Apache Ace プロジェクトは、昨年初めに Luminis から寄贈されたソフトウェアをベースにしており、このソフトウェアは、船上レーダー システム、フィールド X 線装置、CMS ソフトウェアのアップデートとプロトコル管理、空港の手荷物取り扱いなど、多くの実際のプロジェクトに適用されています。システム。
2 番目の講義では、Apache Tuscany を例として、OSGi リモート サービス (OSGi 4.2 に既に含まれています) と、それがサービス コンポーネント アーキテクチャ (SCA) とどのように対話するかを紹介しました。
Javaのモジュール化の概念と現状の概要
OSGi および WebSphere アプリケーション例の包括的な概要
アプリケーションサーバーがOSGiに賭けたため、SunのJSR 294が停止
質問に答えるためのモジュール化プログラミングの利点と実装原則の概要: JSR 294、可視性と使いやすさ。
OASIS は、Service Component Architecture (SCA) 仕様の開発に取り組んでいます。 SCA は、多数の実装テクノロジ (EJB、BPEL、C++、COBOL など)、バインディング (Web サービス、JMS、IIOP など)、およびポリシー (WS-Policy など) にわたる異種 SOA プログラミング モデルを提供します。
講演では、OSGi リモート サービスとサービス コンポーネント アーキテクチャ テクノロジについて簡単に紹介し、その後、OSGi アプリケーションがリモート サービスを通じて複数の SCA 実装テクノロジ、バインディング、およびポリシー フレームワークにアクセスできるように、この 2 つを統合する方法について説明しました。
今後の OSGi DevCon London および JAX London カンファレンスのスケジュールが発表されました。このオファーは今日で終了しますが、OSGi UK ユーザー グループのメンバーは追加の割引を受けることができます。
要約する
ますます大規模なサーバー システムで OSGi が採用されることは明らかであり、同時に OSGi が中小規模のシステムにも導入され始めるでしょう。ビルド ツールが進化し続けるにつれて、開発者はさまざまな IDE で OSGi バンドルを開発できるようになり、同時に OSGi バンドルを共有するための新しいリポジトリも登場し、モジュール式 Java アプリケーションの開発がますます簡単になるでしょう。これに基づいて、Kirk Knoernschild は次のように主張します。2010 年は Java モジュール化の年になるでしょう。