CN117270819A - 支持单体架构兼容微服务架构的服务设计方法及系统、介质、设备 - Google Patents
支持单体架构兼容微服务架构的服务设计方法及系统、介质、设备 Download PDFInfo
- Publication number
- CN117270819A CN117270819A CN202311540149.4A CN202311540149A CN117270819A CN 117270819 A CN117270819 A CN 117270819A CN 202311540149 A CN202311540149 A CN 202311540149A CN 117270819 A CN117270819 A CN 117270819A
- Authority
- CN
- China
- Prior art keywords
- service
- architecture
- module
- component
- micro
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000013461 design Methods 0.000 title claims abstract description 24
- 230000004044 response Effects 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 20
- 230000008520 organization Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 9
- 230000003068 static effect Effects 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000003384 imaging method Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000178 monomer Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种支持单体架构兼容微服务架构的服务设计方法及系统、介质、设备,其中方法包括:对目标业务系统进行模块化和组件化,得到目标业务系统包含的多个业务模块对应的业务组件;构建组件层与系统层之间的模组支撑层;通过预设站点部署规则将目标业务系统部署为单体架构业务系统或微服务架构业务系统;当目标业务系统为单体架构业务系统时,响应于微服务架构部署请求,针对各业务模块注册相应的业务站点,将业务模块包含的业务组件转入对应的业务站点中,形成包含多个业务站点的微服务架构业务系统。通过本发明,在无需改变业务模块的情况下同时支持单体架构和微服务架构的业务系统,满足了企业在不同阶段对业务系统架构的需求。
Description
技术领域
本发明涉及软件应用架构技术领域,具体涉及一种支持单体架构兼容微服务架构的服务设计方法及系统、介质、设备。
背景技术
OA通常指的是“Office Automation”,是一种办公自动化系统,用于协调和管理办公室的日常工作流程。办公自动化系统的架构主要有单体架构和微服务架构两种。企业信息系统架构的选择需要考虑多个因素,单体架构系统虽然设计简单、易于维护,且具有高稳定性和低故障率,但其扩展性较差,一旦发生故障,整个系统可能会崩溃。相比之下,微服务架构具有良好的扩展性,可以动态地添加或删除服务,降低系统的耦合度。然而,微服务架构的运维成本较高,需要管理多个独立的服务,对管理员要求也较高。在实施国产化OA系统时,存在两种情况:一是企业开始选择单体的OA系统进行实施,但随着业务拓展变得复杂,转向实施微服务架构的OA系统,然而由于两种架构不一致,导致企业需要重新开发相同的业务功能,增加了实施成本;二是企业为了具备良好的扩展性,一开始就选择实施微服务的OA系统,但在企业的二级单位实施微服务的OA系统时,由于资源不足,导致实施变得十分困难。
发明内容
为此,本发明提供一种支持单体架构兼容微服务架构的服务设计方法及系统、介质、设备,旨在解决现有技术中微服务架构和单体架构难以共存兼容的技术问题。
为实现以上目的,本发明采用如下技术方案:
依据本发明第一方面,本发明提供一种支持单体架构兼容微服务架构的服务设计方法,其特征在于,应用于待构建的目标业务系统,所述方法包括:
对所述目标业务系统进行模块化和组件化,得到所述目标业务系统包含的多个业务模块对应的业务组件;
构建组件层与系统层之间的模组支撑层;
通过第一预设站点部署规则将所述目标业务系统部署为单体架构业务系统;或,通过第二预设站点部署规则将所述目标业务系统部署为微服务架构业务系统;
当所述目标业务系统为单体架构业务系统时,响应于微服务架构部署请求,针对各所述业务模块注册相应的业务站点,将所述业务模块包含的业务组件转入对应的业务站点中,形成包含多个业务站点的微服务架构业务系统。
进一步地,所述对所述目标业务站点进行模块化和组件化,包括:
根据第一预设划分规则将所述目标业务站点划分多个业务模块;
根据第二预设划分规则将各所述业务模块划分为多个业务组件;
其中,所述第一预设划分规则为根据所述目标业务站点包含的不同业务功能划分对应的业务模块;所述业务模块包括认证模块、组织模块、发文模块、收文模块、签报模块、会议模块、组织模块以及角色模块中至少之一;
所述第二预设划分规则为将各所述业务模块包含的不同业务资源封装为对应的业务组件;所述业务组件包括前端组件、后端组件、表单组件、视图组件、页面组件、流程组件、后台服务组件、数据源组件、定时任务组件以及前端静态资源组件中至少之一。
进一步地,所述构建组件层和系统层之间的模组支撑层,包括:
通过虚拟路由向各所述业务组件发送封装请求,利用拦截器对所述业务模块对应的多个业务组件进行拦截封装,形成模组支撑层;
其中,所述模组支撑层包括前端引擎、后端引擎、路由引擎、表单引擎、视图引擎、流程引擎、页面引擎、后台服务引擎、数据源引擎、定时任务引擎以及前端静态资源引擎中至少之一。
进一步地,所述通过第一预设站点部署规则将所述目标业务系统部署为单体架构业务系统,包括:
将所述目标业务系统包含的多个业务模块、各所述业务模块对应的业务组件以及所述模组支撑层部署于同一站点,得到可切换微服务架构系统的单体架构业务系统。
进一步地,所述通过第二预设站点部署规则将所述目标业务系统部署为微服务架构业务系统,包括:
针对各所述业务模块注册相应的业务站点,将各所述业务模块对应的业务组件以及所述模组支撑层分别根据不同的业务模块部署于不同站点,得到微服务架构业务系统。
进一步地,所述将所述业务模块包含的业务组件转入对应的业务站点中,包括:
利用所述模组支撑层解析各所述业务站点对应的组件路由信息;
通过虚拟路由,基于所述组件路由信息,将所述业务组件转入对应的业务站点中;
其中,所述组件路由信息用于确定各业务站点对应的多个业务组件。
进一步地,所述通过虚拟路由,基于所述组件路由信息,将所述业务组件转入对应的业务站点中,包括:
利用虚拟路由根据所述组件路由信息向多个所述业务组件转发指定站点转入指令;
各所述业务组件以包的形式从单体架构中导出,并分别导入所述业务模块对应的业务站点中。
依据本发明第二方面,本发明提供一种支持单体架构兼容微服务架构的服务设计系统,所述系统包括:
系统模组化单元,用于对目标业务系统进行模块化和组件化,得到所述目标业务系统包含的多个业务模块对应的业务组件;
支撑层构建单元,用于构建组件层与系统层之间的模组支撑层;
系统部署单元,用于通过第一预设站点部署规则将所述目标业务系统部署为单体架构业务系统;或,通过第二预设站点部署规则将所述目标业务系统部署为微服务架构业务系统;
架构切换单元,用于当所述目标业务系统为单体架构业务系统时,响应于微服务架构部署请求,针对各所述业务模块注册相应的业务站点,将所述业务模块包含的业务组件转入对应的业务站点中,形成包含多个业务站点的微服务架构业务系统。
依据本发明第三方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如本发明第一方面中任一项所述的支持单体架构兼容微服务架构的服务设计方法。
依据本发明第四方面,本发明提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如本发明第一方面中任一项所述的支持单体架构兼容微服务架构的服务设计方法。
本发明采用以上技术方案,至少具备以下有益效果:
通过本发明方案对所述目标业务系统进行模块化和组件化,得到所述目标业务系统包含的多个业务模块对应的业务组件;构建组件层与系统层之间的模组支撑层;通过第一预设站点部署规则将所述目标业务系统部署为单体架构业务系统;或,通过第二预设站点部署规则将所述目标业务系统部署为微服务架构业务系统;当所述目标业务系统为单体架构业务系统时,响应于微服务架构部署请求,针对各所述业务模块注册相应的业务站点,将所述业务模块包含的业务组件转入对应的业务站点中,形成包含多个业务站点的微服务架构业务系统。由此,在单体架构系统上增加微服务框架,将系统拆分为多个微服务构下的功能模块,从而实现单体架构系统和微服务架构系统的无缝衔接。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明一实施例提供的支持单体架构兼容微服务架构的服务设计方法的流程示意图;
图2示出了本发明一实施例提供的系统模组化的结果示意图;
图3示出了本发明一实施例提供的单体架构业务系统的构建示意图;
图4示出了本发明一实施例提供的微服务架构业务系统的构建示意图;
图5示出了本发明一实施例提供的支持单体架构兼容微服务架构的目标业务部署方式的示意图;
图6示出了本发明一实施例提供的支持单体架构兼容微服务架构的服务设计系统的结构示意图;
图7示出了本发明一实施例提供的计算机设备的实体结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
首先对本发明实施例中出现的术语进行解释:
单体架构:一种软件架构,将整个应用程序构建为一个单一的可执行程序或代码库。在单体架构中,所有的功能和组件都被打包到一个单独的单元中,并通过内部的函数和方法进行交互和通信。单体架构OA系统是指在一个组织或企业中,只有一个实例的办公自动化系统,用于管理整个组织的工作流程和信息管理。单体架构OA系统的优点是设计简单、易于实现和维护;资源占用较小、运行速度较快;稳定性较高、故障率较低。然而,它也存在一些缺点,包括扩展性较差,一旦发生故障,整个系统可能会崩溃;功能相对较为单一,无法满足复杂应用的需求;可靠性和安全性需要高度保障,一旦发生问题,后果可能十分严重。
微服务架构:一种软件架构,将应用程序拆分成一组较小的、相互独立的服务。每个服务都运行在自己的进程中,并使用轻量级的通信机制与其他服务交互。微服务架构OA系统是一种使用微服务架构的办公自动化系统,将办公自动化系统不同的功能拆分为多个相互独立的服务,每个服务都可以独立地开发、测试、部署和扩展。微服务架构OA系统的优点是每个服务都专注于单一的业务功能或领域,可以使用不同的编程语言、数据库和技术栈;每个服务都可以独立地开发、测试、部署和扩展,从而使系统更加灵活和可靠;每个服务都可以根据需求进行扩展,而不必对整个应用程序进行扩展,从而实现更好的可伸缩性。然而,它也存在一些缺点,包括需要对系统进行良好的设计和规划,以确保服务之间的协调和通信;需要进行有效的版本控制和服务治理,以确保系统的稳定性和可靠性;需要投入更多的时间和精力进行开发和维护。
站点:Web站点是一个完整的网站系统,包括网站的域名、服务器、应用程序以及相关的数据库和文件系统等。站点是Web开发中的一个比较高层次的概念,用于组织和管理Web应用程序。一个站点通常由多个Web页面、脚本文件、CSS文件、图片、多媒体文件等组成,可以通过Web浏览器访问。
模(模块):由一组相关的组件组成,它们共同实现了某个功能或业务流程。模块是一个高层次的概念,它可以由多个低层次的组件构成。例如,在一个OA系统中,一个“发文管理”模块可以包含“发文单填写”、“发文单审批”、“发文单打印”等多个组件。
组(组件):具有一定独立性的、可重用的、可组合的、可测试的代码单元。是可以被独立部署和使用的,同时它们可以与其它组件组合在一起形成更复杂的模块。在OA系统中,可以将不同的功能组件拆分为不同的组件,例如:表单组件、视图组件、流程组件、后台服务组件,定时任务组件等等。在一个“发文表单”组件可以被用于多个模块中,例如“发文申请流程”、“发文记录管理”等。
本发明实施例提供了一种支持单体架构兼容微服务架构的服务设计方法,如图1所示,至少可以包括以下步骤S101~S104:
步骤S101,对目标业务系统进行模块化和组件化,得到目标业务系统包含的多个业务模块对应的业务组件。
本发明实施例中的目标业务系统可以为基于J2EE架构的待构建的业务系统。首先,可以获取该目标业务系统的业务配置文件信息,业务配置文件信息可以为待构建的目标业务系统所能够执行的业务功能和支撑这些业务功能所需的业务资源。基于目标业务系统的业务功能和业务资源,可以对目标业务系统进行模块化和组件化,即模组化。本发明实施例中的模组化是指通过将目标业务系统分解为多个独立的模块和组件,以实现这些模块和组件的独立开发、测试、部署和维护。同时,通过组合不同的模块和组件,还可以快速构建出新的功能和业务流程,从而提高系统的可扩展性和可重用性,为用户提供更好的体验。
具体地,对目标业务站点进行模块化和组件化,可以根据第一预设划分规则将目标业务站点划分多个业务模块;根据第二预设划分规则将各业务模块划分为多个业务组件。
本发明实施例中,第一预设划分规则为根据目标业务站点包含的不同业务功能划分对应的业务模块;业务模块包括认证模块、组织模块、发文模块、收文模块、签报模块、会议模块、组织模块以及角色模块等;第二预设划分规则为将各业务模块包含的不同业务资源封装为对应的业务组件;业务组件包括前端组件、后端组件、表单组件、视图组件、页面组件、流程组件、后台服务组件、数据源组件、定时任务组件以及前端静态资源组件等。图2为针对一OA站点进行模组化的结果示意图。该OA站点可以执行多个业务功能,各业务功能对应有相应的业务模块。针对每个业务模块需要多个业务资源支撑实现对应的业务功能,即各业务模块包含有多个业务组件,每个业务模块包含的业务组件可能存在重复,多个业务组件组合在一起形成具有业务功能的业务模块。可以理解的是,为了实现业务功能的前端执行和后端执行,需要区分各业务模块在前端和后端部署的组件,分别为前端组件、后端组件。前端组件可以为菜单组件、表单组件、视图组件、前端流程组件、前端资源组件等的组合;后端组件可以为后台服务组件、数据源组件、定时任务组件、数据查询组件、后端流程组件等的组合。本发明实施例针对业务资源进行组件化时,还需要对业务组件进行标识以供区分,具体地,可以将业务组件中的菜单资源抽像成菜单组件,视图资源抽像成视图组件,表单资源抽像成表单组件,流程资源抽像成流程组件,接口服务抽像成后台服务组件,定时器抽像成定时任务组件等。
步骤S102,构建组件层与系统层之间的模组支撑层。
具体地,可以通过虚拟路由向各业务组件发送封装请求,利用拦截器对业务模块对应的多个业务组件进行拦截封装,形成模组支撑层。
也就是说,为了支持单体部署或微服务部署的组件支撑,本发明实施例在系统层与组件层之间添加了一层组件封装,以使其上层组件资源与下层系统层接口无关,使对应业务资源独立为业务组件。模组支撑层可以包括前端引擎、后端引擎、路由引擎、表单引擎、视图引擎、流程引擎、页面引擎、后台服务引擎、数据源引擎、定时任务引擎以及前端静态资源引擎等。需要说明的是,构建目标业务系统,系统架构除上述的业务模块、业务组件和模组支撑层外,还包括基于Java应用程序的开发框架和系统层、Web应用程序容器以及平台容器。其中,开发框架技术可以应用Spring Boot、SpringCloud、SpringMVC、分布式缓存、JWS等;Web应用程序容器库应用Tomcat、Jboss等;平台容器为允许开发人员存储应用程序及其依赖项的可移植的容器,以便轻松部署和运行业务系统,平台容器可应用Docker等。
步骤S103,通过第一预设站点部署规则将目标业务系统部署为单体架构业务系统;或,通过第二预设站点部署规则将目标业务系统部署为微服务架构业务系统。
根据企业实际需求,可以基于单体架构和微服务架构的特有区别,分别构建单体架构或微服务架构的目标业务系统。
如图3所示,为以OA系统为例的单体架构业务系统的构建示意图。针对单体架构的目标业务系统,本发明实施例可以将目标业务系统包含的多个业务模块、各业务模块对应的业务组件以及模组支撑层部署于同一站点,得到可切换微服务架构系统的单体架构业务系统,即基于虚拟路由,将所有的业务模块以及各业务模块对应的业务组件都部署于同一个web站点中运行。由于这些业务模块都存储于同一个系统中,在相互调用时,无需考虑跨进程和跨服务器的问题。
如图4所示,为以OA系统为例的微服务架构业务系统的构建示意图。针对微服务架构的目标业务系统,本发明实施例可以针对各业务模块注册相应的业务站点,将各业务模块对应的业务组件以及模组支撑层分别根据不同的业务模块部署于不同站点,得到微服务架构业务系统。也就是说,微服务架构中包含多个业务站点,针对每个业务模块,需要注册单独的web站点,再分别将每个业务模块中包含的全部业务组件部署于一个web站点中。由此得到包含多个业务站点的微服务架构业务系统。
步骤S104,当目标业务系统为单体架构业务系统时,响应于微服务架构部署请求,针对各业务模块注册相应的业务站点,将业务模块包含的业务组件转入对应的业务站点中,形成包含多个业务站点的微服务架构业务系统。
在企业初始部署的目标业务系统为单体架构业务系统时,在一些实际应用场景下,需要将单体架构转换为微服务架构业务系统。具体地,将单体架构业务系统切换为微服务架构业务系统,可以利用模组支撑层解析各业务站点对应的组件路由信息;通过虚拟路由,基于组件路由信息,将业务组件转入对应的业务站点中。如图5所示,为支持单体架构兼容微服务架构的目标业务部署方式的示意图。在原始的单体架构业务系统中,所有的业务模块部署在同一个业务站点上。当用户向单体架构业务系统发送切换微服务架构请求时,通过模组支撑层解析业务站点对应的组件路由信息,组件路由信息用于确定各业务站点对应的多个业务组件。进而,利用虚拟路由基于组件路由信息将指定站点转入指令转发至单体架构业务系统上的具体的业务组件节点来执行站点转入运作。也就是说,本发明实施例中的业务组件转入站点时,可以利用虚拟路由根据组件路由信息向多个业务组件转发指定站点转入指令;各业务组件以包的形式从单体架构中导出,并分别导入业务模块对应的业务站点中。例如,单体架构业务系统中的收文模块包含有表单组件、视图组件、页面组件、流程组件、后台服务组件、数据源组件、定时任务组件以及前端静态资源组件等业务组件。模组支撑层解析的组件路由信息包含收文模块包含的组件信息,虚拟路由向这些业务组件转发注册好的针对收文站点的转入指令,这些业务组件以包的形式从单体环境中导出,再将导出包导入到微服务环境中对应的收文站点。由此,目标业务系统切换为微服务架构业务系统。需要说明的是,在目标业务系统切换为微服务架构业务系统时,各业务组件内部的结构和情况并没有发生变化,变化的是模组支撑层和虚拟路由的模式。
本发明实施例提供了一种支持单体架构兼容微服务架构的服务设计方法,对目标业务系统进行模块化和组件化,得到目标业务系统包含的多个业务模块对应的业务组件;构建组件层与系统层之间的模组支撑层;通过第一预设站点部署规则将目标业务系统部署为单体架构业务系统;或,通过第二预设站点部署规则将目标业务系统部署为微服务架构业务系统;当目标业务系统为单体架构业务系统时,响应于微服务架构部署请求,针对各业务模块注册相应的业务站点,将业务模块包含的业务组件转入对应的业务站点中,形成包含多个业务站点的微服务架构业务系统。通过本发明,使得企业可以在无需改变业务模块的情况下实施单体架构,同时也可以实施微服务架构的业务系统,满足了企业在不同阶段对信息系统架构的需求,节约开发成本,并提高系统的可扩展性和稳定性。
进一步地,作为图1的具体实现,本发明实施例提供了一种支持单体架构兼容微服务架构的服务设计系统,如图6所示,该系统可以包括:系统模组化单元610、支撑层构建单元620、系统部署单元630以及架构切换单元640。
系统模组化单元610,可以用于对目标业务系统进行模块化和组件化,得到目标业务系统包含的多个业务模块对应的业务组件;
支撑层构建单元620,可以用于构建组件层与系统层之间的模组支撑层;
系统部署单元630,可以用于通过第一预设站点部署规则将目标业务系统部署为单体架构业务系统;或,通过第二预设站点部署规则将目标业务系统部署为微服务架构业务系统;
架构切换单元640,可以用于当目标业务系统为单体架构业务系统时,响应于微服务架构部署请求,针对各业务模块注册相应的业务站点,将业务模块包含的业务组件转入对应的业务站点中,形成包含多个业务站点的微服务架构业务系统。
可选地,系统模组化单元610,还可以用于根据第一预设划分规则将目标业务站点划分多个业务模块;
根据第二预设划分规则将各业务模块划分为多个业务组件;
其中,第一预设划分规则为根据目标业务站点包含的不同业务功能划分对应的业务模块;业务模块包括认证模块、组织模块、发文模块、收文模块、签报模块、会议模块、组织模块以及角色模块中至少之一;
第二预设划分规则为将各业务模块包含的不同业务资源封装为对应的业务组件;业务组件包括前端组件、后端组件、表单组件、视图组件、页面组件、流程组件、后台服务组件、数据源组件、定时任务组件以及前端静态资源组件中至少之一。
可选地,支撑层构建单元620,还可以用于通过虚拟路由向各业务组件发送封装请求,利用拦截器对业务模块对应的多个业务组件进行拦截封装,形成模组支撑层;
其中,模组支撑层包括前端引擎、后端引擎、路由引擎、表单引擎、视图引擎、流程引擎、页面引擎、后台服务引擎、数据源引擎、定时任务引擎以及前端静态资源引擎中至少之一。
可选地,系统部署单元630,还可以用于将目标业务系统包含的多个业务模块、各业务模块对应的业务组件以及模组支撑层部署于同一站点,得到可切换微服务架构系统的单体架构业务系统。
可选地,系统部署单元630,还可以用于针对各业务模块注册相应的业务站点,将各业务模块对应的业务组件以及模组支撑层分别根据不同的业务模块部署于不同站点,得到微服务架构业务系统。
可选地,架构切换单元640,还可以用于利用模组支撑层解析各业务站点对应的组件路由信息;
通过虚拟路由,基于组件路由信息,将业务组件转入对应的业务站点中;
其中,组件路由信息用于确定各业务站点对应的多个业务组件。
可选地,架构切换单元640,还可以用于利用虚拟路由根据组件路由信息向多个业务组件转发指定站点转入指令;
各业务组件以包的形式从单体架构中导出,并分别导入业务模块对应的业务站点中。
需要说明的是,本发明实施例提供的一种支持单体架构兼容微服务架构的服务设计系统所涉及各功能模块的其他相应描述,可以参考图1所示方法的对应描述,在此不再赘述。
基于上述如图1所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述的支持单体架构兼容微服务架构的服务设计方法的步骤。
基于上述如图1所示方法和如图6所示系统的实施例,本发明实施例还提供了一种计算机设备的实体结构图,如图7所示,该计算机设备可以包括通信总线、处理器、存储器和通信接口,还可以包括、输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例所述的支持单体架构兼容微服务架构的服务设计方法的步骤。
所属领域的技术人员可以清楚地了解到,上述描述的系统、装置、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。
另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。
本领域普通技术人员可以理解:所述集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络设备等)在运行所述指令时执行本发明各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM),磁碟或者光盘等各种可以存储程序代码的介质。
或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的计算设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被计算设备的处理器执行时,所述计算设备执行本发明各实施例所述方法的全部或部分步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。
Claims (10)
1.一种支持单体架构兼容微服务架构的服务设计方法,其特征在于,应用于待构建的目标业务系统,所述方法包括:
对所述目标业务系统进行模块化和组件化,得到所述目标业务系统包含的多个业务模块对应的业务组件;
构建组件层与系统层之间的模组支撑层;
通过第一预设站点部署规则将所述目标业务系统部署为单体架构业务系统;或,通过第二预设站点部署规则将所述目标业务系统部署为微服务架构业务系统;
当所述目标业务系统为单体架构业务系统时,响应于微服务架构部署请求,针对各所述业务模块注册相应的业务站点,将所述业务模块包含的业务组件转入对应的业务站点中,形成包含多个业务站点的微服务架构业务系统。
2.根据权利要求1所述的方法,其特征在于,所述对所述目标业务站点进行模块化和组件化,包括:
根据第一预设划分规则将所述目标业务站点划分多个业务模块;
根据第二预设划分规则将各所述业务模块划分为多个业务组件;
其中,所述第一预设划分规则为根据所述目标业务站点包含的不同业务功能划分对应的业务模块;所述业务模块包括认证模块、组织模块、发文模块、收文模块、签报模块、会议模块、组织模块以及角色模块中至少之一;
所述第二预设划分规则为将各所述业务模块包含的不同业务资源封装为对应的业务组件;所述业务组件包括前端组件、后端组件、表单组件、视图组件、页面组件、流程组件、后台服务组件、数据源组件、定时任务组件以及前端静态资源组件中至少之一。
3.根据权利要求1所述的方法,其特征在于,所述构建组件层和系统层之间的模组支撑层,包括:
通过虚拟路由向各所述业务组件发送封装请求,利用拦截器对所述业务模块对应的多个业务组件进行拦截封装,形成模组支撑层;
其中,所述模组支撑层包括前端引擎、后端引擎、路由引擎、表单引擎、视图引擎、流程引擎、页面引擎、后台服务引擎、数据源引擎、定时任务引擎以及前端静态资源引擎中至少之一。
4.根据权利要求1所述的方法,其特征在于,所述通过第一预设站点部署规则将所述目标业务系统部署为单体架构业务系统,包括:
将所述目标业务系统包含的多个业务模块、各所述业务模块对应的业务组件以及所述模组支撑层部署于同一站点,得到可切换微服务架构系统的单体架构业务系统。
5.根据权利要求1所述的方法,其特征在于,所述通过第二预设站点部署规则将所述目标业务系统部署为微服务架构业务系统,包括:
针对各所述业务模块注册相应的业务站点,将各所述业务模块对应的业务组件以及所述模组支撑层分别根据不同的业务模块部署于不同站点,得到微服务架构业务系统。
6.根据权利要求1所述的方法,其特征在于,所述将所述业务模块包含的业务组件转入对应的业务站点中,包括:
利用所述模组支撑层解析各所述业务站点对应的组件路由信息;
通过虚拟路由,基于所述组件路由信息,将所述业务组件转入对应的业务站点中;
其中,所述组件路由信息用于确定各业务站点对应的多个业务组件。
7.根据权利要求6所述的方法,其特征在于,所述通过虚拟路由,基于所述组件路由信息,将所述业务组件转入对应的业务站点中,包括:
利用虚拟路由根据所述组件路由信息向多个所述业务组件转发指定站点转入指令;
各所述业务组件以包的形式从单体架构中导出,并分别导入所述业务模块对应的业务站点中。
8.一种支持单体架构兼容微服务架构的服务设计系统,其特征在于,所述系统包括:
系统模组化单元,用于对目标业务系统进行模块化和组件化,得到所述目标业务系统包含的多个业务模块对应的业务组件;
支撑层构建单元,用于构建组件层与系统层之间的模组支撑层;
系统部署单元,用于通过第一预设站点部署规则将所述目标业务系统部署为单体架构业务系统;或,通过第二预设站点部署规则将所述目标业务系统部署为微服务架构业务系统;
架构切换单元,用于当所述目标业务系统为单体架构业务系统时,响应于微服务架构部署请求,针对各所述业务模块注册相应的业务站点,将所述业务模块包含的业务组件转入对应的业务站点中,形成包含多个业务站点的微服务架构业务系统。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1~7任一项所述的支持单体架构兼容微服务架构的服务设计方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1~7中任一项所述的支持单体架构兼容微服务架构的服务设计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311540149.4A CN117270819A (zh) | 2023-11-20 | 2023-11-20 | 支持单体架构兼容微服务架构的服务设计方法及系统、介质、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311540149.4A CN117270819A (zh) | 2023-11-20 | 2023-11-20 | 支持单体架构兼容微服务架构的服务设计方法及系统、介质、设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117270819A true CN117270819A (zh) | 2023-12-22 |
Family
ID=89208426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311540149.4A Pending CN117270819A (zh) | 2023-11-20 | 2023-11-20 | 支持单体架构兼容微服务架构的服务设计方法及系统、介质、设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117270819A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108279926A (zh) * | 2018-01-10 | 2018-07-13 | 浙江网新恒天软件有限公司 | 一种单体应用微服务化的方法 |
CN112732231A (zh) * | 2021-01-12 | 2021-04-30 | 北京元年科技股份有限公司 | 计算机实现的微服务开发平台的系统和提供微服务的方法 |
CN113835842A (zh) * | 2021-09-28 | 2021-12-24 | 工银科技有限公司 | 同时支持单体架构和微服务架构的服务设计方法和系统 |
CN114244654A (zh) * | 2021-12-20 | 2022-03-25 | 中国平安财产保险股份有限公司 | 一种url的转发方法、装置、设备及计算机存储介质 |
US20220383219A1 (en) * | 2021-09-26 | 2022-12-01 | Beijing Baidu Netcom Science Technology Co., Ltd. | Access processing method, device, storage medium and program product |
CN116107590A (zh) * | 2023-01-17 | 2023-05-12 | 山谷网安科技股份有限公司 | 软件产品开发部署中兼容微服务和单体架构的实现方法及系统 |
-
2023
- 2023-11-20 CN CN202311540149.4A patent/CN117270819A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108279926A (zh) * | 2018-01-10 | 2018-07-13 | 浙江网新恒天软件有限公司 | 一种单体应用微服务化的方法 |
CN112732231A (zh) * | 2021-01-12 | 2021-04-30 | 北京元年科技股份有限公司 | 计算机实现的微服务开发平台的系统和提供微服务的方法 |
US20220383219A1 (en) * | 2021-09-26 | 2022-12-01 | Beijing Baidu Netcom Science Technology Co., Ltd. | Access processing method, device, storage medium and program product |
CN113835842A (zh) * | 2021-09-28 | 2021-12-24 | 工银科技有限公司 | 同时支持单体架构和微服务架构的服务设计方法和系统 |
CN114244654A (zh) * | 2021-12-20 | 2022-03-25 | 中国平安财产保险股份有限公司 | 一种url的转发方法、装置、设备及计算机存储介质 |
CN116107590A (zh) * | 2023-01-17 | 2023-05-12 | 山谷网安科技股份有限公司 | 软件产品开发部署中兼容微服务和单体架构的实现方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107438107B (zh) | 一种微服务架构中后台服务的调用方法及装置 | |
CN110708368A (zh) | 一种基于路由分发的微前端系统和方法 | |
CN101853152B (zh) | 一种生成用户图形界面的方法和系统 | |
US9292278B2 (en) | Providing high availability for state-aware applications | |
CN110347942A (zh) | 页面跳转方法、装置、存储介质及计算机设备 | |
CN112235357B (zh) | 跨平台应用开发系统 | |
CN109213498A (zh) | 一种互联网web前端的配置方法及服务器 | |
CN105160018A (zh) | 一种复制/粘贴图片的方法、装置和系统 | |
CN103473034A (zh) | 一种动态发布Web 服务的方法和装置 | |
US11537367B1 (en) | Source code conversion from application program interface to policy document | |
Ezenwoye et al. | RobustBPEL2: Transparent autonomization in business processes through dynamic proxies | |
CN114489622A (zh) | 静态资源管理方法、Node.js应用、电子设备和存储介质 | |
CN113468272A (zh) | 一种报文转发方法及装置 | |
CN109783132B (zh) | 一种可适应系统单体化及分布式化的实现方法及装置 | |
CN117270819A (zh) | 支持单体架构兼容微服务架构的服务设计方法及系统、介质、设备 | |
CN113791870B (zh) | 一种WebAssembly虚拟机分布式系统细粒度迁移方法及系统 | |
Wolf et al. | Supporting component-based failover units in middleware for distributed real-time and embedded systems | |
CN110837394B (zh) | 一种高可用配置版本仓库配置方法、终端及可读介质 | |
CN112199080A (zh) | vuejs项目webpack构建方法及设备 | |
CN108804236B (zh) | 一种aidl文件的共享方法及系统 | |
Heil et al. | DCM: dynamic client-server code migration | |
CN111581085B (zh) | 联调测试系统及方法 | |
CN112685052B (zh) | 一种基于.NET Core的支持不同部署方式的微服务实现方法 | |
US20230385075A1 (en) | Networked Universal Code Package Provider | |
CN117312694B (zh) | 基于小程序框架构建h5应用的方法、装置及存储介质 |
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 |