CN102081528A - 一种大型软件边下载边运行的方法 - Google Patents

一种大型软件边下载边运行的方法 Download PDF

Info

Publication number
CN102081528A
CN102081528A CN2009102466448A CN200910246644A CN102081528A CN 102081528 A CN102081528 A CN 102081528A CN 2009102466448 A CN2009102466448 A CN 2009102466448A CN 200910246644 A CN200910246644 A CN 200910246644A CN 102081528 A CN102081528 A CN 102081528A
Authority
CN
China
Prior art keywords
file
software
download
downloaded
page
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.)
Pending
Application number
CN2009102466448A
Other languages
English (en)
Inventor
冼剑光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN2009102466448A priority Critical patent/CN102081528A/zh
Publication of CN102081528A publication Critical patent/CN102081528A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

一种大型软件边下载边运行的方法,以往的大型软件(如游戏软件)通过互联网分发时,用户需要花费很长时间下载。本发明实现了大型软件可以边下载边运行,它包含的主要组成部分为虚拟文件服务器和文件服务器,其主要特征就是在用户终端为待下载的软件预先搭建一个虚拟文件架构,其中的文件组织方式与软件安装完成后的一模一样,只是内容为空的,并按一定大小的页为单位来管理;当其中的软件运行时,虚拟文件服务器统拦截其读取文件页请求,并判断所请求文件页是否已经下载,如果已经下载,则让文件系统读取本地的内容,否则向互联网上的文件服务器发出相应的读取内容请求,并以收到的真实内容填充虚拟文件架构,这样软件就可以实现边下载边运行。

Description

