非階層化アプリケーションのためのパターン
-
20-08-2019 - |
質問
エンタープライズアプリケーションアーキテクチャのパターンでは、Martin Fowler氏は書いてます:
この本はどのようにあなたについてこれです エンタープライズアプリケーションを分解する 層にし、これらの層がどのように働きますか 一緒。ほとんど自明でない企業 アプリケーションは、階層化を使用します 何らかの形のアーキテクチャが、一部では 以下のような状況で他のアプローチ、 パイプとフィルターは、貴重なものです。私 そのような状況になりませんが、 のコンテキストに代わりに焦点を当て 階層化アーキテクチャそれはだから 最も広く便利ます。
アプリケーションの非階層化アプリケーション/部品を構築するためにどのようなパターンが存在しますか?金融機関のための統計モデリングエンジンを取ります。そこのデータにアクセスするための層であることが、私は、コードのほとんどは、単層であろうと期待するかもしれません。あなたはまだそのような層に4つのパターンのギャングを見て期待しませんか?どのようにドメインモデルは?あなたは、すべてのOOを使用し、またはそれは純粋に機能的なのでしょうか?
引用は層への代替モデルとして、パイプとフィルタを言及しています。私は、簡単にデータ処理を打破する方法として、パイプを使用して、このようなエンジンを想像することができます。他にどのようなパターンが存在しますか?タスクスケジューリング、結果の集約、または作業配分などの分野のためにそこに共通のパターンがありますか? MapReduceのにはいくつかの選択肢は何ですか?
解決
私はファウラーは、層状のアプリケーションにフォーカスが層の間の「垂直」のデ結合コミュニケーションを組織上にあるということです何を意味するかと思います。
他のアーキテクチャでは、コンポーネント間で「水平」脱結合通信を組織に焦点を当て、それSOA(サービス指向)、です。 (コンポーネント内の実装では、いずれかのモデルを使用することができます)。これは新しいものではありません。この水平方向のパターンの他のインスタンスは、COM / COM +、CORBA、ワークフロー、および今 "メッセージング" やESBアーキテクチャです。