| ダイレクトWebリモート | |
|---|---|
| 原作者 | ジョー・ウォーカー |
| 開発者 | デビッド・マーギニアン /道場財団 |
| 初回リリース | 2005年8月29日 (2005年8月29日) |
| 安定版リリース | 3.0.2 / 2016年12月11日 ( 2016年12月11日) |
| 書かれた | JavaとJavaScript |
| オペレーティング·システム | クロスプラットフォーム |
| サイズ | 1.08 MB (アーカイブ) |
| タイプ | Ajaxテクノロジー |
| ライセンス | Apache 2.0ライセンス |
| Webサイト | ダイレクトウェブリモート |
| リポジトリ | |
Direct Web Remoting(DWR)は、 Ajax技術を組み込んだウェブサイトの開発を支援するJavaオープンソースライブラリです。 [ 1 ] DWRを使用すると、ウェブブラウザ上のコードから、ウェブサーバー上で実行されているJava関数を、あたかもブラウザ内に存在するかのように利用できるようになります。DWRプロジェクトは2004年にジョー・ウォーカーによって開始され、2005年8月29日に1.0がリリースされました。
DWRは、Javaクラスに基づいてJavaScriptコードを動的に生成するという、Ajaxに対する斬新なアプローチを採用しています。[ 2 ]そのため、Web開発者はJavaScriptからJavaコードをWebブラウザのローカルコードのように使用できます。しかし実際には、JavaコードはWebサーバー上で実行され、Webサーバーのリソースに完全にアクセスできます。セキュリティ上の理由から、Web開発者はどのJavaクラスを安全にエクスポートできるかを正確に設定する必要があります(これはweb.xmlまたはdwr.xmlと呼ばれることが多いです)。
Java から JavaScript に関数をリモート処理するこの方法により、DWR ユーザーはRMIやSOAPなどの従来のRPCメカニズムと同じような感覚を味わうことができ、Web ブラウザー プラグインを必要とせずに Web 上で実行できるという利点もあります。
DWRはWebブラウザ/Webサーバーのプロトコルを重要視しておらず、プログラマーインターフェースが自然であることを重視します。この点における最大の課題は、Ajaxの非同期性と通常のJavaメソッド呼び出しの同期性を両立させることです。
非同期モデルでは、結果データは最初の呼び出しが行われてからしばらく経ってからのみ利用可能になります。DWRでは、Web開発者が追加のメソッドパラメータを使用して、データが返された際に呼び出される関数を指定できるようにすることで、この問題を解決します。この追加メソッドはCallBackメソッドと呼ばれます。Java関数から返された値は、コールバックメソッドに渡されます。
サンプルのコールバックは次のとおりです。
MJavaClassOnJs.getListProducts ( selectedCategory , { callback : function ( returnedList ) { dwr.util.addOptions ( myComboId , returnedList , " productId " , " productName " ) } } )コールバックは、リモート関数に追加のパラメーターとして渡される JSONオブジェクト内の関数です。
バージョン2.0では、DWRはComet(「リバースAjax」とも呼ばれる)[ 2 ]をサポートしており、サーバー上で実行されるJavaコードが意図的に専用のJavaScriptをブラウザに送信できます。