Jboss-fuse-apache-karaf
JBoss Fuse-Apache Karaf
この章では、Apache Karafと、それが軽量OSGiコンテナと呼ばれる理由と、その利点およびその他の重要な機能について説明します。
JVMの問題
JVMまたはJava仮想マシンは、実際の仮想マシンとして機能しません。 内部で実行中のコンポーネントを即座に停止、開始、または再起動できるマシン。 クラスレベルでのホットデプロイが許可される場合がありますが、仮想マシンでアプリケーションのコンポーネントを再起動せずにデプロイまたはアンデプロイする方法はありません。
この問題を解決し、Javaアプリケーションのモジュール化を可能にするために、FuseはApache Karafと呼ばれるOSGiベースのランタイムを使用します。
OSGi
OSGiテクノロジーは、Javaの動的コンポーネントシステムを定義する一連の仕様です。 これらの仕様により、アプリケーションが(動的に)多くの異なる(再利用可能な)コンポーネントで構成される開発モデルが可能になります。
OSGiの利点
- 複雑さの軽減-アプリケーションは、実装の詳細を互いに隠し、複雑さを軽減するコラボレーションコンポーネントとして構築されます。
- 再利用性-多くのコンポーネントは、コンテナにデプロイされた同じコンポーネントを活用できます。
- 展開-OSGiは、コンテナを再起動せずに、ライフサイクル管理APIを使用して、コンポーネントのオンザフライでの起動、停止、更新をサポートします。
バンドルと機能
以下は、バンドルと機能の比較です。
バンドル
バンドルは、JVMに対するjarと同じOSGiと同等です。 バンドルは、OSGiコンテナーにデプロイ可能な成果物です。 バンドルは、一緒にまたは独立して動作してアプリケーションを形成するコンポーネントです。
これらのバンドルは、コンテナを再起動せずに、実行時にインストール、アンインストール、更新、開始、または停止できます。
特徴
機能は、複数のバンドルを一緒にデプロイする方法です。 バンドルをグループで展開する方が理にかなっている場合があります。 機能を使用すると、1つのコマンドでバンドルのグループを展開できます。
なぜ別のコンテナですか?
Apache KarafはOSGiベースのランタイムであり、アプリケーションバンドルが実行されます。 Fuseは、Apache Karafをランタイムとして使用し、バンドルが実行されて連携してビジネス機能を提供します。
Karafは、OSGiフレームワークであるFelixと分点の上に構築されています。
カラフアーキテクチャ
Apache Karafは、基本的なOSGiランタイムに次の追加機能を追加します。
ホット展開
Karafはホットデプロイメントをサポートしています。 これには、ホットデプロイディレクトリが含まれています。 このディレクトリに配置されたものはすべて、自動的にバンドルとしてKarafにデプロイおよびインストールされます。
ロギング
Karafは、 $ Fuse_home/data/log にあるすべてのバンドルのログを生成することにより、集中ログを提供します。 * $ Fuse_home/etcディレクトリ*の org.ops4j.pax.logging.cfg でロガー設定を編集できます。
管理コンソール
Karafは、実行中のfuseインスタンスと対話するための洗練された明快な管理コンソールを提供します。 また、実行時にコンポーネント(バンドル)を管理および監視するために使用できるコマンドのプリインストールセットも提供します。 このコンソールは拡張可能であるため、新しいバンドルをコンソールに追加することにより、新しいコマンドをコンソールに追加できます。
SSHアクセス
Karafでは、SSHを使用してこの管理コンソールにリモートアクセスできます。 有効な資格情報を持っている人は誰でもSSHターミナル経由でkaraf管理コンソールに接続できます。