CN102843394B - 网络应用的框架装置及运行方法 - Google Patents
网络应用的框架装置及运行方法 Download PDFInfo
- Publication number
- CN102843394B CN102843394B CN201110169313.6A CN201110169313A CN102843394B CN 102843394 B CN102843394 B CN 102843394B CN 201110169313 A CN201110169313 A CN 201110169313A CN 102843394 B CN102843394 B CN 102843394B
- Authority
- CN
- China
- Prior art keywords
- browser
- network application
- kernel
- browser kernel
- self
- 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.)
- Active
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种网络应用的框架装置和运行方法,该装置为一客户端,包括相互独立的框架进程和浏览器进程;框架进程中包括容器窗口和浏览器代理对象,浏览器进程中包括浏览器内核和存根对象。方法包括:框架进程的浏览器代理对象将容器窗口内指定区域的相关信息发送给浏览器进程的存根对象,并由该浏览器进程的存根对象转发给对应的浏览器内核,浏览器内核根据收到的信息渲染网络应用的界面信息,并通过本浏览器进程的存根对象将该界面信息跨进程发送给框架进程的浏览器代理对象;该框架进程的浏览器代理对象将收到的界面信息展示在所述容器窗口的指定区域。利用本发明,可以提高网络应用的稳定性、整体性能和安全性。
Description
技术领域
本发明涉及互联网应用技术领域,尤其涉及一种网络应用(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的开发速度和更新频率,并具备客户端的应用能力。
附图说明
图1为本发明所述WebApp框架装置的一种示意图;
图2为本发明所述跨进程渲染网页图像的一种示意图;
图3a为本发明所述浏览器内核独享浏览器进程的示意图;
图3b为本发明所述浏览器内核共享浏览器进程的示意图;
图4a为本发明所述基于客户端扩展的WebApp框架装置的示意图;
图4b为本发明所述基于客户端扩展的WebApp框架装置且其本地组件运行于独立进程的示意图;
图5a为本发明可实现的一种新服务接入方式的示意图;
图5b为本发明可实现的一种独立服务进程的服务接入方式的示意图;
图6为本发明对浏览器进程进行沙箱保护的示意图;
图7为本发明WebApp运行方法的一种流程图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1为本发明所述WebApp框架装置的一种示意图。参见图1,本发明所述WebApp的框架装置为一客户端软件装置,运行在本地客户端,该框架装置包括相互独立的框架进程和浏览器进程;所述框架进程(也可称为界面框架进程,用于WebApp的界面信息展示)中包括容器窗口(由于是在客户端展现,所以也可称为客户端容器窗口)和浏览器代理对象,所述浏览器进程中包括浏览器内核和浏览器代理对象对应的存根对象。
本发明中,所述框架进程需要调用浏览器内核对象,浏览器内核对象在另一个进程即浏览器进程中,所以在框架进程里面,有一个浏览器内核对象的代理对象即浏览器代理对象,接管框架进程的调用,该浏览器代理对象收到框架进程调用浏览器内核对象的请求以后,把这些调用请求转换为数据描述,通过跨进程通信传递给浏览器进程,而浏览器进程必须有对象来接收这些信息,这就是存根对象,存根对象收到所述调用请求信息以后,转换为对浏览器内核对象的调用。通过上述过程,可以完成跨进程的对象调用过程。
本发明中,一个WebApp窗口容器里并没有使用传统的浏览器控件的窗口,但是在所述容器窗口内指定了一个区域,如图1中的页面代理窗口,该页面代理窗口的绘制由浏览器提供的界面图像来绘制。所述浏览器进程的存根对象和框架进程的浏览器代理对象之间会有一个通信通道,可以进行数据的传输,框架进程的浏览器代理对象会向浏览器进程中的存根对象告知所述页面代理窗口的相关信息(例如该页面代理窗口的大小或者操作指令),浏览器进程的存根对象会将这些信息发送给浏览器内核。所述浏览器内核用于渲染WebApp的界面信息,即决定浏览器如何显示网页的内容以及页面的格式信息。当浏览器内核收到来自存根对象的信息后,渲染出与所述页面代理窗口同样大小的一幅页面图像,这幅页面图像再通过存根对象跨进程传输到框架进程的浏览器代理对象,该浏览器代理对象再将所述页面图像展示在所述页面代理窗口。由于本地的数据通信效率很高,所以即使动态的页面都可以实现实时的图像更新,用户看WebApp窗口里面好像有一个真正的网页,但其实只是图像而已。
图2为本发明所述跨进程渲染网页图像的一种示意图。如图2所示,所述浏览器内核渲染的WebApp的界面信息是页面图像,当然还可以进一步包括音频视频等数据信息,如果WebApp的网页是动态更新的,则该浏览器内核可以实时动态渲染出该动态网页的界面信息(如界面图像),并发送给框架进程的浏览器代理对象动态更新所述页面代理窗口内的界面信息,使得用户看到WebApp的容器窗口内好像是一个动态网页。
当然用户还需要对网页进行操作,比如用户在所述指定区域(如图1的页面代理窗口)内进行点击操作和输入文字等操作,所述框架进程实时捕捉所述容器窗口指定区域内的操作指令,在捕捉到操作指令后通过本框架进程的浏览器代理对象跨进程发送该操作指令到所述浏览器进程的存根对象,由该存根对象转发给对应的浏览器内核,浏览器内核根据操作指令重新渲染WebApp的界面图像,通过本浏览器进程的存根对象将该界面图像跨进程发送给所述框架进程的浏览器代理对象;该浏览器代理对象将收到的界面信息更新到所述页面代理窗口中。通过这种页面的刷新方式,使用户看起来像是在操作真正的网页。
通过跨进程渲染,浏览器内核与WebApp框架就完全隔离了,不管页面是卡住还是崩溃都不会影响到框架本身,而且由于浏览器内核在另一个进程,所以框架进程的内存,性能完全不受影响。给用户非常好的体验。
图3a为本发明所述浏览器内核独享浏览器进程的示意图。由于浏览器内核可能会发生崩溃,如果很多WebApp使用的浏览器内核都在同一个进程,一个页面的崩溃就会导致进程的崩溃,从而导致所有WebApp的崩溃。所以本发明把不同WebApp对应的浏览器内核放在不同的进程里,如果一个浏览器内核崩溃就仅会影响到当前的WebApp,从而增强了WebApp框架的稳定性。
但是,如果每一个WebApp对应的浏览器内核都放在不同的浏览器进程里,则会导致资源的过度消耗。当打开很多个WebApp的时候,会打开多个浏览器进程,会导致资源占用过多,***性能降低。所以这里不能简单的处理,需要使用一个策略来保持稳定性和性能的平衡,对于不同的机器,不同的***,不同的配置,可以同时打开的浏览器进程数是不一样的。因此本发明进一步设置可同时打开的最大浏览器进程数;当同时运行的WebApp数小于或等于所述最大浏览器进程数时,则每个WebApp对应的浏览器内核分别运行在不同的浏览器进程中;否则至少两个WebApp对应的浏览器内核共享一个浏览器进程,如图3b所示。
为了实现网络优势和客户端优势相结合,增强web页面的能力,本发明还在脚本引擎中自定义脚本对象,并对浏览器内核进行改造,将自定义的脚本对象嵌入到浏览器内核中,便于脚本调用。
图4a为本发明所述基于客户端扩展的WebApp框架装置的示意图。参见图4a,所述浏览器进程中除了浏览器内核还包括脚本引擎、自定义对象和本地组件。其中:所述本地组件用于提供基础的客户端功能;所述自定义对象用于封装本地组件,形成特定的客户端功能;所述脚本引擎中设置有所述自定义对象对应的脚本对象;所述浏览器内核嵌入了所述脚本对象,并通过运行脚本调用所嵌入的脚本对象,运行所述自定义对象的特定的客户端功能。
下面对图4a所具体说明。浏览器内核里面可以运行脚本,脚本是由脚本引擎提供运行环境的,对于浏览器来说,脚本引擎里面内置了window,document等对象,脚本可以对这些对象进行控制,从而可以动态修改页面。但脚本引擎也提供了一些机制,可以嵌入自定义的对象,本发明就是利用脚本引擎的嵌入机制,嵌入自定义的对象。一个自定义对象在脚本引擎里面映射有一个脚本对象,供给浏览器内核的脚本使用,同时这个脚本对象的实现是由本地组件来提供的,即可以将本地组件封装成自定义对象,每个自定义对象实现的功能由本地组件来实现,这样就可以让浏览器里面的脚本访问到外部的本地组件了,从而使内部脚本可以访问外部的本地组件,极大的增强了Web页面的能力,同时开发门槛低,易于使用,便于扩展。
至于具体的向浏览器内核嵌入脚本对象的方式,不同的浏览器内核,其实现方法也不相同。本发明所述的浏览器内核不限于特定的浏览器内核,现在流行的浏览器内核有IE,Chrome,Firefox,它们都提供了嵌入脚本对象的能力。其中IE是提供了非常明确的机制,IE对于window对象里面的external成员提供了专门的接口来扩展。IE是基于COM的,所以只要提供相关的COM对象,就非常容易实现external对象的扩展,通过external,可以实现脚本到COM对象的调用。而Chrome和Firefox由于本身是开源的,所以可以直接修改其源代码嵌入自定义的脚本对象,Chrome和Firefox本身的脚本引擎也都提供了自定义脚本对象的方法。
至于具体的脚本引擎嵌入自定义对象的机制,由于不同脚本引擎嵌入自定义对象的机制可能不同,因此在具体嵌入时可以参见该脚本引擎的规范。
图4a所示的本地组件、自定义对象、脚本引擎、以及浏览器内核运行在同一浏览器进程中。但当一个以上WebApp同时启动时,一个以上WebApp对应的浏览器内核可能占用一个以上的浏览器进程,如果每个浏览器进程里面都有本地组件则是一种资源的浪费,也不便于统一管理,所以在一种优选实施方式中可以把所有本地组件独立为一个进程。图4b为本发明所述本地组件运行于独立进程的示意图,参见图4b,在每个浏览器进程里面都会有该本地组件的代理对象即所述自定义对象,该自定义对象用于把本浏览器进程的调用组件的请求发送到本地组件所在的独立进程,然后该独立进程进行相关的本地组件操作。这样既节省了资源,又便于管理。
在本发明这种基于客户端扩展的WebApp框架模式下,可以产生一种新的服务接入方式。图5a为本发明可实现的一种新服务接入方式的示意图。由于某些服务不适合作为Web服务提供(如基于TCP或UDP的数据服务、视频、传文件等客户端才能实现的服务能力),但若作为客户端组件,使用客户端开发方式来使用,技术门槛比较高,使用也不方便。因此本发明把客户端的本地组件作为本地服务组件,该本地服务组件用于为WebApp提供特定的本地服务功能(如TCP或UDP数据传输服务、视频传输服务等服务功能),把这种本地服务组件封装成自定义对象即图5a中所示的服务代理对象,脚本引擎中映射有该服务代理对象的脚本对象,该脚本对象又嵌入到浏览器内核中。在浏览器内核需要特定的客户端服务时,只需要调用该脚本对象(相当于调用WebApp本地服务的一个接口),通过服务代理对象通知所述本地服务组件实现特定的客户端服务功能。对于WebApp开发者来说,当需要使用复杂的本地服务时,不必重新开发本地组件,而只需要调用所述服务代理对象的脚本对象即可,本地服务的具体实现都通过所述已经封装好的本地服务组件来实现,因此大大简化了WebApp开发者的开发工作,降低了开发门槛,有助于WebApp框架的推广。
例如对于传输文件的服务,利用HTTP协议的文件传输效率是很低的,使用客户端的多线程和多点下载技术,可以极大的提高传输文件的速度,但是在Web页面里这种客户端多线程和多点下载技术是不可能实现的。通过本发明的方案,可以在页面脚本里面直接调用传文件的服务,实现高速文件传输。通过这种机制,Web页面可以利用客户端的服务来完成复杂的功能,极大的扩展了WebApp的应用范围。
在图5a中,所述本地服务组件设置到了与服务代理对象、脚本引擎、以及浏览器内核的同一个浏览器进程中。当然,为了节省资源和便于管理,在在另一中优选方案中,也可以将本地服务组件单独设置进一个独立的服务进程中,如图5b所示为本发明可实现的一种独立服务进程的服务接入方式的示意图,本地服务组件都运行在一个独立的服务进程中,在浏览器内核需要特定的客户端服务时,通过所述服务代理对象向所述服务进程发出指令,服务进程再调用对应的本地服务组件实施特定的客户端服务。
对于WebApp的安全性,本发明也采取了相应的技术方案。对于WebApp界面框架进程、浏览器进程、还有服务进程,最不安全的是浏览器进程。因此本发明使用沙箱的技术对浏览器进程进行防护,防止不安全的页面对***的破坏。图6为本发明对浏览器进程进行沙箱保护的示意图,如图6所示,所述浏览器进程中进一步包括沙箱保护单元,用于对浏览器进程进行防护。至于沙箱保护单元具体的实施方法,可以参考现有技术,本文不再赘述。
另外一个安全性问题是数据的安全性,WebApp可能会需要账号或者用户信息等机密数据,但不可能要求所有的WebApp都使用HTTPS这样的加密通道,这里可以在服务进程这边实现加密,服务进程与后台服务器可以使用加密的协议,服务进程与浏览器进程的服务代理可以使用加密传输的方式,然后在浏览器进程的服务代理这里解密,然后传给页面使用。
基于上述对本发明所述WebApp框架装置的描述,本发明还公开了一种WebApp的运行方法,图7为本发明WebApp运行方法的一种流程图,该方法需要设置网络应用客户端,并包括:
在网络应用客户端中启动相互独立的框架进程和浏览器进程,所述框架进程中运行容器窗口和浏览器代理对象,所述浏览器进程中运行浏览器内核和存根对象;
所述框架进程的浏览器代理对象将所述容器窗口内指定区域的相关信息发送给浏览器进程的存根对象,并由该存根对象转发给对应的浏览器内核;
所述浏览器内核根据收到的信息渲染网络应用的界面信息,并通过本浏览器进程的存根对象将该界面信息跨进程发送给所述框架进程的浏览器代理对象;该框架进程的浏览器代理对象将收到的界面信息展示在所述容器窗口的指定区域。
基于前述描述,该方法可进一步设置可同时打开的最大浏览器进程数;当同时运行的网络应用数小于或等于所述最大浏览器进程数时,则每个网络应用对应的浏览器内核分别运行在不同的浏览器进程中;否则至少两个网络应用对应的浏览器内核共享一个浏览器进程。
基于前述描述,为了使WebApp具有客户端的处理能力,该方法进一步包括:封装本地组件,形成具有特定客户端功能的自定义对象;在脚本引擎中设置所述自定义对象的脚本对象;在浏览器内核嵌入所述脚本对象;当网络应用运行时,浏览器内核通过运行脚本调用所嵌入的脚本对象,运行所述自定义对象的特定的客户端功能。
在网络应用运行时,在同一浏览器进程中运行所述自定义对象、脚本引擎、浏览器内核,在与该浏览器进程相独立的进程中运行所述本地组件;或者在同一浏览器进程中运行所述本地组件、自定义对象、脚本引擎、以及浏览器内核。
为了实现一种新服务接入方式,所述本地组件可以为本地服务组件,所述自定义对象为服务代理对象。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (9)
1.一种网络应用的运行装置,其特征在于,该装置运行在一客户端装置上,包括:
第一模块,用于在网络应用客户端中启动相互独立的框架进程和浏览器进程,所述框架进程中运行容器窗口和浏览器代理对象,所述浏览器进程中运行浏览器内核和存根对象;
第二模块,用于执行:所述框架进程的浏览器代理对象将所述容器窗口内指定区域的相关信息发送给浏览器进程的存根对象,并由该存根对象转发给对应的浏览器内核;
第三模块,用于执行:所述浏览器内核根据收到的信息渲染网络应用的界面信息,并通过本浏览器进程的存根对象将该界面信息跨进程发送给所述框架进程的浏览器代理对象;该浏览器代理对象将收到的界面信息展示在所述容器窗口的指定区域;
用于封装本地组件,形成具有特定客户端功能的自定义对象的模块;
用于在脚本引擎中设置所述自定义对象的脚本对象的模块;
用于在浏览器内核嵌入所述脚本对象的模块;
用于当网络应用运行时,浏览器内核通过运行脚本调用所嵌入的脚本对象,运行所述自定义对象的特定的客户端功能的模块。
2.根据权利要求1所述的网络应用的运行装置,其特征在于,该装置进一步包括:
第四模块,用于执行:设置可同时打开的最大浏览器进程数,当同时运行的网络应用数小于或等于所述最大浏览器进程数时,则每个网络应用对应的浏览器内核分别运行在不同的浏览器进程中;否则至少两个网络应用对应的浏览器内核共享一个浏览器进程。
3.根据权利要求1所述的网络应用的运行装置,其特征在于,所述自定义对象、脚本引擎、以及浏览器内核运行在同一浏览器进程中,所述本地组件也运行在该浏览器进程中,或者所述本地组件运行在与该浏览器进程相独立的进程中。
4.根据权利要求3所述的网络应用的运行装置,其特征在于,所述本地组件为本地服务组件,所述自定义对象为服务代理对象。
5.根据权利要求1所述的网络应用的运行装置,其特征在于,所述浏览器进程中进一步包括沙箱保护单元,用于对浏览器进程进行防护。
6.一种网络应用的运行方法,其特征在于,设置网络应用客户端,并包括:
在网络应用客户端中启动相互独立的框架进程和浏览器进程,所述框架进程中运行容器窗口和浏览器代理对象,所述浏览器进程中运行浏览器内核和存根对象;
所述框架进程的浏览器代理对象将所述容器窗口内指定区域的相关信息发送给浏览器进程的存根对象,并由该存根对象转发给对应的浏览器内核;
所述浏览器内核根据收到的信息渲染网络应用的界面信息,并通过本浏览器进程的存根对象将该界面信息跨进程发送给所述框架进程的浏览器代理对象;该浏览器代理对象将收到的界面信息展示在所述容器窗口的指定区域;
封装本地组件,形成具有特定客户端功能的自定义对象;
在脚本引擎中设置所述自定义对象的脚本对象;
在浏览器内核嵌入所述脚本对象;
当网络应用运行时,浏览器内核通过运行脚本调用所嵌入的脚本对象,运行所述自定义对象的特定的客户端功能。
7.根据权利要求6所述的方法,其特征在于,该方法进一步设置可同时打开的最大浏览器进程数;当同时运行的网络应用数小于或等于所述最大浏览器进程数时,则每个网络应用对应的浏览器内核分别运行在不同的浏览器进程中;否则至少两个网络应用对应的浏览器内核共享一个浏览器进程。
8.根据权利要求6所述的方法,其特征在于,在网络应用运行时,在同一浏览器进程中运行所述自定义对象、脚本引擎、浏览器内核,在与该浏览器进程相独立的进程中运行所述本地组件;或者在同一浏览器进程中运行所述本地组件、自定义对象、脚本引擎、以及浏览器内核。
9.根据权利要求6或8所述的方法,其特征在于,所述本地组件为本地服务组件,所述自定义对象为服务代理对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110169313.6A CN102843394B (zh) | 2011-06-22 | 2011-06-22 | 网络应用的框架装置及运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110169313.6A CN102843394B (zh) | 2011-06-22 | 2011-06-22 | 网络应用的框架装置及运行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102843394A CN102843394A (zh) | 2012-12-26 |
CN102843394B true CN102843394B (zh) | 2015-12-09 |
Family
ID=47370454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110169313.6A Active CN102843394B (zh) | 2011-06-22 | 2011-06-22 | 网络应用的框架装置及运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102843394B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077151B (zh) * | 2013-03-26 | 2017-11-24 | 联想(北京)有限公司 | 快速启动网络应用的方法和电子设备 |
CN104951326B (zh) * | 2014-03-31 | 2020-06-30 | 腾讯科技(深圳)有限公司 | 网页访问方法及装置 |
CN106485159B (zh) * | 2015-08-28 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 网络安全存储方法和装置 |
CN108205456A (zh) * | 2017-12-28 | 2018-06-26 | 北京奇虎科技有限公司 | 一种跨进程的窗口渲染方法、设备及存储介质 |
CN110046315A (zh) * | 2019-03-01 | 2019-07-23 | 视联动力信息技术股份有限公司 | 一种会议管理平台的处理方法和装置 |
CN111931170A (zh) * | 2020-07-15 | 2020-11-13 | 北京钛星数安科技有限公司 | 一种网站应用隔离防护*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101609470A (zh) * | 2009-07-02 | 2009-12-23 | 腾讯科技(深圳)有限公司 | 一种多页面浏览器防假死方法及装置 |
CN101911056A (zh) * | 2008-01-15 | 2010-12-08 | 微软公司 | 应用程序中的进程所进行的内容隔离 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6401134B1 (en) * | 1997-07-25 | 2002-06-04 | Sun Microsystems, Inc. | Detachable java applets |
CA2384183A1 (en) * | 2002-04-29 | 2003-10-29 | Ibm Canada Limited-Ibm Canada Limitee | Browser-independent pop-up windows |
JP4353487B2 (ja) * | 2006-05-30 | 2009-10-28 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ローカル・プロキシにより通信情報を共有する方法 |
CN102033803B (zh) * | 2009-09-29 | 2014-07-09 | 国际商业机器公司 | 跨浏览器测试web应用的方法和装置 |
-
2011
- 2011-06-22 CN CN201110169313.6A patent/CN102843394B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101911056A (zh) * | 2008-01-15 | 2010-12-08 | 微软公司 | 应用程序中的进程所进行的内容隔离 |
CN101609470A (zh) * | 2009-07-02 | 2009-12-23 | 腾讯科技(深圳)有限公司 | 一种多页面浏览器防假死方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102843394A (zh) | 2012-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102843393B (zh) | 网络应用的运行装置及方法 | |
CN102843394B (zh) | 网络应用的框架装置及运行方法 | |
TWI444216B (zh) | 基於移動終端實現遊戲之方法和裝置 | |
CN103281311B (zh) | 一种使用Protobuf描述的物联网协议解析方法 | |
CN108536524A (zh) | 资源更新方法、装置、终端及存储介质 | |
US20110107077A1 (en) | Obscuring form data through obfuscation | |
CN101964763B (zh) | 消息处理方法 | |
CA2387328A1 (en) | Mobile terminal system | |
CN102291437A (zh) | 跨平台互联网应用的实现***及方法 | |
CN103023790A (zh) | 一种用于实现跨域交互访问的方法和*** | |
CN103179166A (zh) | 在客户端中提供服务的方法和客户端 | |
CN103176804A (zh) | 一种用户界面实现方法 | |
CN102624918A (zh) | 一种基于url重写技术的代理访问方法 | |
CN104267972A (zh) | 浏览器本地接口扩展方法及装置 | |
WO2023011274A1 (zh) | 一种通讯协议转换方法、设备、***及网关设备 | |
CN101924696A (zh) | 用于有效实现增强型路由器设备的***和方法 | |
CN103118082A (zh) | 附加信息植入方法、设备及*** | |
CN105786952A (zh) | 可自动配置的传输堆栈 | |
CN102325225A (zh) | 一种播放手机网站的视频的方法及装置 | |
CN109388388B (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
CN105138399A (zh) | 跨平台移动Web应用运行引擎 | |
CN102842006A (zh) | 扩展脚本对象的访问控制方法及其访问控制***和终端 | |
CN106506210B (zh) | 一种集合多种协议实现接口界面化的方法及其*** | |
US10536546B2 (en) | Method for managing access to a set of resources delivered via an electronic device | |
CN109977330A (zh) | 基于动态访问路径的网页访问方法及相关设备 |
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 |