2012-02-23 7 views
7

Camelルートでは、メッセージ駆動型BeanやWebサービスなどの離散的にホストされているBeanエンドポイントにビジネスロジックを配置することを考えなければなりません。 ?Camelプロセッサとサービスエンドポイントのビジネスロジック

ビジネスロジックのコンテナではなく、フィルタをプロセッサとして使用することで、仲介のためだけにCamelを使用するように心配しているように見えます。&オーケストレーションしかし、私はこの時点でEJBコンテナの必要性を見送っていませんし、MDBをホストするのに必要なようです。

クリーンなアーキテクチャと小さいフットプリント、少ないテクノロジ - 誰もがこれに関する考え、考え方、または強い気持ちを持っていますか?私は、一般的に以下を実行するためにラクダを使っ

答えて

11

...

  • EIPロジックを実装するために

    • 任意のcomponent統合(ファイル、JMS、HTTPなど)(コンテンツベースのルーティング、フィルタ、スロットル、などtimer又はquartzを使用。)
    • タイマーベースのプロセス()
    • 例外処理(ロジック、エラー・ロギング/通知/待ち行列を再試行)

    それ以外の場合は、自己完結型のビジネスロジック(特にレガシーインテグレーション)の場合は、POJOまたはWebServicesを使用することをお勧めします。これは

    • はに一緒にこれらのサービスは、これらのサービスを配線するProcessorsBean Binding
    • CXFを使用してインタフェースする...あなたは次のためにラクダを使用することができ、その後など、テスト容易性を促進し、あなたのアプリケーションがより多くのモジュラーなりますルート
    • 例外が長い実行中のプロセスに関しては

    取り扱い、/監視メッセージフローを管理、キャメル、様々なasycnhronousパターン/テクノを介してこれを容易にすることができます(JMS、CXF、ポーリングコンシューマー、スケジューリングされたジョブなど)を制御することができます。threading ...

    これはすべて、それをスライスする方法がたくさんあります。キャメルは軽量で柔軟性があり、既存の技術との統合を容易にするために設計されています。幸運

  • +0

    ありがとう@boday!私の主な質問は、「EJBコンテナの周りを動かさずにビジネスロジックをきれいにすることができるところ」でした。メッセージ駆動型のpojosとBeanバインディングについてはわかりませんでした。 :-) –

    +0

    クールな...うん、POJO/Beansは、すべてのカスタムビズロジックが必要な場所です...テストのための等式からCamelを外にしたい場合にはうまくいきます –

    0

    ビジネスロジックからルーティングやフィルタリングなどの技術的なことを分けてください。

    したがって、最も重要な部分は、これらを同じクラスに混在させないことです。離散的なデプロイメント単位に分離することは理にかなっていますが、あまり重要ではありません。

    Camelは、「メッセージ駆動型Bean」を実装するのに非常にうまく使えます。 pojos + JAXBアノテーションを使用してデータ構造を定義するか、XSDからデータ構造を生成するだけです。次に、camel pojoメッセージングを使用して、これらをhttp、jms、またはファイルエンドポイントに接続することができます。

    あなたはOSGiの上で実行するとhttp://www.liquid-reality.de/x/NoBe

    は当然の選択は、OSGiサービスとしてあなたのサービスを提供することです参照してください。別のバンドルでCamelを使用して、これらのサービスをトランスポートに接続することができます。この方法で、あなたは完全に平凡なJavaサービスを作ることができます。

    また、CXFを使用して、サービスをSOAPサービスまたは安全リソースとして提供することもできます。私は、より軽量であり、高可用性とロードバランシングに関するいくつかの素晴らしい利点をJMSのおかげで持っているので、キャメルを使ったXML over XMLを好んでいます。

    関連する問題