連載:アプリケーション・アーキテクチャ・ガイド2.0解説

第1回 Application Architecture Guideの概要

日本ユニシス 猪股 健太郎
2009/03/10
Page1 Page2

 マイクロソフトは自社技術に関連する膨大な量の情報を公開しているが、その中に「patterns & practices」(以下、「パターンとプラクティス」)という一連の情報があるのをご存じだろうか。

 「パターンとプラクティス」とは、マイクロソフト技術を使用したアプリケーションの設計と開発における推奨事項を集めたものだ。そこで公開されている情報は、マイクロソフト社内外の専門家が作成しレビューし検証したものである。従って、アプリケーションを設計・開発する際に「パターンとプラクティス」を活用すれば、プロジェクトの技術リスクを低くすることができる。

 「パターンとプラクティス」では、ドキュメント、再利用可能なソース・コード、リファレンス実装などが組み合わさったものが公開されている。情報の蓄積と公開は2001年から継続して行われており、多量の情報が存在する。

「パターンとプラクティス」で蓄積、公開されている情報

 英語版のリストは「patterns & practices: Complete Catalog」にある。それらの情報は、一部が日本語に翻訳されている。日本語版の情報は1カ所に集約されてはいないが、MSDNライブラリの以下の各ページ内で確認できる。

 なお、@IT/Insider.NETでも、「アプリケーション・アーキテクチャ設計入門」「Enterprise Library」といった解説記事が掲載されている。

 そして、本連載では、「パターンとプラクティス」の中から、2009年1月に公開されたばかりの『Application Architecture Guide 2.0』(以下、AAG)を取り上げ、5回にわたって内容を説明していく。

AAGとは何か

 AAGは、.NET Frameworkを用いて構築するアプリケーションのアーキテクチャ策定と設計のためのガイダンス(ドキュメント)である。AAGの概要説明文には「このガイダンスでは、アプリケーションの一般的な形態と、アプリケーションの機能を論理階層やコンポーネントやサービスに分割する方法に重点を置き、設計における主要な特徴を一通り紹介する」とある。

 AAGはCodePlexで公開されており*1、HTMLやPDFで読むことができる。

*1 MSDNへの正式な公開は2009年夏の予定だが、内容自体は1月にCodePlexに公開されたものが完成版である。

AAGに書かれていること

 AAGが取り扱っているのは以下のような内容である。

  • アプリケーションの標準的な内部構造:アプリケーションは論理的/物理的に多層構造にすることが多いが、その際に推奨される分け方を提示する。各層はそれぞれ役割が異なるため、実現すべき機能や選択されるテクノロジも異なる。

  • アプリケーションの種別:アプリケーションの要件に応じてアプリケーションの実装形態は異なるが、典型的なアプリケーションの形態を例として提示する。あくまで例であり、網羅的なものではない。

  • アーキテクチャ要素:設計においていくつかの選択肢が存在するような、アプリケーションごとの可変部分を明確化する。そこでは要件や制約を満たすように設計上の判断をしなければならない。

  • 品質属性:アプリケーション・アーキテクチャに影響を与えるような品質属性について考察する。

  • 原則とパターンとベスト・プラクティス:上に挙げたような要素を前提とした推奨事項を提示する。原則とパターンとベスト・プラクティスは相互に関連している。

  • 実装テクノロジと機能範囲:マイクロソフトが提供するさまざまなテクノロジと、それが実現する機能について説明する。

AAGの活用方法

 AAGは、アプリケーション・アーキテクチャをどのように設計し実現していけばよいのかということについての思考の枠組み(フレームワーク)を提供してくれる。AAGが提供する枠組みに沿って考えることで、問題が明確になり、解決策を導きやすくなることだろう。

 ただし、AAGを利用するうえで注意すべきことが2つある。

 1つは、AAGは設計の手順書ではない、ということである。AAGは参考書(リファレンス)を目指して書かれている。具体的な手順やプロセスは規定していないので、それを期待して読んではいけない。

 もう1つは、AAGは完全ではない、ということである。AAGではアプリケーション開発を包括的にとらえ、最も重要だと思われる問題に関する推奨事項を記述している。しかし、細部を詳細に解説したり、特定の問題に対する万能な解答を提示したりはしない。AAGはアプリケーション・アーキテクチャを決定するための指針を提示するが、決断するのはあなたなのだ。

AAGの構成およびAAfNとの対応づけ

 AAGは4部構成・全21章から構成されている。

まえがき

はじめに
アーキテクチャ策定と設計の手順概観
本ガイドの要旨

第1部 基礎

1章 アプリケーション・アーキテクチャの基礎
2章 .NETプラットフォームの概観
3章 アーキテクチャ策定と設計のガイドライン

第2部 設計

4章 アーキテクチャの設計
5章 配置パターン
6章 アーキテクチャ・スタイル
7章 品質属性
8章 通信のガイドライン

第3部 論理階層

9章 論理階層と物理階層
10章 プレゼンテーション層のガイドライン
11章 ビジネス層のガイドライン
12章 データ・アクセス層のガイドライン
13章 サービス層のガイドライン

第4部 アプリケーション種別

14章 アプリケーション種別
15章 Webアプリケーション
16章 リッチ・インターネット・アプリケーション(RIA)
17章 リッチ・クライアント・アプリケーション
18章 サービス
19章 モバイル・アプリケーション
20章 Officeビジネス・アプリケーション(OBA)
21章 SharePoint業務アプリケーション

付録

パターン・カタログ
プレゼンテーション技術一覧表
データ・アクセス技術一覧表
ワークフロー技術一覧表
システム統合技術一覧表

 ガイド全体を読む時間がない場合は、まえがきの「本ガイドの要旨」だけでも、まずは目を通すことをお勧めする。そこにはAAGに記述されている内容の抜粋が書かれているので、短い時間で全体像をつかむことができる。

 次のページでは、AAGの全体像を説明する。


 INDEX
  連載:アプリケーション・アーキテクチャ・ガイド2.0解説
  第1回 Application Architecture Guideの概要
  1.『Application Architecture Guide 2.0』とは何か?
    2.Application Architecture Guide 2.0の全体像

インデックス・ページヘ  「アプリケーション・アーキテクチャ・ガイド2.0解説」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間