XML DevCon

XML devcon のレポートがいくつかの blog に掲載されている。中でも Amazon の Jeff Barr 氏のものが充実している。

http://www.syndic8.com/~jeff/blog/index.php?p=84

目玉の一つはやはり Don Box 氏の WS-Why? だったようだ。上記の Barr 氏、および Dare Obasanjo 氏の blog によれば、Box 氏は WS-* を下記の五つの島に分けている。

  • WS-DesertIsland - XML Web サービスのコア仕様。XML, SOAP, WS-Addressing, WS-MetadataExchange, XSD+WSDL
  • WS-IslandResort - コア仕様の次のレイヤ。WS-Security, WS-Trust, WS-ReliableMessaging, WS-Policy
  • WS-NewZealand - おそらく一生で一回だけ必要になる仕様。WS-Eventing, WS-Enumeration, WS-AtomicTransaction
  • WS-IslandOfDoctorMoreau - WS-* 仕様の醜い子どもたち*1。UDDI, WS-Transfer, WS-BusinessActivity, MTOM, BEPEL4WS
  • WS-FantasyIsland - Don が見たい仕様。WS-Data (Web サービスへの XPath/SQL ライクな問合せ), SOAP over TCP, よりよいバージョニングをサポートした XSD, バイナリ XML, RELAX NG ベースの WSDL

WS-NewZealand が一生に一度行けばいいところ、というのはニュージーランド国民に失礼な気もするが、この区分けはわかりやすい。これからは WS-* がいっぱいあってわからない、といわれたら WS-DesrtIsland を調べなさい、と言えばいいわけだ。

WS-DesertIsland は以下の五つの仕様群からなる。

Steve Maine 氏はこれを WS-Kernel と名づけた。OS のカーネルのアナロジーで WS-* の基本仕様を捕らえている。一般の開発者は OS カーネルの詳細を知っている必要はまったくないのと同様に、WS-Kernel を知る必要はない、ツールに任せろ、ということだ。


ところで DevCon 関連の blog を読んでいると、いかに W3C XML Schema が評判が悪いかがわかる。少なくともマイクロソフトの Indigo チームで WXS が好きな人間はいないようだ*2。彼らの WXS の捕らえ方は「全く気に入らないが仕方なく使うもの」であるようだ。

先の Jeff Barr 氏の blog にある Don Box 氏の感想ですら以下のようなものだ

XSD WSDL, not separete in his mind. Both equally onerous and full of bad, stupid, committee thing within. Relax-NG would be better (and the Amiga too).

そして、Don Box 氏の五つの島の中で RELAX NG はどこに入るか、それは WS-FantasyIsland である。そこには何があるかというと、WS-Data, SOAP over TCP, binary XML, XSD 1.Noah.*3 Retire NG (RELAX NG ベースの WSDL) だそうだ。


なぜ Indigo チームで、かように W3C XML Schema の評判が悪く、彼らが心の底では RLEAX NG を欲しているかは Tim Ewald 氏の 3 faces of WS から推察できる。Ewald 氏は先日まで MSDN2 の仕事をしていて、つい最近 MindReaf に移ったばかりの技術者だ。

いわく現在の Web サービスには三つの側面がある。

http://pluralsight.com/blogs/tewald/archive/2004/10/18/2875.aspx

SOAP 中心主義
マイクロソフトの Indigo チームはここにいる。全てを SOAP と Infoset で再構築しようとしている。
WSDL 中心主義
IBM がここ。インターフェースが重要という考え方。
XML/HTTP 中心主義
RESTafarian のいるところ

これは現在の Web サービスの混乱をよく表現していると思う。そして、Infoset 重視の Indigo チームには WXS は合わないのは当然だ。オブジェクトよりも XML (Infoset) を中心に考えると、W3C XML Schema では必ず矛盾が生じるのである。

*1:"the ugly step children ってこう訳すのだろうか?"

*2:こちらによれば Mono チームでも案の定 WXS の評判は悪い

*3:これは IBMNoah Mendelsohn 氏の提案のこと