30

最近、Java Web Start アプリケーションを使用しました。表示していたページに埋め込まれた jnlp リンクを使用して、Web ブラウザから起動しました。アプリケーションがダウンロードされ、起動され、問題なく動作しました。それは私のローカルファイルシステムにアクセスでき、再起動するまで私の好みを記憶していました。

私が知りたいのは、Java Web Start アプリケーションが、Web 上の複雑なアプリケーションのより一般的な配信形式ではない理由です。Java および Java Web Start を使用するとデスクトップ アプリケーションの機能をより簡単に提供できるのに、なぜ開発者はデスクトップ機能を html/javascript で複製するのにかなりの時間とエネルギーを費やすのでしょうか?

銀行などの一部の企業環境では、複雑な取引アプリケーションをクライアントに配信する方法として比較的一般的な方法であることは知っていますが、なぜ Web 全体に普及していないのでしょうか?

(議論のために、ダウンロード ソースが「信頼されている」アプリケーションが「署名されている」(つまり、セキュリティ上の懸念がない)、ダウンロード速度が速い (読み込み時間が速い)、開発者が Java を知っている (多くの場合、Java を知っている) という世界を想定してみましょう)。 html/js/php を知っている)))。

4

8 に答える 8

15

理由はセキュリティでもアプリの起動時間でもないと思います。根本的な原因を突き止める前に、舞台裏にあるものを理解しましょう。

Java コントロール パネルには、ユーザーがデフォルトのブラウザのプロキシ設定を使用したり上書きしたりできる設定があります。つまり、インフラストラクチャ チームは、Windows または OS のインストール イメージをカスタマイズして、エンタープライズ プロキシ設定で JVM をプレインストールすることができます。したがって、これはまったく問題ではないと思います。

Java Web Start は、Java コントロール パネルでカスタマイズ可能な設定を使用して、すべてのアプリを実際にキャッシュします。アプリがキャッシュされると、アプリは他のアプリと同様に「インストール」されます。初回の実行は遅くなる場合がありますが、JVM のスマートなメモリ割り当て技術により、2 回目は高速になります。そのため、起動時間が問題になる可能性がありますが、現在、多くの Web サイト (企業内のものも含む) がポータルに移行されています。Web ポータルには、通常、開発目的で未使用のライブラリが多数含まれています。これは、ポータル自体が、特定のページで構築およびデプロイされるポートレットの種類を予測していないためです。したがって、単一のポータル ページをダウンロードすると、最大で MB が消費され、5 秒以上でページが完了する可能性があります。これは 1 ページのみであり、キャッシュは最大 30% 役立ちますが、毎回ダウンロードする必要がある HTML/Javascript/CSS コンポーネントはまだたくさんあります。これにより、ここでは Java Web Start が有利であると確信しています。

Java Web Start がキャッシュされている場合、サーバー コピーがアップグレードされない限り、Java Web Start が再度ダウンロードされることはありません。したがって、たとえば、MS Project のようなプロジェクト管理ソフトウェアが SmartClient (JWS と同様) を使用して完成した場合、クライアントとサーバー間の情報交換は、ブラウザのページ全体の更新などのプレゼンテーションのない純粋なデータになります。Ajax の助けを借りても、ページ全体のダウンロードが完全になくなるわけではありません。その上、多くの企業は、Ajax はまだ未熟で安全ではないと考えています。そのため、Ajax は開発者の間では話題になっていますが、エンタープライズ ソフトウェアではまだ注目されていません。それを念頭に置いて、JWS アプリには、JWS アプリがサンドボックスにデプロイされて実行される方法、署名されている方法、はるかにインタラクティブな GUI を備えている方法など、間違いなくより多くの利点があります。

その他の利点には、開発の高速化 (コードとパフォーマンスのデバッグが容易)、応答性の高いユーザー インターフェイス (PUSH 機能を提供するために Comet サーバーを必要としない)、実行の高速化 (クライアント コンピューターが HTML/Javascript/CSS のような変換なしで GUI をレンダリングするため) が含まれます。および少ないデータ処理)。

これらすべての後、私はまだ質問に触れていません.なぜJWSはそれほど有名ではないのですか?

私の意見では、Brian Knoblauch のコメントと同じで、意識がないということです。

IT 関係者は、Web テクノロジ、Ajax PUSH、GWT などの誇大宣伝にあまりにも惹かれすぎており、これらすべてのバズワードにより、クライアントにとって実際に機能するものではなく、さまざまなテクノロジを使用する楽しさや技術的な課題を解決することにバイアスがかかっています。

シトリックスを見てください。Citrix は実際には素晴らしいアイデアだと思います。Citrix では、バックグラウンドで独自のアプリ ファームを構築できます。クライアント エクスペリエンスに影響を与えずに実行できるアップグレードおよび実装戦略は数多くあります。Citrix の導入は非常に簡単で、安定していて安全です。企業はまだそれを使用しています。ただし、JWS は Citrix よりも優れていると思います。JWS の考え方は、クライアント マシンがアプリケーション自体を実行できる大量のサーバー ファームをホストするのではなく、クライアント マシンでアプリケーションを実行することです。これにより、会社は多くのお金を節約できます!!! JWS を使用すると、開発チームはサーバー側でビジネス ロジックとデータを構築できます。ただし、Web 処理ユニットがなく、クライアント コンピューターにレンダリング プロセスを実行させると、ネットワークの消費量とサーバーの処理能力が大幅に削減されます。

