1

エンタープライズアプリケーションアーキテクチャのパターンで、MartinFowlerは次のように書いています。

したがって、この本は、エンタープライズアプリケーションをレイヤーに分解する方法と、それらのレイヤーがどのように連携するかについて説明しています。ほとんどの重要なエンタープライズアプリケーションは、何らかの形式の階層化アーキテクチャを使用しますが、状況によっては、パイプやフィルターなどの他のアプローチが役立つ場合があります。私はそのような状況には立ち入りません。代わりに、階層化アーキテクチャが最も広く役立つため、そのコンテキストに焦点を当てます。

非階層化アプリケーション/アプリケーションの一部を構築するためにどのようなパターンが存在しますか?金融機関の統計モデリングエンジンを利用してください。データアクセス用のレイヤーがあるかもしれませんが、ほとんどのコードは単一のレイヤーにあると思います。そのようなレイヤーにGangofFourのパターンが表示されることを期待しますか?ドメインモデルはどうですか?OOを使用しますか、それとも純粋関数型ですか?

引用では、レイヤーの代替モデルとしてパイプとフィルターについて言及しています。データ処理を分解する方法としてパイプを使用するこのようなエンジンは簡単に想像できます。他にどのようなパターンがありますか?タスクのスケジューリング、結果の集約、作業の分散などの分野に共通のパターンはありますか?MapReduceの代替手段は何ですか?

4

1 に答える 1

1

Fowler が意味することは、階層化されたアプリケーションでは、レイヤー間の「垂直方向の」分離された通信の編成に重点が置かれているということだと思います。

もう 1 つのアーキテクチャは SOA (サービス指向) であり、コンポーネント間の「水平」分離通信の編成に焦点を当てています。(コンポーネント内では、実装でどちらのモデルも使用できます)。これは新しいことではありません。この水平パターンの他のインスタンスは、COM/COM+、CORBA、ワークフロー、そして現在の「メッセージング」または ESB アーキテクチャです。

于 2010-03-11T18:10:44.297 に答える