MTOM CR and WS-I Attachment profile

MTOM が Candidate Reccomendation になった。最近の W3C の仕様の中では策定スピードが異常なほど速い。有力ベンダが熱心だと、これほどまでに違うものかと半分感心して半分あきれてしまう。

MTOM 仕様の概要は Omri Gazitt 氏の blog がいつもながらわかりやすい。
http://www.gazitt.com/OhmBlog/PermaLink.aspx/805e7f82-4bcb-420d-952f-2972c3e962fc

簡単にまとめると MTOM 関連の仕様は三つある。一つはコアになる MTOM、二つ目はバイナリ付き XMLシリアライズ方法である XOP、三つ目はリソース表現を SOAP ヘッダに入れるためのリソース表現 SOAP ヘッダブロックだ。

Gazitt 氏の blog でも触れられているが、 Martin Gudgin 氏が MTOM 実装のエンドポイントを公開している。
http://www.gotdotnet.com/team/mgudgin/default.aspx?key=2004-08-26T04:43:12Z

この実装は W3C の XMLP WG の ML に流れていたテストシナリオを実装したものだ。
http://lists.w3.org/Archives/Public/xml-dist-app/2004Aug/0013.html

アタッチメントといえば WS-I でも Attachment profile が公開された。Basic Profile 1.0 は WSDL 中で SOAP binding しか許していなかったので、それを許可するために Basic Profile が 1.1 にバージョンアップされSimple Soap Binding Profile が新規追加された。

Attachment Profile では新しい ref:swaRef 型 (complexType) と MIME binding でのアタッチメントの表現方法が規定されている。

さて、今われわれは何を使うべきか。

どれも一長一短である。将来的には MTOM が有望だと思われる。なんといっても W3C CR だ。しかし、実装はない。かといって WS-I AP の swaRef だって実装がないのは同じことだ。WSDLMIME binding もどれくらい実装されているかはよくわからない。ただし、どれで結局生成される SOAP メッセージはほぼ同じである。

と思ってちょっと調べてみた。 JAX-RPC 1.1.2 SI (JWSDP 1.4 に入るらしい) は attachment profile をサポートしているようだ。
https://jax-rpc.dev.java.net/whitepaper/1.1.2/attachments.html
ここには MTOM は JAX-RPC 2.0 からとも書いてある。MTOM は SOAP 1.2 と InfoSet を使いたかったら必須。近い将来なら Attachment Profile をなんとか使って SwA でいくのがよさそうだ。ただしマイクロソフトは MTOM にフォーカスしているっぽいので、そのことも考えておく必要がある。

追記(2004-08-30)
JWDP 1.4 はもうリリースされていた。
http://java.sun.com/webservices/jwsdp/index.jsp
Attachment Profile に対応したことが謳われている。