Web service到底能不能发展起来,成为service based Internet的基础,到现在我也不明白。
打开OASIS的网站,你会发现数不胜数的Web service规范,其中大部分出自软件界的两个大佬,IBM和Microsoft,之手。这两家公司好象只在两个领域有合作,一个是XBox 360,使用了IBM PowerPC 970芯片,而且是IBM专为Microsoft定制的芯片。另一个就是Web service规范,在这一领域,IBM和Microsoft站在一个阵营里,而传统的J2EE厂商们,象BEA,SUN站到了另一个阵营。
我很担心现在的OASIS会象以前的CORBA一样,为了一些技术细节而互相扯淡,耽误了推出标准的最佳时机:WSRP 2.0就是这样一个例子。象这样一个本来是要为系统配置提供方便的技术,其结果却是异常复杂的标准,以至于所有的产品都不可能完全实现这样一种规范。最后呢,也和CORBA的结果一样,理论上是一个通用的ORB总线,不同厂商的ORB可以连起来,事实上却完全不可能。因此,我很佩服Microsoft的CardSpace,他们“悍然”推出了这样一种解决方案,把OASIS还没有正式批准的规范(WS-Trust)拿出来放到自己的产品里,开风气之先。
现在的情况是,因为web service规范太多太杂,所以具体的产品只能选择把几种规范组合起来,比如Microsoft CardSpace,通过组合WS-Trust,WS-SecurityPolicy和WS-MetadataExchange形成他们自己的产品;IBM WAS 6.1,提供了一种WS-Trust,WS-RM和WS-SecurityPolicy的组合来实现安全消息管道。这样做的结果呢,规范尽自规范,可是大家按自己的需要把规范拆着用,还是不能保证不同厂商产品之间的互操作。而最后的结果很可能和当年的CORBA一样,广大的开发者不带你们玩。他们有自己的选择,而且这样的选择越来越多。
为什么OASIS不能先指定一个统一的框架,然后大家再提具体的实现性规范呢?事实上这样一种“统一的框架”很可能更加复杂,还不如大家先散着提,提到一定程度了再自然而然的“升华”出一个框架来。SOA吗?世界上有几个人真的知道什么是SOA吗,至少我觉得IBM没几个人真懂。
这么多软件标准化组织的血的教训还是不能阻止新的impossible mission出现,也许大公司们的钱真的是太多了...