CN105677424A - 一种基于微内核的组件化开发集成的热加载方法 - Google Patents
一种基于微内核的组件化开发集成的热加载方法 Download PDFInfo
- Publication number
- CN105677424A CN105677424A CN201610015478.0A CN201610015478A CN105677424A CN 105677424 A CN105677424 A CN 105677424A CN 201610015478 A CN201610015478 A CN 201610015478A CN 105677424 A CN105677424 A CN 105677424A
- Authority
- CN
- China
- Prior art keywords
- assembly
- component
- development
- engineering
- loading
- 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/60—Software deployment
- G06F8/61—Installation
-
- 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
Abstract
本发明公开了一种基于微内核的组件化开发集成的热加载方法。该方法的具体流程为:首先,生成开发工程;其次,启动项目,解析组件;最后,对组件进行加载、维护。通过本发明采用微内核的组件化开发模式,支持热加载,提高了组件的复用率,方便系统中组件的管理,规范组件的开发,提高组件通用性,能较好提升了开发人员的开发效率、运维人员的管理效率。满足了企业快速应用,迭代开发的技术要求。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种基于微内核的组件化开发集成的热加载方法。
背景技术
J2EE模块化开发技术。Servlet3,加入了JAVA模块化开发特性,使之可以将JAVA程序、JSP程序、配置文件等,分模块开发,最后,达到解耦效果。但是,该特性对Servlet3之前应用并不支持。
热加载也即动态加载。JAVA属于编译型语言,程序会被编译成字节码,然后通过JAVA虚拟机(简称:JVM)解析执行字节码。因此,JAVA属于静态类型语言。但是,JAVA又加入了很多动态语言特性。例如:反射机制。通过JAVA反射机制,可以实现程序运行期间的动态加载。使之突破静态语言的限制。因此,在组件化设计中,可以通过该特性,将JAVA实现组件加载的动态化。
控制反转(IoC)技术,是一个通过面向接口编程对程序进行解耦的方法,也是轻量级的Spring框架的核心。控制反转一般分为两种类型,依赖注入(DI)和依赖查找(DependencyLookup)。通过接口注入,可以实现动态加载组件化间互相调用的解耦。
OSGi技术,是一种面向Java的动态模型系统。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。Java提供在多个平台支持产品的可移植性。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语。这些组件能够组装进一个应用和部署中。但OSGI学习成本高,开发限于OSGI的规范,导致开发难度大,而且没有实现远程加载组件功能,没有实现集成界面组件功能。
发明内容
本发明的目的是为了克服现有技术的缺陷,提供一种基于微内核的组件化开发集成的热加载方法,从而实现微内核加组件化开发模式,支持热加载,提高组件的复用率,方便系统中组件的管理,能够规范化组件的开发,提高组件的通用性,提升运维人员的管理效率。
为实现上述目的,本发明提供了一种基于微内核的组件化开发集成的热加载方法,其具体流程为:首先,生成组件开发工程;其次,启动项目,解析组件;最后,对组件进行加载、维护。
其中,进一步地,组件,包括java类、界面、配置文件和依赖类库。
进一步地,配置文件,包括由程序自动生成的状态文件和POM文件。
进一步地,组件加载,包括本地加载和远程加载两种方式。
本地加载,即在工程启动期间,定时扫描组件解析目录,并通过自定义classloader对组件进行解析,和导出界面。
远程加载,即在工程运行期间,远程加载组件包,下载到本地组件安装目录,可对比版本进行版本更新。
进一步地,本发明中生成组件开发工程是通过eclipse插件,选择对应的微内核工程,安装组件,生成组件开发工程。
本发明技术方案带来的有益效果:
1、微内核加组件化开发模式,支持热加载,提高组件通用性,提高了组件的复用率。
2、提升了开发人员的开发效率。
3、简化组件的维护管理,提升运维人员的管理效率,满足了企业快速应用,迭代开发,易于维护的技术要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明的方法流程图;
图2是本发明的组件架构图;
图3是本发明的微内核组件关系图;
图4是本发明的实施例中工程的生成流程图;
图5是本发明的实施例中组件管理用例图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在功能业务、前端界面等开发过程中,往往存在重复业务、代码冗余等问题,造成开发资源的浪费,维护困难等问题。
JAVAWEB在测试、生成环境下,不能动态解析新增JAR模块,造成JAVAWEB工程在运行期间,不能热加载新功能。
Servlet3.0以前,界面文件不能独立于web工程进行解析,造成业务功能不能做到模块化开发。
本发明提供一种基于微内核的组件化开发集成的热加载方法。其提供了一套完整的组件定义、开发、集成规范,支持Eclipse插件生成项目,远程加载组件,热加载组件等功能,组件可携带界面文件,兼容servlet3以前的系统。
本发明的一种基于微内核的组件化开发集成的热加载方法,其具体流程如图1所示:首先,生成组件开发工程;其次,启动项目,解析组件;最后,对组件进行加载、维护。
其中,组件框架图如图2所示,包括java类、界面、配置文件和依赖类库。
组件解析,是通过组件配置文件,获取组件基本信息、状态、组件依赖信息等元数据,对后面组件加载、组件的管理提供了数据基础。其中配置文件包括:由程序自动生成的状态文件;POM文件。
组件加载,包括本地加载、远程加载两种方式。
本地加载,即在工程启动期间,定时扫描组件解析目录,并通过自定义classloader对组件进行解析,和导出界面等。
远程加载,即在工程运行期间,远程加载组件包,下载到本地组件安装目录,可对比版本进行版本更新。
微内核设计思路,是面向组件开发,所有业务,界面等皆为组件。组件与组件间通过接口相互连接,从而达到组件解耦复用的效果。如图3所示为微内核组件关系图。
功能型组件:提供通用的基础功能,比如HTTP、FTP、Excel、线程池、webserviceSOAP客户端等功能。
模块型组件:主要是独立业务模块的程序。
拦截型组件:通过AOP或filter模式,实现的拦截器功能。
UI组件:前端界面动态加载功能。
本发明中生成组件开发工程是通过eclipse插件,选择对应的微内核工程,安装组件,生成组件开发工程。工程的生成流程图如图4所示。
组件的加载、维护通过组件管理平台进行操作,即可对本地组件实行启用、停止、禁用、卸载、版本更新,对远程组件实行下载,和热加载。如图5所示是组件管理用例图。
通过本发明采用微内核的组件化开发模式,支持热加载,提高了组件的复用率,方便系统中组件的管理,规范组件的开发,提高组件通用性,能较好提升了开发人员的开发效率、运维人员的管理效率。满足了企业快速应用,迭代开发的技术要求。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (5)
1.一种基于微内核的组件化开发集成的热加载方法,其特征在于,其具体流程为:首先,生成组件开发工程;其次,启动项目,解析组件;最后,对组件进行加载、维护。
2.根据权利要求1所述的方法,其特征在于,组件,包括java类、界面、配置文件和依赖类库。
3.根据权利要求2所述的方法,其特征在于,配置文件,包括由程序自动生成的状态文件和POM文件。
4.根据权利要求1所述的方法,其特征在于,组件加载,包括本地加载和远程加载两种方式;
本地加载,即在工程启动期间,定时扫描组件解析目录,并通过自定义classloader对组件进行解析,和导出界面;
远程加载,即在工程运行期间,远程加载组件包,下载到本地组件安装目录,可对比版本进行版本更新。
5.根据权利要求1所述的方法,其特征在于,本发明中生成组件开发工程是通过eclipse插件,选择对应的微内核工程,安装组件,生成组件开发工程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610015478.0A CN105677424A (zh) | 2016-01-08 | 2016-01-08 | 一种基于微内核的组件化开发集成的热加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610015478.0A CN105677424A (zh) | 2016-01-08 | 2016-01-08 | 一种基于微内核的组件化开发集成的热加载方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105677424A true CN105677424A (zh) | 2016-06-15 |
Family
ID=56299923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610015478.0A Pending CN105677424A (zh) | 2016-01-08 | 2016-01-08 | 一种基于微内核的组件化开发集成的热加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677424A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133055A (zh) * | 2017-06-07 | 2017-09-05 | 焦点科技股份有限公司 | 一种基于ClassLoader实现定制开发的方法 |
CN109800013A (zh) * | 2019-01-25 | 2019-05-24 | 上海创景信息科技有限公司 | 服务器应用功能热扩展的方法和系统及可读存储介质 |
CN114047982A (zh) * | 2022-01-13 | 2022-02-15 | 中国人民解放军96901部队 | 一种基于描述规范的微内核组件集成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129375A1 (en) * | 2000-02-23 | 2006-06-15 | Dirk-Holger Lenz | Creation of a protocol stack |
CN1829127A (zh) * | 2006-04-20 | 2006-09-06 | 北京星河亮点通信软件有限责任公司 | 一种基于微内核的通信终端测试仪表控制平台的构建方法 |
CN101115078A (zh) * | 2007-07-19 | 2008-01-30 | 中兴通讯股份有限公司 | 一种用于开发移动通信终端设备的系统 |
CN101458629A (zh) * | 2008-12-31 | 2009-06-17 | 北京中星微电子有限公司 | 嵌入式实时操作系统中实现动态加载的方法和装置 |
-
2016
- 2016-01-08 CN CN201610015478.0A patent/CN105677424A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129375A1 (en) * | 2000-02-23 | 2006-06-15 | Dirk-Holger Lenz | Creation of a protocol stack |
CN1829127A (zh) * | 2006-04-20 | 2006-09-06 | 北京星河亮点通信软件有限责任公司 | 一种基于微内核的通信终端测试仪表控制平台的构建方法 |
CN101115078A (zh) * | 2007-07-19 | 2008-01-30 | 中兴通讯股份有限公司 | 一种用于开发移动通信终端设备的系统 |
CN101458629A (zh) * | 2008-12-31 | 2009-06-17 | 北京中星微电子有限公司 | 嵌入式实时操作系统中实现动态加载的方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133055A (zh) * | 2017-06-07 | 2017-09-05 | 焦点科技股份有限公司 | 一种基于ClassLoader实现定制开发的方法 |
CN107133055B (zh) * | 2017-06-07 | 2020-04-24 | 百卓网络科技有限公司 | 一种基于ClassLoader实现定制开发的方法 |
CN109800013A (zh) * | 2019-01-25 | 2019-05-24 | 上海创景信息科技有限公司 | 服务器应用功能热扩展的方法和系统及可读存储介质 |
CN109800013B (zh) * | 2019-01-25 | 2022-04-19 | 上海创景信息科技有限公司 | 服务器应用功能热扩展的方法和系统及可读存储介质 |
CN114047982A (zh) * | 2022-01-13 | 2022-02-15 | 中国人民解放军96901部队 | 一种基于描述规范的微内核组件集成方法 |
CN114047982B (zh) * | 2022-01-13 | 2022-04-08 | 中国人民解放军96901部队 | 一种基于描述规范的微内核组件集成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Vogel et al. | Adaptation and abstract runtime models | |
CN105022630B (zh) | 一种组件管理系统及组件管理方法 | |
CN102622241B (zh) | 一种软件升级方法及装置 | |
US20110078672A1 (en) | Classloading Technique for an Application Server that Provides Dependency Enforcement | |
US11561784B2 (en) | Versioning of pipeline templates for continuous delivery of services on datacenters configured in cloud platforms | |
CN101174217A (zh) | Java程序可动态更新化实现方法 | |
CN113434158B (zh) | 一种大数据组件的自定义管理方法、装置、设备及介质 | |
US11392366B1 (en) | Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms | |
CN105677424A (zh) | 一种基于微内核的组件化开发集成的热加载方法 | |
CN115640037B (zh) | 程序更新方法和装置 | |
CN107239313A (zh) | Spring应用服务的升级方法和存储介质 | |
Pessemier et al. | Components, ADL & AOP: Towards a Common Approach. | |
Süß et al. | Using DevOps toolchains in Agile model-driven engineering | |
CN111522623B (zh) | 组件化软件多进程运行系统 | |
CN111880804A (zh) | 应用程序代码的处理方法及装置 | |
Kajtazovic et al. | A component-based dynamic link support for safety-critical embedded systems | |
Calmant et al. | A dynamic and service-oriented component model for python long-lived applications | |
Bialek | Dynamic updates of existing Java applications | |
CN116107590A (zh) | 软件产品开发部署中兼容微服务和单体架构的实现方法及系统 | |
Rademacher et al. | Towards an extensible approach for generative microservice development and deployment using lemma | |
Boyer et al. | A robust reconfiguration protocol for the dynamic update of component‐based software systems | |
Wetherbee et al. | Beginning EJB 3: Java EE 7 Edition | |
Wood et al. | Triton: a domain specific language for cyber-physical systems | |
Lazar et al. | icomponent: A platform independent component model for dynamic execution environments | |
Motogna et al. | An agile MDA approach for service-oriented components |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160615 |
|
RJ01 | Rejection of invention patent application after publication |