今週はXMLコンソーシアムのイベント、第3回XMLコンソーシアムWeekが開催されている。昨日は「SOA Day」ということで、SOA(サービス指向アーキテクチャ)をテーマとして様々な講演が行われた。私も午後の一コマで「SOAってどうなの?」と題したBOFに参加させていただいた。
事前の打ち合わせで日本ユニシスの牧野さん、ブレイニーワークスの芦田さんと話をしていて、「SOAに対する見解はXMLコンソーシアムのテクノロジー部会の中でもバラバラで、少なくとも単に技術的なパラダイムとして足並みを揃えることは難しい」というようなことを言われていた。
このBOFでも様々な議論がなされ興味深い発言が多くあったわけだが、改めてここで「そもそもアーキテクチャとは何だったか」ということを考えてみることにした。
以前にも「WebサービスとSOAに関する議論」でモデリング技法とアーキテクチャを混同すべきでないとのご指摘もあったが、その整理の意味も込めて今回も敢えてモデリング技法の権威の発言をここに引いてみたい。
ちえの和WEBページ:コンピュータ偉人伝:エドワード・ヨードン
オブジェクト指向分析(あるいは他の手法でもよい)はソフトウエア開発を成功させるための鍵かと尋ねられた。 それに対する答えは次のようなものである。 イエス、一貫した技術的アプローチを持つことは非常に意義がある。 しかしソフトウエアの手法が効果的であるのは、それが人々の相互のコミュニケーションを助けることができる場面に限られる。
ここで述べられていることに別解を与えるならば、モデリング手法とは関係者(例えば開発チーム)全体でなるべく平易に理解を共有するための共通言語であり、コミュニケーション基盤である。
一方アーキテクチャは、関係者全体で完全に共有することが目的ではなく、むしろ各ドメインに適切な境界を設定することが重要となる。密なコミュニケーションが必要な機能セットを見つけてサブシステムとして定義し、互いに疎なコミュニケーションでよい境界を見つけてインターフェースとして定義していく。その結果、なるべく個々が全体を意識しなくても仕事を進められるようにすることでコミュニケーションのオーバーヘッドを最小化しようという考え方と言える。
最も判りやすい例が、ネットワーク・プロトコルのOSI参照モデルで採られたレイヤードスタックのアーキテクチャである。上下の層をそれぞれに分離することができ、例えばトランスポート層といえばTCPだったりUDPだったりするが、下のネットワーク層にはIPを共通して用いることができる。つまりこのアーキテクチャの価値は各レイヤーの独立性であり、言い換えれば各スタックを入れ替えても上下のスタックは問題なく動くということであった。少なくともタテマエとしては。。。
しかし、実際のところアーキテクチャというものの効果は見えにくく、正しくレビューされたこともない。
例えば、先ほどのOSI参照モデルでもTCPやUDPとIPは不可分だし、SocketやHTTPもTCP/IPと不可分だ。つまり、上層のものが下層のものに対する依存性は避けがたい。下層に代替選択肢を与える場合には、データリンク層におけるイーサネット(IEEE802.3)と無線LAN(IEEE802.11)のように、実績のある方を模した互換性・透過性が求められることになる。
そう考えると、例えばTCP/IPはHTTPやSMTPといったアプリケーションの存在によって現在の地位を得たのであり、その成功はTCP/IPそれ自体の革新性にあったかどうかは今となってはわからない。つまり、アーキテクチャというものは偶発的なデファクト・スタンダードを生み出す世界観とも言うことができる。(例えばIPv6がずっと苦戦しているのもアドレス空間の拡張というIPの主機能で真っ向勝負しているからで、イーサネットに対する無線LANのようなオルタナティブたるに相応しい別軸での価値が出せていないからに他ならない)
Tim Oreillyの言う "A platform strategy beats an application strategy everytime." (プラットフォーム戦略は常にアプリケーション戦略を打ち負かす)が真実であると思われるのは、この強固なルールが作用しているからに他ならない。一旦デファクト・スタンダードが確立されてしまうと、下層レイヤーほどスイッチングコストが高まりロックイン構造が強化される。そうなると、「各レイヤー間の独立性」という理想は、上層では事実かも知れないが下層では徐々に現実離れしてくる。見方を変えれば「アーキテクチャ自体も変化する」し、「レイヤーの境界は変化する」のである。これは意外と見落とされがちな点である。
では、変更に強いロバストなアーキテクチャの真価とは一体何か。
答えは「システムのライフサイクルの長寿化」ではないだろうか。
例えば、設計してから3年で古くなって使い物にならなくなるはずのシステムが6年持つようになる。アーキテクチャというカッコいい名前とは裏腹に、こういう地味な効果がアーキテクチャのエコノミクスなのではないか、という仮説である。この観点に立てば、よいアーキテクチャの価値はどのぐらいで、アーキテクトの仕事ぶりの評価はどのようになされるべきなのか、もう少し具体的な手がかりが見えてくるかも知れない。
♪ 難波弘之 / 百家争鳴
※このエントリは CNET Japan ブロガーにより投稿されたものです。シーネットネットワークスジャパン および CNET Japan 編集部の見解・意向を示すものではありません。
コンテンツ市場14兆円の中身と行方
原宿で野宿を含む15時間 - iPhone行列完全ドキュメント
政治資金監査の意見募集等、 2008 年 9 月 1 日締切です
「VMware Fusion 2.0 RC 1 Build 113392」、新たに「McAfee VirusScan Plus」を同梱 etc...
(エンジニアにとっての)モテ論
WEB2.0 じゃなくって PC0.5
taspoの必要性とタバコ屋でのコミュニケーション
@Tovas for AppExchangeのセットアップを30分で完了
夢幻∞大のエントリーアクセスランキング(8/29編)みんなのお題では、ブロガー同士で質問を出し合いそれに対する回答や意見を集めています。今日はどんな話題が盛り上がっているでしょう?
CNET Japan ブログネットワークは、元はCNET Japanの一読者であった読者ブロガーと、編集部の依頼により執筆されているアルファブロガーたちが、ブログを通じてオンタイムに批評や意見を発信する場である「オピニオンプレイス」、また、オピニオンを交換するブロガーたちが集うソサエティです。
広い視野と鋭い目を持ったブロガーたちが、今日のIT業界や製品に対するビジョンや見解について日々熱く語っています。
CNET Japanやその他サイトが提供するITニュースやコンテンツへの意見や分析、 ビジネスやテクノロジーに対するビジョンや見解について語っていただける方を 募集しています。ご応募はこちらから
ブログの投稿はこちらから(※ブロガー専用)
今年最も活躍したブロガーを表彰します。詳細はこちらから
これは、CNET Japan 編集部の依頼に基づいて執筆されているCNET Japan アルファブロガーによるブログの印です。
CNET Japan ブログネットワーク内で拍手の代わりに使用する機能です。ブログを読んで、感激した・役に立ったなど、うれしいと思ったときにクリックしてください。多くGood!を獲得した記事は、より多くの人に読まれるように表示されます。
[レビュー]高い信頼性を普通に使う地球に優しい電源ユニット--Antec EarthWattsシリーズ EA-650
今週の新製品総チェック:ノート、デスクトップ、UMPCまでPC秋モデルが続々
今週の新製品総チェック:薄さ13.9mmのサイバーショット登場!NEC「LaVie」はデザインモデルが
SoAってのは“サービスをソフトウェアで置き換える”ってことですよね。逆と考えるとワケわかんなくなってしまう。