论文部分内容阅读
摘要:企业及政府部门信息系统中由于资源异构及需求快速变化而引起的问题越来越突出,促使企业采用面向服务的IT架构,或称为SOA (Service-Oriented Architecture)。面向服务的体系结构(SOA)已成为信息技术领域的研究热点,该文阐明了面向服务体系结构的概念及其应用。
关键词:SOA;SOAD;企业逻辑;敏捷性;虚拟企业
中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)36-2571-02
Service-Oriented Architecture In Enterprise Information System Applications
LI Ji-feng, LI Hai-jian, HUANG Gao-lei
(School of Electrical Science and Information Technology, Guizhou University, Guiyang 550003, China)
Abstract: In enterprise information systems and e-government systems, the problems caused by the changes of heterogeneous distributed resources and requirements are becoming more and more serious. To make an application accommodate to these changes rapidly,This article presents a service-oriented software architecture, named as SOA.The architecture of SOA –based applications has drawn significant attention recently. This article presents SOA concepts and applications in enterprise.
Key words: SOA; SOAD; enterprise logic; agility; virtual enterprise
1 引言
随着信息技术在各个应用领域的普及和信息化建设的深入,企业及政府部门信息系统中资源异构及需求变化而引起的问题越来越突出。企业存在大量的遗留系统,由于这些系统当时的开发商、建设目标、面向的用户和应用范围都不尽相同,致使系统使用方式各异,所处理的数据、采用的流程及输出结果也都没有统一的标准。随着业务的变化和技术的发展,企业不得不花费大量的资金用于IT架构的更新、升级和维护。同时,企业希望能最大限度地利用原有遗留系统中依然运行良好的模块。目前,激烈的市场竞争迫切需要实现企业内部、外部各种数据、应用资源的协同共享,在IT技术的支持下,在一定的时间内结成动态联盟。如何让应用能够适应这些异构、动态的资源,已经成为企业信息系统中一个亟待解决的问题。用户的业务也在不断发展变化,用户需要一种开发方法,该方法能够支持根据业务需要快速构建应用,实现从业务需求到软件应用的便捷过渡,以适应动态变化的新需求。同时,用户业务的变化也向现有信息系统提出了适应性要求,要求它们能够随需求动态变更,即时演化。
1996年,Gartner Group明确地第一次提出SOA(Service-Oriented Architecture,面向服务架构)的理念。那时SOA只是一个远景目标,当时的技术水平不足以支持SOA思想的具体实现。然而,随着面向对象、XML、Web服务和分布式对象等技术的不断发展,今天,面向服务的体系结构(SOA)已成为信息技术领域的研究热点以及大型软件系统与软件产品线的关键技术。
SOA是以服务为基础的松耦合的分布式应用系统的结构。基于SOA的应用可被视为一组相互交互的服务,这种基于服务的形式功能描述为系统的灵活性、可扩展性和开放性提供了基础,有效地支持了异构资源服务化、动态升级和演化。SOA满足企业下述关键而迫切的需求:
1) 保护企业对信息技术的投资(Protect existing assets);
2) 协同企业内部及外部的资源组成虚拟企业(Virtual Enterprise);
3) 提高企业组织和业务的敏捷性(ImproveAgility)。
2 面向服务体系结构的组成
2.1 SOA实现平台的基本组件
SOA提供了一种构建分布式系统,将应用程序功能作为服务提供给其他终端用户或服务的方法。SOA实现平台的组件一般可分为两类:一类是面向系统功能,另一类是面向系统功能的质量。图1按分类方式给出了SOA实现平台的组件。
2.1.1 SOA的功能性组件
1)传输(Transport):用于将来自服务请求者的服务请求传送给服务提供者,并且将来自服务提供者的响应传送给服务请求者。
图2 面向服务体系结构中的协作
图2展示了面向服务体系结构中的协作。这些协作遵循“查找、绑定和调用”范例。其中,服务请求者查询服务注册中心来查找与其标准匹配的服务,如果服务存在,注册中心就给请求者提供接口契约和服务的端点地址。
2.2.1 面向服务体系结构中的角色包括:
1) 服务请求者(Service Consumer)
服务请求者是一个应用程序、一个软件模块或需要服务的另一个服务。它发起对注册中心的服务查询间接获得服务描述,然后遵从服务描述的接口和地址约定实现和服务提供者所提供服务的交互。
2) 服务提供者(Service Provider)
服务提供者是一个可通过网络寻址的实体,它接受和执行来自请求者的请求。它把包括服务接口、服务访问地址等信息的服务描述以及服务的其它一些相关的信息(如服务提供者信息,服务质量特征)发布到服务注册中心。
3) 服务注册中心(Service Registry)
服务注册中心是服务发现的支持者。它包含一个可用的存储库,并帮助服务请求者发现和定位合适的服务,提供服务间接寻址功能。
面向服务体系结构中的每个实体都扮演着服务提供者、请求者和注册中心这三种角色中的某一种(或多种)。
2.2.2 面向服务体系结构中的操作包括:
1) 发布(Publish):发布服务描述,使服务请求者可以发现和调用它。
2) 发现(Find):服务请求者定位服务,方法是查询服务注册中心,找到满足标准的服务。
3) 绑定和调用(Bind and invoke):在检索完服务描述之后,服务请求者继续根据服务描述的信息来调用服务。
2.2.3 面向服务体系结构中的构件包括:
1) 服务(Service):可以通过已发布接口使用服务,并且允许服务请求者调用服务。
2) 服务描述(Service description):指定服务请求者与服务提供者交互的方式。服务描述可以指定一组前提条件、后置条件和服务质量(QoS)级别。
3 面向服务体系结构的应用及优点
3.1 面向服务应用的分析与设计
面向服务的分析与设计SOAD(service oriented analysis and design)是专为面向服务的体系结构范型设计的软件建模和开发方法。它建立在早期包括面向对象分析与设计以及业务过程管理在内的开发过程基础之上的。在面向服务的分析与设计领域,Zimmermann总结了SOAD的一些通用指导原则,这些原则可以作为SOAD的设计基线;Arsanjani给出了一种面向服务应用的体系参考模型(SOA application model)及相关的系统体系结构文档(system architecture document,SAD)的模板。作为一个新兴领域,对SOAD的认识和研究才刚开始,现在简单介绍SOAD过程架构:
1) 服务识别(identification):服务识别的目的是定义系统功能,并把系统功能合理的组成服务。
2) 服务编目和聚集(service categorization and aggregation):把服务进行分类编目有利于服务的使用,通过服务聚集可以把细粒度的服务组合成更大粒度的服务。
3) 服务和构件规范(specification):包括子系统分析、构件规范和服务规范活动。
4) 服务实现(service realization):包含的主要活动是服务到构件的分配和服务实现决策。
3.2 面向服务体系结构在企业信息系统构建中的应用
从IT的视角来看,企业逻辑(enterprise logic)可分解为两个对等部分:业务逻辑(business logic)和应用逻辑( application logic)。业务逻辑是源自企业业务领域业务需求的文档化实现,一般被构造到表达这些需求的流程中,还包括任何关联的约束、依赖及外部影响。应用逻辑是组织成不同技术方案的业务逻辑自动化实现,根据组织的IT基础实施、安全约束、技术能力及厂商依赖范围购买或定制的系统,表达了系统的业务流程工作流。企业中的内部改组、公司合并、业务增长等业务逻辑的变化会影响其自动化的应用技术,而应用技术基础的变化同样会影响使用其技术实现自动化的业务逻辑。企业的这两部分之间存在的依赖越多,变化导致的破坏和代价就越大,企业组织的适应性、敏捷性越差。(下转第2577页)
(上接第2572页)
SOA通过引进服务,建立了一个夹在传统的业务与应用层之间的高级抽象形态(服务接口层)。服务通过抽象封装物理的应用逻辑和业务流程中的业务逻辑,将企业模块化,形成位于公共连通层内的孤立逻辑单元。通过标准的服务抽象层,获得企业的业务与应用技术领域的松散耦合关系。从而允许每个领域独立地发展,企业组织更能适应业务和技术的变化。SOA服务接口层包含三个抽象层:应用服务层(application service)、业务服务层(business service)、编排服务层(orchestration service)。应用服务层建立了用来表示特定技术功能的底层基础,其目的是要在新的或遗留应用环境之内提供处理数据相关的可复用功能。业务服务层是SOA的灵魂,它通过业务服务模型实现业务逻辑,以便以纯粹的形式表示业务逻辑。编辑服务层包含一个或多个流程服务,依照业务规则和逻辑来组合服务,促进敏捷性和复用性。
3.3 面向服务体系结构应用的优点
从SOA的投资者和使用者——企业的角度考虑,SOA可以为他们带来的实际益处如下:
1) 有效的保护企业投资,提升现有的IT资源的作用,促进IT资源复用
SOA的标准统一的接口、松耦合本质给SOA的应用带来了复用性和灵活性,也使得软件的开发是迭代进行的,不需要彻底重建系统,将开发力量集中利用现有的技术和组件來创建服务上。对企业的已有应用系统来说,无论其支撑平台是J2EE、.NET或者是其他遗留系统,应用系统中的功能都可以被封装为服务并被有效复用。有了这种机制,企业可以持续地把现存的IT资源转化为可复用的服务,然后企业在构造应用时就可以通过服务的组合来实现。
2) 提高企业的敏捷性
敏捷性是现代企业的内在的品质。SOA通过对业务逻辑和应用逻辑的抽象,在松散耦合的、可组合的、可互操作的和可复用的服务的标准环境中,可以建立更具适应力的自动化环境。依据业务规则和逻辑,协调和组织多个服务来快速构造新的业务,适应市场的变化。从而提高企业的应变能力。
3) 支持企业内部及外部的资源协同组成动态虚拟组织
伴随经济的全球化,现代企业需要能够迅速地响应市场需求,在原有实体企业的业务和职能基础上,通过系统间的互操作,支持更广泛范围内的资源共享和协同工作。传统的紧密耦合的企业间合作已经很难满足上述需求,需要新的技术支持。SOA是一种用于构建分布式系统的方法,其组织形式是开放和松散耦合的,它可以整合资源、技术和人力优势,由多家跨地区甚至跨国的企业组成新的企业生产组织形式,通过不同企业之间的协同工作,实现企业的业务目标。
4 总结
面向服务体系结构能够改变企业IT架构的僵化现状并满足现代企业在业务敏捷性、遗留系统复用以及动态虚拟组织等方面的需求。由于其观念、实现的技术和标准等原因,开发出完全的面向服务体系结构的软件要有很长一段路走。但是相信面向服务体系结构最终将对企业和IT的发展起到革命性的作用。
参考文献:
[1] Thomas Erl.Service-Oriented Architecture[M].Pearson Education,2005
[2] Arsanjani A.Service-Oriented modeling and architecture: How to identify, specify, and realize services for your SOA[M].Whitepaper from IBM,2004.
[3] Patterns:Service Oriented Architecture and Web Services[M].ibm.com/redbooks,April 2004.
[4] 喻坚,韩燕波.面向服务的计算:原理和应用[M].北京:清华大学出版社,2006.
关键词:SOA;SOAD;企业逻辑;敏捷性;虚拟企业
中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)36-2571-02
Service-Oriented Architecture In Enterprise Information System Applications
LI Ji-feng, LI Hai-jian, HUANG Gao-lei
(School of Electrical Science and Information Technology, Guizhou University, Guiyang 550003, China)
Abstract: In enterprise information systems and e-government systems, the problems caused by the changes of heterogeneous distributed resources and requirements are becoming more and more serious. To make an application accommodate to these changes rapidly,This article presents a service-oriented software architecture, named as SOA.The architecture of SOA –based applications has drawn significant attention recently. This article presents SOA concepts and applications in enterprise.
Key words: SOA; SOAD; enterprise logic; agility; virtual enterprise
1 引言
随着信息技术在各个应用领域的普及和信息化建设的深入,企业及政府部门信息系统中资源异构及需求变化而引起的问题越来越突出。企业存在大量的遗留系统,由于这些系统当时的开发商、建设目标、面向的用户和应用范围都不尽相同,致使系统使用方式各异,所处理的数据、采用的流程及输出结果也都没有统一的标准。随着业务的变化和技术的发展,企业不得不花费大量的资金用于IT架构的更新、升级和维护。同时,企业希望能最大限度地利用原有遗留系统中依然运行良好的模块。目前,激烈的市场竞争迫切需要实现企业内部、外部各种数据、应用资源的协同共享,在IT技术的支持下,在一定的时间内结成动态联盟。如何让应用能够适应这些异构、动态的资源,已经成为企业信息系统中一个亟待解决的问题。用户的业务也在不断发展变化,用户需要一种开发方法,该方法能够支持根据业务需要快速构建应用,实现从业务需求到软件应用的便捷过渡,以适应动态变化的新需求。同时,用户业务的变化也向现有信息系统提出了适应性要求,要求它们能够随需求动态变更,即时演化。
1996年,Gartner Group明确地第一次提出SOA(Service-Oriented Architecture,面向服务架构)的理念。那时SOA只是一个远景目标,当时的技术水平不足以支持SOA思想的具体实现。然而,随着面向对象、XML、Web服务和分布式对象等技术的不断发展,今天,面向服务的体系结构(SOA)已成为信息技术领域的研究热点以及大型软件系统与软件产品线的关键技术。
SOA是以服务为基础的松耦合的分布式应用系统的结构。基于SOA的应用可被视为一组相互交互的服务,这种基于服务的形式功能描述为系统的灵活性、可扩展性和开放性提供了基础,有效地支持了异构资源服务化、动态升级和演化。SOA满足企业下述关键而迫切的需求:
1) 保护企业对信息技术的投资(Protect existing assets);
2) 协同企业内部及外部的资源组成虚拟企业(Virtual Enterprise);
3) 提高企业组织和业务的敏捷性(ImproveAgility)。
2 面向服务体系结构的组成
2.1 SOA实现平台的基本组件
SOA提供了一种构建分布式系统,将应用程序功能作为服务提供给其他终端用户或服务的方法。SOA实现平台的组件一般可分为两类:一类是面向系统功能,另一类是面向系统功能的质量。图1按分类方式给出了SOA实现平台的组件。
2.1.1 SOA的功能性组件
1)传输(Transport):用于将来自服务请求者的服务请求传送给服务提供者,并且将来自服务提供者的响应传送给服务请求者。
图2 面向服务体系结构中的协作
图2展示了面向服务体系结构中的协作。这些协作遵循“查找、绑定和调用”范例。其中,服务请求者查询服务注册中心来查找与其标准匹配的服务,如果服务存在,注册中心就给请求者提供接口契约和服务的端点地址。
2.2.1 面向服务体系结构中的角色包括:
1) 服务请求者(Service Consumer)
服务请求者是一个应用程序、一个软件模块或需要服务的另一个服务。它发起对注册中心的服务查询间接获得服务描述,然后遵从服务描述的接口和地址约定实现和服务提供者所提供服务的交互。
2) 服务提供者(Service Provider)
服务提供者是一个可通过网络寻址的实体,它接受和执行来自请求者的请求。它把包括服务接口、服务访问地址等信息的服务描述以及服务的其它一些相关的信息(如服务提供者信息,服务质量特征)发布到服务注册中心。
3) 服务注册中心(Service Registry)
服务注册中心是服务发现的支持者。它包含一个可用的存储库,并帮助服务请求者发现和定位合适的服务,提供服务间接寻址功能。
面向服务体系结构中的每个实体都扮演着服务提供者、请求者和注册中心这三种角色中的某一种(或多种)。
2.2.2 面向服务体系结构中的操作包括:
1) 发布(Publish):发布服务描述,使服务请求者可以发现和调用它。
2) 发现(Find):服务请求者定位服务,方法是查询服务注册中心,找到满足标准的服务。
3) 绑定和调用(Bind and invoke):在检索完服务描述之后,服务请求者继续根据服务描述的信息来调用服务。
2.2.3 面向服务体系结构中的构件包括:
1) 服务(Service):可以通过已发布接口使用服务,并且允许服务请求者调用服务。
2) 服务描述(Service description):指定服务请求者与服务提供者交互的方式。服务描述可以指定一组前提条件、后置条件和服务质量(QoS)级别。
3 面向服务体系结构的应用及优点
3.1 面向服务应用的分析与设计
面向服务的分析与设计SOAD(service oriented analysis and design)是专为面向服务的体系结构范型设计的软件建模和开发方法。它建立在早期包括面向对象分析与设计以及业务过程管理在内的开发过程基础之上的。在面向服务的分析与设计领域,Zimmermann总结了SOAD的一些通用指导原则,这些原则可以作为SOAD的设计基线;Arsanjani给出了一种面向服务应用的体系参考模型(SOA application model)及相关的系统体系结构文档(system architecture document,SAD)的模板。作为一个新兴领域,对SOAD的认识和研究才刚开始,现在简单介绍SOAD过程架构:
1) 服务识别(identification):服务识别的目的是定义系统功能,并把系统功能合理的组成服务。
2) 服务编目和聚集(service categorization and aggregation):把服务进行分类编目有利于服务的使用,通过服务聚集可以把细粒度的服务组合成更大粒度的服务。
3) 服务和构件规范(specification):包括子系统分析、构件规范和服务规范活动。
4) 服务实现(service realization):包含的主要活动是服务到构件的分配和服务实现决策。
3.2 面向服务体系结构在企业信息系统构建中的应用
从IT的视角来看,企业逻辑(enterprise logic)可分解为两个对等部分:业务逻辑(business logic)和应用逻辑( application logic)。业务逻辑是源自企业业务领域业务需求的文档化实现,一般被构造到表达这些需求的流程中,还包括任何关联的约束、依赖及外部影响。应用逻辑是组织成不同技术方案的业务逻辑自动化实现,根据组织的IT基础实施、安全约束、技术能力及厂商依赖范围购买或定制的系统,表达了系统的业务流程工作流。企业中的内部改组、公司合并、业务增长等业务逻辑的变化会影响其自动化的应用技术,而应用技术基础的变化同样会影响使用其技术实现自动化的业务逻辑。企业的这两部分之间存在的依赖越多,变化导致的破坏和代价就越大,企业组织的适应性、敏捷性越差。(下转第2577页)
(上接第2572页)
SOA通过引进服务,建立了一个夹在传统的业务与应用层之间的高级抽象形态(服务接口层)。服务通过抽象封装物理的应用逻辑和业务流程中的业务逻辑,将企业模块化,形成位于公共连通层内的孤立逻辑单元。通过标准的服务抽象层,获得企业的业务与应用技术领域的松散耦合关系。从而允许每个领域独立地发展,企业组织更能适应业务和技术的变化。SOA服务接口层包含三个抽象层:应用服务层(application service)、业务服务层(business service)、编排服务层(orchestration service)。应用服务层建立了用来表示特定技术功能的底层基础,其目的是要在新的或遗留应用环境之内提供处理数据相关的可复用功能。业务服务层是SOA的灵魂,它通过业务服务模型实现业务逻辑,以便以纯粹的形式表示业务逻辑。编辑服务层包含一个或多个流程服务,依照业务规则和逻辑来组合服务,促进敏捷性和复用性。
3.3 面向服务体系结构应用的优点
从SOA的投资者和使用者——企业的角度考虑,SOA可以为他们带来的实际益处如下:
1) 有效的保护企业投资,提升现有的IT资源的作用,促进IT资源复用
SOA的标准统一的接口、松耦合本质给SOA的应用带来了复用性和灵活性,也使得软件的开发是迭代进行的,不需要彻底重建系统,将开发力量集中利用现有的技术和组件來创建服务上。对企业的已有应用系统来说,无论其支撑平台是J2EE、.NET或者是其他遗留系统,应用系统中的功能都可以被封装为服务并被有效复用。有了这种机制,企业可以持续地把现存的IT资源转化为可复用的服务,然后企业在构造应用时就可以通过服务的组合来实现。
2) 提高企业的敏捷性
敏捷性是现代企业的内在的品质。SOA通过对业务逻辑和应用逻辑的抽象,在松散耦合的、可组合的、可互操作的和可复用的服务的标准环境中,可以建立更具适应力的自动化环境。依据业务规则和逻辑,协调和组织多个服务来快速构造新的业务,适应市场的变化。从而提高企业的应变能力。
3) 支持企业内部及外部的资源协同组成动态虚拟组织
伴随经济的全球化,现代企业需要能够迅速地响应市场需求,在原有实体企业的业务和职能基础上,通过系统间的互操作,支持更广泛范围内的资源共享和协同工作。传统的紧密耦合的企业间合作已经很难满足上述需求,需要新的技术支持。SOA是一种用于构建分布式系统的方法,其组织形式是开放和松散耦合的,它可以整合资源、技术和人力优势,由多家跨地区甚至跨国的企业组成新的企业生产组织形式,通过不同企业之间的协同工作,实现企业的业务目标。
4 总结
面向服务体系结构能够改变企业IT架构的僵化现状并满足现代企业在业务敏捷性、遗留系统复用以及动态虚拟组织等方面的需求。由于其观念、实现的技术和标准等原因,开发出完全的面向服务体系结构的软件要有很长一段路走。但是相信面向服务体系结构最终将对企业和IT的发展起到革命性的作用。
参考文献:
[1] Thomas Erl.Service-Oriented Architecture[M].Pearson Education,2005
[2] Arsanjani A.Service-Oriented modeling and architecture: How to identify, specify, and realize services for your SOA[M].Whitepaper from IBM,2004.
[3] Patterns:Service Oriented Architecture and Web Services[M].ibm.com/redbooks,April 2004.
[4] 喻坚,韩燕波.面向服务的计算:原理和应用[M].北京:清华大学出版社,2006.