2012-03-13 18 views
0

お客様のサイトでファイアウォールの背後にある.NET/C#アプリケーションを実行しています。 このアプリケーションは、クラウドにデプロイされたJava Webアプリケーションであるリモートコンポーネントを使用します。これら2つのアプリケーションは、2つの方法で通信する必要があります。 統合に使用する最善の技術は何ですか?
私たちは、JSONにシリアル化されたデータでRESTfulスタイルのHTTPSリクエストを実行することで、ファイアウォール(.NET)の後のアプリケーションから外部(Java)への単純なソリューション(片方向通信)を実装することを検討していました。片方のポーリングで2つの方法が達成されました。
しかし、要件が大きくなり始めました。障害やメッセージの非同期配信などの問題が発生した場合には、再試行が必要になりました。 JMS(Apache)を見て、ESB(Mule)
過去に同様の問題を解決した人からのご意見やアドバイスをいただければ幸いです。.NETアプリケーションとJavaアプリケーションの統合 - JMS、ESB ...?

+0

IMOでは、この質問は広すぎるため、適切な解決策を見つけるのはかなり複雑になる可能性があります。あなたは、AMQPやVPNのようなトランスポート層ソリューションを見たいかもしれません... Muleは、単に統合ミドルウェア(またはバズの言葉 - 'ESB')であり、必要なプロトコル決定をする際にあなたを助けません。 – home

答えて

0

WebサービスとJAX-WSを見ることができます。 RESTとJMSには2つの利点があります。 1. .NetとJavaの両方でサポートされているトランザクション(WS-AT)。 2.セキュリティ(WSS)のサポート

Javaと.Netの間のJMS相互運用性はあまり強固ではありません。

+0

Javaと.Netの間のJMSの相互運用性は、何か確固たるものではありません。それはかなりの声明です。確かにそれは両方の言語に対するJMSプロバイダのサポートに依存します。私はTIBCO EMSを使用していますが、相互運用性に問題は一度もありませんでした。 – Fen

+0

JMSは.NETコアライブラリでサポートされておらず、サードパーティのライブラリと製品によってのみサポートされています。 4年前の私の以前の仕事では、Javaと.Netの相互通信プロトコルとして市場と選択されたWebサービスを分析しました。それは最も強固な方法だったからです。多分、物事は時間のために変更されています。 – korifey

+0

JMSはAPI標準であり、JMS互換ブローカが実装する必要があるインタフェースの集合に過ぎません。あなたは.netとor javaをターゲットとするクライアントを書くかどうかは、ブローカに任されます。これ以上何もない。 – Fen

0

あなたはRabbitMQをブローカーとして見ることができます。これは、Javaクライアントと.netクライアントの両方を提供するAMQP標準ブローカーです。高速で堅牢で、セキュリティとトランザクションを提供します(必要な場合)。

0

私はいくつかの理由でWebservicesに行きます。

最初に: ウェブサービスは、多くのプログラミング言語、ベンダー、フレームワークでサポートされている、幅広いテクノロジーです。 Javaおよび.NETでのサポートは非​​常に優れています。

第2に: Webサービスは、プロトコル、言語、フレームワークに依存しないように設計されています。 なぜこのようなレベルの相互運用性のために設計されたものではないので、新しい問題を引き起こすかもしれないいくつかの他のテクノロジと闘うのはなぜですか。

第3: Webサービスは柔軟性があり、要件に合わせて拡張できます。 Imagenあなたの上司は明日、C++やFortranアプリケーションを統合することを求めて歩いています。 Webサービスでこれを処理できますが、他のソリューションではそうではありません。

これは私の個人的な意見ですが、私はウェブサービスに行きます。 Javaの場合はJAX-WS、.NETの場合はMSDNが必要です。

+1

Webサービスはたくさんのシナリオで素晴らしいですが、1つの領域Pub/Subで動作させるためにはたくさんのハックを実装しなければなりません。イゴールは、メッセージの非同期配信のようなものをサポートする必要があると言いました。これはpub/subを意味するので、私はキューイングシステムを推奨しています。 – Fen

+0

これは完全には当てはまりません。 Webサービスは、非同期で要求を送信し、応答を受信する機能をサポートしています。 –

+0

しかし、(HTTPベースの)Webサービスは、メッセージングベースのプロトコル(MQ/AMQPなど)ほど信頼性がありません。大量の環境では、ポーリングはオプションではありません。 「Webサービスは要求を送信し、非同期で応答を受け取ることをサポートしている」という具体的な標準は何ですか? – home

関連する問題