2

Java アプリケーションから Web サービスを使用して大量のデータを引き出しています。データは構造が少し複雑で、配列コレクションを使用した多くの階層パターンがあります。データをロードするのに (jboss および WebSphere で) 約 15 秒の大きなパフォーマンスの問題が発生しています。消費される時間は、ほとんどの場合、サービス データをフレックス オブジェクト構造に変換する間です。Weblogic アプリケーション サーバーへの移行中に問題が悪化します。axis2 フレームワークを使用しています。

これを最適化する方法はありますか?Web サービスの代わりに使用できる代替テクノロジは何ですか?

4

1 に答える 1

3

多くのリファクタリングが必要になるため、私の答えが気に入らないかもしれません。簡単な修正は考えられません。

Web サービスの代わりに使用できる代替テクノロジは何ですか?

Web サービスの代わりにAMFリモート処理を使用すると、最高のパフォーマンスが得られます。これが何であるかを説明する記事と、これにより応答時間を簡単に半分に短縮できることを示すベンチマークが含まれています: http://www.themidnightcoders.com/products/weborb-for-net/developer-den/ technical-articles/amf-vs-webservices.html . そして、そのベンチマークはサーバー側で .Net を使用しています。Java サーバーを使用すると、さらにうまく機能します。

これを最適化する方法はありますか?

クライアントに渡すオブジェクトを「データ転送オブジェクト」(DTO) にリファクタリングすることを検討する必要があります。これらは、クライアントが表示するために必要なデータのみを含む単純な値オブジェクトです。つまり、サーバーからクライアントにデータを転送するのにかかる時間が短縮され、オブジェクトを ActionScript クラスに変換するのにかかる時間が短縮されます。

関連する作業をどのように制限できますか?

サーバー側にレイヤーを追加して、既存の Web サービスを呼び出し、複雑なデータを単純な DTO に変換し、AMF サービスを介してクライアントに配信することができます。こうすることで、既存のコードをそのまま残しながら、パフォーマンスを大幅に向上させることができます。

于 2012-12-11T10:24:50.600 に答える