单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2015/5/21,#,企业服务总线,性能,马永光,2015-05-18,ESB,简介,天津联怡科技有限公司,企业服务总线性能马永光2015-05-18ESB简介天津联,1,企业服务总线,性能,ESB,天津联怡科技有限公司,一:,ESB,性能简介,二:,ESB,测试用例,三:,ESB,部署调优,企业服务总线性能ESB天津联怡科技有限公司一:ESB性能简,2,企业服务总线,性能,ESB,天津联怡科技有限公司,信息交换平台作为信息“高速公路”,承担报文转换、协议适配、服务路由等重要的工作,它的性能处理能力从整体,IT,架构层面将影响到全行的业务处理能力,采用什么样的部署模式、硬件设备成为下一步选择的关键点。,企业服务总线性能ESB天津联怡科技有限公司信息交换平台作为,3,企业服务总线,性能,ESB,天津联怡科技有限公司,从硬件方面,如何进行硬件选型以满足,预计性能指标,是否便于部署、管理将是测试过程中需要考虑的重要内容。,因此,测试的目标总结如下:,通过各种场景测试信息交换平台在不同硬件上的性能表现,为硬件选型提供依据;,通过测试,为下一步核心系统调整的方案选择提供数据支持。,考察硬件方案平台在部署、管理方面的能力。,性能测试过程中的指标:,系统的执行效率,测试在各种负载压力情况下,获取典型事务的平均交易响应时间、每秒通过事务数等效率指标。,资源利用率,在性能测试中,对应用和数据库服务器硬件资源进行监控,以了解在不同并发用户数下系统平台的硬件资源使用情况。,企业服务总线性能ESB天津联怡科技有限公司从硬件方面,如何,4,企业服务总线,性能,ESB,天津联怡科技有限公司,企业服务总线性能ESB天津联怡科技有限公司,5,企业服务总线,性能,ESB,天津联怡科技有限公司,工具名称,说明,第三方测试工具,LoadRunner,压力测试工具,自行开发的测试程序,Tuxedo,模拟,Server,模拟核心交易处理,Web Service,模拟,Server,模拟支付系统服务处理,Tuxedo,模拟客户端,使用,Tuxedo,访问信息交换平台,测试工具,除使用,LoadRunner,作为测试工具之外,还需要使用如下自己开发的测试程序:,企业服务总线性能ESB天津联怡科技有限公司工具名称说明第三,6,企业服务总线,性能,ESB,天津联怡科技有限公司,一:,ESB,性能简介,二:,ESB,测试用例,三:,ESB,部署调优,企业服务总线性能ESB天津联怡科技有限公司一:ESB性能简,7,企业服务总线,性能,ESB,天津联怡科技有限公司,系统间交互,企业服务总线性能ESB天津联怡科技有限公司系统间交互,8,企业服务总线,性能,ESB,天津联怡科技有限公司,SOAP,WTC,SOCKET,WEBSERVICE,FTP,EMAIL,EJB,T3,HTTP,TCP,UDP,TUXEDO,MQ,JMS,ESB,常用测试场景,企业服务总线性能ESB天津联怡科技有限公司SOAPFTPH,9,企业服务总线,性能,ESB,天津联怡科技有限公司,标准,XML,到标准,XML,不做报文格式校验,测试出基准值;,请求端,Soap,协议,服务端,WTC,协议,George,John,Reminder,Dont forget the meeting!,SOAP,WTC,ESB,测试场景一,企业服务总线性能ESB天津联怡科技有限公司标准XML到标准,10,企业服务总线,性能,ESB,天津联怡科技有限公司,标准,XML,到标准,XML,不做报文格式校验,测试标准,XML,到标准,XML,做报文拆组包,做报文格式校验,,正确的上送报文,George,John,Reminder,Dont forget the meeting!,XML,XML,ESB,测试场景二,George,John,Reminder,Dont forget the meeting!,企业服务总线性能ESB天津联怡科技有限公司标准XML到标准,11,企业服务总线,性能,ESB,天津联怡科技有限公司,报文字段转换,字段格式化的三种方式,【XML QUERY,、,JAVA CALL,、,MFL】,MFL,JAVA CALL,XMLQUERY,企业服务总线性能ESB天津联怡科技有限公司报文字段转换字段,12,企业服务总线,性能,ESB,天津联怡科技有限公司,交易码,180027,服务码,0500300040,交易名称,根据帐号查找客户信息,服务名称,客户信息查询,原始接口,服务规范,英文名称,中文名称,数据类型,数据长度,英文名称,中文名称,数据类型,数据长度,备注,输入,1,AcctNo,账号、卡号,CHAR,32,AcctNo,账号、卡号,CHAR,32,2,FrntNo,前置机编号,CHAR,8,FrtSerNo,前置机编号,CHAR,8,3,TermSeq,终端流水,CHAR,8,TmnSeqNo,前置流水,CHAR,8,4,TermDate,终端日期,DATE,10,TmnTranDate,前置日期,DATE,10,5,TermTime,终端时间,CHAR,6,TmnTime,终端时间,CHAR,6,6,TranCode,交易代码,CHAR,6,7,Brc,交易机构代码,CHAR,9,8,Teller,交易柜员代码,CHAR,6,9,ChannelId,交易渠道,CHAR,2,10,TranDate,交易日期,DATE,10,11,TranTime,交易时间,CHAR,6,12,TermId,终端号,CHAR,15,13,TermIp,终端,IP,CHAR,15,输出,1,CustomName,客户名称,CHAR,70,CltName,客户名称,CHAR,60,2,CustomId,客户号,CHAR,21,CltNo,客户号,CHAR,20,3,IdType,证件类型,CHAR,2,CdtlType,证件类型,CHAR,2,4,IdNo,证件号码,CHAR,20,CdtlNo,证件号码,CHAR,18,5,CustomType,客户类别,CHAR,1,CltType,客户类别,CHAR,1,6,Sex,性别,CHAR,1,Sex,性别,CHAR,1,7,TranCode,交易代码,CHAR,6,8,RspCode,响应代码,CHAR,6,原始接口至标准字段的转换,企业服务总线性能ESB天津联怡科技有限公司交易码1800,13,企业服务总线,性能,ESB,天津联怡科技有限公司,报文字段定义(原),企业服务总线性能ESB天津联怡科技有限公司报文字段定义(原,14,企业服务总线,性能,ESB,天津联怡科技有限公司,报文字段定义(标),企业服务总线性能ESB天津联怡科技有限公司xsd:sch,15,企业服务总线,性能,ESB,天津联怡科技有限公司,报文字段转换,(: pragma bea:global-element-parameter parameter=$reqt1 element=ns0:reqt location=./XSD/S0200100003reqt.xsd :),(: pragma bea:global-element-return element=msg location=./XSD/S801112VBSreqt.xsd :),declare namespace ns0 = namespace xf = http:/tempuri.org/VBS/XQ/T0200100003reqt/;,declare function xf:T0200100003reqt($reqt1 as element(ns0:reqt),as element(msg) ,for $TranCode in $reqt1/ns0:appHead/ns0:TranCode,return, data(,$TranCode) ,for $FileFlag in $reqt1/ns0:extHead/ns0:FileFlag,return, data(,$FileFlag) ,企业服务总线性能ESB天津联怡科技有限公司报文字段转换(:,16,企业服务总线,性能,ESB,天津联怡科技有限公司,报文字段转换,企业服务总线性能ESB天津联怡科技有限公司报文字段转换,17,企业服务总线,性能,ESB,天津联怡科技有限公司,报文字段转换,原始接口至标准字段的转换,企业服务总线性能ESB天津联怡科技有限公司报文字段转换原始,18,企业服务总线,性能,ESB,天津联怡科技有限公司,标准,XML,到标准,XML,做报文拆组包,,做校验,测试消费方和请求方都通过,WTC,协议,George,John,Reminder,Dont forget the meeting!,XML,XML,ESB,George,John,Reminder,Dont forget the meeting!,测试场景三,企业服务总线性能ESB天津联怡科技有限公司标准XML到标准,19,企业服务总线,性能,ESB,天津联怡科技有限公司,Wtc(weblogic tuxedo connection),连接是,weblogic tuxedo,的域间通信的连接,,wtc,是调用,tuxedo,服务的基础。,对于,money,字段类型的校验的一种方式,企业服务总线性能ESB天津联怡科技有限公司Wtc(webl,20,企业服务总线,性能,ESB,天津联怡科技有限公司,测试标准,XML,到标准,XML,做报文拆组包,做报文格式校验,消费方和请求方都通过,Soap,协议,提供方返回,XML,XML,ESB,消费方请求,测试场景四,企业服务总线性能ESB天津联怡科技有限公司测试标准XML到,21,企业服务总线,性能,ESB,天津联怡科技有限公司,Abstract,SOAP 1.2,为在一个松散的、分布的环境中使用,XML,对等地交换结构化的和类型化的信息提供了一个简单且轻量级的机制。这是一个基于,XML,的协议,同时它由四部分组成,:,一个作为描述在消息中的内容以及如何处理消息的信息框架的信封,(envelope),,一组用于表示应用定义的数据类型的编码规则,(encoding rules),,一个用于表示远程过程调用和返回的约定以及一个使用底层协议进行消息交换的绑定,(binding),约定。潜在地,,SOAP,可以与很多其他的协议绑定使用;不过,在本文档中,只定义了,SOAP,与,HTTP,已经,SOAP,与,HTTP Extension Framework,的绑定。,Simple Object Access Protocol,企业服务总线性能ESB天津联怡科技有限公司Abstract,22,企业服务总线,性能,ESB,天津联怡科技有限公司,SOAP,的这项能力使得它可被很多类型的系统用于从消息系统到,RPC(Remote Procedure Call),的延伸。,SOAP,由四部分组成,:,SOAP envelop (SOAP,信封,),,它构造定义了一个整体的表示框架,可用于表示在消息,(message),中的,是什么,,,谁,应当处理它,以及这是,可选,的 还是,强制,的。,SOAP encoding rules (SOAP,编码规则,),,定义了一个编序机制用于交换应用程序定义的数据类型的实例。,SOAP RPC representation (SOAP RPC,表示,),,定义了一个用于表示远端过程调用和响应的约定。,SOAP binding (SOAP,绑定,),定义了一个使用底层传输协议来完成在结点间交换,SOAP,信封的约定。,企业服务总线性能ESB天津联怡科技有限公司SOAP的这项能,23,企业服务总线,性能,ESB,测试标准,XML,到,非标准,XML,,做报文拆组包和格式校验,不做字段映射,消费方使用,Soap,协议,服务方使用,WTC,协议,00000493165017RS0 tp165017 TLS824,柜员密码不符,09410,阿丽亚,乌斯曼,检查柜员密码,XML,KEYVALUE,ESB,消费方请求,测试场景五,天津联怡科技有限公司,企业服务总线性能ESB测试标准XML到非标准XML,做报文,24,企业服务总线,性能,ESB,天津联怡科技有限公司,为之于未有,治之于未乱,企业服务总线性能ESB天津联怡科技有限公司为之于未有,25,企业服务总线,性能,ESB,测试标准,XML,到,非标准,XML,,做报文拆组包和格式校验,,做字段映射,消费方使用,Soap,协议,服务方使用,WTC,协议,00000493165017RS0 tp165017 TLS824,柜员密码不符,09410,阿丽亚,乌斯曼,检查柜员密码,XML,KEYVALUE,ESB,消费方请求,测试场景六,天津联怡科技有限公司,a,A bB cC,企业服务总线性能ESB测试标准XML到非标准XML,做报文,26,企业服务总线,性能,ESB,6,的场景下增加,Report,跟踪,消费方使用,Soap,协议,服务方使用,WTC,协议,00000493165017RS0 tp165017 TLS824,柜员密码不符,09410,阿丽亚,乌斯曼,检查柜员密码,XML,KEYVALUE,ESB,消费方请求,测试场景七,天津联怡科技有限公司,企业服务总线性能ESB6的场景下增加Report跟踪消费,27,REPORT,JMS SERVER,FILE STORE,DATABASE,MONITOR,企业服务总线,性能,ESB,天津联怡科技有限公司,REPORTJMS SERVERFILE STOREDATA,28,企业服务总线,性能,ESB,天津联怡科技有限公司,企业服务总线性能ESB天津联怡科技有限公司,29,企业服务总线,性能,ESB,组合交易测试 一个上送报文中通过信息交换平台分别调用两个系统的服务,系统中需要添加逻辑判断和路由,消费方使用,Soap,上送标准报文,通过,WTC,和,SOAP,分别调用不同服务系统的服务,至少包含三个调用,可考虑冲正交易。,00000493165017RS0 tp165017 TLS824,柜员密码不符,09410,阿丽亚,乌斯曼,检查柜员密码,XML,Combination,ESB,消费方请求,测试场景八,天津联怡科技有限公司,George,John,Reminder,Dont forget the meeting!,企业服务总线性能ESB组合交易测试 一个上送报文中通过信,30,企业服务总线,性能,ESB,天津联怡科技有限公司,企业服务总线性能ESB天津联怡科技有限公司,31,企业服务总线,性能,ESB,组合交易测试 一个上送报文中通过信息交换平台分别调用两个系统的服务,系统中需要添加逻辑判断和路由,消费方使用,Soap,上送标准报文,通过,WTC,和,SOAP,分别调用不同服务系统的服务,至少包含三个调用,可考虑冲正交易。,00000493165017RS0 tp165017 TLS824,柜员密码不符,09410,阿丽亚,乌斯曼,检查柜员密码,XML,Combination,ESB,消费方请求,测试场景八,天津联怡科技有限公司,George,John,Reminder,Dont forget the meeting!,企业服务总线性能ESB组合交易测试 一个上送报文中通过信,32,企业服务总线,性能,ESB,交易分发功能测试,一个上送报文到达交换平台,交换平台同时发送报文到多个系统。,交易处理过程中,需要消息通知,给多个业务系统发送通知报文。,00000493165017RS0 tp165017 TLS824,柜员密码不符,09410,阿丽亚,乌斯曼,检查柜员密码,XML,ESB,消费方请求,测试场景九,天津联怡科技有限公司,George,John,Reminder,Dont forget the meeting!,George,John,Reminder,Dont forget the meeting!,Radio broadcast,企业服务总线性能ESB交易分发功能测试,一个上送报文到达交,33,企业服务总线,性能,ESB,天津联怡科技有限公司,性能测试报告,企业服务总线性能ESB天津联怡科技有限公司性能测试报告,34,企业服务总线,性能,ESB,天津联怡科技有限公司,一:,ESB,性能简介,二:,ESB,测试用例,三:,ESB,部署调优,企业服务总线性能ESB天津联怡科技有限公司一:ESB性能简,35,企业服务总线,性能,ESB,天津联怡科技有限公司,通过,Workmanager,进行流量控制,我们假设有转账交易,A,和查询交易,B,,我们希望在遇到,ESB,繁忙的时候,A,能够得到优先处理,而当系统不繁忙的时候,A,和,B,都能够尽可能的得到处理。,为了能够比较容易的看到效果,我们让,A,,,B,交易的处理过程完全相同,这样便于看到因为请求数量变化所带来的影响。,当没有流量控制时:如果让,A,,,B,的初始请求数量完全,1,:,1,,可以看到,AB,交易的处理能力和响应时间的曲线是基本重叠的,并且随着达到系统处理能力的上限,响应时间会随并发请求数量的增长而增长。,企业服务总线性能ESB天津联怡科技有限公司通过Workma,36,企业服务总线,性能,ESB,天津联怡科技有限公司,通过,Workmanager,进行流量控制,如果这个时候增加低优先的,B,交易的并发数量,,B,的,TPS,会上升,高优先的,A,会下降,同时响应时间会增长,这并不符合高优先的控制原则。,企业服务总线性能ESB天津联怡科技有限公司通过Workma,37,企业服务总线,性能,ESB,天津联怡科技有限公司,Oracle,在测试中使用的流量控制机制可以达到如下的效果:,如果只有低优先的业务,系统可以使用全部的资源进行处理,当出现高优先的业务时,按照比例让位给高优先业务。,企业服务总线性能ESB天津联怡科技有限公司Oracle在测,38,企业服务总线,性能,ESB,天津联怡科技有限公司,如果高低优先的业务同时在,ESB,上处理,并且并发数量相同,,OSB,可以直接控制高优先的处理多,低优先的处理少。,传统厂商的产品中也可以设置处理的优先级,但以消息优先级居多,通过控制消息的处理频率和密度,间接实现对处理资源的使用。,Oracle,除了设置消息的优先级之外,更重要的是可以调控不同级别的请求在,ESB,上所占用,CPU,的时间开销比例,真正实现了处理资源上的分配和管理。,企业服务总线性能ESB天津联怡科技有限公司如果高低优先的业,39,企业服务总线,性能,ESB,天津联怡科技有限公司,流量控制实现机制,企业服务总线性能ESB天津联怡科技有限公司流量控制实现机制,40,企业服务总线,性能,ESB,天津联怡科技有限公司,LocalProxy,调用时会使用前面,ProxyService,的线程模型继续执行,因此前面,ProxyService,上的,Dispatch Policy,会一直作用到,LocalProxy,的处理过程之中。,Business Service,会使用新的线程去执行,因此如果在,Pipeline,中,routing,到了其他的非,LocalProxy,,前端的流量控制就到此结束了。,Business Service,如果是,JMS,等异步的方式,,Biz,上的流量控制效果会差一些,因为本身的处理过程太短,消息实际上都被堆在了队列里。,Oracle,的,OSB,产品在前端接入和后端调用业务系统两个层面提供流量控制的能力,在配置前端接入的,ProxyService,和后端业务系统调用的,BusinessService,时可以指定相应的,DispatchPolicy,实现流量控制。,企业服务总线性能ESB天津联怡科技有限公司LocalPro,41,企业服务总线,性能,ESB,天津联怡科技有限公司,ProxyService,中的流量控制策略,企业服务总线性能ESB天津联怡科技有限公司ProxySer,42,企业服务总线,性能,ESB,天津联怡科技有限公司,BusinessService,中的流量控制策略,企业服务总线性能ESB天津联怡科技有限公司Business,43,企业服务总线,性能,ESB,天津联怡科技有限公司,OSB,底层通过使用,WebLogic,中的,workmanager,为流量控制提供最大并行执行数量、最大排队等待的请求数量、以及在所有请求超过系统处理能力的情况下按比例分配,OSB,的执行资源。,企业服务总线性能ESB天津联怡科技有限公司OSB底层通过使,44,企业服务总线,性能,ESB,天津联怡科技有限公司,通,道,企业服务总线性能ESB天津联怡科技有限公司通,45,企业服务总线,性能,ESB,天津联怡科技有限公司,联邦架构,企业服务总线性能ESB天津联怡科技有限公司联邦架构,46,企业服务总线,性能,ESB,天津联怡科技有限公司,基于消息队列的联邦,基于消息队列的联邦,是通过消息队列异步的可靠传输和高吞吐,实现,ESB,处理过程与数据传输相分离,以减少处理资源在长时间传输上的等待。但是因为消息队列所具有的单向传输特性,因此一个同步调用过程需要有请求和响应的两个队列才能完成处理,并且需要,ESB,根据消息中的关键字进行返回结果的匹配。因此对于双向调用的系统需要建立至少,4,个消息队列。,使用,JMS,或,MQ,建立联邦通道,除了需要在,OSB,上配置,Business Service,和,ProxyService,之外,还需要单独建立,JMS,的消息队列和配置每一组,MQ,的通讯连接。,企业服务总线性能ESB天津联怡科技有限公司基于消息队列的联,47,企业服务总线,性能,ESB,天津联怡科技有限公司,企业级范围的服务网络,OSB 1,Domain A,OSB,2,Domain B,OSB 3,Domain C,跨越多个,SOA,域的复合应用,在多个,ESB,实例见使用,JMS/SAF,和,WS-RM,进行服务中介和路由跨服务网络,确保一致的安全、策略和从整个服务网络重用资产,构建可跨域边界运行的复合应用,以提供更高价值,企业服务总线性能ESB天津联怡科技有限公司企业级范围的服务,48,企业服务总线,性能,ESB,天津联怡科技有限公司,JMS/MQ,JMS,是,OSB,产品的内置通讯协议,可用于,XML,、文本或二进制任意一种格式报文的传输,使用,JMS,可以实现异步或同异步匹配的消息传输。在导入,MQ,的支持包后,,OSB,同时也支持基于,IBM MQ,作为异步传输通道。,队列方式的优势:,可以进行报文的持久化,在,OSB,服务器宕机后依然可以保证消息可被处理,由服务提供方根据自己的处理能力主动获取消息,可以提供单向无返回的报文传输,队列方式的不足:,为了实现两个联邦节点的双向调用,需要配置,2,对,InQ,和,OutQ,的队列集群。大规模集群情况下,需要维护和监控大量的队列。,如果在联邦的所有节点之间都允许互相调用,因为不可能为每一对联邦成员都建立,2,对,InQ,和,OutQ,集群,因此只能让所有的访问端使用共享方式的队列集群,当出现队列拥堵时将造成应用间的相互影响。,企业服务总线性能ESB天津联怡科技有限公司JMS/MQ,49,企业服务总线,性能,ESB,天津联怡科技有限公司,JMS,可以很好的支持同异步结构的转换,将前端系统发起的同步请求转换为总线内部的异步处理,或者将前端的异步请求转换为总线对后端系统的同步调用。解决前后端系统在调用模式上的差异。,企业服务总线性能ESB天津联怡科技有限公司JMS可以很好的,50,企业服务总线,性能,ESB,天津联怡科技有限公司,ESB,集群下基于消息队列的总行调用分行的联邦架构:,在服务方,ESB,实例上建立一个请求队列,InQ,集群和一个响应队列,OutQ,集群,分行,ESB,上建立一个通用的服务方接收的,ProxyService,,该服务会自动邦定本节点上的消息队列实例,监听并响应消息,自动从消息头中获取,CorrelationID,或,MessageID,(在通道配置中可指定),并将该信息自动填充到响应的消息头中。客户端的,ESB,即根据该字段从异步返回的消息中识别对应的结果。,企业服务总线性能ESB天津联怡科技有限公司ESB集群下基于,51,企业服务总线,性能,ESB,天津联怡科技有限公司,该通道同时存在另一种配置形式,当服务端希望响应的消息被准确无误的送达到请求端时,可以将响应队列,OutQ,配置在调用一方,通过在服务方配置,SAF(store and forward),确保响应的消息一定被传送到发起端。,企业服务总线性能ESB天津联怡科技有限公司该通道同时存在另,52,企业服务总线,性能,ESB,天津联怡科技有限公司,联邦的集群化部署简单。只需要在服务调用者一方创建一个对服务提供者集群的,JNDI Provider,资源,无论服务提供者上存在多少物理上的调用通道,都可以通过,JNDI Provider,获得。同时系统自动将调用者对后端的通道定义部署到调用者集群中的所有节点,并自动将服务提供者定义的服务通道发布到服务提供者的集群。,企业服务总线性能ESB天津联怡科技有限公司联邦的集群化部署,53,企业服务总线,性能,ESB,天津联怡科技有限公司,速度与激情,企业服务总线性能ESB天津联怡科技有限公司速度与激情,54,企业服务总线,性能,ESB,天津联怡科技有限公司,谢谢!,企业服务总线性能ESB天津联怡科技有限公司谢谢!,55,