一种大型软件边下载边运行的方法
所属技术领域
本发明涉及一种大型软件边下载边运行的方法,属于计算机网络领域。
背景技术
随着互联网的迅速发展,通过互联网下载软件变得很普及。但即使是在今天,通过互联网下载几百兆甚至几千兆字节的大型软件还是非常费时的。网络游戏这些年发展非常迅速,带动了网络下载的迅速发展。
网络游戏通常都是大型软件,一般都为几百兆甚至几千兆字节。如果利用宽带下载800兆字节的游戏,用户约需要花费1-2小时。用户下载完游戏以后,通常都还需要将下载后的文件解压缩,安装,然后才能运行。游戏软件是一种娱乐性的产品,用户总是在期待最新鲜的产品,这样一个庞大的游戏花费很多时间下载,安装后,往往只运行了很少一部分,就被搁置一边,或者删除掉,然后又开始下一个新游戏的下载,安装循环。
现有的下载工具只是帮助用户将软件下载。如果改进现有的下载工具,使得游戏可以边下载边运行,就能够大幅缩短用户的等待时间,简化用户的后续工作,那么无疑是很有意义的。游戏软件是大型软件的一种,这里我们以其来阐述本发明的主要技术特征和精神,但应该理解,本发明所述的软件不限于游戏软件。
发明内容
本发明提出了解决上述问题的技术方案。
本发明解决其技术问题所采用的技术方案是:
现有的软件在分发时,为了方便下载,一般会打好包,然后用户在终端再安装。我们解决这一问题的方案是:游戏运行时,并不是一下子就需要所有的文件,即便是大型游戏,其某一时刻所需要读取的文件也只是总文件的一小部分,游戏通常是按照关卡顺序地运行的,如果有20个关卡,如果我们先预先下载前几个关卡需要的文件,然后在后台下载其余的文件,游戏就可以边下载边运行了;按照这一思路,我们做了深入的研究,发现这一方法还是有效的,因为整个游戏的大小为1GB字节的话,前几个关卡所需要的文件可能只是100MB字节,这比原来要整个下载完以后才能运行已经进步了不少。但这一方法存在一个较大的缺陷,由于这一方法是以文件作为单位来处理,也就是游戏运行中需要哪个文件,我们就事先或者收到请求后下载所需要的文件,但有些文件比较大,下载需要较长时间,而我们发现,游戏运行时,当需要某个文件时,并不一定会需要文件的全部内容,可能只是读取某一部分的内容。电脑系统的缺页机制是这样的,当它打开一个大文件时,程序并不是将其全部一下子读完,而是建立一个虚拟的内存页映射,当游戏程序真正读到该虚拟的内存页地址时,这时候才是真正需要读取该页的内容,由于该虚拟的内存页还没有真正调到物理内存,系统产生缺页中断,这时候才从存储设备将该页内容装到内存中,所以我们提出了一个更完善的解决方案:将文件按照一定的大小页来管理,我们在内存中监视游戏的运行,当游戏运行中真正需要读取文件内容时,我们下载相应的页来满足其请求,而不是整个文件,这样就比原来的方案又进了一步。这一改善后的解决方案是:将软件的文件按照最终安装好后的样子准备,我们预先在用户需要事先在终端安装一个虚拟文件服务器软件系统(以下简称为虚拟文件服务器),虚拟文件服务器为待下载的大型软件预先搭建一个虚拟文件架构,这一个虚拟文件架构就是软件按照最终安装好后的样子,只是内容为空的,我们以一定大小的页作为单位来管理这一虚拟文件架构;页的大小设置是基于达到一种平衡,即既不会太大,太大的话,游戏需要一小块数据,也需要下载很大块的数据去满足请求;也不会太小,太小的话,页面管理的效率也会下降;当软件实际运行中真正需要什么文件页内容,虚拟文件服务器再立即从互联网上的文件下载服务器上面下载,以真实的文件页内容填充虚拟文件架构,当软件下一次请求同一内容时,由于该内容已经下载到本地存储单元,就不再需要从文件下载服务器上面下载。当所有的虚拟文件架构都被真实内容填充满以后,虚拟文件架构就完全变为了真实的文件架构,即软件真实安装后的文件架构,软件这时候就相当于完全下载安装完毕了。虚拟文件架构加上按需下载,这样软件就可以实现边下载边运行。
如果游戏软件完全是按照上述按需下载方式运行,用户运行时会感觉卡,不畅顺,这样的本发明的实用性会被打折扣。我们发现,游戏软件有着流媒体特征,运行时所涉及到的很大部分内容是按照关卡的次序出现的,如果按照这一次序进行后台缓冲下载,就会极大提高软件的运行流畅度,因为所需要的大部分内容都已经被预先缓冲下载了;当用户需要下载一个新游戏时,后台预先缓冲下载第一关卡的内容,经过一段时间,如大约5分钟,第一关卡的内容都被下载完毕了,用户开始玩游戏,就会感觉很顺畅,只有偶尔碰到没有缓冲下载的内容,才会从文件下载服务器上面下载。由于玩游戏是一种需要重复的娱乐活动,用户在第一关卡需要一定时间才会进到后面的第二第三关等等,这样在用户玩第一关时,后台按照次序缓冲下载后面第二第三关等等。这样就实现了如下效果:用户只需要等待几分钟的时间,就可以开始玩游戏了,在这几分钟的时间内,虚拟文件服务器为游戏搭建一个虚拟文件架构,预先缓冲下载第一关卡的内容。同样,按需下载和有序后台缓冲下载都是以一定大小的页为单位来管理,而不是以整个文件为单位,因为往往只是需要文件的某些部分。
下面结合附图和实施例对本发明进一步说明。
附图说明
图1是网络结构示意图。
图1中,101是互联网上的文件下载服务器,它是与互联网连接的一组服务器,服务器上存储着待下载的游戏软件,102代表互联网,103代表终端个人电脑,103代表终端用户。
图2是本发明的原理示意图。
图2中,101是互联网上的文件下载服务器,它是与互联网连接的一组服务器,服务器上存储着待下载的游戏软件,103-1代表在电脑中运行的游戏进程,103-2代表虚拟文件服务器,103-3代表电脑上的文件存储单元,通常来说就是电脑的硬盘,103-4代表游戏软件在文件存储单元中的组织结构,如表现为人们常识中的文件夹和文件,103-5代表游戏软件在文件存储单元中的页分区控制表,页分区控制表记录游戏软件以一定大小的页为单位管理虚拟文件架构,标识哪些部分已经下载,哪些部分还没下载,虚拟文件架构变化情况等信息。
具体实施方式
现在结合上述附图详细介绍本发明的具体实施过程:
用户(104)觉得每次下载游戏都要等待1-2小时挺费时,因此他希望游戏可以边下载边运行,最多进行5-10分钟的缓冲下载等待,就可以较流畅地运行游戏,为次目的,他需要在他的个人电脑(103)上安装一套虚拟文件服务器(103-2)。虚拟文件服务器(103-2)通过互联网(102)连接到互联网上的文件下载服务器(101),以获取可下载的游戏软件清单,并在个人电脑(103)上展示给用户(104)。当用户选择其中的一款游戏后,虚拟文件服务器(103-2)连接到文件下载服务器(101),下载该游戏的数据。在虚拟文件服务器(103-2)上,该游戏的下载文件包具有特定的结构:
(一)头部结构
1)该游戏安装后的文件架构;
2)该游戏的缓冲下载顺序表;
(二)内容结构
其中的缓冲下载顺序表是本发明的重要特征,因为只有按照一定的顺序缓冲下载,才可以使得游戏运行更流畅。缓冲下载顺序表的具体实施方式可以是:
1)一个单独的表;
2)嵌入到文件架构中,文件架构中表明下载顺序;
3)文件架构本身按照下载顺序先后排列;
缓冲下载顺序表的制作方式可以有如下方式:
1)让用户试玩游戏,然后按照文件页(将文件按照一定大小的页进行管理)内容的先后调用顺序制作缓冲下载顺序表;
2)在游戏开发过程,文件的出现范围已经被设定,可以整理成为缓冲下载顺序表;
虚拟文件服务器(103-2)连接到文件下载服务器(101),下载该游戏的头部结构,获取该游戏安装后的文件架构,虚拟文件服务器(103-2)在文件存储单元(103-3)上搭建该软件的虚拟文件框架(103-4),其优先的实施方式就是按照游戏软件安装完成后的文件夹和文件组织方式,一模一样地搭建一个虚拟文件架构,文件夹、文件的名称、属性、大小等等都与真实一模一样,只是内容为空的,或者内容被虚拟数据所填充,如内容统一以0填充,这是与我们的日常习惯所一致的优先实施方式。虚拟文件服务器(103-2)同时为该游戏准备一个页分区控制表(103-5),页分区控制表(103-5)记录了虚拟文件架构的内容填充情况及虚拟文件架构的变动情况信息,该表采用一定大小的页为单位管理虚拟文件框架(103-4),这是本发明最重要的特征。假如页的大小采用硬盘的扇区大小512字节,则所有的文件以512字节为单位分割为标准大小的单元,如果程序运行中需要读取的内容范围是64-128字节,则属于第一个页面范围,如果页分区控制表(103-5)中该文件的第一页记录表示该页还没有下载,则需要下载第一页共512字节满足这一请求,同时更新页分区控制表(103-5)中该文件第一页的记录,以后程序运行中需要读取的内容范围是129-256字节,属于第一个页面范围,页分区控制表(103-5)中该文件的第一页记录表示该页已下载,这样就从本地存储单元中读入相应内容即可,不需要到网上的文件下载服务器(101)下载。
虚拟文件服务器(103-2)从下载的头部结构获取该游戏的缓冲下载顺序表,并按照该下载顺序表,从文件下载服务器(101)上下载内容,将内容填充到文件存储单元(103-3)的虚拟文件框架(103-4),同时更新页分区控制表(103-5)哪些部分已经下载。
用户(104)运行该游戏,电脑操作系统将会为该游戏建立一个进程(103-1),电脑操作系统的程序装载器和游戏进程(103-1)就会向虚拟文件服务器(103-2)请求数据,虚拟文件服务器(103-2)将所请求内容与页分区控制表(103-5)的信息进行比较,如果所请求内容已经下载到本地,则从文件存储单元(103-3)读取所所请求内容,返回给电脑操作系统的程序装载器和游戏进程(103-1),如果所请求内容还没有完全下载到本地,则向文件下载服务器(101)请求还没有下载部分,将内容填充到文件存储单元(103-3)的虚拟文件框架(103-4),同时更新页分区控制表(103-5)哪些部分已经下载。然后从文件存储单元(103-3)读取所所请求内容,返回给电脑操作系统的程序装载器和游戏进程(103-1)。这一过程的顺序也可以是先把下载后的数据返回给电脑操作系统的程序装载器和游戏进程(103-1),然后再更新文件存储单元(103-3)的虚拟文件框架(103-4)。
用户(104)运行该游戏时,虚拟文件服务器(103-2)除了按照电脑操作系统的程序装载器和游戏进程(103-1)提供所需要内容,还按照游戏的缓冲下载顺序表进行后台缓冲下载,为游戏的下一步运行预先下载内容,以提高游戏运行的流畅度。
上面结合附图和实施例描述了发明的方法以及具体实施例,熟悉本技术领域的人员可以理解,本发明可以有许多不同的实施方式。因此,应该理解,本发明并不局限于所描述的优选实施例,正如随附权利要求书所给出的本发明的精神实质,本发明包括其专利保护范围内所进行的各种更换、变动和修改。

