一种整合规则引擎的企业服务总线制造技术

技术编号:9599277 阅读:140 留言:0更新日期:2014-01-23 04:04
一种整合规则引擎的企业服务总线,包括服务总线模块,服务总线模块包括:服务接入单元,消息容器单元,服务接出单元,服务调解单元,消息路由单元,数据转换单元;企业服务总线还包括:平台管理模块,与所述服务总线模块相连,用于对企业服务总线的相关配置进行管理;企业服务总线还包括:规则服务模块,与所述服务总线模块相连,用于对企业服务总线进行业务规则和业务流程能力扩展;规则服务模块包括:业务规则单元,策略规则单元和规则引擎单元;本发明专利技术进行了基于ESB技术规范的功能研发和扩展,已是完整概念上的企业服务总线。有助于打破其它大型企业的市场垄断。

【技术实现步骤摘要】
一种整合规则引擎的企业服务总线一、
本专利技术涉及网络通信
,尤其涉及多通信协议服务总线和业务规则和业务流程处理。二、
技术介绍
ESB(EnterpriseServiceBus,企业服务总线)为分散服务提供了交互、组合和治理的基础架构,是SOA(ServiceOrientedArchitecture,面向服务架构)的核心技术。规则引擎是用以管理和自动实现业务规则的软件系统,其主要实现的功能是存储、分类和管理规则,验证规则的一致性,通过规则推断其它规则、联系规则和执行这些规则的应用程序,其中的规则主要是指企业内部(系统内部)业务逻辑、企业与企业间(系统与系统间)信息交互与处理的业务逻辑等。规则引擎概念的思想是从软件的应用逻辑中分离出业务规则,以实现各种业务的灵活处理。在传统的ESB下,业务逻辑被直接固定在ESB业务处理程序代码中,这使得应用程序维护复杂并且代价昂贵,变化的业务规则和业务流程总是引起对应用程序的频繁修改,尤其面临动态业务模型和业务流程的挑战时,传统ESB模式下开发的应用程序往往面临全面和代价高昂的修改,甚至设计变化。解决这个问题就需要采用新的开发模式,将业务逻辑从ESB业务处理代码层剥离。使用规则引擎恰恰提供了一个将业务处理和业务规则处理分离、共用和统一管理维护业务规则的系统开发构架。三、
技术实现思路
本专利技术所要解决的技术问题是,提供一种融合规则引擎的企业服务总线,推动技术创新。为解决上述技术问题,本专利技术提出了通过平台管理模块和规则服务模块对传统服务总线模块进行扩展,实现一个实用、易管理、易扩展的新型企业服务总线。本专利技术的技术方案是:一种整合规则引擎的企业服务总线,上述企业服务总线包括服务总线模块,包括:服务接入单元,接入单元基于OSGI组件技术实现的组态设计,把各种不同的接入格式(二进制、二进制数组、object、json、xml等)以及各种不同的通信协议(TCP/IP、UDP、HTTP、WebService、SOAP、JMS等)封装成组态化组件,提供多种接入格式和协议适配;消息容器单元,用于进行消息路由、服务组合、提供二进制转object、二进制数组转json、json转xml、xml转json等多种不同格式消息的数据映射和数据转换;服务接出单元,用于向其它应用系统发送消息以及对消息格式和协议进行适配,关键技术和实现与服务接入单元相同;服务调解单元,用于隐藏消息格式和协议,将业务逻辑从消息中独立出来,并可以实现本地独立的服务调用;消息路由单元,用于对消息进行路由、过滤、合并和重新排序;数据转换单元,用于对不同格式和传输协议的数据进行转换数据;企业服务总线还包括:平台管理模块,与所述服务总线模块相连,用于对企业服务总线的相关配置进行管理;企业服务总线还包括:规则服务模块,与所述服务总线模块相连,用于对企业服务总线进行业务规则和业务流程能力扩展;规则服务模块包括:业务规则单元,存放一组准确凝练的规则语句,用于描述、约束及控制业务的结构、运作等,是应用程序中的一段业务逻辑。是一组封装好的根据不同业务需求预先用XML的<Conditons>、<Consequence>节点写好的If--Then句式,而里面嵌入java代码作为一种业务逻辑判断语句和执行语句;策略规则单元,存放一组业务决策和战略,是一段具体的业务执行指令。这是预先设定好的控制指令对象,包括各种符合服务总线模块100的格式化消息指令,包括报警信息指令、短信信息指令、发布信息指令、设备控制信息指令等。规则引擎单元,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。本专利技术采用了drools实现规则引擎单元,通过服务总线模块100传递过来的消息的分类会在drools中调用不同的存储在业务规则单元中的规则语句进行逻辑判断,从而在策略规则单元中找到符合逻辑判断结果的业务执行指令进行最终的业务决策——向服务总线模块100发送具体的格式化消息指令,服务总线模块100会依据不同的格式化消息指令最终通过服务接出单元130向指定的目的地(其他应用系统或实际的输出设备)发送消息。在本专利技术中,对传统企业服务总线(服务总线模块)进行规则服务模块扩展至关重要的原则是:(1)业务规则单元描述与业务相关的操作规范、管理章程、规章制度、行业标准等;(2)通过策略规则单元形式化地描述业务规则相应的决策和战略;(2)通过规则引擎单元分离工作流程和业务规则,匹配策略规则进行业务执行指令下发。在这个过程中,这三个原则贯穿始终。分离工作流程和业务规则的目的在于将关键的业务判断规则和业务事件响应提取出来,置于系统的公共部位(业务服务),供不同的应用程序工作流程使用,并且便于维护和管理。这是本专利技术得以顺利进行的前提。形式化地描述业务规则的目的则是将业务规则以一种能够被规则引擎处理的形式描述和表示,使业务规则可被运算化,使应用程序可以按照即定的策略规则也就是既定的决策和战略进行相应的处理。本专利技术依托以下三个步骤通过规则服务模块对传统企业服务总线(服务总线模块)进行扩展:(1)使用决策表提取规则(业务规则单元中的提取规则语句)在本专利技术中首先要解决的问题是明确企业服务总线(服务总线模块)中有哪些规则以及对应的业务判定。商业事务中条件元素的集合构成规则,规则决定判定和反馈,在散乱的企业业务中初步提取规则和对应的判定可以使用决策表的方法。规则1规则2……规则条件1条件值条件2……条件j判定1是否反馈判定2……判定k表1“表1”给出的是决策表的一般格式。其中条件将成为系统中的数据域,条件值则是对应的数据,是支持服务管理和维护的对象,同时是应用程序/数据获得系统捕获和提交的对象。若干条件及其值的集合构成规则,是业务服务管理和维护的对象,也是规则引擎处理的根据。判定是业务服务通过规则引擎处理给出的反馈,最后由应用程序/数据获得系统接收。分离商业规则是基于规则引擎开发企业应用的前提,它是本专利技术中的第一步,也是必须和最重要的步骤。如果使用表1提供的决策表方法可以比较方便地分离业务逻辑和商业规则,比较清晰准确地描叙规则,并且具有与基于规则引擎的企业服务模型结合比较紧密的特点,这一特性使其可以对后续开发步骤中问题的解决提供有力支持。(2)分析和解决规则冲突(规则引擎单元分析和解决业务规则冲突)在分离和提取出规则之后,必须考虑规则之间的冲突,这里提到的冲突主要是指由于规则之间同一条件的值域相交而引起的判定歧义。如果规则之间存在冲突而没有得到解决将造成判定结果的不确定,使规则引擎的处理不能正确进行。我们可以通过使用决策网格来侦测规则之间的冲突。具体的做法是将各条规则依次置于网格的行首和列首,网格中的每一个单元表示对应规则的交叉点,用以记录相交的规则或者规则集合为真时,反馈值是否发生歧义。判断规则是否冲突的依据是相交规则所包含条件值域的交集以及各个判定的反馈值,具体流程如“图4”所示:在明确了规则之间的冲突关系之后,自然必须考虑如何解决冲突。在本专利技术中我们提出三种解决规则冲突的方案:(1)优先级模式;(2)队列模式;(3)常用模式。优先级模式:设定规则的优先本文档来自技高网...
一种整合规则引擎的企业服务总线

