JavaプラットフォームでRESTアーキテクチャスタイルをサポートする、「Restlet Project」を立ち上げたジェローム・ルーベル氏に、その特徴や優れている点、現在の開発状況などを聞く。
ジェローム・ルーベル氏によると、同氏の「Restlet Project」(RESTアーキテクチャスタイルをサポートするJavaフレームワーク)は、Servletよりも幾つかの点で優れているという。
ルーベル氏は、自身が取り組んでいたプロジェクトのために、REST(Representational State Transfer)アーキテクチャスタイルをサポートするJavaフレームワークを探していた。結局、そのようなフレームワークが見つからなかったために、自分で作ることにしたという。
同氏はこの取り組みをRestlet Projectと名付け、オープンソース構想として立ち上げた。Restlet Projectについて同氏に話を聞いた。
―― Restletは、Ajaxスタイルの開発にどのように役立つのですか。またAjaxベースのWebクライアントに対応するのでしょうか。
ルーベル RESTスタイルのWebサービスを自然な形でサポートするRestletは、Ajaxスタイルのアプリケーションのサポートという点でも有利です。これらのアプリケーションはその性質上、HTTPを通じて純粋なXMLドキュメントを頻繁に交換する必要があります。
Apache AxisのようなSOAPスタイルのWebサービススタックでは、これを実現するのが容易ではありません。Restletの場合、開発者がWebコンテナの支配権を取り戻し、Web 2.0の開発に取り組むことが可能です。
―― Restlet Projectの進捗状況を教えてください。現在は0.18βという段階だと聞きましたが、バージョン1.0はいつ登場する見込みですか。
ルーベル この技術は急速に成熟しつつあります。わたし自身が、ほかのプライベートなプロジェクトでそれを必要としているからです。また、最近、たくさんのフィードバックや提案をいただいたおかげで、バージョン1.0にどの程度の機能が必要なのかもはっきりしました。今月末までに1.0βを出荷したいと思っています。その後、1.0の安定版を提供できるようになるまでテストを続ける予定です。4〜6月期中には安定版をリリースできるでしょう。
―― あなたが中心的な開発者なのですか、それともチームでプロジェクトに取り組んでいるのですか。
ルーベル これまではわたしがメインの開発者でしたが、ここにきてほかの人々も関心を示し始めるようになり、1〜3月期中にはコードの修正に貢献してくれると期待しています。現在、このプロジェクトを中心としたコミュニティーを構築しようと考えています。しかし、この技術とコンセプトは多くの開発者にとってまだなじみのないものであるため、教育を通じて関心を喚起し、参加の促すのには時間がかかるでしょう。
このプロジェクトは2つの部分に分けられています。Restlet APIの部分とリファレンスインプリメンテーションの部分です。最終的には、APIの部分をJCP(Java Community Process)、もしくはApacheなどの標準化団体に提出することも考えています。
―― RestletはServletをリプレースするのですか。
ルーベル RestletはServletを本格的にリプレースするものですが、両技術は連携することもできます。次の0.19βリリースでは、Servletをベースとした新しいHTTPコネクタが提供され、これにより、Tomcatなどの既存のWebコンテナ内でRestletを実行することが可能になります。
Restletは軽量なJettyのHTTPコネクタをベースとし、今日のスタンドアロン式デプロイメントのオルタナティブになるでしょう。これは、同技術の普及を促進するとともに、既存環境を利用している開発者にServletからRestletへのスムーズな移行パスを提供します。
―― Servletに対するRestletの優位性はどこにあるのですか。
ルーベル 幾つか挙げることができます。トランスポートプロトコル部分とWebアプリケーション部分がきれいに分離されていること。任意のプロトコル用のコネクタを追加できること――現時点でHTTP、SMTP、JDBC用のコネクタが用意されています。そして、クライアントサイドアプリケーションおよびサーバサイドアプリケーションを開発できることです。同時に両方を開発することも可能です。
また、RestletはServletと違い、出力ストリーム上で実際の書き込みの制御を行いません。このような制御は、ノンブロッキングNIO(New I/O)を利用しようとするときに大きな問題になります。RestletはRESTスタイルのアーキテクチャをサポートし、RESTのコンセプトがJavaインタフェースに直接対応します(リソース、表現、コネクタ、コンポーネントなど)。リソース指向のデザインにより、Servletで重大なスケーラビリティ問題を引き起こすインメモリセッションが不要になります。
RestletはJava SE 5.0の標準表現をベースとしているため、識別子(URL)を容易に、かつ強力に操作することができます。さらにRestletは、(Apache 2.0と同様、HTTP標準をベースとして)サーバサイドの自動コンテンツネゴシエーション機能により、静的なファイルを提供することができます。
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.