複数のクライアントが複数のサーバーと通信し、TCP/IP 接続を介してメッセージを送信できる状況があります。クライアントは任意のテクノロジーを使用でき、実行中のサーバーのホスト名とポートのみを渡すことでサーバーとの通信を試みます。openESB の使用を提案する人はほとんどいませんでした。しかし、ここでの問題は、それが私のニーズに対してどれほど実現可能かわかりません。クライアント プログラムは、どのようなテクノロジでも使用できます。Java ソケット プログラミングを使用してクライアントを作成し、サーバーと通信しているとします。しかし、サーバーがopenESBを使用して作成されている場合、サーバーと通信して、サーバーのIPとポートだけを使用してリクエストを送信することは可能ですか? ソケットプログラミングとopenESBの違いを教えてもらえますか? この 2 つはプログラマティックとはまったく関係がないと思いますが、正しいですか?
1 に答える
短い答えは、それはあなたのニーズに依存するということです. サーバーが単純化される場合、OpenESB はやり過ぎかもしれません。サーバーが他の多くのサービス/ソフトウェアに統合される場合は、OpenESB が最適かもしれません。
ほとんどの ESB ソフトウェアでは、ESB 内でサーバー ソケットをホストできます。ESB は通常、インストールして維持する大きなソフトウェアであることを覚えておいてください。また、OpenESB は JBI 仕様に基づいており、ESB を実際にフル機能で使用したい場合は、この仕様に精通している必要があります。考慮すべきことの 1 つは、ESB は本質的にはバックボーン ソフトウェアの一部であるため、ESB がソケットをホストするだけの場合、ESB を適切に利用できないため、無駄になります。
したがって、単純な tcp/ip サーバーを作成する場合は、Netty フレームワークまたは Apace Mina というフレームワークを検討してください。
完全な ESB に代わるものは apache camel です。これは、軽量 ESB と見なすことができます。
ESB ルートを決定する場合、OpenESB、Apache ServiceMix、および Mule があります。
ESB テクノロジは、正しく使用すれば非常に強力です。ESB を読んで、ニーズに合っているかどうかを確認することをお勧めします。