リッチインターネットアプリケーション(リッチウェブアプリケーション、[ 1 ] RIAまたはインストール可能なインターネットアプリケーションとも呼ばれる)は、デスクトップアプリケーションソフトウェアの多くの特徴を備えたウェブアプリケーションです。この概念はシングルページアプリケーションと密接に関連しており、ドラッグアンドドロップ、バックグラウンドメニュー、WYSIWYG編集などのインタラクティブな機能をユーザーに提供できます。この概念は、2002年にMacromediaによってMacromedia Flash MX製品(後にAdobe Flashとなる)を説明するために初めて導入されました。[ 2 ] 2000年代を通して、この用語はJavaアプレットやMicrosoft Silverlightなどの他の競合するブラウザプラグイン技術で開発されたブラウザベースのアプリケーションを説明するために一般化されました。
ブラウザプラグイン インターフェイスが廃止され、標準HTML5テクノロジに移行したことに伴い、リッチ インターネット アプリケーションは、シングル ページ アプリケーションやプログレッシブ ウェブ アプリケーションなどの JavaScriptウェブ アプリケーションに置き換えられました。
「リッチインターネットアプリケーション」と「リッチクライアント」という用語は、2002年3月にマクロメディア(現アドビ)が発表したホワイトペーパーで導入されましたが[ 2 ] 、この概念はそれより数年前から存在しており、マイクロソフトは1999年4月に「リモートスクリプティング」[ 3 ] 、フォレスターリサーチは2000年10月に「Xインターネット」[ 4 ]という名前で発表していました。
2011年11月には、ブラウザプラグインをベースとしたリッチインターネットアプリケーション(RIA)アーキテクチャの需要が減少し、HTML5の代替手段が好まれるようになったことを示す発表がいくつかありました。Adobeは、モバイル向け[ 5 ] およびテレビ向け[ 6 ]のFlashの開発を中止し、 Adobe AIRに注力すると発表した。専門家はデスクトップ向けでさえFlashの妥当性に疑問を呈し[ 7 ]、「終わりの始まり」と評した。[ 8 ] Research In Motion (RIM)はPlayBook向けにFlashの開発を継続すると発表したが、一部の評論家はこの決定に疑問を呈した。[ 9 ] MicrosoftはSilverlightバージョン5のリリース後にSilverlightを放棄するという噂もあったが、後にこれが事実となった。[ 10 ] [ 11 ]これらの発表を受けて、「ブラウザプラグインの終焉」を宣言する人もいた。[ 12 ]
リッチモバイルアプリケーション(RMA)は、 Webアプリケーションから多くの特性を継承し、コンテキスト認識やユビキタス性などの明確な特性を備えたモバイルアプリケーションです。 [ 13 ] [ 14 ] [ 2 ] RMAは、「モバイルクラウドコンピューティング、将来のWeb、そして差し迫った通信技術の融合から生まれた、エネルギー効率の高い多層オンラインモバイルアプリケーションであり、コンテキスト認識、オフラインでの使いやすさ、移植性、データのユビキタス性を実現しながら、安全なワイヤレス環境での高機能、没入型のインタラクション、鮮明な応答による豊富なユーザーエクスペリエンスを提供することを目指しています。」[ 15 ]
デスクトップ コンピュータへの Web アプリケーションの展開が成功し、モバイル デバイスの人気の高まりを受けて、研究者はこれらの強化された Web アプリケーション機能をスマートフォン プラットフォームに導入しました。日本のNTT DoCoMo は、モバイル アプリケーションの機能を強化するために 2003 年にAdobe Flash Liteを採用しました。2008 年に、Google は、オフライン モードでプラットフォーム中立のモバイル アプリケーションをサポートするために、 Google GearsをWindows Mobile 5 および 6 デバイスに導入しました。モバイル デバイス用の Google Gears は、別個のユーザーがインストール可能なアドオンによって強化された Web アプリケーション開発用のモバイル ブラウザー拡張機能です。これらのアプリケーションは、アーキテクチャ、オペレーティング システム、テクノロジに関係なく、Web ブラウザーを使用してモバイル デバイス内で実行できます。2008 年 4 月、Microsoft は、モバイル デバイス向けの魅力的でインタラクティブな UI を開発するために、 Microsoft Silverlightモバイルを導入しました。Silverlightは、Silverlight 対応のモバイル アプリを実行する、 いくつかのモバイル ブラウザーと互換性のある .NET プラグインです
Adobe Flashは、ベクターグラフィックとラスターグラフィックを操作して、テキスト、描画、静止画のアニメーションを実現しました。音声と動画の双方向ストリーミングをサポートし、マウス、キーボード、マイク、カメラからのユーザー入力をキャプチャできました。FlashにはActionScriptと呼ばれるオブジェクト指向言語が含まれており、JavaScript Flash言語(JSFL)による自動化をサポートしていました。Flashコンテンツは、一般的なウェブブラウザ、一部の携帯電話、その他の電子機器(Flash Liteを使用)向けに無料で提供されていたAdobe Flash Playerを使用することで、様々なコンピュータシステムやデバイスで表示できました。[ 16 ]
Apache Flex(旧Adobe Flex)は、Adobe FlashプラットフォームをベースとしたクロスプラットフォームRIAの開発と展開のためのソフトウェア開発キット(SDK)です。当初はMacromediaによって開発され、その後Adobe Systemsによって買収されましたが、Flexは2011年にAdobeからApache Software Foundationに寄贈されました。
Adobe は 2017 年に Flash を廃止し、Adobe Flash Player は 2021 年初頭までにほとんどの市場で廃止されました。
Javaアプレットは、インタラクティブな視覚化を作成したり、ビデオ、3次元オブジェクト、その他のメディアを表示したりするために使用されました。Javaアプレットは、高水準言語でのプログラミングや、アプレットと元のサーバー間の通信に多大な労力を要する複雑な視覚化に適していました。
JavaFXは、様々な接続デバイスで実行可能なRIAを作成・配信するためのソフトウェアプラットフォームです。現在のリリース(JavaFX 12、2019年3月11日)では、デスクトップ、ブラウザ、モバイルフォン向けのアプリケーションを構築でき、3Dサポートも搭載されています。テレビセットトップボックス、ゲーム機、ブルーレイプレーヤーなどのプラットフォームへの対応も計画されています。Java FXは、プラグインJavaアプレットまたはWebstart経由で動作します。[ 17 ]
Silverlightは、Microsoftが独自の代替技術として提案したものです。この技術は広く受け入れられておらず、例えば多くのモバイルデバイスではサポートされていません。Silverlightの応用例としては、 2008年北京夏季オリンピック[ 18 ] 、2010年バンクーバー冬季オリンピック[ 19 ]、2008年アメリカ合衆国二大政党大会[20]などのイベントでのビデオストリーミングが挙げられます。SilverlightはNetflixのインスタントビデオストリーミングサービスにも使用されました。[21] Silverlightは現在は開発が中止されており、Microsoft Edge Legacy以降ではサポートされていません。
Gears(旧称Google Gears)は、 Google Chromeを含むウェブブラウザにオフラインストレージなどの追加機能を提供するユーティリティソフトウェアです。Gearsは標準化されたHTML5方式への移行に伴い廃止されました。GearsはGoogle Chrome 12から削除されました。 [ 22 ]
RIAはXFormsを用いて機能を拡張することができます。XMLとXSLT [ 23 ]に加え、XHTML 、 CSS、JavaScriptを使用することで、サーバーに問い合わせることなくクライアント側でローカルに再利用可能なデータテーブルなどの、よりリッチなクライアントサイドUIコンポーネントを生成することもできます。MozillaとInternet Explorerはどちらもこれをサポートしています。
RIAはウェブ検索エンジンにインデックス作成の課題を提示しますが、Adobe Flashコンテンツは現在、少なくとも部分的にはインデックス作成可能です。[ 24 ]
セキュリティはアプリケーションソフトウェアよりも向上させることができます(例えば、サンドボックスや自動更新の利用など)。しかし、拡張機能自体には依然として脆弱性が存在し、アクセスはネイティブWebアプリケーションよりもはるかに広範囲に及ぶことがよくあります。セキュリティ上の理由から、ほとんどのRIAはクライアント部分をサンドボックスと呼ばれるクライアントデスクトップの特別な隔離領域内で実行します。サンドボックスは、クライアント上のファイルシステムとオペレーティングシステムへの可視性とアクセスを、接続の反対側にあるアプリケーションサーバーに制限します。このアプローチにより、クライアントシステムはローカルアクティビティや再フォーマットなどを処理できるため、特にいわゆるシンクライアントを中心としたクライアントサーバー実装と比較して、クライアントサーバー間のトラフィック量と頻度が低減します。[ 25 ]