JWS が素晴らしいアイデアである理由のもう 1 つの例は、Blackberry MDS です。Blackberry アプリは、実際には Javascript から翻訳された Java アプリです。BB の MDS スタジオでは、GUI ツールを使用して BB アプリ GUI を構築し、Javascript で GUI ロジックをコーディングします。次に、アプリが翻訳され、BES サーバーにデプロイされます。次に、BES サーバーがこれらのアプリを BB に配布します。各 BB で、GUI レンダリングとネットワーク機能のみを備えたシン Java アプリを実行します。アプリがデータを必要とするときはいつでも、Web サービスを介して BES と通信し、他のサーバーからサービスを利用します。これってJWSのBB版だけじゃないの?それは非常に成功しています。

最後に、JWS は、Sun の宣伝方法のせいで人気がないと思います。BB は、自社の BB Java アプリがどれほど優れているかを宣伝することはありません。クライアントはそれが何であるかさえ気にしないと信じています。BB は、MDS を使用してアプリを開発する利点を宣伝しています。高速、コスト削減、ビジネス リターンです。

ちょうど私の、少し長い、2セント... :)

于 2009-08-17T05:14:33.510 に答える
11

Java Webstart の主な障害は、アプリケーションをダウンロードして起動する前に JVM をインストールする必要があることです。誰もがブラウザを持っています。誰もが JVM を持っているわけではありません。

編集: それ以来、実践的なWebstartの経験を積んでおり、次の2つのポイントを追加できるようになりました:

  • Deployment Toolkit スクリプトと、Java 1.6u10 前後でリリースされたモジュール化された JVM により、JVM と API コアを自動的にダウンロードし、残りをダウンロードしながらプログラムを開始できるため、JVM 要件の問題が軽減されます。
  • Web Start には深刻なバグがあります。Java 1.6 のリリースでも、アプリ全体を毎回ダウンロードするものと、ダウンロード後に不明瞭なエラー メッセージが表示されて失敗するものとがありました。全体として、このような脆弱なシステムに依存することはお勧めできません。
于 2009-02-19T12:38:58.427 に答える
7

Webstart の問題は、高速接続でもそれほど高速ではない何かを実際に「開始」する必要があることですが、webapp では URL を入力するとアプリが存在します。

また、webstart では多くのことがうまくいかない可能性があります。意図したユーザーが必要な権限を持っていないか、webstart のプロキシが正しく構成されていないか、jre の依存関係で問題が発生したか、最初に Java がインストールされていない可能性があります。したがって、インターネットの平均的なジョン・ドウにとって、それはまったく喜ばしいことではありません。

会社のような制御された環境では、多くの場合、これは適切で簡単なソリューションです。

于 2009-02-19T12:02:18.237 に答える
3

私は数年間、数千人のユーザー ベースで JWS をデプロイしたアプリケーションに取り組んできましたが、その自動アップグレードは実際には大きな苦痛です。

何らかの理由で更新するたびに、何十人ものユーザーが「途中で立ち往生」します。「クラスが見つかりません」という例外 (運が良ければ)、またはコードに到達する前に JWS から「起動できません」という情報が得られないだけです。アップデートが半分ダウンロードされているようです。または、言い換えると、更新をアトミックにダウンロードして適用せず、キャッシュが不十分であるため、同じ URL からアプリを再起動しても何も修正されません。

?dummyparam=jwssucksJWS キャッシュをクリアするか、別の URL を提供する (末尾に追加するなど) 以外に解決する方法はありません。開発者としての私でさえ、時々それを打って、回避策がわかりません。

それが機能するとき、それは機能します。しかし、そうでない場合があまりにも多く、それはあなたとあなたのヘルプデスクにとって大きな苦痛となります. エンタープライズまたはミッション クリティカルな使用にはお勧めしません。

于 2011-03-28T07:33:37.003 に答える
1

これらの投稿から、Web start を使用する場合は、サーバーに十分注意することが重要であることがわかります。起動するたびにアプリケーションをダウンロードするという「大きな苦痛」は、サーバーから配信されるタイムスタンプが正しくないことが原因である可能性があります。ここではアプリケーションではありませんが、キャッシュを無効にするだけでなく、適切に使用するようにサーバーを構成する必要があります。バグのある起動については、よくわかりませんが、これも接続が不安定なことが原因である可能性があるようです。

Web スタートの重要な利点は、Linux で OpenJDK とうまく連携することです。一部の幸せな開発者のクライアントは Windows のみを使用していますが、私のクライアントは使用していません。

最初の質問で言及された HTML と JavaScript は、アニメーション化されたボタンやインタラクティブなテーブルなどの小さなタスクでうまく機能する軽量なアプローチです。Java ニッチは、はるかに複雑なタスクに関連しているようです。

于 2011-09-06T07:14:24.887 に答える