COM/CORBAを超える技術として衝撃的に登場したSOAP。大手ベンダーの後押しや草の根での活動が実を結び徐々に注目を集めていった。しかし,かつて盛んに強調されたSOAPのメリットの多くは,今となってみれば非現実的なものだった。

(本誌)

画面1●Don Box氏の記事
現在もMSDNで公開されている。
画面2●SOAP仕様のドラフト
IETFのWebサイトではアクセスできなくなっているが,SOAPやWebサービスの情報を集めた「www.soaprpc.com」にアーカイブが保存されている。
 筆者がWebサービスと呼ばれる技術分野にかかわり始めて,丸5年が経過している。Webサービスはその間,大きなうねりとなり,IT関連の雑誌や講演会など多くの場面で目にするようになった。しかし現状では,Webサービスの勢いは停滞していると言わざるを得ない。ITベンダーの思惑が渦巻き,多数の規約が林立している。それぞれを後押しするベンダーの主導権争いが続いている状況だ。

 一方で,足元には力強い根っこや茎を持った,新たな「Webサービス」が芽吹いている。例えば,Weblog(ブログ)と,そこで利用されるRSS(RDF Site Summary,またはReally Simple Syndication)と呼ばれるXMLフォーマットがもたらした世界。異なるプログラミング言語で開発された複数のブログが,RSSを介して動的に連携している。これは,Webサービスの目指す異種システム連携にほかならない。

 この記事では,Webサービスのこれまでを振り返りつつ,筆者の一人称の視点で,Webサービスとはなんだったのか,そしてこれからどうなっていくのかを論じてみたい。まず第1回はSOAPに焦点を当て,Webサービスの黎明期からブームとなるまでを振り返ってみよう。

「COMの次」として登場したSOAP

 Webサービスの中心となる規約は誰がなんと言おうとSOAPである。その仕様策定者の一人である米DevelopMentor社(当時)のDon Box氏は,SOAPのプロジェクトが始まったのは1998年だと書いている1。プロジェクトを主導したのは,米Microsoft社だった。

 1998年といえば,XML 1.0が勧告になった年である。その時点から,すでに分散システム環境にXMLを活用しようという試みは始まっていたのだ。実際,SOAP仕様に大きな影響を与えたXML-RPCの仕様や実装は,1998年時点ですでに存在していた2,3。後にSOAPの共同提案社となる米UserLand Software社(当時)のDave Winer氏が定義したものだ。1998年当時,MicrosoftやDon Box氏らが作り上げようとしていたSOAPの姿は今となっては推して知るべしだが,Microsoftがこの時点で,こうした試みを進めていることを明らかにしなかった理由は,社内の政治的駆け引きであったようだ1

 1998~1999年というと,筆者は当時在籍していた会社で,Microsoftが提唱した「Windows DNA(Distributed interNet Applications Architecture)」に基づく多階層の分散システムを構築する,開発者向けのトレーニングを担当していた。当時はMicrosoftの分散アプリケーションのためのプロトコルやサービスの総称であるCOM(Component Object Model)と,Microsoft以外のベンダーによるCORBA(Common Object Request Broker Architecture)が覇権を争っていた時代である*1。JavaもEJB(Enterprise JavaBeans)の規約が固まり,ようやくサーバー向けAPIの充実を本格化させたころだ。クライアント─サーバー型のシステムから,インターネットを意識した分散システムの開発へ,という流れが一つのムーブメントになっていた。

 筆者が当時COMに関する情報源として最重要視していたのは,Microsoftではない。Don Box氏が起業したDevelopMentorだ。そのため,DevelopMentorやMicrosoftが進めるSOAPというプロジェクトについての話は,なんとはなしにもれ聞こえてきてはいた。例えば,InfoWorldは1998年7月にすでに記事を配信している4。ただし,この時期の筆者にとっては,何か新しい単語以上のものではなかった。脳ミソの片隅に残っていたその単語は,1999年になって突然目の前にはっきりと現れた。

 1999年9月に,Microsoftの開発者向けWebサイト「MSDN Online」に掲載されたDon Box氏の記事「Lessons from the Component Wars:An XML Manifesto」5(邦訳:コンポーネント戦争から学ぶこと: XMLに関しての声明6)は,今思えばSOAP推進の決意表明となっている(画面1[拡大表示])。DevelopMentorは同時にSOAPに関する議論をするためのメーリング・リストを開設,SOAP v0.9仕様を実装するPerlやJavaScriptのモジュールおよびそれらが実装されたサーバーの公開を始めた。

 COMが分散システム技術の戦いに生き残るものと信じて疑っていなかった当時の筆者にとっては衝撃的な事件だった。COMが敗れたのかもしれないこと。さらにはそれまで追っていたすべての技術が敗れ,まったく別のものが生まれていたこと。筆者にとっては,あのDon Box氏と彼が率いるDevelopMentorが「COMの次」をSOAPに求めていることから,その方向性は明らかだったのである。

 1999年11月,Microsoft,DevelopMentor,UserLand Softwareの3社は連名で,IETF(Internet Engineering Task Force)にSOAP仕様のドラフト7を提出した8画面2[拡大表示])。現在でこそSOAPは「SOAP」という名称として定義されているが,当時のSOAPはSimple Object Access Protocolの略だった。その存在は一気に明るみになり,同時に米IBM社と米Sun Microsystems社という,Microsoftの2大ライバル企業の動向に注目が集まった。

 当然のように両社は最初,SOAPを「Micro-softのマーケティング・ツール」として切り捨てた9。当時は分散COM(DCOM)をインターネット上に再現しようとする試みにしか見えなかったのだから無理もなかった。Don Box氏をはじめとするDevelopMentorの面々は,Microsoftの技術を扱ういくつかの雑誌でSOAPの詳細を論じている10,11。これらの内容にも若干のブレがあり,当時のSOAPはまだ固まった仕様であるとは言いがたい状況が見て取れる。この当時のSOAPは,Microsoftがまた新しい囲い込み戦略を編み出した,くらいにしか見られていなかった。