Pluggable Component Framework (475ページ) †
要約 †
機会は深く蒸留されたモデルで起きる。アプリケーションがすでに似たドメインで実装された場合、PLUGGABLE COMPONENT FRAMEWORKは動作する。
P475
- 複数のアプリケーションを相互に運用するとき、すべては同じ抽象を基礎とするが独立して設計され、BOUDED CONTEXTS間の統合は制限がある。SHARED KERNELではチーム間で閉じている場合はうまくいかない。
- 成功しているプロジェクトでは、コンポーネントの設計を分析する。コンポーネントは中央のハブに差し込まれ、必要でインターフェースを知っているプロトコルは提供される。
- 技術的なフレームワークはこのパターンをサポートしているが、これは2番目の課題である。配布やコンポーネントの共有に関する技術的な問題を解決するために使われる。基本パターンは、責任の構成概念である。
それゆえ
- ABSTRACT COREのインターフェースや振る舞いを抜き出し、実装を変えられるようなフレームワークを作りなさい。同じように、ABSTRACT COREのインターフェースで操作するなら、アプリケーションがコンポーネントを利用することを許しなさい。
- ハイレベルな抽象は識別され、システムの広範囲で共有される。MODULESでは特に発生する。アプリケーションの中央のハブはSHARED KERNEL内のABSTRACT COREである。しかし、複数のBOUNDED CONTEXTはコンポーネントインターフェースをカプセル化してうそをつくことができるが、その構造は、コンポーネントが多くのところから呼ばれたり、コンポーネントがソフトウェアの統合のためにカプセルかする場合に、特に便利になる。
p476
- これはコンポーネントを分割したモデルにしろといっているのではない。チームがCONTINUOUSLY INTEGRATIONや疎なコンポーネントによる共通部品をSHARED KERNELで定義できる場合、複数のコンポーネントは一つのCONTEXTで開発することができる。すべての構造は、PLUGGABLE COMPONENTSの大きな構造の中で容易に共存できる。他のオプションとして、ハブにプラグインするためのPUBLISHED LANGUAGEを利用するものがある。
- PLUGGABLE COMPONENT FRAMEWORKの否定的な側面を見てみる。一つはパターンを適用することが難しいということ。インターフェース設計の正確さやABSTRACT COREの振る舞いの忠実なモデル化が求められるため。もう一つの大きな否定的側面として、アプリケーションが制限を受けるということ。もしアプリケーションがCORE DOMAINに対してとても難しいアプローチを取る必要があるならば、構造が邪魔になるだろう。開発者はモデルを特化できるが、ABSTRACT COREのさまざまなコンポーネントの変更なしで変更することはできない。その結果、継続的にCOREの洗練やより不快リファクタリングは、程度の差こそあれ凍結される。
- FayadとJohnsonはいくつかのドメインにおける野心的なPLUGGABLE COMPONENT FRAMEWORKSを与えてくれた。それはSEMATECH CIMでの議論に含まれている。
Examle:The EMATECH CIM Framework
( http://www.amazon.co.jp/Domain–Specific-Application-Frameworks-Experience-Industry/dp/0471332801 )
- コンピュータチップを生産する工場では、基盤の追跡、工場の作業員や自動化などを行う。このようなものを管理するソフトウェアを製造実行システム(MES)という。
p477
- 多くのベンダーのマシンで異なった方法が取られていた。MESは複雑。コンソーシアム、SEMATECHでCIMフレームワークが開発された。
- CIMフレームワークは大きく複雑で、多くの外見を持っているが、2つほとここには関係がある。一つは、フレームワークは半導体MESの基本的なコンセプトの抽象化されたインターフェースを定義している。言い換えると、ABSTRACT COREの形成の中にCORE DOMAINがある。これらのインターフェースは振る舞いと意味を含んで定義されている。
- もし、ベンダーが新しいマシンを生産するなら、Process Machineインターフェースを実装を作らなければならない。インターフェースをちゃんと守っていれば、CIMフレームワークに差し込むだけである。
- インタフェースを定義したので、SEMATECHはアプリケーションに相互作用できる規則を定義した。CIMフレームワークをベースとするアプリケーションは、プロトコルを実装しなければならない。
p478
- フレームワークにはインフラ要求がある。それよりも面白いのはPLUGGABLE COMPONENT。独立したソフトウェアの開発とその統合ができる。誰も詳細を知らないが、みんな概要は理解している。
どうしたら、何千もの人が40000枚ものキルトを作成する仕事をすることができるのか?
- AIDS Memorial Quiltのための大規模構造に対して、いくつかの単純なルールがあれば、詳細を貢献者に任せることができる。
キルトのパネルを作る方法
- パネルの設計
- 覚えている人の名前、誕生日、なくなった日、故郷を含めること。
- パネルの作成
- パネル組み立ての際のテクニック。アップリケ、ペイント、ステンシル、コラージュ、写真。
担当者のつぶやき †
- よくあるフレームワークを業務専用に拡張する時の話に思えるのですが・・・
- チームに分かれて作業をするため、作業をどうすれば進められるかはいつも考えるけど、そのときはこういったことに注意する気がする。
みんなの突っ込み †
- このフレームワークは、技術的・実装的なフレームワークを指しているのか、それとも概念的なフレームワークのことを指しているのかどちらなのか、という話が出た。
- この説明からだけでは断定はできないが、例のフレームワークはわりと実装よりの部分を含んでいるようにも見えるよね、という話になった。
- 実際に半導体工場に関わった人の話も出たが…あまり詳細なところまでは話に出なかった。
- あまり詳細を覚えていなくてすみません…