Oracle Service Bus技术白皮书.docx

上传人:b****2 文档编号:3275361 上传时间:2023-05-05 格式:DOCX 页数:35 大小:482.30KB
下载 相关 举报
Oracle Service Bus技术白皮书.docx_第1页
第1页 / 共35页
Oracle Service Bus技术白皮书.docx_第2页
第2页 / 共35页
Oracle Service Bus技术白皮书.docx_第3页
第3页 / 共35页
Oracle Service Bus技术白皮书.docx_第4页
第4页 / 共35页
Oracle Service Bus技术白皮书.docx_第5页
第5页 / 共35页
Oracle Service Bus技术白皮书.docx_第6页
第6页 / 共35页
Oracle Service Bus技术白皮书.docx_第7页
第7页 / 共35页
Oracle Service Bus技术白皮书.docx_第8页
第8页 / 共35页
Oracle Service Bus技术白皮书.docx_第9页
第9页 / 共35页
Oracle Service Bus技术白皮书.docx_第10页
第10页 / 共35页
Oracle Service Bus技术白皮书.docx_第11页
第11页 / 共35页
Oracle Service Bus技术白皮书.docx_第12页
第12页 / 共35页
Oracle Service Bus技术白皮书.docx_第13页
第13页 / 共35页
Oracle Service Bus技术白皮书.docx_第14页
第14页 / 共35页
Oracle Service Bus技术白皮书.docx_第15页
第15页 / 共35页
Oracle Service Bus技术白皮书.docx_第16页
第16页 / 共35页
Oracle Service Bus技术白皮书.docx_第17页
第17页 / 共35页
Oracle Service Bus技术白皮书.docx_第18页
第18页 / 共35页
Oracle Service Bus技术白皮书.docx_第19页
第19页 / 共35页
Oracle Service Bus技术白皮书.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Oracle Service Bus技术白皮书.docx

《Oracle Service Bus技术白皮书.docx》由会员分享,可在线阅读,更多相关《Oracle Service Bus技术白皮书.docx(35页珍藏版)》请在冰点文库上搜索。

Oracle Service Bus技术白皮书.docx

OracleServiceBus技术白皮书

 

产品白皮书

 

OracleServiceBus™

从技术角度论述OracleServiceBus及其服务集成和管理功能

 

目录

关于本白皮书4

读者对象4

OracleServiceBus简介4

SOA服务总线组件5

服务总线的重要作用6

服务总线和服务生命期8

主要架构概念9

代理服务和基于代理的路由10

服务总线的消息流定义11

服务总线的部署方式12

OracleServiceBus的特性12

服务供应12

服务类型13

内容类型14

通信类型14

更改中心15

项目管理器16

开发、测试和生产环境的迁移17

服务集成和路由17

管道18

管道阶段和活动19

运行分支20

转换20

消息操纵21

消息验证22

动态路由23

服务调用23

错误处理24

安全性24

服务管理25

监视25

利用提示实施SLA26

报告27

小结28

关于BEA29

 

关于本白皮书

本白皮书从技术角度描述OracleServiceBus™。

分析OracleServiceBus(Oracle服务总线)提供的ESB(EnterpriseServiceBus,企业服务总线)和运行服务管理功能,这些功能拥有企业级的可靠性和扩展性,可用来集成和管理企业内部和企业之间的服务交互。

读者对象

本白皮书面向IT组织的集成团队。

如果你的角色或职位与以下描述的相同或相似,本文将尤其值得一读:

●服务设计人员或业务分析师。

讲述关于组织业务流程、过程、策略、业务规则和资源的知识,讨论如何将这些过程表示为服务。

业务分析师的相关技能包括:

业务分析、流程设计、建模和运营知识。

服务设计人员可与开发团队共同工作,了解如何将流程和应用表示为可供重用和使用的服务。

●集成专家或集成架构师。

定义集成项目的业务和技术要求,并设计相应的集成解决方案。

这些技能包括业务和技术分析、架构设计和项目管理。

●系统、服务或集成管理员。

深入讨论组织基础架构、服务和应用的相关技术及运行知识。

系统管理员的技能包括:

