はじめに
数年前、インターネットアプリケーションの作成分野では、標準のHTML / JavaScript / CSSテクノロジーから、デスクトップアプリケーションと外観や動作が変わらないプログラムを実行できるプラットフォームに移行する傾向がありました。 このタイプのソフトウェアは、一般に「リッチインターネットアプリケーション(
RIA )」と呼ばれ、「リッチインターネットアプリケーション」を意味します。 一部のRIAテクノロジーはかなり前(90年代の終わり)にリリースされたという事実にもかかわらず、3〜4年前には広く使用されていました。
RIAの機能について話すことは始める価値があります
HTMLベースのアプリケーションとは概念的に区別されています。 通常のサイトサービスは、ハイパーリンクを介して別のページに切り替え、Webブラウザーを使用してフォームをサーバーに送信するという原則に基づいて機能します。 つまり、このようなアプリケーションの作業は、
シンクライアントを 使用した
クライアントサーバーアーキテクチャに集中してい
ます 。 HTMLは、ドキュメントのマークアップ言語であり、ブラウザーで表示されるため、理想的です。 ユーザーアクションのシーケンスは、サーバーへのリクエストの継続的な送信です。 このアプローチには、いくつかの問題があります。
- アプリケーションセッションとサーバーとの同期の間でユーザーデータを保存します。
- 各ユーザーのアクションではなく、必要な場合にのみサーバーとの間でデータを送受信する問題。
- ネットワーク接続がないときにアプリケーションを起動する問題。
RIAコンセプトはどのようなソリューションを提供しますか? アーキテクチャの観点から、彼女はそのようなプログラムをシッククライアントを使用するアプリケーションのカテゴリに変換します。 すべてのRIAには同様の機能があります。中間部分が存在し、ネットワーク経由でクライアントに送信され、サーバーとやり取りし、HTMLに比べてはるかに優れたユーザーインターフェイスを表示します。 図1に、HTMLおよびRIAアプリケーションの場合のユーザーインタラクションを整理する原則を示します。