【技术保护点】
一种整合规则引擎的企业服务总线,其特征是包括服务总线模块,服务总线模块包括:服务接入单元,接入单元基于OSGI组件技术实现的组态设计,把各种不同的接入格式以及各种不同的通信协议、包括TCP/IP、UDP、HTTP、Web?Service、SOAP、JMS封装成组态化组件,提供多种接入格式和协议适配;消息容器单元,用于进行消息路由、服务组合、提供二进制转object、二进制数组转json、json转xml、xml转json等多种不同格式消息的数据映射和数据转换;服务接出单元,用于向其它应用系统发送消息以及对消息格式和协议进行适配,关键技术和实现与服务接入单元相同;服务调解单元,用于隐藏消息格式和协议,将业务逻辑从消息中独立出来,并可以实现本地独立的服务调用;消息路由单元,用于对消息进行路由、过滤、合并和重新排序;数据转换单元,用于对不同格式和传输协议的数据进行转换数据;企业服务总线还包括:平台管理模块,与所述服务总线模块相连,用于对企业服务总线的相关配置进行管理;企业服务总线还包括:规则服务模块,与所述服务总线模块相连,用于对企业服务总线进行业务规则和业务流程能力扩展;规则服务模块包括:业务规则单元,存放一组准确凝练的规则语句,用于描述、约束及控制业务的结构、运作等,是应用程序中的一段业务逻辑;这是一组封装好的根据不同业务需求预先用XML的、节点写好的If??Then句式,而里面嵌入java代码作为一种业务逻辑判断语句和执行语句;策略规则单元,存放一组业务决策和战略,是一段具体的业务执行指令;这是预先设定好的控制指令对象,包括各种符合服务总线模块100的格式化消息指令,包括报警信息指令、短信信息指令、发布信息指令、设备控制信息指令;规则引擎单元,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。...