加载和能力分析、性能分析、优化、部署拓扑和支持规划。

OracleServiceBus简介

面对变幻莫测的市场需求的变化,企业希望通过推进“服务化”提高敏捷性和响应能力:

更方便地与客户和合作伙伴交互,更灵活地设计和构建IT基础架构。

为此,SOA(Serice-OrientedArchitecture,面向服务的架构)日益引起企业高层的重视。

SOA将分散在企业应用中的功能组合为基于标准的互操作“服务”,与使用传统应用相比,企业可利用SOA,更快地组合和重用“服务”,以满足业务需求。

SOA围绕“服务”,而不是“应用”组织企业IT,能帮助企业更快地推出新服务,并灵活响应业务环境的变化。

为了优化IT基础结构,以便交付服务,将SOA变成现实,IT组织需要一个智能化的基础架构,以降低服务重用的复杂性,并可靠地集成IT环境的各种技术、协议和应用。

为此,IT组织创建了一个以“服务”为中心的抽象层,以隐藏各种应用和技术带来的底层复杂性,并提供一个定制企业应用的平台。

今天,我们将上述服务或集成层称为ESB(EnterpriseServiceBus,企业服务总线)。

ESB使“服务端点”本身不必再管理服务之间的交互。

ESB允许方便地扩展服务,消除了专门编写的点对点、硬编码实现的脆弱性,以及带来的昂贵代价。

有了ESB,开发人员不必再在各个服务端点构建集成和中介服务,如路由、协议代理、转化、安全策略和SLA(ServiceLevelAgreement,服务级别协议)质量策略,只需在“ESB”中配置这些策略即可。

也就是说,开发人员不必重编服务端点的集成和管理策略,通过“ESB配置步骤”就能创建动态服务端点,适应动态变化。

OracleServiceBus是一个ESB,用于集成服务,管理服务交互,并在不同IT环境之间执行消息代理。

它的轻量级、无状态、高性能架构扮演“中间人”角色。

OracleServiceBus是部署和实现SOA的理想工具,支持智能消息代理,监控和管理服务;它在企业基础架构中添加一个可扩展的动态路由和转换层,并管理服务生命期:

配置和供应服务、监控服务的运行和履行SLA。

OracleServiceBus以“配置”为中心,由策略驱动,实现了“服务使用者”和“服务提供者”之间的松耦合配合。

OracleServiceBus提供动态配置服务和策略的多功能控制台和环境,能支持多个服务集成项目,能确保所有配置元素的引用完整性,并能在测试或生产期间监控和运行系统。

开发人员通过“配置”,而不是“编码”动态更改服务集成关系,以便从几个方面扩展服务架构:

安全类型、服务位置、服务可用性、服务响应性、数据格式、监控、传输和通信;与传统的EAI方法相比,ESB需要的时间少得多。

图1OracleServiceBus可防止服务蔓延

●“一次性连接”

●松耦合架构

●促进企业范围的重用

●集中管理

●减少总拥有成本

SOA服务总线组件

服务总线软件的中心是“共享服务”,而不是“应用程序孤岛”。

利用简捷高效的SOA基础结构,IT组织可以在几乎不影响IT基础架构的前提下,快速提供新服务功能,重用极具价值的业务功能,从而实现服务化,实现与业务需求的同步,响应业务流程的更改,并满足客户提出的新需要。

下面将详细分析服务总线的必要性,讨论它如何管理组织的整个服务生命期。

服务总线的重要作用

SOA之所以变得经济可行,是因为受到了两种现状的推动:

行业利用Web服务“公开”和“使用”新服务及遗留服务,构建了支持“松耦合服务交互”的工具包和基础架构。

在采用SOA策略时,由于成本和复杂性等因素,IT专业人员并不愿意完全淘汰现有的基础架构,而是希望将现有应用业务表示为服务,以供其他业务流程和应用重用。

这就是说,SOA的成功离不开“集成层”,集成层支持异构环境下的动态服务交互。

集成层必须对服务使用者隐藏服务端点的更改,同时支持现有服务的发展,并能够业务的发展,快速添加新服务以满足客户和合作伙伴的要求。

