CN112579075B - 同质化系统重构的方法和装置 - Google Patents
同质化系统重构的方法和装置 Download PDFInfo
- Publication number
- CN112579075B CN112579075B CN201910936177.5A CN201910936177A CN112579075B CN 112579075 B CN112579075 B CN 112579075B CN 201910936177 A CN201910936177 A CN 201910936177A CN 112579075 B CN112579075 B CN 112579075B
- Authority
- CN
- China
- Prior art keywords
- reconstructed
- functional
- module
- model
- generate
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004458 analytical method Methods 0.000 claims description 42
- 239000011159 matrix material Substances 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013461 design Methods 0.000 claims description 7
- 238000000265 homogenisation Methods 0.000 abstract description 22
- 238000011161 development Methods 0.000 abstract description 7
- 230000007547 defect Effects 0.000 abstract description 6
- 238000012360 testing method Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 44
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000010230 functional analysis Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000007711 solidification Methods 0.000 description 1
- 230000008023 solidification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了同质化系统重构的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据各个待重构系统的功能矩阵将所述待重构系统进行拆解,生成拆解后的功能模块;对所述功能模块进行整合,生成整合后的功能模型;对所述功能模型进行重构,确定重构后的通用系统。该实施方式解决了现有技术中需要建立多种代码版本分支、需要大量的开发和测试资源去维护、且难以扩展的技术缺陷,进而达到将多条业务线合并,减少维护系统的成本,使得资源的利用率最大化。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种同质化系统重构的方法和装置。
背景技术
通常为了快速响应市场的需求,现有同质化系统在开发时可以采用快速复制一份与待开发系统相匹配的代码来实现新系统的快速上线。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
随着需求的差异增加,分支的版本差异会继续扩大,需要大量的开发和测试资源去维护,并且只能使用新的代码分支满足新需求,代码和系统分支会越来越多,进而存在难以扩展的技术缺陷。
发明内容
有鉴于此,本发明实施例提供一种同质化系统重构的方法和装置,能够解决现有技术中需要建立多种代码版本分支、需要大量的开发和测试资源去维护、且难以扩展的技术缺陷,进而达到将多条业务线合并,减少维护系统的成本,使得资源的利用率最大化。
为实现上述目的,根据本发明实施例的一个方面,提供了一种同质化系统重构的方法,包括:
将各个待重构系统的分析结果进行拆解,生成拆解后的功能模块;
确定各个功能模块对应的模块规则表,利用所述模块规则表生成整合后的功能模型;
对所述功能模型进行重构,确定重构后的通用系统。
可选地,所述分析结果的表现形式,包括以下至少之一:功能矩阵、功能表、功能数据文档;
根据所述分析结果,生成所述功能矩阵;
其中,所述分析结果具备所述待重构系统之间差异点和共同点、和/或根据所述待重构系统之间差异点和共同点确定的将待重构系统进行重构的难度。
可选地,根据待重构系统的分析结果将所述待重构系统进行拆解,生成拆解后的功能模块,包括:
确定对所述待重构系统进行拆解的拆解原则;
根据所述拆解原则和所述待重构系统的分析结果,将所述待重构系统进行拆解,生成拆解后的功能模块。
可选地,确定各个功能模块对应的模块规则表,利用所述模块规则表生成整合后的功能模型,包括:
根据所述每个功能模块,填写所述每个功能模块对应的模块规则表;
根据所述模块规则表,对所述功能模块进行整合,生成整合后的功能模型;
所述模块规则表,至少限定以下之一参数:所述功能模块的对外调用方式、领域模型、边界描述、工作界面描述、对外提供的api服务接口描述、对外提供的配置项参数、对模型进行扩展的描述、提供依赖关系描述。
可选地,根据所述功能模型,对待重构系统进行重构,包括:
根据所述功能模型对应的模块规则表,采用微服务的方式,将所述功能模型进行重构,生成功能服务;
将根据所述功能模块生成的流程模块进行整合,生成可配置化流程服务;
将根据所述功能模块生成的规则模块进行整合,生成可配置化规则集合。
可选地,所述规则模块和流程模块是根据所述分析结果对所述功能模块进行拆解确定的。
可选地,将根据所述功能模块生成的流程模块进行整合,生成可配置化流程服务,包括:
将所述流程模块中的节点封装为流程节点;
根据预设设计模式将所述流程节点固化为流程服务。
可选地,还包括:
确定待重构系统对应的数据库模型;
根据反向工程确定所述数据库模型的实体关系模型;
将所述实体关系模型进行重构,确定与所述重构后的待重构系统匹配的重构数据库。
根据本发明实施例的再一个方面,提供了一种同质化系统重构的装置,包括:
功能模块生成单元,用于根据各个待重构系统的功能矩阵将所述待重构系统进行拆解,生成拆解后的功能模块;
功能模型整合单元,用于对所述功能模块进行整合,生成整合后的功能模型;
通用系统重构单元,用于对所述功能模型进行重构,确定重构后的通用系统。
可选地,所述功能矩阵的生成方式,包括:
对所述待重构系统进行功能分析,生成分析结果;
根据所述分析结果,生成所述功能矩阵;
所述分析结果包括:所述待重构系统之间差异点和共同点,和/或根据所述待重构系统之间差异点和共同点确定的将待重构系统进行重构的难度。
可选地,根据待重构系统的分析结果将所述待重构系统进行拆解,生成拆解后的功能模块,包括:
确定对所述待重构系统进行拆解的拆解原则;
根据所述拆解原则和所述待重构系统的分析结果,将所述待重构系统进行拆解,生成拆解后的功能模块。
可选地,对所述功能模块进行整合,生成整合后的功能模型,包括:
根据所述每个功能模块,填写所述每个功能模块对应的模块规则表;
根据所述模块规则表,对所述功能模块进行整合,生成整合后的功能模型;
所述模块规则表,至少限定以下之一参数:所述功能模块的对外调用方式、领域模型、边界描述、工作界面描述、对外提供的api服务接口描述、对外提供的配置项参数、对模型进行扩展的描述、提供依赖关系描述。
可选地,根据所述功能模型,对待重构系统进行重构,包括:
根据所述功能模型对应的模块规则表,采用微服务的方式,将所述功能模型进行重构,生成功能服务;
将根据所述功能模块生成的流程模块进行整合,生成可配置化流程服务;
将根据所述功能模块生成的规则模块进行整合,生成可配置化规则集合。
可选地,所述规则模块和流程模块是根据所述分析结果对所述功能模块进行拆解确定的。
可选地,将根据所述功能模块生成的流程模块进行整合,生成可配置化流程服务,包括:
将所述流程模块中的节点封装为流程节点;
根据预设设计模式将所述流程节点固化为流程服务。
可选地,还包括:
确定待重构系统对应的数据库模型;
根据反向工程确定所述数据库模型的实体关系模型;
将所述实体关系模型进行重构,确定与所述重构后的待重构系统匹配的重构数据库。
根据本发明实施例的另一个方面,提供了一种同质化系统重构的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明提供的同质化系统重构的方法。
根据本发明实施例的还一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的同质化系统重构的方法。
上述发明中的一个实施例具有如下优点或有益效果:
本发明采用待重构系统进行拆解得到功能模块,再利用所述功能模块进行整合重构的技术手段,解决了现有技术中需要建立多种代码版本分支、需要大量的开发和测试资源去维护、且难以扩展的技术缺陷,进而达到将多条业务线合并,减少维护系统的成本,使得资源的利用率最大化的技术效果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的同质化系统重构的方法的主要流程的示意图;
图2是根据本发明实施例的同质化系统重构的装置的主要模块的示意图;
图3是根据本发明实施例的同质化系统重构的装置的详细模块的示意图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在互联网同质化业务扩张时,往往会伴随多个同质化的系统产生。本方案的目的在于将同一领域的多个同质化的系统进行合并与重构,进而得到一种可以适应所述领域多种业务的通用系统。
在进行同质化系统重构之前首先需要根据同质化目标选定待重构系统;所述同质化目标可以包括业务领域相同等。代码的重复度越高、代码的相似度越高,进而同质化系统重构的难度越低;反之,代码的重复度越低、代码的相似度越低,同质化系统重构的难度越高。
当确定待重构系统后,可以对所述待重构系统的功能进行分析、梳理,生成分析结果。其中,所述分析结果包括:包含所述待重构系统之间差异点和共同点的功能矩阵,和/或根据所述待重构系统之间差异点和共同点,确定将待重构系统进行重构的难度。
具体地,可以采用设计功能矩阵的方式确定待重构系统之间的各个功能和功能之间的差异点。当各个待重构系统之间存在重复的功能时,可以将所述重复的功能提取为公共模块。
功能矩阵的样例图如下:纵坐标是待重构系统,横坐标是领域和模块,中间的单元格为相对共同点的差异点描述,最下面一行是各个模块的共同点。
所述分析结果还可以包括对待重构系统进行合并的难点分析。具体地,根据功能矩阵中各个待重构系统的差异点,逐项确认合并和重构的难点,并记录下来作为后期重构的技术支撑决策点,并且可以确定将所述待重构系统进行合并的可行性。所述功能矩阵的具体实例如下表1所示:
表1功能矩阵的具体实施例
当完成了选定待重构系统,并且对所述待重构系统进行分析之后,就可以对所述待重构系统进行重构。具体地,如下图1是根据本发明实施例的同质化系统重构的方法的主要流程的示意图,如图1所示,
为实现上述目的,根据本发明实施例的一个方面,提供了一种同质化系统重构的方法,包括:
步骤S101、将各个所述待重构系统的分析结果进行拆解,生成拆解后的功能模块;
步骤S102、确定各个功能模块对应的模块规则表,利用所述模块规则表生成整合后的功能模型;
步骤S103、对所述功能模型进行重构,确定重构后的通用系统。
本发明通过采用待重构系统进行拆解得到功能模块,再利用所述功能模块进行整合重构的技术手段,解决了现有技术中需要建立多种代码版本分支、需要大量的开发和测试资源去维护、且难以扩展的技术缺陷,进而达到将多条业务线合并,减少维护系统的成本,使得资源的利用率最大化的技术效果。
可选地,根据待重构系统的分析结果将所述待重构系统进行拆解,生成拆解后的功能模块,包括:
确定对所述待重构系统进行拆解的拆解原则;
根据所述拆解原则和所述待重构系统的分析结果,将所述待重构系统进行拆解,生成拆解后的功能模块。
可选地,所述分析结果的表现形式,包括以下至少之一:功能矩阵、功能表、功能数据文档;
根据所述分析结果,生成所述功能矩阵;
其中,所述分析结果具备所述待重构系统之间差异点和共同点、和/或根据所述待重构系统之间差异点和共同点确定的将待重构系统进行重构的难度。
所述拆解原则包括但不限于以下中的一个或多个:
1)拆解后的功能模块应尽可能保持功能单一、高内聚、低耦合。当各个功能模块存在交互,或性能不能提供便利时可以允许一定的合并。
2)拆解后的功能模块按照所属的领域划分,当功能模块存在跨领域的功能不好划分时,可以将所述跨领域的功能模块设置为独立模块。所述功能模块拆解的初期拆解粒度可以较粗,当无法满足拆分需求时可以再进行细化拆分。
3)在进行拆解的过程中可以采用如下顺序:首先将待重构系统对应的数据库进行分离、然后再将功能模块进行分离。在实际操作中,所述功能模块能否彻底分开,决定了功能模块的边界功能是否彻底划清。功能模块可以根据承担的职责进行一步区分,把耦合程度高的功能菜单放到一起。
4)各个功能模块之间通过服务API进行访问,不允许数据库之间直接关联访问。如有数据库直连操作,则可以考虑API进行访问或者不进行拆分。
5)拆分时需要考虑避免功能模块之间循环/双向/倒置等容易造成死循环和编译依赖的功能模块。
6)当存在有一致性事务要求的系统,则尽量不要拆分另两个功能模块,否则需要考虑分布式的问题。
7)根据拆分后配置文件属性,按领域归类和重组。
8)根据集群部署的策略,考虑并发执行问题和分布式锁。
可选地,确定各个功能模块对应的模块规则表,利用所述模块规则表生成整合后的功能模型,包括:
根据所述每个功能模块,填写所述每个功能模块对应的模块规则表;
根据所述模块规则表,对所述功能模块进行整合,生成整合后的功能模型;
所述模块规则表如下表2所示,提供了系统拆解的模块规格,从多个方面描述了业务模块,为系统的重构提供依据,至少限定以下之一参数:所述功能模块的对外调用方式、领域模型、边界描述、工作界面描述、对外提供的api服务接口描述、对外提供的配置项参数、对模型进行扩展的描述、提供依赖关系描述。
其中,上述参数的具体的说明如下:
1)对外调用方式是指用于描述功能模块的对外调用方式,比如可以rest服务,rpc服务等形式,进而达到方便使用者参考的技术效果。
2)领域模型是指用于描述该功能模块的业务领域模型,包括所有的属性及其类型,业务操作方法。
3)边界是指该业务模块与其他业务领域的边界描述,用于区分于其他业务领域的能力,使功能模块的划分更加合理。
4)工作界面是指该功能模块的工作界面描述,便于了解总体模块的交互界面。
5)API服务是指对外提供的api服务接口描述,方便使用者查阅。
6)配置项是指该模块对外提供的配置项参数,用于控制模块的行为。
7)模型扩展用于对模型进行扩展的描述,方便调用者扩展。
8)依赖的服务是指提供依赖关系描述,方便用户使用和理解依赖的其他的服务。
表2模块规则表
根据待重构系统的分析结果将所述待重构系统进行拆解,生成拆解后的功能模块的同时,还包括:
对所述功能模块进行拆解,进而确定规则模块和流程模块。
可选地,还包括:
确定待重构系统对应的数据库模型;
根据反向工程确定所述数据库模型的实体关系模型;
将所述实体关系模型进行重构,确定与所述重构后的待重构系统匹配的重构数据库。
其中,功能模型的拆解包括将各个待重构系统对应的数据库模型通过反向工程得到(Entit5-relationship)ER实体关系模型图,在将所述实体关系模型图汇总到一起,其中所述功能模型有字段名称、类型、描述等基本信息。
所述规则模块是由将各个功能模块中的规则进行拆解,然后通过梳理出各个规则,将各个规则进行组合形成一个大的规则,再对所述规则集合进行整合生成规则模块。规则模块主要包括两部分内容:条件判断和动作,所述动作是指在一定条件下做的动作。实际上每个系统都有大量的规则,例如基础的数据校验规则和业务规则等。
通过对所述功能模块进行整合生成整合后的功能模型的技术手段,使得功能模型可以更容易地实现业务扩展,而不会因为一个需求的变化就引起大范围重构。
当待重构系统拆解完成后,可以通过将相同业务/领域的功能模块合并起来,并实现抽象,进而可以结合数据库模型,形成功能模型。
可选地,最直接的生成功能模型的方法是将不同业务/领域的功能模块的公共字段抽取形成基准模型,再根据差异化的字段形成具体的功能模型。
所述数据库模型则可以通过字段合并的方法得到字段的并集。然后再将领域对象划分成不同的领域,形成边界。最终可以通过UML图或ER关系图的形式将提炼结果表示出来。
通常同质化的待重构系统都有一个通用的业务流程,即一条由固定的可以穷举的业务模块组成的较为核心的业务流程,所述业务流程在各个待重构系统具有较强的共性。较多情况下各个待重构系统之间的差异点主要表现为某些节点在特定的业务流程里不存在,或存在一些微小的功能差异。本方案通过获取所述核心的业务流程就可以实现待重构系统的流程整合,并且通过重构后的系统可配置化的手段实现应用在不同场景下的个性化配置。本方案通过建立通用的业务流程,实现主流程的复用,采用允许在不同节点的扩展,从而实现流程复用且支持个性化,达到系统扩展的目标。
将解析待重构系统后得到规则进行进一步的分析和提炼,将各个功能模块对应的规则取并集就可以确定规则集合。所述规则集合可以设置为重构后系统的子集;也可以采用配置手段配置为规则子集,进而达到根据重构系统的需求,自定义规则的参数、规则的执行顺序、规则的范围等。
可选地,根据所述功能模型,对待重构系统进行重构,包括:
根据所述功能模型对应的模块规则表,采用微服务(比如Spring Cloud的REST服务)的方式,将所述功能模型进行重构,生成功能服务;所述功能服务包括:增删改查基础服务和基于基础服务组合而成的业务服务。
将根据所述功能模块生成的流程模块进行整合,生成可配置化流程服务;具体地,可以采用将所述流程模块中的节点封装为流程节点;根据预设设计模式将所述流程节点固化为流程服务的技术手段进行配置。
将根据所述功能模块生成的规则模块进行整合,生成可配置化规则集合。具体地,将规则模块通过规则引擎管理起来,并提供配置界面为管理人员提供配置接口。开发者可以将规则引擎集成到功能模块中,根据配置信息加载不同的规则,从而显示个性化功能。
具体地,将根据所述功能模块生成的流程模块进行整合,生成可配置化流程服务,包括:
将所述流程模块中的节点封装为流程节点;
根据预设设计模式将所述流程节点固化为流程服务。所述流程节点也可以派生出多种个性化的流程节点,通常可以采用模版模式和策略模式等来实现流程服务的固化。
图2是根据本发明实施例的同质化系统重构的装置的主要模块的示意图,如图2所示,提供了一种同质化系统重构的装置200,包括:
功能模块生成单元201,用于根据各个待重构系统的功能矩阵将所述待重构系统进行拆解,生成拆解后的功能模块;
功能模型整合单元202,用于对所述功能模块进行整合,生成整合后的功能模型;
通用系统重构单元203,用于对所述功能模型进行重构,确定重构后的通用系统。
可选地,所述功能矩阵的生成方式,包括:
对所述待重构系统进行功能分析,生成分析结果;
根据所述分析结果,生成所述功能矩阵;
所述分析结果包括:所述待重构系统之间差异点和共同点,和/或根据所述待重构系统之间差异点和共同点确定的将待重构系统进行重构的难度。
可选地,根据待重构系统的分析结果将所述待重构系统进行拆解,生成拆解后的功能模块,包括:
确定对所述待重构系统进行拆解的拆解原则;
根据所述拆解原则和所述待重构系统的分析结果,将所述待重构系统进行拆解,生成拆解后的功能模块。
可选地,对所述功能模块进行整合,生成整合后的功能模型,包括:
根据所述每个功能模块,填写所述每个功能模块对应的模块规则表;
根据所述模块规则表,对所述功能模块进行整合,生成整合后的功能模型;
所述模块规则表,至少限定以下之一参数:所述功能模块的对外调用方式、领域模型、边界描述、工作界面描述、对外提供的api服务接口描述、对外提供的配置项参数、对模型进行扩展的描述、提供依赖关系描述。
可选地,根据所述功能模型,对待重构系统进行重构,包括:
根据所述功能模型对应的模块规则表,采用微服务的方式,将所述功能模型进行重构,生成功能服务;
将根据所述功能模块生成的流程模块进行整合,生成可配置化流程服务;
将根据所述功能模块生成的规则模块进行整合,生成可配置化规则集合。
可选地,所述规则模块和流程模块是根据所述分析结果对所述功能模块进行拆解确定的。
可选地,将根据所述功能模块生成的流程模块进行整合,生成可配置化流程服务,包括:
将所述流程模块中的节点封装为流程节点;
根据预设设计模式将所述流程节点固化为流程服务。
可选地,还包括:
确定待重构系统对应的数据库模型;
根据反向工程确定所述数据库模型的实体关系模型;
将所述实体关系模型进行重构,确定与所述重构后的待重构系统匹配的重构数据库。
图3是根据本发明实施例的同质化系统重构的装置的详细模块的示意图;
所述同质化系统重构的装置300,包括:
系统分析单元304,用于对现有的待重构系统进行分析,通过分析对比找出功能差异点,形成功能矩阵,并论证合并的可行性;
功能模块生成单元301,用于根据功能矩阵对系统和数据库模型进行拆解,形成功能模块;
功能模型整合单元302,用于根据拆解模型进行功能合并和提炼产生合理的功能模型、流程集合、规则集合;
通用系统重构单元303,用于根据已经定义好的模型、流程、规则等进行系统改造。
具体地,在系统分析单元304中,主要执行的步骤包括:
S3041、根据同质化目标选定待重构系统;
S3042、对所述待重构系统进行功能分析,生成分析结果。
在功能模块生成单元301中,主要执行的步骤包括:
S3011、根据功能矩阵拆解待重构系统,生成功能模块;
S3012、根据功能模块,拆解数据库;
S3013、根据功能模块,拆解业务规则。
在功能模型整合单元302中,主要执行的步骤包括:
S3021、对所述功能模块进行整合生成整合后的功能模型;
S3022、根据业务规则,生成规则集合;
S3023、根据业务流程,生成流程集合。
在通用系统重构单元303中,主要执行的步骤包括:
S3031、将所述功能模型进行重构生成功能服务;
S3032、将流程模块进行整合,生成流程服务;
S3033、将规则模块进行整合,生成规则集合。
图4示出了可以应用本发明实施例的同质化系统重构方法或同质化系统重构装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的同质化系统重构方法一般由服务器405执行,相应地,同质化系统重构装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的终端设备的计算机系统500的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括发送单元、获取单元、确定单元和第一处理单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,发送单元还可以被描述为“向所连接的服务端发送图片获取请求的单元”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
将各个待重构系统的分析结果进行拆解,生成拆解后的功能模块;
确定各个功能模块对应的模块规则表,利用所述模块规则表生成整合后的功能模型;
对所述功能模型进行重构,确定重构后的通用系统。
根据本发明实施例的技术方案,可以达到如下有益效果:
本发明采用待重构系统进行拆解得到功能模块,再利用所述功能模块进行整合重构的技术手段,解决了现有技术中需要建立多种代码版本分支、需要大量的开发和测试资源去维护、且难以扩展的技术缺陷,进而达到将多条业务线合并,减少维护系统的成本,使得资源的利用率最大化。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种同质化系统重构的方法,其特征在于,包括:
将各个待重构系统的分析结果进行拆解,生成拆解后的功能模块;
确定各个功能模块对应的模块规则表,利用所述模块规则表生成整合后的功能模型;
对所述功能模型进行重构,确定重构后的通用系统;
所述对所述功能模型进行重构,确定重构后的通用系统,包括:
根据所述功能模型对应的模块规则表,采用微服务的方式,将所述功能模型进行重构,生成功能服务;
将根据所述功能模块生成的流程模块进行整合,生成可配置化流程服务;
将根据所述功能模块生成的规则模块进行整合,生成可配置化规则集合;
将所述功能服务、可配置化流程服务和可配置化规则集合进行组合,生成重构后的通用系统。
2.根据权利要求1所述的方法,其特征在于,所述分析结果的表现形式,包括以下至少之一:功能矩阵、功能表、功能数据文档;
根据所述分析结果,生成所述功能矩阵;
其中,所述分析结果具备所述待重构系统之间差异点和共同点、和/或根据所述待重构系统之间差异点和共同点确定的将待重构系统进行重构的难度。
3.根据权利要求2所述的方法,其特征在于,根据待重构系统的分析结果将所述待重构系统进行拆解,生成拆解后的功能模块,包括:
确定对所述待重构系统进行拆解的拆解原则;
根据所述拆解原则和所述待重构系统的分析结果,将所述待重构系统进行拆解,生成拆解后的功能模块。
4.根据权利要求3所述的方法,其特征在于,确定各个功能模块对应的模块规则表,利用所述模块规则表生成整合后的功能模型,包括:
根据所述每个功能模块,填写所述每个功能模块对应的模块规则表;
根据所述模块规则表,对所述功能模块进行整合,生成整合后的功能模型;
所述模块规则表,至少限定以下之一参数:所述功能模块的对外调用方式、领域模型、边界描述、工作界面描述、对外提供的api服务接口描述、对外提供的配置项参数、对模型进行扩展的描述、提供依赖关系描述。
5.根据权利要求1所述的方法,其特征在于,所述规则模块和流程模块是根据所述分析结果对所述功能模块进行拆解确定的。
6.根据权利要求1所述的方法,其特征在于,将根据所述功能模块生成的流程模块进行整合,生成可配置化流程服务,包括:
将所述流程模块中的节点封装为流程节点;
根据预设设计模式将所述流程节点固化为流程服务。
7.根据权利要求1所述的方法,其特征在于,还包括:
确定待重构系统对应的数据库模型;
根据反向工程确定所述数据库模型的实体关系模型;
将所述实体关系模型进行重构,确定与所述重构后的通用系统匹配的重构数据库。
8.一种同质化系统重构的装置,其特征在于,包括:
功能模块生成单元,用于根据各个待重构系统的功能矩阵将所述待重构系统进行拆解,生成拆解后的功能模块;
功能模型整合单元,用于确定各个功能模块对应的模块规则表,利用所述模块规则表生成整合后的功能模型;
通用系统重构单元,用于对所述功能模型进行重构,确定重构后的通用系统;
通用系统重构单元,进一步用于根据所述功能模型对应的模块规则表,采用微服务的方式,将所述功能模型进行重构,生成功能服务;将根据所述功能模块生成的流程模块进行整合,生成可配置化流程服务;将根据所述功能模块生成的规则模块进行整合,生成可配置化规则集合;将所述功能服务、可配置化流程服务和可配置化规则集合进行组合,生成重构后的通用系统。
9.一种同质化系统重构的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910936177.5A CN112579075B (zh) | 2019-09-29 | 2019-09-29 | 同质化系统重构的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910936177.5A CN112579075B (zh) | 2019-09-29 | 2019-09-29 | 同质化系统重构的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579075A CN112579075A (zh) | 2021-03-30 |
CN112579075B true CN112579075B (zh) | 2024-05-17 |
Family
ID=75111120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910936177.5A Active CN112579075B (zh) | 2019-09-29 | 2019-09-29 | 同质化系统重构的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579075B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646040A (zh) * | 2012-04-19 | 2012-08-22 | 贾志东 | 基于功件和功件树的软件生成方法及装置 |
CN103699750A (zh) * | 2013-12-26 | 2014-04-02 | 北京控制工程研究所 | 基于目标分析的卫星控制系统可重构性建模与评价方法 |
CN104142825A (zh) * | 2014-07-08 | 2014-11-12 | 北京彩云动力教育科技有限公司 | 一种产品的模块化开发方法及系统 |
CN104239037A (zh) * | 2014-08-25 | 2014-12-24 | 中国电子科技集团公司第二十九研究所 | 一种业务功能可重构的软件框架 |
CN106126204A (zh) * | 2016-06-15 | 2016-11-16 | 中邮建技术有限公司 | 一种基于模块化设计的信息系统迭代式扩展开发方法 |
CN106775632A (zh) * | 2016-11-21 | 2017-05-31 | 中国科学院遥感与数字地球研究所 | 一种业务流程可灵活扩展的高性能地理信息处理方法及系统 |
JP2018097440A (ja) * | 2016-12-09 | 2018-06-21 | 株式会社ケイティーエス | アプリケーションの制御装置 |
-
2019
- 2019-09-29 CN CN201910936177.5A patent/CN112579075B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646040A (zh) * | 2012-04-19 | 2012-08-22 | 贾志东 | 基于功件和功件树的软件生成方法及装置 |
CN103699750A (zh) * | 2013-12-26 | 2014-04-02 | 北京控制工程研究所 | 基于目标分析的卫星控制系统可重构性建模与评价方法 |
CN104142825A (zh) * | 2014-07-08 | 2014-11-12 | 北京彩云动力教育科技有限公司 | 一种产品的模块化开发方法及系统 |
CN104239037A (zh) * | 2014-08-25 | 2014-12-24 | 中国电子科技集团公司第二十九研究所 | 一种业务功能可重构的软件框架 |
CN106126204A (zh) * | 2016-06-15 | 2016-11-16 | 中邮建技术有限公司 | 一种基于模块化设计的信息系统迭代式扩展开发方法 |
CN106775632A (zh) * | 2016-11-21 | 2017-05-31 | 中国科学院遥感与数字地球研究所 | 一种业务流程可灵活扩展的高性能地理信息处理方法及系统 |
JP2018097440A (ja) * | 2016-12-09 | 2018-06-21 | 株式会社ケイティーエス | アプリケーションの制御装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112579075A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109086409B (zh) | 微服务数据处理方法、装置、电子设备及计算机可读介质 | |
US7991800B2 (en) | Object oriented system and method for optimizing the execution of marketing segmentations | |
CN107491382B (zh) | 日志输出方法和装置 | |
CN111767157A (zh) | 基于服务网格的请求处理方法和装置 | |
CN107368407B (zh) | 信息处理方法和装置 | |
CN112947919A (zh) | 构建业务模型和处理业务请求的方法和装置 | |
CN113157271A (zh) | 业务处理的方法和装置 | |
US9632837B2 (en) | Systems and methods for system consolidation | |
CN113672671B (zh) | 一种实现数据加工的方法和装置 | |
CN107729394A (zh) | 基于Hadoop集群的数据集市管理系统及其使用方法 | |
CN110764769B (zh) | 处理用户请求的方法和装置 | |
CN112579075B (zh) | 同质化系统重构的方法和装置 | |
US20230306026A1 (en) | Database query performance improvement | |
US11960488B2 (en) | Join queries in data virtualization-based architecture | |
CN114237765B (zh) | 功能组件处理方法、装置、电子设备和介质 | |
CN112416865A (zh) | 基于大数据的文件处理方法和装置 | |
CN111736807A (zh) | 租户功能定制方法、装置及基于租户的办公系统 | |
CN112988857A (zh) | 一种业务数据的处理方法和装置 | |
CN110909269A (zh) | 一种日志上报的方法和装置 | |
US20230315901A1 (en) | System and Method for Exchange of Data without Sharing Personally Identifiable Information | |
CN111723088B (zh) | 一种推送汇总层表的方法和装置 | |
CN117896380B (zh) | 用于云考试的高并发信息处理方法、系统和装置 | |
US20230244719A1 (en) | Graph Data Structure Edge Profiling in MapReduce Computational Framework | |
CN109446183B (zh) | 全局防重的方法和装置 | |
CN112862510A (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 |