【技术特征摘要】
1.一种整合规则引擎的企业服务总线,其特征是包括服务总线模块,服务总线模块包括:服务接入单元,服务接入单元基于OSGI组件技术实现的组态设计,把各种不同的接入格式以及各种不同的通信协议、包括TCP/IP、UDP、HTTP、WebService、SOAP、JMS封装成组态化组件,提供多种接入格式和协议适配;消息容器单元,用于进行消息路由、服务组合、提供二进制转object、二进制数组转json、json转xml、xml转json多种不同格式消息的数据映射和数据转换;服务接出单元,用于向其它应用系统发送消息以及对消息格式和协议进行适配,关键技术和实现与服务接入单元相同;服务调解单元,用于隐藏消息格式和协议,将业务逻辑从消息中独立出来,并可以实现本地独立的服务调用;消息路由单元,用于对消息进行路由、过滤、合并和重新排序;数据转换单元,用于对不同格式和传输协议的数据进行转换数据;企业服务总线还包括:平台管理模块,与所述服务总线模块相连,用于对企业服务总线的相关配置进行管理;企业服务总线还包括:规则服务模块,与所述服务总线模块相连,用于对企业服务总线进行业务规则和业务流程能力扩展;规则服务模块包括:业务规则单元,存放一组准确凝练的规则语句,用于描述、约束及控制业务的结构、运作,是应用程序中的一段业务逻辑;这是一组封装好的根据不同业务需求预先用XML的<Conditons>、<Consequence>节点写好的If--Then句式,而里面嵌入java代码作为一种业务逻辑判断语句和执行语句;策略规则单元,存放一组业务决策和战略,是一段具体的业务执行指令;这是预先设定好的控制指令对象,包括各种符合服务总线模块(100)的格式化消息指令,包括报警信息指令、短信信息指令、发布信息指令、设备控制信息指令;规则引擎单元,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策;接收数据输入,解释业务规则,并根据业务规则做出业务决策;以下述三个步骤通过规则服务模块对传统企业服务总线即服务总线模块进行扩展:(1)使用决策表提取规则,即业务规则单元中的提取规则语句:明确服务总线模块中有哪些规则以及对应的业务判定:商业事务中条件元素的集合构成规则,规则决定判定和反馈,在散乱的企业业务中初步提取规则和对应的判定能使用决策表的方法;表1“表1”给出的是决策表的一般格式;其中条件将成为系统中的数据域,条件值则是对应的数据,是支持服务管理和维护的对象,同时是应用程序/数据获得系统捕获和提交的对象;若干条件及其值的集合构成规则,是业务服务管理和维护的对象,也是规则引擎处理的根据;判定是业务服务通过规则引擎处理给出的反馈,最后由应用程序/数据获得系统接收;表2表2中的“achieveTarget”表示条件“完成销售指标”;“saleVolume”表示条件“销售额”;“amortization”表示判定“提成”;“warn”表示判定“提出警告”;“preMonth”表示数据“上月销售额”;在“表2”中,列A描述了应用中所涉及的条件和系统处理后的判定,与各个条件或者判定同行的单元格中的值组合构成列B至列G,列B至列G中的每一列都是通过决策表得以分离的规则,规则通过条件值集合和判定反馈值的形式得以描述;(2)分析和解决规则冲突、即规则引擎单元分析和解决业务规则冲突:在分离和提取出规则之后,必须考虑规则之间的冲突,这里提到的冲突主要是指由于规则之间同一条件的值域相交而引起的判定歧义...

【专利技术属性】
技术研发人员:陶湧
申请(专利权)人:江苏万全科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1