CN103500099B - 一种通过扩展点和扩展实现软件快速二次开发的方法 - Google Patents

一种通过扩展点和扩展实现软件快速二次开发的方法 Download PDF

Info

Publication number
CN103500099B
CN103500099B CN201310456133.5A CN201310456133A CN103500099B CN 103500099 B CN103500099 B CN 103500099B CN 201310456133 A CN201310456133 A CN 201310456133A CN 103500099 B CN103500099 B CN 103500099B
Authority
CN
China
Prior art keywords
extension
realized
point
plug
extension point
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
Application number
CN201310456133.5A
Other languages
English (en)
Other versions
CN103500099A (zh
Inventor
刘东要
曹明远
卢学军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Fuheng Yunchuang Data Interconnection Technology Co.,Ltd.
Original Assignee
Tianjin Lan Gen Moyun Data Linkage Technology Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin Lan Gen Moyun Data Linkage Technology Ltd filed Critical Tianjin Lan Gen Moyun Data Linkage Technology Ltd
Priority to CN201310456133.5A priority Critical patent/CN103500099B/zh
Publication of CN103500099A publication Critical patent/CN103500099A/zh
Application granted granted Critical
Publication of CN103500099B publication Critical patent/CN103500099B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种通过扩展点和扩展实现软件快速二次开发的方法,其特征在于:在软件中定义插件具备的扩展点,并且定义如何使用这些扩展点。由于本发明用xml来描述扩展点和扩展的内容,同时提供与扩展点相对应的Schema定义,这样二次开发人员能够方便快捷的通过xml配置将新的功能点加入到产品已有框架中,同时大大降低了与产品已有代码的耦合性。

Description

一种通过扩展点和扩展实现软件快速二次开发的方法
技术领域
本发明涉及计算机领域,特别涉及一种通过扩展点和扩展实现软件快速二次开发的方法。
背景技术
在信息化的大趋势下,随着OA的普及,企业对OA应用的要求也越来越高,在实际应用中,越来越多的OA用户需要进行二次开发才能满足企业管理的全面需求,这也是由管理软件的特点所决定的。原因主要归纳为两点:一方面,OA产品是商品化软件,属于行业通用型软件,但每个企业都有其自身的特点,因此需要对原来的OA系统进行适当的修改,以提高OA系统适用性。另一方面,随着OA项目的实施,客户对OA系统有了更深的了解,应用不断深入,对OA系统就会提出更多的要求,例如增加很多新的功能模块,这些要求也形成了OA二次开发的另一来源。
传统的OA产品一般会控制其源代码的开放,这样一来,如果企业要对已有的OA系统进行二次开发,只能继续由现有OA系统的开发者提供服务。更为严重的是如果在现有OA基础上做二次开发,则产品升级(升级的目的一般包括添加模块、增加新功能、功能升级、错误的修复、增强安全性、改善性能等)后一般是不包含用户二次开发的功能,选择升级则需要重新将二次开发的功能整合到升级的版本中。一般的选择二次开发服务的技术人员水平不是很高,设计能力有限,很多都是直接在OA系统的源码中进行修改,这种做法带来了两方面的不良后果,一是在产品中引入新的错误需要经过一段时间的运行后稳定下来,二是如果使用新升级的版本则需重新整合代码、代价比较高。
随着OA产品技术的逐渐成熟,越来越多的OA厂商开始提供开源型OA,支持源代码的开放,对企业用户来说这无疑是一大福音,借助源代码,用户可以自主进行OA的二次开发,增加了企业在信息化运用方面的主动性。然而不得不提的是,即使提供了源代码,OA系统的二次开发也不是一蹴而就的事。由于OA系统的二次开发接口,主要针对专职程序设计人员,往往因为实施周期长、风险大、费用高影响了企业OA的正常应用。
OA系统个性化功能的二次开发,首先应该在产品的体系结构上做到对修改封闭、对扩展开发,尽量避免直接在已有代码中进行修改,这样会引入新的错误。一个良好的OA软件系统除了功能、安全性、稳定性等重要因素外,如果需要进行二次开发则其可扩展性、可集成性就显得非常重要了。
因此,现有技术需要一种能够克服OA二次开发的弊端的方法。
发明内容
鉴于现有技术中存在的问题,本发明目的在于提供一种通过扩展点和扩展实现软件快速二次开发的方法,其能够提高系统的扩展性,降低二次开发的代码与产品代码的耦合度,提高二次开发的效率。
本发明提供的一种通过扩展点和扩展实现软件快速二次开发的方法,其特征在于:
在软件中定义插件具备的扩展点,并且定义如何使用这些扩展点。
优选的,所述扩展点和扩展均通过Schema定义。
优选的,通过可视化工具或者手动进行xml配置来实现扩展点和扩展的定义。
优选的,每个扩展点可以有多个扩展实现,且每个扩展实现之间采用插件化的开发机制。
优选的,在定义了扩展点和扩展后,相应的平台启动流程包括:
S1、模块插件注册;
S2、解析插件MANIFEST文件;
S3、判断是否定义了扩展点,如否则直接执行到步骤S5;
S4、解析插件扩展点;
S5、判断是否实现了扩展,如否则直接执行到步骤S7;
S6、解析插件扩展;
S7、解析插件依赖的其它资源;
S8、启动完毕。
附图说明
图1例示了本发明实施例扩展点与扩展的关系示意图;
图2例示了本发明实施例提供的平台启动流程图。
具体实施方式
为使本发明的上述目的、特征和优点更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为了实现将新开发的功能点快速融入系统框架中,因此本发明提出了扩展点和扩展的概念。扩展点是引入了面向对象中接口的思想,就是说可以有多个扩展来实现这个接口,它定义插件具备的扩展点并且定义了如何使用这些扩展点,这里通过Schema定义。而扩展则是根据扩展点中定义的Schema来描述扩展的内容。
优选的,本发明可通过可视化工具或者手动进行xml配置来实现扩展点和扩展的定义。
图1例示了本发明实施例扩展点与扩展的关系示意图。如图1所示,可以在平台模块上定义扩展点,在业务模块上具体实现相应的扩展。每个扩展点都可以有多个扩展实现,而且每个扩展实现之间因为采用了插件化的开发机制,所以扩展实现之间是相互隔离的。
图2例示了本发明实施例提供的平台启动流程图。如图2所示,通过在原程序中定义了扩展点和扩展,相应的平台启动流程包括:
S1、模块插件注册;
S2、解析插件MANIFEST文件;
S3、判断是否定义了扩展点,如否则直接执行到步骤S5;
S4、解析插件扩展点;
S5、判断是否实现了扩展,如否则直接执行到步骤S7;
S6、解析插件扩展;
S7、解析插件依赖的其它资源;
S8、启动完毕。
从图2可以很清楚的看到,每个模块插件在被注册到系统平台中时,系统都会试图解析其所定义的扩展点和其所实现的扩展,解析结果将被存储到系统内存中,以方便通过系统接口快速的调用。
以下,通过一具体的扩展及扩展点应用实例,来更为清楚地理解本发明。
通过对系统平台功能点的分析,我们在系统中共定义了如下扩展点:添加快速链接、添加js到首页、更换首页默认加载页面、添加内容到跑马灯、添加首页状态、添加个性设置页签、自定义portlet、添加快速操作、添加导航框架、添加日程类型、添加文档操作、添加文档处理、模块添加提醒功能等。
在这里以添加快速链接为例对这种工作原理做一详细阐述:
1)在系统平台的其中一个插件模块中定义一个名为framework_navi.headerlink的扩展点,其对应的Schema中定义了1个link节点,该节点下定义了如下属性:text(链接显示的文本)、path(链接路径)、opentype(链接打开方式)、index(排序序号);
2)在系统中的其中一个业务模块中实现framework_navi.headerlink的扩展,即对link节点下的属性做具体的描述,如:text="个性设置"、path="/jsp/userconfig/userconfig.jsp"、opentype="maskOpen"、index="10";
3)系统平台启动时,将依次解析framework_navi.headerlink的扩展点和其所对应的所有扩展实现,并且在系统内存中会建立一个该扩展点与其所有扩展实现的对应关系,当其中某个业务模块被卸载后,该业务模块中所有的扩展实现也将被从系统内存中卸载掉,而且不会影响其他业务模块中的扩展实现;
4)在系统的快速链接区域做数据展示时就不用像传统模式开发时那样,通过硬编码指定固定的链接、或者通过读取常用的配置文件来进行展示,而是很简单的调用系统提供的接口,获取到快速链接的所有扩展实现,将它们依次按照排序序号进行展示就可以了,这样系统快速链接区域与其相关的业务模块的代码耦合性就被大大的降低。
5)系统平台在启动运行状态时如果需要将一个快速链接展示在快速链接区域,则只需要安装新的一个快速链接扩展实现所在的业务模块即可,系统便像平台启动流程图中所示,重复解析、加载的过程,新的快速链接便很容易被展示到系统中。
以上是对本发明的优选实施例进行的详细描述,但本领域的普通技术人员应该意识到,在本发明的范围内和精神指导下,各种改进、添加和替换都是可能的,例如使用可实现同种功能目的的算法、使用不同的编程语言(如C、C++、Java等)实现等。这些都在本发明的权利要求所限定的保护范围内。

