web-dev-qa-db-ja.com

Apache Camelおよびその他のESB製品

ねえ、
Apache Camelがある場合、Apache ServiceMixやMuleなどの他のソリューションを使用する理由は何ですか?
これらの製品と比較して、Apache Camelができないことはありますか?
Mule/ServiceMixを使用する場合とCamelを使用する場合

75
Chiron

Apache Camelは、エンタープライズ統合パターン(EIP)を実装するライブラリです。 SpringをIOCフレームワークとして使用できますが、Springに依存することさえないため、完全にプラットフォームに依存しません。「単なる」ライブラリです。JVM環境で実行できます。たとえば、シンプルなjvm、servlet、ejb、osgiなど、Muleなどのコンテナのメリット(またはオーバーヘッド)はありません。

Muleはさまざまな環境に組み込むこともできますが、MuleにはEIPライブラリをコンテナに結合する利点と欠点の両方があると思います。 Muleをサーブレットまたはejb環境内にデプロイするとき、本当にMuleコンテナのすべての荷物を運びたいですか?私はMuleの専門家ではありません。おそらく、比較的控えめな労力を費やして、冗長機能の一部を削除できると思います。 (これはすべての場合において悪い機能ではないことに注意してください。別のコンテナ内に埋め込まれて実行している場合は冗長です。)

Apache ServiceMixは、Camelを使用してEIPをESBの基盤として実装するOSGIコンテナです。 ServiceMixは歴史的にJBIから始まりましたが、JBIから遠ざかり、OSGIコンテナで最高の品種のApache CXF、Camel、ActiveMQを組み合わせたNiceレイヤードアーキテクチャ(IMO)に進化しました。ここでの主な価値は、実際にはServiceMixとそのJBIサポートではなく、基礎となるOSGIコンテナ標準 Webサービス用のCXFやJMS用のActiveMQのような実績のあるApacheトランスポートに結合されています。 OSGIは、.NETの出現前にMicrosoftを悩ませていた同じタイプの「DLL」に対処するコンテナを提供する成熟した標準です。 .NETもOSGIも根本的な問題の本質的な複雑さを解決しませんが、少なくともそれらに対処する手段を提供します。 OSGIには他の利点もありますが、製品選択の観点からは、標準ベースのコンテナーが主であり、Mule(およびJava一般的に)アドレスは依存関係管理です。

ESB MuleとApacheコミュニティを比較する際に注意すべき重要な点。 MuleはRedhatに似ていますが、それはオープンソースライセンスですが、私の意見では実際にはオープンコミュニティではありません。誰でもApacheに参加できますが、MuleSoftはMuleコミュニティと最終的なロードマップを所有しています。第二に、Muleコミュニティは間違いなくかなり活発ですが、Apacheコミュニティははるかに大きいと思います(ゲートコミュニティではないので当然です)。どちらのアプローチにもプラスとマイナスの両方があります。 Apacheアプローチの利点の1つは、Camel、CXF、ActiveMQ、およびOSGIに基づいたESBのベンダーが複数あることです。たとえば、Talendは、ServiceMix JBIの歴史のない同じコアテクノロジーでESBを提供しています。これには、Apacheコミュニティ内でプラスとマイナスの両方がありますが、本当のポイントは、ApacheとMuleの違いを強調することです。 Muleコミュニティには複数のベンダーはありません。 TalendやServiceMixのようなApache ESBであるIMOは、Muleのような閉じたコミュニティよりも広く、包括的で、最終的には競争力のあるコミュニティです。

エド・オスト

69
Ed Ost

現在は2016年であり、質問が最初に尋ねられてから多くのことが変わったので、新しい視聴者のために再訪したいと思います。

