对SOA的通俗解读
引言
几十年来,企业的信息化建设犹如用积木搭房子一样,存在着诸多的挑战:
多年前,我们用的积木一般数量较少,而且都是大块头的,这样,在搭房子的时候,我们先用一块积木搭了东墙(ERP系统),再用一块积木搭了南墙(CRM系统),当东墙和南墙要接在一起时,却发现东墙所用积木的边缘是方形的,而南墙所用积木的边缘是圆形的,这两座墙根本就接不上,要解决问题就必须自己再做一个一边方一边圆的积木把这两座墙接起来(编程方法实现信息系统集成)。
另外,这面东墙(ERP系统)由于是一个整体,又是定型品,我们无法对其的形状、大小、外观等因素,来根据我们的喜好而变化;另外当我们的喜好发生变化时(业务变化),想对东墙进行改变时,如开一个小门,我们面临的是必须把东墙撤出来,重新换一面东墙,而这无疑是对以前投资的浪费,同时很有可能带来的结果就是整栋房子的倒塌(企业倒闭)。
现在,随着玩具的不断改进,我们已经完全可以根据自己的喜好来搭建真正属于自己的房子了,因为组合的积木已经由原来的一大块变成了一个个的小块,并且每个小块的对接处尽量标准化。这样,我们就可以不必担心东墙和南墙的对接,对东墙的改造也变得轻而易举。
SOA的出现正是为了让这些原来是一个个大块头的积木(ERP、CRM等),变成一个个标准化的小块,让企业的信息系统不再繁杂、僵化。
早在1996年Gartner首次提出的SOA(Service-Oriented Architecture,面向服务架构)的概念。但当时由于软件技术的限制,无法真正实现,而现在随着软件技术的不断发展,SOA的实现成了可能,所以SOA被再一次的提出,并受到了热捧。
简单理解,SOA就是希望把软件变成像现在的积木玩具一样,变成一个个的小块,可以反复拼接,但是他们之间要有一系列共同遵循的标准,并且有一定的灵活性,可以让应用企业根据自己的想象创造他们想要的东西。SOA把企业基本应用封装成一个个的服务(积木小块),服务之间的接口遵循一系列统一的标准。企业可以根据自己的需求购买一个个的服务,而不是一个模块或者一个系统的来购买应用系统。当企业有新的业务需求时只需再购买所对应的服务即可。
SOA的概念与背景
一个技术理论的产生从来都不是从天而降的,在它的背后定有某种催化剂起着推进作用。SOA的催化剂,笔者认为就是广大应用企业的业务需求和由业务需求衍生出的IT需求。
- 业务需求
企业的业务环境正在面临巨大的变化,经济全球化要求企业的业务具备更大的灵活性,面对市场的快速变化和激烈竞争能主动响应;
敏捷制造的思想伴随着企业关注的核心竞争力也越来越受重视;
企业的规模变大,经营风险逐渐变高,企业的IT应用逐渐由部门级应用走向企业级应用,企业的经营者希望能时时地侦测到企业的综合信息,把原有的部门级应用的信息抽取出来,进行综合提取有用的信息。
- IT需求
为了跟上企业发展的步伐,企业内部的应用软件也逐渐增多,于是出现了种类繁多的ERP、PLM、BPM、CRM、SCM……因此信息孤岛林立,系统集成成了CIO的噩梦;在众多的企业应用系统之间又有很多共性,存在着严重得重复建设,重复投资的现象,如何把原来的IT资产整合起来,提高资源的重用性,成为摆在CIO面前的一道难题。
同时不断出现的新业务使得老系统已经无法适应,跟不上市场和客户的需求,企业需要把这些新业务需求快速建设到应用系统中去。
此时SOA理念的出现正好迎合了企业对于业务和IT上的需求。
SOA最初的定义是由Gartner公司给出的,但到目前为止,由于各厂商、个人和专家对SOA的理解不同,所以出现了很多关于SOA的定义:
Gartner则将SOA描述为:“客户端/服务器的软件设计方法,一项应用由软件服务和软件服务使用者组成……SOA与大多数通用的客户端/服务器模型的不同之处,在于它着重强调软件组件的松散耦合,并使用独立的标准接口。”
Service-architecture.com将SOA定义为:“本质上是服务的集合。服务间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务间需要某些方法进行连接。所谓服务就是精确定义、封装完善、独立于其他服务所处环境和状态的函数。”
Looselycoupled.com将SOA定义为:“按需连接资源的系统。在SOA中,资源被作为可通过标准方式访问的独立服务,提供给网络中的其他成员。与传统的系统结构相比,SOA规定了资源间更为灵活的松散耦合关系。”
到目前为止,关于SOA还没有一个统一的、被广泛认可的定义,e-works在总结以上定义的基础上,给出了自己的理解:
SOA是一种软件架构思想,通过使企业中一个个细化的服务标准化、独立化,来达到企业的IT系统跟随企业的动态变化的目的。
其核心为:
1) SOA是一种软件架构思想,并不是一种产品。
2) SOA的重点是面向服务,此服务包括企业的内部与外部的每一个业务细节,比如企业中财务应收发票的处理就是一个服务。SOA的思想是把这些服务从复杂的环境中独立出来——组件化封装,然后通过标准的接口使不同的服务之间相互调用。
在此过程中需注意:每个服务有一个明确的界限,其他服务只能通过接口来调用服务;每个服务是独立自主的,每个服务不必依赖于其他的系统而存在。
本文为e-works原创投稿文章,未经e-works书面许可,任何人不得复制、转载、摘编等任何方式进行使用。如已是e-works授权合作伙伴,应在授权范围内使用。e-works内容合作伙伴申请热线:editor@e-works.net.cn tel:027-87592219/20/21。
- 上一篇文章:IBM软件——无处不在的创新动力
- 下一篇文章:分析:中国企业需要怎样的BPM
