基于档案流的安装的制作方法

文档序号:6577366阅读:158来源:国知局
专利名称:基于档案流的安装的制作方法
技术领域
本发明涉及在计算机系统上安装软件。更确切地说,本发明涉及将来自档案的文件 安装到计算机系统。
背景技术
许多常规的软件安装技术(一般称为安装技术)利用自提取档案,其实施两步骤的 过程以将文件安装到目标计算机系统上。在第一步骤中,从档案中提取将要安装的文件, 且将其复制到预定的系统临时文件夹。在第二步骤中,启动安装过程,且将系统临时文 件夹中的文件从系统临时文件夹复制到目标计算机系统上的最终目的地。通常,使用数 据库、脚本、数据文件或前述的组合来确定将复制文件的次序以及将把文件放置在目标 计算机系统上的何处。此两步骤的过程是一个耗时且耗资源的过程。

发明内容
根据本发明的实施例,将文件从档案直接提取到计算机系统上的一个或一个以上最 终文件目的地。在一个实施例中,提取过程被挂钩,这允许将文件的档案指定的文件目 的地改变为计算机系统上的最终文件目的地位置。接着可将文件从档案直接写入到计算 机系统上的一个或一个以上最终文件目的地位置。在一个实施例中,所述挂钩是由回调 提供的回调挂钩,通过归档技术(即,7-Zip、 RAR、 ZIP、 CAB)来提供所述回调。在 另一实施例中,所述挂钩是拦截与正被提取过程打开的文件相关联的文件事件的文件系 统挂钩。
在另一实施例中,基于档案流的安装提取引擎经配置以获得最终文件目的地位置, 并将文件从档案直接写入到计算机系统上的一个或一个以上最终文件目的地位置。
通过在结合附图阅读时参考以下详细描述,将最好地理解根据本发明的实施例。


