面向服务的体系结构专题报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向服务架构的理解与分析
廖志钢
摘要
面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。
SOA是一种以服务为中心,松散耦合、可动态优化和重用扩展的分布式应用构造方法。经过十多年的历练与发展,已成为在开放、异构的网络环境下构造集成化分布式信息系统的潮流。SOA所带来的IT系统松耦合、互操作的特性,以及由此带来的大粒度重用、大规模集成、灵活性提升等诸多优点,为软件系统的建立、整合与运维,尤其是基于互联网的软件产业的创新与发展,带来了新的动力和机遇。
关键词:SOA 面向服务体系架构分析
1 SOA的发展历程
SOA的概念最初由Gartner公司于1996提出,由于当时的技术水平和市场环境尚不具备真正实施SOA的条件,因此当时SOA并未引起人们的广泛关注。伴随着互联网的浪潮,越来越多的企业将业务转移到互联网领域,带动了电子商务的蓬勃发展。为了能够将公司的业务打包成独立的、具有很强伸缩性的基于互联网的服务,出现了Web服务的概念,这可以说是SOA的开端。
新技术的兴起必然伴随着一系列技术标准和规范的诞生,SOA也是如此。短短几年之内,在厂商、研究人员和标准化组织的共同努力下,已经制定出一大批SOA 标准和规范,有力地推动了SOA的发展。据统计,目前有超过56个涉及SOA的各个方面的标准机构,但他们之间工作的不协调,也给SOA的发展带来的负面影响。
根据Gartner的跟踪分析,2007年SOA开始走出谷底,2008则还在复苏期缓慢地艰难爬升。整体上看,SOA仍然处于成长上升阶段,还未真正广泛普及,还未形成稳定的价值。未来几年SOA将进入到应用市场主导的理性发展阶段,人们将把更多的关注点放在SOA如何“落地”,即用户如何成功实施SOA、并创造实际价
值等方面。
2 国内对于SOA推广应用认识现状分析
尽管SOA的概念进入中国已有一段时间,但国内用户至今对SOA的认识仍不够清晰,导致SOA的市场需求并不明朗。就目前国内的现状来看,对于SOA,更多的企业仍处于观望的态度,有很多的疑虑。据调查,表示对SOA关注的企业用户为数不多,其中有15.9%的流通行业,而在制造行业仅有8.6%。
国内SOA应用的这一尴尬局面,很大程度上是由于认识上的误区影响了SOA 推广应用。认识的误区主要表现在三方面:
首先,认为SOA是万能的,可以应用于所有的场合。其实情况并非如此。SOA 并不能代替已经在公司内部存在的那些被良好集成的应用系统。通过合理的部署,SOA系统可以改善原有的IT系统,使得原有的那些应用系统更具有柔性。通常情况下,复杂的IT构架对SOA的需求更加迫切,并且SOA需要与外部复杂的IT环境交互,并快速地应对频繁发生的业务变化。
其次,认为构建了SOA架构,就不再需要应用整合技术。其实,SOA并非一蹴而就。虽然SOA使系统整合更容易,但是企业仍然需要核心的整合技术,例如转换、挖掘、流程整合、适配器等等,使它们成为架构和规划中的组成部分。企业先要对需求进行一次全面的评估,不仅仅局限于IT,而是面向整个企业。实现SOA 可能需要耗费几年的时间。
第三,认为构建了SOA,就不需要IT人员的参与,业务人员照样可以把服务连接成新的业务流程。这种想法没有考虑服务的实现仍得有人编写实施服务的软件,系统也仍需要有经验的IT专业人员把业务工作流转换成顾及企业级性能、安全、资源使用和可靠性的具体实施方案。
其实这些误区的产生是由于对SOA的理解偏差所致。对于国内的用户来讲,接受SOA难的并不是技术,而是SOA理念的灌输,以及对企业文化的重新改造。SOA 与传统的应用体系结构不同,SOA更多地是针对变化而设计,基于SOA的系统能具备更大的弹性,而且能够实时地根据企业的变化,调整自己的结构,以满足企业变化的需求。
3 SOA的理解
3.1 松耦合的系统
这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。而另一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。
对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变化的业务为按需(On demand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。
虽然面向服务的体系结构不是一个新鲜事物,但它却是更传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在二十多年了。虽然基于 SOA 的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。由于它考虑到了系统内的对象,所以虽然 SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。不同之处在于接口本身。SOA 系统原型的一个典型例子是通用对象请求代理体系结构(Common Object Request Broker Architecture,CORBA),它已经出现很长时间了,其定义的概念与 SOA 相似。
然而,现在的 SOA 已经有所不同了,因为它依赖于一些更新的进展,这些进展是以可扩展标记语言(eXtensible Markup Language,XML)为基础的。通过使用基于 XML 的语言(称为 Web 服务描述语言(Web Services Definition Language,WSDL))来描述接口,服务已经转到更动态且更灵活的接口系统中,非以前 CORBA 中的接口描述语言(Interface Definition Language,IDL)可比了。
Web 服务并不是实现 SOA 的惟一方式。前面刚讲的 CORBA 是另一种方式,这样就有了面向消息的中间件(Message-Oriented Middleware)系统,比如 IBM 的 MQseries。但是为了建立体系结构模型,您所需要的并