1

バックグラウンド

Java バックエンドに支えられた AIR クライアント アプリケーションがあります。

私たちのアプリケーションには、一度に大量のデータを取得する複雑なデータ グリッドがあります。個々のデータ セルは、重い計算/処理を引き起こす可能性があります。これは、ユーザーが満足して最終バージョンを保存するまで繰り返し発生します。

一部の処理の性質上、その大部分を Java で実行する必要があります。多くのユーザーを追加すると、サーバーのパフォーマンスに明確な問題が発生します。

代わりに、処理の大部分をクライアント側に移動する必要があります。

問題

これで、ユーザーが入力の最終セットを送信すると、サーバーはそれらを永続化する前に計算の最終実行を 1 回実行します。つまり、必要なすべての計算/処理を実行できる一連の Java クラスが必要です。

すでに Java クラスを作成しているので、Flex でやり直して両方を維持するよりも、クライアント側でライブラリとして再利用するのが理想的です。

Windows でサポートされているのは DLL のみであることが判明するまでは、Adobe AIR のネイティブ拡張機能が最適であると考えていました。配信メカニズムが原因で、NativeProcess を利用することもできません (Java ライブラリ用の .exe はありません)。

質問

これまでのところ、Merapi を試してきましたが、しばらく活動を停止していたことを考えると、今後の互換性が懸念されます。メラピに代わるものは他にあるのでしょうか?

または、AIR アプリケーションと Java ライブラリ間の通信ブリッジを作成しようとするこの問題に対する他の潜在的なアプローチ。

4

1 に答える 1

0

どれだけの作業を行うかによって、いくつかのオプションがあります。

FLEX以外を検討する場合は...

次の理由により、アプレットを使用することもできます。

これはブラウザで実行され、アプリケーションと通信して、クライアントのブラウザ リソースを使用して計算を実行します。

または、これが私のお気に入りですが、Java Webstart でデプロイされたデスクトップ アプリケーションを作成することもできます。これは完全にクライアント上で実行されます。サーバーのリソース ドレインではありません。RMI または単純なメッセージングを介してサーバーと通信できます。取得できる限りネイティブ デスクトップ アプリケーションに近く、それ自体を更新するため、展開の問題はありません。

3 番目のオプションはややこしいですが、理論的には、GWT のようなものを使用して Java でアプリケーションを作成し、それを GWT によって Javascript アプリに変換することができます。それはブラウザーで実行されますが、厳しい制限があります。私の謙虚な意見では、GWT Javascript はほとんど判読できず、カスタマイズも困難です。

別の方法:

アプリを標準の Web アプリとして作成し、Javascript を使用してクライアント側で計算を実行します。問題は、Java クラスを再利用できないことです。

結論(読むべき、謙虚な意見)

全体として、Webstart 経由でデプロイされた Java デスクトップ アプリケーションが最適なソリューションのように見えます。これにより、計算コードを再利用できるようになり、クライアント側のリソースも大いに活用されます。

于 2012-05-21T05:41:47.677 に答える