図1-HTMLおよびRIAアプリケーションの原理
ユーザーデータを保存する問題の解決策は、RIAプラットフォーム(RIAアプリケーションを起動するためのプラットフォームに依存しない環境)を犠牲にして発生します。 ネットワークからダウンロードされた中間部分は、それにアクセスして情報を保存および読み取ります。 ここからは、クライアント側のキャッシュにより、必要な場合にのみサーバーとのデータの送受信が可能になります。 不安定な接続の問題も解決されています。 RIAプラットフォームは、ユーザーのコンピューターにアプリケーションをインストールできます。 これは、ディスクスペースがプログラムファイルに割り当てられ、ネットワークなしで起動できることを意味します。 したがって、RIAの主な特徴は次のとおりです。
- アプリケーションのクライアント部分はユーザーのコンピューターにダウンロードされます。ユーザーのコンピューターはサーバーとの対話を担当し、ネットワークに接続せずにデータをキャッシュして作業する機能を備えています。
- ブラウザまたはウィンドウアプリケーションとして実行され、RIAプラットフォームのインストールが必要です。
インターネット標準の段階的な開発により、実際にそのような技術が実装されています。 現時点で最も有名なものは次のとおりです。
表1-最も一般的なRIAテクノロジー
これらの製品の選択は、インターネットの普及と、ユーザーがRIAを起動するためのインストール済みプラットフォームの可用性によるものです。 この記事の以下のセクションでは、各技術の主な技術的特徴を示すコンパクトなアプリケーションを作成します。 プログラムのタスクは、一定期間後にアプリケーションサーバーの負荷の簡単な統計を取得し、それをユーザーに表示することです。 各リクエストへの応答として、サーバーは
JSONにパックされた次のデータを送信し
ます 。
- サーバーのドメイン名。
- 割り当てられたメモリの全容量。
- 空きメモリの量。
- メモリの最大量。
- 開始されたスレッドの数。
したがって、デモアプリケーションのクライアント部分は異なり、サーバー側ではJavaサーブレットがリクエストを処理します。
GWTアプリケーション
テクノロジーの簡単な説明。 RIA開発者はJavaプログラムのインターフェースとロジックを作成し、GWTはソースコードを慎重に最適化されたJavaScriptにコンパイルします。 スクリプトファイルはWebページに接続し、起動時にアプリケーションインターフェイスを表示します。 同時に、まず、特別なブラウザープラグインの問題が解決されます。実際、GWTの場合、Javascriptスクリプトを有効にする必要があります(すべての最新ブラウザーがサポートします)。 第二に、GWTには本格的なRIAを作成するためのコンポーネントの大きなライブラリがあり、その数は開発者の大規模なコミュニティのおかげで絶えず増加しています。 これらのコンポーネントに基づいて、ブラウザで従来のウィンドウインターフェイスを作成できます。
利点:- より小さく、よりコンパクトな、キャッシュされたJavaScriptコードを使用します。
- IE、Firefox、Mozilla、Safari、およびOperaのブラウザーを自動的にサポートします。
- ライブラリには、ブラウザで以前にアクセスしたページのリストに従って遷移イベントを処理するためのツールが含まれています(「戻る」ボタン)。
さらに、Javaでの作業では、次を使用できます。
ライブラリの内容に関しては、GWTには以下が含まれます。
- アプリケーションのクロスブラウザビルディングブロックとして機能する組み込みのユーザーインターフェイスコンポーネント。
- プログラムコードのリモート呼び出しは、クライアントとサーバーの対話(RPC、AJAX)に役立ちます。
- GWTコードを既存のJavaScriptコードに統合するためのツール。
- インターフェイスデザイナーとの対話を簡素化する開発者ツール(UIBind)。
短所- Javaの必須知識。 Webアプリケーションの作成でこの言語が非常に人気があるにもかかわらず、ユーザーインターフェイスSwingまたはAWTの基本原則を知らない初心者にとっては非常に困難です。
- ブラウザ間の互換性には落とし穴があります。 ディストリビューションの一部であるユーザーインターフェイスコンポーネントは徹底的にテストされており、すべてのブラウザーで実際に同じように機能します。 ただし、コミュニティは、異なる環境での動作を注意して扱う必要がある新しいコンポーネントをリリースしています。 問題は開発者の経験です。
- GWTコンパイラーの速度。 これは、ソースへのパスを引数として取るJava言語の実行可能クラスです。 著者の小さなプロジェクトでは、コンパイル時間は2分に達しました。 アプリケーションを起動する代わりに、プロジェクトがコンパイルされていないときに特別なホストモードを使用できますが、選択したブラウザー(GWTバージョン2.0)で特別な方法で起動できます。 さらに、1つのブラウザーのみでプロジェクトをコンパイルし、構成を変更して、ビルド時間を短縮できます。
アプリケーションコードスニペットcurrentRequest = requestBuilder.sendRequest(query.toString(), new RequestCallback() {
public void onResponseReceived(Request request, Response response) {
pleaseWaitLabel.setVisible(false);
if (response.getStatusCode() == 200 && response.getText() != null && !response.getText().equals("")) {
JSONValue resVal;
JSONObject resObject;
JSONString serverName;
JSONNumber totalMemory;
JSONNumber freeMemory;
JSONNumber maxMemory;
JSONNumber threadCount;
try {
resVal = JSONParser.parse(response.getText());
} catch (JSONException e) {
Window.alert(" . ");
return;
}
if ((resObject = resVal.isObject()) == null) {
Window.alert(" . ");
return;
}
if ((serverName = resObject.get("serverName").isString()) == null) {
Window.alert(" . ");
return;
}
…..............................................................................................................
setServerName(serverName.stringValue());
setTotalMemory(Integer.toString((int) totalMemory.doubleValue()));
setFreeMemory(Integer.toString((int) freeMemory.doubleValue()));
setMaxMemory(Integer.toString((int) maxMemory.doubleValue()));
setThreatCount(Integer.toString((int) threadCount.doubleValue()));
} else {
Window.alert(" . ");
}
}
public void onError(Request request, Throwable exception) {
pleaseWaitLabel.setVisible(false);
Window.alert(" . ");
}
});
Flex / AIRアプリケーション
テクノロジーの簡単な説明。 Adobe Flexは、ActionScript 3言語を使用してAdobe FlashプラットフォームでRIAを開発するための一連のユーティリティであり、Flashには、インタラクティブ機能の点でHTMLから得られる機能よりも多くの機能があります。 それにもかかわらず、Flashでの開発は、単純なプログラマにとって非常に複雑なプロセスです。 Flashはよりデザイナーを対象としています。 Flexは、RIAを開発するソフトウェア方法を提供することにより、この障壁を取り除きます。 XMLベースの言語である
MXMLを使用してユーザーインターフェイスの形式と動作を記述し、強力なオブジェクト指向プログラミング言語であるActionScript™3を使用して、クライアントプログラムの論理的な動作モデルを作成します。
メリットFlexで作成されたRIAアプリケーションは、AdobeFlash®Playerソフトウェアを使用してブラウザーで実行できます。OSにクロスプラットフォームAdobe AIR™アプリケーションがある場合は、通常のプログラムとして実行できます。 これにより、Flexアプリケーションは、デスクトップオペレーティングシステムだけでなく、多くの一般的な種類のブラウザーでの作業をサポートします。 AIRを使用する場合、FlexアプリケーションはローカルPCデータとシステムリソースにアクセスできます。 ただし、AIRセキュリティモデルでは、隔離された環境でアプリケーションを実行することによるユーザー情報とシステムファイルの損傷は許可されません。 Flash PlayerおよびAdobe AIRは、Adobe.comから無料でダウンロードできます。 現在、
99%のPCにはFlash Playerが最新バージョン(9または10)の1つ
が搭載されています。 ユーザーインターフェイスは、比較的シンプルで直感的な言語であるMXMLを使用して作成されているため、経験豊富な開発者がすぐに習得できます。
短所- ActionScript言語は、もともとはFlashscriptのスクリプト言語でしたが、Actionscript 3で変更されました。オブジェクト指向言語として、Javaや.NETの開発者が当然と思っている多くの機能が欠けています。
- サードパーティのライブラリ(特に、オープンソース)の数は、Javaの場合よりも桁違いに少なくなっています。
- Flex SDKは無料ですが、Flex Builderの主な開発環境は商用製品です。
アプリケーションコードスニペット<mx:HTTPService
contentType="application/x-www-form-urlencoded"
id="service"
method="GET"
resultFormat="text"
showBusyCursor="true"
url="/status"
fault="httpFault(event)"
result="httpResult(event)"
useProxy="false"
/>
public function httpResult(event:ResultEvent):void {
//get the raw JSON data and cast to String
pleaseWaitLabel.setVisible(false);
var jObj:Object = JParser.decode(event.result.toString());
serverNameValueLabel.text = jObj.serverName;
totalMemoryValueLabel.text = jObj.totalMemory;
freeMemoryValueLabel.text = jObj.freeMemory;
maxMemoryValueLabel.text = jObj.maxMemory;
threadCountValueLabel.text = jObj.threadCount;
}
public function httpFault(event:FaultEvent):void {
Alert.show(" , ");
timer.stop();
}
Javaアプレットアプリケーション
テクノロジーの簡単な説明。 Javaアプレットは、バイトコードJavaアプリケーションです。 Javaアプレットは、Java仮想マシン(JVM)を使用するWebブラウザー、またはスタンドアロンのアプレットテストツールであるSunのAppletViewerで実行されます。 Javaアプレットは1995年にJava言語の最初のバージョンで導入されました。Javaプログラミング言語で作成されますが、JythonなどのJavaバイトコードにコンパイルされる他の言語で作成することもできます。
メリット- クロスプラットフォーム;
- アプレットはほとんどのブラウザでサポートされています。
- ほとんどのブラウザでキャッシュされるため、Webページに戻るとすぐにロードされます。
- クライアントデータへのアプレットのアクセスレベルは、コンピューターユーザーによって構成されます。
短所- アプレットの開発には、Java言語の知識を持つ中級レベルのプログラマーが必要であり、ユーザーインターフェイスを作成するにはSwingまたはAWTライブラリの理解が必要です。
- Java拡張機能のインストールが必要です。Java拡張機能は、すべてのブラウザでデフォルトで利用できるわけではありません。 現在、プラグインはクライアントPCの90%にインストールされています。
- アプレットのセキュリティを強化するため、ユーザーシステムへのアクセスは制限されています。特に、クライアントディスクまたはクリップボードへの直接アクセスはありません。
- 一部の組織では、管理者がインストールしたソフトウェアのみを許可しています。 その結果、多くのユーザーはデフォルトでアプレットを見ることができません。
- アプレットでは、JREの特定のバージョンの使用が必要になる場合があります。
アプリケーションコードスニペットprivate void updateServerStatus() {
clearStatistics();
pleaseWaitLabel.setVisible(true);
Timer t = new Timer(3000, new AbstractAction() {
public void actionPerformed(ActionEvent actionEvent) {
try {
pleaseWaitLabel.setVisible(false);
URLConnection conn = new URL(url).openConnection();
String json = readStreamToString(conn.getInputStream(), "UTF-8");
JSONObject j = new JSONObject(json);
serverNameValueLabel.setText(j.getString("serverName"));
totalMemoryValueLabel.setText(j.getString("totalMemory"));
freeMemoryValueLabel.setText(j.getString("freeMemory"));
maxMemoryValueLabel.setText(j.getString("maxMemory"));
threadCountValueLabel.setText(j.getString("threadCount"));
} catch (Exception e) {
e.printStackTrace();
}
}
});
t.setRepeats(false);
t.start();
}
JavaFXアプリケーション
テクノロジーの簡単な説明。 JavaFXは、パーソナルコンピューターおよびモバイルデバイスで実行できるRIAを作成するためのプラットフォームです。 JavaFXテクノロジーを使用すると、マルチメディアコンテンツ、ビジネスアプリケーションのグラフィカルユーザーインターフェイス、パーソナルコンピューターとモバイルデバイスのゲーム、豊富なグラフィックス、マルチメディアWebサイトなどを操作するためのアプリケーションを作成できます。JavaFXアプリケーションは、
宣言型プログラミング言語 JavaFX Scriptを使用して作成されます。 JavaFX Scriptアプリケーションを開発するには、JavaFX SDKをダウンロードしてインストールする必要があります。 JavaFX Scriptで記述されたコードから、任意のJavaライブラリにアクセスできます。 したがって、JavaとJavaFX Scriptの併用により、さまざまな問題を解決できます。たとえば、ビジネスアプリケーションのロジックをJavaで記述したり、グラフィカルユーザーインターフェイスをJavaFX Scriptで記述したりできます。 JavaFX Script言語で記述されたアプリケーションは、Javaランタイム1.5以降がインストールされているコンピューターで実行できます。 現在サポートされているオペレーティングシステムは、Windows、Mac OS X、GNU / Linux、およびSolarisです。
メリット- JavaFX Script言語はJavaライブラリの使用をサポートし、コンパクトなコードを取得できます。
短所- クライアントマシンでの実行にはまだ問題があります。 JavaFXアプレットはOperaブラウザでは実行されません。Linuxシステムで何が起こっているのかはまだ不明です。 確かに、この状況は徐々に改善しています-作成者によると、JavaFX 1.2はUbuntuとOpenSolarisで動作します。
アプリケーションコードスニペットvar parser = PullParser {
documentType: PullParser.JSON;
onEvent: function (e: Event) {
if (e.type==PullParser.INTEGER and e.name.equals("freeMemory")) {
freeMemoryValueLabel.text = Integer.toString(e.integerValue);
}
if (e.type==PullParser.INTEGER and e.name.equals("maxMemory")) {
maxMemoryValueLabel.text = Integer.toString(e.integerValue);
}
if (e.type==PullParser.TEXT and e.name.equals("serverName")) {
serverNameValueLabel.text = e.text;
}
if (e.type==PullParser.INTEGER and e.name.equals("threadCount")) {
threadCountValueLabel.text = Integer.toString(e.integerValue);
}
if (e.type==PullParser.INTEGER and e.name.equals("totalMemory")) {
totalMemoryValueLabel.text = Integer.toString(e.integerValue);
}
}
}
Silverlightアプリ
テクノロジーの簡単な説明。 Silverlightは、
Windows Presentation Foundationに似たグラフィカルシステムを提供し、マルチメディア、グラフィックス、アニメーション、および対話性を1つのソフトウェアプラットフォームに統合します。
XAMLおよびMicrosoft .NET言語で動作するように作成されました。 XAMLは、ベクターグラフィックスとアニメーションを含むページのレイアウトに使用されます。 このプラットフォームには、RIAで一般的なアニメーション、ベクターグラフィックス、オーディオビデオクリップを含むアプリケーションを実行できるブラウザープラグインが含まれています。
メリット- バージョン2.0以降、プログラムロジックは、Iron RubyやIron Pythonなどの動的プログラミング言語を含む、あらゆる.NET言語で記述できます。
- .NETプラットフォームは、ビジネスアプリケーションを開発するための強力なツールです。
- Infragistics、Syncfusion、Telerik(市販製品)の多数のサードパーティコンポーネント。
- .NET開発者の大規模なコミュニティ。
短所- Silverlightは、Windows 2000、Windows XP、Windows Server 2003、Windows Vista、Windows 7、Mac OS X 10.4、Mac OS X 10.5およびInternet Explorer 6.0 / 7.0 / 8.0、Mozilla Firefox 1.5 / 2.0 / 3、Safari 3.1、 Google Chrome 3.0 Operaのサポートも将来的に計画されています。 他のオペレーティングシステムのブラウザの既存の拡張機能は、まだ予備的な習熟段階にあります。
アプリケーションコードスニペットvoid refreshStatistics(object o, EventArgs sender)
{
WebClient proxy = new WebClient();
proxy.OpenReadCompleted += new OpenReadCompletedEventHandler(proxy_OpenReadCompleted);
proxy.OpenReadAsync(new Uri(uri));
}
void proxy_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
JsonObject jsObject = (JsonObject)JsonObject.Load(e.Result);
serverNameValueLabel.Text = jsObject["serverName"];
totalMemoryValueLabel.Text = jsObject["totalMemory"].ToString();
freeMemoryValueLabel.Text = jsObject["freeMemory"].ToString();
maxMemoryValueLabel.Text = jsObject["maxMemory"].ToString();
threadCountValueLabel.Text = jsObject["threadCount"].ToString();
}
結論
最新のRIAテクノロジーの比較とアプリケーション作成実験の結果に関する結論を表2に示します。さらに、各パラメーターの比較について詳しく説明します。
プラットフォーム
| Gwt
| フレックス/ AIR
| Javafx
| Javaアプレット
| Silverlight
|
開発者
| Google Inc.
| Adobe Inc.
| 日 マイクロシステムズ
| 日 マイクロシステムズ
| マイクロソフト
|
作成言語 用途
| Java
| Actionscript
| JavaFXスクリプト
| Java
| C ++、 C#、Visual Basic、
Object Pascalおよび多く その他
|
サポート ブラウザ 顧客
| 100%オン Javascript
| ブラウザの97〜98%
| 〜70%のブラウザ
| 〜70%のブラウザ
| ブラウザの約50%
|
勉強時間 初心者向け
| 3-6時間
| 3-6時間
| 3-6時間
| 3-6時間
| 3-6時間
|
タイムオン デモンストレーションの開発 申込み
| 〜1時間
| 〜2時間
| 〜3時間
| 〜1時間
| 〜3時間
|
免許
| アパッチ 免許 2.0
| Mozillaパブリック ライセンス/アドビ AIRユーザー 合意
| JavaFXユーザー 救急車 合意
| サン/オラクル ユーザー 合意
| Microsoftユーザー 救急車 合意
|
手段 開発
| 日食 (無料) NetBeans(無料)
| Adobe Flex(商用 手がかり 製品)
| 日食 (無料) NetBeans(無料)
| Eclipse(無料 でも) NetBeans(無料)
| Microsoft Web開発者 スタジオ(無料 でも)
|
作成 グラフィカルエディターのインターフェイス 開発ツール
| はい(で 利用可能 コマーシャル 人間 プラグイン)
| はい
| いや
| はい
| はい
|
表2-RIAテクノロジーの比較
初心者のための学習時間。 この場合の初心者は、問題のテクノロジーになじみのない中級レベルのプログラマーです。 著者によると、必要なすべてのプログラムのインストール時間とドキュメントの読み取りを考えると、各アプリケーションの作成には3〜6時間かかります。
デモアプリケーションを開発する時間です。 この記事の著者は、アプリケーションの作成時に3つのテクノロジー、すなわちGWT、Adobe Flex / AIR、およびJavaアプレットに精通していました。 したがって、1つのプログラムの最大時間は3時間でした。 既知の技術を使用した作業は1〜2時間続きました。
クライアントブラウザのサポート。 クライアントにRIAを実行するために必要なプラットフォームと拡張機能がインストールされているという事実は、サイト
http://riastats.comの統計によって判断できます。 ユーザーにリーチするリーダーはGWTとAdobe Flex / AIRです。 これは、最初のケースでは追加のプログラムをインストールする必要がないという事実によるものであり、2番目のケースでは、インターネットユーザーのコンピューターでのAdobe Flashプレーヤーの広範な使用が反映されています。
これに続いて、JavaFXおよびJava Appletsテクノロジーが続き、ユーザーの約70%をカバーしています。 彼らの仕事の主な条件は、PCにインストールされたJREの存在です。 JavaFXのライブラリはバージョン1.5以降に含まれており、アプレットのサポートは長い間存在していました。 ブラウザでJava Appletsテクノロジを起動しても問題はありませんでしたが、JavaFXの場合、作成者はこれを行うことができず、アプリケーションはウィンドウモードでのみ実行されました。 おそらくこれは、アプリケーションが最新のOperaおよびFirefoxブラウザーで実行を停止したJavaFXの最近の更新によるものです。
開発者向けのライセンスおよびエントリコスト。- GWTはApache License 2.0の下でリリースされています。 ユーザーに、あらゆる目的でソフトウェアを使用する権利、変更されたコピーを自由に配布、変更、および配布する権利を与えます。 GWTは、開発者のサイトから無料でダウンロードできます。 GWTを使用して作成された製品は、どのような方法でもライセンスを取得できます。
- Adobe Flex / AIR。 Flex SDKはMozilla Public Licenseの下で利用でき、Adobe AIR SDKはAdobeとのユーザー契約の下で利用できます。 両方の製品は、開発者のサイトから無料でダウンロードできます。 Flex SDKおよびAIR SDKを使用して記述されたRIAは、任意のライセンスの下でリリースできます。
- JavaFX SDKは、SUN / ORACLEとのユーザー契約の一部として配布されます。 このライセンスは、JavaFXベースのアプリケーションの配布に特別な制限を課すものではありません。また、それらは商用のものでもあります。
- Javaアプレット。 Javaアプレットのコンポーネントは、JREライブラリの一部です。 これらは、SUN / ORACLEとのユーザー契約の一部として利用可能です。 JREは、製造元のWebサイトから無料でダウンロードできます。
- Microsoft Silverlightは、Microsoftとのユーザー契約の一部としてリリースされます。 Silverlight SDKを使用して記述されたプログラムに特別な制限を課しません。 SDKは、Microsoftから無料でダウンロードできます。
クライアント/サーバー相互作用の組織の特徴一般的なケースでサーバー負荷統計を取得するタスクは、2つのステージで構成されます。 まず、サーバーにHTTPリクエストを送信し、次にサーバーの応答からデータを受信します。 すべての例で、2つのオブジェクトがアプリケーションのこれらのアクションを担当します。 1つ目はHTTP要求を作成し、応答が受信されると、2つ目のオブジェクトにデータを渡します。 次に、応答から統計を抽出し、ユーザーインターフェイスが更新されます。
HTTPリクエストの実装を担当するコンポーネントは、各テクノロジーの標準SDKライブラリに含まれています。 ただし、JSON応答から統計を抽出するコンポーネントでは状況が異なります。 GWT、JavaFX、SilverlightがSDKに含まれている場合、Flex / AIRはさらに、JSONでの作業にJSwoofライブラリ(
www.waynemike.co.uk/jswoof )を使用し、Javaアプレットではorg.jsonパッケージ(
http ://json.org )Javaの場合。
クライアント/サーバー相互作用コードは、行数で比較できます。 結果を表3に示します。
プラットフォーム
| Gwt
| フレックス/ AIR
| Javafx
| Javaアプレット
| Silverlight
|
行数 クライアントサーバーサーバーを整理するためのコード 相互作用
| 〜40
| 〜30
| 〜30
| 〜20
| 〜30
|
表3-クライアント/サーバー相互作用の組織のコードの行数の比較
ライブラリ内の必要なコンポーネントの存在。デモアプリケーションを作成するには、2種類のコンポーネントが必要でした。
- ユーザーインターフェイスの視覚要素。
- クライアントとサーバーの相互作用を整理するための非視覚的なコンポーネント。
表4は、標準SDKに必要なコンポーネントの存在について説明しています。
テクノロジー
| 在庫状況 視覚コンポーネント
| 在庫状況 クライアントサーバーコンポーネント 相互作用
|
Gwt
| はい
| はい
|
フレックス/ AIR
| はい
| オプショナル JSWoofがJSONを操作するために使用
|
Javafx
| はい
| はい
|
Javaアプレット
| はい
| オプショナル org.jsonパッケージを使用して作業した ジョンソン
|
Silverlight
| はい
| はい
|
表4-SDKコンポーネントの使用
Flex / AIRおよびJavaアプレットの場合、追加のライブラリを使用してサンプルが作成されますが、これらは標準SDKの一部ではありません。
ユーザーインターフェイスの説明メソッドテクノロジーインターフェイスを説明するために、2つのアプローチが使用されます。
- プログラミング言語(GWT、Javaアプレット)を使用します。 この場合、すべてのコンポーネントはソースファイルに変数として記述されます。 アプリケーションを起動する段階で、コードで初期化され、アプリケーションウィンドウに配置されます。
- 宣言的な方法を使用し、特別なXMLベースの言語(SilverlightのXAMLおよびAdobe Flex / AIRのMXML)とJavaFX Scriptを使用します。 ソースコードは、画面上の後続の場所のコンポーネントのネストを尊重します。 SilverlightとAdobe Flex / AIRの特徴は、プログラムのソースコードとインターフェイスのXML記述を1つのファイルに保存できることです。
Silverlight、Adobe Flex / AIR、およびJavaFXで使用されるアプローチにより、インターフェイスの説明とアプリケーションのプログラムコードを分離できます。 この方向で、GWTの最新バージョンは、HTMLデザイナーとプログラマー間のコラボレーションを整理するためのUIBindツールを提供します。 ソースコードには、HTMLコードを含むファイルを含めることができます。HTMLコードは、埋め込みのユーザーインターフェイス要素です。 コンパイル段階で、これらはプログラムコードに関連付けられます。 これにより、HTMLでデザインを個別に操作できます。
技術文書と開発者コミュニティ。 各テクノロジー専用の情報リソースは、次の3つのカテゴリに分類できます。
- 開発者のWebサイトにある公式の技術文書。
- ブログやその他の情報リソースで見つかったテクノロジーの使用例を含む記事。
- 特定の技術に特化したフォーラム。
GWT:
Adobe Flex / AIR
JavaFX:
Javaアプレット:
Silverlight
特定の技術に対する開発者の関心、したがってコミュニティの作成は、たとえばGoogle Codeディレクトリ(http://code.google.com)などのプロジェクトの数によって間接的に判断できます。 一方、重要な役割は、各テクノロジー(
実際に.comサイト)の求人の数によって果たされます。 データを表5および図2に示します。
プラットフォーム
| Gwt
| フレックス/ AIR
| Javafx
| Javaアプレット
| Silverlight
|
数量 Google Codeディレクトリ内のプロジェクト
| 1475
| 2388/703
| 119
| 166
| 180
|

図2-RIA開発者の空席数
問題の解決に最適な技術を選択する著者によると、どの技術もタスクを解決するための優先事項であるとは言えません。 実際には、初期状態では、クライアントコンピューターのソフトウェアの制限、特別な操作モードなどは指定されていませんでしたが、タスクに関しては、同じテクノロジを使用して問題を解決できます。 これは、書かれたデモアプリケーションで判断できます。
ソースは
ここからダウンロードでき
ます (InelliJ IDEA 9プロジェクト)