javaを使用して、あるサーバーから別のサーバーにファイルを転送する必要があります。パフォーマンスが最優先です。これらの3つのオプションのうちどれを選択する必要がありますか。Javaファイル転送、EJB、SOAPまたはREST、パフォーマンス比較
答えて
私の2セント:
- EJB。 WebサービスでEJBをラップするつもりがないという前提で、これはRMI呼び出しで終わります。つまり、クライアントはRMIを理解する必要があります。これは、プロトコルやポートが特定の中間体(ファイアウォールなど)によってブロックされる可能性があるため、公共のインターネットでは問題になる可能性があります。スケーラビリティの問題が発生する可能性があります。ロードバランサとWebサーバーがこれらのプロトコルを理解するため、SOAPやRESTなどのWebプロトコルについては、スケールアウト(クラスタリング)がずっと簡単です。
- SOAP;間違いなく、ファイルサイズが最大10MBになる可能性があるので、ファイル自体を転送するにはMTOMと考えるべきです。 SOAPメッセージ内にファイルを埋め込むには、64エンコードをベースにする必要があります。これは、ファイル内容自体(バイナリなど)によって異なります。平均64エンコーディングでは、要因1.3のオーバーヘッドが発生します(10MB> 13.33MB)。
- RESTを使用すると、ファイルエンコードに関してSOAPと同じ問題が発生します。
結論としては、私はSOAP + MTOMを最初に見て、いくつかのテストをします。あなたは、FTP、SFTP、FTPSのような "そうではない"プロトコルも考えてみてください。 http://en.wikipedia.org/wiki/Managed_file_transfer
EJBについては、実際にはRMI(Remote Method Invocation)を参照していると想定しています。これは、オブジェクトのシリアル化を使用します。アプリケーションのオプションであれば、これが最善の方法です。
SOAPを使用すると、XML作成/解析(オーバーヘッド計算)のオーバーヘッドが発生します。また、XMLをオブジェクトに変換するコード頭痛もあります。
RESTを使用すると、SOAPと同じ問題になります。しかし、これは誰もがほとんどのパブリックAPIに向かっているように見える方向です。
SOAPを使用すると、データをbase64でエンコードすることになりますが、これはデータを大幅に膨らませます(33%)!
私はRMIベース64がエンコードするとは思わないので、2進体でのREST転送はほぼ同等に効率的です。
RESTはHTTPを使用します。これは、実装が大きく調整され、大容量ファイルの転送を完全にテストされたプロトコルです。 RMIに使用されるプロトコルであるJRMPとIIOPは、通常、より小さい要求で使用されるため、チューニングが行われていません。したがって、JRMPまたはIIOPではなくHTTPを使用し、RMIではなくREST PUTを使用する方に傾いています。
しかし、RMIとHTTPの違いは小さいと思います。
しかし、とりわけ、何もベンチマークに勝るものはありません。私は3つのオプションすべてで大きなファイルを転送するという簡単なテストを行い、速度を測定することをお勧めします。
- 1. PostgreSQL - INSERT INTOパフォーマンス比較の比較
- 2. Javaで回転イメージを比較
- 3. Java EJBエンティティBeanのパフォーマンス
- 4. JavaソートとScalaソートのパフォーマンスの比較はありますか?
- 5. Javaファイル転送API
- 6. SOAPとXML RPCの比較
- 7. Java WebService(Rest/SOAP)デザインパターン
- 8. Javaでファイルを比較しますか?
- 9. RESTサービスプロキシとWCF SOAPプロキシのパフォーマンス
- 10. translateZ(0)と比較したCSSパフォーマンス
- 11. パフォーマンスの比較 - htc vs jQuery
- 12. タイプキャスト手順のパフォーマンス比較
- 13. パフォーマンス:XDocumentとXmlDocumentの比較
- 14. Java:intとStringsの比較 - パフォーマンス
- 15. コードの比較とパフォーマンス
- 16. パフォーマンスの比較stringr - str_replace_all
- 17. パフォーマンス比較NHibernateとADO.NET
- 18. Webフレームワークのパフォーマンス比較
- 19. IISとKestrelのパフォーマンス比較
- 20. パフォーマンス比較 - gccとllvm-gcc
- 21. Javaでソケットを介したファイル転送
- 22. .javaファイルと.classファイルの比較
- 23. プロパティ転送In Soap Ui
- 24. Javaでのファイル転送
- 25. JPA LazyLoadingコレクションはSOAP経由で転送されました
- 26. java ftpファイルを転送してファイルを破損しました
- 27. のJava - 比較
- 28. Java比較日
- 29. SOAP応答の比較/形式
- 30. PHP soap xmlとSoapUI xmlとの比較
ファイルのサイズはどれくらいですか? Javaファイル転送とは何ですか? – home
ファイルを転送するだけでいいですか、それとも追加情報が必要ですか? – powerMicha
ファイルサイズは最大10MBにすることができ、要求にはパラメータが含まれますが、応答にはファイルデータのみが含まれます。 – Ali