CN105893013A - 工程构建系统及其构建方法 - Google Patents
工程构建系统及其构建方法 Download PDFInfo
- Publication number
- CN105893013A CN105893013A CN201510888659.XA CN201510888659A CN105893013A CN 105893013 A CN105893013 A CN 105893013A CN 201510888659 A CN201510888659 A CN 201510888659A CN 105893013 A CN105893013 A CN 105893013A
- Authority
- CN
- China
- Prior art keywords
- module
- engineering
- dependence
- framework
- unit
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- 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/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- 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
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种工程构建系统及其构建方法。该系统包括:多个工程模块,用于提供工程的公共配置、容器、工具并对工程进行抽象描述;技术组件模块,用于为多个工程模块提供多个插件以及各个插件间的依赖关系;工程/技术组件的父模块,用于为技术组件模块提供多个插件的插件源以及为多个工程模块和技术组件模块提供继承服务;依赖管理模块,用于管理多个依赖关系,以解除冲突;框架根模块,用于搭建框架,并对上述各个模块进行管理。本实施方式具有丰富的功能模块,可以为生成级别的多个工程项目提供框架,加快了开发的速度,解决了依赖冲突,规范了编程,减少程序的错误,提高代码的复用率,提高了系统的稳定性。
Description
技术领域
本发明实施例涉及软件工程技术领域,尤其涉及一种工程构建系统及其构建方法。
背景技术
随着高级的面向对象的程序设计语言的快速发展,使用这类高级语言可以编写各种类型的应用程序,例如:桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。这些应用程序正呈现出向大型化和复杂化的发展趋势。例如,基于Java语言开发的工程项目可以达到10万至20万行的代码。因此,每开发构建一个工程项目,需要耗费大量的人力、资金和时间。而耗费大量的人力、资金和时间构建的工程,却不能复用。如果开发其它的工程项目,则需要重新编写所有的代码,造成了大量的人力、资金和时间的浪费,且新构建的工程质量依赖开发者的知识水平。因此,现有技术中,可能会出现工程项目编码不规范,工程项目质量不稳定的情况。
框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法。曾经,有开发者试图利用现有的框架进行开发新的项目,但利用现有的框架会出现如下的问题:功能单一,仅针对实现基本功能的小型项目的设计,无法满足针对生产级别的多功能的工程的构建;无法解决依赖的冲突关系,使得构建的项目实用性不强。
因此,如何快速构建高质量的工程系统,以成为业界的关注点之一。
发明内容
本发明实施例提供了一种工程构建系统及其方法,用以解决现有技术中功能单一,设计简单,无法满足针对生产级别的多功能的工程的构建;无法解决依赖的冲突关系,构建的项目实用性不强等问题。
本发明实施例提供了一种工程构建系统。该系统包括:
多个工程模块,用于提供工程的公共配置、容器、工具并对所述工程进行抽象描述;
技术组件模块,用于为所述多个工程模块提供多个插件以及各个插件间的依赖关系;
工程/技术组件的父模块,用于为所述技术组件模块提供所述多个插件的插件源以及为所述多个工程模块和技术组件模块提供继承服务;
依赖管理模块,用于管理多个依赖关系,以确保所述技术组件模块提供给所述多个工程模块的插件间的依赖关系不发生冲突;
框架根模块,用于搭建框架,并对所述多个工程模块、技术组件模块、工程/技术组件的父模块和依赖管理模块进行管理。
本发明实施例提供了一种工程构建系统的构建方法。该方法包括:
构建用于搭建框架的框架根模块;
在所述框架根模块上构建依赖管理模块;
在所述依赖管理模块上构建工程/技术组件的父模块;
在所述工程/技术组件的父模块上构建技术组件模块和多个工程模块;
其中,所述多个工程模块用于提供工程的公共配置、容器、工具并对所述工程进行抽象描述;
所述技术组件模块用于为所述多个工程模块提供多个插件以及各个插件间的依赖关系;
所述工程/技术组件的父模块用于为所述技术组件模块提供所述多个插件的插件源以及为所述多个工程模块和技术组件模块提供继承服务;
所述依赖管理模块用于管理多个依赖关系,以确保所述技术组件模块提供给所述多个工程模块的插件间的依赖关系不发生冲突;
所述框架根模块用于对所述多个工程模块、技术组件模块、工程/技术组件的父模块和依赖管理模块进行管理。
基于本实施方式构建好的系统,开发人员可以非常方便、快捷的选取已经配置好的项目所需的插件、工具、容器,对其进行自由组合,并对其中的依赖关系进行管理,从而快速开发各种网站项目或者服务项目,解除各个依赖关系冲突的问题,而无需重新编制网站项目或者服务项目中的代码程序。
一来,本实施方式通过设置丰富的功能模块,并集中对各个功能模块进行管理,可以为生成级别的多个工程项目提供框架,加快工程项目开发的速度;
二来,本实施方式通过构建工程系统可以规范编程,减少程序的错误率,提高代码的复用率;
三来,本实施方式通过设置依赖管理模块,能够解决程序中的依赖冲突,提高了系统的稳定性,便于后期维护。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明工程构建系统的第一实施例的结构示意图;
图2为本发明工程构建系统的第二实施例的结构示意图;
图3为本发明一实施方式的工程构建系统的构建方法流程示意图;
图4为图3实施例的子流程示意图;
图5为本发明工程构建系统的每秒查询次数的性能指标示意图;
图6为本发明工程构建系统的99%情况下的响应时间的性能指标示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明工程构建系统的第一实施例的结构示意图。如图1所示,工程构建系统包括:多个工程模块、技术组件模块、工程/技术组件的父模块、依赖管理模块和框架根模块。其中:
在本实施方式中,多个工程模块用于提供工程的公共配置、容器、工具并对所述工程进行抽象描述。多个工程模块例如可以是网站工程模块,也可以是服务工程模块,还可以按实际需求进行个性化设计。
在本实施方式中,技术组件模块用于为所述多个工程模块提供多个插件以及各个插件间的依赖关系,还可以对所述多个插件进行配置。在本发明实施例中,技术组件模块可以包括metrics、couchbase、dubbo、mybatis、swiftmq和dozer组件模块中的至少一种,还可以按需求进行组合配置,或者添加新的组件模块。
由此,本实施方式通过添加丰富的插件可以实现丰富的技术功能,保证生产级别的程序的有效实现。
在本实施方式中,工程/技术组件的父模块是上述多个工程模块和技术组件模块的父模块。工程/技术组件的父模块用于为所述技术组件模块提供所述多个插件的插件源以及为所述多个工程模块和技术组件模块提供继承服务。
在本实施方式中,依赖管理模块用于管理多个依赖关系,以确保所述技术组件模块提供给所述多个工程模块的插件间的依赖关系不发生冲突。
在本实施方式中,框架根模块用于搭建框架,并对所述多个工程模块、技术组件模块、工程/技术组件的父模块和依赖管理模块进行管理。
一来,本实施方式通过设置丰富的功能模块,并集中对各个功能模块进行管理,可以为生成级别的多个工程项目提供框架,加快工程项目开发的速度;
二来,本实施方式通过构建工程系统可以规范编程,减少程序的错误率,提高代码的复用率;
三来,本实施方式通过设置依赖管理模块,能够解决程序中的依赖冲突,提高了系统的稳定性,便于后期维护。
在本发明实施例中,所述工程构建系统基于spring-boot框架构建工程,自动配置spring-boot框架中的参数。
本实施方式基于spring-boot框架进行开发,可以自动配置spring-boot框架中的参数,无需xml配置文件专门为其进行配置。本实施方式可以与spring-boot框架的各个组件很好的结合起来,使得熟悉spring技术的使用者能够迅速掌握本实施方式的框架,提高了程序开发的速度。
图2为本发明工程构建系统的第二实施例的结构示意图。如图2所示,工程构建系统包括:网站工程模块、服务工程模块、通用工程模块、技术组件模块、工程/技术组件的父模块、依赖管理模块和框架根模块。本实施例中与图1所示的第一实施例相同部分不再赘述,在此着重说明二者不一致之处。
在本实施例中,依赖管理模块可以包括:依赖关系参考单元、依赖冲突解析单元和依赖冲突解决单元。其中:
依赖关系参考单元用于提供参考的依赖关系。
依赖冲突解析单元用于解析所述参考的依赖关系间互相冲突的可能性。
依赖冲突解决单元用于根据所述可能性删除和/或修改所述参考的依赖关系。
例如,有三个插件(或者项目),具有有依赖关系A、B和C。其中,A包括1.0的旧版本和2.0的新版本,且1.0旧版本和2.0新版本的依赖关系不兼容,形成冲突。B依赖1.0的旧版本的A。C依赖B和2.0的新版本的A。由于依赖关系的传递性,C可能会依赖1.0的旧版本和2.0的新版本的A,因此,会形成冲突。
参考的依赖关系提供有各个依赖关系的版本情况。此时,根据参考的依赖关系可知,A的1.0版本属于旧版本,A的2.0版本属于新版本,将A的1.0旧版本删除,或者将A的1.0旧版本更换为与2.0版本相兼容的其它版本,就可以解决冲突的依赖关系。
由此,本实施方式可以解决冲突,提高了系统的稳定性,便于后期维护。
本发明实施例中可以通过硬件处理器(hardware processor)和各单元来实现相关功能模块的各项功能。
在本实施例中,网站工程模块和服务工程模块可以由通用工程模块和由所述通用工程模块衍生而成。其中,
通用工程模块用于提供通用工程的公共配置、容器、工具,并通过代码程序对所述通用工程进行抽象描述。
网站工程模块用于提供网站工程的公共配置、容器、工具,并通过代码程序对所述网站工程进行抽象描述。
服务工程模块用于提供服务工程的公共配置、容器、工具,并通过代码程序对所述服务工程进行抽象描述。
一来,本实施方式通过设置多个工程模块可以满足不同类型的工程需求;
二来,本实施方式通过在通用工程模块的基础上的衍生其它工程模块,提高了代码复用率,减少了代码程序的编制量。
三来,本实施方式通过与内嵌式容器和外置容器相组合,可以方便解除耦合,使得信息交互不受语言和系统的限制,提高了系统的兼容性。
下面例举三个实施例来具体说明工程模块实现的方式。
第一实施例:
该实施例展示了使用网站工程模块(stone-application-web)和外置容器模块构建web工程的代码实现方式。该方式方便了本实施方式的使用者基于tomcat等外置容器进行网站的快速开发。具体代码如下所示:
第二实施例:
该实施例展示了服务工程模块(stone-application-service)和内置tomcat容器模块构建service工程,方便了本发明的使用者快速获取底层(例如框架根)服务。具体代码如下所示:
第三实施例:
该实施例展示了服务工程模块(stone-application-service)和外置容器模块构建service工程,方便了本发明的使用者快速获取底层(例如框架根)服务。具体代码如下所示:
图3为本发明工程构建系统的构建方法流程示意图。如图3所示,该方法包括:
S301:构建用于管理工程构建系统的框架根模块。
S302:在框架根模块上构建依赖管理模块。
S303:在依赖管理模块上构建工程/技术组件的父模块。
S304:在所述工程/技术组件的父模块上构建技术组件模块和多个工程模块。
在本发明实施例中,所述多个工程模块用于提供工程的公共配置、容器、工具并对所述工程进行抽象描述。
所述技术组件模块用于为所述多个工程模块提供多个插件以及各个插件间的依赖关系。
所述工程/技术组件的父模块用于为所述技术组件模块提供所述多个插件的插件源以及为所述多个工程模块和技术组件模块提供继承服务。
所述依赖管理模块用于管理多个依赖关系,以确保所述技术组件模块提供给所述多个工程模块的插件间的依赖关系不发生冲突。
所述框架根模块用于对所述多个工程模块、技术组件模块、工程/技术组件的父模块和依赖管理模块进行管理。
一来,本实施方式通过设置多个工程模块可以满足不同类型的工程需求;
二来,本实施方式通过在通用工程模块的基础上的衍生其它工程模块,提高了代码复用率,减少了代码程序的编制量。
三来,本实施方式通过与内嵌式容器和外置容器相组合,可以方便解除耦合,使得信息交互不受语言和系统的限制,提高了系统的兼容性。
在本发明实施例中,所述多个工程模块包括:通用工程模块和由所述通用工程模块衍生而成的网站工程模块和服务工程模块,其中,
所述通用工程模块用于提供通用工程的公共配置、容器、工具,并通过代码程序(例如用Java语言的代码程序)对所述通用工程进行抽象描述。
所述网站工程模块用于提供网站工程的公共配置、容器、工具,并通过代码程序对所述网站工程进行抽象描述。
所述服务工程模块用于提供服务工程的公共配置、容器、工具,并通过代码程序对所述服务工程进行抽象描述。
在本发明实施例中,所述构建用于搭建框架的框架根模块包括构建用于搭建spring-boot框架的框架根模块。自动配置spring-boot框架中的参数。
本实施方式基于spring-boot框架进行开发,可以自动配置spring-boot框架中的参数,无需xml配置文件专门为其进行配置。本实施方式可以与spring-boot框架的各个组件很好的结合起来,使得熟悉spring技术的使用者能够迅速掌握本实施方式的框架,提高了程序开发的速度。
在本发明实施例中,所述技术组件模块包括metrics、couchbase、dubbo、mybatis、swiftmq和dozer插件中的至少一种,还可以按需求进行组合配置,或者添加新的组件模块。
由此,本实施方式通过添加丰富的插件可以实现丰富的技术功能,保证生产级别的程序的有效实现。
图4为图3实施例的子流程示意图。如图4所示,图3中步骤S302(即在所述框架根模块上构建依赖管理模块包括)可以包括:
S3021:在所述框架根模块上构建用于提供参考的依赖关系的依赖关系参考单元。
S3022:在所述框架根模块上构建用于解析所述参考的依赖关系间互相冲突的可能性的依赖冲突解析单元。
S3023:在所述框架根模块上构建用于根据所述可能性删除和/或修改所述参考的依赖关系的依赖冲突解决单元。
利用所述依赖关系参考单元、所述依赖冲突解析单元、所述依赖冲突解决单元构成依赖管理模块。
由此,本实施方式可以解决冲突,提高了系统的稳定性,便于后期维护。
下面对本实施方式的工程构建系统进行压力测试,获取详细数据见下表格(为了说理简单且效果鲜明,本实施方式中表格省略了单位):
concurrency | QPS | TP99 | memory | GC | requests |
20 | 6992 | 6 | 1024 | G1 | 100000 |
50 | 9252 | 13 | 1024 | G1 | 100000 |
100 | 10403 | 25 | 1024 | G1 | 100000 |
150 | 10836 | 37 | 1024 | G1 | 100000 |
200 | 11473 | 45 | 1024 | G1 | 100000 |
250 | 11144 | 57 | 1024 | G1 | 100000 |
300 | 11247 | 72 | 1024 | G1 | 100000 |
350 | 11925 | 83 | 1024 | G1 | 100000 |
400 | 12139 | 97 | 1024 | G1 | 100000 |
500 | 12483 | 110 | 1024 | G1 | 100000 |
600 | 12874 | 123 | 1024 | G1 | 100000 |
700 | 12497 | 146 | 1024 | G1 | 100000 |
800 | 12601 | 135 | 1024 | G1 | 100000 |
900 | 12551 | 177 | 1024 | G1 | 100000 |
1000 | 12690 | 204 | 1024 | G1 | 100000 |
1100 | 13004 | 213 | 1024 | G1 | 100000 |
1200 | 13306 | 190 | 1024 | G1 | 100000 |
1300 | 12738 | 254 | 1024 | G1 | 100000 |
1400 | 13455 | 1065 | 1024 | G1 | 100000 |
1500 | 13522 | 1083 | 1024 | G1 | 100000 |
表格
其中:
Concurrency为并发请求数量(即并发数)。
QPS为每秒请求数量。
TP99为99%情况下的响应时间。
Memory为Java虚拟机内存大小。
GC为Java虚拟机类型。
Requests为压力测试每次请求数量。
根据上述表格可以获取基于本系统的简单服务的性能指标:每秒查询次数(QPS)和99%情况下的响应时间(TP99)。
图5为本发明工程构建系统的每秒查询次数的性能指标示意图。其中,曲线代表每秒查询次数(QPS),横轴代表压力测试的并发数(Concurrency),纵轴代表对应的服务响应数量。如图5所示,当Concurrency从20变化为1500时,QPS从6992变化为13552。随着Concurrency的逐步变大,QPS的变化趋于平缓。由此可知,本实施方式每秒查询次数的性能非常优秀,数据处理的速度非常快,比现有技术有了较大的进步。
图6为本发明工程构建系统的99%情况下的响应时间的性能指标示意图。其中,曲线代表99%情况下的响应时间(TP99),横轴为压力测试的并发数(Concurrency),纵轴为对应的服务响应时间。如图6所示,当Concurrency从20变化为1300时,TP99从6变化为254,此时,TP99的变化趋势比较平缓;当Concurrency超过1300时,TP99发生了快速增长的变化。当Concurrency从1300变化为1500时,TP99从254变化为1083。由此可知,本实施方式每秒查询次数和99%情况下的响应时间这个性能非常优秀,在Concurrency正常的情况下(Concurrency小于1300时),TP99响应时间非常短,比现有技术有了较大的进步。
由此,本实施方式具有以下优点:可以提供生产级别的解决方案;易于构建web和service工程;丰富的技术栈;内嵌式tomcat、jetty和外置容器支持;自动配置spring,无需xml配置文件;提供生产可用的组件。
本实施方式中的各个模块还可以是:
stone-root模块,用于负责管理框架中的模块。
stone-dependencies模块,用于负责依赖管理,解决依赖冲突。
stone-parent模块,用于继承自stone-dependencies,管理插件配置,子模块和业务系统继承stone-parent。
stone-components模块,包含各个技术组件的依赖和配置管理。
stone-application模块,负责作为一般工程的抽象,包含了工程的公共配置、内置容器、外置容器启动工具类。
stone-application-web模块,从stone-application基础上衍生为web工程提供公共配置,与外置、内嵌容器组合使用。
stone-application-service模块,从stone-application基础上衍生为service工程提供公共配置,与内嵌的tomcat、jetty和外置容器自由组合。
本实施方式的具体实现方式可以是:
步骤1、经过技术选型,确定本框架基于spring-boot进行构建。
更具体为调研并比较了spring-boot和dropwizard框架,鉴于spring-boot作为spring生态的一部分,与spring的各个组件能很好地结合起来;基于spring-boot进行开发有利于降低框架使用者的学习成本,真正做到快速开发。
步骤2、研究确定本框架的各个模块及其功能。
更具体为根据以往的工作经验积累,初步确定了基本的框架组成,然后对各个组件进行精简合并,直到确定最终的架构。
步骤3、创建构成本框架的基本模块。
更具体为搭建框架的工程,添加stone-dependencies、stone-parent、stone-application、stone-application-web、stone-application-service和stone-components等模块。
步骤4、在stone-components模块中添加各种技术组件。
更具体为添加metrics、couchbase、dubbo、mybatis、swiftmq和dozer等技术组件模块。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种工程构建系统,包括:
多个工程模块,用于提供工程的公共配置、容器、工具并对所述工程进行抽象描述;
技术组件模块,用于为所述多个工程模块提供多个插件以及各个插件间的依赖关系;
工程/技术组件的父模块,用于为所述技术组件模块提供所述多个插件的插件源以及为所述多个工程模块和技术组件模块提供继承服务;
依赖管理模块,用于管理多个依赖关系,以确保所述技术组件模块提供给所述多个工程模块的插件间的依赖关系不发生冲突;
框架根模块,用于搭建框架,并对所述多个工程模块、技术组件模块、工程/技术组件的父模块和依赖管理模块进行管理。
2.根据权利要求1述的系统,所述依赖管理模块包括:
依赖关系参考单元,用于提供参考的依赖关系;
依赖冲突解析单元,用于解析所述参考的依赖关系间互相冲突的可能性;
依赖冲突解决单元,用于根据所述可能性删除和/或修改所述参考的依赖关系。
3.根据权利要求1述的系统,所述多个工程模块包括:通用工程模块、网站工程模块或服务工程模块。
4.根据权利要求1-3中任一项所述的系统,所述技术组件模块包括metrics、couchbase、dubbo、mybatis、swiftmq和dozer组件模块中的至少一种。
5.根据权利要求1-3任一项所述的系统,所述框架根模块搭建的框架为基于spring-boot的框架。
6.一种工程构建系统的构建方法,包括:
构建用于搭建框架的框架根模块;
在所述框架根模块上构建依赖管理模块;
在所述依赖管理模块上构建工程/技术组件的父模块;
在所述工程/技术组件的父模块上构建技术组件模块和多个工程模块;
其中,所述多个工程模块用于提供工程的公共配置、容器、工具并对所述工程进行抽象描述;
所述技术组件模块用于为所述多个工程模块提供多个插件以及各个插件间的依赖关系;
所述工程/技术组件的父模块用于为所述技术组件模块提供所述多个插件的插件源以及为所述多个工程模块和技术组件模块提供继承服务;
所述依赖管理模块用于管理多个依赖关系,以确保所述技术组件模块提供给所述多个工程模块的插件间的依赖关系不发生冲突;
所述框架根模块用于对所述多个工程模块、技术组件模块、工程/技术组件的父模块和依赖管理模块进行管理。
7.根据权利要求6所述的方法,在所述框架根模块上构建依赖管理模块包括在所述框架根模块上:
构建用于提供参考的依赖关系的依赖关系参考单元;
构建用于解析所述参考的依赖关系间互相冲突的可能性的依赖冲突解析单元;
构建用于根据所述可能性删除和/或修改所述参考的依赖关系的依赖冲突解决单元;
利用所述依赖关系参考单元、所述依赖冲突解析单元、所述依赖冲突解决单元构成依赖管理模块。
8.根据权利要求6所述的方法,所述多个工程模块包括:通用工程模块、网站工程模块或服务工程模块。
9.根据权利要求6-8中任一项所述的方法,所述技术组件模块包括metrics、couchbase、dubbo、mybatis、swiftmq和dozer组件模块中的至少一种。
10.根据权利要求6-8中任一项所述的方法,所述构建用于搭建框架的框架根模块包括构建用于搭建spring-boot框架的框架根模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510888659.XA CN105893013A (zh) | 2015-12-07 | 2015-12-07 | 工程构建系统及其构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510888659.XA CN105893013A (zh) | 2015-12-07 | 2015-12-07 | 工程构建系统及其构建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105893013A true CN105893013A (zh) | 2016-08-24 |
Family
ID=57001976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510888659.XA Pending CN105893013A (zh) | 2015-12-07 | 2015-12-07 | 工程构建系统及其构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105893013A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766036A (zh) * | 2017-10-13 | 2018-03-06 | 深圳市金证科技股份有限公司 | 一种模块的构建方法、构建装置及终端设备 |
CN108399081A (zh) * | 2018-02-09 | 2018-08-14 | 广州市两棵树网络科技有限公司 | 一种MyBatis逆向工程生成器 |
CN110442376A (zh) * | 2019-07-19 | 2019-11-12 | 精硕科技(北京)股份有限公司 | 一种实现软件打包的方法及装置 |
CN110769005A (zh) * | 2019-11-11 | 2020-02-07 | 交控科技股份有限公司 | 一种轨道交通多专业多系统多协议数据采集方法 |
CN111324333A (zh) * | 2018-12-17 | 2020-06-23 | 中移(杭州)信息技术有限公司 | 一种基于组件化的软件开发方法及装置 |
CN112860248A (zh) * | 2019-11-27 | 2021-05-28 | 中盈优创资讯科技有限公司 | 源代码生成方法及装置 |
CN114443169A (zh) * | 2022-01-28 | 2022-05-06 | 中国民生银行股份有限公司 | 一种实现技术组件平台化的方法及装置 |
CN116860247A (zh) * | 2023-08-31 | 2023-10-10 | 江西省信息中心(江西省电子政务网络管理中心 江西省信用中心 江西省大数据中心) | 一种用户界面生成方法、装置、存储介质及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221498A (zh) * | 2007-01-08 | 2008-07-16 | 华为技术有限公司 | 一种对业务模块进行管理的系统及方法 |
US20100229149A1 (en) * | 2009-03-06 | 2010-09-09 | Concurrent Technologies Corporation | Application Framework For Reactive Information Propagation And Planning For Lifelike Exercises |
CN102520967A (zh) * | 2011-12-28 | 2012-06-27 | 深圳市融创天下科技股份有限公司 | 一种创建与使用移动平台插件的方法、系统和移动终端 |
CN102662656A (zh) * | 2012-03-15 | 2012-09-12 | 北京神州数码思特奇信息技术股份有限公司 | 一种程序结构插件化方法及系统 |
CN103294458A (zh) * | 2012-02-28 | 2013-09-11 | 鼎亿数码科技(上海)有限公司 | 基于插件的软件开发方法 |
CN103309674A (zh) * | 2013-06-25 | 2013-09-18 | 深圳中兴网信科技有限公司 | 一种软件架构系统 |
CN103324470A (zh) * | 2012-03-21 | 2013-09-25 | 阿里巴巴集团控股有限公司 | 一种Web系统生成的方法和装置 |
CN104834528A (zh) * | 2015-05-25 | 2015-08-12 | 北京京东尚科信息技术有限公司 | 依赖版本处理插件及采用其对依赖版本进行处理的方法 |
-
2015
- 2015-12-07 CN CN201510888659.XA patent/CN105893013A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221498A (zh) * | 2007-01-08 | 2008-07-16 | 华为技术有限公司 | 一种对业务模块进行管理的系统及方法 |
US20100229149A1 (en) * | 2009-03-06 | 2010-09-09 | Concurrent Technologies Corporation | Application Framework For Reactive Information Propagation And Planning For Lifelike Exercises |
CN102520967A (zh) * | 2011-12-28 | 2012-06-27 | 深圳市融创天下科技股份有限公司 | 一种创建与使用移动平台插件的方法、系统和移动终端 |
CN103294458A (zh) * | 2012-02-28 | 2013-09-11 | 鼎亿数码科技(上海)有限公司 | 基于插件的软件开发方法 |
CN102662656A (zh) * | 2012-03-15 | 2012-09-12 | 北京神州数码思特奇信息技术股份有限公司 | 一种程序结构插件化方法及系统 |
CN103324470A (zh) * | 2012-03-21 | 2013-09-25 | 阿里巴巴集团控股有限公司 | 一种Web系统生成的方法和装置 |
CN103309674A (zh) * | 2013-06-25 | 2013-09-18 | 深圳中兴网信科技有限公司 | 一种软件架构系统 |
CN104834528A (zh) * | 2015-05-25 | 2015-08-12 | 北京京东尚科信息技术有限公司 | 依赖版本处理插件及采用其对依赖版本进行处理的方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766036B (zh) * | 2017-10-13 | 2020-09-18 | 深圳市金证科技股份有限公司 | 一种模块的构建方法、构建装置及终端设备 |
CN107766036A (zh) * | 2017-10-13 | 2018-03-06 | 深圳市金证科技股份有限公司 | 一种模块的构建方法、构建装置及终端设备 |
CN108399081A (zh) * | 2018-02-09 | 2018-08-14 | 广州市两棵树网络科技有限公司 | 一种MyBatis逆向工程生成器 |
CN108399081B (zh) * | 2018-02-09 | 2021-01-26 | 广州洋葱时尚集团有限公司 | 一种MyBatis逆向工程生成器 |
CN111324333B (zh) * | 2018-12-17 | 2022-08-30 | 中移(杭州)信息技术有限公司 | 一种基于组件化的软件开发方法及装置 |
CN111324333A (zh) * | 2018-12-17 | 2020-06-23 | 中移(杭州)信息技术有限公司 | 一种基于组件化的软件开发方法及装置 |
CN110442376A (zh) * | 2019-07-19 | 2019-11-12 | 精硕科技(北京)股份有限公司 | 一种实现软件打包的方法及装置 |
CN110769005A (zh) * | 2019-11-11 | 2020-02-07 | 交控科技股份有限公司 | 一种轨道交通多专业多系统多协议数据采集方法 |
CN112860248A (zh) * | 2019-11-27 | 2021-05-28 | 中盈优创资讯科技有限公司 | 源代码生成方法及装置 |
CN112860248B (zh) * | 2019-11-27 | 2023-12-05 | 中盈优创资讯科技有限公司 | 源代码生成方法及装置 |
CN114443169A (zh) * | 2022-01-28 | 2022-05-06 | 中国民生银行股份有限公司 | 一种实现技术组件平台化的方法及装置 |
CN116860247A (zh) * | 2023-08-31 | 2023-10-10 | 江西省信息中心(江西省电子政务网络管理中心 江西省信用中心 江西省大数据中心) | 一种用户界面生成方法、装置、存储介质及电子设备 |
CN116860247B (zh) * | 2023-08-31 | 2023-11-21 | 江西省信息中心(江西省电子政务网络管理中心 江西省信用中心 江西省大数据中心) | 一种用户界面生成方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105893013A (zh) | 工程构建系统及其构建方法 | |
US11973760B2 (en) | Hierarchical permissions model within a document | |
US8141029B2 (en) | Method and system for executing a data integration application using executable units that operate independently of each other | |
US9043756B2 (en) | Compound versioning and identification scheme for composite application development | |
Ahmad et al. | A framework for architecture-driven migration of legacy systems to cloud-enabled software | |
US8661404B2 (en) | Method for improving execution efficiency of a software package customization | |
US20100121740A1 (en) | Data driven orchestration of business processes | |
US11226813B2 (en) | System and method for automated source code generation to provide service layer functionality for legacy computing systems in a service-oriented architecture | |
US9760348B2 (en) | Verification of a dataflow representation of a program through static type-checking | |
Niemelä et al. | Capturing quality requirements of product family architecture | |
US20200401630A1 (en) | Composite index on hierarchical nodes in the hierarchical data model within a case model | |
Løkkegaard et al. | Towards a framework for modular service design synthesis | |
US20120095950A1 (en) | Systems and methods for implementing business rules designed with cloud computing | |
US8051404B2 (en) | Software development | |
WO2009061146A2 (en) | A method for software development and operation based on component reuse and dependency injection | |
Fill et al. | Formalizing meta models with FDMM: the ADOxx case | |
CN109740989A (zh) | 一种物料指派的方法及系统、计算机设备可读存储介质 | |
CN106557307B (zh) | 业务数据的处理方法及处理系统 | |
CN115668128A (zh) | 使云服务的采用自动化 | |
US9466037B2 (en) | Versioning and effectivity dates for orchestration business process design | |
Assunção et al. | Extracting variability-safe feature models from source code dependencies in system variants | |
US20060048140A1 (en) | Method, system and article for generating installation merge packages | |
US7844583B2 (en) | Method and system for obtaining files from a set of sources | |
CN102147750A (zh) | 作业处理方法和系统 | |
CN111277650B (zh) | 一种结合功能指标和非功能指标的自动化微服务识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160824 |
|
WD01 | Invention patent application deemed withdrawn after publication |