2

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

所以,我不久前所做的是编写一些“包装器”WCF 服务来处理属性映射并为我们的开发人员提供更好的开发接口。但是,这个解决方案感觉不太好,因为我想实现一些路由和一些其他功能,并摆脱 1:1 包装器 WCF 到 Java 服务。有没有什么好的方法可以使用 WCF 4 功能更动态地处理这个问题?我认为最大的障碍是我无法访问 Java 服务以进行更改,并且支持该方面的开发人员除了 Java 之外并不熟悉其他东西。即使试图解释 ESO/SOA 概念通常也是徒劳的。

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

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

同样,这是我当前的架构..

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

4

1 回答 1

0

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

问候,何塞

于 2013-09-30T10:24:53.450 回答