WCF是向Oracle Service Bus公开服务的良好选择

时间:2011-04-12 20:49:13

标签: .net sql-server wcf soa osb

我们公司拥有Oracle服务总线架构(OSB)。我的部门需要向此OSB公开很少的服务,这些服务稍后将被不同部门和技术的不同应用程序使用。 我有7-8个应用程序,都是基于Microsoft的(VB6,C#,SQL Server)。 我的问题是WCF是否是开发基于数据的服务的好选择?它是否与OSB很好地集成?有任何集成问题吗? 在这种情况下,应该使用什么是最佳实践和wcf的传输协议?

2 个答案:

答案 0 :(得分:4)

我参与了使用SOAP / HTTP作为传输协议将WCF与OSB集成的成功项目。

根据以往的经验,要避免两个主要风险:

  1. 架构描述 - 考虑到两个框架都支持它,你需要理清编排的位置,WCF有各种奇怪和古怪的功能可以提供性能优势。
  2. 安全集成 - 虽然两个框架都提供了通用安全标准的实现,但几年前我的经验是它们不能很好地协同工作。
  3. 如果方法是WCF提供数据集成,而OSB提供访问和执行的中心点(以及可能的集成)那么太棒了。这是沙滩上的明确界限。

答案 1 :(得分:1)

我同意凯文的回应。从我所看到的情况来看,WCF与微软产品相当不错,但与其他产品不太相配。如果你保持你的WCF服务实现相当普遍,并将所有繁重的工作留给OSB(例如安全性,策略,寻址),那么你可能没问题。

要注意的另一个陷阱是WCF似乎将XML类型绑定到本机.NET类型。虽然这对大多数类型都是好的,但是让我们感到头疼的一件事是日期。在XML中,您可以使用null日期,但在.NET中,日期是基本类型而不是对象,因此当您尝试将其设置为null时,日期就会消失。您可以通过将它们作为字符串(yuk)处理并在应用程序中转换为/来解决此问题,或者我相信您也可以创建自定义绑定,您可以将日期类型包装在DateWrapper对象中,以满足空值

我个人认为服务总线的模型只是其他地方托管的实现的外观,所以从这个角度来看,我认为在OSB暴露的服务的封面后使用什么技术并不重要。

  • 如果您想使用WCF,因为您喜欢它的功能并且它与您的应用程序很好地集成,那就去吧。
  • 如果您只选择它,因为它完全与服务相关,而且似乎非常适合OSB,或许看看是否还有其他替代方案可以为您和您的开发团队降低开销。

在传输方面,如果您的数据服务是以非事务方式访问数据(例如检索客户详细信息),那么SOAP / HTTP就可以了。如果您正在处理事务数据,可以考虑使用基于消息传递的传输,如JMS或MQ,从经验来看,WS-ReliableMessaging的支持尚未到处或一致。

希望有所帮助。

相关问题