EIP / Pattern Form Summary


パターン形式

要するに

  • パターン形式最高。

細かいこと

  • この本はパターン形式でまとめられている。パターンやパターン言語は、他者が理解・適用するために専門家の知識を文書化するのに適したアプローチだ。
  • パターン言語は、ある問題空間における、無限の多様性を持つ問題の解決方法を示す。解決すべき問題は毎回異なるため、辿るパターンやその適用方法は都度違うものになる。この本はあらゆるメッセージングツールを使っている人向けに書かれたもので、読者が直面しているメッセージングアプリケーションにも適用できるはずだ。
  • パターンは解決策のレシピではない。真にパターンから学ぶためには、パターンはなぜその問題の解決が難しいのかを書き記し、実際にはうまくいかなくとも他の解決策を考慮し、なぜ提示した解決策が最善なのかを明らかにしなくてはならない。
  • 同様に、パターンは相互につながりを持ち、読者がある問題から次の問題へと移れるようにしなくてはならない。このようにすることで、パターン形式は適用すべき解決策だけでなく、著者も予想できなかった問題を解決する方法をも示すことができるようになる。
  • パターンは指示的(問題だけでなく、問題解決のために何をすべきかを記述する)でなくてはならない。パターンやパターン言語は、読者の問題をうまく解決するような意思決定を引き出す助けとなってくれる。
  • パターン形式にはさまざまなものがあるが、この本ではAlexanderにかなり近い形式を採用した。Alexander形式は散文に近く、各パターンがうまく定義された同一の構成に従いつつも、サブセクションごとに見出しをつけてしまって議論の流れを阻害することもない。パターンは下記の構造に従う。
名前名前。設計者同士の会話で容易に使えるものを採用した。
アイコン設計者の多くは図を使ってやり取りするため、ビジュアル言語も用意した。この言語が、パターンを組み立ててより大きなパターンとして使えることを示している。
文脈どんな種類の仕事がこの(パターンが解決する)問題を引き起こしがちか。
問題直面している困難を質問形式で記載。ここを読むと、このパターンが自分に関係するか判断できる。
フォース問題の解決を難しくしている制約を掘り下げる。うまくいきそうでうまくいかない解決策を示すこともある。
解決策問題を解決するためにはどうすべきか。読者固有の状況に限定されたものではなく、「問題」で示した状況への対応が記される。問題と解決策を理解すれば、パターンを理解したことになる。「問題」と同じ形式で記載。
スケッチ解決策を図示したもの。Alexander形式でもっとも魅力的な要素の一つ。
結論解決策の適用方法や、どのようにフォースを解決するかを詳細に示す。パターン適用によって新たに起こる問題を解決する(示す方?)こともある。
関連このパターン適用後に考慮すべき他のパターンの一覧。単なるパターンカタログではなく、パターン言語の性質を示す項目。
サイドバー技術的な問題やパターンの派生系について詳細に議論する。
著名な用途のな前であったり、コードサンプルであったり。メッセージング技術は数多くあり、例に使われている技術を知っているとは限らないため、とばしても問題ないようにしている。
  • パターン形式で解決策を記述することの美点は、著者も気づいていなかったような問題を解決できるところにある。このおかげで、本書が出版された後に作られたメッセージングアプリケーションに対しても本書のパターンは適用できるだろう。

ダイアグラム記法

要するに

  • Alexanderの真似してイケてるアイコンを用意しました

細かいこと

  • 統合ソリューションは、アプリケーション、データベース、エンドポイント、チャネル、メッセージ、ルーター等多数のコンポーネントから成る。統合ソリューションを記述するためには、これらに対応する記法が必要。
  • UMLでもいいけど、足りなかったり細かすぎたりでイマイチ。欲しいのはスケッチ。
  • ぱっと見てパターンの要点がわかるように独自の記法を作った。
  • アイコンの例示は省略。アプリケーション設計を示す際には、UMLを使うこともある。

実装例と幕間

要するに

  • 例をはさんでるが別に読まなくても大丈夫

細かいこと

  • 様々な統合技術を使った実装例をはさむことで、パターンが幅広く応用できることを示そうとしている。
  • 関連するポイントはすべてパターン記述で議論しているので、例は読まなくてもよい。
  • 例のコードでは読みやすさを優先したので、コードの一部しか示していないこともある。エラーチェックやコメントもない。
  • 様々なパターンのコラボレーションをわかりやすくするために、幕間により包括的な例を入れている。
  • 例は説明のためのもので、製品コードのスタート地点として使うためのものではないので注意。
  • なるべく無料で手に入るプラットフォームを使うようにした。
  • JMSは1.1 .NETも1.1

本書の構成


要するに

  • 3章でメインコンセプトを示すルートパターン列挙、あとの章はルートパターンごとに1つ

細かいこと

  • たいていのパターン本と同様、パターンは相互に参照しあっている。
  • あるパターンは他のものに比べてより基本的なので、階層構造をなす。大きな概念を示すパターンはルートパターンであり、パターン言語の基礎をなして他のパターンを支えている。
  • この本では、抽象レベルとトピック領域にしたがってパターンのグループを章に分類している。図参照。
    • 最も基礎的なパターンはMessaging(Chap2)
      • 6つのルートパターンMessaging Channel, Message, Pipes and Filters, Message Router, Message Translator, Message Endpointにつながる(Chap3)
      • ルートパターンごとに個別に章がある
  • Chapter2:統合スタイル
    • 統合に使えるさまざまなアプローチについて
  • Chapter3:メッセージングシステム
    • メッセージングの6つのルートパターンについて
  • Chapter4:メッセージチャネル
    • メッセージが流れる論理的な経路
  • Chapter5:メッセージの組み立て
    • チャネルに流すメッセージのさまざまな使い方やプロパティの利用方法
  • Chapter7:メッセージルーティング
    • 送信者と受信者を分離し、あいだの経路を流す
  • Chapter8:メッセージの変換
  • Chapter10:メッセージエンドポイント
    • メッセージングシステムとアプリケーションの統合
  • Chapter11:システム管理
    • メッセージングシステムの管理

はじめかた

  • アプリケーション統合自体に慣れてない人はChapter2
  • まずは全体像を示すルートパターンについて書かれたChapter3から
    • ルートパターンから個別の章へ
  • システム管理者はChapter4:メッセージングチャネル、Chapter11:システム管理
  • アプリケーション開発者はChapter10:メッセージングエンドポイント、Chapter5:メッセージの組み立て
  • システム統合者はChapter7:メッセージルーティング、Chapter8:メッセージの変換
  • 急いでいるときはパターンの問題と解決策だけ読むこと
  • ルートパターンから関連パターンをうまくたどっていけばOK

サポートWebサイト

  • 省略

サマリ

  • メッセージングについて学んだこと
    • メッセージングとは何か
    • メッセージングシステムとは何か
    • なぜメッセージングを使うのか
    • 非同期プログラミングは同期プログラミングとどう違うのか
    • アプリケーション統合はアプリケーション分散とどう違うのか
    • どんな商用製品がメッセージングシステムを含むのか
  • この本について学んだこと
    • 内容の構成におけるパターンの役割について
    • ダイヤグラムカスタム記法の意味について
    • 例の目的とスコープについて
    • 内容の構成について
    • どうやってはじめるか

担当者のつぶやき

  • 久しぶりで加減がわからずやりすぎた。しかも、ここのまとめとかいらんかったんじゃ。。 -- わたなべ? 2012-06-23 (土) 15:48:48

まとめ (議事録)