戦略的に言えば

  • Apache Camel そのルーツに忠実であり続けているであり、ヘビーウェイトでも本格的なランタイムプラットフォームにも進化していません。汎用性が高くモジュール式であり、以下を実行できます。

    1. あらゆる種類のJava container(servlet container、application server、Spring Boot)に埋め込み
    2. StandaloneJavaプロセスとして。
    3. OSGi環境内Apache Karaf )。
  • OpenHub から抽出したこのポイントの下のグラフに描かれているように、Apache Camelは進化を続け、毎月トラクションとアクティビティを獲得しています。ユーザーベースも増加し続けています。

Apache Camel Contributors per Month

  • 2012年、 Red HatはFuseSourceを買収しました 、Apache Camel、ActiveMQ、ServiceMix、CXFの背後にある主要なプロモーターおよび開発者の1人。現在、いくつかのコミッターとPMCメンバーがApache Camelで作業するためにRed Hatに雇用されています。

  • ESB Mule ESBは、 製品の2つのバージョンCommunity(CPALライセンスの下で無料)およびEnterprise(有料)を提供します。彼らはCommunityバージョンを次のように定義します:

評価または運用前の使用に最適です。

=>本番で使用するために有料のエンタープライズサブスクリプションを取得する必要があるという意味。

  • 実際、ESB Community Editionは CPALライセンス で配布されています。これは、このバージョンを使用することに決めた場合、MuleがTHATを必要とすることを意味します。

    • 実行可能およびソースコードまたは大規模な作品が起動または最初に実行されるたびに、エンドユーザーがそのような対象コードにアクセスするために使用するグラフィックユーザーインターフェイス上にMulesoftの属性情報の顕著な表示が発生する必要があります(スプラッシュスクリーンでの表示を含む場合があります) )、もしあれば。 =>基本的には、advertiseにする必要があります。MuleでビルドしたものはすべてMuleで実行されています。

    • Mule ESBのデプロイメントにネットワーク経由でアクセスする場合(統合プラットフォームであるため常にアクセスします!)、デプロイメントのソースをアクセスする人が利用できるようにする必要もあります。

  • 前述の誰かが言ったように、Apache Camelは完全にオープンなプロジェクトであり、コミュニティのために、コミュニティのために駆動されます。すべてのソースコードは公開されており、誰でもプルリクエストを送信したり、コンポーネントを投稿したり、フォーラムでヘルプや問い合わせをすることをお勧めします。逆に、Muleコミュニティは ゲートコミュニティ です。

  • 少なくとも最後のではなく;おそらく最も重要な部分です。 Mule ESB対Apache CamelについてGoogle Trendsが言わなければならないこと 。標準クエリキーワードではなく、より高い精度を得るために新しいセマンティックtopics測定を使用していることに注意してください。そのようにして、動物の人気(ミュール対キャメル)ではなく、ソフトウェアの人気を測定しています!解釈:Muleは2007年から2011年まで大幅に減少し、Apache Camelは増加しました。 2011年以来、Muleは安定していますが、Apache Camelは順調にトレンドを続けています!

Mule vs Camel in Google Trends

Apache Camelの技術的進化

2010年9月25日の最初の質問から、Apache Camelの進化に関する機能メトリックを提供したかっただけです。 これはその時点でのソースツリーでした

  • 当時、Camelには88個のコンポーネントがありましたが、Facebook、Twitter、Salesforce、 Apache IgniteApache Cassandra 、AWS、 Apache Kafkaとの統合を含む220個のコンポーネントがあります 、MongoDB、 Apache Spark など.
  • 非同期ルーティングエンジン、メッセージ履歴、サーキットブレーカーEIP、アグリゲーション、分割、動的ルーティングなどのEIPに対する多くの多くの改善と機能強化。
  • エコシステムには現在、監視と管理用の Hawtio 、展開用の fabric8 も含まれています。
  • それ以来、新機能、改善、バグなどを含む 5500チケット 以上が解決されました。
  • そして、はるかに!

最終ノート

両方の製品は、この5,25年間で大きく進化しました!しかし、Mule ESBとApache Camelのライセンスとコミュニティの性質の違いにより、私はそれらがもはや互いに比較できるとは思いません。

