面向服务的体系结构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
所谓“结构程序设计方法”,就是基于面向对象的体系结构没计方法的早期蓝本,侧重於解决程序正确性的编程的方法,以此为基础建立了软件工程这门学科CONTROL ENGINEERING China版权所有,建立了编程的基础理论体系。
SOA组成
SOA的体系结构仍旧是三层或N层结构,但对异构平台各层之间的联系,不是用CORBA或J2EE的方式,而且用Web的服务协议来实现,概念简单统一,目前都是采用嵌入ESB服务总线的平台来实现,ESB是一个中间件群,确保系统实现服务功能、各种中间件功能及松耦合连接等。另外,普遍采用BPEL(业务过程执行语言)来描述用户需求,由BPM(业务过程管理平台)来解释执行。
关键技术和基础理论
⒈各种规范和标准控制工程网版权所有,如SOAP、开发系统的规范。
⒉各种工具和环境。如ESB平台、BEPL语言执行平台。
⒊适应SOA的系统需求建模和领域参考模型。
4.比较CORBA、J2EE、和COM,融合到SOA中。
SOA的主要优点
①利用现有的资产。方法是将这些现有的资产包装成提供企业功能的服务。组织可以继续从现有的资源中获取价值,而不必重新从头开始构建。
②更易于集成和管理复杂性。将基础设施和实现发生的改变所带来的影响降到最低限度。因为复杂性是隔离的。当更多的企业一起协作提供价值链时,这会变得更加重要。
③ 更快地整合和现实。通过利用现有的构件和服务,可以减少完成软件开发生命周期所需的时间。这使得可以快速地开发新的业务服务,并允许组织迅速地对改变做出响应和缩短开发时间。
④ 减少成本和增加重用。通过以松散耦合的方式公开业务服务,企业可以根据业务要求更轻松地使用和组合服务。
⑤ SOA 业务流程是由一系列业务服务组成的,可以更轻松地创建、修改和管理它来满足不同时期的需要。
软件危机
我们都知道由面向对象发展到面向构件,由面向构件再发展到面向服务,因此它们的认知观和基础理论都是息息相关的,解决大型软件的开发效率和质量除了要解决编程的正确性外,还必需解决开发周期长、复用性差、成本高、文档多、以及难以适应系统演化等问题,十多年来仍旧困惑着这门学科,“软件危机”仍未解决。
构件/架构技术
人们的知识是从一个定理、一个原理逐步积累起来的,社会是依靠知识的不断积累发展的。然而编制软件每次却都是从零开始,这是造成“软件危机”的根本原因。由此提出了编程工作是否也可以重用以前成功的经验和程序呢?。然而软件的重用比数学中重用难得多CONTROL ENGINEERING China版权所有,整整又经过十多年的探索,到七十年代才获得成功。
面向对象技术就是为解决重用而提出了“封装性、继承性和多态性”,提出了一批基础理论著作,我用此方法设计了大型操作系统,
但这种方法真正用于实际工程中的开发应用软件却很少见到:另外OO未形成统一的模型和概念,难以形成标准;工程上的实施缺乏开发规范;在技术上要术开发人员的素质较高;最大的问题是被开发出来的软件难以演化,而软件要能适应变化是客观存在的。
为此发展出单纯重用的“构件和架构”思想及其理论体系。在1998年日本京都召开的“基于构件的软件开发(CBSD)”国际专题学术会议上,一致认为构件技术离不开构件和体系结构。轶件体系结构现简称架构。
软件开发技术已发展到基于构件/架构的技术,与此同时出现了建模语言UML。
UML统一建模语言
由于面向对象的不足,三位面向对象的奠基人联合起来,吸收了构件的思想,创建了UML统一建模语言。UML为软件开发和SOA的产生起到奠基和里程碑的作用。
UML主要理论成果是:
①统一面向对象的基本概念,并引用了用例、,实际上己演化到构件和架构概念;
②认为软件开发的过程实质上是从抽象的模型逐步细化,过渡到具体的实现,其中间的每个阶段都是实现了某一抽象模型,UML为此提供了建立模型的工具,用直觉的图形来建立模型,从此软件专家就有了自已的工具,正如音乐家有了五线谱工具那样;
③为适应软件的多变性www.cechina.cn,提供了演化的概念。为此建模语言为构件技术建立了基础理论模型。
SOA发展背景
在此之前的软件架构都采用层次结构的架构,直到分布式系统提出了c/s胖终端模式的架构后,才产生对架构的研究,出现了构件和架构。
卡内基.梅隆大学为软件的架构和框架建立了扎实的基础理论,软件体系结构是软件系统的高级抽象,体现了软件设计思想,反映了系统开发中最早的决策,明确了系统有那几部分组成,它们之间是如何交互的;进一步影响到资源的配置、团队的组织以及产品的质量。系统的成败在于体系结构。
特别是三层体系结构是由胖终端中把应用构件独立出来组成了应用层。分布式系统的复杂性主要来自网络的传输,由此提出了中间件技术及其理论。
面向服务的架构SOA,但未被应用和发展,而二年前IBM公司提出后却很快被广泛接受,其原因可从客观需求上和技术成熟度上二方面来叙述:
⒈客观上需要
随着网络普及化,越来越迫功需要将现有多个应用系统集成,以能实现更强的信息处理功能。如电子商务的供应链、智能交通、电子政务、数字地球等已是本世纪发展的热点。Gartner Group预计,到2008年基于件产品将占领70%的市场份额。IDC预测到 2007年,基于SOA的支撑平台、应用软件等相关市场将达到210亿美元。SOA是当前最理想的解决方案。
⒉面向对象和构件架构的基础理论和技术已趋向成熟,发展到统一建模语言,提供建模工具;中间件集群理论己趋向成熟,并提出了中间件inter bus技术;
⒊浏览器技术普及,己成为行业标准,奠定了SOA的基础理论和技术规范,由此巳是水到渠成,使SOA拙拙成长。
整合创新和随需应变
这二句话是IBM提出的,多应用的整合不但是跨平台的,而且应该是松耦合的,也就是说,被整合的应用自身仍保持其自主,如香港政府已回归中国,但保持一国二制,采用了市场经济体系,我为人人,人人为我,用服务这个简单概念整合在一起。另外,新增设的业务功能,应允许适应变化,即随需应变。
国外发展情况
IBM公开宣布仅三年不到,去年年底,BEA公司、甲骨文公司、惠普等所有名牌公司都在中国开了SOA发布会。
由于标准都一致,都是把本公司的中间件产品向SOA靠,提供开发和运行SOA系统的相应工具和环境控制工程网版权所有,以争取市场效益。