CN107809362A - 企业服务总线的配置方法及其系统 - Google Patents
企业服务总线的配置方法及其系统 Download PDFInfo
- Publication number
- CN107809362A CN107809362A CN201711128132.2A CN201711128132A CN107809362A CN 107809362 A CN107809362 A CN 107809362A CN 201711128132 A CN201711128132 A CN 201711128132A CN 107809362 A CN107809362 A CN 107809362A
- Authority
- CN
- China
- Prior art keywords
- data
- master control
- configuration
- target data
- esb
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40078—Bus configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及企业服务总线的配置方法及其系统,该方法包括配置请求总控的请求服务,启动端口接收服务请求,获取数据;配置处理总控,处理所述数据,形成目标数据;对目标数据进行处理并组织,返回组织结果。本发明通过Scala语言开发,可以运行在Java虚拟机上,具有跨平台特性,使用Scala语言和Akka Stream技术,强调异步处理、非阻塞交易、变量不变性特性,在处理高并发任务的同时还能保证多线的安全性;Akka Stream的背压技术与企业服务总线的结合,实现了流量控制自动适配,在对企业服务总线进行配置的过程中,采用配置各元件的参数,实现对后台服务的自动组装和调度,实用性强。
Description
技术领域
本发明涉及企业服务总线,更具体地说是指企业服务总线的配置方法及其系统。
背景技术
企业服务总线(Enterprise Service Bus)简称ESB,是从面向服务体系架构(SOA)发展而来,是传统中间件技术与XML、Web服务等技术结合的产物。现在ESB已经在电信、电力、金融、电子政务等不同的领域有着很广泛的应用。
现在ESB市场上的产品有很多,开源的ESB产品也发展的很成熟,比如Mule、ServiceMix等。目前ESB技术已经发展的很成熟,它的实现技术也是多样化的。
企业应用作为ESB服务一旦发布到ESB后,可供企业内所有其他应用调用,此时,服务质量控制的问题就突出出来。为了保证服务的质量,通过流量控制的机制来保证服务,请求不会在单位时间内产生过多请求,影响服务提供方对其他应用系统提供服务。同时随着接入的服务越来越多,企业不希望某个特定的实时性要求不高的服务由于突发的大交易量,导致影响其他服务的服务质量。所以需要对此类服务进行流量控制,目前大部分采用阈值设定的方式进行ESB的流量控制,但是,这种方式存在计算方法复杂,尤其服务并发的情况下的计算更加复杂,且无法及时处理并保证高并发任务时多线的安全性,存在一定的风险。
因此,有必要设计一种企业服务总线的配置方法,实现在处理高并发任务的同时还能保证多线的安全性以及流量控制自动适配。
发明内容
本发明的目的在于克服现有技术的缺陷,提供企业服务总线的配置方法及其系统。
为实现上述目的,本发明采用以下技术方案:企业服务总线的配置方法,所述方法包括:
配置请求总控的请求服务,启动端口接收服务请求,获取数据;
配置处理总控,处理所述数据,形成目标数据;
对目标数据进行处理并组织,返回组织结果。
其进一步技术方案为:配置请求总控的请求服务,启动端口接收服务请求,获取数据的步骤之前,还包括:
基于分布式类库流设计三种输入输出元件模型;
根据三种输入输出元件模型组装请求总控、处理总控以及回应总控,形成企业服务总线结构。
其进一步技术方案为:根据三种输入输出元件模型组装请求总控、处理总控以及回应总控,形成企业服务总线结构的步骤,所述请求总控由单个一输入一输出元件模型组成;所述处理总控由若干个多输入多输出元件模型组成;所述回应总控由一输入一输出元件模型组成。
其进一步技术方案为:配置处理总控,处理所述数据,形成目标数据的步骤,包括以下具体步骤:
配置数据转换元件,根据配置对数据进行转换处理,将数据内的源数据解析到目标数据中;
配置分支选择跳转元件,设定目标数据的跳转条件;
配置表达式计算元件,解析并计算自定义的表达式,形成目标数据;
配置发送元件,发送目标数据到后端服务器。
其进一步技术方案为:对目标数据进行处理并组织,返回组织结果的步骤,包括以下具体步骤:
配置数据转换元件,根据配置对目标数据进行转换处理,对目标数据内的源数据进行解析;
获取解析成功的目标数据,配置编码转换元件,将目标数据按照指定的编码格式进行编码,进行目标数据的组织;
判断组织是否成功;
若是,则配置结束流程元件,将组织成功的结果返回前端;
若否,则配置结束流程元件,将组织失败的结果返回前端。
本发明还提供了企业服务总线的配置系统,包括数据接收单元、数据处理单元以及结果返回单元;
所述数据接收单元,用于配置请求总控的请求服务,启动端口接收服务请求,获取数据;
所述数据处理单元,用于配置处理总控,处理所述数据,形成目标数据;
所述结果返回单元,用于对目标数据进行处理并组织,返回组织结果。
其进一步技术方案为:所述系统还包括元件模型获取单元以及结构形成单元;
所述元件模型获取单元,用于基于分布式类库流设计三种输入输出元件模型;
所述结构形成单元,用于根据三种输入输出元件模型组装请求总控、处理总控以及回应总控,形成企业服务总线结构。
其进一步技术方案为:所述数据处理单元包括数据转换模块、跳转设定模块、后端数据形成模块以及发送模块;
所述数据转换模块,用于配置数据转换元件,根据配置对数据进行转换处理,将数据内的源数据解析到目标数据中;
所述跳转设定模块,用于配置分支选择跳转元件,设定目标数据的跳转条件;
所述后端数据形成模块,用于配置表达式计算元件,解析并计算自定义的表达式,形成目标数据;
所述发送模块,用于配置发送元件,发送目标数据到后端服务器。
其进一步技术方案为:所述结果返回单元包括后端数据转换模块、解析模块以及判断模块;
所述后端数据转换模块,用于配置数据转换元件,根据配置对目标数据进行转换处理,对目标数据内的源数据进行解析;
所述解析模块,用于获取解析成功的目标数据,配置编码转换元件,将目标数据按照指定的编码格式进行编码,进行目标数据的组织;
所述判断模块,用于判断组织是否成功;若是,则配置结束流程元件,将组织成功的结果返回前端;若否,则配置结束流程元件,将组织失败的结果返回前端。
本发明与现有技术相比的有益效果是:本发明的企业服务总线的配置方法,通过Scala语言开发,可以运行在Java虚拟机上,具有跨平台特性,使用Scala语言和AkkaStream技术,强调异步处理、非阻塞交易、变量不变性特性,在处理高并发任务的同时还能保证多线的安全性;Akka Stream的背压技术与企业服务总线的结合,实现了流量控制自动适配,在对企业服务总线进行配置的过程中,采用配置各元件的参数,实现对后台服务的自动组装和调度,实用性强。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
图1为本发明具体实施例提供的企业服务总线的配置方法的流程图;
图2为本发明具体实施例提供的企业服务总线结构的框图;
图3为本发明具体实施例提供的配置处理总控并处理所述数据的流程图;
图4为本发明具体实施例提供的对目标数据进行处理并组织的流程图;
图5为本发明具体实施例提供的企业服务总线的配置系统的结构框图;
图6为本发明具体实施例提供的数据处理单元的结构框图;
图7为本发明具体实施例提供的结果返回单元的结构框图;
图8为本发明具体实施例提供的压力测试结果的框图;
图9为本发明具体实施例提供的回应总控的内部结构的框图。
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
如图1~9所示的具体实施例,本实施例提供的企业服务总线的配置方法,可以运用在电信、电力、金融、电子政务等不同的领域,实现在处理高并发任务的同时还能保证多线的安全性以及流量控制自动适配。
如图1所示,本实施例提供了企业服务总线的配置方法,该方法包括:
S3、配置请求总控的请求服务,启动端口接收服务请求,获取数据;
S4、配置处理总控,处理所述数据,形成目标数据;
S5、对目标数据进行处理并组织,返回组织结果。
在某些实施例中,如图1所示,S3、配置请求总控的请求服务,启动端口接收服务请求,获取数据的步骤之前,还包括:
S1、基于分布式类库流设计三种输入输出元件模型;
S2、根据三种输入输出元件模型组装请求总控、处理总控以及回应总控,形成企业服务总线结构。
当然,于其他实施例,比如已经设定好了企业服务总线结构,则无需要再进行S1、S2步骤。
对于上述的S1步骤,分布式库流即Akka Stream是一个Reactive Streams的框架,使用流处理技术,具有异步处理、非阻塞交易、变量不变性等特性,而且在处理高并发任务的同时保证多线程的安全性,Akka Stream还内置对背压模式的支持,而背压模式技术让ESB实现流量控制的自动适配。上述的三种输入输出元件模型是基于Akka Stream技术设计的流图模型,它们分别为简单输入输出元件模型、中等输入输出元件模型以及复杂输入输出元件模型,其中,简单输入输出元件模型为一输入一输出元件模型,它是Akka Stream提供的基本流图形状;中等输入输出元件模型为一输入多输出元件模型,该模型是自定义的元件模型,为其定义一个输入和多个输出端口,通过控制数据流元素在构件中进出流动方式和在流动过程中的转变来定义流构件的具体功能;复杂输入输出元件模型为多输入多输出元件模型,该模型也是自定义的元件模型,可以为其定义多个输入和多个输出端口,其中本系统主要用到的是具有二输入二输出的BidiFlow,BidiFlow本身是Akka Stream的基本形状,所以只需要描述数据流的构件行为实现不同的转化处理过程。请求总控为ReqFunnel,处理总控为Fitting,回应总控为RespFunnel。
对于上述的S2步骤,上述的请求总控由单个一输入一输出元件模型组成;所述处理总控由若干个多输入多输出元件模型组成;所述回应总控由单个一输入一输出元件模型组成。请求总控负责接收服务请求,并将请求交给后续的处理总控进行处理;处理总控将多输入多输出元件模型进行组装后完成复杂多变的处理任务,具体包括以下的处理元件:
记录元件,用于记录日志的元件,记录打印日志。
限流元件,用于流量控制的元件,控制数据的流量。
编码转换元件,使经过该元件处理的数据流按照指定的编码格式进行编码。
交易处理单元,是交易处理抽象类,该元件为流程控制元件的父类。
数据解析元件,用于解析接收到的数据并调起后续交易处理流程元件。
分支选择跳转元件,可根据不同的条件设置跳转到不同的元件。
另外,对于上述的交易处理元件包括数据库操作元件,用于可根据配置的Sql条件进行数据库操作;数据转换元件,根据配置对数据进行转换处理,将源数据解析到目标数据中;表达式计算元件,可根据配置的不同表达式进行计算操作;跳转元件,可配置跳转标号并按照配置跳转标号进行流程跳转;结束流程元件,用于流程结束并返回前端。
对于上述的回应总控,用于负责将请求服务发送到后端系统,并接收后端返回数据后交给处理总控进行后续处理。每个回应总控也是由一输入一输出元件模型构成。
上述的请求总控、处理总控以及回应总控,使用Scala可伸展语言和Akka Stream开发,应用程序使用Scala可伸展语言和Java语言开发,运行在Java虚拟机上,具备跨平台特性。
企业服务总线结构中用到的简单输入输出元件模型Simple Flow(一输入一输出)、中等输入输出元件模型Medium Complexity Flow(一输入多输出)、复杂输入输出元件模型Complicated Flow(多输入多输出)三种元件模型是基于Akka Stream技术设计的流图模型,使用这些流图模型可以组合出各种拓扑图,企业服务总线结构就是其中的一种;AkkaStream的背压技术back-pressure特性就是根据上下游元件模型对数据的处理能力,进行推/拉速率的流控。
企业服务总线结构的请求总控使用的是Simple Flow模型,对应一个输入端口,一个输出端口,请求总控的输出端口发送请求数据到下游的处理总控进行处理,请求总控的输入端口用来接收响应数据;处理总控使用的是Complicated Flow(多输入多输出)模型下的BidiFlow[I1,O1,I2,O2]模型,对应两个输入端口,两个输出端口,I1用来接收请求总控或者上游的处理总控递送过来的请求数据,O1用来输出被处理总控处理后的请求数据,I2用来接收请求总控或者下游处理总控递送的响应数据,O2输出处理后的响应数据;回应总控是一个Simple Flow模型,只有一个输入和一个输出端口,输入端口用来接收被处理总控处理过的请求数据,输出端口返回后台服务端的响应数据;请求总控、处理总控、回应总控可以是一个基本的元件模型,也可以是由Simple Flow、Medium Complexity Flow、Complicated Flow这三种元件元件模型组成的新的拓扑结构,对外呈现的是基本模型的状态。
比如:回应总控的内部结构可以是由一个Complicated Flow元件和多个SimpleFlow元件组成。如图9所示,FanOutRespFunnel(多输出响应模块)接收处理总控处理后的数据,然后分发给多个FittingRespFunnel(由多个处理总控模块和一个回应总控组成),并接收由FittingRespFunnel返回的响应数据进行组合后返回到发送端。这种回应总控的设计可以使ESB实现将请求数据发送到多个服务后台。
更进一步地,在某些实施例中,上述的S4步骤,配置处理总控,处理所述数据,形成目标数据的步骤,包括以下具体步骤:
S41、配置数据转换元件,根据配置对数据进行转换处理,将数据内的源数据解析到目标数据中;
S42、配置分支选择跳转元件,设定目标数据的跳转条件;
S43、配置表达式计算元件,解析并计算自定义的表达式,形成目标数据;
S44、配置发送元件,发送目标数据到后端服务器。
另外,在某些实施例中,上述的S5步骤,对目标数据进行处理并组织,返回组织结果的步骤,包括以下具体步骤:
S51、配置数据转换元件,根据配置对目标数据进行转换处理,对目标数据内的源数据进行解析;
S52、获取解析成功的目标数据,配置编码转换元件,将目标数据按照指定的编码格式进行编码,进行目标数据的组织;
S53、判断组织是否成功;
若是,则S54、配置结束流程元件,将组织成功的结果返回前端;
若否,则S55、配置结束流程元件,将组织失败的结果返回前端。
以一笔简单交易服务为例,该转账交易需要根据金额计算手续费,规则为:若转账金额大于2万,则手续费为5元,否则为2元。具体如下:配置请求总控服务,启动端口接收上送数据;解析该数据,将数据中的交易金额解析到目标数据的数据字典A_ATM中,并判断解析是否成功,只有当该解析来源数据类型为Xml,且机械目标数据类型为平台数据字典,才可以进行解析ATM字段,这样才属于解析成功,若解析不成功,则配置结束流程处理元件,将组织失败的结果返回前端;若解析成功,则设置数据字典A_ATM大于20000作为分支选择跳转条件,满足该条件,则在跳转的处理流程中设置手续费数据字典A_FEE为5,收取手续费5元,若不满足该条件,则在跳转的另一处理流程中设置手续费数据字典A_FEE为2,收取手续费2元;并将收取的手续费作为后端数据发送出去,对应数据转换元件解析接收到的后端数据,该解析来源数据类型为平台数据字典,且机械目标数据类型为Xml,才可以进行解析并配置返回码,这样才属于解析成功,并采用编码转换元件进行数据编码,进行后端数据的组织,并判断组织是否成功,若成功,则配置结束流程处理元件,将组织成功的结果返回前端,若不成功,则配置结束流程处理元件,将组织失败的结果返回前端。
具体地,如果与ESB连接的后台只处理2017年01月01日之后的交易,那么由ESB需要负责过滤输出符合条件的交易,若交易符合条件,将交易发送到后台,若交易不符合条件,则给前端返回交易发送失败的提示。
trait ReqFunnel{
def acceptFlow(flow:()=>Flow[Request,Response,NotUsed])
}
如上代码是对请求总控的基本定义,它是一个Simple Flow,对应一个输入流请求,一个输出流回应,ESB使用该请求总控将端口接收的交易报文,发送给处理总控。
trait Fitting{
val bidiFlow:BidiFlow[Request,Request,Response,Response,NotUsed]
}
以上代码是对处理总控的基本定义,它是一个双向通道,对应二个输入流请求,二个输出流回应。在处理交易时是在处理总控的具体实例中编写处理流程。
上面代码中的就是具体的交易处理元件,使用配置config的处理逻辑来处理请求数据,在本例中就需要把过滤日期的逻辑加入到处理逻辑中。首先在初始转换处理总控中解析报文中的交易日期,将报文中的交易日期解析到目标数据的数据字典TXN_DT中;然后在处理逻辑的实例中添加具有过滤作用的交易处理流程,过滤流程代码如下所示:
如上代码,获取数据字典TXN_DT(TXN_DT的格式为YYYYMMDD)的具体数值,与“20170101”进行比较,若大于20170101则将交易数据内容发送到下游的处理总控,如果小于20170101就直接跳转到交易流程的结束处理总控,结束Fitting将数据流递送到回应总控。
trait RespFunnel{
def flow:Flow[Request,Response,NotUsed]
}
如上是对回应总控的基本定义,它是一个Simple Flow,对应一个输入流请求,一个输出流响应。
通过对参数的配置,实现后台服务的自动化组装及调度,本方法由于Scala语言和Akka Stream技术本身特性,使ESB也具有异步处理、非阻塞交易、变量不变性等特性,在处理高并发任务的同时还能保证多线程的安全性,通过参数化设计将报文转换、逻辑处理、数据计算等处理流程与后台服务结合,实现了服务的流程化。一般的非阻塞流都会遇到一个流控的问题就是如果采集者太慢而不能消费实时数据流时怎么办,通常采用的方案是把流的元素缓存起来,但是这样会出现缓存溢出、系统不稳定等问题,而Akka Stream可以依靠内部的反向压力信号即背压技术,做到流量控制自动适配,比如系统会根据输入输出元件模型处理能力,来进行推/拉速率的流量控。本方法还支持所见即所得的可视化配置工具,可以配置系统服务的各个方面的参数以及具体的服务流程。
如图8所示,编写一支包含提供数据转换以及服务路由等功能的完整服务进行压力测试,其中发送的后端服务也是由企业服务总线配置了模拟后端服务后另起一套服务提供的。压力测试中发现实际每秒处理笔数可达到5千笔/秒,其中CPU和MEMORY的消耗也并不是很高,同样的测试程序在一台8G内存4核CPU的虚拟机上也可达到3000笔/秒,可见该框架搭建的企业服务总线的性能是很好的,即使配置不高,也能提供良好的服务性能。
上述的企业服务总线的配置方法,通过Scala语言开发,可以运行在Java虚拟机上,具有跨平台特性,使用Scala语言和Akka Stream技术,强调异步处理、非阻塞交易、变量不变性特性,在处理高并发任务的同时还能保证多线的安全性;Akka Stream的背压技术与企业服务总线的结合,实现了流量控制自动适配,在对企业服务总线进行配置的过程中,采用配置各元件的参数,实现对后台服务的自动组装和调度,实用性强。
如图5所示,本实施例还提供了企业服务总线的配置系统,其包括数据接收单元3、数据处理单元4以及结果返回单元5。
数据接收单元3,用于配置请求总控的请求服务,启动端口接收服务请求,获取数据。
数据处理单元4,用于配置处理总控,处理所述数据,形成目标数据。
结果返回单元5,用于对目标数据进行处理并组织,返回组织结果。
在某些实施例中,上述的系统还包括元件模型获取单元1以及结构形成单元2。
元件模型获取单元1,用于基于分布式类库流设计三种输入输出元件模型。
结构形成单元2,用于根据三种输入输出元件模型组装请求总控、处理总控以及回应总控,形成企业服务总线结构。
对于元件模型获取单元1而言,分布式库流即Akka Stream是一个ReactiveStreams的框架,使用流处理技术,具有异步处理、非阻塞交易、变量不变性等特性,而且在处理高并发任务的同时保证多线程的安全性,Akka Stream还内置对背压模式的支持,而背压模式技术让ESB实现流量控制的自动适配。上述的三种输入输出元件模型是基于AkkaStream技术设计的流图模型,它们分别为简单输入输出元件模型、中等输入输出元件模型以及复杂输入输出元件模型,其中,简单输入输出元件模型为一输入一输出元件模型,它是Akka Stream提供的基本流图形状;中等输入输出元件模型为一输入多输出元件模型,该模型是自定义的元件模型,为其定义一个输入和多个输出端口,通过控制数据流元素在构件中进出流动方式和在流动过程中的转变来定义流构件的具体功能;复杂输入输出元件模型为多输入多输出元件模型,该模型也是自定义的元件模型,可以为其定义多个输入和多个输出端口,其中本系统主要用到的是具有二输入二输出的BidiFlow,BidiFlow本身是AkkaStream的基本形状,所以只需要描述数据流的构件行为实现不同的转化处理过程。请求总控为ReqFunnel,处理总控为Fitting,回应总控为RespFunnel。
对于结构形成单元2而言,上述的请求总控由单个一输入一输出元件模型组成;所述处理总控由若干个多输入多输出元件模型组成;所述回应总控由单个一输入一输出元件模型组成。请求总控负责接收服务请求,并将请求交给后续的处理总控进行处理;处理总控将多输入多输出元件模型进行组装后完成复杂多变的处理任务,具体包括以下的处理元件:
记录元件,用于记录日志的元件,记录打印日志。
限流元件,用于流量控制的元件,控制数据的流量。
编码转换元件,使经过该元件处理的数据流按照指定的编码格式进行编码。
交易处理单元,是交易处理抽象类,该元件为流程控制元件的父类。
数据解析元件,用于解析接收到的数据并调起后续交易处理流程元件。
分支选择跳转元件,可根据不同的条件设置跳转到不同的元件。
另外,对于上述的交易处理元件包括数据库操作元件,用于可根据配置的Sql条件进行数据库操作;数据转换元件,根据配置对数据进行转换处理,将源数据解析到目标数据中;表达式计算元件,可根据配置的不同表达式进行计算操作;跳转元件,可配置跳转标号并按照配置跳转标号进行流程跳转;结束流程元件,用于流程结束并返回前端。
对于上述的回应总控,用于负责将请求服务发送到后端系统,并接收后端返回数据后交给处理总控进行后续处理。每个回应总控也是由一输入一输出元件模型构成。
上述的请求总控、处理总控以及回应总控,使用Scala可伸展语言和Akka Stream开发,应用程序使用Scala可伸展语言和Java语言开发,运行在Java虚拟机上,具备跨平台特性。
更进一步地,在某些实施例中,上述的数据处理单元4包括数据转换模块41、跳转设定模块42、后端数据形成模块43以及发送模块44。
数据转换模块41,用于配置数据转换元件,根据配置对数据进行转换处理,将数据内的源数据解析到目标数据中。
跳转设定模块42,用于配置分支选择跳转元件,设定目标数据的跳转条件。
后端数据形成模块43,用配置表达式计算元件,解析并计算自定义的表达式,形成目标数据。
发送模块44,用于配置发送元件,发送目标数据到后端服务器。
另外,在某些实施例中,上述的结果返回单元5包括后端数据转换模块51、解析模块52以及判断模块53。
后端数据转换模块51,用于配置数据转换元件,根据配置对目标数据进行转换处理,对目标数据内的源数据进行解析。
解析模块52,用于获取解析成功的目标数据,配置编码转换元件,将目标数据按照指定的编码格式进行编码,进行目标数据的组织。
判断模块53,用于判断组织是否成功;若是,则配置结束流程元件,将组织成功的结果返回前端;若否,则配置结束流程元件,将组织失败的结果返回前端。
以一笔简单交易服务为例,该转账交易需要根据金额计算手续费,规则为:若转账金额大于2万,则手续费为5元,否则为2元。具体如下:配置请求总控服务,启动端口接收上送数据;解析该数据,将数据中的交易金额解析到目标数据的数据字典A_ATM中,并判断解析是否成功,只有当该解析来源数据类型为Xml,且机械目标数据类型为平台数据字典,才可以进行解析ATM字段,这样才属于解析成功,若解析不成功,则配置结束流程Fitting元件,将组织失败的结果返回前端;若解析成功,则设置数据字典A_ATM大于20000作为分支选择跳转条件,满足该条件,则在跳转的处理流程中设置手续费数据字典A_FEE为5,收取手续费5元,若不满足该条件,则在跳转的另一处理流程中设置手续费数据字典A_FEE为2,收取手续费2元;并将收取的手续费作为后端返回数据发送出去,对应数据转换元件解析接收到的后端数据,该解析来源数据类型为平台数据字典,且机械目标数据类型为Xml,才可以进行解析并配置返回码,这样才属于解析成功,并采用编码转换元件进行数据编码,进行后端数据的组织,并判断组织是否成功,若成功,则配置结束流程Fitting元件,将组织成功的结果返回前端,若不成功,则配置结束流程Fitting元件,将组织失败的结果返回前端。
通过对参数的配置,实现后台服务的自动化组装及调度,本方法由于Scala语言和Akka Stream技术本身特性,使ESB也具有异步处理、非阻塞交易、变量不变性等特性,在处理高并发任务的同时还能保证多线程的安全性,通过参数化设计将报文转换、逻辑处理、数据计算等处理流程与后台服务结合,实现了服务的流程化。一般的非阻塞流都会遇到一个流控的问题就是如果采集者太慢而不能消费实时数据流时怎么办,通常采用的方案是把流的元素缓存起来,但是这样会出现缓存溢出、系统不稳定等问题,而Akka Stream可以依靠内部的反向压力信号即背压技术,做到流量控制自动适配,比如系统会根据输入输出元件模型处理能力,来进行推/拉速率的流量控。本方法还支持所见即所得的可视化配置工具,可以配置系统服务的各个方面的参数以及具体的服务流程。
如图8所示,编写一支包含提供数据转换以及服务路由等功能的完整服务进行压力测试,其中发送的后端服务也是由企业服务总线配置了模拟后端服务后另起一套服务提供的。压力测试中发现实际每秒处理笔数可达到5千笔/秒,其中CPU和MEMORY的消耗也并不是很高,同样的测试程序在一台8G内存4核CPU的虚拟机上也可达到3000笔/秒,可见该框架搭建的企业服务总线的性能是很好的,即使配置不高,也能提供良好的服务性能。
上述的企业服务总线的配置系统,通过Scala语言开发,可以运行在Java虚拟机上,具有跨平台特性,使用Scala语言和Akka Stream技术,强调异步处理、非阻塞交易、变量不变性特性,在处理高并发任务的同时还能保证多线的安全性;Akka Stream的背压技术与企业服务总线的结合,实现了流量控制自动适配,在对企业服务总线进行配置的过程中,采用配置各元件的参数,实现对后台服务的自动组装和调度,实用性强。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。
Claims (9)
1.企业服务总线的配置方法,其特征在于,所述方法包括:
配置请求总控的请求服务,启动端口接收服务请求,获取数据;
配置处理总控,处理所述数据,形成目标数据;
对目标数据进行处理并组织,返回组织结果。
2.根据权利要求1所述的企业服务总线的配置方法,其特征在于,配置请求总控的请求服务,启动端口接收服务请求,获取数据的步骤之前,还包括:
基于分布式类库流设计三种输入输出元件模型;
根据三种输入输出元件模型组装请求总控、处理总控以及回应总控,形成企业服务总线结构。
3.根据权利要求2所述的企业服务总线的配置方法,其特征在于,根据三种输入输出元件模型组装请求总控、处理总控以及回应总控,形成企业服务总线结构的步骤,所述请求总控由单个一输入一输出元件模型组成;所述处理总控由若干个多输入多输出元件模型组成;所述回应总控由一输入一输出元件模型组成。
4.根据权利要求1至3任一项所述的企业服务总线的配置方法,其特征在于,配置处理总控,处理所述数据,形成目标数据的步骤,包括以下具体步骤:
配置数据转换元件,根据配置对数据进行转换处理,将数据内的源数据解析到目标数据中;
配置分支选择跳转元件,设定目标数据的跳转条件;
配置表达式计算元件,解析并计算自定义的表达式,形成目标数据;
配置发送元件,发送目标数据到后端服务器。
5.根据权利要求4所述的企业服务总线的配置方法,其特征在于,对目标数据进行处理并组织,返回组织结果的步骤,包括以下具体步骤:
配置数据转换元件,根据配置对目标数据进行转换处理,对目标数据内的源数据进行解析;
获取解析成功的目标数据,配置编码转换元件,将目标数据按照指定的编码格式进行编码,进行目标数据的组织;
判断组织是否成功;
若是,则配置结束流程元件,将组织成功的结果返回前端;
若否,则配置结束流程元件,将组织失败的结果返回前端。
6.企业服务总线的配置系统,其特征在于,包括数据接收单元、数据处理单元以及结果返回单元;
所述数据接收单元,用于配置请求总控的请求服务,启动端口接收服务请求,获取数据;
所述数据处理单元,用于配置处理总控,处理所述数据,形成目标数据;
所述结果返回单元,用于对目标数据进行处理并组织,返回组织结果。
7.根据权利要求6所述的企业服务总线的配置系统,其特征在于,所述系统还包括元件模型获取单元以及结构形成单元;
所述元件模型获取单元,用于基于分布式类库流设计三种输入输出元件模型;
所述结构形成单元,用于根据三种输入输出元件模型组装请求总控、处理总控以及回应总控,形成企业服务总线结构。
8.根据权利要求7所述的企业服务总线的配置系统,其特征在于,所述数据处理单元包括数据转换模块、跳转设定模块、后端数据形成模块以及发送模块;
所述数据转换模块,用于配置数据转换元件,根据配置对数据进行转换处理,将数据内的源数据解析到目标数据中;
所述跳转设定模块,用于配置分支选择跳转元件,设定目标数据的跳转条件;
所述后端数据形成模块,用于配置表达式计算元件,解析并计算自定义的表达式,形成目标数据;
所述发送模块,用于配置发送元件,发送目标数据到后端服务器。
9.根据权利要求8所述的企业服务总线的配置系统,其特征在于,所述结果返回单元包括后端数据转换模块、解析模块以及判断模块;
所述后端数据转换模块,用于配置数据转换元件,根据配置对目标数据进行转换处理,对目标数据内的源数据进行解析;
所述解析模块,用于获取解析成功的目标数据,配置编码转换元件,将目标数据按照指定的编码格式进行编码,进行目标数据的组织;
所述判断模块,用于判断组织是否成功;若是,则配置结束流程元件,将组织成功的结果返回前端;若否,则配置结束流程元件,将组织失败的结果返回前端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711128132.2A CN107809362B (zh) | 2017-11-15 | 2017-11-15 | 企业服务总线的配置方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711128132.2A CN107809362B (zh) | 2017-11-15 | 2017-11-15 | 企业服务总线的配置方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107809362A true CN107809362A (zh) | 2018-03-16 |
CN107809362B CN107809362B (zh) | 2020-10-23 |
Family
ID=61580113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711128132.2A Active CN107809362B (zh) | 2017-11-15 | 2017-11-15 | 企业服务总线的配置方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107809362B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263099A (zh) * | 2019-06-21 | 2019-09-20 | 北京小米移动软件有限公司 | 数据同步的流量调整方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339520A (zh) * | 2007-12-04 | 2009-01-07 | 浙江大学 | 一种将ejb接入企业服务总线的方法 |
CN101741850A (zh) * | 2009-12-25 | 2010-06-16 | 北京邮电大学 | 面向混合网络服务的多任务并发执行系统及方法 |
CN101883084A (zh) * | 2009-05-04 | 2010-11-10 | 李新宇 | 用于对网络服务通信进行适配的方法、适配器和适配器系统 |
CN102082771A (zh) * | 2009-11-30 | 2011-06-01 | 中国移动通信集团福建有限公司 | 一种基于esb技术的服务管理中间件 |
CN102467379A (zh) * | 2010-11-15 | 2012-05-23 | 中国人民解放军63928部队 | 基于构件技术的轻量级可扩展应用集成框架 |
CN102868608A (zh) * | 2012-09-04 | 2013-01-09 | 江苏大学 | 一种基于消息机制的企业服务总线系统 |
CN103763394A (zh) * | 2014-02-10 | 2014-04-30 | 赛特斯信息科技股份有限公司 | 实现将ejb接入和调出企业服务总线的系统及方法 |
US20160063401A1 (en) * | 2014-08-27 | 2016-03-03 | Software Ag | Systems and/or methods for reactive, distributable, and extensible process execution |
-
2017
- 2017-11-15 CN CN201711128132.2A patent/CN107809362B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339520A (zh) * | 2007-12-04 | 2009-01-07 | 浙江大学 | 一种将ejb接入企业服务总线的方法 |
CN101883084A (zh) * | 2009-05-04 | 2010-11-10 | 李新宇 | 用于对网络服务通信进行适配的方法、适配器和适配器系统 |
CN102082771A (zh) * | 2009-11-30 | 2011-06-01 | 中国移动通信集团福建有限公司 | 一种基于esb技术的服务管理中间件 |
CN101741850A (zh) * | 2009-12-25 | 2010-06-16 | 北京邮电大学 | 面向混合网络服务的多任务并发执行系统及方法 |
CN102467379A (zh) * | 2010-11-15 | 2012-05-23 | 中国人民解放军63928部队 | 基于构件技术的轻量级可扩展应用集成框架 |
CN102868608A (zh) * | 2012-09-04 | 2013-01-09 | 江苏大学 | 一种基于消息机制的企业服务总线系统 |
CN103763394A (zh) * | 2014-02-10 | 2014-04-30 | 赛特斯信息科技股份有限公司 | 实现将ejb接入和调出企业服务总线的系统及方法 |
US20160063401A1 (en) * | 2014-08-27 | 2016-03-03 | Software Ag | Systems and/or methods for reactive, distributable, and extensible process execution |
Non-Patent Citations (1)
Title |
---|
FORELEVEN: "akka-esb/数据服务总线架构设计", 《GITEE》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263099A (zh) * | 2019-06-21 | 2019-09-20 | 北京小米移动软件有限公司 | 数据同步的流量调整方法、装置、设备及存储介质 |
CN110263099B (zh) * | 2019-06-21 | 2021-07-13 | 北京小米移动软件有限公司 | 数据同步的流量调整方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107809362B (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107992543A (zh) | 问答交互方法和装置、计算机设备及计算机可读存储介质 | |
CN106341444A (zh) | 数据访问方法和装置 | |
CN103747097B (zh) | 移动终端http请求聚合压缩的系统及方法 | |
CN107729139A (zh) | 一种并发获取资源的方法和装置 | |
CN105913233A (zh) | 适用于应用客户端支付的sdk处理方法 | |
CN110287247A (zh) | 基于银联系统的数据存储方法、装置、设备及存储介质 | |
WO2023065629A1 (zh) | 一种对话管理方法、系统、终端及存储介质 | |
CN111031133B (zh) | 业务引擎的运行方法和装置、存储介质、电子装置 | |
CN107678844A (zh) | 断点智能分流方法、电子装置及计算机存储介质 | |
CN110032400A (zh) | 一种加载插件的方法及电子终端 | |
CN108737177A (zh) | 一种移动互联网实时流数据采集及分析的实现方法 | |
CN103905482B (zh) | 推送信息的方法、推送服务器和系统 | |
CN107911227A (zh) | 一种断点数据跟进方法、电子装置及计算机可读存储介质 | |
CN101848148A (zh) | 应用于金融报文语言的数据传输处理系统、装置及方法 | |
CN102711070B (zh) | 一种在线计费模拟测试系统和方法 | |
CN108933946A (zh) | 基于声控的直播关注方法、存储介质、电子设备及系统 | |
CN107809362A (zh) | 企业服务总线的配置方法及其系统 | |
CN110069248A (zh) | 接口数据的调用方法、装置、设备及计算机可读存储介质 | |
CN108628908A (zh) | 分类用户提问-回答界限的方法、装置和电子设备 | |
CN111190750B (zh) | 一种数据处理方法以及系统 | |
CN112152818B (zh) | 话单处理方法、装置、系统、存储介质和网络设备 | |
CN107957945A (zh) | 货币基金系统自动性能测试方法、装置、设备及存储介质 | |
CN117332374A (zh) | 一种ai芯片的计算和通信的融合方法、装置及ai芯片 | |
CN116777568A (zh) | 金融市场交易事前智能对话下单方法、装置及存储介质 | |
CN111562964A (zh) | 一种基于规则引擎的结算业务系统模拟器实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 518000 Floor 3, Sifang Jingchuang Information Building, No. 8, Gaoxin South 7th Road, High tech Zone Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong Patentee after: SHENZHEN FORMS SYNTRON INFORMATION CO.,LTD. Address before: Room 302, Building 13, Shenzhen Software Park (Phase 2) Patentee before: SHENZHEN FORMS SYNTRON INFORMATION CO.,LTD. |