IBM与SOA
我阅读了SCA和SDO标准,我也对比了过去我研究的CORBA,我也对比了微软的WCF,架构思想居然非常类似。
当年DEC和IBM主导定义的CORBA,太复杂,SUN和微软都做了定制化裁减,发展了自己的RMI/EJB和COM+。由于Webservice的出现,微软立即发展了基于Webservice的架构体系:WCF。但是JAVA世界由于标准制定牵扯了大量厂商的利益,发展缓慢。而IBM也不愿意尴尬的在SUN的JAVA世界做个影子巨人。IBM一直盘算着如何做领袖。
于是SOA的真正架构,吸收了CORBA的教训(IBM由于当年的CORBA没有带起业界标准很是懊恼,这次要卷土重来,更加学聪明了,谁说大象不能跳舞),也结合了Webservice,也借鉴了WCF(WCF也是在Webservice基础上发展起来的架构,很多技术借用了Webservice的技术,而非另起一套底层),终于产生。
而OSOA组织,最近才出现SUN的踪影,而SCA和SDO标准中并没有SUN提交的草案。
JAVA和.NET两大平台,封闭而专有。而IBM需要的是一种业界标准制定者。SOA这回达成了IBM的意愿。无论是JAVA,还是.NET,甚至是PHP,只要符合SCA和SDO,就可以提供业界标准服务接口。
挣脱了语言和专属平台优缺点的樊笼,IBM蓝色巨人又成为自由的业界之神。
如何应对软件服务化、互联网化?
我为什么这么关注、信任和理解SOA。其实和我自身所处的软件行业非常有关系。
我是做企业管理软件的。很早业界就都有共识:软件不能这样卖了。我们把一套办公系统卖给了运营商,人家用我们的软件做服务,收费比我们卖软件还多。所以,就连卖软件老大微软也在喊着软件服务化(“S+S”,Software+Service,“软件+服务”)。
过去是在企业内部运行的软件,一个企业不外乎也就那么多人那么多数据。但是,一旦把软件服务化、互联网化了,就不抵有多少人访问了。所以,我们如何应对软件服务化、互联网化。
上亿人访问的Webservice,其架构就不能象搭建企业内部运行的软件架构,你看Google,都有几十万台PC集群的计算资源才能支撑互联网服务。我们过去的传统的企业内部机房磁盘阵列和计算机集群架构不适合在公网上了,我们的数据库也不适合服务几亿人了。所以,我特别关注我们如何软件服务化,软件服务化的架构是什么样的?
其实,业界都在往一个方向跑,不管是Google、还是Yahoo、还是微软、还是咱们的百度、QQ、盛大、阿里,大家都在往软件服务化、互联网化的方向跑——如果你仅仅是把眼光放到SAAS,放到和过去的ASP(Application Service Provider,应用服务托管)去对比,眼界显然需要更高一些。
未来SOA时代计算环境
应用软件运行需要基础设施。首先是基础硬件设施,几十万台PC的集群如何虚拟文件系统和计算资源分配,这就是云计算(Cloud Computing)要解决的问题。现在云计算是个热门,Yahoo、Google、IBM、微软都在研究和建设。但微软慢了一步(微软在互联网计算上一直不敏感,总是用传统软件的方式看互联网),所以WFS没有出来(可能没想通作为集群中的一个节点资源,如何加入集群,与集群同构,还能符合个人桌面计算管理)。
有了云计算硬件基础,还需要数据存取软件基础。有了分布式文件系统,文件存取应该没什么问题,但关系数据的存取,这是现在所有数据库产品都没有解决的。Amazon看到了机会,推出了S3服务。全球互联网就是个超级计算机,而S3就是这个计算机上的数据库。
而所有的SOA应用,都必须在一个容器中运行,否则,有外界调用这些服务,这些服务运行中使用的资源谁来管理呢。很多人不明白容器是干什么用的,不明白中间件的来历,也不明白为什么JAVA和.NET都要做容器。如果你做应用,你自己还要负责那么多底层的分配与释放与并发,那么你做的既不专业,也累,也不稳定,不如交给系统商去管理。容器负责内存、资源的分配、调度、回收,负责安全,负责事务,负责并发,负责池化。而这些SOA服务,也必须能随时升级,就必须具备软件热插拔的功能。现在热的OSGi研究就属此类。
阅读推荐
相关文章