SOA技术研究报告.docx
- 文档编号:6423969
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:45
- 大小:1.30MB
SOA技术研究报告.docx
《SOA技术研究报告.docx》由会员分享,可在线阅读,更多相关《SOA技术研究报告.docx(45页珍藏版)》请在冰豆网上搜索。
SOA技术研究报告
科学技术研究工作报告
基于SOA的数据仓库架构
张芳宁
V1.0
青岛大学邵峰晶教授科研梯队
2010年04月28日
文档修订记录
版本编号或者更改记录编号
*变化
状态
简要说明(变更内容和变更范围)
日期
变更人
批准日期
批准人
*变化状态:
A——增加,M——修改,D——删除,N——正式发布
文档审批信息
序号
审批人
角色
审批日期
签字
备注
前言
随着数据仓库理论与技术的发展,越来越多的大中型企业或组织都构建了数据仓库系统,这些系统整合企业的历史数据,为企业制定决策提供了依据。
但是,随着企业的发展和数据仓库系统的广泛应用,传统数据仓库的缺陷也开始显现,企业信息系统越来越臃肿,信息系统不断的重复建设使得企业的运营成本越来越高,企业的信息化建设渐渐成为企业的噩梦。
面向服务的体系结构(service-orientedarchitecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。
接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。
这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
SOA是一种IT体系结构样式,支持将您的业务作为链接服务或可重复业务任务进行集成,可在需要时通过网络访问这些服务和任务。
这个网络可能完全包含在您的公司总部内,也可能分散于各地且采用不同的技术,通过对来自纽约、伦敦和香港的服务进行组合,可让最终用户感觉似乎这些服务就安装在本地桌面上一样。
需要时,这些服务可以将自己组装为按需应用程序——即相互连接的服务提供者和使用者集合,彼此结合以完成特定业务任务,使您的业务能够适应不断变化的情况和需求,在有些情况下,甚至不需要人工干预。
从技术角度而言,SOA带来了“松散耦合”的应用程序组件,在此类组件中,代码不一定绑定到某个特定的数据库(甚至不一定绑定到特定的基础设施)。
正是得益于这个松散耦合特性,才使得能够将服务组合为各种应用程序。
这样还大幅度提高了代码重用率,可以在增加功能的同时减少工作量。
由于服务和访问服务的客户机并未彼此绑定,因此可以完全替换用于处理订单的服务,下订单的客户机-服务将永远不会知道这个更改。
所有交互都是基于“服务契约”进行的;服务契约用于定义服务提供者和客户机之间的交互。
通常,您将通过创建“基于消息的”系统来实现此目标。
第一章概述
1.1术语
●SOA:
ServiceOrientedArchitecture,面向服务的体系架构
●WSDL:
WebServiceDefinitionLanguage,Web服务描述定义语言
●SOAP:
SimpleObjectAccessProtocol,简单对象访问协议
●UDDI:
UniversalDescriptionDiscoveryandIntegration,统一描述发现和集成
●BPEL:
BusinessProcessExecutionLanguage,业务流程执行语言
●服务
服务是SOA系统的基本元素,以明确且与实现无关的标准化接口完成业务功能定义,服务可在不同业务过程中被重复使用,而且具体的服务实现不依赖特定实现语言与工具。
●资源
这里的资源指业务系统中所涉及到的企业、公众、政府部门和组织间存在的可用于业务处理的数据、信息、知识以及软硬件产品等。
●连通服务
连通又称服务总线,是面向服务架构的骨干,在完成服务的接入,服务间的通信和交互基础上,还提供安全性、可靠性、高性能的服务能力保障。
连通服务的一个典型实现就是企业服务总线(ESB)。
●协作服务
协作服务是连通服务的一个重要补充,主要通过WebServices方式实现服务之间以更松散耦合方式进行通信和交互,可以简单认为其就是整个服务通信和交互环节中的WebServices网关。
协作服务也提供安全性、可靠性、高性能的服务能力。
●流程服务
流程服务支持复杂业务流程的设计,运行和监控管理。
业务流程通过将若干服务按流程方式组织定义来实现,支持短时间运行的自动流程和可能长时间运行的有人工介入的流程。
1.2为什么需要SOA
SOA提供了一种构建IT组织的标准和方法,通过建立可组合、可重用的服务体系来减少IT业务冗余,并加快项目开发的进程。
SOA允许一个企业高效地平衡现有的资源和财产,这种体系能够使得IT部门效率更高、开发周期更短、项目分发更快,在帮助IT技术和业务整合方面有着深远的意义,它可以:
●缩小业务和技术的鸿沟——以业务为中心
SOA改变了以往以技术为中心的信息系统建设模式,使得IT技术重新回到业务支撑的角色。
IT技术的目标是为业务、应用服务,而不是IT技术本身的发展。
业务人员可以像组装硬件一样从业务角度即时构造应用,从而缩小业务和技术的鸿沟。
●软件资源的共享与重用
SOA提供了一种把原有的组件按一定的标准封装为具有文档形式接口描述的服务,从而使服务的使用者和服务之间是一种松耦合关系。
这样,一方面可以把遗留系统封装为服务加以复用,提高了投资回报率;另一方面,可以直接调用外部服务提供商提供的服务从而起到复用的作用。
●应用的随需扩展——灵活性和敏捷性
SOA的松耦合特性给应用带来了极大的灵活性。
服务使用者和服务提供者在保持接口契约一致性的情况下,可以独立演化。
基于SOA的应用可以看成是一组服务以及服务之间松散耦合的集合。
因此,一方面新的服务可以很容易地加入这个松散集合,另一方面也可以根据业务需求重新编排集合内的服务,以生成新的复合服务。
因此基于SOA的应用具有易于改变、易于扩展的特点,从而支持了业务的快速反应和敏捷性。
总之,面向服务架构(SOA)试图将网络上需要共享的各种资源统一以服务的形式进行封装和接入,让它们在物理上保持分布自治的同时实现以“虚拟信息中心”为基础的逻辑上的一体化管理,以透明的方式进行资源的优化选取、按需中介和有效访问,并能够支持用户主动参与应用配置。
SOA主要通过复用性、灵活性和共享性从技术上支持上述目标。
SOA以服务为基本单元,更加贴近于企业的商业活动,业务建模和流程编排的复杂度会有效降低,重用性也会有效提高。
因此,采用SOA,可以让IT更加关注于业务流程而非底层IT基础结构,从而获得竞争优势的更高级别的应用程序开发架构。
1.3SOA的主要应用场景
SOA的主要应用场景有:
●跨部门资产联合使用
●组织内部或组织之间应用整合需要,可以适应未来变化,实现对已有资产的保护,简化开发
●互联网环境下虚拟企业的建立,可以利用互联网上的服务进行组合提供新的业务服务
●为用户提供多渠道支持服务,服务接口的统一,有利于与服务展现方式和服务渠道的多样化
1.4什么是SOA
OASIS标准组织在SOA参考模型(RM)中对SOA的定义为:
SOA(ServiceOrientedArchitecture)是一种软件体系结构范型,可以组织和使用处于不同所有者控制下的分布式功能。
对SOA的理解多种多样,从技术角度看,SOA就是一种体系架构,它描述了一种IT基础设施,使得不同的业务服务可以相互交换数据,参与业务流程,通过灵活的互相协作方式来完成具体的业务操作。
这些业务服务独立于编程语言,独立于实现方法,独立于运行环境。
1.5SOA的特点
1.5.1重点关注服务
SOA支持面向服务的开发方法,是对前续的面向过程、面向消息、面向数据库和面向对象开发方法的补充。
服务从更高抽象层次上定义,直接与业务相对应,且其实现可采用面向过程、面向消息、面向数据库和面向对象等不同开发方法。
与面向对象的调用接口相比,服务一般定义较粗粒度的接口,会接收更多的数据,消耗更多的计算资源。
服务一般是用来解决应用间互操作问题,以及将服务组合成新应用或新的应用系统,而不是为应用创建具体的业务逻辑。
通过SOA,围绕服务构建IT系统,有利于IT系统更靠近实际业务要求,使IT系统更容易适应业务变化的要求,另外,对已有应用系统,通过服务化封装,可以使这些系统得到更好的重用,能有效保护对已有应用系统建设的投资。
1.5.2松耦合
松耦合是软件设计中一个重要概念,SOA强调服务间的松耦合。
在SOA中松耦合包括以下几个方面:
●接口松耦合
接口耦合是指服务请求者与服务提供者之间的耦合。
度量的是请求者与服务提供者的依赖性。
接口松耦合强调服务请求者仅需要根据已发布的服务契约和服务水平协议(或称服务等级协议)就可以请求一个服务,任何时候服务请求者都不需要了解服务提供者对内部实现的信息。
即服务接口封装了所有的实现细节,使服务请求者看不到这些实现细节。
●技术松耦合
技术耦合度量的是服务对特定技术,产品或开发环境的依赖程度。
技术松耦合强调服务请求者和服务提供者的实现和运行不需要依赖与特定的某种技术,或某个厂家的解决方案或产品,从而减少对某个厂商的依赖。
在SOA系统中服务请求者和服务提供者可以使用不同技术实现,可以在不同厂商的环境中运行。
●流程松耦合
流程松耦合度量的是服务与特定业务流程的依赖程度。
强调服务不应与具体的业务流程相关,以便能够被重用于多种不同的业务流程与应用。
这一点强调的是服务的可重用性,在SOA系统中对业务服务的合理规划,使得一个业务服务可以在多个业务流程中得到复用,并且随着业务要求的改变,一个服务可以在变化后的新的业务流程中能够得到继续使用。
1.5.3重构的灵活性
在SOA系统建设中,基本的单位是实现业务功能的服务,而不是实现业务逻辑的对象,过程,函数等较小的技术单位。
服务与实际业务功能相关,具有明确的接口。
这些服务可在不同的业务流程中得到重用,提高了服务的价值;其次在使用中只需按其接口要求进行访问,屏蔽服务实现细节,服务实现的修改不会影响到服务访问方的逻辑,提高了业务流程的适应性;另外,一旦业务流程变更,仅需对服务进行重新编排,并不修改服务本身,提高了业务流程实现的灵活性。
重构的灵活性,不仅可以使业务服务可以有更好的重用性,也使得业务流程更容易重构,使IT系统具有了更好的灵活性,可以快速面对变化的市场需求。
1.5.4对标准的支持
为了强调互操作性,在SOA系统中,服务需要尽量符合开放标准。
与服务相关的技术几乎都存在相应标准,通过对标准的使用可以得到众多好处,包括:
●减少对特定厂商的依赖;
●为服务请求者增加了使用不同服务提供者的机会;
●为服务提供者增加了被更多服务请求者使用的机会;
●增加了使用开放源代码的标准实现,以及参与这些实现的开发机会;
在SOA系统中,除强调需要遵守技术标准(如SOAP,WSDL,UDDI和WS-*)外,服务层的数据模型和流程模型也有需尽可能基于一些成熟的业务领域标准或纵向的行业标准。
1.6SOA带来的好处
按SOA方法构建应用系统,可获得技术、业务层面的不同优势。
在技术层面带来的好处有:
●开发过程更有效,缩短开发周期
●更利于重用
●简化维护
●增量采纳,在统一的规划下,系统可以通过试点后分步骤建立
●流畅的演进,可以逐步改进业务目标
在业务层面带来的好处有:
●增强业务机动性,有更好敏捷性
●更好的配合业务,可以优化业务框架
●改善客户满意度
●提高现有IT资产的投资回报率
●降低集成成本,节省费用
●降低对厂商的依赖和降低转换成本,获得技术的独立性
第二章技术资源
2.1研究机构
正文为宋体小四,段落缩进2字符,1.5倍行距
2.2国内外厂商
正文为宋体小四,段落缩进2字符,1.5倍行距
2.3国内外网站、会议与技术刊物
正文为宋体小四,段落缩进2字符,1.5倍行距
2.4国内外标准
2.4.1标准组织
与SOA技术相关的主要标准化组织有:
●W3C(WorldWideWebConsortium,万维网联盟)
该标注组织主要进行Web标准(HTTP、HTML、XML等)的制定工作。
制定的与SOA有关的技术标准主要有SOAP、WSDL、WS-Choreography、WS-Addressing、WS-Policy、XML-Encryption和XML-Signature。
●OASIS(OrganizationfortheAdvancementofStructuredInformationStandards,结构化信息标准促进组织)
该标准组织成立时主要关注SGML(StructuredGenericMarkupLanguage)间的互操作。
当前SOA相关技术标准的制定和推进工作是该组织的一个主要工作方向,相关技术标准有UDDI、WS-Security、WS-BPEL、WS-CompositeApplicationFramework、WS-Notification、WS-ReliableMessage、WS-Policy、WS-RemotePortlets、WS-DistributedManagement和WS-ResuoreFramework。
●WS-I(WebServicesInteroperability,Web服务互操作组织)
该组织主要工作是确保各种Web服务实现的互操作性,该组织不直接定义标准,主要工作是提出一些标准应用的概要(Profile),以指导Web服务标准的应用。
2.4.2标准分类
随着近几年SOA概念的推广及相关技术标准的发展,SOA逐渐为众多的用户所接受,并在电子政务及企业应用的建设中逐步得到应用。
但是,面对众多纷繁复杂的SOA相关技术标准,IT企业在开发SOA相关软件产品及用户实施SOA进行选择时,往往分不清楚哪些技术标准是他们所需要的,而且相当部分的SOA技术标准的定位,有一定的重合。
因此,选择适合的SOA相关技术标准,成为IT企业和实施SOA用户的面临的难题。
下面,简单介绍一下部分SOA相关技术标准,并作简单分析。
●SOA相关技术标准分类
标准与规范基本相似,但略微不同,规范是标准的建议文档。
标准一般是由业界公认的标准化组织制定和发布,而规范多为厂商或非标准化组织发布。
本文不对它们进行区分,统一称为标准。
SOA相关技术标准有多种分类方式,本文介绍两种。
⏹分类方法一
一种方法是将其分成三类,即XML标准集、Web服务标准集和SOA参考模型:
ØXML标准集
主要包括两类,一是基于纯文本的编码技术,XML信息集、XMLSchema、XMLQuery和XSLT2.0等。
二是允许不透明的二进制数据与传统的基于文本的标记交织在一起的编码技术。
如XML二进制优化封装协议(XML-binaryOptimizedPackaging,XOP)、SOAP消息优化(TransmissionOptimizationMethod,MTOM)等。
XML标准集是促进SOA发展的头等功臣,它们多数是由W3C组织制定,并得到了众多软件厂商及用户的支持和使用,如不管是Java阵营还是.NET阵营,乃至其他软件开发技术,大都提供XML标准集的工具包。
XML标准集不但是用于SOA数据描述和处理的最佳标注,它还是其他SOA相关技术标准的基础,如Web服务标准,都是以XML来进行描述的。
ØWeb服务标准集
Web服务标准集已经初具规模,内容涵盖传输层、消息机制、编程模型、服务发现和描述、可靠性、事务处理、安全和管理等方面。
如WSDL用于Web服务的语义描述,WS-Policy用来描述Web服务的能力和策略等,WS-Security、SAML等用来描述Web服务相关安全性要求,等等。
目前,多数Web服务标准集,由OASIS组织制定,有些Web服务标准尚不完善,正在发展中。
ØSOA参考模型
SOA发展早期,不同厂商宣扬的SOA参考模型不尽相同,随着相关技术标准的发展,各个厂商的认识逐渐统一。
当前,OASIS已经制定了SOA的参考模型SOA-RM1.0规范,它提供了一个整体的抽象框架,它用来理解SOA先进技术理念的抽象框架,是在面向服务环境里的重要衔接方式,是标准逐步统一的重要发展进程,也是服务支持的详尽规范。
SOA参考架构,能够在企业的SOA整体计划中提供一个很具有全局性的整体框架加以指导,但却不能在现实的SOA执行中提供太多具体可行的意见。
虽然已经有了SOA参考模型的推荐性标准,但标准化组织和厂家在SOA的参考架构上还没有统一。
⏹分类方法二
SOA相关技术标准的另一种分类方式,是根据技术标准在SOA中的角色功能,将其分为三大类:
服务层次上的信息交互规范、基础通信标准规范、元数据标准规范。
根据各种标准规范在SOA体系中的角色功能,可以将SOA协议栈分为7层,如图1所示。
从底向上,包括传输层、消息层、描述层、管理层、服务组合层、表示层,其中除了ebXML和电子商务相关的技术标准(如资源注册的ebRS、消息表示ebMS、外部服务资源编排的WS-CDL等)外,大多数在国内已经得到了相当的应用,如东方通科技的应用集成产品TongIntegrator和应用服务器TongWeb,都支持部分Web服务的相关技术标准。
传输层作为传统的传输协议,在SOA技术实现中,依然发挥着重要的作用;消息层SOAP已经是Web服务消费的消息传输载体的首选;Web服务描述标准WSDL,虽然在语义方面的描述还不完善,但它已经被绝大多数厂商和用户接受并使用了;在管理层的相关技术标准,目前还在发展完善,国内实际应用的还不多,但诸如常用的安全要求WS-Security、可靠传输要求WS-Reliability等,已经有用户和厂家开始考虑使用;服务组合层,已经有不少的商业及开源组织,基于BPEL标准来开发业务流程管理软件了;表示层的标准如JSR168和WSRP,主要用于Portal软件的开发。
图2.1.SOA协议栈分层结构
●SOA相关技术标准比较说明
由于SOA相关技术标准太多,图2.1中,并没有完全列举出所有的SOA相关技术标准。
下面,就部分相似的SOA相关标准进行比较说明,以便进行SOA开发时,能够基于了解认识进行选择。
⏹WSDL与OWL-S
W3C组织提出的标准的Web服务描述语言WSDL,它从句法层面对Web服务的功能进行描述,包括4个不同的粒度:
数据类型(Datatype)、消息(Message)、方法(Operation)和访问端口(PortType)。
这只是提供了Web服务的接口描述,对服务的行为约束和属性描述缺乏进一步的支持。
OWL-S是语义Web服务标记语言的标准,它比WSDL更能向用户提供可理解的服务资源的描述形式,提高服务选取与推荐的准确性。
语义Web服务的主要方法是利用Ontology来描述Web服务,然后通过这些带有语义信息的描述实现Web服务来实现服务的自动发现,调用和组合。
语义Web和Web服务是语义Web服务的两大支撑技术。
OWL-S是连接两大技术的桥梁,目前对语义Web服务标记语言研究最重要的组织就是DARPA组织,其研究组OWLServicesCoalition提出了语义Web服务标记语言OWL-S(原DAML-S)。
语义Web服务及相关标准(OWL-S等)对于Web及Web服务应用的深化具有重要意义,同时也具有很好的发展前景。
目前OWL-S等语义Web服务相关标准的应用还主要是研究性、示范性的。
⏹XMLWeb服务与ebXML
SOA中的服务,当前多以Web服务技术实现和解释,传统的Web服务及其相关协议,都是以XML为基础进行扩展的,因此把它称为XMLWeb服务。
其实,在XMLWeb服务之前,ebXML已经出现,鉴于此标准复杂而完善,因此它在传统的电子商务领域,用处较广。
就具体的内容和定位而言,两者有一定的区别。
1)消息传输技术
XMLWeb服务和ebXML都使用SOAP作为消息传输技术,但是XMLWeb服务服务定义了松散耦合的协议堆栈,该堆栈由可靠传输(WS-Reliability)和安全(WS-Security)的各个规范组成,而ebXML将所有这些功能都融入到自己的消息传递标准和ebMS中,从而使用混合技术。
2)服务描述和发现
XMLWeb服务分别使用WSDL和UDDI标准,UDDI注册机制是基于目录的体系结构,其注册内容包括技术模型和业务模型,本身可扩展但目前其注册的内容和描述还不够丰富和完整,图3为UDDI的数据模型及关系图。
而ebXML将服务描述和发现机制对应两个标准,一是注册信息模型ebRIM,二是注册服务规范ebRS。
ebXML注册机制要比UDDI丰富和完善的多,它的注册机制用途广泛,可以表示范围广泛的数据对象,包括xml模式、业务流程描述、ebXMLCoreComponent、UML模型、一般贸易合作伙伴信息及软件组件。
为了支持如此多样的数据,使用一个定义良好的信息模型而不是目录,将ebXML注册设计得更像一个数据库,图2为ebXML的注册信息模型ebRIM的组织结构示意图。
3)业务流程协作
基于Web服务的业务流程协作和服务编排,有WS4BPEL、WS-CDL、基于XML的工作流XPDL等,这些基于XML和Web服务的标准都彼此相对独立,甚至是不同的组织制定。
ebXML标准也包含业务流程协作的标准,如ebCPPA、ebBPPS。
总之,ebXML是一个独立的规范集,具有内部一致性,而且不依赖于新兴标准和规范,它的用途主要定位在有特殊要求的电子商务方面,目前,ebXML已被国家确定为国标推荐,但其应用看起来还要有一段路要走。
而XMLWeb服务由于其内容相对简单,技术实现容易,对应的一系列协议栈相对松耦合,因此其在构建SOA的应用中使用越来越广泛。
图2.2ebXML的注册信息模型(ebRIM)
图2.3UDDI数据模型及其关系图
⏹SCA/SDO与JBI/JDO
SCA(ServiceComponentArchitecture),即服务组件架构,提供了一种编程模型,可以支持基于SOA的应用程序实现。
SCA是一种模型,可以支持实现服务组件的各种技术,连接服务组件的各种存取方法。
对于组件,不仅包括不同的编程语言,也包括这些语言使用的框架和环境。
对于存取方法SCA合成操作支持各种通讯、服务存取技术,如:
WS、MQ、RPC。
SCA规范包括了AssembleModel和ClientModel两部分。
前者约定了如何将异种组件(Java类,BPEL,WebService)组装并发布成SOA服务,是SCA最大的特点和最核心的概念;后者则约定了如何在异种语言环境中调用SOA服务。
通过这两部分的规范,就可以完全解决了服务从服务端到客户端的跨语言、跨环境的问题。
图2.4为SCA的服务组件组装模型。
服务数据对象(SDO)的设计初衷是为了统一和简化应用程序处理数据的方式,使用SDO,应用编程人员可以用一致的方法操作异构数据源,包括关系型数据库,XML数据源,Webservices和企业信息系统。
JBI是Java商业集成(J
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SOA 技术研究 报告