CN1517916A - 用户应用程序的控制方法 - Google Patents
用户应用程序的控制方法 Download PDFInfo
- Publication number
- CN1517916A CN1517916A CNA2004100029650A CN200410002965A CN1517916A CN 1517916 A CN1517916 A CN 1517916A CN A2004100029650 A CNA2004100029650 A CN A2004100029650A CN 200410002965 A CN200410002965 A CN 200410002965A CN 1517916 A CN1517916 A CN 1517916A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- user application
- file
- data
- client computer
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000006870 function Effects 0.000 claims description 72
- 238000007689 inspection Methods 0.000 claims description 4
- 238000005336 cracking Methods 0.000 abstract description 2
- 230000005540 biological transmission Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000011835 investigation Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 240000005373 Panax quinquefolius Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Computer Security & Cryptography (AREA)
- General Health & Medical Sciences (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明的提供一种用户应用程序控制方法,通过网络保持与服务器的连接,由此能有效地防止来自于外部的盗用和解密,从而防止非法的软件使用。接收来自于用户应用程序、针对文件的文件读出请求,判断文件是否保存在客户计算机中,如果文件保存在客户计算机中,则向用户应用程序传输文件的数据,如果文件没有保存在客户计算机中,则从保存有文件的、通过网络而与客户计算机连接的规定服务器接收文件的数据中的一部分数据,并保存在客户计算机中,然后向用户应用程序传输接收的数据。
Description
技术领域
本发明涉及一种在用户终端机上执行的用户应用程序的控制方法,更详细地讲,涉及一种能在用户应用程序执行过程中,一边从规定的服务器下载所需要的数据,一边执行用户应用程序的用户应用程序控制方法。
背景技术
现有技术的程序包(package)游戏(离线游戏)是将游戏程序和该游戏所需要的全部数据存储在CD(光盘)等存储介质中,然后发布给用户的。但是,包含这样的程序包游戏的程序包形式的软件产品被非法复制,被没有合法权限的用户使用的情况很多。因此,如果使这样的程序包形式的软件产品在线化,不仅可以防止上述非法复制,还可以利用如自动更新这样的在线软件的各种优点。基于这样的原因,需要一种将程序包形式的软件产品容易地转换为在线软件的方法。
此外,即使是在线软件的情况下,在将进行该在线游戏所需要的全部文件下载到用户计算机中之前,也不能进行上述在线游戏。而且,在线游戏随着其发展,将变得更加复杂,用户初期必须下载的数据量将变得更多。最近,为了进行在线游戏,在初期必须下载的数据量超过200Mbyte的情况频繁发生。象这样,由于初期必须下载的数据量过大,所以存在在线游戏的最初用户不能容易地参加在线游戏的缺点。因此,需要一种即使为了进行整个在线游戏所需要的数据量大,在仅下载其中一少部分之后,就能进行在线游戏的方法。
本发明就是为了解决上述问题而提出的,其目的在于能容易地使现有的程序包形式的软件产品成为在线软件,获得在线数据流(on-linestreaming)的效果,并且通过网络保持与服务器的连接,从而有效地防止来自外部的盗用(hacking)、解密(cracking)以及非法的软件使用。
此外,本发明的目的在于,通过使程序包软件容易地在线化,可以定期地监视上述程序包软件是否被非法复制,如果是非法复制产品,则使上述程序包软件停止工作,从而防止非法复制。此外,本发明的目的还在于,通过使程序包软件在线化,从而能按照使用时间来对程序包软件进行计费。
此外,本发明的目的还在于,以文件模块为单位而不是以整个文件为单位来下载在线软件,使在初期必须下载的数据量最小化,从而用户在初期就能容易地享受游戏。
此外,本发明的目的在于,调查在线游戏所要求的数据模式(pattern),并据此使被下载的数据最优化,在用户应用程序请求读出数据的情况下,利用上述被调查的数据模式,接收通过后台P2P预先下载的必要数据,从而可以使用户为了下载数据而等待的时间最小化,并且能使服务器的带宽使用最小化。
发明内容
为了实现上述目的,根据本发明的一个实施例,提供一种用户应用程序控制方法,用于控制由客户计算机执行的用户应用程序,其特征在于,包括以下步骤:接收来自于用户应用程序的、针对文件的文件读出请求的步骤;判断上述文件是否保存在上述客户计算机中的步骤;如果上述文件保存在上述客户计算机中,则向上述用户应用程序传输上述文件的数据步骤;以及如果上述文件没有保存在上述客户计算机中,则从保存有上述文件的、通过网络而与上述客户计算机连接的规定服务器接收上述文件的数据中的一部分数据,并保存在上述客户计算机中,然后向上述用户应用程序传输上述接收的数据。
附图说明
图1是表示本发明的客户计算机和文件服务器的网络连接的图。
图2是表示本发明的包含在客户计算机中的用户应用程序、在线数据流文件库和网络接口的关系的方框图。
图3是表示对来自于本发明的在客户计算机中执行的用户应用程序的文件读出请求进行处理的顺序的流程图。
图4是表示对来自于本发明的在客户计算机中执行的用户应用程序的文件写入请求进行处理的顺序的流程图。
图5是表示在对本发明的用户应用程序访问的文件内的数据模块进行构造,从而构成优先文件的情况下,数据模块和优先文件的关系的图。
图6是表示由本发明的一个实施例构成的索引表的图。
具体实施方式
以下参照附图,对本发明的实施方式进行详细说明。
图1是表示本发明的客户计算机和文件服务器的网络连接的图。
用户为了进行在线游戏,在自己的客户计算机102、103上,通过互联网与规定的在线游戏服务器104连接。在现有的程序包形式的游戏软件的情况下,利用本发明可以简单地实现在线化,在游戏进行中与游戏服务器104连接,从而进行游戏。即,在现有的程序包游戏的情况下,用户不必购入CD等,仅与游戏服务器104连接,就能利用本发明,在仅下载了游戏的所有文件或数据之后,直接开始游戏。
图2是表示利用本发明的包含在客户计算机中的用户应用程序、在线数据流文件库和网络接口的关系的方框图。用户应用程序201是现有的程序包软件或利用本发明对现有的程序包软件的一部分进行修改后的程序。此外,用户应用程序201也可以是现有的在线软件。本发明用于使现有的程序包软件在线化,从而获得各种有用的效果,但本发明的一些思想也可以容易地应用于现有的在线软件,从而获得有用的效果。
在线数据流文件库(online streaming file library)202对用户应用程序201的文件读出请求和文件写入请求进行钩挂(hooking),从而进行该文件读出请求和文件写入请求,并且具有保持与服务器104的连接、监视非法的软件使用等功能。此外,在线数据流文件库还具有从服务器或在网络上相邻的其他客户计算机下载所需要的数据的功能。在线数据流文件库还可以具有库以外的不同形式。
在线数据流文件库202与已有的运行体系标准的文件输入输出API(应用程序接口)进行钩挂。在已有运行体系标准的文件输入输出API的例子,有微软公司的窗口运行体系中的CreateFile()、ReadFile()、WriteFile()等函数。在窗口运行体系中,对于所有的Win32 API都有导入段(Import Section)。导入段是一种跳转矢量表(Jump VectorTable)。例如,在CreateFile()函数的情况下,在导入段中保存针对上述CreateFile()函数的指针。因此,在可执行文件(在窗口运行体系中,是具有.exe扩展名的文件)中使用CreateFile()函数的情况下,上述可执行文件参照上述导入段,获得CreateFile()函数的指针,运行该指针所指的函数。API钩子函数(API Hooking)将在上述导入段中的各输入输出函数的地址变更为其他函数的地址。例如,在导入段中,如果CreateFile()函数的指针不指向运行体系提供的CreateFile()函数的地址,而是变更为指向其他函数的地址,则在用户应用程序中执行CreateFile()的情况下,不执行运行体系提供的CreateFile()函数,而是执行上述其他函数。
为了执行上述API钩子函数,在用户应用程序的主函数(mainfunction)(例如窗口系统中的winmain()函数)的开始和结束追加钩子初始化函数和API钩子结束函数,执行API钩子函数。API钩子初始化函数是由本发明提供的函数,它具有将上述用户应用程序的导入段中的各输入输出API函数的指针变更为本发明的输入输出函数的指针的功能。API钩子结束函数具有将上述被变更的导入段恢复原状的功能。因此,根据本发明,向现有的程序包软件的主函数中追加2个函数,由此执行程序包软件的在线化。根据本发明的其他实施例,可以钩挂主函数的入口指针(entry point)本身。作为该方法的一个例子,有类似于计算机病毒程序将自身的代码附加在可执行文件中的方法。根据本实施例,具有不必修改全部应用程序,就能实现程序包软件的在线化的优点。
图3是表示利用本发明,在客户计算机中执行的、处理来自于用户应用程序的文件读出请求的顺序的流程图。
首先,利用本发明,修改API钩子函数用的输入输出API函数的跳转矢量表,以执行本发明的输入输出API函数。在步骤301中,从用户应用程序201接收文件读出请求,并钩挂(hooking)该请求。即,执行用户应用程序201中的ReadFile()函数,但上述ReadFile()函数的执行被钩挂,本发明的在线数据流文件输入输出API函数(onlinestreaming File I/O API function)被执行。本发明的在线数据流文件输入输出API函数被保存在在线数据流文件库202中。
在步骤302中,本发明的在线数据流文件输入输出API函数判定上述用户应用程序201请求的文件是否保存在上述用户应用程序201被保存的客户计算机中。如果上述用户应用程序201请求的文件保存在上述客户计算机中,则在步骤303中读出上述文件的数据,将上述文件的数据传输给用户应用程序201。上述文件的数据可以是文件的全部数据,也可以是包含在上述文件中的数据中的一部分数据。例如,在用户应用程序是规定的游戏程序的情况下,是保存有为了执行上述游戏程序所必需的图形数据的文件,上述游戏程序需要上述图形数据,所以发出读出请求,但如果保存有上述图形数据的文件被保存在客户计算机中,则读出该文件,将其传输给游戏程序。
在步骤302中,如果用户应用程序201请求的数据没有被保存在本地客户计算机中,则在步骤304中,在线数据流文件输入输出API函数经由网络接口203而与规定的服务器104连接。上述规定的服务器经由网络而与上述客户计算机连接。上述规定的服务器保存有上述用户应用程序201需要的全部数据。
在步骤305中,在线数据流文件输入输出API函数从服务器104接收文件的数据,在步骤306中,将上述接收的数据与本地客户计算机钩挂。具有如下优点,即不仅通过这样的钩挂来重复下载同一数据,而且利用后述的优先文件的概念,预先下载被推定为将要下载的数据。例如,在现在需要的数据是文件1的模块5的情况下,如果根据之前一边执行用户应用程序201一边对其工作进行调查的结果,判断用户应用程序201同时使用模块5和模块6,则预先从服务器104同时下载模块5和模块6,对它们进行钩挂。
在步骤307中,在线数据流文件输入输出API函数将从服务器104接收的文件的数据传输给用户应用程序201。这样,用户应用程序201可以继续被执行。
例如,虽然执行整个游戏软件所需要的数据文件的全部数据量为200Mbyte,但如果游戏软件为了显示现在的画面所需要的图形数据为3Mbyte,并且该图形文件被保存在本地客户计算机中,则与保存该图形文件的服务器连接,下载上述所需要的图形数据来使用它。因此,根据本发明,用户不必在初期下载大量的数据文件,就能容易地享受在线游戏。此外,在利用本发明使程序包软件在线化的情况下,也可以适时地从服务器仅下载所需要的数据的一部分来进行游戏。即,根据本发明,即使不预先将执行用户应用程序所需要的全部数据保存到本地客户计算机中,也能执行用户应用程序。
此外,根据本发明的另一个实施例,接收文件的数据中的一部分数据来进行文件的数据读出和接收,该一部分数据的接收是利用上述文件的区距(offet)和上述一部分数据的大小来进行的。对此将参照图5和图6在后面详细说明。
根据本发明的另一个实施例,在一个客户计算机102上执行的用户应用程序201没有发出文件读出请求的期间,识别在网络上相邻的其他客户计算机103中是否保存有执行用户应用程序201所需要的数据,如果在其他客户计算机103中保存有所需要的数据,则接收该数据,将其保存在客户计算机102中。同样,其他的客户计算机103也可以从客户计算机102接收数据。执行该处理的程序可以在用户应用程序201开始的同时在后台开始,或者也可以与用户应用程序201的开始和结束无关,从客户计算机102、103开始执行。根据本发明,在用户应用程序请求数据之前,预先下载所需要的数据,将其保存在本地客户计算机中,所以不仅能高效地执行用户应用程序,还能减轻服务器104的负担。
根据本发明的另一个实施例,从用户应用程序201对数据读出请求进行钩挂,如果上述数据被保存在本地客户计算机中,则将该数据传输给用户应用程序201,如果上述数据没有被保存在本地客户计算机中,则判断该数据是否被保存在网络上相邻的其他客户计算机中。如果被保存在其他客户计算机中,则利用P2P来下载该数据。如果没有保存在客户计算机中,则与服务器连接进行下载。
根据本发明的另一个实施例,从用户应用程序201对数据读出请求进行钩挂,并响应上述文件读出请求,检查保存在客户计算机中的用户应用程序201和与用户应用程序201相关连的数据。如果上述用户应用程序201或上述数据被调制,则认为上述用户应用程序201或数据被盗用或被解密,所以向服务器104报告该情况。上述是否被调制的判断可以采用CRC检查(周期冗余检查)等检查数据是否被调制的多种方法。因此,根据本发明,可以确认用户应用程序是否被盗用或被解密,并对此采取适当的措施。本发明的用户应用程序和数据的检查可以以一定的时间间隔来进行。
根据本发明的另一个实施例,对来自于用户应用程序201的文件读出请求进行钩挂,以规定的时间间隔连接服务器104,进行规定的认证。上述规定的时间间隔包含一定的时间间隔的情况,也包含不是一定的时间间隔的情况。上述认证是与上述用户应用程序的用户是否是合法的用户相关的认证。如果上述认证失败,则在线数据流文件输入输出API函数对之后的用户应用程序的文件读出请求不进行任何处理,或者在用户显示器上显示错误消息,并使用户应用程序不能正确地执行。根据本实施例,可以防止用户利用非法复制等来进行非法的程序使用。此外,根据本发明,能简单地使程序包在线化,并且进行与使用时间成正比的计费。即,虽然对程序包进行基于使用时间的计费困难,但利用本发明使其在线化,利用服务器104来管理用户应用程序的使用时间,从而能对使用者进行基于使用时间的计费。在普通的程序包游戏的情况下,在一个月左右完成游戏,并且不再进行该游戏的情况很多,所以用户只要支付一个月左右的使用费,就能享受上述游戏。因此,具有用户能以低廉的费用享受游戏程序的优点。
图4是表示利用本发明,在客户计算机中执行的、处理来自于用户应用程序的文件写入请求的顺序的流程图。
在步骤401中,从用户应用程序201接收文件写入请求,并对该请求进行钩挂(hooking)。即,用户应用程序201执行WriteFile()函数,但上述WriteFile()函数的执行被钩挂,所以执行本发明的在线数据流文件输入输出API函数。与上述WriteFile()函数对应的在线数据流文件输入输出API函数被保存在在线数据流文件库202中。
在步骤402中,本发明的在线数据流文件输入输出API函数判断是否需要将上述用户应用程序201写入请求的文件向服务器104上传(Upload)。如果不需要将上述用户应用程序201写入请求的文件上传给服务器104,则在步骤404中,上述用户应用程序201将上述写入请求的文件保存在本地客户计算机中。例如,在依赖于用户的数据中的不需要由服务器104管理的数据可以仅被保存在本地客户计算机中来进行管理。这样,任何数据是否需要上传给服务器,由本发明的计算机程序的提供者来决定,与此相关的逻辑包含在上述在线数据流文件输入输出API函数中。
如果需要将上述用户应用程序201写入请求的文件上传给服务器104,则在步骤403中,在线数据流文件输入输出API函数在步骤403中经由网络接口203而与规定的服务器104连接。上述规定的服务器104经由网络而与上述客户计算机连接。
在步骤405中,在线数据流文件输入输出API函数使上传给服务器104的文件的数据与本地客户计算机钩挂。通过这样的钩挂,在读出同一数据的情况下,可以不必再次从服务器104下载,所以能提高程序执行的效率。
在步骤406中,在线数据流文件输入输出API函数将将要上传的文件的数据上传给服务器104。
图5是利用本发明,在对用户应用程序访问的文件内的数据模块进行建档(profiling),构成优先文件(priority file)的情况下,表示数据模块和优先文件的关系的图。
为了更容易说明本实施例,在用户应用程序进行游戏的程序中,假定程序名为game.exe,假定上述game.exe所需要的数据文件中的一个为datal.dat。上述datal.dat是10Mbyte大小的数据文件。上述game.exe的主函数一部分被修改,文件输入输出API函数被在线数据流文件输入输出API函数钩挂。
首先,对用户应用程序为了按顺序搜索将要参照的数据而建档(profiling)的步骤进行说明。
在使用户应用程序201执行的同时,上述用户应用程序201对将要参照的数据进行识别。根据本发明的一个实施例,一边执行上述用户应用程序201,一边将在一定时间内将要参照的数据集中保存在一个文件中,但这只是本发明中的优先文件(priority file)的一个例子。优先文件也可以是保存在一个文件内的一部分数据或者保存在多个文件内的一部分数据的组合。即,可以将包含在文件1中的数据模块A、包含在文件2中的数据模块B组合,生成一个优先文件。这样,具有如下优点,即由于把握在执行用户应用程序的同时下载的数据的结构的困难的,所以盗用和解密将变得更加困难。
在执行Game.exe的同时,以5秒为单位将被参照的数据集中而生成一个优先文件。例如,执行game.exe,如果从0秒到5秒内发生读出请求的数据是datal.dat文件的从区距100开始的1024字节大小的数据,则将上述datal.dat文件的从区距100开始的1024字节大小的数据保存在优先文件0的502。将下一次执行game.exe、从5秒到10秒期间发生读出请求的数据保存在优先文件1中。图5的实施例是执行game.exe,在从5秒到15秒期间没有发生读出请求的情况。执行game.exe,在从15秒到20秒期间发生了读出请求的数据是datal.dat文件的从区距2000开始的4096字节大小的数据,但它保存在优先文件3的503中。在本实施例中,以5秒为单位将发生了读出请求的数据保存在一个一个的文件中,在没有读出请求的情况下,不生成优先文件,仅使优先文件的编号增大,但根据本发明的另一个实施例,可以使上述时间单位不同,或者使优先文件的生成方法不同。例如,可以在生成优先文件0之后,使随后生成的优先文件按照优先文件1、2等的顺序生成,而不生成中空的优先文件。无论在何种情况下,如果执行用户应用程序,首先将被请求的可能性高的数据指定为优先顺序高的数据而使用。即,可以按照优先顺序的不同而作为不同的文件来管理,在一个文件内按照各数据模块的不同来赋予优先顺序,通过仅管理该优先顺序来读出所需要的数据模块,然后提供给用户应用程序。这样生成的优先文件被保存在服务器104中。
根据本发明的另一个实施例,可以不按照在程序的执行过程中所请求的可能性高的数据模块的顺序来赋予优先顺序,而是考虑不同的数据大小等要素来确定优先顺序。在有来自于用户应用程序的数据读出请求的情况下,如果优先顺序不同的数据被请求,则按照优先顺序高的数据的顺序来处理数据读出请求,对于相同的优先顺序,对先被请求的数据进行读出请求。
此外,根据本发明的另一个实施例,在优先顺序高的情况下,按照该优先顺序接收来自于用户应用程序的数据读出请求,然后立刻从服务器104接收该数据,但在优先顺序低的情况下,利用后台P2P,从相邻的其他客户计算机下载。
这样,如果预先生成优先文件,在用户应用程序开始时,可以按照所需要的数据的顺序来生成优先文件。因此,在统计上,由于预想用户应用程序在请求优先文件0之后会请求优先文件3的数据,所以在用户应用程序的不进行读出请求期间,例如在上述实施例中,在game.exe开始后的5秒到15秒期间,在后台预先将优先文件3下载到本地客户计算机中,这样,由于在用户在执行用户应用程序时预先将所需要的数据下载到本地客户计算机中,所以不必在需要时等待下载。
此外,为了在执行用户应用程序的同时可以由各用户先执行不同的命令,可以使各用户应用程序所请求的数据的顺序不同。根据本发明的另一个实施例,与该情况相比,对多个用户的用户应用程序使用模式进行分析,并对此进行反映,从而生成优先文件。因此,可以使用现有技术中的各种统计学方法。例如,使多个用户执行用户应用程序,对各用户的请求数据进行分析,如果是先请求的数据,则可以赋予其一定的加权值,按照时间带的不同,将最多被请求的数据作为该时间带的优先文件而保存。根据本发明的另一个实施例,首先任意地生成优先文件,然后观察在使用用户应用程序的同时,服务器104的被请求数据的频率,按照最多被请求的数据的顺序而赋予优先顺序,从而生成优先文件。
图6是表示根据本发明的一个实施例而构成的索引表的图。
索引表(index table)600中包含这样的信息,即该信息是与优先文件从哪一区距开始、是多大的数据模块相关的信息,该索引表600在上述建档时生成。图6的索引表假定数据文件是一个,并且不包含与数据文件相关的信息,但在数据文件是多个个人的情况下,也包含与优先文件对应的数据文件是哪一个相关的信息。图6是针对由图5的建档构成的优先文件的索引表600。
以下参照图6的索引表600和图3,对用户程序发出数据读出请求时的处理进行详细说明。
以下以作为用户应用程序的game.exe发出请求从作为数据文件的datal.dat的区距2500开始的1024字节数据的文件读出请求的情况为例进行说明。用户应用程序可以使用ReadFile()函数,请求读出从特定的文件的特定区距开始的一定大小的数据。该用户应用程序的ReadFile()函数被在线数据流文件输入输出API函数钩挂。
在线数据流文件输入输出API函数为了判断上述被请求的数据保存在哪一个优先文件中,参照索引表600。参照索引表600的结果是识别出与上述数据对应的优先文件是优先文件3。在线数据流文件输入输出API函数确认上述优先文件3是否保存在本地客户计算机中。
如果上述优先文件保存在上述本地客户计算机中,则读出上述文件的数据,仅将game.exe请求的1024字节大小的数据传输给game.exe。
如果优先文件没有保存在本地客户计算机中,则在线数据流文件输入输出API函数经由网络接口203而与规定的服务器104连接。上述规定的服务器经由网络而与上述本地客户计算机连接,并且保存有所有的优先文件。根据本发明的一个实施例,上述服务器104也保存有不包括优先文件的全部数据。
在线数据流文件输入输出API函数从服务器104接收优先文件3,并将上述被接收的优先文件3高速缓存在本地客户计算机中。通过该高速缓存,在用户应用程序请求包含在优先文件3中的不同数据时,就不必再次下载优先文件3。
在线数据流文件输入输出API函数读出从服务器104接收的优先文件3,将其中的game.exe所请求的数据传输给用户应用程序201。这样,用户应用程序201可以继续执行。
在以上的实施例中,从用户应用程序接收针对文件的读出请求的构成,作为对来自于用户应用程序的文件读出请求进行钩挂(hooking)的方法而被说明。但是,根据上述说明,本发明所属技术领域的具有通常知识的技术人员知道,不使用钩挂,而使用利用其他函数映射文件输入输出函数的函数再映射(function re-mapping)方法也可以实现本发明,也可以采用其他同等范围内的其他方法。
此外,本发明的实施例包括计算机可读介质,该计算机可读介质包含各种利用计算机来实现的动作用的程序命令。上述计算机可读介质可以包含单独的程序命令、数据文件、数据结构等或它们的组合。上述介质的程序命令可以是特别为本发明设计的程序命令,或者使用计算机软件技术人员公知的程序命令。计算机可读记录介质的例子中,包括象硬盘、软盘(注册商标)和磁带那样的磁介质(magneticmedia),象CD-ROM、DVD那样的光学写入介质(optical media),象光磁软盘(floptical disk)那样的光磁介质(magneto-optical media)以及象ROM、RAM、闪存等那样的为了存储、执行程序命令而特别构成的硬件装置。上述介质也可以是包含载波的光或金属线、波导等的传输介质,上述载波用于传输指定程序命令、数据结构等的信号。作为程序命令的例子,不仅包含由编译器生成的机器语言代码,还包含使用编译器、可由计算机执行的高级语言代码。
以上说明了本发明的优选实施方式,但只要不脱离本发明的权利要求范围,本领域的技术人员可以进行各种变形。
发明的效果
根据本发明,可以容易地使现有的程序包形式的软件产品在线化,获得在线数据流文件的效果,并且能通过网络保持与服务器的连接,从而有效地防止来自外部的盗用和解密,防止非法的软件使用。
此外,本发明通过容易地将现有的程序包软件在线化,可以定期地监视上述程序包软件是否被非法复制,如果是非法复制产品,则停止上述程序包软件的工作,从而可以防止非法复制。此外,根据本发明,通过使程序包软件在线化,可以根据使用时间对程序包软件进行计费。
此外,根据本发明,以文件模块为单位,使在初期应下载的数据最小化,而不是下载在线软件的所有文件,从而可以使用户在初期就能享受游戏。即,根据本发明,不必在程序开始前将所有的程序数据保存在本地计算机中也能执行该程序,并且能实现瞬时响应(on-demand)的数据请求。
此外,根据本发明,能调查在线软件所请求的数据的模式,由此使被下载的数据最优化,即使在用户应用程序不请求读出数据时,也能根据上述调查的数据模式而预先下载,由此使用户用于数据下载的等待时间最短,并且能使服务器的带宽使用最小化。
Claims (18)
1.一种用户应用程序控制方法,用于控制由客户计算机执行的用户应用程序,其特征在于,包括以下步骤:
接收来自于用户应用程序的、针对文件的文件读出请求的步骤;
判断上述文件是否保存在上述客户计算机中的步骤;
如果上述文件保存在上述客户计算机中,则向上述用户应用程序传输上述文件的数据步骤;以及
如果上述文件没有保存在上述客户计算机中,则从保存有上述文件的、通过网络而与上述客户计算机连接的规定服务器接收上述文件的数据中的一部分数据,并保存在上述客户计算机中,然后向上述用户应用程序传输上述接收的数据的步骤。
2.根据权利要求1所述的用户应用程序控制方法,其特征在于,上述文件的数据中的一部分数据的接收是利用上述文件的区距和上述一部分数据的大小来进行的。
3.根据权利要求1所述的用户应用程序控制方法,其特征在于,还包括在仅接收上述一部分数据而不接收上述文件的全部数据的状态下,继续执行上述用户应用程序的步骤。
4.根据权利要求1所述的用户应用程序控制方法,其特征在于,接收来自于上述用户应用程序的、针对文件的文件读出请求的步骤,包括对来自于上述用户应用程序的、针对上述文件的上述文件读出请求进行钩挂或者将处理上述文件读出请求的原函数映射为其他函数的步骤。
5.根据权利要求1所述的用户应用程序控制方法,其特征在于,还包括从保存有上述文件的规定服务器接收上述文件的数据,并在上述客户计算机中进行高速缓存的步骤。
6.根据权利要求1所述的用户应用程序控制方法,其特征在于,还包括:
识别保存有上述文件的第二客户计算机的步骤;以及
从上述第二客户计算机接收上述文件,然后传输给上述用户应用程序的步骤。
7.根据权利要求1所述的用户应用程序控制方法,其特征在于,还包括如下步骤,即在没有接收来自于上述用户应用程序的、针对文件的文件读出请求的情况下,从保存有上述数据的第二客户计算机接收并保存被预想为上述用户应用程序需要的数据。
8.根据权利要求7所述的用户应用程序控制方法,其特征在于,被预想为上述用户应用程序需要的数据的判断是在前面执行上述用户应用程序的情况下,根据上述用户应用程序请求的数据来决定的。
9.一种用户应用程序控制方法,用于控制由客户计算机执行的用户应用程序,其特征在于,包括以下步骤:
接收来自于用户应用程序的、针对文件的文件写入请求的步骤;
判断上述文件是否需要上传给通过网络而与上述客户计算机连接的规定服务器的步骤;
如果上述文件需要上传给上述规定服务器,则将上述文件上传给规定的服务器的步骤;以及
如果上述文件不需要上传给上述规定服务器,则将上述文件写入上述客户计算机中的步骤。
10.一种用户应用程序控制方法,用于控制用户应用程序,其特征在于,包括以下步骤:
接收来自于用户应用程序的、针对文件的文件读出请求的步骤;
根据上述文件读出请求,检查保存在客户计算机中的上述用户应用程序和与上述用户应用程序关联的数据的步骤;以及
如果上述检查的结果是上述用户应用程序和上述数据被调制,则将该情况向通过网络而与上述客户计算机连接的规定服务器报告的步骤。
11.根据权利要求10所述的用户应用程序控制方法,其特征在于,上述检查的步骤进行使用周期冗余检查的检查。
12.一种用户应用程序控制方法,用于控制用户应用程序,其特征在于,包括以下步骤:
接收来自于用户应用程序的、针对文件的文件读出请求的步骤;
以规定的时间间隔与规定的服务器连接,进行规定的认证的步骤;以及
在没有进行上述认证的情况下,不处理上述文件读出请求,从而不执行上述用户应用程序的步骤。
13.根据权利要求12所述的用户应用程序控制方法,其特征在于,根据上述用户的上述用户应用程序的使用时间,对上述用户应用程序的用户进行计费。
14.一种用户应用程序控制方法,用于控制由客户计算机执行的用户应用程序,其特征在于,包括以下步骤:
将用户应用程序访问的数据文件内的多个数据模块中的至少一个作为优先文件而保存在规定的服务器中的步骤;
将针对上述多个数据模块的区距、数据模块的大小和与上述数据模块关联的优先文件识别标志保存在索引保存单元中的步骤;
接收来自于上述用户应用程序的、针对上述数据文件中的任意数据模块的读出请求的步骤;
参照索引保存单元,识别与上述任意的模块对应的优先文件的步骤;以及
从上述规定的服务器接收上述优先文件,然后传输给上述用户应用程序的步骤。
15.根据权利要求14所述的用户应用程序控制方法,其特征在于,还包括以下步骤:
识别保存有上述优先文件的第二客户计算机的步骤;以及
从上述第二客户计算机接收上述优先文件的步骤。
16.根据权利要求14所述的用户应用程序控制方法,其特征在于,还包括如下步骤,即在没有接收来自于上述用户应用程序的、针对文件的文件读出请求的情况下,从保存有上述优先文件的第二客户计算机接收并保存被预想为上述用户应用程序需要的优先文件。
17.根据权利要求16所述的用户应用程序控制方法,其特征在于,被预想为上述用户应用程序需要的优先文件的判断是在前面执行上述用户应用程序的情况下,根据上述用户应用程序请求的优先文件来决定的。
18.一种计算机可读写入介质,被写入执行权利要求1至17中任意一项所述的方法的程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030004366A KR100408758B1 (en) | 2003-01-22 | 2003-01-22 | Method for controlling user application program |
KR4366/2003 | 2003-01-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1517916A true CN1517916A (zh) | 2004-08-04 |
CN100416558C CN100416558C (zh) | 2008-09-03 |
Family
ID=32709932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100029650A Expired - Lifetime CN100416558C (zh) | 2003-01-22 | 2004-01-21 | 用户应用程序的控制方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20040143586A1 (zh) |
JP (1) | JP2004227559A (zh) |
KR (1) | KR100408758B1 (zh) |
CN (1) | CN100416558C (zh) |
HK (1) | HK1068702A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459571B (zh) * | 2008-12-16 | 2011-04-06 | 北京大学 | 一种网站镜像的方法、系统及装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010044850A1 (en) * | 1998-07-22 | 2001-11-22 | Uri Raz | Method and apparatus for determining the order of streaming modules |
US7735057B2 (en) * | 2003-05-16 | 2010-06-08 | Symantec Corporation | Method and apparatus for packaging and streaming installation software |
US20070254742A1 (en) * | 2005-06-06 | 2007-11-01 | Digital Interactive Streams, Inc. | Gaming on demand system and methodology |
US7887420B2 (en) * | 2005-09-12 | 2011-02-15 | Igt | Method and system for instant-on game download |
US9405521B2 (en) * | 2006-06-29 | 2016-08-02 | Microsoft Technology Licensing, Llc | Mapping of virtualized setup-free applications for a computing system |
GB2440760A (en) * | 2006-08-11 | 2008-02-13 | Cachelogic Ltd | Network and method of transferring data over the network by nodes sending messages containing a subset of list of data available at the node |
KR101368327B1 (ko) * | 2006-12-22 | 2014-02-26 | 삼성전자주식회사 | 프로그램 실행흐름 보고 시스템 및 방법 |
KR101598177B1 (ko) * | 2014-04-15 | 2016-03-07 | 정성현 | 내부 통신망을 통한 해킹 시도의 조기 검출 방법 및 이에 사용되는 보안 서버 |
CN104317813A (zh) * | 2014-09-25 | 2015-01-28 | 珠海市君天电子科技有限公司 | 转换应用程序名称的方法、客户端、服务器端及系统 |
US10776268B2 (en) * | 2018-04-19 | 2020-09-15 | Western Digital Technologies, Inc. | Priority addresses for storage cache management |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5928323A (en) * | 1996-05-30 | 1999-07-27 | Sun Microsystems, Inc. | Apparatus and method for dynamically generating information with server-side software objects |
CN1298149A (zh) * | 1999-11-25 | 2001-06-06 | 戴尔美国公司 | 工厂软件管理系统 |
TW484098B (en) * | 2000-03-09 | 2002-04-21 | Ibm | System, method and program for ordered anticipatory caching of linked files in a client/server network |
US6959320B2 (en) * | 2000-11-06 | 2005-10-25 | Endeavors Technology, Inc. | Client-side performance optimization system for streamed applications |
US20020147827A1 (en) * | 2001-04-06 | 2002-10-10 | International Business Machines Corporation | Method, system and computer program product for streaming of data |
US7440994B2 (en) * | 2001-07-06 | 2008-10-21 | Intel Corporation | Method and apparatus for peer-to-peer services to shift network traffic to allow for an efficient transfer of information between devices via prioritized list |
EP1276292B1 (en) * | 2001-07-13 | 2018-01-03 | Hewlett-Packard Development Company, L.P. | File transfer protocol |
WO2003027875A1 (en) * | 2001-09-24 | 2003-04-03 | Loudeye Corp. | Systems and methods or enhancing streaming media |
US7124152B2 (en) * | 2001-10-31 | 2006-10-17 | Seagate Technology Llc | Data storage device with deterministic caching and retention capabilities to effect file level data transfers over a network |
CN1172236C (zh) * | 2001-11-29 | 2004-10-20 | 上海格尔软件股份有限公司 | 安全电子邮件与Outlook Express集成的方法 |
-
2003
- 2003-01-22 KR KR1020030004366A patent/KR100408758B1/ko active IP Right Grant
- 2003-07-22 US US10/623,508 patent/US20040143586A1/en not_active Abandoned
- 2003-08-08 JP JP2003206626A patent/JP2004227559A/ja active Pending
-
2004
- 2004-01-21 CN CNB2004100029650A patent/CN100416558C/zh not_active Expired - Lifetime
-
2005
- 2005-02-04 HK HK05100974A patent/HK1068702A1/xx not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459571B (zh) * | 2008-12-16 | 2011-04-06 | 北京大学 | 一种网站镜像的方法、系统及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2004227559A (ja) | 2004-08-12 |
KR100408758B1 (en) | 2003-12-11 |
US20040143586A1 (en) | 2004-07-22 |
CN100416558C (zh) | 2008-09-03 |
HK1068702A1 (en) | 2005-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8484368B2 (en) | Method and system for optimizing download and instantaneous viewing of media files | |
CN1280817C (zh) | 含有样品数据的只读记录介质及其再生方法 | |
US8105165B2 (en) | Controlling interaction between protected media | |
US8706876B2 (en) | Method and system for tunable distribution of content | |
US8880651B2 (en) | Method and system for efficient download of data package | |
CN1615481A (zh) | 对多媒体对象进行分发的方法和系统 | |
US20040181688A1 (en) | Systems and methods for the copy-protected distribution of electronic documents | |
US20120042143A1 (en) | Information recording apparatus and copy management program | |
US12101411B2 (en) | System and method for decentralized digital structured data storage, management, and authentication using blockchain | |
MX2007000466A (es) | Metodo y aparato para busqueda de objetos de derechos almacenados en un dispositivo de almacenamiento portatil que utiliza datos de localizacion de objetos. | |
US10033788B2 (en) | Method and a system for smooth streaming of media content in a distributed content delivery network | |
KR20140099907A (ko) | 다운로드 가능한 컨텐츠의 전송을 최적화하는 시스템 및 장치 | |
CN106658045A (zh) | 一种多媒体数据的云存储、云下载方法及相关装置 | |
CN1517916A (zh) | 用户应用程序的控制方法 | |
US20100016081A1 (en) | Game server | |
CN1934862A (zh) | 应用控制的远程存储 | |
CN1129903C (zh) | 记录再生装置 | |
CN1808609A (zh) | 向/从记录介质中记录和再生样品数据的方法和装置 | |
US20220245220A1 (en) | Content recording and group encryption | |
US20040044900A1 (en) | Copy protection of DVD related web content | |
US20100016082A1 (en) | Game user apparatus | |
KR20030022830A (ko) | 멀티미디어 데이터 재생 방법 및 이를 위한 장치 | |
EP2535814B1 (en) | Method and system for error correction of a storage media | |
CN1304913C (zh) | 呈现一个场景的装置和方法 | |
JP7282981B2 (ja) | ローカルストリーミングサーバを利用したストリーミングコンテンツの再生方法およびシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1068702 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1068702 Country of ref document: HK |
|
CX01 | Expiry of patent term |
Granted publication date: 20080903 |
|
CX01 | Expiry of patent term |