Claims (3)

1.一种大型软件边下载边运行的方法,它包含的主要组成部分为虚拟文件服务器软件系统(以下简称为虚拟文件服务器)和文件下载服务器,其主要特征就是虚拟文件服务器在用户终端为待下载的大型软件预先搭建一个虚拟文件架构,其中的文件组织方式与软件安装完成后的一模一样,只是内容为空的,并且很重要的一点是按一定大小的页为单位来管理,也就是按一定大小的页为单位建立一个分页表来管理虚拟文件架构;文件下载服务器预先将待下载的大型软件按照其安装后即刻可以运行的方式准备好内容;当虚拟文件架构中的软件运行时,虚拟文件服务器监视其运行,并且很重要的一点是当软件运行中真正读到文件时(如发生缺页中断,向文件系统请求将真实的内容页调入内存),虚拟文件服务器判断所请求内容是否已经下载,如果已经下载,则让文件系统读取本地的内容,如果没有下载,则向互联网上的文件下载服务器发出相应的读取内容请求,以页为单位来满足这一真实内容请求(而不是软件需要读到某个文件,就下载整个文件来满足请求,软件真正需要的往往只是文件的某一部分),并以收到的真实内容填充虚拟文件架构,这样软件就可以实现边下载边运行。
2.根据权利要求1所述的方法,所述的虚拟文件架构的具体实施方式不限于我们平常所习惯的文件夹和文件;虚拟服务系统为待下载的大型软件预先搭建一个虚拟文件架构,按照软件安装完成后的文件夹和文件组织方式,一模一样地搭建一个虚拟文件架构,只是内容为空的,这是与我们的日常习惯所一致的优先实施方式;这一虚拟文件架构的具体实施方式不限于上述实施例,按照本发明的本质精神,只要它能够将文件的内容和操作实现与软件安装完成后的一模一样的效果,其表现方式不限于文件夹和文件;并且很重要的一点是按一定大小的页为单位来管理,也就是按一定大小的页为单位建立一个分页表来管理虚拟文件架构,这样比以整个文件为单位更实用;以一定大小的页为单位来管理的虚拟文件架构是本发明最核心的特征,待下载的大型软件预先被按照其安装后即刻可以运行的方式准备好,在下载端,一个虚拟文件架构被预先搭建,就如同待下载大型软件已经被安装好了,然后架构被逐步地填充。
3.根据权利要求1所述的方法,所述的虚拟服务系统同时提供按需下载和有序后台缓冲下载功能,按需下载是指按照软件的请求,即时下载所要求内容,有序后台缓冲下载是指按照一定的下载次序,在没有请求时,将内容预先下载;对于一些特殊软件,如游戏软件,运行时所涉及到的很大部分内容是按照关卡的次序出现的,有着流媒体的特征,因此,有序后台缓冲下载时是按照这一次序下载,这样下载会极大提高软件的运行流畅度,因为所需要的大部分内容都能预先缓冲下载;同样,按需下载和有序后台缓冲下载都是以一定大小的页为单位来管理,而不是以整个文件为单位,因为往往只是需要文件的某些部分;按页为单位的有序后台缓冲下载可以实现大型软件边下载边运行,同时又让运行比较顺畅,如果单单按需下载,运行不流畅,本发明就不太实用,效果就打了折扣。
CN2009102466448A 2009-11-26 2009-11-26 一种大型软件边下载边运行的方法 Pending CN102081528A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102466448A CN102081528A (zh) 2009-11-26 2009-11-26 一种大型软件边下载边运行的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102466448A CN102081528A (zh) 2009-11-26 2009-11-26 一种大型软件边下载边运行的方法

