「一芸を締めくくる」
       椿 正明



 
辻さんに初めてお会いしたのは1979年の秋だから、28年前になる。私は千代田化工建設を辞めて日本システミックスに入社したばかり、JMAS社と一緒に郵政省の次期簡保システムの基本設計のコンサルを担当した時だった。こちらは上野則男さんと私、JMASからは北川さんと辻さんがメンバーだった。郵政省での検討会の前日にJMASのお二人と事前打ち合わせをしたが、辻さんの資料はまるで何にもできていない。大丈夫かなと思っていると翌日にはちゃんとした資料ができていて、桑門さんや、うるさ型の鶴谷さんの参加された会議をなんなくクリアする。私にはとてもまねのできない「一夜漬けの天才」という印象を持った。

 その後も、ヴァル研究所の(故)島村さんにもご協力いただいて一緒にセミナーをやったり、継続していろいろなお付き合いをいただいたが、DOAについての会話はなく、私のDOAをどれだけご理解いただいているかはさっぱりわからなかった。その謎はしかし、最近の新MIC(多様一芸人くらぶ)で分かったような気がした。「経営と情報通信」研究会には確かに、ASP屋から気功に至るまで、「一芸人」がたくさんおられる。辻さんはその「興行主」で、その興行を楽しんでおられる。会社を作ったり、あるひとつの道を追求したりするのは辻流ではないのだ。

 それならば、一芸人たるもの、存在を忘れられないように芸を披露しなければなるまい。そこで、「経営と情報通信」に参加した初めのときに一度話をする機会を頂いて以来の、最後にもう一度、まだ現役の方もいらっしゃるのだし、やや硬い話になるが、DOAがらみで最近私の考えていることをお話しし、一芸を締めくくることにしよう。


 「DOA+コンソーシアム」を始めて4年になる。システムの基盤はデータだから、これをしっかり捉えるDOAを育ててもっと普及しようというわけである。DOAにも流派がいろいろある。ざっくり言えば、DOAはデータモデル図の書き方と手順方法論から成る。OOの場合は図の書き方を統一しUMLができたので、これと同様「データモデル図の書き方を統一せよ」との声も聞こえているが、やはり書き方だけでは不十分と、考え方・手順・方法論などを比較検討しており、それらの異同がはっきりしてきた。

 まだコンセンサスは得られていないが、流派の違いの発生する根本は次の2つ、

@スコープを、
(A)個別アプリごとに考えるか、
(B)アプリ横断の全社で考えるか

A進め方を、
(C)実装独立の段階ではRDBの大まかな構造を決めるにとどめ、実装段階で詳細を詰めるか、
(D)実装独立の段階でデータの整合性を完成させるか

になるようだ。そして、欧米系の方法に基づく一般のDOA方法論はA・Cであり、我々のTHモデルに基づくPLAN−DB方法論はB・Dである。


 (A)はユーザ部門のニーズに直接応える自然なアプローチであり、パッケージベンダーやSIerに取っ付き易い。しかし、アプリ横断のデータ流通の難しい孤島システムを作り易い。一方、(B)はアプリ横断のデータ流通ニーズを見越してリソースデータ(マスターデータ)の一元化などをあらかじめ仕組んだ方法である。システム化の初期段階は、このような業務横断のデータ流通のニーズは希薄なため、会社にもよるがプロジェクトの立ち上げが難しい。

 (C)は、過去の経験を生かす、いわゆるトップダウン方式と呼ばれるのもで、実装独立にはあまりこだわらずRDBの物理設計をターゲットにするため、一般にDB設計チームと業務設計チームが分業するケースが多い。一方(D)は、加工データ処理に登場する、物理DBにストアされないデータを含めて、すべてを対象にデータモデリングして整合性をチェックする。このため、データチームとプロセスチームの分業はなく、分業は実装設計に入ってからになる。また、実装独立段階で処理をトレースするためSPF(Schema Process Flow)チャートを活用する。

 先憂後楽型の宿命で顧客の少ないわれわれの方法論は、これまで苦戦してきたが、SOAなど業務横断のデータ流通のニーズが顕在化する時代になって、今後が楽しみと期待される。

 今年の第一の話題はSOAである。「従来の製造の観点ーロジックの再利用などーからモジュールを切り出そうと言うのでは基準がはっきりしないし、個人差が出やすいから、サービスの観点からモジュールを切り出そう」と言うのがSOAだと、私は考える。すなわち、モジュールをサービスで隠蔽するのだ。サービスとは何か。ユーザとの接点、IOではないか。これは、IOやメッセージで処理を隠蔽するとするわれわれの方法と同じではないか。

 「DOAの反対はPOA(Program Oriented Approach)だ」と言ってきたが、「SOAの反対もPOA」だと言える。それなら実装独立でもあり、DOA=SOAとなるではないか。違うのは、DOAではSQLのような言語によってプロセスがデータにアクセスするものとの暗黙の前提があるが、SOAではWebサービスのようなもう少し自由なインターフェースでデータにアクセスするところではないか。われわれは、「イベントデータは出来事の記録、リソースデータはこれを記述するための用語。リソースDBは広辞苑のようなもの、これがアプリごとにいくつもあるのはまずい、一元化せよ」と30年言い続けてきた。SOAがはやりだして、アメリカではMDM(Master Data Management)がはやりだしている。

 DOAでは、通信場を介してプロセスがコミュニケーションする。通信場/DBを先に設計−ポイントは標準化−する。これによってHub & Spokeができ、N*N個の通信パスがN個になる。これがDOAの本質だが、SOAにも全く同じことが言える。われわれが考えているDOAアーキテクチャはSOAアーキテクチャと同じになるに違いない。これが今、「DOA一芸人」の私が考えていることである。

(注)SOAとは、既存アプリはそのまま使い続けながら、最小の追加・変更により他アプリとのデータ流通を実現するものと考える。したがって、既存アプリレベルの通信場/DBのほかに、アプリ横断の上位の通信場を設け、アプリはここで通信する。このハイレベル通信場設計に当たっては、アプリ間でやり取りされるメッセージ/トランザクションを素材にDB設計することになる。そのとき得られるリソースは、全社で一元化されたリソースになる。これと異なるリソースを持っているアプリは、メッセージ交換に当たっては、全社標準にあわせるための変換が必要になる。この変換には、ハイレベル通信場を規定するリポジトリが使われる。ハイレベル通信場は、通常はデータウエアハウス機能を持つDBと考えるのが素直であるが、パーフォーマンスに問題がなければ仮想化されても良い。その場合、通信場の実体はリポジトリ、通信の主役はESBということになる。なお、ESBはEAIのようなバンドエイドSOA−個別のPeer to Peerの通信でパスがN*NのままのSOA−にも使われうるので注意が必要である。
 [
2007.12.18


 特集企画 目次へ