一种实现开放平台功能扩展的方法及系统的制作方法

文档序号:6443265阅读:211来源:国知局
专利名称:一种实现开放平台功能扩展的方法及系统的制作方法
技术领域
本发明涉及计算机领域,特别涉及一种实现开放平台功能扩展的方法及系统。
背景技术
在程序开发过程中,目前主要采用传统上的基于操作系统提供的接口进行模块化开发,该方式以功能为导向,将应用程序分为多个功能模块,基于每个模块的功能进行开发,并通过调用操作系统或编程工具提供的接口函数开发得到不同功能的模块,并最终将具有不同功能的模块组合为应用程序。但是,在这种模块化的开发方式中,各个模块不受框架的统一管理,模块开发也没有清晰的开发模式可以遵循,由于程序调用的操作系统接口、各种编程工具的接口及第三方提供的接口,导致模块间的耦合关系也越来越强,当应用程序开发完成后,基本上功能就已经被限制,很难再进行修改和增加,提高了新功能的开发门槛。例如,当某个大型应用程序开发完成并发布后,如后期需要增加或定制其他附属功能,出于对应用程序初期架构的限制很难进行实现。在实现本发明的过程中,发明人发现现有技术至少存在以下问题:现有的开发框架导致程序的可管理性、扩展性很差,尤其是对于开放平台类的应用程序,需要满足给用户各种个性化的需求,增加扩展功能很难进行实现。

