「『SOA(サービス指向アーキテクチャ)とは,アプリケーションをコンポーネント化して,再利用できるようにすることである。これまでずっと言われてきたことだし,少しはやってきた事柄である』。これは正しいと思いますか?」。日本IBMでソフトウェア事業技術理事を務める清水敏正氏は2月14日,東京で開かれた開発者向けカンファレンス「Developers Summit 2007」の講演で,会場にこう問いかけた。
「一見それっぽく響くが,かなり大きな誤解だ」と,清水氏は続けた。というのも,これまでのコンポーネント技術は,ソフトウエア部品をソースコードのレベルでコピーして組み込み,実行用のコードを生成するといった使い方が中心になる。これに対し,SOAにおける再利用は,すでに動いているシステムをサービスとして呼び出すことを意味するからだ。「SOAに基づくシステムで再利用できるかできないかは,動いているシステムをサービスとして使えるか使えないかの問題になる」(清水氏)。
今回,清水氏は「間違いだらけのSOA」というタイトルで,SOAをどう理解すべきか,どんな誤解があるかを中心に語った。SOAの中心的な概念であるサービスを「ビジネスにとって意味のある大きさ・単位で作成された,ビジネス・プロセスを実現するプログラム(システム)」とした上で,SOAに基づくシステムは「サービス単位でアクセスできるようにし,使用されている状態」にあると説明した。
清水氏がSOAのポイントとして挙げたのは3点ある。まず,疎結合の追求。「サービス」は様々な場所にあり,互いに緩やかに連携しているので,個々のサービスの変更が容易になることを意味する。
二つ目は,記述性の追求。データやプロセスそのものではなく,それらが何を意味しているかに関するメタデータをコンピュータできちんと管理できるようにすることを指す。例えば,プロセスのメタデータはインタフェース言語のWSDLで,データのメタデータはXMLスキーマなどで記述する。「これまで紙で仕様書を書いていたが,バインダーにとじられたままメンテナンスされないケースが大半。そんな時代は終わりを告げる」(清水氏)。
もう一つのポイントは,ビジネスとITをより密接な関係にすることにつながる,というものだ。
ほかにも,SOAに関する様々な誤解に関して触れた。例えば,以下のようなものだ。
・SOAは新しい技術:SOAは技術ではない。XMLやWebサービスなどの技術を組み合わせて,業務プログラム(システム)の作り方を変える基本思想
・SOAはIT部門だけでできる:楽観的な誤解だ。主導権はビジネス側に置くべき
・SOAは古いアプリケーションや基盤の再構築に適する:大きな誤解。再構築ではなく,リフォームととらえるべき。「たとえて言えば,古い家をぶっつぶすのでなく,できるだけ長く使おうという考え方だ」(清水氏)
こうしてSOAの誤解を解きつつ,話は「日本のIT技術者はどうすれば輝くか,ワクワクするか」といった将来像にまで及んだ。