说说SOA的前世今生

SOA是英文Service-Oriented Architecture,即面向服务架构的缩写。本质上说,SOA体现的是一种新的系统架构。在基于SOA架构的系统中,具体应用程序的功能是由一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的。可以说SOA的出现,将为整个企业级软件架构设计带来巨大的影响。

有人说是四年,SOA这个词成为公众术语差不多有四年了。

有人说是十年。IIOP,RMI,CORBA,COM ,算起来有十多年了。

但我觉得,应该从五十年前算起。那时,有了子程序。


子程序的出现带来了如下变化:

(1)程序有了层次结构。一个程序可以由一系列功能模块构成,功能模块又可以由下一层的功能模块构成。

(2)程序有了规范化接口。在任意层次,程序与子程序之间通过规范化接口进行数据传递。FORTRAN、C等等,都有自己的规范。

(3)程序员的有了工作分工的自然边界。企业内部是如此,企业之间也是如此。人们可以买到通讯库函数,图像库函数,统计分析库函数,等等。调用这些库函数不需要知道它们内部是怎么实现的,只需要接口就行了。

(4)对函数的功能都有描述。一般包括每一个参量的数据格式,数值意义,输入状态,输出状态,整个子程序的行为状态。当然,那时没有用XML,没有用WSDL,而是用表达力更强,效率高得多的工具——自然语言。

所有这些,都是今天的SOA标榜的,但早就存在了。

当二十年前我开始写程序的时候,调用自己程序之外由别人写的Service 已经是司空见惯的了,不过那时局限于“系统服务”。这些服务还可以被替换。我自己的程序一启动,就把IBM PC上的INT 9、INT 16换了。

在过了几年出现了DLL,又有了更多的SOA元素。

COM、CORBA等等的出现,将这一进程扩展到互联网上。规模达到整个互联网的SOA已经完全成为可能。

从这里,我们看到,今天的SOA只是几十年来的自然进程的一个阶段,没有什么特殊的。

posted @ 2007-05-02 02:56  meil  阅读(641)  评论(1编辑  收藏