在构建和维护SOA时,企业架构师面临挑战:

如何使架构适应业务需求的增长,并满足新客户的需要?

●在系统中引入动态行为和运行时配置能力

●在企业范围内重用服务,管理服务的生命期

●适应服务使用者和服务提供者间的变化

●确保企业服务的统一使用

●确保服务的安全性

●确保企业服务符合IT策略

●监控和审计服务使用,并管理系统停运

图2演示很多组织的典型架构和SOA挑战。

此时,必须维护服务使用者和服务提供者间的点对点连接,也就是说,使用者启用一个服务端点时,必须复制传输、转换、安全和路由机制。

如果服务端点接口发生变化,使用各个服务使用者将与该服务断开,并重新开发和重新部署,最终造成了服务中断。

企业架构师和其他专家想要简化和控制IT基础架构,并促进重用。

OracleServiceBus是他们的理想工具。

OracleServiceBus支持不同服务的动态交互,具有以下特点:

“本地服务资源缓存”注册在总线集成的服务,通过UDDI(UniversalDescriptionDiscoveryandIntegration,统一描述、发现和集成)集成到企业服务注册表,“服务配置环境”支持验证和版本控制;异构服务端点间的协议和消息代理;服务间的动态路由和转换;消息和传输安全。

将OracleServiceBus添加到图2的架构,OracleServiceBus成为一个分布的服务中间层。

它提供上述功能,运用路由规则、转换、安全和访问策略,将这些从服务端点分离出来,并予以维护,如图3所示。

图2SOA面临的挑战

将OracleServiceBus作为服务使用者和服务提供者间的中间层,可消除脆弱的点对点连接,并消除这些连接的专门维护。

使用者不必详细了解服务端点的接口和实现,企业可以更灵活地连接不同资源。

不同客户端可与各种资源通信,例如,.NET客户端不必了解底层服务端点的实现细节就能使用Java业务服务。

消除点对点连接还意味着,更改服务端点不再影响服务使用者,在服务总线中更改策略配置即可。

这将在服务使用者级别减轻或消除重新开发和重新部署产生的影响。

图3SOA与OracleServiceBus

服务总线和服务生命期

OracleServiceBus是一个服务中介,在整个服务生命期都扮演着重要的角色:

公开服务,并配置、管理和监控服务使用者和服务提供者之间的“请求-响应”消息流。

图4演示服务生命期。

在开始阶段,架构师建立服务模型,构建服务;在开发阶段,开发人员创建和公开应用及服务接口。

在创建这些服务接口后,OracleServiceBus随着服务的创建注册这些服务,并公开它们,以供其他服务或流程在后期使用。

OracleServiceBus可能在本地注册表中直接注册服务,也可能从诸如Oracle™ServiceRegistry的企业服务注册表导入服务。

注册后,OracleServiceBus配置代理接口,以定义服务通信的消息流。

消息流包含传输和安全要求,并说明如何将消息路由给服务自身。

在用OracleServiceBus注册服务后,由BEAWebLogicIntegration™等工具创建的业务流程就可以使用和编排这些服务,以满足各种业务要求。

编排过程包括利用服务满足业务要求,将服务运用于细粒度业务流程。

最终用户可通过UI(用户界面),如BEAWebLogicPortalTM交易门户,或Oracle™UserInteraction协作门户,使用这些业务流程。

图4服务生命期

 

OracleServiceBus还监控和管理服务端点之间的消息流、系统健康状况以及可用性。

业务和运营分析师可能获取这些信息,以分析行为模式,寻找有待改进之处。

随着服务的改进和新服务版本的推出,新一轮的生命期重新开始。

主要架构概念

OracleServiceBus是策略驱动的中介层,它处理消息,确定如何根据要求路由和转换消息。

它通过诸如JMS或HTTP的传输协议接收消息,并用相同协议或另一指定的传输协议发送消息。

消息响应按相反的方向进行。

消息处理由元数据驱动,元数据由OracleServiceBus控制台配置的代理服务的消息流定义指定。

