web-dev-qa-db-ja.com

ApacheKarafとServicemix

Servicemixの代わりにKarafを使用している人はいますか?もしそうなら、どのようにしてこの決定に至ったのですか? ServicemixがKarafの周りに機能のレイヤーを追加していることを知っていますが、Karafが単独で使用されているかどうか、そしてその理由は...

23
Ben ODay

多くのアプリケーションにKarafを使用しています。すでにいくつかの異なるプラットフォーム(JBoss 4.2インスタンス、Tomcat、およびいくつかのFelixインスタンス)間の統合にCamel(JMSおよびEsper)を使用していましたが、これがうまく機能していたため、これも移行する理由はほとんどありませんでした( ServiceMixを検討してください)。

一部のFelixノードがある唯一の理由は、それらの使用が(クライアントデスクトップで)制限されており、更新が必要/更新されることはめったになく、これらのノードのフットプリントを最小にしたかったためです。サーバーサイドのOSGiには、Karafを使用しています。

Karafは、実稼働環境に期待および必要なすべての機能を提供します( Apache-karafタグの情報 を参照)。標準の最小限のフレームワーク(pax-examを使用)に対して開発とテストを行いますが、Karafにデプロイします。

ESB、JCA、BPELなどは必要ないが、堅固で調整可能なOSGiコンテナーが必要な場合は、Karaf自体で十分です。 (そして、ServiceMixの機能の限定されたサブセットが必要な場合は、いつでもKarafインスタンスにインストールできます)。

また、 Karafディストリビューションをカスタマイズする Mavenビルドの一部として-個人的には、アプリケーションのビルドの一部としてコンテナーを使用するのが好きです。コマンドラインからセットアップ全体をチェックアウト、ビルド、実行できるからです。最小限の時間。

最近、HazelCastを使用した Cellar というKarafのクラスタリングサブプロジェクトがあります。これがServiceMixにも当てはまるかどうかはわかりません。

27
earcam

Karafの人生は、ServiceMixコアとして始まりました。現在、ServiceMixは、実際にはKarafコンテナーにデプロイされるバンドルのセットです。 ServiceMixには、karafにはない多くの優れた機能を実行する非常に便利なバンドルが多数あります。とはいえ、ServiceMixを使用する2つの主な理由は、必要に応じて1)ESB、2)NMR(バンドルとKarafのインスタンス間でコミュニティを構築できる機能)です。

とはいえ、ServiceMixグループは現在バージョン5を計画しており、ESBおよびNMR機能を削除し、Camelの管理コンテナーになることに重点を置いています。 ESBでは、BPL(Business Process Language)を使用して記述できるコンポーネントを作成する際に多大な労力を費やしています。ただし、ServiceMixを作成した人々は、BPLとほぼ同じことを行うが、より標準化され、受け入れられている方法で行うEIP(Enterprise Integration Patterns)の実装に焦点を合わせ始めました。この作業はCamelプロジェクトの下で行われました。

つまり、要するに。 ServiceMix 4以降を使用している場合は、Karafも使用しています。より堅牢な統合環境が必要な場合、今日(少なくともApache/Felixの世界で)選択される環境は、Karaf、Camel、およびServicemixのいくつかのバンドルです。

9
Mike Van

これが私が作ったちょっとした比較イラストです。最も単純なケース(下部にApache Felixによって提供されるOSGi関数を備えたJVM)から、より完全で管理しやすいOSGi関数(Apache Karaf中央)、完全なESBインスタンスを実装するのに十分な関数(上部のApache ServiceMix)(「ESB」は製品ではなく、エンドポイント、ルーター、データベース、ETL機能、および特定のタスク固有の方法で一緒に構成されていないもの)。

From Felix to Karaf to ServiceMix

3
David Tonhofer

Karafは[〜#〜] not [〜#〜] CXFに付属しています。

ServiceMixの純粋に抽出されたカーネル。ただし、以下のようにKarafにCXFをインストールできます。

karaf:root()> feature:repo:add cxf

機能のURLが追加されると、次のコマンドを使用して「提供された」機能を確認できます。

karaf:root()> feature:repo:feature:list | grep cxf

Cxfをインストールするには、以下のコマンドを実行します

karaf:root()> feature:install cxf

0
San