【IT168 专稿】SOA与之前软件思潮中几种技术架构最大不同是——它是面向业务的设计。
SOA的架构理念,不仅用松耦合的分层结构隔离了技术,使得业务和技术的变化周期可以不互相影响;更重要的是,它还可以把不同知识域的人放在一个平台上讨论问题,比如用一个Workspace平台可以将业务人员、架构师、IT主管、程序员集成起来,让他们可以在一个桌子上交谈,从业务流程的设计到实现,现在可以用一种贯通的方式进行讨论与及时修改。
以前,不同知识域的人群,由于专业分工,有各自的思考角度,互相难于理解。现在,那些以前隔着墙打电话的人,可以在SOA这样一个平台上共同的交换信息,完成任务。所有人都知道好的应用程序是不可能由不懂业务的程序员开发出来的,但苦于无法在业务和技术人员之间建立一种共同语言,现在这种语言出现了,就是服务。
用契约的方式定义层次之间的关系
服务之间的调用契约来固定,其实不难理解,这就是市场经济的本质。
最早理论基础是卢梭写的《社会契约论》,西方经济体系就是基于契约架构起来的。具体到SOA的设计哲学里面,Design By Contract的目的完成了服务之间调用标准,也为未来遍及整个IT系统的服务网络提供了基础。
Google与其商业客户之间的靠点击量来计算收入的方式就是个参考的例子。以后的服务之间的调用,如同市场上的交易,可能是按次收费的,这样才会把服务的生产方调动起来。
这种模式,在汽车这样的传统行业早已通行百年,每种特定的零件都可以有很多的供应商,只要基于标准的契约来设计,安装到整车上都可以保证整体的功能。
软件行业的奇特之处在于,尽管软件行业在普通人看来是个高科技,但这个行业,在基于标准的生产方式上,远远不如离散制造业。这个行业充满了孤胆英雄,绿林大侠,以自我为中心的散漫气质,在中国还有一种诗意的浪漫情怀。在软件行业内部的人,都觉得自己的江湖很有武侠境界的气质。
现在SOA要讲契约,讲标准,讲交换。程序员出身的人也许会说,还不如自己开发一个。这也许是Design By Contract面临的最大文化难题。