SCA/SDO与WCF的比较

     我是从去年4月份开始关注SCA/SDO的,但一直没有关心它的技术细节,五一刚好有空看了一下,感觉很像WCF但又不同,对二者做了一个简单比较,以下均属个人观点,具体相关技术的前因后果需要考证:)
     SCA与SDO框架是主流Java应用提供商对简化在他们之间多个平台上面向服务的设计与实施而出现的。也是对微软Indigo(WCF)的一个回应。以前Java世界也是各自为政,缺乏类似微软.NET Framework一样的公共平台,更缺乏WCF一样的统一分布式通信/计算平台。对SOA的理解仅仅停留在远程对象级调用的层次上(类似于微软早年.NET FX1.1中asmx的Web Services),没有很好地管理控制Web服务的措施,服务接口爆炸,对WS-*协议的支持各个主要Java厂商不尽相同,这一切都让Java应用与Indigo出现了代差。SCA/SDO从开始设计就有点像Indigo的雏形,问题很明显两大平台同时意识到但微软动手早完工早些,之间共通点主要是:
    -允许任何类暴露服务。这样将通信管道和逻辑完全分离。
    -使用属性标记简化讲服务的描述指定到类这个过程。就像C#中写[ServiceContract] 属性标记一样。
    -允许单个服务通过多种绑定方式的模拟暴露自己。使用配置文件如XML来指定。
    -支持WS-*标准。
    其实SCA本身我比较欣赏。还是我的一贯观点,竞争的世界才会诞生更多好技术。不过SCA好像进展比我想像的慢,原来预想2006年底会成型结果没有,后来想2007年前半年应该没问题结果好像还是没完,原因很简单:各个厂商之间协调看来不太容易。相比之下,微软通过WCF整合了包括MSMQ/DCOM/SOAP Toolkit/System.Message/Enterprise Services/WSE/.NET Remoting/Web Services等几乎所有的微软分布式技术,WCF已经发布半年多了,所以据我估计WCF的前景很好,在国内会促生一大批高质量的企业应用。
     再仔细看看:
     SDO:是IBM将多种来源的数据放到对象里的一个开发框架。和JAXB等不同,它不止是一个静态的绑定也不仅是XML数据源,而是通过JCP(主要是IBM和BEA支持)开始做标准化了。
     SCA:用于管理、组合服务与程序集的语言中立运行时中立的元数据模型。它不是一个JCP标准但是IBM,BEA,IONA,Oracle,SAP都准备支持。问题就出来了,Sun不准备加到J2EE规范里面去而且目前没走JCP标准所以这个以后可能还会起风波,何况后来还加入了一些半路搭车的。SCA组件支持process、java类等多种接口实现,所以更像WCF,但SCA在这方面的具体开发还遥遥无期,对WS-*的支持也没开发完,所以显得整体进程慢了。
     总体来说SCA与WCF技术上无代差。从开发人员角度来讲,创建一个WCF服务后可以选择多种绑定,一个WCF组件可以是一个web服务,一个BizTalk进程,一个.NET类等等,这些SCA要实现还需要加以时日。由于没搞Java已经两年了,所以可能有些说的不全,各位继续补充。

你可能感兴趣的:(WCF)