一种业务组件管理系统及其方法

xiaoxiao2020-10-23  12

一种业务组件管理系统及其方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别是指一种业务组件管理系统及其方法。
【背景技术】
[0002]目前JAVA软件编程中采用的比较多的方式是面向对象,JAVA项目中有比较多的SERVICE。在信息万变的时代,需求的变更往往比开发快。一个软件可能刚开发完,由于需求变更,设计也要变化,对应的SERVICE也发生变化,导致和此SERVICE有依赖关系的SERVICE都要调整,这时需要开发人员修改代码、单元测试、发布、集成测试、验证、上线,过程很长,并且风险大,代码是人工修改需要测试、检测都非常的不好控制。
[0003]针对该问题,现有技术中SERVICE之间的调用采用接口的方式依赖注入,减少SERVICE之间的耦合度,但是并没有完全的去掉耦合。另外,市面上采用工作流的方式解决一部分需求变更,主要是解决单个对象状态的变更;另一种是采用构建的方式,这种方式可以对于业务重新构建,但工作量大,构建的项目没有分层,不能做分布式部署。

【发明内容】

[0004]有鉴于此,本发明的目的在于提出一种业务组件管理系统及其方法,能够使业务组件之间、SERVICE之间实现零耦合。
[0005]基于上述目的本发明提供的业务组件管理系统,包括组件管理子系统、业务流程定义子系统、业务API流程配置子系统、业务流程发布子系统和业务组件流程解析子系统,所述组件管理子系统、所述业务流程定义子系统分别与所述业务API流程配置子系统相连,所述业务API流程配置子系统还分别与所述业务流程发布子系统、所述业务组件流程解析子系统相连。
[0006]可选地,所述组件管理子系统维护业务组件部署信息、业务组件注册、系统组件注册;其中,所述的业务组件部署信息是对组件部署的物理地址进行的描述,包括机器IP、端口、部署路径、状态、包名;所述的业务组件注册分为四类,分别是组件定义、组件中服务类定义、组件中方法描述和组件数据资源定义;所述的系统组件注册包括定义SPRING事务管理、数据库连接管。
[0007]进一步地,所述组件定义包括创建组件ID,装载工厂,内、外调用方式和地址,所述的组件中服务类定义包括服务类ID、错误代码、描述、装载工厂、类路径,所述的组件中方法描述包括方法名和参数格式。
[0008]可选地,所述的业务流程定义子系统是用于定义项目业务组件中业务对象流程、流程分入口和过程。
[0009]可选地,所述的业务API流程配置子系统的入口流程配置有初始化值和业务检测信息功能,流程类型分为入口、正流程、逆流程和修改流程四种方式。
[0010]可选地,所述的业务流程发布子系统用于发布业务流程,每次流程修改增加流程版本控制,修改前记录备份,最新记录版本号加一;通过版本号控制和发布最新的流程;在发布前先经过自动测试,测试方式分自动和手动,该自动测试是先由发布人员导入测试源数据,根据源数据通过流程定义自动执行,将结果展示出来;该手动测试是针对单个业务流程测试。
[0011]可选地,所述业务组件流程解析子系统根据接收客户端发送的信息查找配置信息,再根据配置信息解析API调用信息,而后调用组件触发API发送信息。
[0012]进一步地,所述的业务组件管理系统的管理方法包括:
[0013]第一步,所述组件管理子系统维护业务组件部署信息、业务组件注册和系统组件注册;
[0014]第二步,所述业务流程定义子系统定义项目业务组件中业务对象流程、流程分入口和过程;
[0015]第三步,所述业务API流程配置子系统的入口流程配置初始化值和业务检测信息;
[0016]第四步,所述业务流程发布子系统发布所述业务API流程配置子系统的流程配置信息。
[0017]进一步地,所述业务组件管理系统处理客户端请求的方法包括:
[0018]第一步,所述业务组件流程解析子系统接收客户端发送的信息;
[0019]第二步,所述业务组件流程解析子系统通过接收的单据类型、节点到所述的业务API流程配置子系统中获取流程配置信息,然后将动态获取数据源JSON格式转成MAP对象,并且循环配置信息;
[0020]第三步,所述业务组件流程解析子系统基于JAVA的动态语言机制,通过动态语言模板配置信息,根据取值对照关系获取对象类型常量、JAVASCRIPT变量、JVM, CACHE对应的数值;
[0021]第四步,所述业务组件流程解析子系统从所述业务API流程配置子系统中获取对应业务组件API流程配置集合,并循环业务组件API流程配置集合;
[0022]第五步,所述业务组件流程解析子系统检测API入口条件是否满足;
[0023]第六步,所述业务组件流程解析子系统获取API调用的参数格式JSON以及参数取值对照关系JSON ;
[0024]第七步,所述业务组件流程解析子系统将参数取值对照关系JSON转成MAP,参数格式JSON转成MAP对象;
[0025]第八步,所述业务组件流程解析子系统默认取参数格式MAP对象KEY为空字符串的对象,获取参数格式对象属性;
[0026]第九步,所述业务组件流程解析子系统判断是否有嵌套KEY,如有则进行步骤十,若没有则直接进行步骤十一;
[0027]第十步,所述业务组件流程解析子系统根据嵌套KEY重新获取参数格式对象属性,根据数据源KEY获取数据源对应数据;
[0028]第十一步,所述业务组件流程解析子系统获取参数解析方式,判断当前解析条件;
[0029]第十二步,所述业务组件流程解析子系统循环取值处理对照关系MAP对象,获取取值对照关系对象类型常量、JAVASCRIPT变量、JVM, CACHE对应的数值;
[0030]第十三步,所述业务组件流程解析子系统通过JAVA反射方法获取API方法的注解,通过注解和返回的参数格式,生成JAVA调用参数的JSON格式;
[0031]第十四步,所述业务组件流程解析子系统根据调用协议配置封装调用对象;
[0032]第十五步,所述业务组件流程解析子系统采用消息队列异步发送处理后的所述配置封装调用对象。
[0033]从上面所述可以看出,本发明提供的业务组件管理系统及其方法,通过组件管理子系统、业务流程定义子系统分别与业务API流程配置子系统相连,业务API流程配置子系统还分别与业务流程发布子系统、业务组件流程解析子系统相连。从而,本发明所述的业务组件管理系统及其方法可实现业务组件之间、SERVICE之间都是零耦合,同时业务组件可以分布式部署,也可以整体部署。
【附图说明】
[0034]图1为本发明实施例一种业务组件管理系统的结构示意图;
[0035]图2为本发明实施例一种业务组件管理方法的流程示意图;
[0036]图3为本发明实施例业务组件管理系统处理客户端请求的方法流程示意图。
【具体实施方式】
[0037]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
[0038]参阅图1所示,为本发明实施例一种业务组件管理系统的结构示意图,所述的业务组件管理系统包括组件管理子系统101、业务流程定义子系统102、业务API流程配置子系统103、业务流程发布子系统104和业务组件流程解析子系统105。其中,组件管理子系统101、业务流程定义子系统102分别与业务API流程配置子系统103相连。业务API流程配置子系统103还分别与业务流程发布子系统104、业务组件流程解析子系统105相连。
[0039]作为本发明的一个实施例,所述组件管理子系统101可以进行维护业务组件部署信息、业务组件注册、系统组件注册 。其中,所述的业务组件部署信息是对组件部署的物理地址进行的描述,包括机器IP、端口、部署路径、状态、包名,此信息在业务组件注册中会被使用。所述的业务组件注册可以分为四类,分别是组件定义、组件中服务类定义、组件中方法描述和组件数据资源定义。该组件定义包括创建组件ID,装载工厂,内、外调用方式(可以选择调用协议)和地址。该组件中服务类定义包括服务类ID,错误代码,描述,装载工厂,类路径。该组件中方法描述包括方法名、参数格式。该组件数据资源定义包括资源服务类ID。所述的系统组件注册用于定义第三分组件,包括SPRING事务管理、数据库连接管。
[0040]所述业务流程定义子系统102是用于定义项目业务组件中业务对象流程、流程分入口、过程。另外,所述的业务API流程配置子系统103的入口流程配置有初始化值和业务检测信息功能,流程类型分为入口、正流程、逆流程和修改流程四种方式。需要说明的是每种方式中流程的进入能增加动态条件的检测和判断,每种方式流程能通过不同协议方式(HTTP\HTTPS\WEB SERVICE\SOCKET\RMI\MSG)调用自己组件API或其它组件API,每种方式能调用N个组件API,每个调用可以单独增加进入条件判断;所述业务API流程配置子系统还可以配置调用成功判断控制。
[0041]所述的业务流程发布子系统104可以用于发布业务流程。每次流程修改增加流程版本控制,修改前记录备份,最新记录版本号加一;通过版本号控制和发布最新的流程;在发布前先经过自动测试,测试方式分自动和手动,自动先由发布人员导入测试源数据,根据源数据通过流程定义自动执行,将结果展示出来,如全部通过则在不同环境(开发、测试、验证、生产)导入、导出、同步;手动是针对单个业务流程测试;测试接口能通过邮件的方式放送,或者配置成测试通过后自动发布到其它环境。
[0042]所述业务组件流程解析子系统105包括客户端、解析、调用三个过程;客户端是每个业务组件服务中触发点,客户端发送相关信息至业务组件流程解析系统中,根据接收信息查找相关配置信息,再根据配置信息解析API调用信息,而后调用组件触发API发送信肩、O
[0043]参阅图2所示,为本发明实施例一种业务组件管理方法的流程示意图,所述业务组件管理方法包括步骤:
[0044]步骤201,组件管理子系统101维护业务组件部署信息、业务组件注册和系统组件注册。
[0045]步骤202,业务流程定义子系统102定义项目业务组件中业务对象流程、流程分入口和过程。
[0046]步骤203,业务API流程配置子系统103的入口流程配置初始化值和业务检测信肩、O
[0047]在实施例中,业务API流程配置子系统103的流程类型分为入口、正流程、逆流程、修改流程四种方式。较佳地,每种方式中流程的进入能增加动态条件的检测和判断,每种方式流程能通过不同协议方式调用自己组件API或其它组件API,每种方式能调用N个组件API,其中,NS I。每个调用能单独增加进入条件判断。所述业务API流程配置子系统103还配置调用成功判断控制。
[0048]步骤204,业务流程发布子系统104发布业务API流程配置子系统103的流程配置信息。在实施例中,业务流程发布子系统104可以将业务API流程配置子系统103的流程配置信息发布到一个运行的环境当中。
[0049]作为本发明的另一个实施例,如图3所示,所述业务组件管理方法包括步骤:
[0050]步骤301,业务组件流程解析子系统105接收客户端发送的信息。
[0051]其中,该接收的信息包括调用的数据源JSON (当前业务数据)、单据类型和节点。
[0052]步骤302,业务组件流程解析子系统105通过该单据类型、节点到所述的业务API流程配置子系统103中获取流程配置信息,然后将动态获取数据源JSON格式转成MAP对象,并且循环配置信息。
[0053]步骤303,业务组件流程解析子系统105基于JAVA的动态语言机制,通过动态语言模板配置信息,根据取值对照关系获取对象类型常量、JAVASCRIPT变量、JVM、CACHE对应的数值。
[0054]其中,对象类型常量为固定值JAVASCRIPT变量通过动态获取数据源获取;JVM通过API获取;CACHE通过缓存获取对应值,解析成动态语言的方法,并执行来检测入口条件。
[0055]步骤304,业务组件流程解析子系统105从业务API流程配置子系统103中获取对应业务组件API流程配置集合,并循环业务组件API流程配置集合。
[0056]步骤305,业务组件流程解析子系统105检测API入口条件是否满足。
[0057]作为本发明的一个实施例,业务组件流程解析子系统105检测API入口条件是基于JAVA的动态语言机制,通过动态语言模板配置信息,根据取值对照关系获取对象类型常量、JAVASCRIPT变量、JVM、CACHE对应的数值;其中,对象类型常量为固定值,变量通过动态获取数据源获取,JVM通过API获取,CACHE通过缓存获取对应值,解析成动态语言的方法,并执行来,返回I表示满足,O便是不满足,不满足处理下一个循环,满足继续执行。
[0058]步骤306,业务组件流程解析子系统105获取API调用的参数格式JSON以及参数取值对照关系JSON。
[0059]步骤307,业务组件流程解析子系统105将参数取值对照关系JSON转成MAP,参数格式JSON转成MAP对象。
[0060]其中,对照关系里有变量类型(常量、JAVASCRIPT变量、JVM、CACHE)、调用协议、值(根据协议不同存放不同值)、编码格式、动态语言类型(JAVASCRIPT)、默认值。
[0061]步骤308,业务组件流程解析子系统105默认取参数格式MAP对象KEY为空字符串的对象,获取参数格式对象属性。
[0062]所述的参数格式对象属性包括:参数封装类型、参数格式开始符、参数格式结束符、中间分割符、参数解析前模板、解析方式、嵌套KEY、数据源KEY、解析条件;其中,参数封装类型包括对象、集合,中间分割符对集合有效,解析方式包括固定行、根据参数封装类型、KEY值设置。
[0063]步骤309,业务组件流程解析子系统105判断是否有嵌套KEY,如有则进行步骤310,若没有则直接进行步骤311。
[0064]步骤310,业务组件流程解析子系统105根据嵌套KEY重新获取参数格式对象属性,根据数据源KEY获取数据源对应数据。
[0065]步骤311,业务组件流程解析子系统105获取参数解析方式,判断当前解析条件。
[0066]其中,业务组件流程解析子系统105获取参数解析方式,如是固定或参数封装类型是集合,集合处理进入循环。循环中包括固定行数,目前解析规则中数据源可以是是对象、集合、对象中嵌套集合,对象中嵌套集合对象再嵌套(层次不限)),解析后对象可以是对象、集合(对象个数可以指定数据源中的任何对象(包括嵌套的)或是固定个数)、对象中嵌套集合,对象中嵌套集合对象再嵌套(层次不限))。
[0067]在实施例中,业务组件流程解析子系统105判断当前解析条件是基于JAVA的动态语言机制,通过动态语言模板配置信息,根据取值对照关系获取对象类型常量、JAVASCRIPT变量、JVM, CACHE对应的数值;其中,对象类型常量为固定值,变量通过动态获取数据源获取,JVM通过API获取,CACHE通过缓存获取对应值,解析成动态语言的方法并执行,返回I表示满足,O便是不满足,不满足则重新执行步骤311,满足继续执行步骤312。
[0068]步骤312,业务组件流程解析子系统105循环取值处理对照关系MAP对象,获取取值对照关系对象类型常量、JAVASCRIP T变量、JVM, CACHE对应的数值。
[0069]其中,对象类型常量为固定值,变量通过动态获取数据源获取,JVM通过API获取,CACHE通过缓存获取。
[0070]较佳地,业务组件流程解析子系统105通过KEY值设置判断是否对每个的KEY值单独配置,如果有则先根据当前循环数据源的行数关联获取当前的KEY,根据取值对照关系对象KEY替换参数解析前模板,然后在执行步骤313 ;如果没有,则直接进行步骤313。
[0071]步骤313,业务组件流程解析子系统105通过JAVA反射方法获取API方法的注解,通过注解和返回的参数格式,生成JAVA调用参数的JSON格式。
[0072]步骤314,业务组件流程解析子系统105根据调用协议配置封装调用对象。如是同步调用JVM,通过JAVA反射直接执行;如是异步(HTTP\RMI\WEB SERVICE)调用,把调用对象存放到消息队列中;目前WEB SERVICE的方式参数调用支持标准类型(STRING\INT\DOUBLE等),不需要序列化的,不支持语言独有的数据类型。
[0073]步骤315,业务组件流程解析子系统105采用消息队列异步发送处理后的所述配置封装调用对象。
[0074]由此可以看出,本发明实现的一种业务组件管理系统及其方法,创造性的通过组件管理子系统、业务流程定义子系统分别与业务API流程配置子系统相连,业务API流程配置子系统还分别与业务流程发布子系统、业务组件流程解析子系统相连;并且,业务API流程配置子系统重复使用业务组件,大大提高了工作效率和业务组件的利用率;还有,API的调用支持同步和异步的方式,对业务组件的API的参数没有特殊要求,传统的接口编程方式中增加注解即可,从而在很大程度上使用起来方便、可实现;与此同时,本发明可以做到业务组件之间、SERVICE之间都是零耦合,而且业务组件可以分布式部署,也可以整体部署;最后,整个所述业务组件管理系统及其方法简便、紧凑,易于实现。
[0075]所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种业务组件管理系统,其特征在于,包括组件管理子系统、业务流程定义子系统、业务API流程配置子系统、业务流程发布子系统和业务组件流程解析子系统,所述组件管理子系统、所述业务流程定义子系统分别与所述业务API流程配置子系统相连,所述业务API流程配置子系统还分别与所述业务流程发布子系统、所述业务组件流程解析子系统相连。2.根据权利要求1所述的系统,其特征在于,所述组件管理子系统维护业务组件部署信息、业务组件注册、系统组件注册;其中,所述的业务组件部署信息是对组件部署的物理地址进行的描述,包括机器IP、端口、部署路径、状态、包名;所述的业务组件注册分为四类,分别是组件定义、组件中服务类定义、组件中方法描述和组件数据资源定义;所述的系统组件注册包括定义SPRING事务管理、数据库连接管。3.根据权利要求2所述的系统,其特征在于,所述组件定义包括创建组件ID,装载工厂,内、外调用方式和地址,所述的组件中服务类定义包括服务类ID、错误代码、描述、装载工厂、类路径,所述的组件中方法描述包括方法名和参数格式。4.根据权利要求1所述的系统,其特征在于,所述的业务流程定义子系统是用于定义项目业务组件中业务对象流程、流程分入口和过程。5.根据权利要求1所述的系统,其特征在于,所述的业务API流程配置子系统的入口流程配置有初始化值和业务检测信息功能,流程类型分为入口、正流程、逆流程和修改流程四种方式。6.根据权利要求1所述的系统,其特征在于,所述的业务流程发布子系统用于发布业务流程,每次流程修改增加流程版本控制,修改前记录备份,最新记录版本号加一;通过版本号控制和发布最新的流程;在发布前先经过自动测试,测试方式分自动和手动,该自动测试是先由发布人员导入测试源数据,根据源数据通过流程定义自动执行,将结果展示出来;该手动测试是针对单个业务流程测试。7.根据权利要求1所述的系统,其特征在于,所述业务组件流程解析子系统根据接收客户端发送的信息查找配置信息,再根据配置信息解析API调用信息,而后调用组件触发API发送信息。8.根据权利要求1至7任意一项所述的系统,其特征在于,所述的业务组件管理系统的管理方法包括: 第一步,所述组件管理子系统维护业务组件部署信息、业务组件注册和系统组件注ΠΠ册; 第二步,所述业务流程定义子系统定义项目业务组件中业务对象流程、流程分入口和过程; 第三步,所述业务API流程配置子系统的入口流程配置初始化值和业务检测信息; 第四步,所述业务流程发布子系统发布所述业务API流程配置子系统的流程配置信肩、O9.根据权利要求8所述的系统,其特征在于,所述业务组件管理系统处理客户端请求的方法包括: 第一步,所述业务组件流程解析子系统接收客户端发送的信息; 第二步,所述业务组件流程解析子系统通过接收的单据类型、节点到所述的业务API流程配置子系统中获取流程配置信息,然后将动态获取数据源JSON格式转成MAP对象,并且循环配置信息; 第三步,所述业务组件流程解析子系统基于JAVA的动态语言机制,通过动态语言模板配置信息,根据取值对照关系获取对象类型常量、JAVASCRIPT变量、JVM, CACHE对应的数值; 第四步,所述业务组件流程解析子系统从所述业务API流程配置子系统中获取对应业务组件API流程配置集合,并循环业务组件API流程配置集合; 第五步,所述业务组件流程解析子系统检测API入口条件是否满足; 第六步,所述业务组件流程解析子系统获取API调用的参数格式JSON以及参数取值对照关系JSON ; 第七步,所述业务组件流程解析子系统将参数取值对照关系JSON转成MAP,参数格式JSON转成MAP对象; 第八步,所述业务组件流程解析子系统默认取参数格式MAP对象KEY为空字符串的对象,获取参数格式对象属性; 第九步,所述业务组件流程解析子系统判断是否有嵌套KEY,如有则进行步骤十,若没有则直接进行步骤十一; 第十步,所述业务组件流程解析子系统根据嵌套KEY重新获取参数格式对象属性,根据数据源KEY获取数据源对应数据; 第十一步,所述业务组件流程解析子系统获取参数解析方式,判断当前解析条件; 第十二步,所述业务组件流程解析子系统循环取值处理对照关系MAP对象,获取取值对照关系对象类型常量、JAVASCRIPT变量、JVM, CACHE对应的数值; 第十三步,所述业务组件流程解析子系统通过JAVA反射方法获取API方法的注解,通过注解和返回的参数格式,生成JAVA调用参数的JSON格式; 第十四步,所述业务组件流程解析子系统根据调用协议配置封装调用对象; 第十五步,所述业务组件流程解析子系统采用消息队列异步发送处理后的所述配置封装调用对象。
【专利摘要】本发明公开了一种业务组件管理系统及其方法,包括组件管理子系统、业务流程定义子系统、业务API流程配置子系统、业务流程发布子系统和业务组件流程解析子系统,所述组件管理子系统、所述业务流程定义子系统分别与所述业务API流程配置子系统相连,所述业务API流程配置子系统还分别与所述业务流程发布子系统、所述业务组件流程解析子系统相连。因此,本发明可实现业务组件之间、SERVICE之间都是零耦合,同时业务组件可以分布式部署,也可以整体部署。
【IPC分类】G06Q10/06, G06F9/44
【公开号】CN104899015
【申请号】CN201410084001
【发明人】夏国庆, 刘荣
【申请人】上海高达星软件系统有限公司
【公开日】2015年9月9日
【申请日】2014年3月7日

最新回复(0)