使用代理方法,企业可实现服务客户端和业务服务之间的松耦合,并维护一个集中的安全控制和监控点,如下图所示。

图5OracleServiceBus

使用OracleServiceBus,服务集成关系通过配置策略和代理服务动态实现。

在使用这种方法时,可以快速扩展服务架构的某些系统特性:

●传输协议和通信范例

●服务安全性

●服务位置

●服务可用性和响应性

●数据格式

●日志记录和监控

由于代理服务扮演中间人角色,故OracleServiceBus能消除以下领域的服务客户端和业务服务需求之间的差别:

•加载内容和模式

•封送协议

•传输协议

•“点对点”和“发布-订阅”协议

•单向和请求/响应范例

•同步和异步通信

•安全性

OracleServiceBus在元数据中存储永久策略、代理服务和相关的资源配置;元数据可从开发环境传给部署环境,再传给生产环境,还能根据需要修改。

消息代理引擎从元数据缓存访问配置信息。

代理服务和基于代理的路由

代理服务是OracleServiceBus架构的一个核心概念。

服务使用者经由这个接口与托管的后端服务连接。

代理服务是“服务总线”在本地实现的中介Web服务的定义。

使用OracleServiceBus控制台,可按照WSDL和使用的传输类型定义接口,配置代理服务;并在消息流定义和配置策略中指定消息处理逻辑。

由于代理服务可将消息路由给多个业务服务,故可以独立于与代理通信的业务服务,配置代理服务的接口。

在这种情况下,代理将被配置为消息流定义,它根据路由逻辑,将消息路由给相应的业务服务,然后将消息数据映射为业务服务接口需要的格式。

代理服务的核心是“上下文”,上下文是一组XML变量,由请求流和响应流共享。

可将新变量动态地添加到上下文,也可从上下文删除变量。

预定义上下文变量包含有关消息、传输头、安全原理的信息,当前代理服务的元数据,以及代理服务调用的主要路由服务和发布服务的元数据。

上下文可由Xquery表达式读取和更改,并通过转换和适当更新操作进行更新。

上下文核心包括$header、$body和$attachment变量。

这些变量各自包装SOAP(SimpleObjectAccessProtocol,简单对象访问)头元素、SOAP正文元素和MIME(MultipurposeInternetMailExtensions,通用Internet邮件扩展)附件。

消息均采用SOAP格式,如果不是SOAP格式,就映射为SOAP格式。

请浏览BEA文档帮助站点http:

//e-ServiceBus资源配置和概念指南,通过表格详细了解指定消息类型的上下文变量。

服务总线的消息流定义

代理服务的实现由“消息流”的定义指定,消息流确定经由代理服务的消息流动。

在构建消息流时,将用到以下四个元素:

一对管道:

一个用于请求,一个用于响应。

管道由多个连续阶段组成,“阶段”指定处理请求或响应时执行的操作。

分支节点:

根据消息、消息上下文指定的值分岔,或根据调用的操作分岔。

路由节点:

用来定义消息目的地。

默认的路由节点是一个回显节点,可根据请求返回响应。

启动节点。

可通过多种方法,将以上元素结合成一颗“树”,“启动节点”一定是“根”,而且是惟一的根。

路由节点只作为“叶子”。

请求消息从启动节点开始,沿路径到达叶子,在请求管道执行操作。

如果叶子是路由节点,就生成响应,对于单向服务而言,响应将为空。

如果叶子是一个回显节点,则根据请求返回响应。

响应沿相反路径,忽略分支节点的操作,但在响应管理执行操作。

图6演示一个典型的消息流例子。

图6一个消息示例

可以灵活使用路由节点:

●可组合和嵌套if结构、for-each结构和case结构,以定义单个端点和路由消息的操作。

●在将消息发送给所选端点前,或接收到响应后,可进行一系列影响上下文变量的转换。

●在调用消息流之前,可透明地执行WS安全策略和授权。

服务总线的部署方式

OracleServiceBus在BEAWebLogicServerTM9.0上运行,并使用BEAWebLogicServerTM9.0的运行时工具。

BEAWebLogicServerTM提供企业级可用性、扩展性和可靠性。

