论文部分内容阅读
摘 要:SOA(Service-Oriented Architecture)作为目前炙手可热的系统设计和构建方法,越来越多地被应用到了实际的系统构建和扩展实践中。阐明SOA的基本概念、参考模型、体系结构和基本原则,以及基于Web Servers实现相关的SOA基本协议;探讨SOA技术的适用性,并在该基础上进行实际系统的构建。
关键词:SOA XML SOAP WSDL UDDI
中图分类号:TP311.52 文献标识码:A 文章编号:1007-3973(2013)012-213-02
SOA是软件系统的组织和设计方法,属于软件系统架构范畴,它基于特定标准实现。在传统的业务层和技术层之间,SOA增加了一个服务层,由能完成特定服务的独立的功能实体向外提供服务。由于分离出了服务层,解决了业务层和技术层的有效沟通问题,这样企业应用层就摆脱了技术的束缚。更重要的是,由于将注意力和重心放在服务上,使得企业能够整合不同系统的资源,提供更加灵活,更加完善,更易适应业务变更的商业流程(新增的业务流程或单独的系统)。
1 概述
SOA是面向服务的架构,软件系统按照功能设计成一些服务,服务接口通过标准的方式定义,并通过标准的协议调用。SOA所定义的接口和调用方式是独立于编程语言和运行平台的。
SOA的核心是服务,通过提供基本的服务或组合服务实现既有的业务流程或业务流程再造。服务则以组件的方式向外部系统曝露。这样SOA部署就像是搭积木一样,一个业务流程的实现依赖不同企业或组织提供的SOA服务,就像是通过积木拼成房子一样,由不同形状或构造的模型来完成。
目前有两种遵循SOA标准的技术框架,即CORBA和Web Services。由于过于复杂和臃肿CORBA已很少使用,目前所说的SOA绝大多数是基于Web Services技术实现。下面就Web Service进行详细的介绍。
2 Web Service的基本协议
与SOA相关的Web Service的标准:
XML:一种标记语言,用于以文档格式描述消息中的数据。
HTTP:客户端和服务端之间用于传送信息而发送请求/回复的协议。
SOAP:在计算机网络上交换基于XML的消息协议,通常是用HTTP。
WSDL:基于XML的描述语言,用于描述与服务交互所需的服务的公共接口,协议绑定,消息格式。
UDDI:基于XML的注册协议,用于发布WSDL并允许第三方发现这些服务。
3 SOA体系架构
3.1 SOA的参考架构
在 SOA RA 中定义的层列举如下:
操作系统层(OS):描述现有应用系统的业务职责。
服务组件层(SC):服务组件是可部署的软件单元,它提供业务服务需要的功能。这些组件可以是新开发出来的软件单元,或是使用集成层去访问现有企业资源的组件集合。
服务层(Services):提供整个企业的高级业务功能。这一层有效地整合了企业的软件系统资源-业务组件和应用系统。
业务流程层(BP):允许通过编制业务服务来创建业务解决方案。
消费者层(CI):提供对企业内外部客户的支持,客户可以浏览和控制企业业务流程或服务的执行。
集成层(Integration):使用不同的技术展现现有企业资源和操作系统,以被业务组件使用。
服务质量层(QS):提供确保 SOA 满足以下需求的方法:监测、可靠性、可用性、可管理性、事务性、可维护性、可扩展性、安全性、安全、生命周期等。
信息架构层(Information):负责以统一的表示形式呈现各方面信息,保证业务需求和流程与业务词汇保持一致。这一层也使得SOA能够支持数据一致性和数据质量一致性。
治理层(Governance):确保一个组织中的服务和 SOA 解决方案遵守定义策略、指导方针和标准。治理层将被用来匹配和支持组织的目标 SOA 成熟度等级。
3.2 SOA的体系结构
SOA的体系结构包括三个部分:
(1)服务提供者(SP):是创建服务的实体,可以是一个组件或组件集,它向服务注册中心注册服务并接受来自服务消费者的请求。
(2)服务消费者(SC):从服务注册中心检索服务信息,向服务提供者发起服务请求并执行服务功能。
(3)服务注册中心(SRC):注册已发布的服务,对其进行分类并提供搜索服务。
3.3 SOA的基本原则
(1)松散藕合。
服务消费者到服务提供者的绑定与服务之间是松藕合的,服务接口的定义与实现之间是松耦合的。
(2)粗粒度服务。
通过使用粗粒度接口封装复杂的业务功能,减少服务请求交互的次数。
(3)标准化的接口。
标准化的接口可以避免来自异构系统之间交换信息时数据转化的步骤,增加系统的处理速度和避免出现新的故障点。
(4)无状态服务。
通过服务或服务组合完成一个业务流程,服务调用的生命周期不依赖于其他服务的生命周期状态。
4 SOA的适用性和优势
4.1 SOA的适用性场景
可以采用自顶向下或自底向上的方法实施SOA。服务位于底层,对服务的调用即业务流程则位于顶层。采用自顶向下的方式是将一个业务流程分解为更小的内容,即可以通过技术、标准和规范实现的服务。而采用自底向上的方式则是通过底层的服务或服务组合来建立业务流程。下面描述SOA的试用场景:
(1)内部IT系统的整合。 以往企业内部基于不同应用的IT系统之间共享数据和交换信息非常麻烦,需要在相互关联的不同应用之间进行多次的数据转换和业务重组。采用基于SOA的设计思想,对企业内部大量的异构系统进行整合时,基于“统一数据模型,统一协议标准,统一接口规范”的“三统一”原则,提供“统一的标准服务”。
(2)外部IT资源的共享和协同。
由于企业或组织的IT系统实现可能依赖于其他企业或组织的配合,对企业或组织有重要影响的业务功能须由其核心的业务系统实现,辅助的业务流程可外包给相关的企业或组织来实现。这个时候就需要在企业或组织之间共享数据和服务。
(3)新应用系统开发。
(4)新的应用模式。
Microsoft有不同于IBM和Oracle的SOA路线图,这方面可以专门研究。
4.2 SOA的主要优势
SOA可能带来的主要优势有五点:
(1)SOA可通过互联网服务器发布,从而突破企业内网的限制,实现与供应链上下游伙伴业务的紧密结合。
(2)SOA与平台无关,减少了业务应用实现的限制。
(3)SOA具有低耦合性特点,业务的变化对整个业务系统的影响较低。
(4)SOA具有可按模块分阶段进行实施的优势,可以成功一步再做下一步,将实施对企业的冲击减少到最小。
(5)SOA的实施可能并不具有成本显著性。即采用SOA架构与不采用SOA架构成本是相同的。
5 基于Web Service的SOA实现及应用实例
下面以某地供电公司“电力设备交互式数据采集及监测系统”为例,阐述基于Web Server的SOA实现的应用情况。
系统分为三个部分:后台的EMS系统,负责任务的编制和下发,并负责任务结果数据的存储和共享;交互式系统后台,负责任务信息的转发和任务结果数据的上传,分析及展示;交互式手持终端系统,负责任务执行和任务结果数据的采集,整理和上传。
后台EMS系统作为服务提供者,暴露给交互式系统接口服务;交互式系统后台则兼有服务提供者和服务消费者角色,其向后台EMS系统请求服务,是服务的消费者,同时处理交互式手持终端系统的服务请求,是服务的提供者;交互式手持终端系统则是服务消费者,向交互式系统后台请求服务。
交互式系统作为EMS系统的功能扩展,很好的完成了既定的目标。系统采用SOA方式,避免了直接在EMS系统上进行大的更改,而是在交互式系统上实现业务功能和流程的扩充,保障了EMS原有业务的稳定性,增强了整个系统的灵活性,实现了技术和业务实现的分离。
关键词:SOA XML SOAP WSDL UDDI
中图分类号:TP311.52 文献标识码:A 文章编号:1007-3973(2013)012-213-02
SOA是软件系统的组织和设计方法,属于软件系统架构范畴,它基于特定标准实现。在传统的业务层和技术层之间,SOA增加了一个服务层,由能完成特定服务的独立的功能实体向外提供服务。由于分离出了服务层,解决了业务层和技术层的有效沟通问题,这样企业应用层就摆脱了技术的束缚。更重要的是,由于将注意力和重心放在服务上,使得企业能够整合不同系统的资源,提供更加灵活,更加完善,更易适应业务变更的商业流程(新增的业务流程或单独的系统)。
1 概述
SOA是面向服务的架构,软件系统按照功能设计成一些服务,服务接口通过标准的方式定义,并通过标准的协议调用。SOA所定义的接口和调用方式是独立于编程语言和运行平台的。
SOA的核心是服务,通过提供基本的服务或组合服务实现既有的业务流程或业务流程再造。服务则以组件的方式向外部系统曝露。这样SOA部署就像是搭积木一样,一个业务流程的实现依赖不同企业或组织提供的SOA服务,就像是通过积木拼成房子一样,由不同形状或构造的模型来完成。
目前有两种遵循SOA标准的技术框架,即CORBA和Web Services。由于过于复杂和臃肿CORBA已很少使用,目前所说的SOA绝大多数是基于Web Services技术实现。下面就Web Service进行详细的介绍。
2 Web Service的基本协议
与SOA相关的Web Service的标准:
XML:一种标记语言,用于以文档格式描述消息中的数据。
HTTP:客户端和服务端之间用于传送信息而发送请求/回复的协议。
SOAP:在计算机网络上交换基于XML的消息协议,通常是用HTTP。
WSDL:基于XML的描述语言,用于描述与服务交互所需的服务的公共接口,协议绑定,消息格式。
UDDI:基于XML的注册协议,用于发布WSDL并允许第三方发现这些服务。
3 SOA体系架构
3.1 SOA的参考架构
在 SOA RA 中定义的层列举如下:
操作系统层(OS):描述现有应用系统的业务职责。
服务组件层(SC):服务组件是可部署的软件单元,它提供业务服务需要的功能。这些组件可以是新开发出来的软件单元,或是使用集成层去访问现有企业资源的组件集合。
服务层(Services):提供整个企业的高级业务功能。这一层有效地整合了企业的软件系统资源-业务组件和应用系统。
业务流程层(BP):允许通过编制业务服务来创建业务解决方案。
消费者层(CI):提供对企业内外部客户的支持,客户可以浏览和控制企业业务流程或服务的执行。
集成层(Integration):使用不同的技术展现现有企业资源和操作系统,以被业务组件使用。
服务质量层(QS):提供确保 SOA 满足以下需求的方法:监测、可靠性、可用性、可管理性、事务性、可维护性、可扩展性、安全性、安全、生命周期等。
信息架构层(Information):负责以统一的表示形式呈现各方面信息,保证业务需求和流程与业务词汇保持一致。这一层也使得SOA能够支持数据一致性和数据质量一致性。
治理层(Governance):确保一个组织中的服务和 SOA 解决方案遵守定义策略、指导方针和标准。治理层将被用来匹配和支持组织的目标 SOA 成熟度等级。
3.2 SOA的体系结构
SOA的体系结构包括三个部分:
(1)服务提供者(SP):是创建服务的实体,可以是一个组件或组件集,它向服务注册中心注册服务并接受来自服务消费者的请求。
(2)服务消费者(SC):从服务注册中心检索服务信息,向服务提供者发起服务请求并执行服务功能。
(3)服务注册中心(SRC):注册已发布的服务,对其进行分类并提供搜索服务。
3.3 SOA的基本原则
(1)松散藕合。
服务消费者到服务提供者的绑定与服务之间是松藕合的,服务接口的定义与实现之间是松耦合的。
(2)粗粒度服务。
通过使用粗粒度接口封装复杂的业务功能,减少服务请求交互的次数。
(3)标准化的接口。
标准化的接口可以避免来自异构系统之间交换信息时数据转化的步骤,增加系统的处理速度和避免出现新的故障点。
(4)无状态服务。
通过服务或服务组合完成一个业务流程,服务调用的生命周期不依赖于其他服务的生命周期状态。
4 SOA的适用性和优势
4.1 SOA的适用性场景
可以采用自顶向下或自底向上的方法实施SOA。服务位于底层,对服务的调用即业务流程则位于顶层。采用自顶向下的方式是将一个业务流程分解为更小的内容,即可以通过技术、标准和规范实现的服务。而采用自底向上的方式则是通过底层的服务或服务组合来建立业务流程。下面描述SOA的试用场景:
(1)内部IT系统的整合。 以往企业内部基于不同应用的IT系统之间共享数据和交换信息非常麻烦,需要在相互关联的不同应用之间进行多次的数据转换和业务重组。采用基于SOA的设计思想,对企业内部大量的异构系统进行整合时,基于“统一数据模型,统一协议标准,统一接口规范”的“三统一”原则,提供“统一的标准服务”。
(2)外部IT资源的共享和协同。
由于企业或组织的IT系统实现可能依赖于其他企业或组织的配合,对企业或组织有重要影响的业务功能须由其核心的业务系统实现,辅助的业务流程可外包给相关的企业或组织来实现。这个时候就需要在企业或组织之间共享数据和服务。
(3)新应用系统开发。
(4)新的应用模式。
Microsoft有不同于IBM和Oracle的SOA路线图,这方面可以专门研究。
4.2 SOA的主要优势
SOA可能带来的主要优势有五点:
(1)SOA可通过互联网服务器发布,从而突破企业内网的限制,实现与供应链上下游伙伴业务的紧密结合。
(2)SOA与平台无关,减少了业务应用实现的限制。
(3)SOA具有低耦合性特点,业务的变化对整个业务系统的影响较低。
(4)SOA具有可按模块分阶段进行实施的优势,可以成功一步再做下一步,将实施对企业的冲击减少到最小。
(5)SOA的实施可能并不具有成本显著性。即采用SOA架构与不采用SOA架构成本是相同的。
5 基于Web Service的SOA实现及应用实例
下面以某地供电公司“电力设备交互式数据采集及监测系统”为例,阐述基于Web Server的SOA实现的应用情况。
系统分为三个部分:后台的EMS系统,负责任务的编制和下发,并负责任务结果数据的存储和共享;交互式系统后台,负责任务信息的转发和任务结果数据的上传,分析及展示;交互式手持终端系统,负责任务执行和任务结果数据的采集,整理和上传。
后台EMS系统作为服务提供者,暴露给交互式系统接口服务;交互式系统后台则兼有服务提供者和服务消费者角色,其向后台EMS系统请求服务,是服务的消费者,同时处理交互式手持终端系统的服务请求,是服务的提供者;交互式手持终端系统则是服务消费者,向交互式系统后台请求服务。
交互式系统作为EMS系统的功能扩展,很好的完成了既定的目标。系统采用SOA方式,避免了直接在EMS系统上进行大的更改,而是在交互式系统上实现业务功能和流程的扩充,保障了EMS原有业务的稳定性,增强了整个系统的灵活性,实现了技术和业务实现的分离。