BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JAX-RSにWADLサポートは必要か。

JAX-RSにWADLサポートは必要か。

原文(投稿日:2012/10/14)へのリンク

 

今年のJavaOneでは、'JavaEE.Next(): Java EE 7, 8, and Beyond'と題したセッションが開催され、Oracle、IBM、Red Hat、CauchoなどがJava EEのさまざまな面について議論し、会場からの質問に答えた。しかし、PaaSやモバイル、NoSQLについて議論する予定のセッションだったが、REST、とりわけ、WADL関連の話題が大きな関心が集まった。今ではWADLは新しくなく、ある程度普及しており、我々が2005年に報じてからの7年間で広く議論された。

XML over HTTPのサービスを記述する場合、SMEX-D (Tim Bray氏が提案)からNSDLなどさまざまな選択肢が議論されてきました。しかし、これらの提案のほとんどは2005年以前に作成され、どれもあまり使われませんでした。

Marc Hadley氏(RESTfulのAPIであるJSR-311の仕様策定者のひとり)は2005年にWADL(Web Application Description Language)を提案しています

以来、多くの開発者がWADLをサポートするツールを開発しています。YahooのアーキテキトであるMark Nottingham氏はWADLからドキュメントを生成するスタイルシートを開発しています。

RESTの他の話題のいくつかと同じように、コミュニティはWADLを必要と考える陣営と不必要と考える陣営別れた。例えば、2007年にはMark Baker氏は次のように言っている。

[...] すべてのサービスが同じインターフェイスを公開するということが、疎結合をもたらし、RPCとの大きな違いになっています。

だから、すべてのリソースをレイトバインドできないコントラクト/インターフェイスレベルのコードを書いている場合、それは、RESTではありません。

RPCは死にました。世界は変わったのです。

一方、WADLの支持者はWSDLと比較して次のように書いている。

WSDLではウェブサービスへのインターフェイスコードを生成できました。これは良く出来ていて、多くの労力を節約できました。RESTfulなウェブサービスでも同じことができないでしょうか。できます。WADLを使えばいいのです。WADLはWeb Application Description Languageの略です。 WADLを使えばHTTPベースのAPIであればどんなAPIでも記述できます。やろうと思えば、SOAPウェブサービスも記述できますし、flickrのAPI、witterのAPI、yahooのAPIも記述できるでしょう。WADLを使えばこれらのAPIに対するクライアントサイドのプロキシコードを生成できます。WSDLと同じです。しかも、より汎用的です。RESTもサポートしますし、他の種類のXMLベースのウェブサービスでも利用できると思います。

しかし、この記事に対するコメントにあるように、この点は諸刃の剣になり得る。

この記事には基本的なまちがいがいくつかあります。"ここで言及しているのは、結果とRESTへ送信するデータを正確に定義できるフォーマットはXML以外にない"と書いていますが、メディアタイプはどうなるんです。メディアタイプはメッセージを正確に定義できるフォーマットで、データの処理の仕方と関連付けられ、リンクを元にリソースにアクセスできます。

Roy Fieldingの仕事を見てください )

とにかく、WADLは長く続かないと思います。それほどRESTfulではありません(クライアントとサービスプロバイダの結合が強くなります)。

数年の間、この議論がRESTに関連する他の分野でも盛んに行われたが、最近では議論は下火になり、見通しがより実際的になった。WADLには既知の論点(例えば、RESTfulかどうか)があるが、開発者の選択になるべきだと考えるグループもあり、また、利用するのを完全に止めるグループもある。例えば、JAX-RSの参照実装JerseyはWADLをサポートしている。しかし、RESTeasyのような他のJAX-RSの実装では必ずしもサポートされていない

JavaOneのセッションには、将来のバージョンのJAX-RSがWADLをサポートするべきかどうかについて興味を持っている人々が集まり、その中にはJAX-RSの仕様策定者もいた。登壇者は態度を明確にしなかったものの、WADLなしで問題なく動作している多くのRESTfulなサービスに言及したが、参加者側の多くは、JAX-RSがWADLをサポートすることを支持しているようだった。ここ数年、WADLへの言及は相対的に下火になっていたが、再び注目が集まっているのだろうか、それとも単にJavaとJAX-RSの要求の問題なのだろうか。注目が集まっているとしたら、RESTfulなサービスやアプリケーションにとって、今日のWADLは数年前よりも使いやすくのだろうか。それとも、開発者が前よりも実際的になったのだろうか。

 

この記事に星をつける

おすすめ度
スタイル

BT