可通过两类企业级配置部署OracleServiceBus:

●单个服务器,该服务器也用作管理服务器

●执行消息处理的托管服务器集群。

“域”包含部署OracleServiceBus的集群及管理服务器。

集群还能运行其他应用。

OracleServiceBus允许集中管理和控制多个分布服务端点,可部署为一个管理部门或企业所有Web服务通信的“集线器”。

还可以对底层BEAWebLogicServer实施集群化,以便水平扩展单个OracleServiceBus,将消息负载均匀分布在集群服务器上,防止出现系统瓶颈。

OracleServiceBus将元数据和配置自动传给托管服务器,加快了本地检索速度;并自动从这些服务器收集监控信息,将它们集成和显示在“管理控制台”上。

对于分布式部署用例而言,可将多个OracleServiceBus迭代连接起来,为分布企业相应创建一个分布网络。

OracleServiceBus的特性

OracleServiceBus将ESB的概念、消息代理和运行服务管理融合一个产品中,在服务网络上管理、集成消息及服务。

其核心特性分为三类:

.服务供应:

注册和公开服务,以便重用

.服务集成和路由:

与服务间通信有关的路由逻辑

.服务管理:

监视和管理服务的活动性和可用性

服务供应

“服务供应”在机构、系统和部门内部和之间公开和分配服务。

与服务供应相关的特性如下:

.服务类型

.内容类型

.通信类型

.更改中心

.开发、测试和生产环境的迁移

.服务版本控制

服务类型

OracleServiceBus支持各种服务类型,如常见的Web服务(使用WSDL中的XML或SOAP绑定)和非XML(通用)服务。

创建业务和代理服务时,服务类型在注册服务时选择。

它还定义服务端点通信使用的协议。

OracleServiceBus的服务类型包括:

✓SOAP服务:

在创建SOAP消息时,将标题和正文变量的内容打包到

Envelope>元素。

如果正文变量包含一个引用XML,就原封不动地发送它,即不将引用内容替换为消息。

如果用附件变量定义附件,则从主消息和附件数据创建MIME包。

每个附件部分的内容处理类似于消息传输服务的处理方式。

✓XML服务(非SOAP):

发送给基于XML服务的消息是XML,也可以是代理服务配置允许的任何类型。

在包含附件的消息中,它们的内容是MIME包,其中包含主XML载荷—通常是第一部分或由顶级内容类标题标识。

✓消息传输服务:

消息传输服务指可以接收一类数据并响应不同数据类型的消息。

支持的数据类型包括XML、MFL、文本和非强型二进制数据。

上面已经提到,选择的服务类型定义了可用于与服务端点通信的协议。

表1显示了服务类型和支持的传输协议,以及未来版本将支持的其他传输协议。

表1支持的服务类型和传输协议

服务类型

传输协议

SOAPWSDL或XMLnic

JMS1

HTTP(S)

SOAP(非WSDL)

JMS1

HTTP(S)

XML(非WSDL)2

JMS

HTTP(S)

电子邮件

文件

FTP

消息传输类型(二进制、文本、MFL、XML)

JMS

HTTP(S)

电子邮件

文件

FTP

1.如果启用了WS-Security,就不支持JMS请求和JMS响应。

2.HTTPGET仅用于非WSD的XML。

图7是一幅屏幕快照,它显示了如何在OracleServiceBus中选择服务类型。

图7服务类型

 

内容类型

为支持与异构端点的互操作性,OracleServiceBus允许利用“服务配置”,控制使用的内容类型、JMS类型和编码。

它不对外部客户或服务的需要进行假设,而是使用为此目的配置的服务定义信息。

OracleServiceBus从服务类型和接口推导出站消息的内容类型。

如果服务类型是:

✓XML或SOAP(有或没有WSDL),内容类型就是文本或XML

✓MFL或二进制消息传输和接口,内容类型就是二进制或八位字节流

✓文本消息传输和接口,内容类型就是文本或纯文本

✓XML消息传输和接口,内容类型就是文本或XML。

如果代理服务调用服务,出站上下文变量($outbound)中就可以覆盖内容类型。

