Webサービスに関する多くの事柄と同様に、WSDL
(ブログ・英語)の賛否を問う白熱した議論
(ブログ・英語)が繰り広げられている(WSDL 2.0が騒ぎを大きくする前からのことである)
(参考記事・英語)。WSDLに対する主要な論争の1つは、サービスに対してWSDLを記述する際に関わる冗長や複雑さ
(source)であ る。しかしながら、Relax-WSプロジェクト
(source)はそこでソリューションを提供しようとしている。プロジェクトページが以下のように、うまく言い表してい る。
WSDLはSOAの重要な技術でありながら、これらのファイルを作成し編集することはボールの中にあるスパゲティのすべての麺を、ピンセットで真っ直ぐにするのと同じくらい楽しいことである。
その考えは、サービス、ポート、オペレーションおよびメッセージに対するサポートを追加することでRelax-NG Compact Syntax
(source)を拡張することである。そのプロジェクトは補足としてではなく、サービスの契約の一部として、WSDLについて1から考えるようデベロッパに 促すことを目的としている。
プログラマーは、WSDLファイルから始める。そしてビルドの一部として、1つ以上のクラスで実装されるサービスのインターフェイスを生成する。ここでの課題は、WSDLを作成することにある。
そこで、たとえば比較的単純なサービスは以下のように定義することができる。
#
# This is "hello world" in relax-ws.
#
service Hello {
port {
operation SayHello {
in {
element name {xsd:string}
}
out {
element message {xsd:string}
}
}
}
}
そしてRelax-WSは関連するWSDLを自動的に生成する。しかし、これで本当にデベロッパはWSDLから自由になれるのか。WSDLを批評する人たち
(source)を黙らせるのに十分であるのか。James Strachan氏のブログ
(ブログ・英語)で、以下のようなコメントがある。
確かに立派ではあるが、これでは修正を必要とする同様の欠点を被るのではないか。「コード駆動の開発は迅速であるが、プラットフォームに固有の機能が容易に忍び込む結果を招き、クロスプラットフォームのクライアントがインターフェイスを利用できなくなってしまう」。
誤解しないでもらいたいのだが、WSDLを侮っているわけではない。ただ、Javaまたはrelaxng構文からのWSDLの自動生成もともに「クロスプラットフォームのクライアントが利用できない」という状況を作り上げると考える。
原文はこちらです:
http://www.infoq.com/news/2008/02/relax-ws