Java開発をWeb 2.0に対応させる「Restlet」プロジェクト

Java開発環境をWeb 2.0に対応させるオープンソースプロジェクトが出現した。Java Servlet API上にRESTプラットフォームを作成する「Restlet」と呼ばれるプロジェクトだ。

» 2006年01月10日 08時30分 公開
[Darryl K. Taft,eWEEK]
eWEEK

 Java開発環境をWeb 2.0開発者のニーズに対応させるという問題に取り組むオープンソースプロジェクトが出現した。このプロジェクトは、Representational State Transfer(REST)アーキテクチャスタイルをJavaでサポートすることを目指す。

 フランスのルバロアペレ在住の開発者、ジェローム・ルーベル氏は、Java Servlet API上にRESTプラットフォームを作成するために、「Restlet」と呼ばれるプロジェクトを立ち上げた。

 Noelios Consultingの創業者であるルーベル氏は現在、Java開発とビジネスプロセス統合を専門とする独立コンサルタントとして活躍している。同氏によると、Restletプロジェクトにおける自身の役割は、「RESTアーキテクチャスタイルのシンプルさと効率をJava開発者に提供する」ことだという。

 しかしルーベル氏は、“SOAP(Simple Object Access Protocol)かRESTか”という論争を復活させるつもりはないとしている。「すでにこの問題は何度も論議された」からだ。

 Servlet APIは1998年に登場して以来、HTTPサーバ上で動的コンテンツを生成するための手段として広範に利用されてきた。

 ルーベル氏はRestletプロジェクトについて説明した文書の中で、「Servlet APIは基本的に、オブジェクト指向モデルに基づいてHTTPリクエスト/応答サイクルを表現しようとする」と述べている。

 「Servlet APIは、その姉妹関係にあるJava Server Pages規格とともに、Java技術を企業内に進出させるという大規模な取り組みの一部になった」(同氏)

 しかし、Servlet APIはWeb 2.0開発のための最善の手法ではないようだ、とルーベル氏は語る。RESTをサポートしたいという同氏の願いがRestletプロジェクト創設の動機だったという。

 「オブジェクト指向というパラダイムは、複雑な集中型モデルには有効だが、Web開発には必ずしも適していない」とルーベル氏は指摘する。

 「Java開発者は、新しいWebサービスやAjaxベースのWebクライアントを開発する際にこのことを認識し、より“REST的に”考えるようにしなければならない。Restletプロジェクトは、すぐにWeb 2.0の開発に取りかかるためのシンプルかつ堅牢な基盤を提供する」(同氏)

 しかしルーベル氏によると、RestletがRuby on RailsやStrutsなどのWeb 2.0開発フレームワークよりも優れているかどうか疑問だとする開発者もいるという。

 「最近わたしがWebサイトの開発に着手したことが、Restletプロジェクトに取り組むきっかけとなった。このサイトを、できるだけRESTアーキテクチャスタイルに準拠させたいと思った。いろいろと調べた結果、JavaにはRESTフレームワークが欠落していることに気づいた」とルーベル氏は説明する。

 このためルーベル氏は、Servlet API上で独自のRESTフレームワークを作成したという。「統一的なRESTコールを直接生成する最初のRestletコネクタ(HTTPサーバコネクタ)の開発に成功した」と同氏は話す。

 さらに同氏は、「JavaではWebのクライアントサイドとサーバサイドのビューが不自然に分離されており、この状況を解消したいと思った」と述べている。

 「ネットワーク化された今日の環境では、こういった区別を設けるべきではない。あらゆるものがWebクライアントとして動作すると同時に、Webサーバとしても動作できるようにしなければならない。RESTでは、あらゆるコンポーネントがクライアントコネクタとサーバコネクタをいくつでも保持することができるので、わたしはHttpURLConnectionクラスをベースとするクライアントHTTPコネクタだけを開発した」(同氏)

 ルーベル氏はその後、Restletプロジェクトを2つの部分に分割することにしたという。

 最初の部分は、Restlet APIと呼ばれる汎用的なインタフェースセット、そしてRestletインプリメンテーションを登録するためのヘルパークラスである。

 プロジェクトの第2の部分は、Restlet APIのリファレンスインプリメンテーションで、「NRE」(Noelios Restlet Engine)と呼ばれる。これには、HTTPサーバコネクタ、HTTP/JDBC(Java Database Connector)/SMTP(Simple Mail Transfer Protocol)用のクライアントコネクタ、各種の表現のほか、ディレクトリツリーから静的なファイルを提供することができる「DirectoryRestlet」が含まれる。DirectoryRestletは、拡張子に基づく自動コンテンツネゴシエーション機能を備えるという。

 ルーベル氏によると、Restlet APIは、リソース、表現、データ、コネクタ、コンポーネントなどRESTのコンセプトをすべてサポートするという。

 Restletは現在βテスト中で、最新リリース(バージョン0.18)は、www.restlet.org/downloads/restlet-0.18b.zipからダウンロードできる。

 Restlet APIおよびNoelios Restlet Engineは、CDDL(Common Development and Distribution License)の下で配布されている。

 Restletプロジェクトの依存性としては、J2SE 5.0(Java 5とも呼ばれる)、Jetty 5.1.5または6.0β、FreeMarker 2.3、JavaMail 1.3などが含まれる。

Editorial items that were originally published in the U.S. Edition of “eWEEK” are the copyrighted property of Ziff Davis Enterprise Inc. Copyright (c) 2011. All Rights Reserved.

注目のテーマ