专利名称:在浏览器上实现的开放式插件管理平台及插件管理方法
技术领域:
本发明涉及插件管理技木,尤其涉及ー种在智能終端浏览器上实现的开放式插件管理平台及插件管理方法。
背景技术:
智能終端指具有智能操作系统,可以安装由第三方服务商提供的程序,通过此类程序来提供各种功能的ー类终端设备的总称。比如现在流行的各种智能手机終端,基于不同的智能操作系统,目前比较流行的是Android平台,可以如电脑ー样随心所欲地安装第三方服务商提供的各种程序。浏览器指Web或WAP的客户端浏览程序。智能終端通过浏览器可向Web或WAP服务器发送各种请求,并对从Web或WAP服务器发来的超文本信息和各种多媒体数据格式进行解释、显示和播放。插件指遵循用户服务或业务应用规范的应用程序接ロ所编写出来的程序。安装插件后,浏览器能够通过直接调用插件,对与插件对应的服务或业务应用进行处理。目前智能終端越来越普及,用户用智能終端借助浏览器上网的需求也越来越多,由于上网时浏览器是通过直接调用插件对与插件对应的服务或业务应用进行处理,而各种服务或业务应用的插件种类和数量上都比较多,造成浏览器直接与插件交互时在实现诸如识别、加载、更新、安全认证等具体管理时需花费大量时间,而上网大量时间的占用意味着网络带宽和网络流量的浪费,因此,迫切需要ー种在智能終端浏览器上实现的插件管理方案,对插件进行有效的管理再适配给浏览器调用,以节约网络带宽和网络流量。然而,目前并未有这样的技术方案。
发明内容
有鉴于此,本发明的主要目的在于提供ー种在浏览器上实现的开放式插件管理平台及插件管理方法,能对各种服务或业务应用的插件进行管理,方便用户使用智能終端借助浏览器实现的各种服务和业务应用功能,且节约网络带宽和网络流量。为达到上述目的,本发明的技术方案是这样实现的ー种在浏览器上实现的开放式插件管理平台,所述插件管理平台在浏览器主进程中实现,所述插件管理平台用于作为插件与浏览器的交互媒介,控制承载的插件与浏览器 的交互,并对插件进行管理后再适配给浏览器调用。其中,所述插件管理平台具体包括插件引擎、插件行为管理単元、插件适配単元、服务单元、事件及消息处理单元及插件接ロ ;其中,所述插件引擎,为插件管理平台与浏览器间交互的接ロ ;所述插件行为管理単元,用于对插件的各种具体行为进行管理;所述插件适配单元,用于浏览器借助插件管理平台与插件交互时,双向转换浏览器和插件之间交互的事件和消息格式;所述服务単元,用于使插件能通过服务単元直接使用浏览器提供的Π服务和网络服务;所述事件及消息处理单元,用于对经插件适配単元处理过格式的事件及消息进行统ー处理,所述处理包括事件及消息的分发,事件及消息的封装,并提供给对应的事件调度、注册管理及消息广播功能应用;所述插件接ロ为插件管理平台与插件间交互的接ロ。其中,所述各种具体行为包括插件识别、插件加载/插件卸载、插件版本管理、插件安全认证、插件安装升级、或插件能力管理。其中,所述服务単元,进ー步包括插件用户界面(UI)服务模块和网络服务模块;其中,所述插件UI服务模块,用于使插件能直接使用浏览器提供的UI服务,快速搭建插 件所需要的UI ;所述网络服务模块,用于使插件能直接使用浏览器提供的网络服务,快速运行插件所需要的网络运行环境。其中,所述插件行为管理単元,进ー步包括识别模块、加载/卸载模块、版本管理模块、安全认证模块、安装升级模块和能力管理模块;其中,所述识别模块,用于自动识别请求加载的插件;所述加载/卸载模块,用于自动加载插件或卸载插件;所述版本管理模块,用于管理插件版本,将浏览器本地存储的插件版本信息与请求加载的插件的插件版本信息进行比较;所述安全认证模块,用于对插件进行安全认证;所述安装升级模块,用于对插件进行安装升级;所述能力管理模块,用于对插件的能力进行管理,所述能力包括插件的网络能力和插件的Π能力。ー种在浏览器上实现的开放式插件管理方法,该方法包括在浏览器主进程中实现的插件管理平台,作为插件与浏览器的交互媒介,控制承载的插件与浏览器的交互,并对插件进行管理后再适配给浏览器调用。其中,所述对插件进行管理包括已安装的插件被所述插件管理平台自动识别出来,在触发插件加载条件且通过插件管理平台的安全认证后,所述插件被自动加载。其中,所述对插件进行管理还包括所述浏览器启动时,通过所述插件管理平台查询是否需要更新插件版本信息,当需要更新时,将更新的版本信息存储在浏览器本地;当浏览器通过插件管理平台获取插件加载请求时,通过插件管理平台将要加载的插件的插件版本信息与浏览器本地的插件版本信息进行版本比较和实现安全认证,通过安全认证后浏览器通过插件管理平台自动加载所述插件;当所述插件需要退出时,通过插件管理平台发送退出请求,并卸载所述插件。本发明的插件管理平台在浏览器主进程中实现,插件管理平台用于作为插件与浏览器的交互媒介,控制承载的插件与浏览器的交互,并对插件进行管理后再适配给浏览器调用。采用本发明,浏览器不是直接调用插件,而是借助插件管理平台与插件进行交互,由插件管理平台实现诸如识别、加载、更新等具体管理行为,对插件进行有效的管理再适配给浏览器调用,从而无需占用上网大量时间,因而节约了网络带宽和网络流量。
图I为本发明的浏览器与插件管理平台及插件的关系示意图;图2为本发明实施例一的插件管理平台结构示意图;图3为本发明实施例ニ的插件管理方法实现流程示意图。
具体实施例方式本发明的基本思想是插件管理平台在浏览器主进程中实现,插件管理平台用于作为插件与浏览器的交互媒介,控制承载的插件与浏览器的交互,并对插件进行管理后再适配给浏览器调用。本发明优选的应用领域是移动终端的浏览器,通过插件管理平台管理插件,而不是直接采用浏览器与插件交互,能节约流量,加快浏览器的浏览速度。 下面结合附图对技术方案的实施作进ー步的详细描述。ー种在浏览器上实现的开放式插件管理平台,如图I所示,插件管理平台在浏览器主进程中实现,作为插件与浏览器的交互媒介,控制承载的插件与浏览器的交互,并对插件进行管理后再适配给浏览器调用。插件管理平台可以理解为对插件提供识别、安全认证、版本管理、加载/卸载、安装升级等一系列管理的平台。其中,所述插件也可以称为浏览器插件,插件的类型包括服务插件和业务应用插件。其中,所述服务插件是为浏览器提供服务的,例如存储服务,网络服务等,一般是没有界面的,不是具体的产品或是业务,用户通常不直接和服务插件交互,服务插件的客户是浏览器和业务插件;而所述业务插件是指具体的ー个产品插件,比如QQ,QQ音乐等,业务插件是直接和用户交互的,业务插件的客户是用户。这里需要指出的是文中的“插件”,未明确指出是业务应用插件还是服务插件,代表业务应用插件和服务插件统称,包括这两种类型的插件,不作赘述。这里,使用插件管理平台实现的管理功能包括针对加载的应用场景而言,通过在浏览器主进程中实现的插件管理平台,与承载的各种业务应用插件和服务插件进行交互,已安装的插件被插件管理平台自动识别出来,在触发插件加载条件且插件通过管理平台的安全认证后,插件被自动加载,从而方便的实现诸如识别、加载、安全认证等具体管理功能,这样浏览器调用插件,浏览器的功能和业务即可被方便的扩展和增强。这里,插件管理平台主要包括插件引擎、插件行为管理単元、插件适配単元、服务単元、事件及消息处理单元及插件接ロ。以下对插件管理平台的各个单元进行阐述。其中,插件引擎为插件管理平台与浏览器间交互的接ロ。插件行为管理単元,用于对插件的各种具体行为进行管理。各种具体行为诸如插件识别、插件加载/插件卸载、插件版本管理、插件安全认证、插件安装升级、插件能力管理
坐寸ο插件适配単元,用于浏览器借助插件管理平台与插件交互时,双向转换浏览器和插件之间交互的事件和消息格式,创建插件在浏览器中的运行环境。服务单元,用于使插件能通过服务単元直接使用浏览器提供的UI服务和网络服务。其中,针对Π服务而言,Π服务指用户界面服务,UI以User Interface表示,Π服务指针对软件的人机交互、操作逻辑、界面美观的整体服务设计,由于能直接使用浏览器提供的UI服务,因此,能快速搭建插件所需要的UI,让软件的用户界面变得有个性有品味,同时让软件的操作变得舒适、简単、自由。而针对网络服务而言,由于能直接使用浏览器提供的网络服务,而无需关注底层应用,即具体的网络管理及网络信号強度等因素,因此,能快速运行插件所需要的网络运行环境,节约网络带宽和网络流量。事件及消息处理单元,用于对经插件适配単元处理过格式的事件及消息进行统一处理。处理包括事件及消息的分发,事件及消息的封装,并提供给对应的事件调度、注册管理及消息广播功能应用。插件接ロ为插件管理平台与插件间交互的接ロ。这里需要指出的是插件管理平台的各个单元中所实现的上述功能,可以将ー个単元的多个功能用一个功能模块的形式实现,也可以将ー个单元的多个功能分别对应ー个具体功能模块的形式实现,这样的好处是功能分隔,独立封装和运作,如果插件要用到那个功能,则直接使用对应的具体功能模块,能提高效率,也有利于数据的分文别类存储及数 据的读取。例如,可以将插件行为管理単元分为多个具体功能模块用于插件自动识别的识别模块、用于插件自动加载和卸载的加载/卸载模块、用于方便构造各种消息方法的消息エ厂模块、用于插件版本管理的版本管理模块、用于插件安全认证的安全认证模块、用于插件安装升级的安装升级模块和用于插件能力管理的能力管理模块。其中,能力管理模块主要包括插件的网络能力和插件的Π能力。ー种在浏览器上实现的开放式插件管理方法,该方法包括主要包括以下内容在浏览器主进程中实现的插件管理平台,作为插件与浏览器的交互媒介,控制承载的插件与浏览器的交互,并对插件进行管理后再适配给浏览器调用。这里,对插件进行管理包括已安装的插件被插件管理平台自动识别出来,在触发插件加载条件且通过插件管理平台的安全认证后,插件被自动加载。这里,对插件进行管理还包括浏览器启动时,通过插件管理平台查询是否需要更新插件版本信息,当需要更新时,将更新的版本信息存储在浏览器本地;当浏览器通过插件管理平台获取插件加载请求时,通过插件管理平台将要加载的插件的插件版本信息与浏览器本地的插件版本信息进行版本比较和实现安全认证,通过安全认证后浏览器通过插件管理平台自动加载该插件;当该插件需要退出时,通过插件管理平台发送退出请求,并卸载该插件。综上所述,本发明的基于智能終端浏览器的开放式插件管理平台及管理方法,不仅保留了现有浏览器通用性好,标准规范,很强的机型适配能力等优点,而且,同时通过借助插件管理平台实现插件管理的模式可以迅速开发出多种服务和业务应用插件,来获取更好的用户体验(如UI设计),更省的网络流量,更高的安全性,更强大的功能扩展性等优点。在移动互联网带宽和资源有限的情况下可以节省流量是十分有价值的,而高的安全性保护,对用户隐私保障和提供的用户移动支付保障也是意义重大的。实施例一ー插件管理平台的应用实例,该插件管理平台中的各个功能単元是以多个具体功能模块分隔的。如图2所示,本实施例的插件管理平台包括插件引擎、插件行为管理単元、插件适配単元、服务单元、事件及消息处理单元及插件接ロ。其中,插件行为管理単元包括识别模块、加载/卸载模块、版本管理模块、安全认证模块、安装升级模块和能力管理模块。服务单元包括插件Π服务模块和网络服务模块。事件及消息处理单元包括事件调度模块、注册广播管理模块和统一通信模块。以下对图2中各个具体功能模块进行说明。针对服务单元而言,插件(包括服务插件和业务应用插件两种类型)通过插件接ロ,可以访问服务单元,服务单元直接为插件提供基于浏览器的插件Π服务和网络服务,分别通过插件Π服务模块和网络服务模块实现。插件通过插件Π服务模块可以直接使用基于浏览器提供的UI服务,快速搭建插件所需要的UI ;而插件通过网络服务模块可以直接使用基于浏览器提供的网络服务,方便地访问网络服务,而不需要关注网络的管理和移动网络信号等底层应用问题。针对插件接ロ而言,插件需要派生和实现插件接ロ,即可得到插件管理平台的支持。插件通过插件接ロ访问服务单元,以直接使用基于浏览器所提供的服务,如UI服务和网络服务等,这种仅访问服务单元而直接使用浏览器所提供服务的模式,从而能大大增强模块(服务单元)的复用,減少各个插件的开发时间。插件还可以查询服务单元能提供哪些可用的服务,以便很好的向后兼容。各个插件通过插件接口和浏览器通信和交互,实现开放统ー的处理流程。其中,针对所述向后兼容而言,向后兼容又称为向下兼容,是ー个以部件标准为基础的性能要求,是最新的标准规范,向后兼容的组件既要符合其所属分类的性能要求,同时也要符合低于其分类的所有性能要求。比如USB 2. O规范是可以向后兼容版本更低的USB I. I标准的。针对事件及消息处理单元而言,对经插件适配单元处理过格式的事件及消息进行统ー处理,可以通过事件接ロ、通知接ロ /广播接ロ和注册接ロ等将事件及消息提供给对 应的事件调度、消息广播及注册管理应用功能,当消息或事件产生,插件管理平台会派发或广播到相应的插件。统ー通信模块是插件和浏览器交互的主程序模块,实现二者交互时事件及消息开放式的统ー处理流程,以及扩展应用之间的进程间通信(IPC)通信,统ー通信模块均采用统一的通信接ロ,接ロ还提供了自动化的数据封装格式和方法,以提高接ロ扩展性和通用性。此外该统一通信模块还提供了通信缓存机制,以处理大量产生的并发通信请求,提高了通信系统的稳定性和可靠性。针对插件适配单元而言,在插件和浏览器之间提供接ロ适配服务,主要功能是双向转换浏览器和插件之间的事件和消息格式等。针对识别模块而言,自动识别已安装的插件。针对加载/加载模块而言,负责加载或卸载指定的插件。其中,在卸载时的管理为当插件不再被使用,达到卸载条件后,卸载模块会自动卸载该插件,提供同步和异步两种卸载模式。其中,所述同步卸载模式是指立即卸载;而所述异步卸载模式是指把卸载请求发送到插件管理平台,由插件管理平台决定在后续的一定条件下回收和卸载插件。针对版本管理模块而言,插件和浏览器各自独立升级和开发,通过版本管理模块智能判断版本的兼容性。在实现版本管理时的管理包括情况I:未安装插件,则提示安装;情况ニ已安装低版本但是兼容的插件,提示用户升级插件;情况三已安装不兼容的低版本插件,则强制升级。针对安装升级模块而言,在版本管理的基础上,提供便利的安装升级服务,插件可以方便的通过插件管理平台提供的安装API更新到最新版本。针对安全认证模块而言,通过ID认证,密钥校验等技术,鉴别安全的插件,排除恶意插件被加载和替换,保证用户的安全性。针对能力管理模块而言,插件被分为多种不同类型的插件,如系统服务插件,应用服务插件,UI类插件,窗ロ类插件等,针对不同插件,浏览器会提供不同的服务和支持,所以插件能力的管理模块是负责维护插件能力状态的,能力状态主要包括UI和网络能力的状态。这里需要指出的是从跨平台设计的角度考虑,为了使插件开发具备良好的扩展性和可移植性,各智能終端平台可以均采用相同的架构来实现插件管理平台。此时,为了满足跨平台要求,即采用相同的架构,需要确保以下设计指标的一致性指标al、插件管理平台的分层设计和模块划分保证严格一致。
指标a2、插件管理平台内部的数据,协议和命令的定义保持完全一致。指标a3、插件接ロ设计要兼容各个平台各自的特性,例如Π接口和事件接ロ。以降低各平台的插件的开发门槛。指标a4、在指标a3的基础上,其他的平台无关的接ロ设计成一致,保证最大可能的插件设计的一致性。指标a5、各个平台的插件适配层需要很好的设计,可以很好的满足插件管理平台接口和插件接ロ的无缝转换和衔接。由于各个平台的插件管理是统ー实现的,而插件接ロ可能各自不同,所以需要适配层做双向的转化工作,需要满足转换的效率高,可靠性好,兼容性高。这里需要指出的是从扩展性和兼容性设计的角度考虑,需要确保以下设计指标的实现指标bl、良好的后台控制和同步机制,保证插件和浏览器版本间的兼容性。通过推荐升级,強制升级等方法,保证整个系统的良好兼容性。指标b2、所有服务接ロ,事件接口和通信接ロ均采用良好的扩展性设计。针对指标b2具体来说i)、服务接ロ通过类似COM接ロ定义,插件可以通过查询目前所提供的可用系统服务来完成逻辑操作并保证兼容性。ii)、插件和插件管理平台均提供扩展和查询接ロ,完成兼容性认证,如提供版本查询,能力查询和安全认证,并在此基础上进行交互和通信。iii)、通过设计统ー的自动化的通信和序列化模块,保证良好的扩展性和兼容性,增删ー个命令或数据结构不需要修改任何已有程序,并自动向前向后兼容。iv)通过在各个接ロ设计并预留了万能接ロ保证良好的扩展性。V)、各个通信和命令通过集中管理通信ID和动态分配命令字的方式,完美解决了插件之间的冲突和升级问题。指标b3、服务器端还可通过配置插件信息完成对插件的管理,如升级,启用或禁用
坐寸ο指标b4、服务端还可以通过配置并推送插件安装或升级包,达到扩展功能的效果。这里需要指出的是从插件的开发的角度考虑,插件的开发主要有以下三种形式I)从已有的普通插件改写成浏览器通用插件。此时,开发者仅需要继承插件接ロ并实现几个必要的接ロ实现即可,如版本查询接ロ,安全认证接ロ和通信接ロ。浏览器需要通过这几个接ロ知道插件的类型版本和安全等信息,提供相应的管理和支持。2)从已有的客户端应用程序基础上改写成插件。此时,开发者除需要完成I)所述的工作外,仅需完成对程序类型的修改,即从app改成dll。3)全新开发浏览器插件。此时,开发者首先创建ー个dll类型的工程,实现插件接ロ并添加必要的接ロ实现,另外加上插件所需的UI设计,逻辑控制等。由于插件管理平台在设计时考虑了通用性和可移植性,在各种不同智能終端平台上的设计可兼容的插件接ロ。所以可以快速的改写或开发出插件。
实施例ニ借助插件管理平台实现包括识别,版本比较,安全认证,加载和卸载等管理功能的插件使用流程实例。如图3所示,包括以下步骤步骤101、浏览器启动时,浏览器通过插件管理平台查询是否需要更新插件版本信息,如果是,则执行步骤102 ;否则,执行步骤103。这里,本步骤通过插件管理平台实现具体查询操作时,可以由插件行为管理単元与版本管理模块间的交互实现。步骤102、更新插件版本信息,将更新的版本信息同步到浏览器本地存储。步骤103、返回无需更新插件版本信息给浏览器。步骤104、浏览器通过插件管理平台获取插件加载请求。步骤105、当浏览器通过插件管理平台获取插件加载请求时,通过插件管理平台将要加载的插件的插件版本信息与浏览器本地的插件版本信息进行版本比较和实现安全认证。这里,本步骤实现具体安全认证的操作时,可以由插件行为管理単元与安全认证模块间的交互实现。步骤106、通过安全认证后浏览器通过插件管理平台自动加载该插件。步骤107、当该插件需要退出时,通过插件管理平台的插件接ロ发送退出请求(可以表示为ECMDExit命令),插件管理平台会自动根据当前引用情况以同步卸载或异步卸载的模式卸载掉该插件。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.ー种在浏览器上实现的开放式插件管理平台,其特征在于,所述插件管理平台在浏览器主进程中实现,所述插件管理平台用于作为插件与浏览器的交互媒介,控制承载的插件与浏览器的交互,并对插件进行管理后再适配给浏览器调用。
2.根据权利要求I所述的平台,其特征在于,所述插件管理平台具体包括插件引擎、插件行为管理単元、插件适配単元、服务单元、事件及消息处理单元及插件接ロ ;其中, 所述插件引擎,为插件管理平台与浏览器间交互的接ロ ; 所述插件行为管理単元,用于对插件的各种具体行为进行管理; 所述插件适配单元,用于浏览器借助插件管理平台与插件交互时,双向转换浏览器和插件之间交互的事件和消息格式; 所述服务単元,用于使插件能通过服务単元直接使用浏览器提供的Π服务和网络服务; 所述事件及消息处理单元,用于对经插件适配単元处理过格式的事件及消息进行统一处理,所述处理包括事件及消息的分发,事件及消息的封装,并提供给对应的事件调度、注册管理及消息广播功能应用; 所述插件接ロ为插件管理平台与插件间交互的接ロ。
3.根据权利要求2所述的平台,其特征在于,所述各种具体行为包括插件识别、插件加载/插件卸载、插件版本管理、插件安全认证、插件安装升级、或插件能力管理。
4.根据权利要求2或3所述的平台,其特征在于,所述服务単元,进ー步包括插件用户界面(Ul)服务模块和网络服务模块;其中, 所述插件UI服务模块,用于使插件能直接使用浏览器提供的UI服务,快速搭建插件所需要的UI ; 所述网络服务模块,用于使插件能直接使用浏览器提供的网络服务,快速运行插件所需要的网络运行环境。
5.根据权利要求2或3所述的平台,其特征在于,所述插件行为管理単元,进ー步包括识别模块、加载/卸载模块、版本管理模块、安全认证模块、安装升级模块和能力管理模块;其中, 所述识别模块,用于自动识别请求加载的插件; 所述加载/卸载模块,用于自动加载插件或卸载插件; 所述版本管理模块,用于管理插件版本,将浏览器本地存储的插件版本信息与请求加载的插件的插件版本信息进行比较; 所述安全认证模块,用于对插件进行安全认证; 所述安装升级模块,用于对插件进行安装升级; 所述能力管理模块,用于对插件的能力进行管理,所述能力包括插件的网络能力和插件的UI能力。
6.ー种在浏览器上实现的开放式插件管理方法,其特征在于,该方法包括在浏览器主进程中实现的插件管理平台,作为插件与浏览器的交互媒介,控制承载的插件与浏览器的交互,并对插件进行管理后再适配给浏览器调用。
7.根据权利要求6所述的方法,其特征在于,所述对插件进行管理包括已安装的插件被所述插件管理平台自动识别出来,在触发插件加载条件且通过插件管理平台的安全认证后,所述插件被自动加载。
8.根据权利要求6所述的方法,其特征在于,所述对插件进行管理还包括所述浏览器启动时,通过所述插件管理平台查询是否需要更新插件版本信息,当需要更新时,将更新的版本信息存储在浏览器本地;当浏览器通过插件管理平台获取插件加载请求时,通过插件管理平台将要加载的插件的插件版本信息与浏览器本地的插件版本信息进行版本比较和实现安全认证,通过安全认证后浏览器通过插件管理平台自动加载所述插件;当所述插件需要退出时,通过插件管理平台发送退出请求,并卸载所述插件。
全文摘要
本发明公开了一种在浏览器上实现的开放式插件管理平台,该插件管理平台在浏览器主进程中实现,用于作为插件与浏览器的交互媒介,控制承载的插件与浏览器的交互,并对插件进行管理后再适配给浏览器调用。本发明还公开了一种在浏览器上实现的开放式插件管理方法,该方法包括在浏览器主进程中实现的插件管理平台,作为插件与浏览器的交互媒介,控制承载的插件与浏览器的交互,并对插件进行管理后再适配给浏览器调用。采用本发明的平台及方法,能对各种服务或业务应用的插件进行管理,方便用户使用智能终端借助浏览器实现的各种服务和业务应用功能,且节约网络带宽和网络流量。
文档编号G06F17/30GK102682014SQ201110060859
公开日2012年9月19日 申请日期2011年3月14日 优先权日2011年3月14日
发明者赵峰 申请人:腾讯科技(深圳)有限公司