网络应用的框架装置及运行方法制造方法及图纸

技术编号:8132581 阅读:151 留言:0更新日期:2012-12-27 05:43
本发明专利技术公开了一种网络应用的框架装置和运行方法,该装置为一客户端,包括相互独立的框架进程和浏览器进程;框架进程中包括容器窗口和浏览器代理对象,浏览器进程中包括浏览器内核和存根对象。方法包括:框架进程的浏览器代理对象将容器窗口内指定区域的相关信息发送给浏览器进程的存根对象,并由该浏览器进程的存根对象转发给对应的浏览器内核,浏览器内核根据收到的信息渲染网络应用的界面信息,并通过本浏览器进程的存根对象将该界面信息跨进程发送给框架进程的浏览器代理对象;该框架进程的浏览器代理对象将收到的界面信息展示在所述容器窗口的指定区域。利用本发明专利技术,可以提高网络应用的稳定性、整体性能和安全性。

【技术实现步骤摘要】

本专利技术涉及互联网应用
,尤其涉及一种网络应用(WebApp)的框架装置以及WebApp的运行方法。
技术介绍
WebApp是使用网络(Web)页面作为基础,完成某种功能的应用。相对于普通的Web页面,WebApp更强调功能性,比如邮箱,小游戏,日程表等。WebApp框架是指WebApp的运行环境,比如采用何种浏览器内核,何种编程接口,有哪些接口可以由WebApp调用等。目前已经有很多的WebApp框架,包括谷歌(Google)公司现在有Chrome的WebApp框架,苹果(Apple)公司的WebApp框架,以及微软(Microsoft)公司的WebApp框架。但这 些WebApp框架需要运行在浏览器上,其能力仅限于浏览器内部,从行为上看,仍然属于一个网页。Chrome虽然进行了扩展,但也仅限于访问收藏夹,历史纪录等浏览器相关的数据,本质上仍然属于Web的应用。正因为目前WebApp框架运行在浏览器上,因此其稳定性、整体性能、安全性都存在着一定的缺陷。具体如下在目前的WebApp框架技术方案中,所有的WebApp容器窗口实质上是一个浏览器窗口,窗口内的界面直接使用浏览器内核控件窗口,由浏览器内核直接渲染WebApp的界面。这种处理方式的缺点是在浏览器内核发生崩溃或者卡住的时候,对应的WebApp容器窗口的子窗口也会崩溃或卡住,导致WebApp的稳定性较差。除了稳定性以外,WebApp页面还会受到浏览器内核性能的影响,以及浏览器自身的进程和线程模型的限制。如果所有的浏览器页面都在一个进程的一个线程打开,那么随着WebApp的打开和关闭,内存的释放会有问题;而如果WebApp打开比较多的话,WebApp的整体性能也会存在很大问题。因此目前WebApp框架的整体性能不高。另外,浏览器自身非常容易受到恶意攻击,因而目前WebApp需要运行在浏览器上,而此WebApp的安全性也存在很大问题。
技术实现思路
有鉴于此,本专利技术的主要目的是提供一种WebApp的框架装置及运行方法,以提高WebApp的稳定性、整体性能和安全性。本专利技术的技术方案是这样实现的一种网络应用的框架装置,该框架装置为一客户端装置,包括相互独立的框架进程和浏览器进程;所述框架进程中包括容器窗口和浏览器代理对象,所述浏览器进程中包括网络应用对应的浏览器内核和存根对象;所述框架进程的浏览器代理对象用于将所述容器窗口内指定区域的相关信息发送给浏览器进程的存根对象,并由该存根对象转发给对应的浏览器内核,所述浏览器内核根据收到的信息渲染网络应用的界面信息,并通过本浏览器进程的存根对象将该界面信息跨进程发送给所述框架进程的浏览器代理对象;该浏览器代理对象将收到的界面信息展示在所述容器窗口的指定区域。优选的,在同时运行一个以上网络应用时,所有网络应用对应的浏览器内核分别运行在不同的浏览器进程中,或者其中至少两个网络应用对应的浏览器内核共享一个浏览器进程。优选的,该装置包括本地组件、自定义对象和脚本引擎,其中所述本地组件用于提供基础的客户端功能;所述自定义对象用于封装本地组件,形成特定的客户端功能;所述脚本引擎中设置有所述自定义对象对应的脚本对象; 所述浏览器内核嵌入了所述脚本对象,并通过运行脚本调用所嵌入的脚本对象,运行所述自定义对象的特定的客户端功能。优选的,所述自定义对象、脚本引擎、以及浏览器内核运行在同一浏览器进程中,所述本地组件也运行在该浏览器进程中,或者所述本地组件运行在与该浏览器进程相独立的进程中。优选的,所述本地组件为本地服务组件,所述自定义对象为服务代理对象。优选的,所述浏览器进程中进一步包括沙箱保护单元,用于对浏览器进程进行防护。一种网络应用的运行方法,设置网络应用客户端,并包括在网络应用客户端中启动相互独立的框架进程和浏览器进程,所述框架进程中运行容器窗口和浏览器代理对象,所述浏览器进程中运行浏览器内核和存根对象;所述框架进程的浏览器代理对象将所述容器窗口内指定区域的相关信息发送给浏览器进程的存根对象,并由该存根对象转发给对应的浏览器内核;所述浏览器内核根据收到的信息渲染网络应用的界面信息,并通过本浏览器进程的存根对象将该界面信息跨进程发送给所述框架进程的浏览器代理对象;该浏览器代理对象将收到的界面信息展示在所述容器窗口的指定区域。优选的,该方法进一步设置可同时打开的最大浏览器进程数;当同时运行的网络应用数小于或等于所述最大浏览器进程数时,则每个网络应用对应的浏览器内核分别运行在不同的浏览器进程中;否则至少两个网络应用对应的浏览器内核共享一个浏览器进程。优选的,该方法进一步包括封装本地组件,形成具有特定客户端功能的自定义对象;在脚本引擎中设置所述自定义对象的脚本对象;在浏览器内核嵌入所述脚本对象;当网络应用运行时,浏览器内核通过运行脚本调用所嵌入的脚本对象,运行所述自定义对象的特定的客户端功能。优选的,在网络应用运行时,在同一浏览器进程中运行所述自定义对象、脚本引擎、浏览器内核,在与该浏览器进程相独立的进程中运行所述本地组件;或者在同一浏览器进程中运行所述本地组件、自定义对象、脚本引擎、以及浏览器内核。优选的,所述本地组件为本地服务组件,所述自定义对象为服务代理对象。与现有技术相比,本专利技术采用客户端实现WebApp框架,且在该WebApp框架中采用框架进程和浏览器进程相独立的方式,即浏览器内核放到一个专门的浏览器进程里,通过跨进程渲染机制进行WebApp界面的展示,从而使浏览器内核与框架进程完全独立,即使浏览器内核崩溃也不会影响到框架进程的正常运行,从而提高了 WebApp框架的整体稳定性;同时,由于框架进程所做的逻辑操作非常少并且简单,不会受到浏览器内核和服务进程的性能问题的影响,因此保证了 WebApp界面操作的流畅性,提升了 WebApp框架的整体性能;另外,由于把浏览器内核放到一个专门的浏览器进程里,可以防止恶意页面对WebApp系统的破坏,提升了安全性。进一步地,本专利技术结合了网络和客户端的优点,公开了基于客户端扩展的WebApp框架,使用内嵌脚本对象的方式提供本地客户端功能,从而可以把本地服务接入到Web的脚本控件,让Web页面的脚本可以调用到本地的客户端组件,从而扩展了 WebApp框架的能力,可以设计出更强大的WebApp。同时由于本专利技术以浏览器内核为基础,因此开发环境为Web,可以利用Web的优势搭建出丰富多彩的应用界面,并且容易部署和发布,开发门槛低,技术流行、广泛,且安全性好,不会对本地系统造成破坏。本专利技术可以实现一种新的应用开发模式,可以将WebApp框架装置作为一个客户端软件,使用浏览器进行界面的展现,并提 供相关客户端服务的扩展,从而获得Web的开发速度和更新频率,并具备客户端的应用能力。附图说明图I为本专利技术所述WebApp框架装置的一种示意图;图2为本专利技术所述跨进程渲染网页图像的一种示意图;图3a为本专利技术所述浏览器内核独享浏览器进程的示意图;图3b为本专利技术所述浏览器内核共享浏览器进程的示意图;图4a为本专利技术所述基于客户端扩展的WebApp框架装置的示意图;图4b为本专利技术所述基于客户端扩展的WebApp框架装置且其本地组件运行于独立进程的示意图;图5a为本专利技术可实现的一种新服务接入方式的示意图;图本文档来自技高网
...

