アプレットがリロードされました

アプレットがリロードされました





前書き




Adobe Flashがインターネット上で完全にその地位を占めたのは秘密ではありません。 一般的な統計によると、インターネットユーザーのほぼ98%がFlashプラグインをインストールしています。 その主な目的は、「リッチUI」(eng:リッチユーザーインターフェイス)の実装、つまり、美しくダイナミックなインターフェイスです。 しかし、最近、2人の巨人(MicrosoftとSun)が彼の立場を揺るがすことを決めました。 MicrosoftはSilverligthテクノロジーをリリースし、Sunはより深刻な打撃を与えることにしました。 Flash / Flexを振るという共通の明確な目標を持って、一度に複数の製品をリリースします。







アプレット




これ自体は新しい言葉ではありません。 さらに正確に言えば、かなり古いものです。 実際、「アプレット」を開発する可能性は1995年に現れました。 13年後、この技術は実際には普及していません。 実際、これは驚くことではありません。 永続的なセキュリティの問題、永続的なブラウザーの互換性の問題、ブラウザーがフリーズするアプレットのレンダリングの問題。 欠点のリストはかなり長く続く可能性があり、最も興味深いのは、これに矛盾する人を見つけるのが難しいということです。 2008年8月28日にKen Russel(新しいプラグインのアーキテクト)がGoogleの従業員にプレゼンテーションを行い、これらの問題はすべてSunで長い間知られていたことを明らかにしました。 しかし、ほとんどの場合、彼は主な質問-「すべてを修正する方法」を取り上げました。 彼らが見つけた答えを見てみましょう。

Sunによると、プラグインコードのほぼすべてが完全に書き直されました。 実際、単なる書き直しではなく、プラグインアーキテクチャ自体が完全に再設計されています。 現在、プラグインはほぼ完全にJavaで実装されています。 プラットフォーム固有の部分は、Java <-> JavaScriptブリッジのみです。 同社によれば、彼らはこのブリッジを完全に実装するために最小限のブラウザ依存メソッドを必要とするインターフェースを開発することができたという。 これにより、Firefox Mozillaでしか機能しないJava-JavaScript通信の安定性に関して以前に存在した問題を解決できました。 プラグインの内部は本当に大きな変化を遂げました。 これで、アプレットを実行するJVMはブラウザプロセスから完全に分離され、ブラウザプロセス内にある小さな非同期クライアントを介して接続されます。 これは、アプレットがハングし、ブラウザがフリーズしないようにするためです。 さらに、一方では開発者の手を大きく引き離し、他方では質問を追加する新機能があります。 たとえば、同じページ上のアプレットは異なるJVMで実行できますが、必須ではありませんが、開発者は各アプレットのJVMにコマンドラインパラメーターを渡すことができます。 さらに、各アプレットは特定のバージョンのJREを実行できます。

たとえば、JVMにパラメータを渡すことの興味深い結果は、アプレットで使用可能な仮想メモリのサイズを増やす機能です。 いいですね。 しかし、著者は質問を頼みます-Webページを開くとき、開発者が安全にプレイすることを決定し、6〜7の各アプレットに512 Mbを割り当てたという理由だけで、2〜3 GBのRAMが必要になるという事実に備える必要がありますか?

ただし、この事実はアプレットに固有の最もグローバルな問題を解決します-アプレットのロードおよび起動時にブラウザがフリーズします。 開発者の約束によると、これは今や物語です。 アプレットは別のプロセスにあるという事実により、ブラウザはアプレットを起動するのに必要なすべての時間を通常どおりに動作し、アプレットが起動するとすぐに実際にWebページに挿入されます。 これは、実際にはこれが完全に真実ではないことを示す実験です...

画像

画像

画像

Jnlp


現在、プラグインは、ページにアプレットを配置する新しい方法を完全にサポートしています。 プラグインは、Java WebStartで使用されるJNLPを完全にサポートしています。 実際、更新全体で最も重要なのはこの事実です。 これにより、実際にはプログラマの手が解放されます。 第一に、アプレットはもはや単なるアプレットではなく、実際、これは同じコンポーネントがアプレットまたはWebStartを介してインストールされたアプリケーションのいずれかになることができることを意味します。 しかし、これでさえ最も重要な革新ではありません。 そして最も重要なことは、サードパーティのライブラリを使用してアプレット用にロードできるようになったことです。 たとえば、JOGlを接続できます。 つまり、アプレットでは、ハードウェアアクセラレーションOpenGLを完全に使用できます。 ただし、ハードウェアアクセラレーションは3Dだけでなく、2Dグラフィックスのハードウェアアクセラレーションも制御できます。 Webページで3Dグラフィックスが利用できることは間違いなく興味深い視点です。 これは、オンラインゲームでは特に興味深いものになります。 たとえば、愛好家は有名なQuke 2ゲームをJavaに移植し、ブラウザから直接起動できる新しいプラグインを使用して、プロジェクトは現在Jake 2(http://download.java.net/javadesktop/plugin2/jake2/)と呼ばれています。 もう1つの興味深い開発は、NASAによって開発されたアプレットです。これは実際にはGoogle Earthの類似物であり、Webページ上に惑星の3次元地図を表示するために自由に使用できます。 (http://download.java.net/javadesktop/plugin2/wwj/)。

アプレットをページに埋め込むための下位互換性モデルも興味深いものです。 実際、古いプラグインと新しいプラグインの両方で認識されるようにアプレットを埋め込むことができます。さらに、古いプラグインがインストールされている場合は1つのアプレットを実行し、新しいプラグインがインストールされている場合は別のアプレットを実行できます。 これは、アプレットの埋め込みコードを動的に変更する必要なく、標準的な方法ですべてアクセスできます。

興味深いのは、事実上すべてのアプレットがマウスを使用してブラウザから簡単に「プル」でき、Java WebStartを介してインストールおよび実行されることです。 さらに、これはアプレットを再起動しなくても起こります。 これはかなり興味深い事実であり、間違いなく理論的には非常に便利です。 しかし、最も興味深いのは、「友だち」の不正な広告主がポップアップを開くわずかな機会をどのように活用するかです。 何らかの理由で、作者は、ユーザーがブラウザーからアプレットを「引き出し」て、ユーザーのコンピューターに完全に展開する方法を思い付くことに疑いの余地はありません。 重要な事実は、ブラウザーからプルされたアプレットは既に実際に「信頼」されており、JVMが実行されているすべてのユーザーデータが利用できることです。 アプレットが独自のウィンドウを作成できるという事実は、すでにかなり危険に思えます。 もちろん、開発者はそれについて考え、アプレットによって作成されたすべてのウィンドウには、アスタリスクと追加の「閉じる」ボタンが付いています。 危険について一般ユーザーにどのように効果的に警告するかが重要なポイントです。

もう1つの興味深い事実は、アプレットで使用できる新しいデータウェアハウスです。 このストアの数量は非常に限られています。 しかし、これはユーザーコンピューターの「ラベル付け」の興味深い見通しを開きます。 はい、この機能はFlashにもありますが、それでもアプレットはユーザーに通知せずにデータを保存できます。 また、非常に多くのユーザーがブラウザに保存されているデータを削除する方法を知っている場合、Javaプラグインキャッシュを削除する方法を知っているユーザーはどれくらいいますか?



Java fx


新しいプラグインはJavaFXを完全にサポートします。 これは、リッチな動的インターフェースを作成するためにSunによって開発された新しいスクリプト言語です。 これは、実際にはFlashへの直接的な応答です。 この言語は非常にシンプルで機能的です。 JavaFXを使用して作成されたアプレットは、実際は最初は単なるFlashのように見えますが、詳細を見ると、そうではないことがわかります。 非常に興味深いのは、Sunによると、JavaFXが競合他社よりも高速であることです。

画像

JavaFXが宣言型言語であることに非常に満足しています。 他の宣言型言語(HTML、XHTML、XML)の成功を考えると、彼は成功を収めることができます。 さらに、この技術はプログラマーとデザイナーの仕事を非常にうまく分離することを可能にし、それ自体は常にウェブアプリケーションの開発における主要な問題を提示します。 追加の利点は、異なるプラットフォームへの移植性です。ここでは、ソフトウェアプラットフォーム、つまりハードウェアプラットフォームについては説明しません。 現時点では、これにはモバイルデバイスとテレビ(Java MEが利用可能な実質的にすべてのデバイス)が含まれます。 ただし、SunとAdobeのソリューションには主な違いがあります。JavaFXは、美しいインターフェイスだけでなく、多くのアニメーションを備えたインターフェイスにも焦点を当てています。 そして、このフレーズには非常に深い意味があります。 実際、レンダリングコアは、複雑なシーンのレンダリングだけでなく、アニメーション専用に最適化されています。



おわりに




サンは、新しいテクノロジーとその相互接続に非常に真剣に取り組んできました。 テクノロジーは本当に考え抜かれているため、使いやすいです。 ただし、彼らにとっての主な問題は、彼ら自身の欠点ではなく、開発者がアプレットとどのように関係するかということです。 それが、「アプレット」という言葉がどこでも使わないようにしようとしている理由です。 著者の意見では、実際には以前の実装には何も残っていないため、これは本当に正当化されます。 現在、この問題は完全に業界に委ねられています。業界は偏見を捨てることを決定し、これらすべてのテクノロジーの将来を確保するか、時間とともに見出しが消え、すべてがそのままになります。



All Articles