OSGi:Apache FelixとApache Karafの違いは何ですか?


131

Apache KarafApache Felixのサブプロジェクトです。「軽量なOSGiコンテナ」として定義されています。

ヘビーウェイトをいつ使用すべきか、いつ軽量を使用すべきかわかりません。彼らのサイトはこれをあまり説明していません。

回答:


209

「軽量のOSGiコンテナー」ラベルは、FelixではなくKarafとより機能の豊富なOSGiコンテナーを対比しています。

ここからギヨーム・ノデ(カラフの作者)を引用するには

Felixは単なるOSGiコアランタイムです。Karafは、コンソール、SSHリモーティングメカニズム、ファイルデプロイヤなどの他の機能を追加することにより、Felixに基づく「配布」を提供します。

Karafアーキテクチャのこの図では、Felix(または他のOSGi実装-現在Equinoxもサポートされています)がOSGiボックスであり、他のボックスはKarafによって追加された機能です。

Karafアーキテクチャ したがって、Karafが満たしていない特定のニーズがない限り(基礎となる実装へのアクセスが必要です)、「すぐに」使用できるため、通常これを使用することは理にかなっています。


5
OSGiコンテナの優れた機能の1つは、必要なバンドルだけを選択してコンテナにデプロイできることです。したがって、私のアドバイスは、最初にアプリケーションを設計してから、必要なものを選択することです。「機能が豊富なのでプラットフォーム全体をインストールするだけ」というアドバイスは、巨大なJava EEアプリケーションサーバーに戻るようなものです。ここで、Apache Karafがそれらと同じくらい大きいと言っているのではなく、実際に必要なものをデプロイできること、およびデプロイする必要があることを指摘しています。
Marcel Offermans 2014

1
この回答は、Felixをアプリケーションに埋め込む(Karafなどのコンテナーを使用する必要がない)ユースケースについて言及していないため、不完全であるようです-たとえば、プラグイン機能を提供するために-これは私の解釈です次のリンク。私が間違っている?(私は専門家だ。)リンク:felix.apache.org/documentation/subprojects/...
Jウッドチャックを

6

@Marcel Karafは、Java EEサーバーのようにモノリシックでも巨大でもありません。これは非常にスリムで最小限の実装です。これは、基本的なコンソール、実際に構成ファイルを読み取れるようにファイルをロードすることなど、多くの機能を持たないコア製品です。最新のzipファイルは19.1 MBです。うん。小さい。小さなデバイスで簡単に実行でき、組み込みで動作します。

あなたが考えているのは、コア/カーネルとしてKarafを使用するServiceMixのようなものです。ただし、CXF、ActiveMQ、Camel、その他のライブラリが完全な構成で含まれています。それでも、最小、中、フルサイズがあります。

実際、99%のプロジェクトでは、直接Felixから始めてKarafを使用しないのは意味がありません。


-1

現在、3つの人気のあるオープンソースOSGiコンテナーがあります。

  - Equinox. It is the modular Java runtime at the heart of the Eclipse IDE,
  - Knopflerfish, Is an open source implementation of the OSGi R3 and OSGi R4 specifications. 
  - Apache Felix. Is the open source OSGi container from the Apache Software Foundation.

http://www.javaworld.com/article/2077837/java-se/java-se-hello-osgi-part-1-bundles-for-beginners.html

Apacheプロジェクトは、Felixと呼ばれる汎用のOSGiコンテナーを維持しています。ここはServiceMixとして使用され、

ServiceMixとKarafの主な違いは、ServiceMixが他の統合コンポーネント(ActiveMQメッセージブローカー、Camelルーティングエンジンなど)をバンドルしていることです。

一致http : //kevinboone.net/osgitest.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.