小さなビジネスコンポーネント間のやり取りにイベントを使うと、システムアーキテクチャに単純さがもたらされる、とRuss Miles氏が先週イベントによるアーキテクチャの単純さについて講演した時に説明した。
単純さは、実に重要です、とBarbara Liskov氏がQCon London 2013の基調講演で言い、Principal ConsultantであるRuss Miles, 氏が強く支持した。彼の経験によると、チームは、自分たちの書いたコードが大きくなり、複雑になると、スピードが落ちる。彼が信じているのは、アーキテクチャ主導の単純さがチームの勢いを維持し、スピードアップを助ける最善の方法である、ということである。
氏によると、コンポーネント構造がアーキテクチャに単純さをもたらすのに重要である。伝統的な階層モデルでコンポーネントを配置すると、しばしば混乱を生むので、彼はLife-Preserverモデルを作った。(リングを形成し)全インフラソフトを持ち、統合を扱い、ビジネス価値を付加するコアビジネスコンポーネントがリングの中心に来る。
彼は、このパターンは Alistair Cockburn氏が作った六角形のアーキテクチャスタイルに大変似ている、と指摘している。
イベント
次のステップは、いかにコンポーネントが互いに協力するかを定義することだ。我々は初めから全てのやり取りを知らないだろうから、柔軟性はイベント送信によって維持できる。コンポーネントの唯一の契約は、それが受信するイベントとそれがブロードキャストするイベントである。これが我々に標準的なイベント駆動アーキテクチャをもたらす、しかしコンポーネントレベルである。
パイプとフィルター
もう1ステップで、氏はコンポーネントをほとんど関数に縮めてしまい、強く型づけされたイベントから単に単純なデータ、例えばドキュメントあるいはXMLの形式に変え、統合コンポーネントが外部と通信するのと同じ方法でコア部分が通信できるようにする。この最終ステップによって、アーキテクチャは、小さなコンポーネント間で不変なデータを共有し、データを使って1つのことを行い、そしてデータを返す、すべてのことをやる。これは、パイプとフィルターパターンである。しかし、システムアーキテクチャ内部のことである。