1

シナリオ:EIPブックのローンブローカーの例との類似性を試してみます

  1. 顧客が見積もりリクエストを送信する
  2. (ローンブローカーは、信用調査機関に顧客のクレジットスコアを要求します)
  3. ローンブローカーは、各銀行に見積もり要求を送信します。

問題

  • 私の場合、ポイント1と2は同じラクダのコンテキスト(またはosgiバンドル)にあります
  • 各銀行には個別のバンドルがあり、NMRを介してエンドポイントをローンブローカーバンドルに公開します
  • 私たちは時々新しい銀行と提携しているので、loan-broker-bundleは銀行について事前に知りません

私がしたこと

  • Loan-broker-bundleにレジストリクラスとbankDescriptorインターフェイスを作成しました
  • 開始時に各銀行バンドルはレジスターを呼び出して、見積もりを取得するために呼び出すエンドポイントをローンブローカーに指示するbankDescriptor(spring init)を追加します。
  • Loan-broker-bundleのメインルートはrecipientList(プロセッサが登録者に要求することでターゲットエンドポイントを設定します)を使用して見積もりリクエストをルーティングします

質問

私の説明が十分に明確であることを願って、これは本当に単純な実装であることがわかります。その限界は何ですか?このレジスターをosgiサービスに変換するにはどうすればよいですか?

4

2 に答える 2

4

私はクライアントのためにSpringDMに基づいてこのようなソリューションを開発しました。これを行う方法の完全な記述はhttp://www.jakubkorab.net/2012/05/system-integrations-as-plugins-using-camel-and-servicemix.htmlにあり、完全なソースコードはhttpsで入手できます。 //github.com/FuseByExample/smx-application-plugins

お役に立てば幸いです。

于 2012-06-29T15:51:29.083 に答える
2

OSGiには、OSGiサービスレジストリという優れたレジストリがあります。したがって、私の提案は、これを少し異なる方法で行うことです。見積もりリクエストのサービスインターフェースを定義し、それをAPIバンドルに保存します。次に、各銀行にこのインターフェースを実装させ、その実装をOSGiサービスとして公開します。

ローンブローカーバンドルは、OSGiサービスレジストリ内のすべてのOSGiサービスを一覧表示し、それぞれを呼び出して見積もりを取得できます。ブループリントには、ListのBeanプロパティにリストを挿入するために使用できる優れたタグがあります。SpringDMにも似たようなものがあります。

Camelには現在、あるタイプのすべてのOSGiサービスを呼び出す方法がありません。これを実行できる新しいosgiサービスコンポーネントについて説明しました。したがって、おそらくすぐに解決策があります。

于 2012-06-29T14:53:19.017 に答える