图1是根据本发明的一个实施例包括在主机计算机系统上执行的基于档案流的安装 应用程序的计算机系统的图。
图2是根据本发明的一个实施例用于一个或一个以上软件文件的基于档案流的安装 方法的高级流程图。
8图3是根据本发明的一个实施例利用回调挂钩的用于一个或一个以上软件文件的基 于档案流的安装方法的流程图。
图4是根据本发明的一个实施例说明使用图3的方法中的回调挂钩的一个实例的方 框图。
图5是根据本发明的一个实施例利用文件系统挂钩的用于一个或一个以上软件文件 的基于档案流的安装方法的流程图。
图6是根据本发明的一个实施例说明使用图5的方法中的文件系统挂钩的一个实例 的方框图。
图7是根据本发明的一个实施例包括在主机计算机系统上执行的基于档案流的安装 提取引擎的计算机系统的图。
图8说明根据本发明的一个实施例由图7的基于档案流的安装提取引擎实施的用于 一个或一个以上软件文件的基于档案流的安装方法的流程图。
在整个图式和详细描述中使用共同的参考标号来指示相同元件。
具体实施例方式
根据本发明的实施例在正将档案提取到文件系统中的一个或一个以上最终文件目的 地时从档案直接串流文件。将档案文件一次写入到其最终文件目的地,而不是一次写入 到中间临时位置(例如,系统临时文件夹)然后在第二次写入到最终位置,从而减少档 案文件的安装时间。
在一个实施例中,档案确定文件提取的次序,且档案的提取驱动安装过程。从档案 循序地处理文件比起在文件系统上或在档案中随机寻找提供更大的性能,因为操作系统 将在请求之前提前读取并缓冲存储器。
更特定地参看图l,图1是根据本发明的一个实施例的计算机系统100 (例如,第一 计算机系统)的图,所述计算机系统100包括在主机计算机系统102上执行的基于档案 流的安装应用程序106。主机计算机系统102 (有时称为客户端或用户装置)通常包括中 央处理单元(CPU) 108 (下文为处理器108)、输入/输出(I/O)接口 110、存储器112 和操作系统104。在一个实施例中,基于档案流的安装应用程序106存储在主机计算机 系统102的存储器112中,并在主机计算机系统102上执行。
在一个实施例中,存储器112包括用于永久地存储文件的存储媒体(未图示),有时 称为非易失性存储器、非临时存储存储器、非临时存储媒体,或永久存储存储器。举例 来说,在一个实施例中,存储媒体是硬盘驱动器,例如磁性硬盘驱动器、软盘、CD-ROM和/或DVD。 一般来说,在主机计算机系统102断电(关闭)后,存储在永久存储存储器 (例如,磁性硬盘、软盘、CD-ROM、 DVD)中的文件不受影响且被维持,即不会丢失。 在各种实施例中,存储器112进一步包括用于非永久地存储文件的易失性存储器, 有时称为临时存储存储器、非临时存储媒体,或非永久存储存储器。 一般来说,在主机 计算机系统102断电(关闭)后,存储在非永久存储存储器中的文件会丢失。在一个实 施例中,主机计算机系统102利用一文件系统(未图示)来管理文件在主机计算机系统 102上的存储。
主机计算机系统102可进一步包括标准装置,如键盘118、鼠标126、打印机120和 显示装置122,以及一个或一个以上标准输入/输出(1/0)装置124(例如,压缩光盘(CD) 或DVD驱动器、软盘驱动器,或用于将数据输入到主机计算机系统102和从主机计算机 系统102输出数据的其它数字或波形端口)。在一个实施例中,经由1/0装置124例如从 含有基于档案流的安装应用程序106的CD、 DVD或软盘将基于档案流的安装应用程序 106加载到主机计算机系统102上。
在一个实施例中,基于档案流的安装应用程序106包括档案114、提取引擎140、 重定向引擎142以及密钥映射数据库144。在一个实施例中,档案114包括将要安装在目 标计算机系统(例如,主机计算机系统102)上的一个或一个以上文件和/或文件文件夹。 在一个实施例中,档案114是经加密的档案,其中通过密钥识别符来识别每一将要提取 的文件夹。
在一个实施例中,提取引擎140是从档案114读取文件并将档案文件写入到主机计 算机系统102的应用程序,例如程序代码。在一个实施例中,密钥映射数据库144是包 括对应于档案114中的文件的最终目的地信息在内的信息的数据库。在一个实施例中, 密钥映射数据库144包括若干条目,所述条目包括密钥识别符和对应的最终目的地路径, 例如,最终目的地位置。
在一个实施例中,重定向引擎142是管理由提取引擎140根据密钥映射数据库144 中的信息将文件从档案114提取到主机计算机系统102上的最终目的地(例如,文件系 统位置116)的应用程序,例如程序代码。在本文中参考图2-6更详细地进一步描述基于 档案流的安装应用程序106的各种组成部分。
在一个实施例中,主机计算机系统102通过网络128耦合到系统100的服务器计算 机系统130。服务器计算机系统130通常包括处理器134、存储器132和网络接口 136。
主机计算机系统102也可通过网络128耦合到系统100的其它计算机系统,例如计
10算机系统138。在一个实施例中,计算机系统138类似于主机计算机系统102,且例如包 括中央处理单元、输入输出(I/O)接口和存储器。计算机系统138可进一步包括标准装 置,例如键盘、鼠标、打印机、显示装置和I/0装置。未说明计算机系统138的各种硬 件组件以免转移对本发明的原理的注意。
网络128可为用户感兴趣的任何网络或网络系统。在各种实施例中,网络接口 136 和I/0接口 110包括模拟调制解调器、数字调制解调器或网络接口卡。主机计算机系统 102、计算机系统138和服务器计算机系统130的特定类型和配置对于本发明并不重要。
图2是根据本发明的一个实施例用于一个或一个以上软件文件的基于档案流的安装 方法200的高级流程图。现在同时参看图1和图2,在一个实施例中,由处理器108执 行基于档案流的安装应用程序106导致如下所述的方法200的操作。
在本实施例中,基于档案流的安装应用程序106安装在主机计算机系统102上。在 一个实施例中,在"进入"操作202处进入方法200,且处理从"进入"操作202转变 到"启动基于档案流的安装应用程序"操作204。
在"启动基于档案流的安装应用程序"操作204中,在主机计算机系统102上启动 基于档案流的安装应用程序106。处理从"启动基于档案流的安装应用程序"操作204 转变到"将文件从档案直接提取到最终目的地"操作206。
在"将文件从档案直接提取到最终目的地"操作206中,从档案(例如,档案114) 直接自动提取要安装在主机计算机系统102上的档案文件,且将其写入到主机计算机系 统102上的一个或一个以上最终目的地,例如最终文件目的地116。处理从"将文件从档 案直接提取到最终目的地"操作206转变到"退出"操作208,其中处理退出方法200。 本文中参考图3、图4、图5和图6进一步描述用于将文件从档案直接提取到主机计算机 系统102上的最终目的地的各种实施例。
现在参看图3,图3是根据本发明的一个实施例利用回调挂钩的用于一个或一个以 上软件文件的基于档案流的安装方法300的流程图。参考图4来论述图3,图4是根据 本发明的一个实施例说明使用图3的方法中的回调挂钩的一个实例的方框图。
在图4中,在一个实施例中,基于档案流的安装应用程序106 (在此实施例中展示 为106A)包括重定向引擎142A、档案114A、提取引擎140A和密钥映射数据库144A。 在一个实施例中,密钥映射数据库144A包括使档案114A文件夹和/或文件对应于最终文 件目的地(例如,文件目的地116A)的信息。更确切地说,在一个实施例中,密钥映射 数据库144A是具有名称/值对的查找表。
11现在同时参看图1、图2、图3和图4,在一个实施例中,由处理器108执行基于档 案流的安装应用程序106导致如下所述的方法300的操作。本文中,对文件的参考也适 用于文件夹,因为档案可包括一个或一个以上文件夹(每一文件夹具有一个或一个以上 文件有效负载和/或子文件夹),且可包括各个文件。举例来说,如图4中所示,档案114A 包括档案文件夹402A、402B和402C,其每一者分别具有各自的文件有效负载404A、404B 和404C。在一个实施例中,档案114A的档案文件夹每一者包括一嵌入式密钥,例如唯 一密钥,其对应于密钥映射数据库144A中的唯一密钥条目。在一个实施例中,在"进入" 操作302处进入方法300,且处理从"进入"操作302转变到"登记回调"操作304。
在"登记回调"操作304中,重定向引擎142A向提取引擎140A登记一回调。回调 和回调的登记对于所属领域的技术人员是众所周知的,且在本文中不进一步详细描述以 免转移对本发明的原理的注意。处理从"登记回调"操作304转变到"启动提取过程" 操作306。
在"启动提取过程"操作306中,启动提取引擎140A的提取过程。在一个实施例中, 重定向引擎142A启动提取引擎140A的提取过程。提取引擎的启动对于所属领域的技术 人员是众所周知的,且在本文中不进一步描述以免转移对本发明的原理的注意。处理从 "启动提取过程"操作306转变到"要提取的文件"检查操作308。
在"要提取的文件"检査操作308中,确定是否存在要从档案114A提取的文件。更 确切地说,基于档案流的安装应用程序106A的提取引擎140A存取档案114A,且确定 是否存在要提取的文件。在确定不存在要从档案114A提取的文件("否")时,处理从"要 提取的文件"检査操作308转变到"退出"操作324,其中处理退出方法300。或者,在 确定存在要提取的文件("是")时,处理从"要提取的文件"检查操作308转变到"发 送回调"操作310。
在"发送回调"操作310中,提取引擎产生并发送回调,其指示用于文件的档案指 定的文件目的地。更确切地说,在一个实施例中,提取引擎140A产生回调并将其发送到 重定向引擎142A。
在一个实施例中,回调包括当前档案文件的档案指定的路径,其指示文件的目的地。 举例来说,如果提取引擎140A确定将要提取档案文件夹402A,则提取引擎140A产生 回调并将其发送到重定向引擎142A,所述回调包括档案文件夹402A的档案指定的文件 目的地。在一个实施例中,档案指定的路径是在档案(例如,档案U4A)中指定的路径。 处理从"发送回调"操作310转变到"査找密钥映射路径"操作312。在"查找密钥映射路径"操作312中,由重定向引擎142A接收回调,且在密钥映射 数据库144A中查找用于档案文件的密钥映射路径。举例来说,在一个实施例中,在接收 到回调后,重定向引擎142A存取密钥映射数据库144A,并获得对应于档案文件的识别 符(例如,唯一密钥)的密钥映射目的地。
如早先所描述,在一个实施例中,密钥映射数据库144A是具有名称/值对的查找表。 在密钥映射数据库144A中查找档案文件的名称(例如,唯一密钥\文件夹\文件.^1),且 对应的值是密钥映射指定的路径,即最终目的地路径。处理从"查找密钥映射路径"操 作312转变到"重定向"检査操作314。
在"重定向"检查操作314中,确定是否应将档案文件从档案指定的路径目的地重 定向到密钥映射路径目的地。在一个实施例中,重定向引擎142A将回调中的档案指定的 路径与从密钥映射数据库144A获得的密钥映射路径进行比较。
如果对应于档案文件的密钥映射路径不同于档案指定的路径,则需要将文件重定向 到由密钥映射路径指定的最终目的地。或者,如果对应于档案文件的密钥映射路径与档 案指定的路径相同,则不需要将文件重定向,因为所述路径识别相同的最终目的地。
在确定不应将文件重定向("否")后,处理从"重定向"检查操作314转变到本文 中稍后进一步描述的"发送回调返回"操作318。或者,在确定应将文件重定向("是") 后,处理从"重定向"检査操作314转变到"修改文件目的地"操作316。
在"修改文件目的地"操作316中,使用在密钥映射数据库144A中查找到的密钥映 射路径来修改(例如,取代)档案指定的路径。更确切地说,重定向引擎142A产生一回 调返回,其包括密钥映射指定的路径,而不是档案指定的路径。处理从"修改文件目的 地"操作316转变到"发送回调返回"操作318。
在"发送回调返回"操作318中,从重定向引擎142A将对回调的返回(本文称为回 调返回)发送到提取引擎140A。在一个实施例中,在档案指定的路径未被取代的情况下, 例如在不需要重定向时,回调返回包括档案指定的路径。
或者,在一个实施例中,在档案指定的路径在操作316中被取代的情况下,回调返 回包括密钥映射路径,而不是档案指定的路径。以此方式,现在向提取引擎140A提供用 于特定档案文件的最终文件目的地。处理从"发送回调返回"操作318转变到"打开文 件目的地"操作320。
在"打开文件目的地"操作320中,提取引擎140A打开回调返回中指定的文件目的 地位置。更确切地说,在一个实施例中,打开所述文件在主机计算机系统102上的最终
13目的地。举例来说,在一个实施例中,提取引擎140A接收回调返回,且打开来自重定向 引擎142A的回调返回中所指定的文件目的地。
因此,在一个实施例中,在档案指定的路径未被取代的情况下,最终文件目的地是 由档案指定的路径指定的文件位置。或者,在档案指定的路径在操作316中被取代的情 况下,最终文件目的地是由密钥映射路径指定的文件位置。处理从"打开文件目的地" 操作320转变到"写入文件"操作322。
在"写入文件"操作322中,将档案文件从档案114A直接写入到在操作320中打开 的文件目的地。更确切地说,在一个实施例中,提取引擎140A将文件(例如,档案文件 夹402A)从档案114A直接写入到回调返回中所指定的最终文件目的地116A。以此方式, 将所述文件夹从档案114A直接写入到最终文件目的地(例如,文件目的地116A)。处理 从"写入文件"操作322转变并返回到"要提取的文件"检查操作308,其中如早先所 描述确定是否存在要提取的文件(例如,下一文件),其中执行操作308-322,直到不存 在其它要从档案114A提取的文件为止。当不存在其它要提取的文件("否")时,处理从 "要提取的文件"检査操作308转变到"退出"操作324,其中处理退出方法300。
前面的实施例在提取过程期间利用回调挂钩将文件直接重定向到目标计算机系统 (例如,主机计算机系统102)上的最终文件目的地。在另一实施例中,如本文中参考图 5和图6进一步描述,在提取过程期间使用文件系统挂钩将文件直接重定向到最终文件 目的地。
现在参看图5,图5是根据本发明的一个实施例利用文件系统挂钩的用于一个或一 个以上软件文件的基于档案流的安装方法500的流程图。参考图6来论述图5,图6是 根据本发明的一个实施例说明使用图5的方法中的文件系统挂钩的一个实例的方框图。
在图6中,在一个实施例中,基于档案流的安装应用程序106 (在此实施例中展示 为106B)包括重定向引擎H2B、档案114B、提取引擎140B和密钥映射数据库144B。 在一个实施例中,密钥映射数据库144B包括使档案U4B文件夹和/或文件对应于最终文 件目的地(例如,文件目的地116B)的信息。更确切地说,在一个实施例中,密钥映射 数据库144B是具有名称/值对的查找表。
现在同时参看图1、图2、图5和图6,在一个实施例中,由处理器108执行基于档 案流的安装应用程序106导致如下所述的方法500的操作。本文中,对文件的参考也适 用于文件夹,因为档案可包括一个或一个以上文件夹(每一文件夹具有一个或一个以上 文件有效负载和/或子文件夹),且可包括各个文件。举例来说,如图6中所示,档案114B包括档案文件夹602A、 602B和602C,其每 一者分别具有各自的文件有效负载604A、 604B和604C。在一个实施例中,档案114B 的档案文件夹每一者包括一嵌入式密钥,例如唯一密钥,其对应于密钥映射数据库144B 中的唯一密钥条目。在一个实施例中,在"进入"操作502处进入方法500,且处理从 "进入"操作502转变到"挂钩文件系统"操作504。
在"挂钩文件系统"操作504中,将文件系统挂钩安装在主机计算机系统102上。 更确切地说,在一个实施例中,重定向引擎142B将文件系统挂钩安装在主机计算机系统 102上。在一个实施例中,文件系统挂钩拦截选定的文件系统事件,例如在由调用模块 (例如,提取引擎140B)接收之前拦截来自主机计算机系统102的文件系统(未图示) 的对调用的返回。
可使用多种文件系统挂钩技术中的任一者(例如,通过将调用表(未图示)挂钩到 文件系统)来实施文件系统挂钩。文件系统挂钩技术对于所属领域的技术人员是众所周 知的,且在本文中不进一步描述以免转移对本发明的原理的注意。处理从"挂钩文件系 统"操作504转变到"启动提取过程"操作506。
在"启动提取过程"操作506中,启动提取引擎140B的提取过程。在一个实施例中, 重定向引擎142B启动提取引擎140B的提取过程。提取引擎的启动对于所属领域的技术 人员是众所周知的,且在本文中不进一步描述以免转移对本发明的原理的注意。处理从 "启动提取过程"操作506转变到"要提取的文件"检查操作508。
在"要提取的文件"检査操作508中,确定是否存在要从档案114B提取的文件。更 确切地说,基于档案流的安装应用程序106B的提取引擎140B存取档案114B,且确定是 否存在要提取的文件。在确定不存在要从档案114B提取的文件("否")后,处理从"要 提取的文件"检査操作508转变到"退出"操作526,其中处理退出方法500。或者,在 确定存在要提取的文件("是")后,处理从"要提取的文件"检查操作508转变到"调 用文件系统"操作510。
在"调用文件系统"操作510中,调用主机计算机系统102的文件系统(未图示) 以打开要提取的文件的档案指定的文件目的地。更确切地说,在一个实施例中,提取引 擎140B产生并发送对文件系统的调用以打开由要提取的文件的档案指定的路径识别的 文件位置。处理从"调用文件系统"操作510转变到"停止对调用的返回"操作512。
在"停止对调用的返回"操作512中,停止对文件系统的调用。确切地说,在一个 实施例中,由文件系统上的挂钩拦截从对文件系统的调用的返回,且将其重定向到重定
15向引擎142B,在重定向引擎142B处所述返回被接收且停止以用于进一步处理。在一个 实施例中,对调用的返回包括具有调用中所请求的文件的文件位置的文件句柄。处理从 "停止对调用的返回"操作512转变到"来自提取过程"检査操作514。
在"来自提取过程"检査操作514中,确定所停止的返回是否响应于来自提取引擎 的调用。当返回可响应于除提取引擎140B之外的过程所产生的调用时,进行检查以确定 所述返回是否与提取引擎140B相关联。
举例来说,在一个实施例中,可检査返回的调用源参数以查看是否识别提取引擎 140B的路径。如果识别提取引擎140B的路径,则所述调用是来自提取过程;否则,所 述调用不是来自提取过程。在其它实施例中,可使用其它技术来确定返回是否来自提取 过程。
在确定文件不是来自提取过程("否")后,处理从"来自提取过程"检查操作514 转变到本文中稍后进一步描述的"返回文件句柄"操作520。或者,在确定所停止的返 回是来自提取过程("是")后,处理从"来自提取过程"检査操作514转变到"重定向" 检査操作516。
在"重定向"检査操作516中,确定是否应将文件从文件句柄中所识别的档案指定 的路径目的地重定向到密钥映射路径目的地。举例来说,在一个实施例中,在接收到回 调后,重定向引擎142B存取密钥映射数据库144B,并获得对应于档案文件的识别符(例 如,唯一密钥)的密钥映射目的地。
如早先所描述,在一个实施例中,密钥映射数据库144B是具有名称/值对的査找表。 在密钥映射数据库144B中査找档案文件的名称(例如,唯一密钥X文件夹X文件.ext),且 对应的值是密钥映射指定的路径,即最终目的地路径。在一个实施例中,重定向引擎142B 将所返回的文件句柄中的档案指定的路径与从密钥映射数据库144B获得的密钥映射路 径进行比较。
如果对应于档案文件的密钥映射路径不同于文件句柄中的档案指定的路径,则需要 将文件重定向到由密钥映射路径指定的最终目的地。或者,如果对应于档案文件的密钥 映射路径与档案指定的路径相同,则不需要将文件重定向,因为所述路径识别相同的最 终文件目的地。
在确定不应将文件重定向("否")后,处理从"重定向"检查操作516转变到本文 中稍后进一步描述的"返回文件句柄"操作520。或者,在确定应将文件重定向("是") 后,处理从"重定向"检查操作516转变到"修改文件目的地"操作518。
16在"修改文件目的地"操作518中,使用密钥映射路径目的地来修改(例如,取代) 所停止的文件句柄中所指定的文件目的地。处理从"修改文件目的地"操作518转变到 "返回文件句柄"操作520。
在"返回文件句柄"操作520中,将操作518中所修改的文件句柄返回给调用程序。 因此,在一个实施例中,当调用程序是提取引擎140B时,将文件句柄返回给提取引擎 140B。在调用程序不是来自提取过程的例子中,将文件句柄不加修改地返回给调用程序。 处理从"返回文件句柄"操作520转变到"打开文件目的地"操作522。
在"打开文件目的地"操作522中,提取引擎140B打开所返回的文件句柄中指定的 文件目的地位置。更确切地说,在一个实施例中,打开文件在主机计算机系统102上的 最终目的地。
举例来说,在一个实施例中,提取引擎140B接收所返回的文件句柄,且打开来自重 定向引擎142B的文件句柄中指定的文件目的地。在一个实施例中,在文件句柄被修改为 密钥映射目的地的情况下,由提取引擎140B在文件系统中打开密钥映射数据库中指定的 密钥映射路径目的地。处理从"打开文件目的地"操作522转变到"写入文件"操作524。
在"写入文件"操作524中,将档案文件从档案114B直接写入到在操作522中打开 的文件目的地。更确切地说,在一个实施例中,提取引擎140B将文件(例如,档案文件 夹602A)从档案114B直接写入到所返回的文件句柄中指定的最终文件目的地116B。以 此方式,将所述文件夹从档案114B直接写入到最终文件目的地(例如,文件目的地116B)。 处理从"写入文件"操作524转变并返回到"要提取的文件"检查操作508,其中如早 先所描述确定是否存在要提取的文件(例如,下一文件),其中执行操作508-524,直到 不存在其它要从档案114B提取的文件为止。当不存在其它要提取的文件("否")时,处 理从"要提取的文件"检査操作508转变到"退出"操作526,其中处理退出方法500。
在上述实施例中,使用回调挂钩(方法300)和文件系统挂钩(方法500)来挂钩提 取引擎的提取过程。在另一实施例中,描述一种经配置以实施基于档案流的安装方法的 新的档案提取引擎,其如本文中参考图7和图8进一步描述。
现在参看图7,图7是根据本发明的一个实施例包括在主机计算机系统702上执行 的基于档案流的安装提取引擎706的计算机系统700的图。在一个实施例中,基于档案 流的安装提取引擎706包括档案714和密钥映射数据库740。
在一个实施例中,档案714包括要安装在目标计算机系统(例如,主机计算机系统 702)上的一个或一个以上文件和/或文件文件夹。在一个实施例中,档案714是经加密的档案,其中通过密钥识别符来识别要提取的每一文件夹。在一个实施例中,密钥映射 数据库740是包括对应于档案714中的文件的最终目的地信息在内的信息的数据库。在 一个实施例中,密钥映射数据库740包括若干条目,所述条目包括密钥识别符和对应的 最终目的地路径,例如,最终目的地位置。在一个实施例中,例如经由I/O装置724将 基于档案流的提取引擎706加载到主机计算机系统702上。
图8说明根据本发明的一个实施例由图7的基于档案流的安装提取引擎706实施的 用于一个或一个以上软件文件的基于档案流的安装方法800的流程图。现在同时参看图 7和图8,在一个实施例中,由处理器108执行基于档案流的提取引擎706的方法800导 致如下所述的方法800的操作。在一个实施例中,在"进入"操作802处进入方法800, 且处理从"进入"操作802转变到"启动基于档案流的提取引擎"操作804。
在"启动基于档案流的提取引擎"操作804中,在主机计算机系统702上启动档案 提取引擎706。处理从"启动基于档案流的提取引擎"操作804转变到"设置重定向路 径"操作806。
在"设置重定向路径"操作806中,基于档案流的提取引擎706存取密钥映射数据 库740,查找将要安装的每一档案文件的对应重定向路径,且设置每一档案文件的对应 重定向路径。
因此,不是像早先参考方法300和500所描述的那样通过回调挂钩或文件系统挂钩 来挂钩提取引擎过程并査找提取引擎的重定向路径,而是基于档案流的提取引擎706自 身存取密钥映射数据库740、査找重定向路径,并设置每一档案文件的重定向路径。处 理从"设置重定向路径"操作806转变到"启动提取过程"操作808。
在"启动提取过程"操作808中,基于档案流的提取引擎706启动提取过程。处理 从"启动提取过程"操作808转变到"要提取的文件"检査操作810。
在"要提取的文件"检查操作810中,确定是否存在要从档案714提取的文件。更 确切地说,基于档案流的提取引擎706存取档案714,且确定是否存在要提取的文件。 在确定不存在要从档案714提取的文件("否")后,处理从"要提取的文件"检査操作 810转变到"退出"操作822,其中处理退出方法800。或者,在确定存在要提取的文件 ("是")后,处理从"要提取的文件"检查操作810转变到"获得档案路径"操作812。
在"获得档案路径"操作812中,基于档案流的提取引擎706存取要从档案714提 取的文件的档案指定的路径,例如,唯一密钥Vt件夹X文件.ext。处理从"获得档案路径" 操作812转变到"重定向"检査操作814。
18在"重定向"检查操作814中,基于档案流的提取引擎706将档案指定的路径与从 密钥映射数据库740获得的密钥映射路径进行比较。如果对应于档案文件的密钥映射路 径不同于档案指定的路径,则需要将文件重定向到由密钥映射路径指定的最终目的地。
或者,如果对应于档案文件的密钥映射路径与档案指定的路径相同,则不需要将文 件重定向,因为所述路径识别相同的最终目的地。在确定不应将文件重定向("否")后, 处理从"重定向"检查操作814转变到本文中稍后进一步描述的"打开文件目的地"操 作818。或者,在确定应将文件重定向("是")后,处理从"重定向"检查操作814转 变到"修改文件目的地"操作816。
在"修改文件目的地"操作816中,使用密钥映射路径(即,重定向路径)来修改 (例如,取代)档案指定的路径。处理从"修改文件目的地"操作816转变到"打开文件 目的地"操作818。
在"打开文件目的地"操作818中,打开最终文件目的地位置。更确切地说,在一 个实施例中,在主机计算机系统702上打开档案文件的最终文件目的地。举例来说,在 一个实施例中,档案提取引擎706打开文件目的地。
因此,在一个实施例中,在档案指定的路径未被取代的情况下,最终文件目的地是 由档案指定的路径指定的文件位置。或者,在档案指定的路径在操作816中被取代的情 况下,最终文件目的地是由重定向路径指定的文件位置。处理从"打开文件目的地"操 作818转变到"写入文件"操作820。
在"写入文件"操作820中,将档案文件从档案714直接写入到在操作818中打开 的最终文件目的地。更确切地说,在一个实施例中,基于档案流的提取引擎706将文件 从档案714直接写入到在操作818中打开的最终文件目的地716。处理从"写入文件" 操作820转变并返回到"要提取的文件"检查操作810,其中如早先所描述确定档案714 中是否存在要提取的文件(例如,下一文件),其中执行操作810-820,直到不存在其它 要从档案714提取的文件为止。当不存在其它要提取的文件("否")时,处理从"要提 取的文件"检查操作810转变到"退出"操作822,其中处理退出方法800。
现在再次参看图1,在本发明的一个实施例中,基于档案流的安装应用程序106是 在存储器112中。本文中使用的计算机存储器是指易失性存储器、非易失性存储器或所 述两者的组合。
虽然将基于档案流的安装应用程序106称作应用程序,但这仅是说明性的。基于档 案流的安装应用程序106应能够从应用程序或操作系统调用。在一个实施例中,应用程
19序一般被界定为任何可执行代码。而且,所属领域的技术人员将理解,当提到应用程序 或操作采取某一动作时,所述动作是由处理器执行一个或一个以上指令的结果。
可使用任何合适的硬件配置或构件来实行根据本发明的实施例,所述硬件配置或构 件涉及个人计算机、工作站、便携式装置或计算机装置的网络。在其它实施例中使用除 客户端-服务器配置之外的其它网络配置,例如对等的、基于网络的、内联网、因特网网 络配置。
本文中,计算机程序产品包含经配置以存储或传送根据本发明的一实施例的计算机 可读代码的媒体。计算机程序产品的一些实例是CD-ROM盘、DVD、 ROM卡、软盘、 磁带、计算机硬盘驱动器、网络上的服务器和经由网络传输的表示计算机可读代码的信 号。在另一实施例中,计算机程序产品包含经配置以存储计算机可读代码的有形存储媒 体,包括CD-ROM盘、DVD、 ROM卡、软盘、磁带、计算机硬盘驱动器和网络上的服 务器。
如图1中所说明,此媒体本身可属于计算机系统。然而,也可从计算机系统中移除 所述媒体。举例来说,基于档案流的安装应用程序106可存储在物理上位于与处理器108 不同的位置中的存储器132中。处理器108应耦合到存储器132。此可在客户端-服务器 系统中或替代地经由与另一计算机的连接(经由调制解调器和模拟线,或数字接口和数 字载波线)而实现。
更具体来说,在一个实施例中,主机计算机系统102和/或服务器计算机系统130是 便携式计算机、工作站、双向寻呼机、蜂窝式电话、数字无线电话、个人数字助理、服 务器计算机、因特网器具,或任何其它包括可执行根据如本文中所描述的实施例中的至 少一者的基于档案流的安装应用程序106的功能性的组件的装置。类似地,在另一实施 例中,主机计算机系统102和/或服务器计算机系统130由多个不同计算机、无线装置、 蜂窝式电话、数字电话、双向寻呼机,或个人数字助理、服务器计算机,或这些装置的 经互连以执行如本文中所描述的方法的任何所要组合所组成。
鉴于本揭示内容,可以多种多样的计算机系统配置来实施根据本发明的一个实施例 的基于档案流的安装应用程序106的功能性。另外,基于档案流的安装应用程序106的 功能性可作为不同模块存储在不同装置的存储器中。
举例来说,基于档案流的安装应用程序106可起初存储在服务器计算机系统130中, 且接着在必要时,可将基于档案流的安装应用程序106的一部分转移到主机计算机系统 102并在主机计算机系统102上执行。随后,将在服务器计算机系统130的处理器134上执行基于档案流的安装应用程序106的功能性的一部分,且将在主机计算机系统102 的处理器108上执行另一部分。鉴于本发明,所属领域的技术人员可使用用户感兴趣的 操作系统和计算机编程语言以多种多样的物理硬件配置来实施本发明的各种实施例。
在又一实施例中,基于档案流的安装应用程序106存储在服务器计算机系统130的 存储器132中。经由网络128将基于档案流的安装应用程序106转移到主机计算机系统 102中的存储器112。在此实施例中,网络接口 136和I/0接口 110将包括模拟调制解调 器、数字调制解调器或网络接口卡。如果使用调制解调器,则网络128包括通信网络, 且经由通信网络来下载基于档案流的安装应用程序106。
本揭示内容提供本发明的示范性实施例。本发明的范围不受这些示范性实施例限制。 鉴于本揭示内容,所属领域的技术人员可实施许多变更,无论其是由说明书明确提供的 变更还是由说明书暗示的变更。
权利要求
1.一种计算机实施的方法,其包含启动提取过程;以及将至少一个文件从档案直接提取到计算机系统上的一个或一个以上最终文件目的地。
2. 根据权利要求1所述的计算机实施的方法,其中所述将至少一个文件从档案直接提 取到计算机系统上的一个或一个以上最终文件目的地包含向提取引擎登记回调;启动所述提取引擎,所述启动致使所述提取引擎获得来自所述档案的所述至少一 个文件的档案指定的文件目的地,并产生和发送回调;从所述提取引擎接收所述回调,所述回调包括所述至少一个文件的档案指定的文 件目的地;在密钥映射数据库中查找与所述至少一个文件相关联的密钥映射指定的文件目 的地;基于所述档案指定的文件目的地是否与所述密钥映射指定的文件目的地匹配来 确定是否将把所述至少一个文件从所述档案指定的文件目的地重定向到所述密钥 映射指定的文件目的地其中在确定将把所述至少一个文件重定向后,产生被修改的回调返回,所述被修 改的回调返回包括所述密钥映射指定的文件目的地;且将所述被修改的回调返回发送到所述提取引擎,其中响应于接收到所述被修改的 回调返回,所述提取引擎打开计算机系统上的处于所述密钥映射指定的文件目的地 处的位置,且将所述至少一个文件从所述档案直接写入到处于所述密钥映射指定的文件目的 地处的所述位置。
3. 根据权利要求2所述的计算机实施的方法,其中在确定将不把所述至少一个文件重 定向后,产生回调返回,所述回调返回包括所述档案指定的文件目的地;且将所述回调返回发送到所述提取引擎,其中响应于接收到所述回调返回,所述提 取引擎打开所述计算机系统上的处于所述档案指定的文件目的地处的位置,且将所述至少一个文件从所述档案直接写入到处于所述档案指定的文件目的地处 的所述位置。
4. 根据权利要求2所述的计算机实施的方法,其进一步包含-确定是否存在将要由所述提取引擎从所述档案提取的所述至少一个文件;且 其中在确定存在将要提取的所述至少一个文件后,所述提取引擎产生所述回调,且发送所述回调。
5. 根据权利要求4所述的计算机实施的方法,其中在确定不存在将要提取的所述至少 一个文件后,退出所述计算机实施的方法。
6. 根据权利要求2所述的计算机实施的方法,其中所述至少一个文件位于所述档案的 具有唯一密钥识别符的文件夹中,且进一步其中所述密钥映射数据库包括一个或一 个以上条目,所述一个或一个以上条目中的每一者基于至少一唯一密钥识别符将档 案指定的文件目的地与密钥映射指定的文件目的地相关联。
7. 根据权利要求l所述的计算机实施的方法,其中所述将所述至少一个文件从档案直 接提取到目标计算机系统上的一个或一个以上最终文件目的地包含将文件系统挂钩安装在计算机系统上,所述文件系统挂钩用于拦截并停止所述计 算机系统上的一个或一个以上文件系统事件;启动提取引擎,所述启动起始由所述提取引擎从档案提取所述至少一个文件,所述提取引擎产生对文件系统的调用以打开与所述文件相关联的档案指定的文件目 的地处的位置;接收由所述文件系统挂钩拦截的文件系统事件,所述文件系统事件包括识别所述 档案指定的文件目的地的文件句柄; 停止所述文件系统事件;确定所述文件系统事件是否与所述提取引擎相关联;其中在确定所述文件系统事件与所述提取引擎相关联后,确定是否将把所述至少 一个文件从所述档案指定的文件目的地重定向到密钥映射指定的文件目的地;其中在确定将把所述至少一个文件重定向后,产生被修改的文件句柄,所述被修 改的文件句柄包括所述密钥映射指定的文件目的地且将所述被修改的文件句柄返回给所述提取引擎,其中响应于接收到所述被修改的 文件句柄,所述提取引擎打开所述计算机系统上的处于所述密钥映射指定的文件目 的地处的位置,且将所述至少一个文件从所述档案直接写入到处于所述密钥映射指定的文件目的地处的所述位置。
8. 根据权利要求7所述的计算机实施的方法,其中在确定将不把所述至少一个文件重 定向后,将包括所述档案指定的文件目的地的所述文件句柄返回给所述提取引擎, 其中响应于接收到所述文件句柄,所述提取引擎打开处于所述档案指定的文件目的 地处的位置,且将所述至少一个文件从所述档案直接写入到处于所述档案指定的文件目的地处 的所述位置。
9. 根据权利要求7所述的计算机实施的方法,其中所述确定是否将把所述至少一个文 件从所述档案指定的文件目的地重定向到密钥映射指定的文件目的地包含在密钥映射数据库中查找与所述至少一个文件相关联的密钥映射指定的文件目 的地;以及基于所述档案指定的文件目的地是否与所述密钥映射指定的文件目的地匹配来 确定是否将把所述至少一个文件从所述档案指定的文件目的地重定向到所述密钥 映射指定的文件目的地。
10. 根据权利要求7所述的计算机实施的方法,其中所述至少一个文件位于所述档案的 具有唯一密钥识别符的文件夹中,且进一步其中所述密钥映射数据库包括一个或一 个以上条目,所述一个或一个以上条目中的每一者基于至少一唯一密钥识别符将档 案指定的文件目的地与密钥映射指定的文件目的地相关联。
11. 一种包含存储计算机程序代码的有形计算机可读存储媒体的计算机程序产品,其包 含基于档案流的安装应用程序,其用于在正将档案直接提取到文件系统中的一个或 一个以上最终文件位置时从所述档案直接串流至少一个文件,所述基于档案流的安 装应用程序包含用于从档案提取所述至少一个文件且用于将所述至少一个文件直接写入到所述文件系统中的所述一个或一个以上最终文件位置的构件;以及用于将所述至少一个文件从档案指定的文件目的地重定向到密钥映射指定的文件目的地的构件;以及从将所述档案指定的文件目的地与所述密钥映射指定的文件目的地相关联的 构件。
12. 根据权利要求ll所述的计算机程序产品,其进一步包含档案,所述档案包括用于安装在所述计算机系统上的所述至少一个文件。
13. —种包含存储用于一方法的计算机程序代码的计算机可读媒体的计算机程序产品, 所述方法包含启动提取过程;以及将至少一个文件从档案直接提取到计算机系统上的一个或一个以上最终文件目 的地。
14. 根据权利要求13所述的计算机程序产品,其中在所述方法中,所述将所述至少一 个文件从档案直接提取到计算机系统上的一个或一个以上最终文件目的地包含向提取引擎登记回调启动所述提取引擎,所述启动致使所述提取引擎获得来自所述档案的所述至少一 个文件的档案指定的文件目的地,并产生和发送回调;从所述提取引擎接收所述回调,所述回调包括所述至少一个文件的档案指定的文 件目的地;在密钥映射数据库中查找与所述至少一个文件相关联的密钥映射指定的文件目 的地;基于所述档案指定的文件目的地是否与所述密钥映射指定的文件目的地匹配来 确定是否将把所述至少一个文件从所述档案指定的文件目的地重定向到所述密钥 映射指定的文件目的地;其中在确定将把所述至少一个文件重定向后,产生被修改的回调返回,所述被修 改的回调返回包括所述密钥映射指定的文件目的地;且将所述被修改的回调返回发送到所述提取引擎,其中响应于接收到所述被修改的 回调返回,所述提取引擎打开计算机系统上的处于所述密钥映射指定的文件目的地 处的位置,且将所述至少一个文件从所述档案直接写入到处于所述密钥映射指定的文件目的 地处的所述位置。
15. 根据权利要求14所述的计算机程序产品,其中所述至少一个文件位于所述档案的 具有唯一密钥识别符的文件夹中,且进一步其中所述密钥映射数据库包括一个或一 个以上条目,所述一个或一个以上条目中的每一者基于至少一唯一密钥识别符将档 案指定的文件目的地与密钥映射指定的文件目的地相关联。
16. 根据权利要求13所述的计算机程序产品,其中在所述方法中,所述将所述至少一个文件从档案直接提取到计算机系统上的一个或一个以上最终文件目的地包含将文件系统挂钩安装在计算机系统上,所述文件系统挂钩用于拦截并停止所述计 算机系统上的一个或一个以上文件系统事件;启动提取引擎,所述启动起始由所述提取引擎从档案提取所述至少一个文件,所 述提取引擎产生对文件系统的调用以打开与所述至少一个文件相关联的档案指定 的文件目的地处的位置;接收由所述文件系统挂钩拦截的文件系统事件,所述文件系统事件包括识别所述 档案指定的文件目的地的文件句柄;停止所述文件系统事件;确定所述文件系统事件是否与所述提取引擎相关联;其中在确定所述文件系统事件与所述提取引擎相关联后,确定是否将把所述至少 一个文件从所述档案指定的文件目的地重定向到密钥映射指定的文件目的地;其中在确定将把所述至少一个文件重定向后,产生被修改的文件句柄,所述被修 改的文件句柄包括所述密钥映射指定的文件目的地;且将所述被修改的文件句柄返回给所述提取引擎,其中响应于接收到所述被修改的 文件句柄,所述提取引擎打开所述计算机系统上的处于所述密钥映射指定的文件目 的地处的位置,且将所述至少一个文件从所述档案直接写入到处于所述密钥映射指定的文件目的 地处的所述位置。
17. 根据权利要求16所述的计算机程序产品,其中所述至少一个文件位于所述档案的 具有唯一密钥识别符的文件夹中,且进一步其中所述密钥映射数据库包括一个或一 个以上条目,所述一个或一个以上条目中的每一者基于至少一唯一密钥识别符将档 案指定的文件目的地与密钥映射指定的文件目的地相关联。
18. —种基于档案流的提取引擎,其包含用于从档案提取至少一个文件的构件;以及用于将所述至少一个文件从所述档案直接写入到计算机系统中的一个或一个以 上最终文件位置的构件。
19. 根据权利要求18所述的基于档案流的提取引擎,其进一步包含-用于将所述至少一个文件在所述档案中的档案指定的文件目的地与密钥映射指 定的文件目的地相关联的构件,所述密钥映射指定的文件目的地指示所述至少一个文件在所述计算机系统上的最终文件目的地。
20.根据权利要求18所述的基于档案流的提取引擎,其中所述至少一个文件位于所述 档案的具有唯一密钥识别符的文件夹中,且进一步其中所述密钥映射数据库包括一个或一个以上条目,所述一个或一个以上条目中的每一者基于至少一唯一密钥识别 符将档案指定的文件目的地与密钥映射指定的文件目的地相关联。
全文摘要
本发明涉及一种基于档案流的安装。在正将档案直接提取到计算机系统上的一个或一个以上最终目的地位置时从所述档案串流将要安装在所述计算机系统上的文件。
文档编号G06F9/445GK101576827SQ20091012932
公开日2009年11月11日 申请日期2009年3月20日 优先权日2008年3月21日
发明者乔治·施塔尔, 布赖恩·鲍威尔, 彼得·维尔容, 科林·戴维斯 申请人:赛门铁克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1