BT

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

| 作者: Mark Little フォローする 14 人のフォロワー , 翻訳者 徳武 聡 フォローする 0 人のフォロワー 投稿日 2012年10月16日. 推定読書時間: 4 分 |

原文(投稿日: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は数年前よりも使いやすくのだろうか。それとも、開発者が前よりも実際的になったのだろうか。

 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT