今度のデブサミ2009でもアーキテクトゾーンの担当をします。ご一緒させていただくユニシス牧野さんとも3年目。毎回のことながらテーマ設定がかっちりしていて楽しいです。
今度のテーマは「次のアーキテクチャ」。そして、裏テーマが現在のアーキテクチャと次のアーキテクチャの断絶をいかにつないでいくのか。
これまでのアーキテクチャの歴史を概観すると、集中>分散>統合と説明することができます。ホストでの「集中」処理を行い、ユーザーはダム端末を利用していました。それがオープン化とダウンサイジングの流れ、そしてインターネットを超えて「分散」化していきます。そこからEAI、SOAと続く「統合」の流れになっています。
では、「次のアーキテクチャ」はなにか。それはアプリケーション同士が緩やかにつながりあいながら、システムが動的に立ち現れてくる時代。
もはや1つのアプリケーションではシステムは完結しません。複数のアプリケーションが組み合わさることで、はじめてシステムとして価値を発揮する。動いているアプリケーション同士が、まさに、その瞬間に組み合わされることでシステムが生まれてきます。だから、何が起きるか分からない。とても不確実な時代。
巨大なサプライチェーンマネジメントの仕組みもそうです。もう少し身近な例で言えばYahoo!アタックがあげられます。ネタを探していた編集者が、何気なく見つけたWebサービスを紹介してYahoo!ニュースに取り上げられる。そして、膨大なアクセスがサイトに流入することになります。
これはシステムの不確実性をよく表しています。ネットワークに接続されたオープンなサービスは、ネットワークの向こう側にあるナニカにダイレクトな影響を受ける。
こうしたアプリケーションに求められるアーキテクチャは大きく変化しています。
代表的なのがテスト。3つのテストをしなくてはいけません。1つめが自分のテスト。設計書に書かれた通りの機能を満たしているのかを確認します。2つめはネットワークの向こう側からのテスト。(ものすごく調整がめんどうな)接続テストもそうですし、、ネットサービスのクローズ公開もこれにあたると言えます。3つめが自分を守るテスト。イレギュラーなデータ、セキュリティハック、アタックといった悪意という視点ではなくてリスクを想定したテストが必要です。
このように「次のアーキテクチャ」では、自分のことだけではなく「他人にやってもらう」「自分を守る」といった視点が欠かせません。他者との関わりに対する自分を知らないとサービスとして品質を確保することができないのです。逆言えば、自分自身が他サービスのテストを手伝うこともある。これは持ちつ持たれつとして理解していく必要があります。
「次のアーキテクチャ」の片鱗は足下にあります。ただ、まだ本質にはまだまだ届いていない気がします。エンタープライズ・マッシュアップは端境期の考え方に過ぎないはずです。エンタープライズ・アプリケーションの本流が、こうしたところに向かうとき、何が起きるのか。
それを考えるためのヒントを提供できればと思っています。