Claims (5)

1.一种通过扩展点和扩展实现来实现软件快速二次开发的方法,其特征在于:在软件中定义插件具备的扩展点,并且定义如何使用这些扩展点;
对所述扩展点定义一个或多个节点,在所述节点下定义多个属性项目,根据二次开发的业务需求,为所述属性项目做具体描述;
系统平台启动后,将依次解析扩展点和其所对应的所有扩展实现,并且在系统内存中会建立一个该扩展点与其所有扩展实现的对应关系,当其中某个业务模块被卸载后,该业务模块中所有的扩展实现也将被从系统内存中卸载掉,而且不会影响其他业务模块中的扩展实现;
在系统的快速链接区域做数据展示时,通过调用系统提供的接口,获取到快速链接的所有扩展实现,将它们依次按照排序序号进行展示;
系统平台在启动运行状态时只需安装一个快速链接扩展实现所在的业务模块即可将一个快速链接展示在快速链接区域。
2.如权利要求1所述的方法,其特征在于:所述扩展点和扩展实现均通过Schema定义。
3.如权利要求1所述的方法,其特征在于:通过可视化工具或者手动进行xml配置来实现扩展点和扩展实现的定义。
4.如权利要求1所述的方法,其特征在于:每个扩展点可以有多个扩展实现,且每个扩展实现之间采用插件化的开发机制。
5.如权利要求1所述的方法,其特征在于,在定义了扩展点和扩展实现后,相应的平台启动流程包括:
S1、模块插件注册;
S2、解析插件MANIFEST文件;
S3、判断是否定义了扩展点,如否则直接执行到步骤S5;
S4、解析插件扩展点;
S5、判断是否实现了扩展实现,如否则直接执行到步骤S7;
S6、解析插件扩展实现;
S7、解析插件依赖的其它资源;
S8、启动完毕。
CN201310456133.5A 2013-09-27 2013-09-27 一种通过扩展点和扩展实现软件快速二次开发的方法 Active CN103500099B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310456133.5A CN103500099B (zh) 2013-09-27 2013-09-27 一种通过扩展点和扩展实现软件快速二次开发的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310456133.5A CN103500099B (zh) 2013-09-27 2013-09-27 一种通过扩展点和扩展实现软件快速二次开发的方法