Publications (1)

Publication Number Publication Date
CN102081528A true CN102081528A (zh) 2011-06-01

Family

ID=44087509

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102466448A Pending CN102081528A (zh) 2009-11-26 2009-11-26 一种大型软件边下载边运行的方法

Country Status (1)

Country Link
CN (1) CN102081528A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102520994A (zh) * 2011-12-06 2012-06-27 北京航空航天大学 流式加载虚拟文件方法及系统
CN102984124A (zh) * 2012-10-31 2013-03-20 北京昆仑万维科技股份有限公司 一种将客户端游戏程序快速植入浏览器的方法及系统
CN103186399A (zh) * 2011-12-31 2013-07-03 深圳市快播科技有限公司 大型游戏包的下载方法及装置
CN103685356A (zh) * 2012-09-05 2014-03-26 云联(北京)信息技术有限公司 基于云计算的游戏运行实现方法
CN103685355A (zh) * 2012-09-05 2014-03-26 云联(北京)信息技术有限公司 一种基于云计算的网络游戏运行实现方法
CN103713890A (zh) * 2012-10-09 2014-04-09 厦门吉比特网络技术股份有限公司 一种将网游客户端网页化的方法
CN104065625A (zh) * 2013-03-21 2014-09-24 联想(北京)有限公司 应用试用方法及装置
CN104104645A (zh) * 2013-04-01 2014-10-15 北京畅游天下网络技术有限公司 一种跨平台资源管理方法和系统
CN104267983A (zh) * 2014-09-23 2015-01-07 上海卓盟信息科技有限公司 基于安卓平台的重度游戏封包方法
CN105094871A (zh) * 2014-05-15 2015-11-25 林保成 游戏机挂载可携式储存装置内游戏的本地化系统及其方法
CN108108203A (zh) * 2016-11-25 2018-06-01 阿里巴巴集团控股有限公司 用于安装包下载安装过程的方法、装置及系统
CN109492350A (zh) * 2018-11-09 2019-03-19 郑州云海信息技术有限公司 一种软件演示程序构造方法、系统、设备及计算机介质
CN114840859A (zh) * 2021-12-21 2022-08-02 许磊 一种通用数据的流媒体化系统

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102520994A (zh) * 2011-12-06 2012-06-27 北京航空航天大学 流式加载虚拟文件方法及系统
CN103186399A (zh) * 2011-12-31 2013-07-03 深圳市快播科技有限公司 大型游戏包的下载方法及装置
CN103685355B (zh) * 2012-09-05 2018-08-14 天津米游科技有限公司 一种基于云计算的网络游戏运行实现方法
CN103685356B (zh) * 2012-09-05 2018-08-28 天津米游科技有限公司 基于云计算的游戏运行实现方法
CN103685356A (zh) * 2012-09-05 2014-03-26 云联(北京)信息技术有限公司 基于云计算的游戏运行实现方法
CN103685355A (zh) * 2012-09-05 2014-03-26 云联(北京)信息技术有限公司 一种基于云计算的网络游戏运行实现方法
CN103713890A (zh) * 2012-10-09 2014-04-09 厦门吉比特网络技术股份有限公司 一种将网游客户端网页化的方法
CN102984124B (zh) * 2012-10-31 2016-08-17 北京昆仑万维科技股份有限公司 一种将客户端游戏程序快速植入浏览器的方法及系统
CN102984124A (zh) * 2012-10-31 2013-03-20 北京昆仑万维科技股份有限公司 一种将客户端游戏程序快速植入浏览器的方法及系统
CN104065625B (zh) * 2013-03-21 2018-07-03 联想(北京)有限公司 应用试用方法及装置
CN104065625A (zh) * 2013-03-21 2014-09-24 联想(北京)有限公司 应用试用方法及装置
CN104104645B (zh) * 2013-04-01 2017-08-25 北京畅游天下网络技术有限公司 一种跨平台资源管理方法和系统
CN104104645A (zh) * 2013-04-01 2014-10-15 北京畅游天下网络技术有限公司 一种跨平台资源管理方法和系统
CN105094871A (zh) * 2014-05-15 2015-11-25 林保成 游戏机挂载可携式储存装置内游戏的本地化系统及其方法
CN105094871B (zh) * 2014-05-15 2018-08-31 林保成 游戏机挂载可携式储存装置内游戏的本地化系统及其方法
CN104267983A (zh) * 2014-09-23 2015-01-07 上海卓盟信息科技有限公司 基于安卓平台的重度游戏封包方法
CN104267983B (zh) * 2014-09-23 2020-07-17 上海卓盟信息科技有限公司 基于安卓平台的重度游戏封包方法
CN108108203A (zh) * 2016-11-25 2018-06-01 阿里巴巴集团控股有限公司 用于安装包下载安装过程的方法、装置及系统
CN108108203B (zh) * 2016-11-25 2021-02-26 斑马智行网络(香港)有限公司 用于安装包下载安装过程的方法、装置及系统
CN109492350A (zh) * 2018-11-09 2019-03-19 郑州云海信息技术有限公司 一种软件演示程序构造方法、系统、设备及计算机介质
CN114840859A (zh) * 2021-12-21 2022-08-02 许磊 一种通用数据的流媒体化系统

