我们公司有一个Oracle服务总线体系结构(OSB)。我的部门需要向此OSB公开一些服务,这些服务稍后将由跨不同部门和技术的不同应用程序使用。我有7-8个应用程序,而且都是基于微软的(VB6、C#、SQL Server)。我的问题是,WCF是否是开发基于数据的服务的好选择?它与OSB集成得很好吗?是否存在任何集成问题?在这种情况下,最佳实践是什么?应该使用什么wcf传输协议?
发布于 2011-04-13 12:20:56
我参与了一些成功的项目,这些项目将WCF与OSB集成在一起,使用SOAP/HTTP作为传输协议。
根据以前的经验,有两个需要避免的关键风险:
WCF架构描述--考虑到两个框架都支持编排,你需要理清编排的位置,而且
如果方法是用WCF来提供数据集成,用OSB来提供访问和执行的中心点(以及可能的集成),那就太棒了。这是一条清晰的底线。
发布于 2011-04-14 13:07:45
我同意凯文的回答。据我所知,WCF在微软产品上表现得相当不错,但在其他产品上就不是那么好了。如果您保持您的WCF服务实现相当简单,并将所有繁重的工作(例如安全性、策略、寻址)都留给OSB,那么您可能就没问题了。
另一个需要注意的陷阱是,WCF似乎将XML类型绑定到本机.NET类型。虽然这对于大多数类型的人来说都是可以的,但有一件事让我们很头疼,那就是约会。在.NET中,日期是一个原始类型,而不是一个对象,所以当您尝试将其设为空时,它就会消亡。您可以通过将它们作为字符串(yuk)处理并在应用程序中来回转换来解决此问题,或者我相信您也可以创建自定义绑定,其中您可以将date类型包装在DateWrapper对象中,以迎合空值。
就我个人而言,我喜欢将服务总线模型作为托管在其他地方的实现的外观,因此从这个角度来看,我认为在公开OSB的服务的背后使用什么技术并不重要。
在传输方面,如果您的数据服务是关于以非事务性方式访问数据(例如,检索客户详细信息),那么SOAP/HTTP就可以了。如果您正在处理事务数据,可以考虑基于消息的传输,如JMS或MQ,因为根据经验,对WS-ReliableMessaging的支持还不是无处不在,也不是一致的。
希望这能有所帮助。
https://stackoverflow.com/questions/5641462
复制相似问题