Publications (2)

Publication Number Publication Date
CN103500099A CN103500099A (zh) 2014-01-08
CN103500099B true CN103500099B (zh) 2017-06-20

Family

ID=49865314

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310456133.5A Active CN103500099B (zh) 2013-09-27 2013-09-27 一种通过扩展点和扩展实现软件快速二次开发的方法

Country Status (1)

Country Link
CN (1) CN103500099B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260206B (zh) * 2015-10-10 2018-10-16 北京京东尚科信息技术有限公司 数据源插件实现方法及服务器
CN106059796B (zh) * 2016-05-17 2019-05-24 中国建设银行股份有限公司 一种业务扩展系统及方法
CN106547534B (zh) * 2016-09-19 2020-04-14 华为技术有限公司 展示页面扩展点的装置及方法
CN107133040A (zh) * 2017-05-02 2017-09-05 山东浪潮通软信息科技有限公司 一种标准产品业务装置及业务模块扩展置换方法
CN111813385B (zh) * 2020-07-07 2023-09-22 赞同科技股份有限公司 一种基于Web应用的页面插件化方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1968154A (zh) * 2006-09-15 2007-05-23 华为技术有限公司 使用插件进行业务扩展的系统及其方法
CN101727490A (zh) * 2009-12-22 2010-06-09 福建星网锐捷网络有限公司 Web应用中实现页面插件化的方法和web服务器
CN101847100A (zh) * 2010-06-08 2010-09-29 用友软件股份有限公司 扩展软件应用的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509638B2 (en) * 2004-08-02 2009-03-24 International Business Machines Corporation Method and apparatus for providing a pluggable and extendable J2EE architecture

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1968154A (zh) * 2006-09-15 2007-05-23 华为技术有限公司 使用插件进行业务扩展的系统及其方法
CN101727490A (zh) * 2009-12-22 2010-06-09 福建星网锐捷网络有限公司 Web应用中实现页面插件化的方法和web服务器
CN101847100A (zh) * 2010-06-08 2010-09-29 用友软件股份有限公司 扩展软件应用的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Eclipse插件扩展点技术的研究及其在嵌入式调试上具开发中的应用;王阳赞 等;《软件导刊》;20081031;第7卷(第10期);第21-23页 *

