1.5. OSGi バンドル


概要

OSGi を使用すると、アプリケーションをバンドルにモジュール化できます。各バンドルは、疎結合されており、動的に読み込み可能なクラス、JAR および設定ファイルのコレクションで、外部の依存関係を明示的に宣言します。OSGi では、バンドルが主要なデプロイメント形式です。バンドルは、JAR にパッケージ化されたアプリケーションであり、インストール、開始、停止、更新、および削除できます。

OSGi は、バンドルの開発向けに、動的かつ簡潔で、一貫性のあるプログラミングモデルを提供します。サービスの仕様 (Java インターフェイス) をその実装から切り離すことにより、開発とデプロイメントが簡素化されます。

OSGi バンドルの抽象化により、モジュールは Java クラスを共有できます。これは、再利用の静的な形式です。依存バンドルの開始時に、共有クラスが使用可能である必要があります。

バンドルは、OSGi マニフェストファイルにメタデータが含まれる JAR ファイルです。バンドルには、クラスファイルと、オプションで他のリソースおよびネイティブライブラリーが含まれます。バンドル内のどのパッケージが外部に表示されるか (エクスポートされたパッケージ)、およびバンドルに必要な外部パッケージ (インポートされたパッケージ) を明示的に宣言できます。

モジュールレイヤーは、バンドル間での Java パッケージのパッケージ化と共有、および他のバンドルからのパッケージの非表示を処理します。OSGi フレームワークは、バンドル間の依存関係を動的に解決します。フレームワークは、インポートおよびエクスポートされたパッケージと一致するようにバンドル解決を実行します。また、デプロイされたバンドルの複数のバージョンを管理することもできます。

OSGi でのクラスのロード

OSGi は、ツリーモデル (JVM で使用される) ではなく、グラフモデルをクラスのロードに使用します。バンドルは、ランタイムのクラス読み込みの競合なしに、標準化された方法でクラスを共有および再利用できます。

各バンドルには独自の内部クラスパスがあるため、必要に応じて独立したユニットとして機能できます。

OSGi でのクラス読み込みの利点は次のとおりです。

  • バンドル間でクラスを直接共有します。JAR を親クラ出力ダーにプロモートする必要はありません。
  • 競合することなく、同じクラスの異なるバージョンを同時にデプロイできます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.