2009-04-23 27 views
5

いくつかのビジネスコンポーネント(顧客アプリケーション、ネットワーク、支払いなど)間で要求を仲介する大規模なミドルウェアインフラストラクチャがあるとしましょう。ミドルウェアスタックは、オーケストレーション、ルーティング、変換などを担当しています(Gregor Hohpeのエンタープライズインテグレーションパターンブックに似ています)。ミドルウェアアプリケーションはビジネスロジックを実行する必要がありますか?

私の質問は:ビジネスロジックをミドルウェアに載せることは良い設計ですか?

私のアプリAがミドルウェアから顧客データを要求しているとします。しかし、このデータを取得するには、カスタマーID他のパラメータを提供する必要があります。このパラメータを取得するには、リクエストしているアプリによって行われるか、「促進する」ためのミドルウェアであり、の顧客IDを受け取り、の他のパラメータを内部的にフェッチするインターフェイスを提供していますか?

私はこれが(ビジネスロジックの定義のために)単純な質問ではないことを認識していますが、それが一般的なアプローチかいくつかのガイドラインかどうかは疑問でした。

答えて

2

これは「複合アプリケーション」パターンです。サービス指向アーキテクチャーの中心です。これは、ESBベンダーが販売しているものです。追加のビジネスロジックをどこかに置いて、既存のアプリケーションから複合アプリケーションを作成する方法です。

これは、複合アプリケーションがルーティングだけではないため、単純ではありません。これはルーティングの上に階層化された適切な新しい複合トランザクションです。

ヒント。あまりにも多く行く前に、良いESBを手に入れてください。これは急速に制御が外れ、いくつかの追加サポートが役立ちます。たとえSunのJCAPSOpen ESBのようなものを買わなくても、それが何をしているのか、どのように複雑な複合アプリケーションを構成しているのかを知ってうれしいです。

+0

難しい部分は説明責任です。誰が責任を負うべきか。私はこれが文化的な問題であると信じています。 私の質問は純粋に仮説的なものでした。私がいるプロジェクトはすでにほぼ完成しており、素晴らしいミドルウェア製品を使用しています。 –

+1

難しい部分は「ガバナンス」と呼ばれ、アカウンタビリティと変更管理と技術標準が含まれます。それは「文化的」ではなく、それよりも大きく、通常はとても難しいです。 –

0

ミドルウェアアプリケーションで行う必要があります。システムAは、他のパラメータが存在するかどうか分からず、どうやって取得するかについてはまったく分かりません。

1

オーケストレーション、ルーティング、および変換。

技術的な理由から、無作為に、または楽しいためにこれらのことを行うことはありません。何らかのビジネス要件があります。ビジネスロジックが関係しているからです。

完全なビジネスシステムで欠落しているのは、計算とレポートだけです(すでにセキュリティを確保しているとしましょう)。

非常に低いレベルのネットワークを除いて、OS /ストレージの問題は、ビジネス/政府/エンドユーザがそこにいることを望むため、コンピュータシステムを構成するほとんどのものがそこにあります。

terminoligyとしての 'ビジネスロジック'の選択は非常に貧弱で、デザインとアーキテクチャの無限の歪みにつながっています。

ビジネスロジックによって最も優れた設計者/設計者が意味するものは、計算と分析です。

"%s/Business Logic/Calculation/g"の場合、ほとんどのアーキテクチャー勅令が意味を成します。

4

ルーティング、変換、オーケストレーションとは別に、機能要件をミドルウェアにロードする際のパフォーマンスを考慮する必要があります。 Middlwareは、エンドツーエンドのトランザクション存続時間全体の一部を取るべきです。これは、ホストシステムの機能を補完するのではなく、ミドルウェアのコア機能に集中することによってのみ達成できます。

関連する問題