Also Published As

Publication number Publication date
CN103500099A (zh) 2014-01-08

Similar Documents

Publication Publication Date Title
CN103500099B (zh) 一种通过扩展点和扩展实现软件快速二次开发的方法
US8307331B2 (en) User interface, operating system and architecture
US7607126B2 (en) System and method for external override of annotations
CN105487864A (zh) 代码自动生成的方法和装置
CN102087594B (zh) 扩展点和插件的管理方法和装置
US20050193361A1 (en) System and method for presentation of wireless application data using repetitive UI layouts
CN107479867A (zh) 应用软件插件化运行方法及装置
US8087000B2 (en) Synchronizing codes from multiple software configuration management systems
US10997131B1 (en) Using a member attribute to perform a database operation on a computing device
US8510320B2 (en) Silent migration of business process binaries
US20160275126A1 (en) Accessing and editing virtually-indexed message flows using structured query langauge (sql)
CN102054041B (zh) 元数据升级方法和系统
CN112486532B (zh) 配置文件的管理方法、装置、电子设备及存储介质
CN110795135A (zh) 一种实现注解式配置的方法和装置
US20130297755A1 (en) Network element configuration management
CN102541544A (zh) 树形控件的处理方法、装置及系统
US11900269B2 (en) Method and apparatus for managing knowledge base, device and medium
US7487227B2 (en) Scripting engine having a sequencer table and a plurality of secondary tables for network communication software
CN109739868B (zh) 一种数据处理方法及其相关设备
CN109960505A (zh) 用户界面组件插件化方法、系统、设备及存储介质
US20040243973A1 (en) Method and apparatus for generating a graphical user interface
CN103220336B (zh) 一种文件同步中向量时钟的实现方法及系统
CN103124381B (zh) 业务配置方法及系统
CN102611580B (zh) 一种基于规格驱动的多版本网络管理方法
US8886564B2 (en) Program for resource security in a database management system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20170330

Address after: 300000 Binhai high tech Zone, Tianjin Binhai hi tech Park Science and Technology Park, No. 39, No. six, No. 9-3-401

Applicant after: Tianjin Lanmo Yunchuang Data Interconnection Technology Co.,Ltd.

Address before: A District No. 1 building 300384 Tianjin Xinmao software Nankai District Huayuan Industrial District of Tianjin New Technology Industrial Zone Rong Yuan Road 1810-1811 room

Applicant before: MOCHA SOFTWARE (TIANJIN) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: A219, No. 8 Wuhua Road, Huayuan Industrial Zone, Binhai New Area, Tianjin, 300384

Patentee after: Tianjin Fuheng Yunchuang Data Interconnection Technology Co.,Ltd.

Address before: No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science and Technology Park, Tianjin Binhai High tech Zone, 300000

Patentee before: Tianjin Lanmo Yunchuang Data Interconnection Technology Co.,Ltd.

CP03 Change of name, title or address