CN1641586A - 一种实现应用程序界面集成和业务集成的方法 - Google Patents
一种实现应用程序界面集成和业务集成的方法 Download PDFInfo
- Publication number
- CN1641586A CN1641586A CN 200410000203 CN200410000203A CN1641586A CN 1641586 A CN1641586 A CN 1641586A CN 200410000203 CN200410000203 CN 200410000203 CN 200410000203 A CN200410000203 A CN 200410000203A CN 1641586 A CN1641586 A CN 1641586A
- Authority
- CN
- China
- Prior art keywords
- module
- interface
- business
- application program
- management
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000010354 integration Effects 0.000 title claims abstract description 16
- 230000015572 biosynthetic process Effects 0.000 claims description 3
- 238000011084 recovery Methods 0.000 claims description 2
- 230000018109 developmental process Effects 0.000 description 11
- 238000011161 development Methods 0.000 description 8
- 230000000712 assembly Effects 0.000 description 5
- 238000000429 assembly Methods 0.000 description 5
- 230000000875 corresponding effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 239000012467 final product Substances 0.000 description 2
- 241001673391 Entandrophragma candollei Species 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明有关一种实现应用程序界面集成和业务集成的方法,包括:启动一预定义的界面框架,将应用程序所需的界面组件添加到该界面框架中;启动一预定义的模块管理器,将应用程序的业务模块加入到该模块管理器的被管业务模块队列中。使用本发明的方法,在开发应用程序时,只需在界面框架中为新业务添加必要的组件,并将新的业务模块加入到模块管理器中即可,因此,可有效提高程序的开发效率,节省开发成本。
Description
技术领域
本发明涉及应用程序的开发领域,尤指一种实现应用程序界面集成和业务集成的方法。
背景技术
目前采用Java进行开发的独立应用软件或客户终端程序,开发伊始都要从头进行界面制作和集成。在这些不同的软件开发中所能够重用起来的仅仅只有一些单独的组件或工具类。而功能模块的集成、各种界面组件的装配这些几乎各个应用程序都需具备的功能却没有抽象出来。实际开发中,由于应用软件本身所具有的复杂性和易变性,使得将不同组件组装成一个应用软件的过程非常复杂和琐碎。所以,每次的开发都会占用过多的时间和资源,所得成果却不一定尽人意。
在目前的许多Web服务器上,有很多已经将集成功能与业务处理功能分离开来,如WebLogic,开发者只需根据业务需求创建各个EJB,这些EJB的集成由WebLogic所自动生成的Container完成。这样,就使得开发一个服务器端应用程序变得相对简单。工作量比从头进行低了许多。这种将集成功能与业务功能相分离的方式是业界公认能够提高软件开发效率的方法,但目前还没有应用到非Web的应用程序中。
现有技术的缺点是:
1、目前的独立应用程序或应用程序客户端还没有容器的概念,开发一个新的业务模块不仅需要考虑业务逻辑,还要考虑新业务与原有业务的集成,这种集成完全是重复的劳动。
2、新业务或新需求的加入困难,或者加入新的业务,软件整体界面需要进行较大幅度的调整。
3、代码重用的力度过小,界面代码重用率太低,开发效率低下。目前应用程序之间的重用代码多是单独的组件和工具类,而将这些独立类集成起来的代码则没有重用。在开发过程中,集成的工作量占了整个软件开发过程中的绝大多数。所以,虽然使用了大量的重用组件,还是不能有效地提高开发效率。
4、不利于一个企业统一不同应用程序的界面风格。由于不同应用程序的开发人员往往是不相同的,如果他们要进行界面风格上的统一,就需要订立详尽的界面规范,再分别参照进行设计。这样,就要保证具有及其完备和合理的界面规范,否则,还是会引起界面风格的不一致。而详尽的界面规范只能通过美术专业人士和软件界面设计人员花费大量时间,从实践中获得。
发明内容
鉴于上述现有技术中的缺点,本发明提供一种实现应用程序界面集成和业务集成的方法,能简单有效地实现应用程序的界面集成和业务集成,大大提高应用程序开发的效率。
本发明的方法包括:启动一预定义的界面框架,将应用程序所需的界面组件添加到该界面框架中;启动一预定义的模块管理器,将应用程序的业务模块加入到该模块管理器的被管业务模块队列中。
所述界面框架至少包括有菜单、工具条和状态栏及相应的菜单管理器、工具条管理器和状态栏管理器;所述将应用程序所需的界面组件添加到该界面框架中是通过修改菜单、工具条或状态栏的配置文件或增加其对象实例并通过相应管理器加载来实现的。
所述模块管理器具有模块管理接口和模块功能接口,实现对应用程序业务模块的管理和操作。
所述模块管理接口实现模块的注册、注销、加载、关闭和获得其它模块的对象引用。
所述模块功能接口实现模块的名字管理、模块间事件处理、模块之间的交叉调用、模块内的数据共享以及模块的初始化、复位、恢复和停止功能。
所述的业务模块继承于一基本模块,该基本模块提供了和模块管理器接口之间的缺省实现。
使用本发明的方法,给应用程序开发新业务时,只需在界面框架中为新业务添加必要的组件,并将新的业务模块加入到模块管理器中即可,因此,可有效提高程序的开发效率,节省开发成本。
具体实施方式
在应用程序开发中,总是存在着为了将不同模块的业务处理界面集成为一个整体而进行相关界面的集成。一个集成系统中的各种公共的界面元素,如菜单、工具条、状态栏等,我们希望业务模块不需负责它们的创建和管理,又能很方便地使用它们。一个业务模块与菜单、工具栏、状态栏的关系无非就是:这个模块加载到系统中时,需要增加一些自己的菜单、工具条按钮,还可能需要在状态栏上增加一些运行时的状态信息;而这个模块从系统中卸载时,又需要将它所相关的菜单和工具条按钮等从整个系统中去掉。因此,建立一界面框架,使其具有能够让业务模块很方便地增加或删除菜单、工具条按钮等界面组件的功能是一种很好的实现方式。以菜单为例,业务模块只需提供菜单(这个菜单可以是创建的实例、持久化的菜单对象,或者文件中用以生成菜单的配置信息等多种形式),并使用界面框架所提供的接口,就可以将一个或多个菜单加入到系统中或从系统中卸载这个菜单。
依据上面的原则,我们将那些实现集成功能的界面元素抽象出来,形成一界面框架,该界面框架包括多文档集成窗口(MDIFrame),窗口管理器(WindowManager),菜单管理器(MenuManager),工具条管理器(ToolbarManager),状态条管理器(StatusBarManager),信息输出管理器(OutputManager),终端管理器(TerminalManager),系统设置项管理器(SystemSettingsManager)等界面部件。其中MDIFrame是应用主窗口类,所有的界面控件都以此为基础;WindowManager管理MDIFrame中的子窗口,负责子窗口的注册、注销、操作和显示等;MenuManager负责菜单的管理、配置、显示等;ToolbarManager负责工具条的管理、配置、显示、定制等;StatusBarManager负责状态栏的管理、显示等;OutputManager负责信息输出窗口的管理;TerminalManager负责终端安全性管理,进行终端锁定和解除锁定;SystemSettingsManager负责管理各个模块的配置项。为了方便使用,在具体实现上,提供了静态的访问方法,或将它们做成Singleton类。所有的界面组件,如菜单、工具条按钮、状态条项目等,都主要以XML配置文件的形式存在,可以分别在系统启动或运行时进行加载。因此,在开发应用程序时,只需启动该界面框架,对于各业务模块,如果要增加菜单或工具条等界面元素,只需进行XML文件配置,再通过与其相对应的管理器进行加载,或者增加对象实例,则可以获得自己的菜单或工具条,实现了应用程序的界面集成。
应用程序的业务集成是由一模块管理器来实现的。
模块管理器是用于进行模块管理的工具,它负责业务模块的注册、注销、加载、关闭等工作。它是业务模块的运行容器,负责业务模块的整个生命周期。它提供了一种统一的方式来访问所管理的业务模块,任何一个模块都可以通过它所提供的接口,获得另一个模块的对象引用,从而与该模块进行交互。
该模块管理器具有一模块管理接口IModuleManagementInterface。这个接口包括模块的注册、注销、加载、关闭、获得其它模块的对象引用等。用于模块管理器对业务模块进行操纵。
该模块管理接口的程序实例如下:
public interface IModuleManagerInterface
{
register()
unregister()
loadModules()
ShutdownModule()
GetReference()
......
}
该模块管理器除了实现模块管理接口之外,还需实现一个模块功能接口IModuleInterfaceOperations,这个接口提供了模块的名字管理,模块间事件处理,模块之间的交叉调用,提取模块内的共享数据,模块的初始化、复位、恢复和停止等功能。其中,模块的名字管理用于唯一地标识一个模块。模块之间地事件处理和交叉调用用于模块之间的通讯。模块的初始化、复位、恢复、和停止等功能接口则用于在系统处于不同的状态时(如用户登录、登出前后的状态),需要对模块进行的处理。如果用户登出了,整个界面系统相对于底层服务器处于非连接状态,此时需要对模块进行复位,使之释放相关的资源。用户登录后,则需要对模块进行状态恢复,使之处于连接状态,能够正常工作。
该模块功能接口的程序实例如下:
public interface ModuleInterfaceOperations { getModuleName() processEvent() processCrossInvoke() getRemoteDataShare() <!-- SIPO <DP n="5"> --> <dp n="d5"/> initialize() reinitialize() clear() stop() isAlive() lock() unlock() ...... }
为了方便业务模块对上述接口的实现,我们提供了一个基本模块BaseModule,作为所有可被模块管理器进行管理的业务模块的父类,它实现了为所有的接口提供了缺省实现,各业务模块实现时只需从这个BaseModule继承,并重载所感兴趣和需要的接口即可。
业务模块可以通过内部事件或者消息进行通讯,或者进行直接调用。一个模块可以广播事件,或者向已知名字的某个模块分发事件。在知道对方名字的时候还可以进行直接调用。其程序如下:
interface IModuleServicesInterface
{
broadcastEvent
sendEvent
crossInvoke
......
}
模块之间可以共享数据。一个模块既可以是共享数据的提供者,也可以是共享数据的消费者。作为共享数据的提供者时,它通过让其它的模块注册为数据变化监听器的方式,当所共享的数据发生变化时,通知该监听器。共享数据监听器则通过相应的接口获取数据。其程序如下:
interface IModuleDataShareInterface { addDataChangeListener removeDataChangeListener getDataShare getDataShareManager setDataShareManager removeDataShare notifyChangeListeners ...... }
除了事件和消息通讯、调用关系外,模块之间还可以进行操纵。一个模块可以管理另外一个模块,负责它的整个生命周期,包括注册、注销、初始化、复位、停止、锁定等。这使得模块可以嵌套。其程序如下:
public interface IModuleManagementExtendedInterface { register unregister getReference getModuleManager initializeModule reinitializeModule stopModule isModuleAlive lockModule unlockModule ...... }
这些功能都是以模块功能接口ImoduleInterfaceOperations的形式提供的。
因此,当开发一应用程序时,仅需启动该模块管理器,将应用程序的各业务模块加入到该模块管理器的被管业务模块队列中,就能有效实现业务集成的功能。
Claims (6)
1、一种实现应用程序界面集成和业务集成的方法,包括:
启动一预定义的界面框架,将应用程序所需的界面组件添加到该界面框架中;
启动一预定义的模块管理器,将应用程序的业务模块加入到该模块管理器的被管业务模块队列中。
2、如权利要求1所述的实现应用程序界面集成和业务集成的方法,其特征在于:所述界面框架至少包括有菜单、工具条和状态栏及相应的菜单管理器、工具条管理器和状态栏管理器;所述将应用程序所需的界面组件添加到该界面框架中是通过修改菜单、工具条或状态栏的配置文件或增加其对象实例并通过与其相对应的管理器加载来实现的。
3、如权利要求1所述的实现应用程序界面集成和业务集成的方法,其特征在于:所述模块管理器具有模块管理接口和模块功能接口,实现对应用程序业务模块的管理和操作。
4、如权利要求3所述的实现应用程序界面集成和业务集成的方法,其特征在于:所述模块管理接口用于模块的注册、注销、加载、关闭和获得其它模块的对象引用。
5、如权利要求3所述的实现应用程序界面集成和业务集成的方法,其特征在于:所述模块功能接口用于模块的名字管理、模块间事件处理、模块之间的交叉调用、模块内的数据共享以及模块的初始化、复位、恢复和停止功能。
6、如权利要求1至5之一所述的实现应用程序界面集成和业务集成的方法,其特征在于:所述的业务模块继承于一基本模块,该基本模块提供了和模块管理器各接口之间的缺省实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100002037A CN100340984C (zh) | 2004-01-02 | 2004-01-02 | 一种实现应用程序界面集成和业务集成的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100002037A CN100340984C (zh) | 2004-01-02 | 2004-01-02 | 一种实现应用程序界面集成和业务集成的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1641586A true CN1641586A (zh) | 2005-07-20 |
CN100340984C CN100340984C (zh) | 2007-10-03 |
Family
ID=34866675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100002037A Expired - Fee Related CN100340984C (zh) | 2004-01-02 | 2004-01-02 | 一种实现应用程序界面集成和业务集成的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100340984C (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100504771C (zh) * | 2007-06-08 | 2009-06-24 | 腾讯科技(深圳)有限公司 | 一种生成应用程序界面的方法及系统 |
CN102226888A (zh) * | 2011-05-23 | 2011-10-26 | 成都市华为赛门铁克科技有限公司 | 框架加载方法及设备 |
WO2011150777A1 (zh) * | 2010-06-04 | 2011-12-08 | 中兴通讯股份有限公司 | Web应用的开发装置及其开发方法 |
CN101377737B (zh) * | 2007-08-28 | 2012-01-11 | 上海宝信软件股份有限公司 | 应用系统资源管理装置 |
CN101572622B (zh) * | 2009-03-02 | 2012-08-29 | 南京联创科技集团股份有限公司 | 动态扩充资源元数据的实现方法 |
CN102694770A (zh) * | 2011-03-22 | 2012-09-26 | 中兴通讯股份有限公司 | 一种业务平台中多类型资源管理的系统及方法 |
CN104133675A (zh) * | 2014-07-15 | 2014-11-05 | 国家电网公司 | 一种基于动态配置技术的配网多主题应用界面集成方法 |
CN106406844A (zh) * | 2015-08-03 | 2017-02-15 | 腾讯科技(深圳)有限公司 | 实现通讯交互平台公众号菜单的方法和装置 |
CN110262846A (zh) * | 2019-05-07 | 2019-09-20 | 平安科技(深圳)有限公司 | 基于模块的界面加载方法、系统、计算机设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477457B (zh) * | 2008-01-02 | 2013-05-01 | 联想(北京)有限公司 | 应用模块管理系统、应用模块执行方法以及虚拟机系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999066394A1 (en) * | 1998-06-17 | 1999-12-23 | Microsoft Corporation | Method for adapting user interface elements based on historical usage |
US20030033443A1 (en) * | 2001-03-01 | 2003-02-13 | Nikolay Igotti | Virtual machine integration application program interface |
KR100475432B1 (ko) * | 2002-02-26 | 2005-03-10 | 삼성전자주식회사 | 그래픽 사용자 인터페이스의 디자인 변경 방법 및 이를 위한 기록매체 |
US20030184584A1 (en) * | 2002-03-29 | 2003-10-02 | Thomas Vachuska | User interface framework for integrating user interface elements of independent software components |
-
2004
- 2004-01-02 CN CNB2004100002037A patent/CN100340984C/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100504771C (zh) * | 2007-06-08 | 2009-06-24 | 腾讯科技(深圳)有限公司 | 一种生成应用程序界面的方法及系统 |
CN101377737B (zh) * | 2007-08-28 | 2012-01-11 | 上海宝信软件股份有限公司 | 应用系统资源管理装置 |
CN101572622B (zh) * | 2009-03-02 | 2012-08-29 | 南京联创科技集团股份有限公司 | 动态扩充资源元数据的实现方法 |
WO2011150777A1 (zh) * | 2010-06-04 | 2011-12-08 | 中兴通讯股份有限公司 | Web应用的开发装置及其开发方法 |
CN102694770A (zh) * | 2011-03-22 | 2012-09-26 | 中兴通讯股份有限公司 | 一种业务平台中多类型资源管理的系统及方法 |
CN102226888A (zh) * | 2011-05-23 | 2011-10-26 | 成都市华为赛门铁克科技有限公司 | 框架加载方法及设备 |
CN104133675A (zh) * | 2014-07-15 | 2014-11-05 | 国家电网公司 | 一种基于动态配置技术的配网多主题应用界面集成方法 |
CN104133675B (zh) * | 2014-07-15 | 2017-07-11 | 国家电网公司 | 一种基于动态配置技术的配网多主题应用界面集成方法 |
CN106406844A (zh) * | 2015-08-03 | 2017-02-15 | 腾讯科技(深圳)有限公司 | 实现通讯交互平台公众号菜单的方法和装置 |
CN106406844B (zh) * | 2015-08-03 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 实现通讯交互平台公众号菜单的方法和装置 |
CN110262846A (zh) * | 2019-05-07 | 2019-09-20 | 平安科技(深圳)有限公司 | 基于模块的界面加载方法、系统、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100340984C (zh) | 2007-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6934709B2 (en) | Interface definition language compiler | |
Fremantle et al. | Enterprise services | |
CN100340984C (zh) | 一种实现应用程序界面集成和业务集成的方法 | |
Pour | COMPONENT TECHNOLOGIES | |
US7584454B1 (en) | Semantic-based transactional support and recovery for nested composite software services | |
Desertot et al. | FROGi: Fractal components deployment over OSGi | |
WO2003093992A1 (en) | Adapter deployment without recycle | |
Tomlinson et al. | The Carnot extensible services switch (ESS)—Support for service execution | |
Ji-chen et al. | Enterprise service bus and an open source implementation | |
Liu et al. | Architecture of information system combining SOA and BPM | |
Plášil et al. | DCUP: Dynamic component updating in Java/CORBA environment | |
CN100498717C (zh) | 一种对企业级Java组件的方法进行调用的方法 | |
Zhuang et al. | From depth and optical flow to rigid body motion | |
Grundy | Supporting aspect-oriented component-based systems engineering | |
Talevski et al. | Meta model driven framework for the integration and extension of application components | |
Francu et al. | An Advanced Communication Toolkit for Implementing the Broker Pattern | |
Beugnard et al. | Towards context-aware components | |
Coulson et al. | A reflective middleware approach to the provision of grid middleware | |
Jiang et al. | Architecting systems with components and services | |
KR100544151B1 (ko) | 디지털 텔레비젼의 임베디드 오에스 소프트웨어 통합 시스템 | |
Liu | Analysis on the Distributed Computer Software Bus Architecture | |
Lewis et al. | Exploring the design space for cca framework interoperability approaches | |
Dezhgosha et al. | Web services for designing small-scale Web applications | |
Pour | Component Technologies: Expanding the Possibilities for Development of Web-Based Enterprise Applications | |
KR100483883B1 (ko) | Ejb 환경에서의 서버 컴포넌트 아키텍쳐 및 아키텍쳐를생성하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170929 Address after: 154000 group 114, Qingyun community, Xiangyang District, Heilongjiang, Jiamusi, 5 Patentee after: Liu Li Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: Huawei Technologies Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071003 Termination date: 20180102 |