Similar Documents

Publication Publication Date Title
CN102081528A (zh) 一种大型软件边下载边运行的方法
US9529725B2 (en) Information processing device and method for managing file
US7136801B2 (en) Outboard data storage management system and method
CN101335916B (zh) 一种通用的手机角色扮演(rpg)网络游戏引擎
US8886752B2 (en) System and method for optimizing transfers of downloadable content
US9459927B2 (en) Central office based virtual personal computer
CN104615419B (zh) 信息处理设备、程序和记录介质
Chua et al. Disk striping strategies for large video-on-demand servers
WO2021163517A1 (en) Network architecture providing high speed storage access through a pci express fabric between a compute node and a storage server
FI116167B (fi) Arkistoiva tiedostopalvelin
Raghavan et al. Tiera: Towards flexible multi-tiered cloud storage instances
CN104021009A (zh) 用于存储控制器的高效生命周期管理的方法和系统
WO2008020616A1 (fr) Dispositif de traitement de l'information, procédé de traitement de l'information, programme informatique, dispositif semiconducteur
US20150126284A1 (en) Information processing device, data structure of game data, and recording medium
CN106484387A (zh) 将智能移动终端作为游戏手柄使用的方法和网页游戏装置
US20240033623A1 (en) Tracking file system read operations for instant play of video games, and for client-side discarding and prefetching of game data
EP1287425A2 (en) System for and method of accessing blocks on a storage medium
CN106559481A (zh) 一种提供应用的方法及服务器
EP2878348B1 (en) Information processing device, data structure of game data, program, and recording medium
JP2010500671A5 (zh)
JP3547675B2 (ja) アクティブプログラムモジュールの間にシームレスな相互接続性を提供する装置
JP6529678B2 (ja) アプリケーションの実行を加速する方法及びデバイス
CN114115912A (zh) 基于云手机的应用安装方法、云平台及相关设备
CN113971000A (zh) 用于云内容存储的分离的分层缓存的系统和方法
US20070120820A1 (en) Graphics device comprising remote transfer controller for remote visualization

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110601