CN112199105A - 功能组合式软件开发的方法、***、介质及电子设备 - Google Patents
功能组合式软件开发的方法、***、介质及电子设备 Download PDFInfo
- Publication number
- CN112199105A CN112199105A CN202011105956.XA CN202011105956A CN112199105A CN 112199105 A CN112199105 A CN 112199105A CN 202011105956 A CN202011105956 A CN 202011105956A CN 112199105 A CN112199105 A CN 112199105A
- Authority
- CN
- China
- Prior art keywords
- framework
- software
- service
- module
- plug
- 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 46
- 238000011161 development Methods 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 11
- 230000006870 function Effects 0.000 description 52
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action 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
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种功能组合式软件开发的方法、***、介质及电子设备,该方法包括:根据开发需求构建软件框架和功能组合式管理框架构成的软件开发平台;按照配置信息启动软件框架,软件框架包含多个模块,其中多个模块中包括通用模块和业务模块;功能组合式管理框架采用微服务和容器部署的方式对通用模块和业务模块进行分布式部署;当接收到客户端发送的外部请求时,根据外部请求对服务集群进行相应的管理。本发明通过构建功能组合式管理框架,将组成软件框架的多个模块以插件的形式进行管理,能够以简洁的方式进行模块的扩展,并在软件开发过程中动态地***到软件框架中,可以随时删除、***和修改,结构灵活,易于修改,便于软件的升级和维护。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种功能组合式软件开发的方法、***、介质及电子设备。
背景技术
在传统的信息技术行业中,软件通常是各种独立***的堆栈。单一体系结构在相对较小的规模上运行良好。但是,随着功能需求的增加,***规模越来越大,单一体系结构便暴露出越来越多的问题,主要表现在拓展性差、可靠性低以及维护成本高。
基于上述,现有软件开发平台对于大型功能组合式软件的开发尚存在不易扩展和维护成本高的问题。
上述缺陷是本领域技术人员期望克服的。
发明内容
(一)要解决的技术问题
为了解决现有技术的上述问题,本发明提供一种功能组合式软件开发的方法、***、介质及电子设备,解决现有软件开发平台对于大型功能组合式软件的开发不易扩展和维护成本高的问题。
(二)技术方案
为了达到上述目的,本发明采用的主要技术方案包括:
第一方面,本发明提供一种功能组合式软件开发的方法,包括:
S1、根据开发需求构建软件框架和功能组合式管理框架构成的软件开发平台;
S2、按照配置信息启动软件框架,软件框架包含多个模块,其中多个模块中包括通用模块和业务模块;
S3、功能组合式管理框架采用微服务和容器部署的方式对通用模块和业务模块进行分布式部署;
S4、当接收到客户端发送的外部请求时,根据外部请求对服务集群进行相应的管理。
在本发明的一种示例性实施例中,步骤S1中的所述软件开发平台包括多个服务网关构成的服务网关集群、多个docker容器构成的容器集群、多个服务注册中心构成的注册中心集群以及多个数据库构成的数据服务集群。
在本发明的一种示例性实施例中于,所述多个模块采用插件式构建软件框架。
在本发明的一种示例性实施例中,步骤S3中的功能组合式管理框架在软件开发平台运行中动态地以插件管理的方式对多个模块进行部署。
在本发明的一种示例性实施例中,步骤S4中根据外部请求对服务集群进行相应的管理之前,还包括:
服务网关集群根据外部请求进行负载均衡控制。
在本发明的一种示例性实施例中,步骤S4中根据外部请求对服务集群进行相应的管理包括:
如果外部请求是添加请求,则根据添加请求确定添加配置信息,并按照添加配置信息从服务器下载得到添加请求相应的模块,将模块以插件形式添加到软件框架中;
如果外部请求是更新请求,则将更新请求对应的模块与本地原模块的版本进行比较,当更新请求对应的模块的版本较新时,根据更新请求确定更新配置信息,并按照更新配置信息从服务器下载得到更新请求相应的模块,将模块代替原模块以插件形式重新添加到软件框架中。
第二方面,本发明还提供一种功能组合式软件开发的***,包括:
平台组件模块,用于根据开发需求构建软件框架和功能组合式管理框架构成的软件开发平台;
软件框架模块,用于按照配置信息启动软件框架,软件框架包含多个模块,其中多个模块中包括通用模块和业务模块;
管理部署模块,用于功能组合式管理框架采用微服务和容器部署的方式对通用模块和业务模块进行分布式部署;
请求处理模块,用于当接收到客户端发送的外部请求时,根据外部请求对服务集群进行相应的管理。
在本发明的一种示例性实施例中,所述功能组合式管理框架包括:
插件接口规范组件,用于描述不同的插件的接口规范,接口规范包括框架管理类服务接口和工具类服务接口;
框架接口规范组件,用于描述软件框架与插件之间的接口协议;
插件管理组件,用于根据插件的配置信息对插件进行加载、控制、交互以及插件事件的发布与订阅;
配置管理组件,用于对框架内部的组件及其所管理的插件进行描述和定制;
服务发布管理组件,用于将软件框架所管理的插件以服务的方式进行发布;
部署更新组件,用于基于微服务将模块以插件的形式提供给软件框架,对插件进行部署和更新;
框架服务组件,用于提供软件框架对外的公共服务;
异常日志组件,用于对软件框架的异常进行处理并生成日志记录。
第三方面,本发明还提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现以上所述的功能组合式软件开发的方法的步骤。
第四方面,本发明还提供一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现以上所述的功能组合式软件开发的方法。
(三)有益效果
本发明的有益效果是:本发明实施例提供的功能组合式软件开发的方法、***、介质及电子设备,通过构建功能组合式管理框架,将组成软件框架的多个模块以插件的形式进行管理,能够以简洁的方式进行模块的扩展,并在软件开发过程中动态地***到软件框架中,可以随时删除、***和修改,结构灵活,易于修改,便于软件的升级和维护。
附图说明
图1为本发明一实施例提供的一种功能组合式软件开发的方法的流程图;
图2为本发明一实施例图1中步骤S1之前的流程图;
图3为本发明一实施例图1中步骤S2之前的流程图
图4为本发明另一实施例提供的一种功能组合式软件开发的***的示意图;
图5是根据本发明一实施例示出的一种电子设备的计算机***的结构示意图。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
本发明将插件的应用场景拓展到软件开发的整个周期当中,使软件开发更加灵活、多样、高效。用户可以根据自己的需求,通过功能组合式管理框架以插件的方式给软件配备新的功能。这种功能的组合与拓展,能够在提供易用性的同时,保持原有程序不发生改变。因此,使用功能组合技术,能够很好地解决软件***的功能拓展问题。本发明采用一种分布式与单体环境自由组装部署的架构实现模式进行软件开大,能够降低软件开发成本与风险,模块以插件形式***到***组红,可在不同***中进行复用。
图1为本发明一实施例提供的一种基于区块链的功能组合式软件开发的方法的流程图,如图1所示,具体包括以下步骤:
步骤S1、根据开发需求构建软件框架和功能组合式管理框架构成的软件开发平台;
步骤S2、按照配置信息启动软件框架,软件框架包含多个模块,其中多个模块中包括通用模块和业务模块;
步骤S3、功能组合式管理框架采用微服务和容器部署的方式对通用模块和业务模块进行分布式部署;
步骤S4、当接收到客户端发送的外部请求时,根据外部请求对服务集群进行相应的管理。
以下,对图1所示步骤进行详细介绍:
在步骤S1中,根据开发需求构建软件框架和功能组合式管理框架构成的软件开发平台。
在本发明的一种示例性实施例中,步骤S1中的所述软件开发平台包括多个服务网关构成的服务网关集群、多个docker容器构成的容器集群、多个服务注册中心构成的注册中心集群以及多个数据库构成的数据服务集群。
本发明通过在软件开发平台内部增加一个模块管理器的软件构造,该构造负责对模块进行统一管理,包括注册、识别、加载、调用等处理。若将模块管理器独立出来,并提升到软件框架的层面,模块管理器就可以作为一个功能组合式管理框架对待。在此框架的基础上,再将模块的应用场景进行拓展,使模块开发从单一地用于扩展软件功能,扩大到软件所有功能都以模块组合式开发。如果将此模块管理框架用于软件开发过程,那么模块管理框架就演化为一个功能组合式软件开发框架。
在步骤S2中,按照配置信息启动软件框架,软件框架包含多个模块,其中多个模块中包括通用模块和业务模块。
该步骤的配置信息包括软件框架中对各个模块的划分和模块之间的逻辑信息,本发明实施例提供的软件开发平台具有通用的底层功能,包含用户、组织(SO)、标签、订单、消息、应用等模块,而针对不同于该软件开发平台的行业、领域、项目的业务需求可独立开发业务模块,但需满足开发框架规则与协议。
在本发明的一种示例性实施例中于,所述多个模块采用插件式构建软件框架。开发者进行软件开发时,单一模块可以动态地***到***中,为***提供相对简单的功能,但是多个模块组合可以改善***功能,完成许多复杂的处理。在模块中必须提供给宿主程序调用的接口,当宿主程序需要调用模块的时候能够找到这个接口,以完成与宿主程序的通讯与交互,并且使得宿主程序能够得到模块的相关信息。
在步骤S3中,功能组合式管理框架采用微服务和容器部署的方式对通用模块和业务模块进行分布式部署。
在本发明的一种示例性实施例中,步骤S3中的功能组合式管理框架在软件开发平台运行中动态地以插件管理的方式对多个模块进行部署。
在步骤S4中,当接收到客户端发送的外部请求时,根据外部请求对服务集群进行相应的管理。
在本发明的一种示例性实施例中,步骤S4中根据外部请求对服务集群进行相应的管理之前,还包括:
服务网关集群根据外部请求进行负载均衡控制。
在本发明的一种示例性实施例中,步骤S4中根据外部请求对服务集群进行相应的管理包括:
如果外部请求是添加请求,则根据添加请求确定添加配置信息,并按照添加配置信息从服务器下载得到添加请求相应的模块,将模块以插件形式添加到软件框架中;
如果外部请求是更新请求,则将更新请求对应的模块与本地原模块的版本进行比较,当更新请求对应的模块的版本较新时,根据更新请求确定更新配置信息,并按照更新配置信息从服务器下载得到更新请求相应的模块,将模块代替原模块以插件形式重新添加到软件框架中。
基于上述,本发明提供了一套基本的软件开发平台的***架构,使得***能够独立部署、运行和升级。不仅如此,这种***架构还使***在结构上“松耦合”,同时在功能上呈现出统一的整体。这个所谓的“统一整体”展示统一的界面风格、权限管理、安全策略、在线流程、日志记录和审计方法、调度方法以及访问门户等等。
本发明实施例通过结合微服务对上述方法进行介绍:
图2为本发明实施例中采用微服务技术实现软件开发平台的示意图,如图2所示,包括客户端(Client)、弹性负载均衡(Elastic Load Balance,简称ELB)、GateWay集群、Docker集群和数据服务集群。另外,注册中心集群(即Eureka集群)通过发现GateWay集群完成服务的注册与发现。服务注册中心必须要有高可用性和实时更新功能,图2中的Eureka就是一个服务注册中心,能够服务注册和查询服务信息的REST API。服务通过使用POST请求注册自己的IPAddress和Port。每30秒发送一个PUT请求刷新注册信息。通过DELETE请求注销服务。客户端通过GET请求获取可用的服务实例信息。Docker集群中的每个Docker容器中包括前端服务和后端服务,镜像仓库、配置中心、日志服务和消息服务,数据服务集群包括MySQL数据库、Redis数据库和Hadoop数据库。
本实施例中通过微服务框架和按Docker容器部署方式实现通用功能和业务模块分布式部署以及跨服务调用。基于这些步骤实现软件开发新模式,然后应用针对不同项目需求,可以将基础的功能模块(即通用模块)和业务模块组合起来以低成本且快速地实现新***的复制,避免重复开发。微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决;微服务每个模块都可以使用不同的存储方式(比如有的用Redis,有的用MySQL等),数据库也是单个模块对应自己的数据库;微服务每个模块都可以使用不同的开发技术,开发模式更灵活。
根据图2所示,微服务架构的组成及原理:
访问大致路径为:外部请求→负载均衡→服务网关(GateWay)→微服务→数据服务/消息服务。服务网关和微服务都会用到服务注册和发现来调用依赖的其他服务,各服务集群都能通过配置中心服务来获得配置信息。
该软件开发平台将一个模块切换为多个模块,通过跨服务调用实现分布式服务共享。图3为本发明实施例中功能组合式管理框架的结构示意图,功能组合式管理框架以插件的形式组织、管理具体应用中的功能组件,如图3所示,由插件接口规范、配置管理、服务发布管理、部署与更新管理、框架服务、异常与日志管理、插件管理几部分构成。
插件管理是框架的核心模块,主要的任务是根据插件的配置信息对插件进行统一的管理。管理的主要内容包括插件的加载、控制、交互以及插件事件的发布与订阅。框架接口规范用于描述框架与插件之间的接口契约,主要包括插件管理类接口和框架服务类接口。插件管理类接口服务于框架的插件管理工作,使框架能够访问与控制插件。这类接口由插件负责实现,由框架进行调用。框架服务接口由框架负责实现并提供给插件进行使用,它的主要作用是提供插件访问框架的机制,使插件可以使用框架公布的服务,这些服务既包括插件管理服务,也包括日志、配置等其它服务。
配置管理是框架的一个重要模块,它的主要作用是对框架内部组件及其所管理的插件进行描述和定制。首先,对于框架内部的各个组件,配置管理定义了各组件的启动参数等信息,这些参数可以规定内部组件的启动行为,典型地,对于部署更新组件,需要配置出更新策略;其次,配置管理还用于对框架所管理的插件进行描述和定义。由于框架对插件的管理是在运行时通过动态的方式进行的,因此,框架需要详尽的插件信息,以便对插件进行有效的控制,这些信息既包括插件的静态信息(如名称、服务接口等),也包括动态信息(如事件发布、控制逻辑等)。配置管理从组成上包括一系列配置文件和配置服务接口。
服务发布组件用于将框架所管理的插件,以服务的方式通过网络进行发布,以便满足分布式应用对于远程访问的需求。服务部署更新组件提供与***部署与更新的相关处理。由于采用插件式开发框架,软件的功能全部是以插件的形式提供,为软件的自动部署与更新提供便利条件。当初次安装软件时,只需要将框架及其相关配置安装到目标机器,当框架启动时,部署更新模块可以根据配置,自动从联机服务器上下载所需插件进行安装。当框架重复启动时,部署更新模块可以自动比较本地插件与服务器插件的版本,如果服务器较新,则自动下载新的插件,完成***的自动更新处理。框架服务组件提供框架对外的公共服务,这些服务通过接口规范中的服务接口提供给插件使用。框架服务分为两种类型:一类是框架管理类的服务接口,通过此接口,插件可以调用框架与插件管理相关的功能;另一类是工具类服务接口,比如网络访问、加密、压缩等,这类接口一般是框架通过封装第三方类库的方式提供,其目的是为框架提供方便统一的基础服务。框架服务整合其它各模块的功能,并通过接口规范展现给外界,因此,可以将框架服务理解为整个框架的一个外观。
异常日志模块用以完成框架的异常处理以及日志记录。其中,异常处理既包括异常对象的定义,也包括当异常出现时,根据实际情况封装异常对象的产生。基于框架的插件在开发时,应当根据需要处理不同的异常对象,从而使插件更为健壮。日志管理分为框架管理日志和插件日志服务,框架管理日志是记录框架在管理插件过程中的相关信息,这些信息可以被保存到由配置文件所指定的日志文件中;插件日志服务是框架提供给插件的、使插件具有日志记录功能的服务。这些日志管理功能通过框架服务模块和接口规范中的接口提供给插件使用。
综上所述,采用本发明实施例提供的功能组合式软件开发的方法,具有如下效果:
(1)通过功能组合式管理框架结合软件框架搭建起功能组合式软件开发平台,通过组合功能模块的控制逻辑,将不同的模块组合在一起,在模块管理器中建立协作关系,然后通过模块实现软件功能;
(2)基于软件框架可以提高软件开发的稳定性和易维护性,由于模块与宿主程序之间通过接口联系,就像硬件插卡一样,可以随时删除、***和修改,结构灵活,易于修改,便于软件升级和维护;
(3)软件开发平台可移植性强,重用粒度大,因为模块本身是由一系列小功能程序构成的,所以只要接口是根据模块规范使用的,任何程序都可以被调用;
(4)***的模块之间的耦合度较低,由于模块与宿主程序通信,实现模块与模块之间以及模块与宿主程序之间的通信,所以模块之间的耦合度较低。
(5)基于该软件开发平台可以在软件开发过程中修改应用程序。由于功能组合式模块结构,模块在软件开发过程中可以随时修改,同时在应用程序发行后以补丁包的形式增删模块,达到修改应用程序的目的。
与上述功能组合式软件开发的方法相对应的,图4为本发明另一实施例提供的一种功能组合式软件开发的***的示意图,参考图4,该***400包括:平台组件模块410、软件框架模块420、管理部署模块430和请求处理模块440。
其中平台组件模块410用于根据开发需求构建软件框架和功能组合式管理框架构成的软件开发平台;软件框架模块420用于按照配置信息启动软件框架,软件框架包含多个模块,其中多个模块中包括通用模块和业务模块;管理部署模块430用于功能组合式管理框架采用微服务和容器部署的方式对通用模块和业务模块进行分布式部署;请求处理模块440用于当接收到客户端发送的外部请求时,根据外部请求对服务集群进行相应的管理。
在本发明的一种示例性实施例中,所述功能组合式管理框架包括:
插件接口规范组件,用于描述不同的插件的接口规范,接口规范包括框架管理类服务接口和工具类服务接口;
框架接口规范组件,用于描述软件框架与插件之间的接口协议;
插件管理组件,用于根据插件的配置信息对插件进行加载、控制、交互以及插件事件的发布与订阅;
配置管理组件,用于对框架内部的组件及其所管理的插件进行描述和定制;
服务发布管理组件,用于将软件框架所管理的插件以服务的方式进行发布;
部署更新组件,用于基于微服务将模块以插件的形式提供给软件框架,对插件进行部署和更新;
框架服务组件,用于提供软件框架对外的公共服务;
异常日志组件,用于对软件框架的异常进行处理并生成日志记录。
由于本发明的示例实施例的功能组合式软件开发的***的各个功能模块与上述图1所示的功能组合式软件开发的方法的示例实施例的步骤对应,因此对于本发明装置实施例中未披露的细节,例如各个组件结构和功能请参照本发明上述的功能组合式软件开发的方法的实施例。
综上所述,采用本发明实施例提供的功能组合式软件开发的***的技术效果参见上述方法的技术效果,此处不再赘述。下面参考图5,其示出了适于用来实现本发明实施例的电子设备的计算机***500的结构示意图。图5示出的电子设备的计算机***500仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机***500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有***操作所需的各种程序和数据。CPU501、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等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的功能组合式软件开发的方法。
例如,所述的电子设备可以实现如图1中所示的:步骤S1、根据开发需求构建软件框架和功能组合式管理框架构成的软件开发平台;步骤S2、按照配置信息启动软件框架,软件框架包含多个模块,其中多个模块中包括通用模块和业务模块;步骤S3、功能组合式管理框架采用微服务和容器部署的方式对通用模块和业务模块进行分布式部署;步骤S4、当接收到客户端发送的外部请求时,根据外部请求对服务集群进行相应的管理。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种功能组合式软件开发的方法,其特征在于,其包括:
S1、根据开发需求构建软件框架和功能组合式管理框架构成的软件开发平台;
S2、按照配置信息启动软件框架,软件框架包含多个模块,其中多个模块中包括通用模块和业务模块;
S3、功能组合式管理框架采用微服务和容器部署的方式对通用模块和业务模块进行分布式部署;
S4、当接收到客户端发送的外部请求时,根据外部请求对服务集群进行相应的管理。
2.如权利要求1所述的功能组合式软件开发的方法,其特征在于,步骤S1中的所述软件开发平台包括多个服务网关构成的服务网关集群、多个docker容器构成的容器集群、多个服务注册中心构成的注册中心集群以及多个数据库构成的数据服务集群。
3.如权利要求1所述的功能组合式软件开发的方法,其特征在于,所述多个模块采用插件式构建软件框架。
4.如权利要求1所述的功能组合式软件开发的方法,其特征在于,步骤S3中的功能组合式管理框架在软件开发平台运行中动态地以插件管理的方式对多个模块进行部署。
5.如权利要求1所述的功能组合式软件开发的方法,其特征在于,步骤S4中根据外部请求对服务集群进行相应的管理之前,还包括:
服务网关集群根据外部请求进行负载均衡控制。
6.如权利要求1所述的功能组合式软件开发的方法,其特征在于,步骤S4中根据外部请求对服务集群进行相应的管理包括:
如果外部请求是添加请求,则根据添加请求确定添加配置信息,并按照添加配置信息从服务器下载得到添加请求相应的模块,将模块以插件形式添加到软件框架中;
如果外部请求是更新请求,则将更新请求对应的模块与本地原模块的版本进行比较,当更新请求对应的模块的版本较新时,根据更新请求确定更新配置信息,并按照更新配置信息从服务器下载得到更新请求相应的模块,将模块代替原模块以插件形式重新添加到软件框架中。
7.一种功能组合式软件开发的***,其特征在于,包括:
平台组件模块,用于根据开发需求构建软件框架和功能组合式管理框架构成的软件开发平台;
软件框架模块,用于按照配置信息启动软件框架,软件框架包含多个模块,其中多个模块中包括通用模块和业务模块;
管理部署模块,用于功能组合式管理框架采用微服务和容器部署的方式对通用模块和业务模块进行分布式部署;
请求处理模块,用于当接收到客户端发送的外部请求时,根据外部请求对服务集群进行相应的管理。
8.如权利要求7所述的功能组合式软件开发的***,其特征在于,所述功能组合式管理框架包括:
插件接口规范组件,用于描述不同的插件的接口规范,接口规范包括框架管理类服务接口和工具类服务接口;
框架接口规范组件,用于描述软件框架与插件之间的接口协议;
插件管理组件,用于根据插件的配置信息对插件进行加载、控制、交互以及插件事件的发布与订阅;
配置管理组件,用于对框架内部的组件及其所管理的插件进行描述和定制;
服务发布管理组件,用于将软件框架所管理的插件以服务的方式进行发布;
部署更新组件,用于基于微服务将模块以插件的形式提供给软件框架,对插件进行部署和更新;
框架服务组件,用于提供软件框架对外的公共服务;
异常日志组件,用于对软件框架的异常进行处理并生成日志记录。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至6中任一项所述的功能组合式软件开发的方法的步骤。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至6中任一项所述的功能组合式软件开发的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011105956.XA CN112199105A (zh) | 2020-10-15 | 2020-10-15 | 功能组合式软件开发的方法、***、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011105956.XA CN112199105A (zh) | 2020-10-15 | 2020-10-15 | 功能组合式软件开发的方法、***、介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112199105A true CN112199105A (zh) | 2021-01-08 |
Family
ID=74009151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011105956.XA Pending CN112199105A (zh) | 2020-10-15 | 2020-10-15 | 功能组合式软件开发的方法、***、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112199105A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732233A (zh) * | 2021-01-14 | 2021-04-30 | 杭州海兴电力科技股份有限公司 | 应用程序生成*** |
CN113190213A (zh) * | 2021-03-25 | 2021-07-30 | 中国人民解放军海军工程大学 | 一种物理装置组件数据处理程序的开发框架 |
CN113312037A (zh) * | 2021-06-15 | 2021-08-27 | 北京百度网讯科技有限公司 | 应用于微服务的数据处理方法、装置、设备和存储介质 |
CN113434316A (zh) * | 2021-07-16 | 2021-09-24 | 南京炫佳网络科技有限公司 | 一种基于redis插件的功能集成方法、装置、设备及存储介质 |
CN113703791A (zh) * | 2021-08-14 | 2021-11-26 | 济南浪潮数据技术有限公司 | 一种软件部署方法、***、存储介质及设备 |
CN114221865A (zh) * | 2022-02-21 | 2022-03-22 | 广州鲲鹏物联科技有限公司 | 物联网终端的业务功能实现方法、装置、设备及存储介质 |
CN114500655A (zh) * | 2022-04-15 | 2022-05-13 | 武汉中科通达高新技术股份有限公司 | 接口请求处理方法、装置、微服务框架的集群***及介质 |
CN115103012A (zh) * | 2022-08-25 | 2022-09-23 | 中国电子科技集团公司第十五研究所 | 一种地理空间信息微服务集成***及方法 |
CN116909547A (zh) * | 2023-09-13 | 2023-10-20 | 长城证券股份有限公司 | 基于axi框架的业务功能在线开发方法、实现方法及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522623A (zh) * | 2020-04-16 | 2020-08-11 | 中国航空无线电电子研究所 | 组件化软件多进程运行*** |
-
2020
- 2020-10-15 CN CN202011105956.XA patent/CN112199105A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522623A (zh) * | 2020-04-16 | 2020-08-11 | 中国航空无线电电子研究所 | 组件化软件多进程运行*** |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732233A (zh) * | 2021-01-14 | 2021-04-30 | 杭州海兴电力科技股份有限公司 | 应用程序生成*** |
CN113190213A (zh) * | 2021-03-25 | 2021-07-30 | 中国人民解放军海军工程大学 | 一种物理装置组件数据处理程序的开发框架 |
CN113312037B (zh) * | 2021-06-15 | 2023-11-24 | 北京百度网讯科技有限公司 | 应用于微服务的数据处理方法、装置、设备和存储介质 |
CN113312037A (zh) * | 2021-06-15 | 2021-08-27 | 北京百度网讯科技有限公司 | 应用于微服务的数据处理方法、装置、设备和存储介质 |
CN113434316A (zh) * | 2021-07-16 | 2021-09-24 | 南京炫佳网络科技有限公司 | 一种基于redis插件的功能集成方法、装置、设备及存储介质 |
CN113703791A (zh) * | 2021-08-14 | 2021-11-26 | 济南浪潮数据技术有限公司 | 一种软件部署方法、***、存储介质及设备 |
CN113703791B (zh) * | 2021-08-14 | 2023-12-22 | 济南浪潮数据技术有限公司 | 一种软件部署方法、***、存储介质及设备 |
CN114221865A (zh) * | 2022-02-21 | 2022-03-22 | 广州鲲鹏物联科技有限公司 | 物联网终端的业务功能实现方法、装置、设备及存储介质 |
CN114221865B (zh) * | 2022-02-21 | 2022-05-13 | 广州鲲鹏物联科技有限公司 | 物联网终端的业务功能实现方法、装置、设备及存储介质 |
CN114500655A (zh) * | 2022-04-15 | 2022-05-13 | 武汉中科通达高新技术股份有限公司 | 接口请求处理方法、装置、微服务框架的集群***及介质 |
CN114500655B (zh) * | 2022-04-15 | 2022-07-26 | 武汉中科通达高新技术股份有限公司 | 接口请求处理方法、装置、微服务框架的集群***及介质 |
CN115103012B (zh) * | 2022-08-25 | 2022-11-01 | 中国电子科技集团公司第十五研究所 | 一种地理空间信息微服务集成***及方法 |
CN115103012A (zh) * | 2022-08-25 | 2022-09-23 | 中国电子科技集团公司第十五研究所 | 一种地理空间信息微服务集成***及方法 |
CN116909547A (zh) * | 2023-09-13 | 2023-10-20 | 长城证券股份有限公司 | 基于axi框架的业务功能在线开发方法、实现方法及设备 |
CN116909547B (zh) * | 2023-09-13 | 2023-12-15 | 长城证券股份有限公司 | 基于axi框架的业务功能在线开发方法、实现方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199105A (zh) | 功能组合式软件开发的方法、***、介质及电子设备 | |
CN109710236B (zh) | 基于共享服务的业务开发和实现方法、装置、平台及介质 | |
US7174361B1 (en) | Scripting task-level user-interfaces | |
US6507875B1 (en) | Modular application collaboration including filtering at the source and proxy execution of compensating transactions to conserve server resources | |
US20130318512A1 (en) | Hot Pluggable Extensions for Access Management System | |
CN114328509A (zh) | 一种业务处理方法和装置 | |
US7562369B1 (en) | Method and system for dynamic configuration of activators in a client-server environment | |
CN116860266A (zh) | 应用容器化部署方法、装置、电子设备及存储介质 | |
CN114996337A (zh) | 多集群数据库管理***及方法 | |
CN115080101A (zh) | 应用管理方法、应用订阅方法及相关设备 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
CN113014616B (zh) | 用于内容交付嵌入的分析内容网络 | |
CN111240998B (zh) | 测试用例处理方法和装置 | |
US20220326939A1 (en) | Mobile service upgrade method and apparatus, and terminal | |
US9059992B2 (en) | Distributed mobile enterprise application platform | |
CN113360299B (zh) | 事务处理方法及相关产品 | |
CN111124523A (zh) | 用于初始化应用的方法和装置 | |
CN114398035A (zh) | 利用组件提供服务的方法、装置、设备和计算机可读介质 | |
CN112929195A (zh) | 服务***、由服务***执行的方法、处理装置和存储介质 | |
CN112181401A (zh) | 应用构建方法及应用构建平台 | |
KR20210094883A (ko) | 스토리지 암호화의 동적 적용을 위한 방법 및 시스템 | |
CN113495747B (zh) | 一种灰度发布方法和装置 | |
CN115756802A (zh) | 一种异步任务的处理方法、装置、设备及介质 | |
CN117591140A (zh) | 服务网格、服务升级方法、装置、设备和介质 | |
CN113326108A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210108 |
|
RJ01 | Rejection of invention patent application after publication |