CN108268304A - 一种基于容器的Web app迁移方法 - Google Patents
一种基于容器的Web app迁移方法 Download PDFInfo
- Publication number
- CN108268304A CN108268304A CN201710002317.2A CN201710002317A CN108268304A CN 108268304 A CN108268304 A CN 108268304A CN 201710002317 A CN201710002317 A CN 201710002317A CN 108268304 A CN108268304 A CN 108268304A
- Authority
- CN
- China
- Prior art keywords
- web app
- state
- container
- snapshot
- destination node
- 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.)
- Granted
Links
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于容器的Web app迁移方法,所述方法包括:当一个Web app运行在嵌入式Linux操作系统Chrome运行环境的Docker容器A内;如果用户需要在另一台终端查看该Web app,触发Web app迁移条件,采用Snapshot技术保存Web app的执行状态;经过迁移管理节点将Snapshot发送至目标节点;目标节点接收到迁移请求,根据资源需求创建目标节点容器B;Snapshot在目标节点容器B内进行状态恢复并继续运行Web app。本发明的方法能够实现Web app的状态迁移运行,具备即时保存、状态迁移、跨平台特性和安全隔离特性。
Description
技术领域
本发明属于虚拟化迁移领域和浏览器领域,具体涉及一种基于容器的Web app迁移方法。
背景技术
随着互联网技术的飞速发展,嵌入式系统的发展越来越智能化,人们对它的需求越来越高,支持的应用也越来越多。当应用所需的资源超过了客户端的资源提供能力时,或者用户出现在不同终端共享应用状态的需求时,就需要将应用迁移至目标设备,保持原有的运行结果继续运行。
现有的app迁移技术,如Android应用迁移等,均只支持特定平台的迁移,不能跨平台进行应用的状态迁移和运行;此外,相关的web app迁移技术能够支持跨平台特性,在安全性方面无法保障。
Web app具备跨平台特性,可以实现在不同终端不同系统之间的无差别迁移,带给用户一致的体验。此外,容器虚拟化技术是大势所趋,其中以Docker为代表的新一代容器技术成为竞相研究的热点。Docker具有轻量级虚拟化、秒级启动,秒级停止,空间资源占用极少、进程级别的隔离、高效的资源利用率、以应用为中心、自动构建等优点。基于容器技术,实现Web app的迁移,可以满足多平台多终端进行安全迁移的需求。
发明内容
本发明的目的在于,克服目前Web app迁移方法存在的上述缺陷,基于容器虚拟化技术,提出了一种基于容器的Web app迁移方法,能够实现Web app的状态迁移运行,具备跨平台特性和安全隔离特性。
为了实现上述目的,本发明提出了一种基于容器的Web app迁移方法,所述方法包括:一种基于容器的Web app迁移方法,所述方法包括:当一个Web app运行在嵌入式Linux操作系统Chrome运行环境的Docker容器A内;如果用户需要在另一台终端查看该Web app,触发Web app迁移条件,采用Snapshot技术保存Web app的执行状态;经过迁移管理节点将Snapshot发送至目标节点;目标节点接收到迁移请求,根据资源需求创建目标节点容器B;Snapshot在目标节点容器B内进行状态恢复并继续运行Web app。
上述技术方案中,所述采用Snapshot技术保存Web app的执行状态的具体步骤为:
步骤2-1)对Web app进行状态分类,对不同的状态标记不同的类别;
步骤2-2)根据分类结果提取Web app的状态;
步骤2-3)将提取的状态保存并压缩至Snapshot。
上述技术方案中,所述Web app的状态为:DOM树状态、渲染树状态、JavaScript堆状态或事件处理状态。
上述技术方案中,所述Snapshot在目标节点容器B内进行状态恢复并继续运行Webapp的具体步骤为:
步骤5-1)根据Web app在目标节点容器B内恢复所需的资源,分配相应的资源;
步骤5-2)将Snapshot保存的状态进行解压,分别拷贝其状态;
步骤5-3)重定向拷贝的状态对象,将状态对象映射为目标平台运行环境的相应内存地址和对象地址,完成状态恢复。
本发明的优势在于:本发明的方法能够实现Web app的状态迁移运行,具备即时保存、状态迁移、跨平台特性和安全隔离特性。
附图说明
图1为本发明的基于容器的Web app迁移方法的示意图;
图2为本发明的采用快照技术保存Web app执行状态的流程图;
图3为本发明的快照在目标节点容器内进行状态恢复并继续运行Web app的流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明。
如图1所示,一种基于容器的Web app迁移方法,所述方法包括:
步骤1)Web app A运行在嵌入式机顶盒(嵌入式Linux操作系统,Chrome运行环境)的Docker容器(Container A)内;
步骤2)如果用户需要在另一台终端(如平板电脑)查看该Web app,触发Web app迁移条件,采用Snapshot技术保存Web app A的执行状态;
如图2所示,所述步骤2)具体包括:
步骤2-1)对Web app A进行状态分类,对不同的状态标记不同的类别;
其中,对Web app的状态类型为:DOM树状态、渲染树状态、JavaScript堆状态或事件处理状态等。
例如,Web app A是一个俄罗斯方块游戏应用,获取页面布局状态DOM树,以及游戏运行状态(JavaScript执行状态)和事件处理状态等;
步骤2-2)根据分类结果提取Web app A的页面布局状态、JS状态和事件处理状态;
步骤2-3)将提取的状态保存并压缩至Snapshot;
步骤3)经过迁移管理节点(Migration Manager),将Snapshot发送至目标节点(Target Node,如平板电脑,Android操作系统,Chrome运行环境);
步骤4)目标节点接收到迁移请求,根据资源需求创建容器(Container B);
步骤5)Snapshot在目标节点容器内进行状态恢复并继续运行Web app A;
如图3所示,所述步骤5)具体包括:
步骤5-1)根据Web app A在目标节点恢复所需的资源,分配相应的资源;
例如,Web app A需要占用内存100MB;
步骤5-2)将Snapshot保存的状态进行解压,分别拷贝其页面布局状态、游戏运行状态和事件处理状态;
步骤5-3)重定向拷贝的状态对象,将状态对象映射为目标平台运行环境的相应内存地址和对象地址,完成状态恢复。
以上所述仅为本发明的具体实施方式,并非用于限定本发明的保护范围,本领域的技术人员应当理解,在不脱离发明原理的前提下,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的保护范围中。
Claims (4)
1.一种基于容器的Web app迁移方法,所述方法包括:当一个Web app运行在嵌入式Linux操作系统Chrome运行环境的Docker容器A内;如果用户需要在另一台终端查看该Webapp,触发Web app迁移条件,采用Snapshot技术保存Web app的执行状态;经过迁移管理节点将Snapshot发送至目标节点;目标节点接收到迁移请求,根据资源需求创建目标节点容器B;Snapshot在目标节点容器B内进行状态恢复并继续运行Web app。
2.根据权利要求1所述的基于容器的Web app迁移方法,其特征在于,所述采用Snapshot技术保存Web app的执行状态的具体步骤为:
步骤2-1)对Web app进行状态分类,对不同的状态标记不同的类别;
步骤2-2)根据分类结果提取Web app的状态;
步骤2-3)将提取的状态保存并压缩至Snapshot。
3.根据权利要求2所述的基于容器的Web app迁移方法,其特征在于,所述Web app的状态为:DOM树状态、渲染树状态、JavaScript堆状态或事件处理状态。
4.根据权利要求2或3所述的基于容器的Web app迁移方法,其特征在于,所述Snapshot在目标节点容器B内进行状态恢复并继续运行Web app的具体步骤为:
步骤5-1)根据Web app在目标节点容器B内恢复所需的资源,分配相应的资源;
步骤5-2)将Snapshot保存的状态进行解压,分别拷贝其状态;
步骤5-3)重定向拷贝的状态对象,将状态对象映射为目标平台运行环境的相应内存地址和对象地址,完成状态恢复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710002317.2A CN108268304B (zh) | 2017-01-03 | 2017-01-03 | 一种基于容器的Web app迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710002317.2A CN108268304B (zh) | 2017-01-03 | 2017-01-03 | 一种基于容器的Web app迁移方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108268304A true CN108268304A (zh) | 2018-07-10 |
CN108268304B CN108268304B (zh) | 2021-06-08 |
Family
ID=62771435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710002317.2A Expired - Fee Related CN108268304B (zh) | 2017-01-03 | 2017-01-03 | 一种基于容器的Web app迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108268304B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109587118A (zh) * | 2018-11-11 | 2019-04-05 | 徐琳 | Android网游的分布式支持多终端和多网络的系统 |
CN112469001A (zh) * | 2020-11-17 | 2021-03-09 | 国网浙江省电力有限公司信息通信分公司 | 一种应用迁移方法、装置、电子设备及存储介质 |
CN112835683A (zh) * | 2021-03-02 | 2021-05-25 | 杭州雅观科技有限公司 | 一种智慧社区软件的容器化部署系统 |
CN113010206A (zh) * | 2021-02-26 | 2021-06-22 | 山东英信计算机技术有限公司 | 一种web应用系统的容器化方法、系统及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101907989A (zh) * | 2010-06-01 | 2010-12-08 | 南京大学 | 一种基于移动代理的应用无缝迁移方法 |
CN103620552A (zh) * | 2011-06-29 | 2014-03-05 | 惠普发展公司,有限责任合伙企业 | 采用动态操作系统容器的应用迁移 |
US8984510B1 (en) * | 2007-03-23 | 2015-03-17 | Parallels IP Holdings GmbH | Blocking file system for on-the-fly migration of a virtual execution environment |
CN105323282A (zh) * | 2014-07-28 | 2016-02-10 | 神州数码信息系统有限公司 | 一种面向多租户的企业应用部署与管理系统 |
CN105607954A (zh) * | 2015-12-21 | 2016-05-25 | 华南师范大学 | 一种有状态容器在线迁移的方法和装置 |
CN105955805A (zh) * | 2015-12-28 | 2016-09-21 | 中国银联股份有限公司 | 一种应用容器迁移的方法及装置 |
CN106020930A (zh) * | 2016-05-13 | 2016-10-12 | 深圳市中润四方信息技术有限公司 | 一种基于应用容器的应用管理方法及系统 |
CN106155778A (zh) * | 2016-07-07 | 2016-11-23 | 中国科学院声学研究所 | 一种应用容器的启动方法及系统 |
-
2017
- 2017-01-03 CN CN201710002317.2A patent/CN108268304B/zh not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8984510B1 (en) * | 2007-03-23 | 2015-03-17 | Parallels IP Holdings GmbH | Blocking file system for on-the-fly migration of a virtual execution environment |
CN101907989A (zh) * | 2010-06-01 | 2010-12-08 | 南京大学 | 一种基于移动代理的应用无缝迁移方法 |
CN103620552A (zh) * | 2011-06-29 | 2014-03-05 | 惠普发展公司,有限责任合伙企业 | 采用动态操作系统容器的应用迁移 |
CN105323282A (zh) * | 2014-07-28 | 2016-02-10 | 神州数码信息系统有限公司 | 一种面向多租户的企业应用部署与管理系统 |
CN105607954A (zh) * | 2015-12-21 | 2016-05-25 | 华南师范大学 | 一种有状态容器在线迁移的方法和装置 |
CN105955805A (zh) * | 2015-12-28 | 2016-09-21 | 中国银联股份有限公司 | 一种应用容器迁移的方法及装置 |
CN106020930A (zh) * | 2016-05-13 | 2016-10-12 | 深圳市中润四方信息技术有限公司 | 一种基于应用容器的应用管理方法及系统 |
CN106155778A (zh) * | 2016-07-07 | 2016-11-23 | 中国科学院声学研究所 | 一种应用容器的启动方法及系统 |
Non-Patent Citations (2)
Title |
---|
DAVID S. LINTHICUM: "Moving to Autonomous and Self-Migrating Containers for Cloud Applications", 《IEEE》 * |
张建兵等: "基于Java线程迁移的Web包容器集群系统的实现", 《计算机工程与应用》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109587118A (zh) * | 2018-11-11 | 2019-04-05 | 徐琳 | Android网游的分布式支持多终端和多网络的系统 |
CN109587118B (zh) * | 2018-11-11 | 2021-05-11 | 长沙摩智云计算机科技有限公司 | Android网游的分布式支持多终端和多网络的系统 |
US11872482B2 (en) | 2018-11-11 | 2024-01-16 | Hunan Duoxingyun Cloud Technology Co., Ltd. | Distributed multi-terminal and multi-network supporting system for android online game |
CN112469001A (zh) * | 2020-11-17 | 2021-03-09 | 国网浙江省电力有限公司信息通信分公司 | 一种应用迁移方法、装置、电子设备及存储介质 |
CN112469001B (zh) * | 2020-11-17 | 2022-07-26 | 国网浙江省电力有限公司信息通信分公司 | 一种应用迁移方法、装置、电子设备及存储介质 |
CN113010206A (zh) * | 2021-02-26 | 2021-06-22 | 山东英信计算机技术有限公司 | 一种web应用系统的容器化方法、系统及装置 |
CN112835683A (zh) * | 2021-03-02 | 2021-05-25 | 杭州雅观科技有限公司 | 一种智慧社区软件的容器化部署系统 |
CN112835683B (zh) * | 2021-03-02 | 2023-12-12 | 杭州雅观科技有限公司 | 一种智慧社区软件的容器化部署系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108268304B (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10860444B2 (en) | Seamless mobility for kubernetes based stateful pods using moving target defense | |
Ma et al. | Efficient service handoff across edge servers via docker container migration | |
CN108268304A (zh) | 一种基于容器的Web app迁移方法 | |
US9552233B1 (en) | Virtual machine migration using free page hinting | |
US20190391839A1 (en) | Techniques for migration paths | |
CN107608757B (zh) | 一种基于容器的隔离处理方法及相关设备 | |
EP2659354B1 (en) | Storing and resuming application runtime state | |
US10095536B2 (en) | Migration of virtual machines with shared memory | |
CN106155778A (zh) | 一种应用容器的启动方法及系统 | |
US20170046185A1 (en) | Page table based dirty page tracking | |
US8881144B1 (en) | Systems and methods for reclaiming storage space from virtual machine disk images | |
US20150177997A1 (en) | Creating new virtual machines based on post-boot virtual machine snapshots | |
US9613053B1 (en) | Techniques for providing access to a virtualized block storage device over a file-based network storage protocol | |
EP3022647B1 (en) | Systems and methods for instantly restoring virtual machines in high input/output load environments | |
US9176889B1 (en) | Virtual machine memory management | |
US9792075B1 (en) | Systems and methods for synthesizing virtual hard drives | |
CN106227587A (zh) | 一种带快照虚拟机整机动态迁移方法及装置 | |
Puliafito et al. | Virtualization and migration at the network edge: An overview | |
US9710386B1 (en) | Systems and methods for prefetching subsequent data segments in response to determining that requests for data originate from a sequential-access computing job | |
US10901943B1 (en) | Multi-tier storage system with direct client access to archive storage tier | |
Masood et al. | Virtualization tools and techniques: Survey | |
US10942761B2 (en) | Migrating a virtual machine in response to identifying an unsupported virtual hardware component | |
US20170090816A1 (en) | Protection for Memory Deduplication by Copy-on-Write | |
US20120124355A1 (en) | Single volume image file extraction | |
CN108196945B (zh) | 一种核间通信方法、装置和虚拟化设备 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210608 Termination date: 20220103 |