CN108270838B - 一种基于容器的浏览器html5资源协同方法 - Google Patents
一种基于容器的浏览器html5资源协同方法 Download PDFInfo
- Publication number
- CN108270838B CN108270838B CN201710004193.1A CN201710004193A CN108270838B CN 108270838 B CN108270838 B CN 108270838B CN 201710004193 A CN201710004193 A CN 201710004193A CN 108270838 B CN108270838 B CN 108270838B
- Authority
- CN
- China
- Prior art keywords
- container
- resource
- html5
- cooperation
- web application
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
- G06F9/4862—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
- G06F9/4875—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with migration policy, e.g. auction, contract negotiation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于容器的浏览器HTML5资源协同方法,所述方法包括:浏览器中Web应用采用封装后的HTML5标准接口使用HTML5资源;依据资源协同策略判断是否进行HTML5资源协同;若需要资源协同,基于容器的迁移机制实现HTML5资源迁移到目标节点;最后基于容器的通信机制将目标节点的执行结果传递给源节点上的Web应用。本发明方法基于容器迁移机制和HTML5标准接口封装实现HTML5资源实时性协同,并制定了资源协同策略,可以很好地解决WEB应用在智能终端上运行时存在的资源不足和性能问题。
Description
技术领域
本发明属于浏览器资源管理领域和多终端、云端资源协同领域,涉及浏览器HTML5运行机制和HTML5资源虚拟化,还涉及到容器迁移机制和通信机制;特别涉及一种基于容器的浏览器HTML5资源协同方法。
背景技术
HTML5标准的发布使WEB应用的功能越来越强大的同时,WEB应用也越来越复杂,消耗的资源也越来越多,有的WEB应用甚至需要利用平台的硬件能力来完成功能,而智能终端中资源受限、处理能力有限,因此针对智能终端进行的多终端之间、云端之间资源协同成为研究的热点。
目前大多数资源协同方面的研究都是终端和云之间的资源协同,资源不足时将应用的一部分迁移到云端进行或者为了充分利用云端强大的处理能力,直接将Computation-intensive的部分迁移到云端进行来提高应用性能,还有一些研究针对HTML5Web Worker或HTML5Storage进行资源协同。但是目前的研究还有以下几点不足:首先,现有研究考虑的大都是终端和云之间的资源协同,而没有考虑终端附近的各种设备所提供的近场资源,当终端和云之间距离比较远而应用又对时延比较敏感时,近场设备资源应该比云端资源更有优势;其次,透明化资源协同也是一个很重要的特性,大部分研究都没有实现透明的资源协同机制,需要应用做一定的修改才能进行资源协同,目前部分研究实现的HTML5资源透明化协同也只是针对一种或两种HTML5资源,而没有针对全部或大部分HTML5资源提供这样的机制;最后,现有研究基本没有实现运行时的HTML5资源协同,都是在WEB应用开始调用HTML5资源时就决定在终端或者云端运行HTML5资源容器,而不是将正在运行中的HTML5资源容器从终端迁移到云端。
容器虚拟化技术是一种资源管理技术,它对内存、CPU、存储等实体资源进行虚拟化、度量和分配,为用户提供安全、隔离的应用执行环境,容器虚拟化技术还提供热迁移机制,可以轻易实现容器在多机之间的带状态迁移。容器虚拟化技术在云端资源管理系统中在成功应用使用其非常适合作为多机之间的资源调度单位,而以Docker为代表的轻量级容器虚拟化技术的兴起和研究为其在智能终端WEB运行环境中的使用带来了可能。
发明内容
本发明的目的在于解决智能终端中WEB应用运行过程中存在的资源不足和性能问题,提出了基于容器技术的浏览器HTML5资源协同方法,该方法通过HTML5资源实时、透明协同机制来充分调用其他终端或云端的资源和处理能力。
为了实现上述目的,本发明提供了一种基于容器的浏览器HTML5资源协同方法,所述方法包括:浏览器中Web应用采用封装后的HTML5标准接口使用HTML5资源;依据资源协同策略判断是否进行HTML5资源协同;若需要资源协同,基于容器的迁移机制实现HTML5资源迁移到目标节点;最后基于容器的通信机制将目标节点的执行结果传递给源节点上的Web应用。
上述技术方案中,所述方法具体包括:
步骤1)在HTML5标准接口上封装一层相同的接口,形成封装层;并在封装层中加入资源协同策略和HTML5资源容器迁移功能,用于实现资源协同;
步骤2)在Web应用解析过程中,当遇到HTML5相关代码时,Web应用进程容器向浏览器进程容器申请HTML5资源;
步骤3)在Web应用运行过程中,封装层的代价模型依据资源协同策略判断是否进行HTML5资源协同,如果不进行,转入步骤4),否则,转入步骤5);
步骤4)封装层直接调用原Chromium中HTML5标准接口,在本机创建HTML5资源容器,HTML5资源容器将执行结果传给相应的Web应用;
步骤5)封装层触发资源协同机制,基于容器的热迁移机制将HTML5资源容器迁移到目标节点;
步骤6)基于容器之间的通信机制,目标节点上的HTML5资源容器将执行结果传递给源节点上的Web应用。
上述技术方案中,所述步骤3)的封装层中的代价模型依据资源协同策略判断是否进行资源协同,代价模型考虑的因素有:资源使用情况、网络状况、应用性能、处理速度和安全。
上述技术方案中,所述步骤5)的具体实现过程为:封装层触发容器的热迁移机制后,HTML资源容器的状态会被保存成文件,文件和相应的JS代码被发送到目标节点,目标节点Docker引擎依据状态文件恢复容器执行状态,HTML5资源容器继续执行。
上述技术方案中,所述步骤6)的容器之间的通信机制为host模式或端口绑定模式;host模式为主机上的容器使用和主机相同的IP和主机端口,端口绑定模式为主机上的容器使用和主机相同的IP和容器端口。
本发明的优势在于:本发明的方法基于容器迁移机制和HTML5标准接口封装实现HTML5资源实时性协同,并制定了资源协同策略,可以很好地解决WEB应用在智能终端上运行时存在的资源不足和性能问题。
附图说明
图1为浏览器HTML5资源容器化图;
图2是本发明的智能终端HTML5资源协同架构图;
图3为本发明的基于容器的浏览器HTML5资源协同方法流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明。
在本实施例中,浏览器和容器分别为Chromium和Docker,WEB应用为使用HTML5web worker的图形渲染应用Ray Tracing(http://nerget.com/rayjs-mt/rayjs.html)。
图1是浏览器HTML5资源容器化图,HTML5资源以容器的形式提供和接受调用。当WEB应用需要调用HTML5资源时,向浏览器进程容器申请资源,浏览器进程和Docker引擎通信来为WEB应用创建相应的HTML5资源容器。
图2是智能终端HTML5资源协同架构图,针对HTML5资源协同的模块主要是Encapsulated HTML5Interface,Offloading Decision System和HTML5Offloading三个模块。Encapsulated HTML5Interface主要是对平台实现的HTML5功能进行一层封装,目的是为了实现透明化的资源协同。Offloading Decision System主要是根据代价模型判断是否进行资源协同。HTML5Offloading基于容器迁移机制实现HTML5资源容器的迁移。图中的Docker Client用来实现浏览器进程容器和Docker引擎进行通信。
如图3所示,一种基于容器的浏览器HTML5资源协同方法,所述方法包括:
步骤1)在HTML5标准接口上封装一层相同的接口,形成封装层;并在封装层中加入资源协同策略和HTML5资源容器迁移功能,用于实现资源协同;
步骤2)在Ray Tracing应用解析过程中,当遇到创建web worker的代码时,渲染进程容器向浏览器进程容器申请HTML5web worker资源;
步骤3)在Ray Tracing应用运行时,如果终端的资源使用情况和渲染速度满足要求,则封装层直接调用原Chromium中HTML5web worker标准实现接口,在本机创建HTML5webworker容器,HTML5web worker容器进行计算工作,并将计算结果传给相应的Ray Tracing应用;否则,转入步骤4);
步骤4)在HTML5web worker运行过程中,如果有其它应用竞争使用GPU或其它因素导致渲染速度变慢,则封装层的代价模型会依据资源协同策略决定进行HTML5web worker资源协同并触发资源协同机制,即进行HTML5web worker容器热迁移;
浏览器进程收到渲染进程的HTML5web worker请求后,首先封装层中的代价模型依据资源协同策略判断是否进行资源协同,代价模型考虑的因素可以有很多种,比如本机资源使用情况、网络状况、应用性能、安全方面等。具体到Ray Tracing应用主要考虑终端资源使用情况和应用性能方面,本机资源主要考虑GPU,因为Ray Tracing渲染需要用到GPU进行计算,性能方面主要考虑渲染速度。
在终端Ray Tracing应用运行过程中代价模型会依据GPU使用情况和渲染速度等因素,动态决定是否进行资源协同。
步骤5)基于容器的迁移机制将HTML5资源容器迁移到目标节点;
触发容器的热迁移机制后,HTML5web worker容器的状态会被保存成文件,文件和相应的JS代码被发送到目标节点,目标节点Docker引擎依据状态文件恢复容器执行状态,HTML5web worker容器继续执行。
步骤6)基于容器之间的通信机制,目标节点上的HTML5web worker容器将计算结果传递给源节点上的Ray Tracing应用,完成渲染。
目标节点上的HTML5web worker将计算结果传递给源节点上的Ray Tracing应用,容器之间的通信机制一种是host模式,即主机上的容器完全使用和主机相同的网络:主机IP+主机端口,另外一种通信机制是端口绑定模式:主机IP+容器端口。基于上述通信机制将解码结果传递到源节点后,源节点Ray Tracing应用接收计算结果,完成渲染。
以上所述仅为本发明的具体实施方式,并非用于限定本发明的保护范围,本领域的技术人员应当理解,在不脱离发明原理的前提下,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的保护范围中。
Claims (3)
1.一种基于容器的浏览器HTML5资源协同方法,所述方法包括:浏览器中Web应用采用封装后的HTML5标准接口使用HTML5资源;依据资源协同策略判断是否进行HTML5资源协同;若需要资源协同,基于容器的迁移机制实现HTML5资源迁移到目标节点;最后基于容器的通信机制将目标节点的执行结果传递给源节点上的Web应用;
所述方法具体包括:
步骤1)在HTML5标准接口上封装一层相同的接口,形成封装层;并在封装层中加入资源协同策略和HTML5资源容器迁移功能,用于实现资源协同;
步骤2)在Web应用解析过程中,当遇到HTML5相关代码时,Web应用进程容器向浏览器进程容器申请HTML5资源;
步骤3)在Web应用运行过程中,封装层的代价模型依据资源协同策略判断是否进行HTML5资源协同,如果不进行,转入步骤4),否则,转入步骤5);
步骤4)封装层直接调用原Chromium中HTML5标准接口,在本机创建HTML5资源容器,HTML5资源容器将执行结果传给相应的Web应用;
步骤5)封装层触发资源协同机制,基于容器的热迁移机制将HTML5资源容器迁移到目标节点;
步骤6)基于容器之间的通信机制,目标节点上的HTML5资源容器将执行结果传递给源节点上的Web应用;
所述步骤5)的具体实现过程为:封装层触发容器的热迁移机制后,HTML资源容器的状态会被保存成文件,文件和相应的JS代码被发送到目标节点,目标节点Docker引擎依据状态文件恢复容器执行状态,HTML5资源容器继续执行。
2.根据权利要求1所述的基于容器的浏览器HTML5资源协同方法,其特征在于,所述步骤3)的封装层中的代价模型依据资源协同策略判断是否进行资源协同,代价模型考虑的因素有:资源使用情况、网络状况、应用性能、处理速度和安全。
3.根据权利要求1所述的基于容器的浏览器HTML5资源协同方法,其特征在于,所述步骤6)的容器之间的通信机制为host模式或端口绑定模式;host模式为主机上的容器使用和主机相同的IP和主机端口,端口绑定模式为主机上的容器使用和主机相同的IP和容器端口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710004193.1A CN108270838B (zh) | 2017-01-04 | 2017-01-04 | 一种基于容器的浏览器html5资源协同方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710004193.1A CN108270838B (zh) | 2017-01-04 | 2017-01-04 | 一种基于容器的浏览器html5资源协同方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108270838A CN108270838A (zh) | 2018-07-10 |
CN108270838B true CN108270838B (zh) | 2020-04-24 |
Family
ID=62771646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710004193.1A Expired - Fee Related CN108270838B (zh) | 2017-01-04 | 2017-01-04 | 一种基于容器的浏览器html5资源协同方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108270838B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111352692B (zh) * | 2018-12-21 | 2023-10-31 | 中国科学院声学研究所 | 一种采用web语言实现的容器镜像的方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824688A (zh) * | 2016-03-16 | 2016-08-03 | 合网络技术(北京)有限公司 | 一种解决docker容器启动并发瓶颈的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009049088A1 (en) * | 2007-10-10 | 2009-04-16 | Sun Microsystems, Inc. | Method and system for changing execution environments during application execution |
US8965180B2 (en) * | 2010-07-13 | 2015-02-24 | Rovi Guides, Inc. | Systems and methods for converting interactive multimedia content authored for distribution via a physical medium for electronic distribution |
CN103176986B (zh) * | 2011-12-20 | 2017-05-24 | 上海博泰悦臻电子设备制造有限公司 | Flash动画数据转换为HTML5数据的方法 |
WO2014110453A1 (en) * | 2013-01-11 | 2014-07-17 | Huawei Technologies Co., Ltd. | Network function virtualization for a network device |
CN104268739A (zh) * | 2014-08-29 | 2015-01-07 | 蓝信工场(北京)科技有限公司 | 一种将企业信息系统快速转化为移动应用的方法和系统 |
CN104536751B (zh) * | 2014-12-26 | 2018-04-06 | 小米科技有限责任公司 | 网页源码迁移方法和装置 |
-
2017
- 2017-01-04 CN CN201710004193.1A patent/CN108270838B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824688A (zh) * | 2016-03-16 | 2016-08-03 | 合网络技术(北京)有限公司 | 一种解决docker容器启动并发瓶颈的方法 |
Non-Patent Citations (2)
Title |
---|
WWF: Web Application Workload Balancing Framework;Inchul Hwang,et all;《2014 28th International Conference on Advanced Information Networking and Applications Workshops》;20140516;正文第150-153页 * |
基于Docker技术的GUI应用的在线迁移研究;房锦章等;《计算机系统应用》;20161015;第25卷(第10期);正文第247-250页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108270838A (zh) | 2018-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Marty et al. | Snap: A microkernel approach to host networking | |
US10768960B2 (en) | Method for affinity binding of interrupt of virtual network interface card, and computer device | |
EP3376380B1 (en) | Architecture and method for managing interrupts in a virtualized environment | |
CN108628684B (zh) | 一种基于dpdk的报文处理方法及计算机设备 | |
EP3343364B1 (en) | Accelerator virtualization method and apparatus, and centralized resource manager | |
CN109074330A (zh) | 网络接口卡、计算设备以及数据包处理方法 | |
WO2017020722A1 (zh) | 基于虚拟机的数据传输方法、装置及系统 | |
CN107423619B (zh) | 一种基于虚拟化技术构建智能终端web运行时的方法 | |
CN108509251B (zh) | 一种适用于可信执行环境中的安全虚拟化系统 | |
Kosta et al. | Unleashing the power of mobile cloud computing using thinkair | |
CN108228309B (zh) | 基于虚拟机的数据包发送和接收方法及装置 | |
CN105589697B (zh) | 一种云平台的升级方法及装置 | |
US20100088703A1 (en) | Multi-core system with central transaction control | |
CN108549571B (zh) | 一种适用于可信执行环境中的安全虚拟化方法 | |
US10810024B2 (en) | Redirection method and apparatus, and system | |
CN105187327A (zh) | 一种分布式消息队列中间件 | |
CN111078316B (zh) | 布局文件加载方法、装置、存储介质及电子设备 | |
CN108270838B (zh) | 一种基于容器的浏览器html5资源协同方法 | |
CN114691286A (zh) | 服务器系统、虚拟机创建方法及装置 | |
CN109460280B (zh) | 运行程序的方法、终端 | |
CN113986466A (zh) | 一种面向云计算的gpu虚拟化系统和方法 | |
CN115473811A (zh) | 一种网络性能优化方法、装置、设备及介质 | |
US9668082B2 (en) | Virtual machine based on a mobile device | |
Wu et al. | Composable io: A novel resource sharing platform in personal clouds | |
Ren et al. | Efficient, dynamic multi-tenant edge computation in EdgeOS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200424 Termination date: 20220104 |
|
CF01 | Termination of patent right due to non-payment of annual fee |