代理服务响应时,入站上下文变量($inbound)也可以覆盖内容类型。

还有JMS类型(字节或文本),在“AdministrationConsol”(管理控制台)定义服务时,可配置此类型。

在服务定义中还可以为所有出站消息明确配置编码。

通信类型

为了支持异构环境,OracleServiceBus提供了多个消息传输方式。

它支持以下几种通信类型:

✓同步请求和响应

✓异步一对一发布

✓异步一对多发布

✓异步请求和响应(同步与异步桥接)

同步和异步通信是标准传输方式,这里需要对“异步请求/响应”或“同步-异步桥”接作进一步解释。

在“同步异步桥接”中,同步客户程序向异步提供者发出请求。

为此,OracleServiceBus在一个JMS队列上发布消息,配置第二个JMS队列以便响应,并设置一个超时值监听响应。

在收到请求后,服务总线在请求队列发布消息,并监听响应队列中的响应。

对于服务使用者,这类服务就像同步服务。

使用“异步请求和响应”消息具有以下优势:

✓请求线程不会阻塞等待响应,消除了执行大量阻塞请求/响应调用时潜在的线程管理问题。

✓消息传输更可靠。

异步请求和响应的一个用例是:

客户端通过HTTP调用代理Web服务,而代理服务调用的后端系统使用JMS请求和响应。

更改中心

OracleServiceBus最重要的一个功能是“ChangeCenter”(更改中心),更改中心是在服务总线进行配置更改的关键。

更改中心有独特功能,可在更改时锁定当前配置(见图8)。

使服务总线可在控制台执行配置更改时,继续接收和处理服务请求。

此外,对配置更改“激活”前,不影响当前配置。

完成后,这些更改立即生效,服务总线即可以使用新配置。

也就是说,可在不中断服务的情况下随时执行更改。

表2归纳了OracleServiceBus更改中心提供的特性。

表2更改中心的特性

页面

相关任务

查看配置更改

内部会话:

查看当前会话所做的配置更改。

外部会话:

查看以前会话激活的配置更改。

撤销更改

内部会话:

撤销当前会话所做的配置更改。

外部会话:

撤销会话的激活,将过去会话的激活撤销到新会话。

查看所有会话

内部和外部会话:

查看OracleServiceBus控制台中现有的全部会话。

查找和替换

内部会话:

查找和替换环境值。

外部会话:

查找环境变量(替换功能无效)。

查看冲突

只有内部会话:

查看和解决控制台内所有会话的更改之间的所有冲突。

如果当前会话修改的资源已经被另外的会话修改并激活,就发生了冲突。

如果两个会话对同一资源进行两次更改,在其中一次会话激活前,不发生冲突。

将显示会话中的语义资源错误。

任务细节

内部会话:

查看当前会话进行的具体更改的细节。

外部会话:

查看激活会话进行的具体更改的细节。

图8更改中心(屏幕左上角)

如果激活的更改引起意外事件,更改中心还能撤销任何会话的所有更改。

任务细节提供有关更改资源、更改者和时间信息。

由于可撤销整个会话或会话中的个别更改,OracleServiceBus能将受影响的配置恢复到先前的状态。

项目管理器

OracleServiceBus包含“ProjectExplorer”(项目管理器),可按逻辑分类OracleServiceBus的实体,使开发人员和管理员能更好地组织大型开发项目。

项目属于非层次、分散和顶级分组结构。

所有资源(例如服务、WS策略、WSDL、XQuery转换等)位于一个不重叠项目中。

可在项目中直接创建资源,或将资源组织到文件夹中。

项目或其他文件夹中可创建文件夹,这类似于文件系统的目录,项目级别是根目录。

为了增强导航能力,可为所有项目和文件夹添加描述。

图9描述了项目管理器。

项目管理器的另一个功能是跟踪文件夹内资源引用的外部资源。

查看这些引用可以了解所引用资源的位置(<项目名>/<文件夹名>/<资源名>格式)和类型。

图9项目管理器

开发、测试和生产环境的迁移

OracleServiceBus能简化从一个环境到另一环境(从开发到测试、再到生产)迁移配置。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2