引き継き松岡正剛さんの「知の編集工学」より。前回はこちら。正剛さんは、これからのITシステムについても面白い意見を述べています。
これまで情報技術をつかったシステムには、もっぱら「強さ」ばかりが求められてきた。大型で大容量で、高速で、広域であること、これらが情報ネットワーク技術に求められていた常識であり、「強さ」というものだった。けれども、湾岸戦争や阪神大震災は、はからずも私たちに「柔らかさ」と「弱さ」が重要であることを示唆してくれた。もしそうであるなら、いまや<情報化>と<編集化>を一体化する経済文化のための技術は、むしろ「弱さ」をベースに設計されるべきではないだろうか。リニアで強い交換のモデルではなく、すこしばかりノンリニアで、広がりをもった弱い交換モデルも必要ではないだろうか。
かくて私は、編集技術の思想を「強さ」による提示やシステム化に依存するのではなく、むしろ「弱さ」によって表現すべきだろうという考え方にいたっている。なぜならば、編集とはそもそも相互作用なのである。相互作用とは、相手と何かをあれこれ交換することなのだ。自分の持ち物だけを誇っていてもしょうがない。
僕の解釈ですが、これは現状のシステム開発の問題をよく指摘していると思います。これまでのシステムというのはクローズなもので、ある閉じた領域の問題を解決するだけに使われてきました。
しかし、インターネットなどでネットワークが進歩したことにより、システムをネットワークを介して相互作用されるようになりました。こうしたネットワーク対応システムを構築しようとするときに、これまでのクローズ型システムのアプローチを利用していると無理が生じます。前エントリでも述べたように、それぞれが強い編集構造を持ち過ぎることでやり取り(意味の交換)に非常に高いコストがかかってしまうのです。
これを解決するヒントとして、正剛さんは自己組織化について言及しています。
自己組織化に関する理論というものは、生物のような「生きた情報システム」はどのように動的な秩序を形成しているのかという問題意識から生まれた考え方をいう。生物が組織を形成するにあたっては、複雑な生物情報をうまいぐあいにまとめる必要があるのだが、そこにはおそらく「情報を自律的に自己調整する機能」ともいうべきしくみがはたらいているのではないかというものだ。そのため生物は「ゆらぎ」のようなものを通して自己組織化をとげていると考えられた。このような考え方は、それまでの科学が因果律や要素分類を重視してきたのにたいして、むしろ「プロセスを重視した科学」がありうることを告示していた。システムを要素の積み上げによって構成された静的なシステムと見るのではなく、生きた情報の意味を束ねるために相互連関をおこしている「動くプロセスの複合体」とみなしたのである。
こうしたプロセスを重視するという考え方は、ネットワーク対応型の弱いシステム、僕は"しなやか"という言葉が好きですが、こういうシステムを構築する上で重要だと感じます。
オブジェクトやコンポーネントのような要素を静的に組み上げるだけのシステムではしなやかさに欠けています。なぜなら各要素が状況を理解することが求められてしまい、結果として複雑になることで、各要素の関係もまた緊密で固定的な関係を結ばざるをえなくなるからです。
そうではなくて、構造そのものに動的な要素が求めれます。
現状のDIコンテナやSOAというは、静的な構造を組み上げるための仕組みです。
DIコンテナは"コンポーネント間の構造"を静的に定義し動的に組み上げます。そのためシステム全体の複雑さを高めるとたいへんなことになります。大規模なシステムをDIコンテナで管理しようとするとXMLファイルの管理がえらいことになるわけです。逆に単一のアプリケーションでは非常に有効です。
一方のSOAは"サービス間の連携の構造"を静的に定義し動的に処理します。SOAのプロセス管理は、各サービス間の編集構造の異なりを吸収することに費やされます。それを静的に定義(=XML)しているので複雑になり柔軟性を失っていきます。BPELでIFやANDや例外を書くと大変なのはそのせいです。
こうした硬直的な定義はサービスが固定的で、大規模な既存システムがある場合に有効です(というか、これしか方法がない)。逆に小さなアプリケーションでは表現できることが貧弱過ぎてうまくいきません。
このDIコンテナとSOAの概念を超えていくためには「構造そのものを動的にする」ということが必要だと考えています。状況に応じて処理を変えるのは、要素の仕事ではなく、構造の仕事です。要素は単純な機能を提供するだけで、それらの構造(組み合わせ方)を変化させることで処理を変化させる。
これは構造を定義すべきコンフィグ(設定)の重要性を高めるともいえます。ただし、コンフィグ(設定)が複雑になってしまっては意味がありません。そこでコンフィグを抽象化するレイヤーが必要になります。ここで注目されるのがDSLの概念です。DSLというのは、ある編集構造に特化した言語体系だと説明することができます。
しかもDSLには強力な編集力が求められます。XMLのような静的な道具ではだめで、スクリプト言語が有効だと考えています。
というわけで、DSLとしてのスクリプト言語が企業システム開発に導入されるだろう、と考えているわけです。丸山先生や浅海先生が言われていた「BEPLのスクリプト言語」というアイデアは、こういうDSLのために非常に役立つと思っています。
あ、もちろん静的な構造をしめすXMLも変わらず重要です。大きな要素はXML、というかドラッグ&ドロップでグラフィカルエディタで組み合わせていき、それよりも細かいレベルはDSLになればよいでしょう。
なんか、最後は何のことやらになってしまいましたが、より常識的な、というか人間的な感覚論がシステムアーキテクチャにもたらせられるべきだと思います。そんなわけで、引き続き、こういうわけわかんないことの方を学んでいこうかなと思います。
![]() | 知の編集工学 松岡 正剛 朝日新聞社 2001-02 by G-Tools |

