私は、JavaベースのWebサービスを公開する私の仕事でサードパーティのシステムと統合する必要があるシナリオにいます。サービスのWSDL定義を解析し、プロキシクラスを生成して、.NETの世界でそれらとうまくやりとりすることができます。ただし、Javaアプリのオブジェクトモデルのプロパティ名が非常に複雑であり、Java環境をホストするサーバーがダウンすることがあり、ポイントツーポイントであるという意味で、サービスはあまり「クリーン」ではありません。 URIが応答しない場合、アプリはそれを楽しみません。また、ビジネスが同じデータを利用する新しいものを要求することが多いため、これらのJavaサービスを再利用する可能性が高いため、サービス実装ロジックをWebアプリに直接含めたくありませんでした。
そのため、私がしばらく前に行ったことは、プロパティマッピングを処理し、開発者が開発するためのより優れたインターフェイスを提供する「ラッパー」WCFサービスを作成することでした。ただし、ルーティングやその他の機能を実装し、1:1ラッパーのWCFからJavaサービスに移行したいので、このソリューションはあまり快適ではありません。WCF 4の機能を使用して、これをもう少し動的に処理するための良い方法はありますか?最大のハードルは、変更のためにJavaサービスにアクセスできないことと、その側をサポートする開発者がJava以外のことをよく知らないという事実だと思います。ESO / SOAの概念を説明しようとしても、通常は失われた原因です。
サードパーティサービスへの疑似サービスゲートウェイとしてWCFを使用している人は他にいますか?もしそうなら、WCFデータオブジェクトからサードパーティサービスへのフィールドのマッピングをより動的な方法でどのように処理しますか?サードパーティサービスのWSDLを使用して、WCFレイヤーでバインディングコントラクトとプロキシクラスを生成していますか?
ありがとう。これは非常に幅広い質問であり、100%正しいまたは間違った解決策はありません。このアーキテクチャに関するフィードバックを探しています。WCFサービスがルーティングサービスとして他のWCFサービスと相互作用することについては多くの情報がありますが、WCFがJavaベースのサービスへのゲートウェイとしてルーティングまたは機能する場所はあまりありません。
繰り返しますが、これが私の現在のアーキテクチャです。
.NETクライアント->WCFサービス(マッピング、プロパティのクリーンアップ、およびいくつかのマイナーなビジネスロジック)-> JavaベースのWebサービス->ソースデータ(大規模な資産管理システム)