WF, WCF是否能跨语言、跨异质平台做「分布式事务」?
请教各位前辈,微软宣称的 WF, WCF 跨平台,是指跨微软的 .NET/Windows 平台,还是也能跨 Java/Linux 等异质平台呢?
先不论把 WCF 发布成 Web Services。
WF, WCF 的分布式事务 (Distributed Transaction),其做法为,把事务的处理等级,下拉到 Windows 操作系统的 MS DTC (Distributed Transaction Coordinator) 中,由操作系统去处理 Distributed Transaction 的处理。
这样的话,若两边都是 Windows 操作系统,当然没问题。
但若一边是 Windows,另一边是 Linux 或 Unix,那 WF、WCF 是否就无法达成「分布式事务」了,请各位有相关经验,能提供一些关键词、关键观念或做法,或其它在线文件,可供小弟我了解,
另 WF 最强的功能就是「追踪」工作流的处理情况,但若用的是 Oracle/Linux,微软的 WF 还有办法追踪得下去吗?
我个人很疑惑,但微软自家的书籍好像不大会提异质平台的整合,请各位前辈解惑。
到底 WF, WCF 是真跨平台,还是假跨平台(只跨微软自家的平台)?
谢谢。
呵呵,我在WCF分布式开发步步为赢(3)WCF服务元数据交换、配置及编程开发回答了一次了。
我来部分回答你的问题。目前我主要专注在WCF学习上,WF的问题没有深入学习,就不做回答。
1.WCF可以实现跨语言和跨平台的系统间的交互,包括基于java语言的开发的web service,因为WCF也支持核心的Web Service核心协议。
2.WCF的分布式事务确实借助了MS DTC分布式事务协调器来实现分布事务。使用的类也是.NET Framework 2.0命名空间System.Transactions.System.EnterprisesServices企业级服务里也有事务特性的支持。但是局限性在于MS DTC linux\Unix系统中不存在分布式事务协调机制,因而无法接触DTC实现事务传播,也就无法实现WCF的异构操作系统的分布式事务。《Programming WCF Service》一书中给出的例子也有介绍。这里有WCF事务基本概念的介绍:http://blog.sina.com.cn/s/blog_4fa676f601008dw7.html
3.WCF服务分布式事务接触微软已有的技术,.NET的平台移植性一直是大家所诟病的。这个应该是微软基于战略利益的考虑吧,一直不做linux下.NET FrameWork的移植开发工作。确实在某种程度上其跨语言、跨平台是有局限性的。
4.WCF分布式事务的讨论我也会在后续的文章里给出.
希望以上的回答能给你一些帮助,也欢迎高手留言补充~