BT

アーキテクチャスタイルとパターンについて見てみる

| 作者: Abel Avram フォローする 10 人のフォロワー , 翻訳者 岡田 英久 フォローする 0 人のフォロワー 投稿日 2009年3月3日. 推定読書時間: 4 分 |

App Arch Guide 2.0( Microsoft patterns&practices )の第 6 章(リンク)で、メッセージバス、レイヤ・アーキテクチャ、SOA といったアーキテクチャスタイルについて語られている。これらのスタイルのほかにも、プラグイン、ピアツーピア、パブリッシュ/サブスクライブのような数多くのアーキテクチャパターンが存在する。何人かの著者は、アーキテクチャのスタイル、パターン、メタファを異なるものだとしている。

アーキテクチャスタイルとは何か? App Arch Guide によると、アーキテクチャスタイルとは次のようなものとされる。

一連の原則のことをいう。システムに抽象的なフレームワークを提供してくれる粒度のあらいパターンと考えてもらっていい。アーキテクチャスタイルはシステムをパーツに分割し、頻繁に起こる問題にたいして解決策を提供することで設計の再利用を促進してくれる。

このガイドの著者たちはたくさんのアーキテクチャスタイルを挙げている。

アーキテクチャスタイル 解 説
クライアント/サーバ システムを二つのアプリケーションに分割し、クライアントがサーバにたいしてサービスのリクエストを発行する。
コンポーネントベース   アーキテクチャ アプリケーション設計を、再利用可能な機能や論理的なコンポーネントに分割する。それらの機能やコンポーネントは位置透過的で、明確な通信インタフェースを提供する。
レイヤアーキテクチャ アプリケーションの関心事を、積み重ねられたグループ(レイヤ)に分割する。
メッセージバス システムが実際の受取人を知らずとも互いに通信できるよう、一連の既知のフォーマットにもとづくメッセージを受送信できるソフトウェアシステム。
Nティア / 3ティア レイヤスタイルと大体同じようなやり方で機能性を別々のセグメントに分離する。ただし、各セグメントが物理的に別々のコンピュータに位置する層である点が異なる。
オブジェクト指向 アプリケーションやシステムに必要な課題を、再利用可能で自給自足的な個々のオブジェクトに分割するアーキテクチャスタイル。個々のオブジェクトには、自身と関連のあるデータと振る舞いが含まれている。
プレゼンテーションの分離 ユーザインタフェース( UI )とユーザが取り扱うデータから、ユーザとの相互作用の管理ロジックを切り離す。
    サービス指向アーキテクチャ(SOA) 機能性を提供しまた消費するアプリケーションを、契約とメッセージを用いたサービスとしてあつかう。

これらのアーキテクチャスタイルはそれぞれ次のように、関心事のなかの特定の分野に対して適用される。
 

カテゴリ アーキテクチャスタイル
通 信 サービス指向アーキテクチャ(SOA)、メッセージバス、パイプ&フィルタ
デプロイメント
デプロイメント クライアント/サーバ、3ティア、Nティア
ドメイン
ドメインモデル、ゲートウェイ
相互作用 プレゼンテーションの分離
 構造
コンポーネントベース、オブジェクト指向、レイヤアーキテクチャ

James McGovern、Scott W. Ambler、Michael E. Stevens、James Linn、Vikas Sharan、Elias K. Jo による書籍『A Practical Guide to Enterprise Architecture』(リンク)からいくつかの重要点を抜粋してまとめている J.D. Meier 氏は、アーキテクチャスタイルとパターンの微妙な違いについて(リンク)、次のように記している。

  • アーキテクチャスタイルはシステムを組み立てるための中心的な概念である
  • アーキテクチャパターンはサブシステムやモジュールそしてそれら同士の関連といったレベルにおける粒度の粗いソリューションを記述する
  • システムメタファはもっと概念的で、ソフトウェアエンジニアリングの概念以上に現実世界の概念にかかわるものである

David Calvert 氏は 1996 年にアーキテクチャスタイルとパターンの部分的なリスト(リンク)を作成している。

  • データフロー・システム --バッチシーケンシャル、パイプ&フィルタ
  • コールアンドリターン・システム -- メインプログラムとサブルーチン、オブジェクト指向システム、階層的レイヤ
  • 独立したコンポーネント -- 通信プロセス、イベントシステム
  • 仮想マシン -- インタプリタ, ルールベースシステム
  • データ中心システム(リポジトリ) -- データベース、ハイパーテキストシステム、ブラックボード

そのほかの現代的なパターンとしては、プラグイン、ピアツーピア、何も共有しない( Shared Nothing )アーキテクチャ、Representational State Transfer ( REST )、フロントエンド/バックエンド、がある。Wikipedia にはさらに完全なリストが記載されている。
 

原文はこちらです:http://www.infoq.com/news/2009/02/Architectural-Styles-Patterns

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT