Agile Cat — Azure & Hadoop — Talking Book

June 9, 2009

LitwareHR on SSDS – Part II

Filed under: Eugenio Tracker — Agile Cat @ 2:52 pm
Tags: , ,

Eugenio Pace – Software as a Service Architecture Guidance

Published Wednesday, March 19, 2008 11:05 AM by eugeniop
From <
http://blogs.msdn.com/eugeniop/archive/2008/03/19/litwarehr-on-ssds-part-ii-the-data-access-layer.aspx>

LitwareHR on SSDS – Part II – The data access layer

The heart of LitwareHR implementation on SSDS is in it’s data access layer of course. In fact, we created two different, but functionally equivalent implementations: one runs against SQL (LitwareHR’s original implementation) and a second stack that runs against SSDS. Of course they are mutually exclusive and all layers above the DataModel cannot tell the difference.

SSDS 上の LitwareHR 実装における中心は、もちろん、そのデータ・アクセス・レイヤの中にある。現実に、私たちは、同じ機能を持つが、構造が異なる2つの実装モデルを作成した。ひとつは、SQL に接するかたちで実行され(LitwareHR のオリジナル実装)、二番目のスタック・モデルは、SSDS に接するかたちで実行される。もちろん、それらは相互に排他的であり、また、DataModel よりも上位にある、すべてのレイヤは相違を伝えることができない。

EugenioP 09_04_03a

As illustrated in the diagram above, the key class is Repository<T>, which among other things encapsulates all access to SSDS, translates T’s into SSDS’s Flexible Entities and in general provides a higher level of abstraction on top of SSDS artifacts. For example, Repository deals with tenants, which are then mapped into Authorities & Containers by a provider. The default implementation of this simply does a 1:1 mapping between Tenants and Containers, being Authorities fixed (as specified in configuration), but because it is using a provider model, you can supply a more sophisticated implementation.

上記のダイアグラムに示されるように、キークラスは Repository<T> である。それは、他の階層にはさまれ、SSDS に対する全てのアクセスをカプセル化する。T に受け渡されたものは、SSDS の Flexible Entities に展開され、また、一般的には、SSDS アーティファクトのトップに、高抽象レベルを供給する。 たとえば、 Repository は tenants を取り扱い、続いて、プロバイダにより、Authorities & Containers の中にマップされる。 ここでのデフォルト実装は、Tenants とContainers の間で 1:1 でマッピングされ、(コンフィグレーションで指定されるように)Authority は固定されるが、プロバイダ・モデルが使われているため、さらに洗練された実装を提供できる。

T allows us to use typed objects that represent LitwareHR entities: Resumes, Positions, etc. so a hypothetical LitwareHR developer can write things similar to this:

T により、LitwareHR エンティティを表現するための、Resumes や Positions などの類型化されたオブジェクトが使用できるようになる。それによいり、想定される LitwareHR デベロッパーは、以下に類似したことを記述できる:

public class Position : ExtensibleEntity
{
public string Code {set;get;}
public string Location {set; get;}
}

Position p = new Position { Id = Guid.NewGuid(), Code = "Code_1", Location = "Location_1", };
p.Fields.Add( "YearsOfExperience", 15 );

In LitwareHR all entities derive from ExtensibleEntity which is just a simple helper base class that provides some useful fields such as: Id, a collection of fields, etc.

In the example above, Id comes from ExtensibleEntity, Code and Location are defined at design time by the developer and "YearsOfExperience" might be a field that a particular tenant is adding to this position. Because it is a tenant specific field, it is defined at runtime.

LitwareHR において、すべてのエンティティは、単なるヘルパー・ベースのクラスである ExtensibleEntity から生じる。そのクラスにより、たとえば field sのコレクションである Id のような、いくつかの有用なフィールドが提供される。上記のサンプルにおいては、デザイン・タイムにデベロッパーにより定義される、ExtensibleEntity/Code/Location から Id が生じている。そして「YearsOfExperience」は、このポジションに特定のテナントが加える、フィールドになるかもしれない。それは、テナントが特定し、ランタイムに定義されるフィールドになる。

Behind the scenes the Position entity will be translated into a SSDS flexible entity. Id, and Kind are intrinsic properties in SSDS and are automatically mapped into the Position.Id and typeof(Position).ToString(). The rest is mapped to flexible properties.

その背後において、Position エンティティは、SSDS の柔軟なエンティティに変換されるだろう。 Id と Kind は、SSDS の本質的なプロパティであり、Position.Id と typeof(Position).ToString() に自動的にマップされる。 残りのものは、柔軟なプロパティにマップされる。

All those details are of course handled by Repository<T>. Its interface is straight forward and looks like the one below, which is self-explanatory.

それら全ての細部は、もちろん、Repository<T> により操作される。 そのインターフェイスは単純なものであり、また、以下のように説明を要しないものである。

Insert( T );
T GetById( id );
IEnumerable<T> ListAll();
IEnumerable<T> Search( string query );
Delete( id );
Update( T );

So a complete snippet (taken from one of our tests) looks like this:

したがって、それらの断片をまとめたものは以下のようになる:

EugenioP 09_04_03b

Zachman Framework とは ?

John Zachman インタビュー

.NET Framework から DoD Framework にいたるまで、あらゆる階層と局面に存在し、アーキテクチャを探求する者に安らぎを与えたのちに、ブラックホールへと誘う悪魔のことばフレームワーク。 誰もが “枠組み” とは理解しつつ、それ以上の説明には窮してしまうフレームワーク。どこを調べても、定義されていないことば フレームワーク 。。 。  。   。    。

そうなんですよ。あらゆるフレームワークが、自身の定義については熱心に述べていますが、その大元となるフレームワーク という言葉の意味については、まったくと言ってよいほど、述べていないのです。

それは、私にとって大きな疑問でした。そして、もう 5年ほど昔になりますが、自分なりに手を尽くして調べまわり、そしてたどり着いたのが、この John Zachman インタビューでした。 ちょうど Windows Server 2003 がリリースされたころの、Fawcette Publication:Enterprise Architect の記事です(原本へのリンクも見つかりません)。

そのうち、Agile Cat に載せようと思っていましたが、DoD がプライベート・クラウドをさっさと立ち上げたと聞き、まてよ、たしか あそこは Zachman の、、、、と思い出し、読み返してみると、クラウドへの流れができあがった現在においても、まったく陳腐化していないではありませんか。

変わり者のフリをしていると、自分で認めている Zachman のコメントは、一筋縄ではいきませんが、禅問答と思えば、是また楽しです。

今回のイントロを含めて、4回に分けてポストしていきます。 ――― .A.C

―――――――――――――

フレームワークの構築

John Zachman は、エンタープライズ・アーキテクチャの父であり、彼の言う ”エンタープライズの元素周期表” とは、そこへの影響と効果を反映したものである。

Enterprise Architect Mag
Interview by Dan Ruby
Posted February 19, 2004

「あなたがエンタープライズ・システムを設計できるということは、他の何であっても設計できるということです」。そう語る John Zachman は、IBMの役員を引退した後、1987年と1993年に革新的な論文を執筆した。 それにより、エンタープライズ・アーキテクチャという領域を確立し、Zachman Framework for Enterprise Architecture (Figure) の作成へと至っている。 今日、この領域は、多くの企業や政府における情報システム部門の戦略的な目的として定着している。 彼は Zachman Institute for Framework Advancement (ZIFA) の代表として、メタ・フレームワークやアーキテクチャなどをテーマに、啓蒙活動を幅広く展開し続けている。

Zachman FW2  
Zachman Framework for Enterprise Architecture
(クリックで拡大)

この Zachman フレームワークは、エンタープライズの記述表現のための、二次元の分類スキーマである。

エンタープライズ・アーキテクチャにおける Zachman Framework とは?

Zachman Framework for Enterprise Architectureは、エンタープライズを表現するための分類スキーマである。そこで用いられるのは5×6のマトリクスのセル形式であり、組織におけるアクティビティとファンクションの全てのモデルが、そこに含まれることになる。

このマトリクスにおける水平のディメンジョンは、このフレームワークの作者であるJohn Zachmanが「疑問詞」と呼ぶ、エンタープライズを定義するための6個の Column により構成される。それぞれの疑問詞は、DATA、FUNCTION、NETWORK、PEOPLE、TIME、MOTIVATIONとして定義できるが、つまり、それらは、What、How、Where、Who、When、Why のことである。

垂直のディメンジョンは 5個の Row で示され、組織における個々のアクターたちが果す役割をカバーしている。つまり、それらは PLANNER、OWNER、DESIGNER、BUILDER、SUBCONSTRUCTOEとなる。このアクターたちは、その役割と一致する観点として、SCOPE、BUSINESS MODEL、SYSTEM MODEL、TECHNOLOGY MODEL、DETAILED REPRESENTATION を持つ。

それぞれの Row と Column の交差点は、特定のエンタープライズ成果物を含んだセルを形成する。Zachman の主張は、完全に設計されたエンタープライズは明示的な表現を持ち、エンタープライズの現状と将来のアクティビティについて記述するというものだ。さらに、水平・垂直セルにおける全てのモデルは、セル内の成果物と一致すべきだと主張する。

そのように、完全に記述されたエンタープライズは、ビジネス・ミッションとシステム実装の間に完全な関係を持つことができる。そして、リソースとプライオリティとプロセスの適用という、あらゆる観点において効率の良い組織が実現されるだろう。 もちろん、そのようなエンタープライズは現実には存在しないかもしれないが、Zachmanフレームワークを活用することで、既存の問題が分析され、将来の計画が導かれ、理想的な方向へと組織はリードされるだろう。

1987年の最初の発表以来、このフレームワークは General Motors や Bank of America、Health Canada などの Global 2000 の組織で適用され、また、エンタープライズ・アーキテクチのプログラムとイニシアチブを構成してきた。この Zachman Framework は、派生フレームワークを大量に生みだし、それぞれが特定の領域におけるエンタープライズ・アーキテクチャに対応してきた。そこに含まれるものとしては、Federal Enterprise Architecture Framework (FEAF) および The Open Group Architecture Framework (TOGAF)、Department of Defense Architecture Framework (DoDAF) などがある。

それに加えて、Zachman は ZIFA (Zachman Institute for Framework Advancement)という組織を運営している。 その使命は、エンタープライズ・アーキテクチャを理解するための概念と実装の推進であり、小規模な産業のコンサルタント、および、教育サービス産業、ソフトウェア会社、出版社たちにより、この彼の方法論はサポートされてきた。そして 2003年 11月に、Zachmanフレームワークに基づいた共通リファレンスの作成と、継続的な改善を促進していくために、EA Interest Group (EAIG) が組織された。

―――――――――――――

先日のZIFAフォーラムで、Zachman に広範におよぶインタビューを行った。 Part_1では、このフレームワークの成り立ちと、それを形成してきた手法と、発展してきた経緯について、Zachmanが解説する。 Part_2では、Zachmanのフレームワーク作成において、彼が及ぼしてきた影響について解説してもらう。そして、フレームワークとメンデレーエフの元素周期表との比較方法、および、今日のテクノロジーを用いたフレームワーク実装について、彼の意識を述べてもらう。 最後となる Part_3では、フレームワークの実装と、その理論的なアプローチ、現実世界のエンタープライズ・アーキテクチャについて解説してもらい、結論へと至る。

―――――――――――――

この後ですが、、、

フレームワークの構築 Part I
   エンタープライズ・アーキテクチャのルーツは何処に?
   エンタープライズの誕生
   エンタープライズに対する誤解

フレームワークの構築 Part II 
   変化と安定
   科学としての EA
   テクノロジーについて

フレームワークの構築 Part III
   フレームワークの実装
   原始性と複合性
   現実世界のEA

、、、という構成になります。

それぞれにリンクを貼りましたが、右ペインの Interviews からも参照できます。

<続く>

Zachman Framework Part I

フレームワークの構築  Part I

エンタープライズ・アーキテクチャのルーツは何処に?

EA: どのようにして、あなたのエンタープライズ・アーキテクチャに関する思考が実現したのかを理解したいのですが、それは、1970年代のビジネス・システム・プランニングにおける IBM での仕事から、どのようにして発展してきたのでしょうか?

Zachman:私たちは、企業における経営組織のフォーマライズに着手していました。私のフォーカスは戦略的なプロセスにありました。それ以前の、あまりにも長い期間において、管理プロセスがフォーマライズされなかったことを思い出してください。Peter Drucker が、彼の最初の重要な本である The Practice of Management を書いたのは 1954 年になってのことです。したがって、それまでの間、管理の正当性を示すものすら有りませんでした。それ以前のフォーマルな管理プロセスの、全体的な概念と言えば、外国における考え方でした。

私たちは、60 年代のタイムフレームの中で、管理のフォーマライズを確認し始めました。私は IBM に所属しており、また、私たちのチームは論理的なスタート地点である、情報戦略のフォーム化に対処しようとしていました。私たちは 60 年代の終わりまでに、それを上手く解決しました。少なくとも、IBM は内部で用いる方法論をフォーマライズしました。

その時、Dewey Walker は企業情報システムにおけるスタッフの、アーキテクチャのマネージャでした。当時の IBM は、中央集権化された情報システムを目標としていました。また、Dewey は情報システムの統率と計画を行う、5人のスタッフ中の 1人でした。彼はシステム・アーキテクチャに責任を持っていました。

そこで起こったことは、情報システム部門におけるチーフの辞任でした。そのため、個々の事業単位に情報システムを導入し、それを非中央集権化することが決定され、統率と計画を推進するスタッフの運命は風前の灯火になりました。 IBM は、Dewey Walker と彼のアーキテクチャに関する研究の結果を、大規模な得意先のためのマーケティング部門に配属すると、決定してしまったのです。つまり、どこかの顧客が、この素材に関心を持つかどうかを確かめようとしたのです。

したがって、その部署へ Dewey は移動し、彼の方法論に関するドキュメント化が開始されました。 そして、このアーキテクチャというものを研究するモチベーションを、顧客が持っているかどうかを確かめるために、数週間にわたる調査が実施されました。続いて、分析に2週間が費やされ、結局のところ Business Systems Planning(BSP)になりました。しかし、その後すぐに、Dewey は IBM を去ることになりました。

EA: それはセールス・プロセスのための方法論だったのですか?

Zachman: そうです。そして、それを IBM は売ろうと試みましたが、どのような効果があるのかを明確に表現できなかったため、買い手を捉まえることができませんでした。 「アーキテクチャ」だと IBM が説明しても、「何でしょう?」と顧客は理解を示さなかったわけです。 結局のところ、それらはマーケティングをサポートするものとして、顧客に提供されました。

ハードウェアを売るための独善的なものだと、人々は捉えたようですが、それは真実ではありませんでした。ハードウェアの注文も時々は生じたでしょうが、それを目的にしていた訳ではありません。 私たちは、情報システムのストラテジーを定義しようとしていました。 私はビジネス・システム・プランニング原則の提案者になっていたので、その一連の流れの中にいました。したがって人々は、BSP の作成者として私に会おうとしましたが、それは私ではなく Dewey Walker だったのです。

エンタープライズの誕生

EA: それまでの、あなたのキャリアについて訊かせてください。

Zachman: 私は Atlantic Richfield 社の担当者でした。 Atlantic と Richfield と Sinclair という 3つの石油会社を、統合するための支援策として BSP を利用しました。 そのためのスタッフを探し始め、Dewey Walker を見つけ、彼の方法論を採用したのです。 最終的に、私は BSP スタッフの責任者となりましたが、その役割は BSP の中で見通しを確かなものにすることでした。そして私たちは、そのフォーマライゼーションを拡張し、その方法論を発展させ始めました。 その後、IBM は標準となる方法論を作成したいと考え、1つの方法論を選択するという決定を下し、BSP が主要な候補になりました。しかし、私は「このパズルの、わずか一部(後の Zachman フレームワークのRow_1)しか持っていない」と言いました。つまり、ごく限られた領域でのみ作業していたのです。

航空宇宙会社と伴に作業し、航空機に関するアーキテクチャのビューを組み立てたことがありました。そのときに明白になったのが、アーキテクチャ上の表現です。それは単体ではない表現のセットであり、さらに、セットに対する語順だということです。 私が確認していることは、(What)何を作成して、(How)どのように作用させ、(Where)どこに構成要素を置き、(Who)誰が行い、(Why)何故それが起きるのかというふうに、一連のことを基本として記述が分類されるということです。さらに、それらの事象は、それぞれのビューに依存しています。 つまり所有者や設計者や構築者であるかどうかで、異なるものに見えるということです。

EA: そうして、フレームワークが生まれたのですか?

Zachman: そうです。実際に、まさに、それは私の机に上で考えられたものです。初期の作業について公表した時、このマトリクス全体の中の、おおよそ 3つの Column だけを書きました。また、1982 年に最初の論文を書き、それは 1984 年に IBM 内部に公表されました。 続いて 1987 年に、外部向けの出版物である IBM Systems Journal 用に、それをリライトしました。しかし、基本的な作業が行われていたのは 1982 年まででした。

IBM は BSP を標準の方法論にしたがりましたが、それでは不十分だと私は言っていました。 つまり、フレームワークの構造を、フォーマライズする必要があったのです。したがって、私はマトリクスの Row_1 だけを示すフレームワークをスケッチし、そこに必要となる全ての人々のグループを配置しました。それらのグループとは、DATA People や PROCESS People などのことです。私は IBM に対して、それを理解させようと試みました。

EA: そのとき、あなたはエンタープライズ・アーキテクチャと呼びませんでしたが。

Zachman: そうですね。それを「Framework for Information Systems Architecture」と呼び、また、エンタープライズという言葉遣いの中では考えていませんでした。その当時、私たちはシステムの実装を試みていました。 つまり、すべての思考はシステムに集約され、エンタープライズの統合について想像することはありませんでした。

第一に、充分に洗練された技術とは言えませんでした。1964 年に私が IBM に加わった時、1401 が 16K のボックスであり、それが大容量だとされていたことを考えてみてください。 それでは、エンタープライズ・レベルのモデルを考えることができません。 すべての道具がオノやノミのようなものであれば、百物語のビルディングは考えられません。考えられることは、せいぜい丸太小屋です。 しかし、ブルドーザーとクレーンが使えれば、はるかに複雑な対象について考えることができます。

1987 年に改訂された論文が公表されるまでに、私はエンタープライズ全般について考えるようになり始めました。 その論文で提起された問題は、エンタープライズ全般を包含するには足りないものでしたが、アペンディックスで他の 3つの Column について説明しました。

エンタープライズに対する誤解

EA: いつ頃からエンタープライズという用語を使い始めましたか?

Zachman: その言葉を使い始めたのは、マトリクスの Row_2 をビジネス・モデルと呼んでいたことを、公共部門の人々が問題視したからです。彼らはビジネスに従事していないので、Row_2 に当てはまらなかったと言いたかったのでしょう。しかし、それは違います。この概念的なモデルの考え方は汎用的なものであり、公人であっても個人であっても違いは生じません。しかし、ビジネス・モデルからエンタープライズ・モデルへと Row_2 の名前を変更してしまいました。 公共部門の人々が受入れられるように、中立な名前を見つけようと試みたのです。

しかし、そうすることが正しくなかった理由は、現実にはマトリクス全体がエンタープライズであるのに、1列の Row をエンタープライズと呼んでいたことにありました。 したがって数年の後には、人々の誤解を払拭するために、それを正す必要が出てきました。したがって、その呼び名をビジネス・モデルへと戻しました。そして、今日に至るまで、それが公共部門で問題視されることはありませんでした。 公共部門の半分がアウトソースされているため、それがビジネス・モデルであることでトラブルになることはありません。その問題は去り、私はオリジナルのネーミング協定へと戻りました。いずれの選ばれる言葉も、何らかのお荷物を背負っています。

言葉から離れて、エンタープライズにおける考え方を理解することが重要です。エンタープライズと言う場合、何を言いたいと思いますか? 1つの事業単位、また、1つの利益単位部門や、利益単位部門のクラスタ、そして全体の価値体系を意味することができます。あるいは、単に1つの部門や、部門での1つのアプリケーションを意味することができます。それは分析の粒度の問題です。

EA: そうなると、フレームワークは如何なるビューに対して作用しますか?

Zachman: まず、フレームワークは自分では動くことができないものです。選択される境界が何であっても、まず、定義を行います。続いて、そのエンタープライズの定義を誰が所有するかを定め、さらに設計者や構築者を、そしてプロセスやロケーションなどの全てを決定します。それらは、まったく境界に依存しないものです。そのため、分析したいもの全てを分析するために、フレームワークを使用することになります。

EA: 1 つのフレームワークを、他のフレームワークと関連させられますか?

Zachman: はい。複数のフレームワークを持ちたいなら、また、複数のエンタープライズを持ちたいなら、それに等しいものを誰かが定義しなければなりません。そうでなければ、エンタープライズ間の如何なる共同作業もあり得ません。

EA: 第二の論文を公表した時点で、あなたは IBM を退職しました。そして仕事を続けていますね。

Zachman: はい。1993 年に共同執筆者である John Sowa と、Systems Journal で第二の論文を公表しました。 彼は記号学と存在論のエキスパートであり、とても優秀でした。 彼は第二の論文を書くようにと、私を励ました人々の中の一人でした。 この時、私は 6個の Column によるフレームワークを公表しました。 この第二の論文は「Extending and Formalizing the Framework for Information System Architecture」と呼ばれました。

ーーーーーーーーーーーーーーーー

EA: Part_2では、フレームワーク作成における Zachman の影響力について解説する。また、フレームワークと元素周期律を比較し、今日のテクノロジーを用いたフレームワーク実装について、彼の意識を探っていく。

<続く>

 

Zachman Framework Part II

フレームワークの構築  Part II

変化と安定

EA: その周辺で、他のことも起こっています。どんな影響を感じましたか?

Zachman: そうですね。この世界はアーキテクチャに対処する準備が、まだ出来ていなかったと思われます。より迅速なコード記述を支援するなら、それが何であったとしても、この世界が求めるものでした。 アーキテクチャを目指す私たちは、多くの実装で使用されるかもしれない設計上の事柄に取組み続けていました。しかし、ほとんどの人々は、コード出荷することだけを望みました。 したがって、私たちは流れに逆らって泳ぎ続けているのです。

EA: Hammer  と Reengineering the Corporation  については?

Zachman:それは 1993 年に発行された、ビジネス・プロセシングのリエンジニアリングに関する本でしたね。 現実に、用語としてのビジネス・プロセスを一般化したのは、その本における Mike Hammerと Jim Champy でした。 私の最初の論文を読んでもらえれば、何を機能的なフロー図として呼んだのか、それが書いてありますが、それらの名前を私たちは持っていませんでした。

私には、リスク管理のコンサルタントを務めている友人が、National Transportation Safety Board にいました。 彼が対象にしていたと思われるのは、穀物倉庫での爆発や、石油プラントでの災害、飛行機事故などであり、また、入力と出力のプロセスを備えた、機能本位なフロー図と呼ばれるものを作っていました。私は、それが自分のフレームワークの Column_2、Row_2 に必要なものだと悟りました。したがって、私は彼の言葉を使用しました。

そして、Hammer と Champyがビジネス・プロセス・モデルを一般化し、その用語が現代の語法に入ったときに、私は用語を変更しました。これからも、私は一般的な語法に順応させるために変更を行うでしょう。しかし、このフレームワーク自身変わっていません。

EA: フレームワークに影響を与えると思われる開発が、近年に数多くあるとしてもですか?

Zachman: このフレームワークは変わっていません。WHAT、HOW、WHERE、WHO、WHEN、WHY は何千年もの間、存在し続けてきました。それは、数千もの事象の周辺にあります。要件やエンジニアリング、生産、そして概念的で、論理的で、物理的な考え方は、何千年も存在し続け、また、数千もの事象の周囲にあり続けるでしょう。分類の論理構造であるスキーマは、変わっていません。

現在の共通事項である、名前は変わります。また、いくつかの名前を、私は変更してきました。 ビジネス・モデルに対してエンタープライズ・モデルという用語を用いたときには、そのことを後悔しました。 私は、それらを、そのままにしておけば良かったと思いましたす。したがって、私は名前の変更について、とても注意深くなりました。私は、フレームワークが変更されているという印象を、人々に与えたくはありません。 それは、変化していないからです。

EA: 他の人々は、あなたの成果を選択し、それを修正しました。それらの人々が使用するフレームワークに関するあなたの見解は?

Zachman: 人々は訪ねて来ては、常にこう言います「John、フレームワークは本当に良いが、この Column を忘れただろう」と。 それを忘れたのは私ではないと、私は言うでしょう。過去 7,000年において、人類が働いてこれたのは、WHAT、HOW、WHERE、WHO、WHEN、WHY があったからです。しかし、あなたが何かを発見するならば、それは大いに重要であるに違いありません。

もちろん、私は変り者のふりをしています。この分類スキーマは固定されており、そこに交渉の余地はありません。 人々がフレームワークに他の Row や Column を加えたいのに、私が答えることといえば、その問題を扱うための方法が他にあるだろうということです。 彼らには、Row や Column を加えたい充分な理由があるかもしれませんが、それに応対するための良い方法があるはずです。メンデレーエフが元素周期律の中にカラムを忘れたと、あなたは主張できません。

科学としての EA

EA: それは面白い例えですね。エンタープライズ・アーキテクチャのためのフレームワークと、元素周期律が比較される訳ですが、あなたは科学としてEAを見ますか?

Zachman: フレームワークを作成した時に、それに気付いていませんでしたが、結局のところ私が行ったのは、エンタープライズでの記述の表現のための、元素周期律を定義したことだと思います。それはスキーマである、二次元の分類システムです。 それは、元素周期律にまさに似ています。 何本もの電子の輪により、原子核の中の中性子と陽子の数で要素を分類します。

今、確信しているのは、メンデレーエフは何を行っているかを知りながら、元素周期律を定義しようとしていたということです。対照的に、私は何を解決しようとしているか、自分では知りませんでした。 私は、単に問題を解決しようとしていただけです。 しかし、それが元素周期律に似ていると数年後に誰かが言ったとき、「おやっ、それは正しい」と私は言いました。それは、ちょうど元素周期律のように標準化されたスキーマです。 金は1個の特別なセルの中にいて、他のセルへと行ってしまうことはありません。論理的な実体は、1個のセルの中に在り、他のセルの中には在りません。 アプリケーションの機能は、1個のセルの中に在り、他のセルの中には在りません。

EA: しかし、あなたが実態について記述するとき、現実には、それが何であるかに応じて、それはより具体的になります。

Zachman: そうですね。そのように私たちは考えませんが、エンタープライズを具体的に考えるとき、それは他の何かと同じくらい具体的なものになります。私は、システムというものがエンタープライズであると主張することができ、また、あなたは、手動もしくは自動のシステムを持つことができます。 経営者は、何らかの自動システムを用いることで、システムを実体のあるものとして考えないかもしれません。あなたは、電子の1握りの断片をもつかむことができず、また、それらをはぎ取ることも、構成を変更することも、詰め直すこともできません。実体があるように見えないほどに電子は小さいものですが、それらが存在することを、私は保証します。

EA:そうなると、科学的な用語を使用するとき、あなたはエントロピーなどの物理の概念を文字通りに取り入れるのでしょうか?

Zachman: そうします。何ごとも、偶然に起こりません。もし誰かが、これは物理学ではないと言えば、私はこう言うでしょう。 「OK。それでは、それが何故に、その方式で動くのかを説明してください。何故に、企業内で事象の観察が可能なのか、統合ができないのか、連携ができないのか、そのような管理に挫折するのか説明してください」と。それについて説明できなければ、それは何らかのマジックであり、それを私は信じません。

EA: それが科学である以上、その実験が可能であるべきですね。

Zachman: 確かに、そうです。それは既に実験されています。あなたは、モデルを明示的にできますし、あるいは、それを暗黙にしておくことも可能です。それが暗黙の場合、あなたは、それに関する仮定を作っています。 そうです、続けて実験が行われ、あなたは、モデルを明示的にします。その後に、合意が得られます。

私たちが経験に基づき検証してきたのは、複数のデータ・モデルの設計が可能であれば、数多くのアプリケーションで再利用が可能になることです。それは確立されます。それは未決の論点ではありません。 何が明らかではないか、あなたに伝えましょう。 明らかではないことは、あなたが、多数のアプリケーションの中で使用できるコードを書けるかどうかです。ハードウェアとシステム・ソフトウェアを、数多くのアプリケーションから再利用できることは明らかです。しかし、アプリケーションにおいては、すべてを1つでという訳にはいきません。 私たちは再利用が可能なコードを得ることができません。

EA: たとえ私たちが、オブジェクト・モデルを持っていてもですか?

Zachman: では、私に何かを見せてください。オブジェクトは実装の視点で、とても良い考え方ですが、あなたは再利用性を持ったオブジェクトを得ていますか? それは完全な考え方でしたが、あなたが再利用性を備えたオブジェクトを得ていると、とてもではありませんが、私はそれを確信できません。

テクノノロジーについて

EA: それがもたらすものが、技術に関する全体的な主題ですね。フレームワークと実装との関係において、あなたのポジションは何処になるのですか?

Zachman: 私は、ニュートラルを維持しようとしています。私が早い時期に感じていたのは、実装を行うのに一方通行は存在しないということです。つまり単一のツールや方法論ではありません。 したがって、単一のツールや方法論と、フレームワークを関連させることを望みませんでした。 何故なら、その方式が取られてしまうと、直ちにそう見られてしまうからです。この元素周期律は Dow Chemical 社に所有されている訳ではありません。それは、世界に属するものなのです。

したがって、私は慎重にニュートラルを維持しようとします。私は毎日ツールを使用するわけでもなく、それらに関して多くの経験を持っていません。 もし、あるメーカーが彼らのツールに、私のメタモデルをマップするるので支援してほしいといえば、そうするでしょう。しかし、それを行う唯一のツールがあるとは言わないでしょう。

EA: フレームワークを実装するためのツールの他には、どのような汎用テクノロジが関係を持つように見えますか?例えば、私はUMLについて考えていますが。

Zachman: このフレームワークは、テクノロジに対して完全に非依存です。あなたが鉛筆や紙やファイル・キャビネットを使用していれば、あるいは、スーパー・コンピュータでも何でも使用していれば、そのフレームワークこそフレームワークです。テクノロジは、Row_4 や Row_5 の中に具体性として現れる制約です。しかし、このフレームワークは全くテクノロジとは関係がありません。

新しいテクノロジーの考え方が登場する場合、例えばUMLがそうですが、その質問は、こうなります。 それは何を生産し、あるいは合成し、基本としますか? それにより、あなたが知ることになるのは、実装を行うために、あるいは、アーキテクチャを実施するために、それが設計されているかどうかでしょう。それが実装である場合、そのために行うことは何もありません。それは単に、アーキテクチャを実施するために設計されていないことを意味します。

エンジニアが実装とアーキテクチャで行うべきことの違いを理解すると、UMLのようなツールや記法の使用が可能となり、行うべき全てを行えるようになります。 しかし、このマジックはエンジニアリングにあり、グラフィックの記法の言語にはありません。

EA: Services Oriented ArchitectureおよびWebサービスはどうですか? もしユートピアがあって、まさに正しい場所で全てを手にするなら、あなたがシステムをつなぎ合わすことを可能にする技術が、そこにあります。

Zachman: 再び、あなたは私に何かを示さなければなりません。おそらく、それは良い考え方ですが、誰かがWebサービスを定義する必要があります。 そこには、データおよびプロセス、ハードウェアとシステム・ソフトウェアの概念、プレゼンテーション、ビジネス・ルールなどがありますか?何がそこにあるのでしょう? そこで加える多くのものがありますが、それが次の実装において再利用できそうとも思えません。

そこで、プリミティブな構造からWebサービスの作成が可能だと、あなたがそう言えるなら、Webサービスが実装作業を行う上で、実際に面白い考え方になるだろうと、私は理解できます。その一方では、あなたが合成物をパッケージングしているなら、合成物の再利用における最高値はあまり高くありません。

あなたは私に、その Webサービスこそが答えだと言えますが、それを私は以前に数えきれないほど聞きました。 この CASE ツールを使ってくださいと彼らは言い、また、あなたは働くことも考えることも不要となり、全てのプログラマたちを手放せるとも言いました。私はオブジェクトに関しても、それを聞きました。 やはり、あなたは働くことも考えることも不要となり、全てのプログラマたちを手放せるようです。 そして、いまはWebサービスに関して、その時がきました。 それは現実に偉大なテクノロジなのでしょうが、おそらくそれがエンタープライズ・アーキテクチャの問題を解決することはないでしょう。

EA: EA Insterest Group について、および、フェデラル・エンタープライズ・アーキテクチャでの最近の開発、そして今日における現実世界でのエンタープライズ・アーキテクチャについては、Part_3 における Zachman のコメントを参照してほしい。

< 続く >

Zachman Framework Part III

フレームワークの構築 Part III

Interview by Dan Ruby
Posted March 18, 2004

フレームワークの実装

EA: 最近になって EA Interest Group [EAIG] が、あなたのフレームワークの理解と使用法を促進するために形成されました。それについてのコメントは可能ですか?

Zachman: 今日に至るまで、Zachman Framework における全ての研究は、私たちの仕事の時間外で行われてきました。 いくつかの他のフレームワークは、その作業に対して費用の発生する組織と人々によりサポートされています。対照的に、Zachman Framework の周辺での思考に対して、何の対価も発生していません。 EAIG における含意は、何人かの人々の望みであり、それは、この最先端技術の促進であり、また、エンタープライズ・エンジニアリングのプロセスを科学的なものにすることです。それが定まっている意思です。

それが意味するものは何でしょうか?そうですね、私たちは物理学におけるいくつかの実験を、研究室で行いたいと思うかもしれません。 それが切り替えられるとき、何が起るのでしょうか? つまり変化は、どのように影響するのでしょうか?メタモデルは何に似たことをするのでしょう? 全てのセルにおける例は何ですか? どのようにして、厳格にグラフィカルなモデルを定義しますか? どんな種類のツールが有用ですか?そこには処理することが可能な一団があり、また、私たちが行うことが可能なものから、おそらく、あなたは開発を加速できます。

EA: したがって、あなたの用語を使って製造されるエンタープライズの、その方式の観点から見ると、それはまだ早いですね。

Zachman: 私は、最先端技術が進化する必要があると考えます。それは、科学革命における Thomas Kuhn の理論に似ています。 発明が起こるべきタイミングで、おそらく、それは起こるでしょう。 それは人間の作用ではなく、時間が作用するものです。 私は、エンタープライズ・アーキテクチャが、そのタイミングにあると思います。

私たちは、セキュリティで困っていることを知っています。それをフィックスするには、アーキテクチャにおける作業の他に方法はありません。 私たちが必要とする全ては、大変革か災害のいずれかです。 9/11 は、多くの人々の注意を促しました。

EA: そして、それはエンタープライズ・アーキテクチャにおける関心を育成しましたか?

Zachman: それが連邦政府に対して何を抱かせたかを見てください。それが人々に要求させたのは、エンタープライズとは何であり、また、どのようにして私たちは、それを統合するのかということです。 それらの全てのエンタープライズを、DHS(Department of Homeland Security)の中に組み入れ、また1人に担当させても、この統合に関する問題は解決しません。 何のマジックも起きないでしょう。 ある時点において、現実のエンジニアリングの作業が完了されるべきだという、明確な認識に到達するのは、それらを彼らが統合したいと希望する場合です。

EA: EAにおける大規模な開発の1つは、連邦政府のエンタープライズ・アーキテクチャです。そのアプローチにおける、あなたの役割は何ですか?

Zachman: 私が心から望むのは、彼らの試みが上手くいくことですが、それは、私たちが過去にいた場所から繰り返してやって来ます。彼らは、システム開発プロセスを改善するように定められています。 したがって、基本的には、彼らの機密はプロセスに基づくものです。もし、作成された成果物があるなら、それらは、あるプロセスとの関係を持ちます。つまり、合成された機密となります。

基本物と合成物の組合せに関する計算は、そのための議論が困難です。もし、あなたが1つの事象を持っていれば、それが1つの事象によるセットであることを、人々に納得させることが可能です。事象を結合させると直に、合意を得るための可能性は低下し始めます。3つの事象を組合せると、それ自体を覚えていることができなくなるでしょう。

大きな違いは、私のフレームワークが再帰的であるということです。対象が何であれ、あなたは分析のために、それを使用できます。 同じフレームワークを用いてメタ事象を分析し、また、フレームワーク間のメタ関係を定義できます。 他のフレームワークは一度に1つ、つまり複合的な具体化は、時間軸の一点において行われます。そのため、あなたは事象の処理のために、それを使用することができません。 それに反して、Zachman Framework は全体的に汎用的であり、対象が何であっても単なる記述的な表現を分類するだけです。

原始性と複合性

EA:しかし、「エンタープライズ・アーキテクチャ」の全体的なフィールドは、まさに、あなたのアプローチより広い。そこには、多くの定義があります。

Zachman: 私はあなたに何を伝えましょう。私はJohn A. Zachmanです。 私は単なる1人の人間です。 私は組織を持っていません。私は何もマーケティングしていません。 人々が私にフレームワークについて、およびアーキテクチャについて話してほしければ、私は喜んで話します。 非常に大きな会社があり、彼らは移ろい易いフレームワークを作成していて、私をコンペティタであると理解しています。しかし、私はマーケティングを行っていません。

ほとんどのフレームワークは、異なることを行おうと試みています。私は、記述的な表現の分類を試みてきて、また、彼らは、ほとんどの場合はプロセスですが、何か他のものを分類しようと試みてきました。 私のフレームワークの特性が消え去らないことを、私は目にするでしょう。他のものが、おそらく消え去るのは、それらが一時的な事象や合成された事象を分類しているためです。

EA: あなたの理論的なアプローチがエレガントであることに疑う余地はありませんが、人々が問題を解決することの支援という点において、どれほど成功するものでしょうか?

Zachman: まず、私がトップダウンで事象を掴んでいることを理解してください。私はプログラマではありません。 さらに言えば、たとえ私が、このポイントにおいて、多くのモデルに知っていても、もしモデルを構築して欲しければ、私以外の誰かを望むでしょう。

そうは言うものの、進行中のモデルでは、とても数多くのことに成功している実装があります。論理的なデータモデルと、物理的なデータ設計とデータ定義を行うことができますが、それは、エンタープライズ全体のスコープを横断して再利用が可能な実装の形態におけるものです。私たちは、それを既に検証しましたが、それは未決の問題ではありません。

私たちは、構造化された方法論を実施する方式を知っています。私たちは、構造化プログラミングラミングの方法を知っています。 私たちは、構造的な設計の方法を知っています。 私たちは、構造的な分析の方法を知っています。 私たちは、構造的なビジネス・モデリングの方法を知っています。

しかし、より高度なものが望まれるなら、そのためのモデルは構築されていません。 Column_4 のワークフローですが、その多くを私たちは未だに知っていません。 Column_5 と Column_6 も同じです。 おそらく、それに関する多くのことを誰かが知っているのでしょうが、私たちの分野である、情報システム・コミュニティにはいません。

したがって、フレームワーク全体の実装に成功した人がいるのかと尋ねられれば、私たちの知るかぎり誰もいないというのが、その答になります。

EA: そうだとすると、それぞれの組織は、どのようにしてフレームワークの実装に取り掛かりますか?あなたは気に掛けないと言いましたが、それがトップダウンやボトムアップだからですか。 しかし現実には、どのようにして組織や企業は、それに取組み始めたら良いのでしょうか?

Zachman: 私たちが現実の世界で複合的なモデルに対処するために、それを適切かつ素早く行うには複雑すぎるように見えます。したがって、私たちは、期間やコストがかり過ぎることに対して断念する傾向にあります。 それは、私たちが行いたくないものなのです。

しかし、それは間違いです。あなたは、腰を落着けて腕まくりをすべきです。 あなたがモデルを増築することに、何の妨げもありません。 私が言いたいのは、基本的なことを行うべきだということです。何人かの人々は、経営陣に対して最初に購入を説得するために、複合的なことを行う必要があるかも知れず、また、基本の構築を提案することになるでしょう。 あなたにとって、それが必要であれば、複合的なことから始めればよく、その後に基本的なモデルへと要素を分解します。

現実世界の EA

EA: つまり、痛みを持つ場所が、スタート地点と言うことでしょうか?

Zachman: 私が言いたいのは、まさにそれを行うことです。あなたは、論理的なデータモデルをどうしたら良いかを知っています。 それに取りかかりましょう。 あなたは、意味的なモデルを取扱う方法を知っています。 それを構築しましょう。あなたは、データ・ベース設計方法を知っています。 それを使いましょう。 それらにより維持されるものは何ですか? そう。長い時間と大きなコストがかかります。 しかし、それを人々は成功裡に行っています。それはフレームワークに関連した論点ではありません。 それは文化的な問題です。

EA: ほとんどの設計者が、いまの時点と、いまの位置に基づいて考えています。そのため、現実の世界の状況を反映する複合的なモデルに換えて、基本に注目することは困難ではありませんか?

Zachman: 複合的なモデルは、実装を行うための非常に有用なものとなり得ます。しかし、それらが私たちに対して、エンジニアリングと設計の目的における達成をもたらすことはありません。 その一方で、このフレームワークを使った上で、「何故、私たちは相互運用と再利用が得られない?」あるいは「何が、関連性における問題なのか?」と訊ねるなら、その問題の在る位置を知ることができます。あなたは相互の関係を理解します。 つまり、それを定義していなければ、何も得られないということです。

この多種多様な複合的なモデルによる問題は、その事象が密に結合されていることにあります。私たちは長い時間をかけて、それを知りました。 プログラミングにおいて私たちが知っているのは、データがインストラクションから独立して変化するため、データをインストラクションから分離すべきだということです。私たちは、ハードウェアおよびシステム・ソフトウェアを、プロセスとデータとビジネス・ルールから分離することも知っています。 あなたが、最低限の時間と混乱とコストで実体を交換したければ、独立した可変性の分離は重要です。したがって、この問題に関しては、私たちは基本を構築していないことになります。

EA: その理由は、実装の世界の中に設計者がいるからですか?

Zachman: 大部分の設計者は実装の世界からやって来ます。彼らはシステムの人々であり、彼らはインプリメンテーション指向の傾向を持ちます。 その世界自体が、その方法で進んでいます。 現実に、それらの人々は、平均以上にアーキテクチャについて考える傾向にあります。

EA: 彼らではなく、彼らの組織は、そのための準備ができますか?

Zachman: それは、もう一つの問題です。一度、この基本的な考えを理解し始めれば、それを否定するのは、かなりの困難を伴います。 一度、重力の法則が有効であると理解したら、それが無意味だと言いきることが難しいのと同じです。

<終わり>

 

About the Author

Dan Ruby は Fawcette Technical Publications の Enterprise Group 編集責任者です。

 

Blog at WordPress.com.