发明内容
为了解决现有的开发框架导致的开放平台的可管理性和扩展性差的问题,本发明实施例提供了一种实现开放平台功能扩展的方法及系统。所述技术方案如下:—种实现开放平台功能扩展的方法,所述方法包括:根据用户的功能需求定义插件,并使所述插件继承预先建立的开放平台提供的操作接口,以使所述插件能够将用户输入的控制参数传入所述开放平台提供的服务入口,通过所述服务入口获取所述开放平台提供的服务;将所述插件注册到预先建立的插件管理器;其中,所述插件管理器记录有全部已注册的插件的位置信息,当接收到用户开启所述插件的命令时,所述插件管理器根据所述插件对应的位置信息启动所述插件。一种实现开放平台功能扩展的系统,所述系统包括:服务模块,用于封装保存开放平台向插件提供的屏幕管理、标题栏控制和托盘控制的服务;入口模块,用于向所述插件提供所述服务模块封装保存的所述服务的服务入口,使得所述插件能够将用户输入的控制参数传入所述服务入口,通过所述服务入口获取所述服务1吴块提供的服务;控制接口模块,用于向所述插件提供操作接口,使得所述插件通过继承所述操作接口后能够访问所述入口 1旲块;
插件管理器模块,用于为所述插件进行注册,并记录有全部已注册的插件的位置信息,当接收到用户开启所述插件的命令时,根据所述插件对应的位置信息启动所述插件。本发明实施例提供的技术方案带来的有益效果是:通过将开放平台所能提供的服务进行封装并提供操作接口,使得插件统一的继承操作接口,通过接口将控制参数传入服务入口以获得服务,使得开放平台的框架简单,耦合度降低,在保证了开放平台的基本性质的基础之上,通过插件管理器对插件进行统一管理,增强了开放平台的管理性和动态可扩展性,使得对开放平台增加新的功能变得简单可行。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例1中提供的一种实现开放平台功能扩展的方法的流程示意图;图2是本发明实施例2中提供的一种实现开放平台功能扩展的方法的流程示意图;图3是本发明实施例3中提供的一种实现开放平台功能扩展的系统的结构示意图;图4是本发明实施例3中提供的一种实现开放平台功能扩展的方法中的服务模块的结构不意图;图5是本发明实施例3中提供的一种实现开放平台功能扩展的系统中的插件管理器模块的结构示意图;图6是本发明实施例3中提供的一种实现开放平台功能扩展的系统中的事件管理器模块的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例1如图1所示,本发明实施例提供了一种实现开放平台功能扩展的方法,该方法包括如下步骤:101、根据用户的功能需求定义插件,并使插件继承预先建立的开放平台提供的操作接口,以使插件能够将用户输入的控制参数传入开放平台提供的服务入口,通过服务入口获取开放平台提供的服务;102、将插件注册到预先建立的插件管理器;其中,插件管理器记录有全部已注册的插件的位置信息,当接收到用户开启插件的命令时,插件管理器根据插件对应的位置信息启动插件。本实施例所提供的一种实现开放平台功能扩展的方法,通过将开放平台所能提供的服务进行封装并提供操作接口,使得插件统一的继承操作接口,通过接口将控制参数传入服务入口以获得服务,使得开放平台的框架简单,耦合度降低,在保证了开放平台的基本性质的基础之上,通过插件管理器对插件进行统一管理,增强了开放平台的管理性和动态可扩展性,使得对开放平台增加新的功能变得简单可行。实施例2本发明实施例2提供了一种实现开放平台功能扩展的方法,本实施例2是在实施例I的基础之上进行的改进,通过本实施例提供的方法以对分屏桌面进行功能扩展为例进行说明,该分屏桌面为开放平台的管理界面,具有能够将呈现给用户桌面从终端的操作系统桌面与开放平台提供的桌面之间进行切换的功能,该分屏桌面中的各项功能通过插件进行实现,并通过将插件注册到插件管理器完成整个分屏桌面的控制,各个功能之间的耦合度低,更加容易维护,方便测试且扩展性好。需要说明的是,分屏桌面具体的为具有屏幕管理功能的开放平台的界面管理程序。如图2所示,一种实现开放平台功能扩展的方法,具体包括:201、将开放平台所能提供的服务划分为屏幕管理、标题栏控制和托盘控制;需要说明的是,在本实施例中,至少可由屏幕管理、标题栏控制和托盘控制组成分屏桌面的功能框架;其中,屏幕管理用于管理屏幕,且至少包括屏幕背景设置、屏幕切换的功能;标题栏控制包括导航栏控制和工具栏控制,用于提供插件在分屏桌面上的显示和布局控制;托盘控制用于负责托盘区的功能提醒和右键菜单功能。202、封装并保存开放平台提供的服务,并提供操作接口 ;具体地,将步骤201中所述的开放平台提供的服务封装成对应的类,例如将屏幕管理封装为CSreenMgr,将标题栏控制封装为CtitleBar,将托盘区控制封装为CTray,并向外提供服务入口,例如将服务入口封装为⑶esktopFrame,并在CDesktopFrame下提供多个入口函数,以使得插件在继承开放平台的操作接口后,可以将用户输入的控制参数传入入口函数,以获取入口函数对应的服务所提供的功能。同时,封装后向外界提供操作接口,具体的为IQPlusAddin接口,并使得后续开发得到的插件均继承IQPlusAddin接口,以提供控制功能,例如启动、终止等能力。需要说明的是,被封装的服务不能反向调用插件。203、根据用户的功能需求定义插件,使插件继承开放平台提供的操作接口 ;需要说明的是,在本发明中,将每个功能通过一个插件进行实现,且每个插件均继承功能框架提供的操作接口,以实现外界对开放平台的界面的控制。进一步地,开发者在根据用户的需求开发插件的过程中,需要使所开发的插件继承上述操作接口后,以使得插件能够将用户输入的控制参数传入开放平台提供的服务入口,通过服务入口获取开放平台提供的服务;204、定义插件的加载机制;需要说明的是,上述加载机制包括多种,例如可包括本地加载和远程加载;如果插件的加载机制为本地加载,当插件启动时,开放平台由本地读取插件并运行;如果插件的加载机制为远程加载,当插件启动时,开放平台由指定的网络位置获取插件并运7TT。由于插件与开放平台的功能框架之间的松耦合,通过一种间接化的远程加载技术,插件不必一开始就存在于本地,而是延迟到插件启动时从互联网上下载,这种技术可以大大减小软件安装包体积,这得益于插件继承的接口的一致性,使得插件可以接受更灵活的管理和控制。205、建立插件管理器;其中,插件管理器用于记录开放平台中存在的插件,且保存有插件的位置信息和配置信息,其中,配置信息包括插件的加载机制等。进一步地,插件管理器还具有对插件的启动、关闭的功能,当接收到用户发送的启动/关闭命令时,根据插件的位置信息启动/关闭对应的插件。206、将插件注册到预先建立的插件管理器,以响应外界对插件的控制;其中,响应外界对插件的控制,例如可以在运行时动态加载或终止。将插件注册到预先建立的插件管理器,具体的包括:插件管理器记录插件的位置信息及配置信息。进一步地,当插件注册到插件管理器后,所述插件即可在接收到用户输入的控制参数后,通过插件管理器将控制参数传送给服务入口。207、建立事件管理器,并通过事件管理器对全部插件中的事件进行监听。进一步地,事件管理器通过对插件中的事件进行监听以完成插件之间的通信,以如下例子说明事件管理器对于插件之间通信的管理,其中,Observer为监控敏感事件的发起插件,EventSource为敏感事件的发起插件,具体地:步骤A、Observer向事件管理器发送监控敏感事件的通知消息,通过事件管理器对敏感事件进行监控;步骤B、当EventSource发起敏感事件时,向事件管理器发送事件通知;步骤C、事件管理器向Observer发送通知消息。本实施例所提供的一种实现开放平台功能扩展的方法,通过将开放平台所能提供的服务进行封装并提供操作接口,使得插件统一的继承操作接口,通过接口将控制参数传入服务入口以获得服务,使得开放平台的框架简单,耦合度降低,在保证了开放平台的基本性质的基础之上,通过插件管理器对插件进行统一管理,增强了开放平台的管理性和动态可扩展性,使得对开放平台增加新的功能变得简单可行,并且增加了事件管理器对插件的事件进行监听,以完成插件之间的通信,使得插件之间的依赖关系减弱,且管理方便。实施例3如图3所示,本实施例提供了实现开放平台功能扩展的系统,该述系统包括:服务模块301,用于封装保存开放平台向插件提供的屏幕管理、标题栏控制和托盘控制的服务;入口模块302,用于向插件提供服务模块301封装保存的服务的服务入口,使得插件能够将用户输入的控制参数传入服务入口,通过服务入口获取服务模块提供的服务;控制接口模块303,用于向插件提供操作接口,使得插件通过继承操作接口后能够访问入口模块;插件管理器模块304,用于为插件进行注册,并记录有全部已注册的插件的位置信息,当接收到用户开启插件的命令时,根据插件对应的位置信息启动插件。进一步地,如图4所示,服务模块301,包括:屏幕管理单元3011,用于封装保存开放平台向插件提供的对于屏幕进行管理的服务,且至少包括屏幕背景设置、屏幕切换的服务;标题栏管理单元3012,用于封装保存开放平台向插件提供的对于导航栏和工具栏进行控制的服务,且至少包括用于提供插件在开放平台的界面上的显示和布局的服务;托盘管理单元3013,用于封装保存开放平台向插件提供的托盘区的功能提醒和右键菜单控制的服务。进一步地,如图5所示,插件管理器模块304,包括:注册单元3041,用于为插件进行注册,记录插件的位置信息;启动单元3042,用于在接收到用户开启插件的命令时,根据插件的位置信息启动插件;关闭单元3043,用于在接收到用户关闭插件的命令时,关闭插件;调用单元3044,用于根据插件接收得到的用户发出的控制参数后,将控制参数传入入口模块。进一步地,上述系统还包括:事件管理器模块305,用于当开放平台的所有插件在触发事件时,接收插件发送的事件通知消息,以完成对开放平台的所有插件的事件监听;其中,如图6所示,事件管理器模块305,包括:请求接收单元3051,用于接收第一插件发送的监听预设事件的请求;通知接收单元3052,用于当第二插件触发预设事件时,接收第二插件发送的事件通知;通知发送单元3053,用于向监听预设事件的第一插件发送预设事件被触发的通知消息,以完成第一插件和第二插件之间的通信。需要说明的是,服务模块301所提供的服务不反向调用插件。本实施例所提供的一种实现开放平台功能扩展的系统,通过本系统所提供的框架,使得开发者只要了解插件的功能需求后,即可通过继承开放平台操作接口,且在继承操作接口后,即可通过接口将控制参数传入服务入口以获得服务,使得开放平台的框架简单,耦合度降低,在保证了开放平台的基本性质的基础之上,通过插件管理器对插件进行统一管理,增强了开放平台的管理性和动态可扩展性,使得对开放平台增加新的功能变得简单可行,并且增加了事件管理器对插件的事件进行监听,以完成插件之间的通信,使得插件之间的依赖关系减弱,且管理方便。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现开放平台功能扩展的方法,其特征在于,所述方法包括: 根据用户的功能需求定义插件,并使所述插件继承预先建立的开放平台提供的操作接口,以使所述插件能够将用户输入的控制参数传入所述开放平台提供的服务入口,通过所述服务入口获取所述开放平台提供的服务; 将所述插件注册到预先建立的插件管理器; 其中,所述插件管理器记录有全部已注册的插件的位置信息,当接收到用户开启所述插件的命令时,所述插件管理器根据所述插件对应的位置信息启动所述插件。
2.根据权利要求1所述的方法,其特征在于,所述根据用户的功能需求定义插件之前,所述方法还包括: 定义所述开放平台提供的服务为屏幕管理、标题栏控制和托盘控制,并将所述开放平台提供的服务封装为对应的类,并向外提供服务入口,以供所述插件通过所述服务入口获取所述开放平台提供的服务。
3.根据权利要求2所述的方法,其特征在于,所述屏幕管理用于管理屏幕,且至少包括屏幕背景设置、屏幕切换的功能; 所述标题栏控制包括导航栏控制和工具栏控制,用于提供控制所述插件在所述开放平台界面上的显示和布局; 所述托盘控制用于提供托盘区的功能提醒和右键菜单功能。
4.根据权利要求1所述的方法,其特征在于,所述将所述插件注册到预先建立的插件管理器之前,所述方法还包括: 定义所述插件的加载机制; 其中,所述插件的加载机制包括本地加载和远程加载; 当所述插件的加载机制为本地加载时,所述插件管理器根据所述插件对应的位置信息启动所述插件,具体包括: 当所述插件管理器启动所述插件时,所述插件管理器由本地读取所述插件并运行; 当所述插件的加载机制为远程加载时,所述插件管理器根据所述插件对应的位置信息启动所述插件,具体包括: 当所述插件管理器启动所述插件启动时,所述插件管理器由指定的网络位置获取所述插件并运行。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括: 建立事件管理器,并设置所述开放平台的所有插件在触发事件时均发送事件通知消息给所述事件管理器,以完成所述事件管理器对所述开放平台的所有插件的事件监听。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括: 所述事件管理器接收第一插件发送的监听预设事件的请求; 当第二插件触发所述预设事件时,接收所述第二插件发送的事件通知; 所述事件管理器向所述第一插件发送所述预设事件被触发的通知消息,以完成所述第一插件和所述第二插件之间的通信。
7.根据权利要求1-6中任一权利要求所述的方法,其特征在于,所述开放平台提供的服务不反向调用所述插件。
8.一种实现开放平台功能扩展的系统,其特征在于,所述系统包括:服务模块,用于封装保存开放平台向插件提供的屏幕管理、标题栏控制和托盘控制的服务; 入口模块,用于向所述插件提供所述服务模块封装保存的所述服务的服务入口,使得所述插件能够将用户输入的控制参数传入所述服务入口,通过所述服务入口获取所述服务模块提供的服务; 控制接口模块,用于向所述插件提供操作接口,使得所述插件通过继承所述操作接口后能够访问所述入口 |旲块; 插件管理器模块,用于为所述插件进行注册,并记录有全部已注册的插件的位置信息,当接收到用户开启所述插件的命令时,根据所述插件对应的位置信息启动所述插件。
9.根据权利要求8所述的系统,其特征在于,所述服务模块,包括: 屏幕管理单元,用于封装保存所述开放平台向插件提供的对于屏幕进行管理的服务,且至少包括屏幕背景设置、屏幕切换的服务; 标题栏管理单元,用于封装保存所述开放平台向插件提供的对于导航栏和工具栏进行控制的服务,且至少包括用于提供所述插件在所述开放平台的界面上的显示和布局的服务; 托盘管理单元,用于封装保存所述开放平台向插件提供的托盘区的功能提醒和右键菜单控制的服务。
10.根据权利要求8所述的系统,其特征在于,所述插件管理器模块,包括: 注册单元,用于为所述插件进行注册,记录所述插件的位置信息; 启动单元,用于在接收到用户开启所述插件的命令时,根据所述插件的位置信息启动所述插件; 关闭单元,用于在接收到用户关闭所述插件的命令时,关闭所述插件; 调用单元,用于根据所述插件接收得到的用户发出的控制参数后,将所述控制参数传入所述入口模块。
11.根据权利要求8所述的系统,其特征在于,所述系统还包括: 事件管理器模块,用于当所述开放平台的所有插件在触发事件时,接收所述插件发送的事件通知消息,以完成对所述开放平台的所有插件的事件监听; 其中,所述事件管理器模块,包括: 请求接收单元,用于接收第一插件发送的监听预设事件的请求; 通知接收单元,用于当第二插件触发所述预设事件时,接收所述第二插件发送的事件通知; 通知发送单元,用于向监听所述预设事件的所述第一插件发送所述预设事件被触发的通知消息,以完成所述第一插件和所述第二插件之间的通信。
12.根据权利要求8-11中任一权利 要求所述的系统,其特征在于,所述服务模块所提供的服务不反向调用所述插件。
全文摘要
本发明公开了一种实现开放平台功能扩展的方法及系统,属于计算机领域。本发明通过将开放平台所能提供的服务进行封装并提供操作接口,使得插件统一的继承操作接口,通过接口将控制参数传入服务入口以获得服务,使得开放平台的框架简单,耦合度降低,在保证了开放平台的基本性质的基础之上,通过插件管理器对插件进行统一管理,增强了开放平台的管理性和动态可扩展性,使得对开放平台增加新的功能变得简单可行。
文档编号G06F9/44GK103176789SQ20111044171
公开日2013年6月26日 申请日期2011年12月26日 优先权日2011年12月26日
发明者游晶, 彭勇 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1