Apache Camelは完全にオープンソース❤️ですが、Mule ESBコミュニティでは、ユーザーはMulesoftを属性付けし、Muleを使用するソフトウェアのソースコードを公開する必要があります。 Apacheソフトウェアライセンスはbusiness-friendlyライセンスです。帰属やその他の要件なしでCamelを自由に使用できます。本当にビールのように無料

過去数年間のこの反省が新しい視聴者に役立つことを願っています! :)


免責事項:私は、Apache CamelプロジェクトのコミッターおよびPMCメンバーです。

71
raulk

私のブログ投稿はまさにこの質問に答えています: http://www.kai-waehner.de/blog/2011/06/02/when-to-use-Apache-camel/ => Apache Camel is軽量の統合フレームワーク、ServiceMixなどは完全なESBです。

8
Kai Wähner

Camelは仲介エンジンであり、Muleは軽量の統合プラットフォームです。違いは、MuleがESBのすべての機能を提供することです。これには、アプリケーションをデプロイするためのコンテナー、REST=およびWebサービス。Muleを同じ方法で埋め込むことができます。アプリケーションコードとその統合コード:どちらもSpringと緊密に統合されます。

ESB MuleはJBIを使用しません 正当な理由により JBI仕様が解散しました(元々JBI仕様を引き継いだOracleが所有するワーキンググループはありません) JBI。

5
Ross Mason

Apache Camelには、いくつかのFAQエントリがあります。このエントリは、この点を明らかにします http://camel.Apache.org/faq

Apache Camelのリンクコレクション http://camel.Apache.org/articles.html

コミュニティの人々が話したり、Camelを他のプロジェクトと比較したりするリンクがあります。

4
Claus Ibsen

クラウス、キャメルFAQには多くの間違いがありますが、当然のことながら、私たちに有利な間違いはありません:)

  • muleのUMOモデルはMuleではなくなりました。 Mule 2でそのモデルから離れ始め、Mule 3で完全に変更されました。これで、非常にシンプルなメッセージプロセッサモデルができ、それについての説明が冗長になります。
  • Muleはここ数年明示的な型変換を行ってきましたが、これはCamelの差別化要因ではありません
  • ESB Muleは OSI承認CPAL 1.0ライセンス でライセンスされています。これは商用のものではなく、オープンソースのライセンスです。これをできるだけ早く更新してください
0
Ross Mason

まず、Service MixはApache Camelコードを実行できるコンテナのようなものであり、Mule ESBはそれ自体が別個の製品であることを理解する必要があります。

ESB製品間で提供できる多くの違いがあります。

差別化を検討する前に、いくつかのことを知っておく必要があります。彼らです

  1. 製品の開発方法
  2. そのライセンス
  3. サポート機能
  4. オープンソースかどうか
  5. オープンソースの場合、ソースを変更して使用できます。

上記は、選択を行う前に検討する必要がある最良の要因です。上記はほとんどの製品選択に一般的であり、ここでも特別な注意が必要です。

セカンダリ製品の違いは、ツールとそのドメインに固有です。これは、おそらくあなたが探している答えです。選択する前に、内観する必要があるリストを見つけます。

  1. コミュニティサポート
  2. 製品スタック
  3. 独自のコードの変更に関する拡張性
  4. 学習能力と使いやすさ
  5. エンタープライズとして購入した場合の製品サポート

これはおそらく、違いを選択するために自分で行う必要がある研究です。市場で最高と言うよりも、製品を組織に適したものにする多くの付加価値がある方法。

Apacheラクダまたはその他のESBに関しては。作る違いは

  1. トランスポートの数
  2. Muleやその他のさまざまなDSLを提供するApache Camelは、Camelのように複数のDSLがないことです。
  3. Muleの製品スタックにはAPI管理が含まれており、Apache CamelはFuse ESBを考慮したフレームワークであるため、JBoss Stackは選択を補完する他の製品を提供します。
0
Naveen Raj