ORACLE OSB消息总线原理作用功能技术方案.docx
- 文档编号:27665893
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:13
- 大小:23.46KB
ORACLE OSB消息总线原理作用功能技术方案.docx
《ORACLE OSB消息总线原理作用功能技术方案.docx》由会员分享,可在线阅读,更多相关《ORACLE OSB消息总线原理作用功能技术方案.docx(13页珍藏版)》请在冰豆网上搜索。
ORACLEOSB消息总线原理作用功能技术方案
ORACLEOSB消息总线原理、作用、功能
技术方案
一、概述
消息交换总线技术是为了实现企业数据共享和应用集成,提供一种基于企业服务总线(ESB)的信息共享交换平台。
该技术采用面向服务体系结构(SOA)的设计思想,以信息共享为目标,具有松散耦合的特点,实现了"集中式管理、分布式运行"的工作模式。
通过设计标准的适配器组件,实现各种数据库和应用系统之间的数据共享与交换,能有效实现企业中信息共享,并具有良好的可扩展性和可靠性。
ORACLE的OSB总线包括ESB(EnterpriseServiceBus)和WSM(WebServiceManagement)两大部分,是ORACLE公司的消息交换总线产品。
ESB包括MOM,ORBs,RPCs,WebServices功能的新型、综合类型中间件,通过配置集成;WSM包括服务管理,消息跟踪两个部分。
使用OSB可以很容易的将企业已有的对外功能集成进来,并且能够集成和开发出来新的功能。
OSB的下载、安装、使用、实验、培训课件请参考以下附件:
二、服务总线
使用OSB服务总线,可以实现以下功能:
1、SOA中的服务中介
Ø高速中介
一次连接
松散耦合
动态扩展
交易处理可视化
Ø敏捷架构
企业范围内的可重用
集中化管理
控制风险
Ø改善总所有成本(TCO)
2、服务的代理
Ø支持多种协议格式
ØWebServices的处理
完全支持相应的WebServices(WSDL,SOAP包)和non-SOAP包的消息
Ø多种通讯方式
请求/响应(同步/异步),异步消息队列,一对多的发布
组合方式(例如:
sync-to-async桥)
3、支持消息类型
OSB支持下列消息类型:
ØJMSwithheaders
ØEmail(无论是否带有附件)
ØMFL(MessageFormatLanguage)
ØRawdata
ØText
ØSOAP(无论是否带有附件)
ØXML(无论是否带有附件)
4、访问目标透明(LocationTransparency)
OSB可以将服务与位置变化隔离。
5、向后的兼容性(BackwardsCompatibility)
隔离服务的约定/接口(contract/interface)的变化。
6、格式转换(ServiceEnablement)
Ø转换消息的格式,以便与服务接口吻合
Ø允许多协议/消息格式的服务调用
7、动态路由(DynamicRouting)
通过业务规则,决定如何访问目标服务
8、丰富服务访问的消息(MessageEnrichment)
通过调用其他服务,根据响应内容更新消息。
9、服务编排(ServiceOrchestration)
组织已有服务,合成新服务。
10、安全管理---如何控制
松耦合的安全模型,提供身份传递,WS-Security(基于消息的安全)以及传输安全保障。
ØSSLforHTTP/JMS
ØOne-way/Two-wayCertificate-basedauthentication
ØWS-Policy.WS-PolicyAssertions
11、服务水平协议SLA
ProxyService可以设定下列属性来实现ServiceLevelAgreements(SLA)控制。
Ø服务平均处理时间Averageprocessingtimeofaservice
Ø处理量
Ø错误数量
Ø安全违例情况
Ø计划验证错误情况
管理员可以配置针对SLA统计的告警。
三、消息机制
1、OSB项目开发步骤
Ø打开OSBWEB管理控制台或者WorkshopforWebLogic10gR3
Ø创建OSB项目
Ø创建项目文件夹目录
Ø导入资源,如wsdl、jar、xq等资源文件;编制wsdl文件或者调用外部服务的客户端
Ø新建BusinessService,接入外部服务
Ø新建ProxyService
Ø绘制消息流,实现服务路由、服务编排、消息内容操作、业务逻辑操作等功能处理
ØProxyService调试、测试、运行
2、消息运行原理
Ø服务定义
OSB中的服务包括代理服务(ProxyService)和业务服务(BusinessService)两种。
业务服务一般用作将外部已有服务接入到OSB总线上,代理服务的作用是将已有服务进行重新包装和整合,进行服务路由、逻辑处理之后对外发布新的服务。
Ø消息处理机制
在OSB消息流中,一般都是通过ProxyService对外发布服务的,客户端通过调用在ProxyService中定义好的URL来调用OSB总线上的服务。
当客户端调用ProxyService的时候,消息先经过ProxyService传输层(Transport)进入,传输层是有协议的,他可以解析和接入各种传输协议;然后通过绑定层(Binding)对传输层接入的消息及协议进行解析,对消息内容进行解析并且存放到上下文变量中,经过绑定层解析后的消息格式一般是通过SOAP格式进行包装并且附在以后的整个消息流传输过程中,以后的处理节点就通过访问上下文变量来查看、获取、编辑消息内容和消息结构;当然,在绑定层解析之后,消息协议仍然可以访问,绑定层会将协议信息存放在上下文变量中的$inbound变量中。
消息输出时候的处理过程与消息输入相反。
Ø消息上下文(MessageContext)模型
OSB中的消息上下文是一组存储消息内容的属性,并提供消息的元信息。
$header变量
$header表示SOAP的header元素,并将指向 Header>实际的头元素作为其子元素。 $body变量 对SOAP和非SOAP消息的实际payload,永远是包装成 Body>元素。 $attachments变量 $Attachments变量包含0或多个attachment子元素;每个attachment子元素是一个MIME元数据描述的附件。 $fault变量 OSB使用$fault变量保存外部系统抛出的出错代码以及出错原因。 Inbound变量 在接入(Inbound)过程中,消息派发: 如果消息中包含二进制数据,那么一个指针索引被创建;对于非二进制数据,就按照原样传递。 Outbound变量 在调用(outbound)过程中,消息派发: 如果是 在OSBProxyBusiness中开发消息流的时候,经常需要使用XPATH或者XQUERY进行节点参数配置,这是就经常用到上下文变量中的元素;熟悉消息上下文的含义和结构,对于开发配置消息流、应用各种节点有着十分重要的指导作用。 Ø消息流运行机制 OSB可以使得传输协议与传输的消息之间保持独立。 Pipeline表示一个消息流转中批量的处理逻辑 Stage可以被认为是一组动作处理的容器 Action是消息流中的逻辑,它用于具体决定如何处理消息 Branch节点可以让流程处理进入具体多个可能的处理路径中的一个 ØXPATH和XQUERY语言 在OSB消息流开发过程中,对于各种功能节点都可以使用XQUERY或者XPATH语言对节点属性、处理流程进行配置;而对于消息流的流程控制语句也是使用XQUERY来实现的。 对XQUERY和XPATH有个基本的了解是能够进行消息流深入开发的重要基础。 XPATH是标准的XML表达式语言,用于标识或定位XML文档中的某一部分,对于很多消息处理节点中的配置参数,都需要使用XPATH语言来表述,如对于DELETE(作用是删除消息中的某个元素或者属性)处理节点,就需要使用XPATH语言来描述删除目标元素;XQUERY是一种用于XML文档的结构化语言,用来描述循环和判断、函数处理、流程处理和控制、构造SOAP消息、处理消息结构和内容等处理命令的一种语言。 在OSB上,一般比较复杂的处理逻辑都需要这两种语言来实现。 Ø消息处理节点和格式转换 OSB中提供了多种常用节点来操作消息元素,包括增加、删除、重命名、更改内容等常用节点。 OSB中对消息结构/内容进行转换一般通过XQUERY语言来实现,可以在WORKSHOP中使用可视化界面进行拖拽操作来实现消息格式转换,然后将生成的xq文件上传到控制台即可。 Ø其它功能 OSB还提供了其它的有些常有功能和节点,这些可以通过练习来熟悉。 四、OSB术语 1、服务(Service) 在OSB中,注册在OSB上的内部或者外部的端点,包括代理服务和业务服务;其实外部系统对外发布的功能接口也可以称之为服务。 2、端点(Endpoint) 一个基于资源定位标志符的地址。 BusinessService的端点是接入的外部服务的资源地址;而ProxyService是对外发布的新服务的资源地址。 3、业务服务(BusinessService) 业务服务是您要与其交换消息的企业服务的AquaLogicServiceBus定义。 使用WSDL(WebServices定义语言)定义业务服务的方式与定义代理服务的方式相同。 但是,业务服务的配置与代理服务的配置不同,因为业务服务没有管道。 因此,不是由BEAAquaLogicServiceBus管道实现的服务即为业务服务。 BusinessService是在OSB中所定义的,用于表示希望与后端交换信息的企业服务。 使用业务服务,有以下优点: Ø集中管理 Ø简化服务的监控和管理 Ø易于变更的实施 BusinessService主要解决如何将已有的外部企业服务接入到OSB消息总线上(非OSB上提供的服务)。 4、代理服务(ProxyService) 代理服务是在WebLogicServer上本地实现的服务的AquaLogicServiceBus定义。 可以在WSDL、管道和策略等方面定义代理服务。 如果代理服务需要安全凭据,则可以创建代理服务提供程序,以管理这些从AquaLogicServiceBus控制台映射到密钥库条目的安全证书。 通过配置代理服务的消息流可以实现代理服务。 消息流可包括下列节点: 启动、管道对、分支和路由。 业务服务主要作用如下: Ø将传输逻辑和决定与应用解耦 Ø通过松耦合提升可扩展性 Ø为多个接入客统一访问入口 代理服务主要解决如何对外发布服务,将已有的服务进行整合/包装后重新对外发布,并且提供个外部客户进行访问。 5、消息流(MessageFlow) 消息流定义了代理服务的实现。 消息流可以包括管道对和下列节点: 开始、路由和分支。 消息路由、业务逻辑处理、服务编排、服务整合等操作都是在消息流中实现,在OSB开发中,主要工作就是消息流的开发和调试。 6、管道对(Pipeline) 通过“编辑消息流”页可以添加管道对节点。 管道对节点包含一个请求管道和一个响应管道。 消息流可以不包含管道对节点,也可以包含多个管道对节点: 代理服务(或对服务的操作)的请求和响应管道,以及可为阶段、管道和代理服务定义的错误处理程序管道。 管道可以包括一个或多个阶段,阶段又可以包括操作。 7、阶段(Stage) 阶段是操作的容器,如消息路由、日志记录、消息广播、消息传送等操作都可以放到阶段中操作。 8、动作(Action) 动作是用户定义的运行时的逻辑步骤,用户需要实现的功能一般通过添加动作节点来实现,OSB已经提供了很多不同类型功能各异的默认节点,方便用户进行消息流开发。 9、路由节点(RouteNode) 路由节点是在管道对中的请求和返回之间的交换节点,主要是用于调用业务服务。 用于定义消息目标的容器也可以用于执行单向通信,例如使用文件或email作为代理服务中请求处理和应答处理的分界点当Route节点分发了请求消息后,请求处理就认为结束,而当Route节点收到应答消息时,表明应答处理的开始。 路由节点一般出现在管道对之后,处于管道对中的请求和应答之间。 10、上下文变量(ContextVariables) 上下文变量是消息进入OSB总线之后的存储载体。 在消息通过传输层之后,绑定层会自动根据消息协议和消息内容,将其绑定到上下文变量中;当消息要输出OSB之前,OSB会根据需要自动将上下文变量中的消息内容转换成为符合输出协议类型的消息格式。 上下文变量主要包括以下结构: Ø$header: 包含SOAP消息的SOAP标头(用于包含SOAP标头的SOAP消息)。 header变量对于非SOAP消息类型包含一个空的SOAP头元素。 Ø$body: 有下列几种情况: SOAP消息-包含从SOAP信封中提取的 Body>部分;非SOAP、非二进制消息-包含包括在 Body>元素中的整个消息内容。 二进制消息-包含包括在 Body>中的对该二进制消息的内存中副本的引用。 Ø$attachments: 包含某个特定消息的MIME附件。 Ø$fault: 包含在消息处理期间所发生错误的相关信息。 OSB中的消息上下文是一组存储消息内容的属性,并提供消息的元信息 五、功能开发列表 1、OSB中使用WebService服务 OSB中的代理服务中的消息流中的数据传递都是以SOAP消息来传输的(消息进入OSB之后和输出OSB之前),对于非标准的SOAP消息,其内容存放在SOAP的body体中,消息头为空。 OSB提倡的服务接口是WebService服务,所以对WebService的支持十分完善,控制台中的大部分配置都是与WebService相关的。 2、OSB中使用Java方法 可以将Java类包导入到OSB中,在OSB的ProxyService的消息流中,调用Java方法完成相关的业务功能。 OSB上能够使用的Java类中的方法只能够是publicstatic(公开、静态)类型的方法。 具体使用参考“ESB_HandsOn_LabGuide.doc”文档的“练习六: OSB中使用Java方法”。 3、OSB中调用EJB 可以在OSB的ProxyService的消息流中,调用EJB方法完成业务功能。 在OSB上导入EJB的客户端jar包,配置好jndi,然后就可以使用OSB配置来开发调用EJB功能。 具体使用参考“ESB_HandsOn_LabGuide.doc”文档的“练习七: OSB中调用EJB”。 4、OSB中使用文件服务 可以在OSB中配置文件类型的BusinessServices,在消息流程中可以输出消息到文件中,也可以对文件(监听文件新增的操作,轮询监听时间)进行监听来触发消息流。 具体使用参考“ESB_HandsOn_LabGuide.doc”文档的“练习八: OSB中使用文件服务”。 5、OSB中配置LocalProxy 可以在OSB中使用本地代理服务LocalProxyService,通过LocalProxyService组装BusinessServices,并利用ProxyService作为外部代理,通过调用LocalProxy完成后续业务操作。 LocalProxyService是提供给其它ProxyService调用的服务,ProxyService不对外发布URL,不供外部调用,可以将内部通用功能定义成为本地代理服务。 在LocalProxyService中可以增加动作(action),调用BusinessService,可以将一些服务以及针对这些服务的共同操作集成在LocalProxyService中,提供给多个ProxyService调用。 具体使用参考“ESB_HandsOn_LabGuide.doc”文档的“练习九: OSB中配置LocalProxy”。 6、OSB中使用FTP服务 在OSB中可以使用FTP服务,通过OSB提供的FTP协议BusenessSservice来开发,FTP可以实现上传、下载文件,其它的支持没有FTP服务那样完善。 7、OSB中使用数据库服务 OSB上连接数据库可以使用DBADPATER(数据库适配器)来实现,需要安装JDEVELOPER,ORACLE有支持;除此之外,还可以使用JAVA来实现数据库连接。 8、OSB中消息流验证 可以在OSB的消息流中增加消息验证功能(这能验证整个消息,不能验证部分消息),将写好的xsd文件上传上去,配置一下即可; 可以参考附加实验“Lab3_ValidatingaLoanApplication.pdf”; 9、操作消息头和消息内容 在OSB中可以操作消息的消息头和消息内容,OSB提供了多种操作节点来编辑消息内容,也可以通过配置来修改消息头内容。 可以参考附加实验“Lab2_TransformingaLoanApplication.pdf”; 10、OSB上使用JMS服务 OSB上可以使用JMS服务,可以通过配置监听JMS队列的变化来触发消息流。 11、OSB条件、分支 OSB上可以实现条件分支功能,一般是通过判断整数来实现,操作有大于、小于、等于等。 可以参考附加实验“Lab1_RoutingaLoanApplication.pdf”; 12、OSB业务逻辑处理(XQUERY) 可以使用XQUERY来实现消息流的业务处理逻辑,控制台提供XQUERY语句的输入和验证功能。 13、OSB集群 OSB能够很容易的实现集群,其实也就是WEBLOGIC的集群功能,如使用F5来实现;如果配置OSB集群的时候也可以顺带着实现前置机的集群,如用F5可以这样做。 六、开发示例 对于在OSB上如何进行消息流开发,可以参考“ESB_HandsOn_LabGuide.doc”文档中的实验和3个附加实验。 七、附件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ORACLE OSB消息总线原理作用功能技术方案 OSB 消息 总线 原理 作用 功能 技术 方案