【技术保护点】
一种网络应用的框架装置,其特征在于,该框架装置为一客户端装置,包括相互独立的框架进程和浏览器进程;所述框架进程中包括容器窗口和浏览器代理对象,所述浏览器进程中包括网络应用对应的浏览器内核和存根对象;所述框架进程的浏览器代理对象用于将所述容器窗口内指定区域的相关信息发送给浏览器进程的存根对象,并由该存根对象转发给对应的浏览器内核,所述浏览器内核根据收到的信息渲染网络应用的界面信息,并通过本浏览器进程的存根对象将该界面信息跨进程发送给所述框架进程的浏览器代理对象;该浏览器代理对象将收到的界面信息展示在所述容器窗口的指定区域。

【技术特征摘要】
1.一种网络应用的框架装置,其特征在于,该框架装置为一客户端装置,包括相互独立的框架进程和浏览器进程;所述框架进程中包括容器窗口和浏览器代理对象,所述浏览器进程中包括网络应用对应的浏览器内核和存根对象;所述框架进程的浏览器代理对象用于将所述容器窗口内指定区域的相关信息发送给浏览器进程的存根对象,并由该存根对象转发给对应的浏览器内核,所述浏览器内核根据收到的信息渲染网络应用的界面信息,并通过本浏览器进程的存根对象将该界面信息跨进程发送给所述框架进程的浏览器代理对象;该浏览器代理对象将收到的界面信息展示在所述容器窗口的指定区域。2.根据权利要求I所述的框架装置,其特征在于,在同时运行一个以上网络应用时,所有网络应用对应的浏览器内核分别运行在不同的浏览器进程中,或者其中至少两个网络应用对应的浏览器内核共享一个浏览器进程。3.根据权利要求I所述的框架装置,其特征在于,该装置包括本地组件、自定义对象和脚本引擎,其中 所述本地组件用于提供基础的客户端功能; 所述自定义对象用于封装本地组件,形成特定的客户端功能; 所述脚本引擎中设置有所述自定义对象对应的脚本对象; 所述浏览器内核嵌入了所述脚本对象,并通过运行脚本调用所嵌入的脚本对象,运行所述自定义对象的特定的客户端功能。4.根据权利要求3所述的框架装置,其特征在于,所述自定义对象、脚本引擎、以及浏览器内核运行在同一浏览器进程中,所述本地组件也运行在该浏览器进程中,或者所述本地组件运行在与该浏览器进程相独立的进程中。5.根据权利要求3或4所述的框架装置,其特征在于,所述本地组件为本地服务组件,所述自定义对象为服务代理对象。6.根据权利要求I所述的框架装置,其特征在于,所述浏览器进程中进一步包括沙箱保护单元,用...

【专利技术属性】
技术研发人员:黄奎魏亚民谢昕虬刘红杰
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1