与第三方Java服务通信的WCF服务的更好解决方案?

时间:2010-07-27 22:19:15

标签: .net wcf wsdl soa esb

我所处的情况是,我必须在我的工作中与第三方系统集成,以暴露基于Java的Web服务。我可以解析服务WSDL定义并生成代理类,并在.NET世界中与它们进行良好的交互。但是,在Java应用程序的对象模型中的属性名称非常复杂,托管Java环境的服务器有时会出现故障并且是点对点的,我的客户端服务并不是非常“干净”。当URI没有响应时,应用程序不喜欢它。我还希望不直接将服务实现逻辑包含到我的Web应用程序中,因为有很多可能重用这些Java服务,因为业务经常要求使用相同数据的新东西。

所以,我曾经做过的一段时间是写了一些“包装”WCF服务来处理属性映射,并为我们的开发人员提供了一个更好的开发接口。但是,这个解决方案并不是很好,因为我想实现一些路由和一些其他功能,并从1:1包装WCF转向Java服务。有没有什么好方法可以使用WCF 4功能更动态地处理它?我认为最大的障碍是我无法访问Java服务以进行更改,而支持该方面的开发人员除了Java之外并不熟悉。即使尝试解释ESO / SOA概念通常也是一个失败的原因。

其他人使用WCF作为第三方服务的伪服务网关?如果是这样,您如何以更动态的方式处理从WCF数据对象到第三方服务的字段映射?您是否正在使用第三方服务中的WSDL在WCF层中生成绑定合同和代理类?

感谢。我知道这是一个非常广泛的问题,没有100%正确或错误的解决方案。只是寻找一些关于这种架构的反馈。我看到很多关于WCF服务与其他WCF服务作为路由服务交互的信息,但WCF路由或作为基于Java的服务的网关的频率并不常见。

再次,这是我目前的架构..

.NET客户端 - > WCF服务(映射,属性清理和一些次要的业务逻辑) - >基于Java的Web服务 - >源数据(大型资产管理系统)

1 个答案:

答案 0 :(得分:0)

如果您需要第三方集成,确保服务重用,路由,映射等,您需要一个ESB,它将为您提供“开箱即用”的许多功能,您将节省不开发自定义中介的时间,可以尝试使用WSO2(开源)。

此致 何