基于插件机制的运行时界面集成方法技术

技术编号:13674662 阅读:50 留言:0更新日期:2016-09-08 00:02
本发明专利技术公开了一种基于插件机制的运行时界面集成方法,该方法旨在解决现有界面集成技术中存在的静态、异步及映射复杂等缺陷,包括如下步骤:插件对自身的主框架界面元素需求进行自描述;界面引擎获取插件提供的主框架界面元素需求,将其创建并放置到对应的功能区中,同时将界面元素事件与插件中对应该事件的处理函数进行连接。本发明专利技术的有益增益效果是打破了传统设计上静态、异步的界面集成理念,通过界面引擎的角色设计,实现插件及其界面元素的同步加载、卸载,增强了整个系统的可裁剪性、可移植性、可维护性。

【技术实现步骤摘要】

本专利技术涉及插件界面元素的运行时创建及动态放置,主要涉及到插件式软件系统的界面集成技术、面向对象技术等领域。
技术介绍
插件是可独立开发的程序模块,能够动态地插入到系统中,并可以被自由地删除和替换。因而,插件式框架能够提高软件开发的并行性和开发效率,降低设计开发难度,缩短开发周期。现有的网络管理系统以与其对应的网络为依托,根据各类装备的实际编配在软件中建立一一对应的模型,并在通信网络的开设、运行过程中,实现对模型资源的网络规划、网络管理和网络监视。为适应通信网络互连手段多样化、应用需求多元化及网络规模大型化的要求,网络管理系统采用插件式软件架构来提高软件的复用性、封装性和可扩展性。为了使软件的主程序和不同功能插件之间能够无缝集成,除了要制定插件能被主程序识别的接口、插件提供服务的接口外,还需设计动态、灵活的界面集成方法,以提高插件的加载效率、增强用户体验。界面集成是指在用户软件的主程序中实现对各个被集成插件的界面控制。针对网络管理系统采用的动态函数库形式的插件架构,当前主用的界面集成技术采用统一布局设计、逐一消息映射的方式。这种传统的开发方式在程序设计时就编写出静态的、完整的主界面,甚至需要设计出详细的子菜单以供消息映射。鉴于网络管理系统具有设备多样、组网复杂、编配灵活等特点,因而在主程序设计阶段只能给出主界面的框架和各个功能区,对于更细节的菜单及界面则没有太多考虑。而且,自成模块的各设备、子网、业务插件提供的功能分类各不相同,无法在设计之初就将所有界面元素一一罗列、面面俱到。《一种面向网络的智能化软件界面动态生成方法》(中国专利公开号:CN101699393)通过设计界面显示需求描述文件来实现界面的动态生成。该方法基于C/S架构设计,也适用于基于插件的软件框架,由插件提供“界面自描述”。但如果在庞大的网络管理系统中采用该方法,则需要重新设计所有插件及其描述文件的依赖关系、加载顺序。即便如此,软件运行时仍有可能因为加载异常引起插件或描述文件的缺失,进而导致运行错误。
技术实现思路
本专利技术提出了一种基于插件机制的运行时界面集成方法,该方法旨在解决现有界面集成技术中存在的静态、异步及映射复杂等缺陷。本专利技术在设计阶段只需设计出主界面的框架和各个功能区,而无需考虑插件相关的更细节的界面。此时,主界面的外观上看不到任何与插件相关的界面元素,也看不出软件的主要功能。软件主界面上更多的界面元素由插件来提供并完成相应功能,在软件运行时被动态创建和集成,进而形成完整的主界面。为了实现软件主界面的运行时集成,本专利技术设计出界面引擎这一“角色”来完成界面元素的动态创建和放置,具体方法为:1)核心领域扫描插件并获取插件接口,对插件进行加载后,通知界面引擎该插件被加载;2)界面引擎获取插件提供的主界面元素需求,并将其创建出来;3)界面引擎获取核心领域主界面功能区使用的控件实例,并把创建好的主界面元素实例放置到该功能区中;4)界面引擎实现插件与框架界面元素的交互通信。步骤2)中,界面引擎根据插件界面协议,将插件中的界面元素需求在主框架中扩展出具有统一外观样式的界面元素,该界面元素的显示内容和功能皆来自于插件。步骤3)中插件通过界面协议控制框架界面元素的行为,框架界面元素根据事件协议与插件通信。本设计中,界面引擎负责一切扩展的界面元素的创建与销毁,支持插件的即插即用。软件的主框架界面中包含各种类型的框架界面元素,比如传统菜单、传统工具条、Ribbon菜单,子网导航栏、车辆导航栏、状态栏、属性栏等。这些框架界面元素的内容可能被插件扩展,因而各框架界面元素内须有一套用于处理插件扩展内容的机制。另外,主框架界面元素也应支持新类型的扩展。基于对这些功能需求的考虑,将框架界面元素抽象成一个基类,并将其设计为一个管理器。抽象后的框架界面元素各有一套内部自述协议,并提供容器以供插件内容嵌入,插件对界面元素需求的描述必须遵循相应的自述协议才能使框架界面元素扩展出所需的内容。这样一来,整个软件的界面逻辑完整、结构清晰,某个框架界面元素的内容可以被多个插件扩展,支持布局、排序及分组,甚至还可以由插件控制框架界面元素的显示行为。可以将框架界面元素和插件比作服务器与客户,每个服务器都有自己的一套服务协议,而一个服务器可以被多个客户连接。首先,插件需要被框架界面元素扩展显示时,类似于客户向服务器发起一个连接请求,客户将自己的信息告诉服务器(插件将显示需求以可被识别的协议格式告诉框架界面元素),服务器处理这个请求(框架元素解析协议,识别插件的内容,包括资源图标等,然后扩展出插件的显示内容),服务器响应客户的请求(插件初始化是否完毕)。这种请求响应的机制,分别有同步和异步的实现:同步过程指插件调用请求接口时,接口的返回值直接表示响应结果(如果插件发出的是一个初始化显示的请求,接口返回时,插件内容已经被加载);异步过程则是指定一个完成信号,框架元素扩展完毕时发出这个完成信号,通过信号与槽的连接机制,再由插件来处理这个完成信号。本专利技术的有益技术效果是:针对基于插件机制的软件系统,打破传统设计上静态、异步的界面集成理念,通过界面引擎的角色设计,实现软件主界面在运行时的集成。开发人员在设计之初只需集中精力完成软件架构的搭建及功能区的划分,更为细致、繁琐的界面元素则交由插件自己来设计。软件运行过程中,插件逐个被扫描、加载,界面引擎随之获取插件提出的界面显示需求,并根据该描述创建、放置对应的框架界面元素,同时实现界面元素相应事件与插件对应事件处理函数的连接。框架界面元素支持布局、排序、分组,并接受插件的显示控制。该方法在软件运行时实施插件及其界面元素的同步加载、卸载,实现了软件功能的可裁剪、可定制,增强了整个系统的可移植性、可维护性,强化了插件机制“即插即用”的设计初衷。附图说明图1、本专利技术的功能示意图;图中1.告知插件信息,2.通知插件加载/卸载,3.表达元素界面配置信息,4.配置主界面元素,5.配置信号、槽的连接。具体实施方式在基于插件机制的软件系统中,设计界面引擎的目的是实现各类插件的即插即用,其主要功能是根据显示要求生成界面元素,并将界面元素放置到主框架界面适当的位置上。为使本专利技术的目的、技术方案及优点更加清晰明确,现对其具体实施方式进行详细阐述。基于本设计的软件系统在运行过程中,每加载一个插件,就有该插件指定的界面元素被集成在主界面上;同理,如果该插件被卸载,与这个插件相关的界面元素在软件不重新启动的情况下自动被隐藏/释放(参见图1)。插件核心:主要功能是扫描插件、对插件进行加载/卸载并通知界面引擎。1)扫描插件:根据设定的路径,将该路径下所有动态共享库(即插件)逐个读入到内存中,创建插件对象,并获取插件接口。2)获取插件接口:读入插件后获取插件接口,包括界面引擎、插件核心中规定的接口。如果插件中没有需要界面引擎来实现的相关内容,则可以不提供界面引擎规定的接口。但插件核心规定的接口必须提供并实现,否则会立即卸载该动态共享库,认为它不是插件。3)配置插件:实现插件依赖关系配置。插件依赖是指当前插件的所有功能只有在相关插件提供支持的前提下才能全部实现。因此,在插件被加载之前,为了保证其功能的完整性、正确性,必须确保它所依赖的插件已被加载。插件之间的依本文档来自技高网
...

【技术保护点】
一种基于插件机制的运行时界面集成方法,其特征在于:软件在设计阶段只需设计出主界面的框架和各个功能区,而与插件功能相关的框架界面元素则由插件提供需求描述;软件运行时,这些界面元素被动态创建和集成,最终形成完整的主界面。

【技术特征摘要】
1.一种基于插件机制的运行时界面集成方法,其特征在于:软件在设计阶段只需设计出主界面的框架和各个功能区,而与插件功能相关的框架界面元素则由插件提供需求描述;软件运行时,这些界面元素被动态创建和集成,最终形成完整的主界面。2.根据权利要求1所述的运行时界面集成方法,其特征在于:界面引擎负责创建与销毁一切扩展的框架界面元素,实现插件及其界面元素同步加载、卸载,支持插件的即插即用。3.根据权利要求1所述的运行时界面集成方法,其特征在于:权利要求2所设计的界面引擎获取插件提供的框架界面元素需求,根据插件界面协议在主框架中扩展出具有...

【专利技术属性】
技术研发人员:张毅付林强户江民向红陈治国刘静吕鸿
申请(专利权)人:重庆金美通信有限责任公司
类型:发明
国别省市:重庆;50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1