CN101501673A - 重定向来自传统应用程序的实例化的可能冲突的i/o命令的主计算机i/o过滤器 - Google Patents

重定向来自传统应用程序的实例化的可能冲突的i/o命令的主计算机i/o过滤器 Download PDF

Info

Publication number
CN101501673A
CN101501673A CNA2007800295928A CN200780029592A CN101501673A CN 101501673 A CN101501673 A CN 101501673A CN A2007800295928 A CNA2007800295928 A CN A2007800295928A CN 200780029592 A CN200780029592 A CN 200780029592A CN 101501673 A CN101501673 A CN 101501673A
Authority
CN
China
Prior art keywords
request
data
unique
main frame
place
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
CNA2007800295928A
Other languages
English (en)
Inventor
N·R·克里斯琴森
V·拉玛纳坦
A·A·杜什
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN101501673A publication Critical patent/CN101501673A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/542Intercept

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

主机计算设备具有传统应用程序的多个实例化的副本。每一个副本都可发出访问在所有副本所共有的绝对位置处的数据的数据请求。为了响应来自特定副本的数据请求,确定该数据请求的绝对位置具有指定一替换位置的重定向设备,并且不兑现该数据请求。从该替换位置以及传统应用程序的特定副本的唯一ID中确定一唯一位置,并且重新发出访问在该唯一位置处的数据的数据请求。来自传统应用程序的不同副本的数据请求由此被定向到不同的唯一位置。

Description

重定向来自传统应用程序的实例化的可能冲突的I/O命令的主计算机I/O过滤器
技术领域
本发明涉及应用程序在其上被实例化多次的主计算机。具体而言,本发明涉及这样一种主计算机,其中应用程序的每一次实例化都可发出至少可能与该应用程序的另一次实例化冲突的I/O命令。更具体而言,本发明涉及接收I/O命令并以避免潜在冲突的方式重定向该I/O命令的I/O过滤器。
背景
如可以理解的,在至少某些计算机设置中,计算设备可被安排来担当多个处理环境的主机。例如,这样的一台计算设备可以是为多个客户机中的每一个提供工作空间和计算服务的终端服务器等,或者可以是在其上运行多个虚拟机的虚拟服务器等。在任一种情况下,该主机可能包括足够的处理能力来为每一个客户机或每一个虚拟机的每一个进程服务并且以其他方式执行所有必要的管理功能,包括内务管理、维护等。
如同样可以理解的,处于在任何计算设备上实例化和运行的正常过程中的应用程序有时会发出关于该计算设备的输入/输出(“I/O”)命令。例如,I/O命令可以是打开文件、从这一打开的文件读取或向其写入、打开诸如注册表等数据存储、从这一打开的数据存储读取或向其写入等。如可以理解的,来自任何特定应用程序的每一个I/O命令都是关于存储数据或将要存储数据的位置的,并且都由该应用程序发到这一应用程序在其上实例化的计算设备。
在相对较新的应用程序中,每一个I/O命令的位置都是以相对形式来指定的,并且期望应用程序的计算设备基于该相对形式、该应用程序、该应用程序的用户和/或类似项目来导出该位置的绝对形式。I/O命令的位置的这一相对形式的一个示例是虚拟地址,其由应用程序发出并且由相应的计算设备的地址转换器来转换为物理地址(即,该位置的绝对形式)。位置的这一相对形式的另一示例是计算设备的映射的网络驱动器,其实际上是物理服务器上的数据集(即,该位置的绝对形式)。如可以理解的,通过使得应用程序以这一相对形式来指定位置,给予了该应用程序在其上实例化的计算设备在出于效率考虑可能是必要的时候改变该位置的绝对形式及解决改变的情况等的至少某些灵活性。
作为对照,在相对较老的“传统”应用程序中,每一个I/O命令的位置可能不是以相对形式来指定的,而是可能以绝对形式来指定的。因此,应用程序可指定物理地址而不是虚拟地址,或者可指定数据集而不是映射的网络驱动器,如同上述示例一样。
值得注意的是,以绝对形式指定位置的这些传统应用程序当在上述主机上实例化时呈现了一种担忧,尤其是在该主机具有特定应用程序的多个实例化的副本,并且该应用程序的每一个副本都正在发出基于同一位置的相同的绝对形式的关于该位置的冲突的I/O命令的情况下。具体而言,并且作为这种冲突的I/O命令的示例,该应用程序的第一副本可将第一数据写入该位置,而该应用程序的第二副本可用第二数据来在该位置处盖写第一副本的第一数据。作为这些冲突的I/O命令的结果,第一副本可以在稍后从该位置读取被认为是该第一副本的第一数据的数据,但该数据实际上是第二副本的第二数据。
作为一更具体的示例,假定一传统应用程序被编程为向在绝对C:\DATA\处的文件WBPA.DAT写入一特定类型的数据。此外,假定主机是运行用于第一和第二客户机的工作空间的终端服务器,并且每一个客户机都已选择在该终端服务器主机上其各自的工作空间中实例化传统应用程序。因此,第一客户机在该终端服务器主机上的相应的第一工作空间中具有该应用程序的相应的第一实例化的副本,而第二客户机在该终端服务器主机上的相应的第二工作空间中具有该应用程序的相应的第二实例化的副本。
现在,如果该终端服务器主机上的应用程序的第一和第二副本中的每一个都向该终端服务器主机的相同的C:\DATA\WBPA.DAT写入数据,并且应用程序的第一和第二副本中的每一个都假定没有其他实体也在向这一C:\DATA\WBPA.DAT写入数据,则实际上可以确定这一C:\DATA\WBPA.DAT将会在无意间被来自该应用程序的两个副本的冲突的数据损坏,假设该终端服务器不包含可避免这一情况出现的干预实用程序。因此,存在对在主机处的传统应用程序的多个副本都各自向被指定为绝对形式的位置写入时防止这一冲突的这一实用程序的需求。具体而言,存在对主机处实际上将来自应用程序的每一个副本的数据重定向到特定于这一副本、特定于使用该副本的用户、特定于这一用户所在的终端等的唯一位置的过滤器的需求。
概述
上述需求由本发明来满足,在本发明中,提供了一种关于其上具有传统应用程序的多个实例化的副本的主机计算设备的方法,其中该传统应用程序的每一个副本都处于不同的工作空间中并具有与其相关联的唯一ID,并且其中该传统应用程序的每一个副本都至少可能发出访问该主机处的传统应用程序的所有副本所共有的该主机的绝对位置处的数据的数据请求。该方法用于响应来自具有特定唯一ID的传统应用程序的特定副本的数据请求。
在该方法中,确定数据请求的绝对位置具有与其相对应的重定向设备,其中该重定向设备指定将代替该绝对位置使用的主机的替换位置,并且因此基于该重定向设备不兑现该数据请求。此外,基于该重定向设备的替换位置以及该传统应用程序的特定副本的特定唯一ID来确定该主机的唯一位置,并且重新发出访问在该主机的唯一位置处的数据的数据请求。由此,对于主机处的传统应用程序的每一个不同的实例化的副本而言,来自该副本的数据请求并非被定向到相同的绝对位置,而是到对应于该副本的唯一位置。
附图说明
以上概述以及以下本发明实施例的详细描述在结合附图阅读时能够被更好地理解。出于说明本发明的目的,在附图中示出目前优选的实施例。然而,如应理解的,本发明不限于所示的精确安排和手段。在附图中:
图1是表示其中可结合本发明和/或其各部分的各方面的通用计算机系统的框图;
图2是示出包括多个过滤器的计算设备的输入/输出(I/O)栈的框图;
图3是示出诸如具有图2所示的I/O栈的计算设备等计算设备的框图,其中该计算设备是多个客户机的主机,并且其中每一个客户机都具有可在其中实例化应用程序的副本的工作空间;
图4是示出根据本发明的各实施例的图3的主机中的图2的I/O栈的框图,其具有用于确保图3的应用程序的每一个副本在打开文件时引用唯一位置的扇操作过滤器;以及
图5是示出根据本发明的各实施例的由图4的扇操作过滤器执行的关键步骤的流程图。
详细描述
计算机环境
图1及以下讨论旨在提供对适于在其中实现本发明的合适的计算环境的简要概括描述。尽管并非所需,但本发明在诸如程序模块等由诸如客户机工作站或服务器等计算机执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。此外,应该理解,本发明和/或其各部分可用其它计算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、网络PC、小型机、大型计算机等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备中。
如图1所示,示例性通用计算系统包括常规个人计算机120等,该计算机包括处理单元121、系统存储器122和将包括系统存储器的各种系统组件耦合到处理单元121的系统总线123。系统总线123可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。系统存储器包括只读存储器(ROM)124和随机存取存储器(RAM)125。基本输入/输出系统126(BIOS)包含有助于诸如在启动时在个人计算机120中元件之间传递信息的基本例程,它被存储在ROM124中。
个人计算机120还包括对硬盘(未示出)读写的硬盘驱动器127、对可移动磁盘129读写的磁盘驱动器128、以及对诸如CD-ROM或其它光学介质等可移动光盘131读写的光盘驱动器130。硬盘驱动器127、磁盘驱动器128和光盘驱动器130分别通过硬盘驱动器接口132、磁盘驱动器接口133和光盘驱动器接口134连接到系统总线123。驱动器及其相关联的计算机可读介质为个人计算机120提供了对计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。
尽管此处所述的示例性环境使用硬盘、可移动磁盘129和可移动光盘131,但是应该理解,在示例性操作环境中也可使用能够存储可由计算机访问的数据的其它类型的计算机可读介质。这样的其它类型介质包括磁带盒、闪存卡、数字视频盘、贝努利盒式磁带、随机存取存储器(RAM)、只读存储器(ROM)等。
可在硬盘、磁盘129、光盘131、ROM 124或RAM 125上存储多个程序模块,包括操作系统135、一个或多个应用程序136、其它程序模块137和程序数据138。用户可通过诸如键盘140和定点设备142等输入设备向个人计算机120中输入命令和信息。其它输入设备(未示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由耦合至系统总线的串行端口接口146连接至处理单元121,但也可以由其它接口,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器147或其它类型的显示设备也经由接口,诸如视频适配器148连接至系统总线123。除了监视器147之外,个人计算机通常包括诸如扬声器和打印机等其它外围输出设备(未示出)。图1的示例性系统还包括主机适配器155、小型计算机系统接口(SCSI)总线156以及连接到SCSI总线156的外置存储设备162。
个人计算机120可使用至一个或多个远程计算机,诸如远程计算机149的逻辑连接在网络化环境中操作。远程计算机149可以是另一个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,且通常包括上文相对于个人计算机120描述的许多或所有元件,尽管在图1中只示出存储器存储设备150。图1中所示逻辑连接包括局域网(LAN)151和广域网(WAN)152。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,个人计算机120通过网络接口或适配器153连接至LAN 151。当在WAN联网环境中使用时,个人计算机120通常包括调制解调器154或用于通过诸如因特网等广域网152建立通信的其它装置。或为内置或为外置的调制解调器154经由串行端口接口146连接到系统总线123。在网络化环境中,相对于个人计算机120所描述的程序模块或其部分可以存储在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
I/O过滤器
在诸如微软公司的WINDOWS XP操作系统等具有诸如WINDOWS NTFS(NT文件系统)、FAT、CDFS、SMB重定向器文件系统或WebDav文件系统等底层文件系统的当代操作系统中,可以在接收用户I/O(输入/输出)请求的I/O管理器和文件系统驱动程序之间插入一个或多个文件系统过滤器驱动程序。一般而言,过滤器驱动程序或“过滤器”是通过执行用户需要的各种文件相关计算任务来增强底层文件系统的进程或组件,这些任务包括诸如让文件系统I/O(请求和数据)通过反病毒软件、文件系统配额提供者、文件复制器、加密/压缩产品等任务。
例如,反病毒产品可提供监视去往和来自特定文件类型(.exe、.doc等)的I/O以查找病毒签名的过滤器,而文件复制产品可提供执行文件系统级镜像制作的过滤器。各种类型的文件系统过滤器的其他示例包括涉及系统还原、磁盘配额实施、打开文件的备份、已删除文件的恢复、文件加密等的过滤器。一般而言,通过安装文件系统过滤器,计算机用户能够以使得能够在不改变操作系统或文件系统驱动程序的情况下升级、替换、插入和移除每一个过滤器的方式来选择和实现所需文件系统特征。
现在转向图2,示出了其中可操作此处所描述的本发明的各方面的系统。组件包括一个或多个应用程序205、应用程序编程接口(API)210、输入/输出(I/O)管理器220、过滤器管理器230、文件系统240、以及一个或多个“传统”过滤器225、235和/或“小型过滤器”250-252。在该配置中,某些过滤器是与过滤器管理器230相关联的而其他过滤器不是。过滤器230与其他过滤器(例如,过滤器225和235)一起放置在栈中。
每一个应用程序205可能有时经由API 210例如通过函数或方法调用来向I/O管理器220发出文件系统请求。I/O管理器220然后可确定应发出哪个或哪些I/O请求来实现该文件系统请求并且沿着可包括过滤器225和/或235和过滤器管理器230的文件系统栈向下发送每一个I/O请求。I/O管理器220还可以在与该文件系统请求相关联的操作继续、完成、异常中止等时将数据返回至应用程序205。注意,所有过滤器都是可任选的,这表现在每一个这样的过滤器都不必对任何特定I/O请求进行操作。也应注意,过滤器管理器230本身是以提供用于写入文件系统过滤器的接口为目的的过滤器,并且被设计成允许同时使用传统过滤器和使用过滤器管理器230的小型过滤器两者。
如可以理解的,图2的过滤器中的至少某一些在实例化时向过滤器管理器230中的注册机制注册。原则上,这些已注册过滤器包括小型过滤器,并且有时被称为托管过滤器。出于效率考虑,每一个托管过滤器通常都只注册该过滤器可能感兴趣的I/O请求,诸如例如,创建、读取、写入、清除、关闭、重命名、设置信息、查询信息等。作为一个示例,加密过滤器可注册读取和写入I/O请求,但不注册其中数据无需加密或解密的其他I/O请求。
托管过滤器还可指定是否应向这一过滤器通知每一种类型的I/O请求的预回调(pre-callback)和后回调(post-callback)。预回调在与I/O请求相关联的数据从I/O管理器220向文件系统240传播时调用,而后回调在与I/O请求相关联的数据从文件系统240向I/O管理器220传播时在I/O请求的完成期间调用。
从每一个I/O请求中,过滤器管理器230可以按适于包括小型过滤器250-252的托管过滤器使用的统一格式来创建数据结构。在下文中,该数据结构有时被称为回调数据。过滤器管理器230然后可调用该回调数据或对其的引用并将其传递给已注册接收对过滤器管理器230接收到的该类型的I/O的回调的每一个过滤器。注册接收对过滤器管理器230接收到的该类型的I/O的回调的任何过滤器都可被称为已注册过滤器。
通常,过滤器管理器230将与特定类型的I/O请求相关联的回调数据以预定次序循序传递给每一个已注册过滤器。例如,如果小型过滤器250和252循序排序以接收对所有读I/O请求的回调,则在接收到读I/O请求之后,过滤器管理器230首先将该回调数据传递给过滤器250并且在过滤器250处理完该回调数据之后,过滤器管理器230然后将修改的(如果还有的话)该回调数据传递给过滤器252。
可以将过滤器附连到一个或多个卷。即,过滤器可被注册成被调用并接收与仅仅一个卷或与多于一个卷相关的I/O请求的回调数据。
过滤器可生成其自己的I/O请求,然后可将该I/O请求传递给其他过滤器。例如,反病毒过滤器可能希望在打开一文件之前读取这一文件。过滤器可阻止I/O请求进一步传播并且可报告诸如该I/O请求的成功或失败等状态码。过滤器可以将数据存储在存储器中并持久存储所存储的数据。一般而言,过滤器可被创建成执行可由内核模式或用户模式进程执行的任何一组动作,并且可以是反应性的,例如在行动之前等待直到接收到I/O请求,和/或主动的,例如相对于由I/O管理器220处理的I/O请求异步地发起I/O请求或执行其他动作。
如以上所阐明的,过滤器管理器230可以与诸如过滤器225和235等其他传统过滤器一起放在栈中。栈中的每一个传统过滤器225、235都可处理I/O请求并将请求传递给该栈中的另一过滤器或其他组件。例如,响应于从应用程序205接收到的读请求,I/O管理器220可以将I/O请求发送至过滤器225,后者进而可检查该I/O请求并确定这一I/O请求并非是感兴趣的,并且之后将该I/O请求未加改变地传递给过滤器管理器235。如果任何已注册小型过滤器对该I/O请求感兴趣,则过滤器管理器230然后可将回调数据传递给这一感兴趣的过滤器。在每一个感兴趣的已注册过滤器都检查了该回调数据并对其采取了行动之后,过滤器管理器230然后可将该I/O请求传递给过滤器235。过滤器235然后可基于该I/O请求执行某一动作并且然后可将该I/O请求传递给文件系统240。
文件系统240为该I/O请求服务并且将结果传递给过滤器235。通常,该结果按与该I/O请求行进的次序相反的次序传递,其在此将会首先到过滤器235,然后到可将回调数据发送至每一个感兴趣的已注册过滤器的过滤器管理器230,并且然后到过滤器225。每一个过滤器都可检查该结果并且或许在将该结果向上传递之前基于其执行一动作。
在主机上实例化的传统应用程序的副本
现在转向图3,可以看出计算设备10被安排成担当多个处理环境的主机。如以上所阐明的,这一主机10的示例包括为多个客户机14中的每一个提供工作空间12和计算服务的终端服务器等,并且还包括在其上运行多个虚拟机12的虚拟服务器等。在任一种情况下,主机10包括足够的处理能力来为每一个工作空间/虚拟机12(以下称为“工作空间12”)的每一个进程服务。同样,主机10包括足够的处理能力来执行必要的管理功能,包括内务管理、维护等。这一担当终端服务器、虚拟服务器等的主机10一般对相关公众是已知的或应是显而易见的,并因此除所提供的之外,无需在此详细阐明。因此,这一主机10可以是任何合适的主机,而不背离本发明的精神和范围。
以类似于以上所阐明的方式,图3的主机10的每一个工作空间12都可能已在其中实例化了一个或多个应用程序205。正常操作过程中的每一个应用程序205自己都可发出导致主机10处的一个或多个I/O请求的文件系统请求等,如以上结合图2所讨论的。例如,文件系统请求可以是打开文件、从这一打开的文件中读取或向其写入等。以类似的方式,每一个应用程序205都可发出各自导致不一定针对文件系统240的一个或多个I/O请求等的其他数据请求等。例如,该其他数据请求可以是打开诸如注册表等数据存储,从这一打开的数据存储中读取或向其写入等。如可以理解的,这一其他数据请求可以由与处理文件系统请求的相同的栈来处理,或者可以由另一个栈来处理,或者可以由另一结构或设备来处理。然而,出于本发明的目的,假设不管处理发出的请求的栈、结构或设备,这样的栈、结构或设备都包括过滤器或类似过滤器的组件。
无论如何,来自任何特定工作空间12的任何特定应用程序205的每一个文件系统或其他数据请求(以下称为“请求”)都是关于存储数据或将要存储数据的位置的,并且如由应用程序205发出的请求在这一应用程序205在其上实例化的主机10处处理。因此,这一主机10包括如图2所示的栈等,其具有用于处理应针对文件系统240、数据存储、注册表等的、对其指定位置的请求的适当的过滤器。
如以上所阐明的,每一个应用程序205都可以是能够以相对形式指定每一位置的相对较新的应用程序205,或者可以是只能够以绝对形式指定每一位置的相对较老的“传统”应用程序205。如应当理解的,以相对形式来指定位置的应用程序205期望主机10基于该相对形式、该应用程序、该应用程序的用户、客户机14和/或类似项目来导出该位置的绝对形式。这一主机20可以按任何适当的方式从该相对形式中导出绝对形式,而不背离本发明的精神和范围。假设主机20将采用适当的过滤器来从该相对形式中导出该位置的绝对形式,诸如或者结合图2或者结合文件系统管理器230、另一管理器(未示出)等来阐明的过滤器之一。这样做一般是已知的或应是显而易见的,并因此除所提供的之外,无需在此详细阐明。
I/O命令的位置的这一相对形式的一个示例是虚拟地址,其由应用程序发出并且由主机10的地址转换器来转换为物理地址(即,该位置的绝对形式)。位置的这一相对形式的另一示例是实际上是物理服务器上的数据集(即,该位置的绝对形式)的计算设备的映射的网络驱动器。位置的这一相对形式的又一示例是根据诸如%homedrive%、%homepath%、%systemroot%等通配符来描述的位置。在这一示例中,并且如应当理解的,%homedrive%\data\log\在事实上%homedrive%被确定为c:的情况下将会被解析成c:\data\log\。如可以理解的,以相对形式指定位置提供了允许基于诸如例如不同的用户、不同的客户机14等不同的情况来将该位置解析成不同的绝对形式的灵活性。
作为对照,像传统应用程序205那样以其绝对形式直接指定位置不提供允许基于不同的情况来不同地解析位置的灵活性。最值得注意的是,传统应用程序205在根据其绝对形式来指定位置方面的不灵活在这一传统应用程序205的多个副本在主机10上的不同的工作空间12中实例化,但是应用程序205的所有实例化的副本在执行数据请求时都引用相同的绝对位置的情况下存在问题。具体而言,并且如应当理解的,应用程序205的所有实例化的副本引用相同的绝对位置将会导致冲突和数据损坏。
具体而言,且如从图3中可以看出,如果传统应用程序205的每一个副本都被编程为向在诸如C:\DATA\等主机10的绝对位置处的文件16写入特定类型的数据,则第一工作空间12中的传统应用程序205的第一副本将向在这一绝对位置处的这一文件16写入这一数据,第二工作空间12中的传统应用程序205的第二副本将向在相同的绝对位置处的相同的文件16写入这一数据,以此类推。如应该很明显的,且假设传统应用程序205的每一个副本都不知道该情形,则在主机10的相同的位置处的相同的文件16无意间从传统应用程序205的多个副本接收数据将导致这一文件变为不可救药地被来自传统应用程序205的两个副本的冲突的数据损坏。
扇操作过滤器(fanning filter)
于是,在本发明的一个实施例中,并且在传统应用程序205的多个副本在主机10的相应工作空间12中实例化并且所有副本在执行数据请求时都引用在相同的绝对位置处的相同的文件16的情况下,来自传统应用程序205的每一个副本的数据请求都被扇出到在唯一的、非冲突位置处的文件16。具体而言,现在转向图4,在本发明中,在图2的栈等中提供扇操作过滤器18,其中该扇操作过滤器18用于将每一个这样的数据请求远离其绝对位置20重定向,并且还指定一相应的唯一位置26。注意,如图4所示的扇操作过滤器18直插在栈中并且是唯一示出的过滤器,但是扇操作过滤器18也可伴有其他过滤器并且其自身可以在栈的主干的外部,所有这些都不背离本发明的精神和范围。因此,扇操作过滤器18可被实现为传统过滤器或小型过滤器。
在本发明的一个实现中,事实上不应由传统应用程序205使用的主机10的绝对位置20通过随其一起包括诸如例如重解析点24等重定向设备或将该重定向设备附加到这一绝对位置20来这样标明。如已知的或应显而易见的,这一重解析点24或其他重定向设备本质上是指定应采用的替换位置22而不是所讨论的绝对位置20的指令。通常,遇到并采用重解析点24对于发出导致遇到这一重解析点24的数据请求的应用程序205而言是透明的。例如,如果作为打开在绝对位置20处的文件16的数据请求的一部分遇到重解析点,则返回给这一数据请求的是句柄,应用程序205假设该句柄是对于在绝对位置20处的文件16的,但实际上该句柄可以是对于在包括如在上述绝对位置20处的相应的重解析点24中所引用的替换位置22的任何位置处的文件16的。
于是,本质上,在在绝对位置20处的重解析点24的帮助下,本发明的扇操作过滤器18“翻新”传统应用程序205以使得主机10处的传统应用程序205的每一个副本都具备基于重解析点24中所阐明的替换位置22的唯一位置26。此处需注意,这一唯一位置26可基于用于区分传统应用程序205的每一个副本的任何适当的特性来选择而不背离本发明的精神和范围。例如,唯一位置26可基于与传统应用程序205的每一个副本唯一地相关联的ID来选择,其中该唯一ID可以是副本的ID、副本用户的ID、相应的客户机14的ID等。
在本发明的一个实施例中,假设重解析点24中所阐明的替换位置22是以分层形式定义的。例如,替换位置22可以是目录、分支等,其可进而可以是另一目录的子目录或另一分支的子分支,并且其本身可包括一个或多个子目录或子分支(视情况而定)。于是,在这一实施例中,对于传统应用程序的任何特定副本的扇操作过滤器18基于由该副本指定的绝对位置20的重解析点24中所指定的替换位置22,并且还基于与该副本相关联的唯一ID来确定其唯一位置26,其中该唯一ID用于将替换位置22的子目录或子分支指定为该副本的唯一位置26。
例如,如果传统应用程序205指定其特定文件16将被存储在诸如C:\DATA等绝对位置20处,并且这一绝对位置20具有将F:\SHARE指定为替换位置22的重解析点24,并且如果副本的唯一ID被指定为这一副本的用户的用户ID USER_A,则扇操作过滤器将组合作为替换位置22的F:\SHARE和作为该副本的唯一ID的USER_A以产生作为将用于存储传统应用程序205的文件16的唯一位置26的F:\SHARE/USER_A。此处需注意,情况可能是绝对位置20的重解析点24可能将绝对位置20指定为替换位置22,在这种情况下,唯一位置26将会是该绝对位置20的子目录然而,在任一种情况下,传统应用程序205的每一个副本都具备存储其文件16的唯一的且不同的位置26,其中每一个唯一位置26都是从替换位置22中扇出的,且不应引起各副本之间的冲突。
可以理解,为了实现本发明,被主机10的每一个传统应用程序205引用的该主机10的每一个绝对位置20都需要相应的重解析点24等。创建每一个这样的重解析点24等并将其附加到相应的绝对位置20可以按任何适当的方式来执行而不背离本发明的精神和范围。例如,主机10可包括或可访问用于在必要时创建并附加每一个重解析点24的适当的管理或维护实用程序。
现在转向图5,可以看出在本发明的一个实施例中,主机10处的I/O栈等中的扇操作过滤器18使用由在该主机10处实例化的传统应用程序205的副本引用的绝对位置20的重解析点24按以下方式来确定该传统应用程序205的副本的相应的唯一位置26。最初,假设传统应用程序205发出对于在绝对位置20(例如,C:\DATA)处的文件16(例如,INFO.TXT)的数据请求(步骤501),并且作为服务该数据请求的一部分,将通过如图4所示的I/O栈处的适当的(第一)I/O请求来在该绝对位置20处打开文件16。因此,该第一I/O请求可以从I/O管理器220经由扇操作过滤器18向文件系统240传递。
通常,文件系统240在接收到打开在绝对位置20处的文件16的第一I/O请求时就注意到该绝对位置20具有附加的重解析点24,并因此不兑现这一第一I/O请求,而是返回一重解析响应(步骤503)。通常,这一重解析响应具有出错响应的本质,并且无论如何都将标识重解析点24和/或将包括包含替换位置(例如,C:\DATA\REPARSE)在内的该重解析点24的数据。
重要的是,在本发明的一个实施例中,扇操作过滤器18是已注册的,以使得来自文件系统240的重解析响应被传递给这一扇操作过滤器18。因此,在遇到该重解析响应(步骤505)时,扇操作过滤器18标识其中的替换位置22(步骤507)并且还标识发起该数据请求的传统应用程序205的副本的唯一ID(例如,上述USER_A)(步骤509)。注意,传统应用程序205的副本的这一唯一ID可以按任何适当的方式来标识而不背离本发明的精神和范围。例如,扇操作过滤器可基于由主机10维护的数据来访问该唯一ID。
无论如何,有了所标识的替换位置22和所标识的唯一ID,扇操作过滤器将唯一位置26确定为所标识的替换位置22的子目录,其中该子目录的名称是所标识的唯一ID(例如,C:\DATA\REPARSE\USER_A)(步骤511),并将这一确定的唯一位置26传递回给I/O管理器作为忽略该第一I/O请求并改为基于该第一I/O请求发出第二I/O请求的请求的一部分(步骤513)。如现在可以理解的,第二I/O请求实质上与第一I/O请求相同,不同之处在于文件将在所确定的唯一位置26而不是绝对位置20或替换位置22处打开。
如应当理解的,基于第二I/O请求,并且假设不存在不寻常情况,该第二I/O请求从I/O管理器传递到文件系统240(步骤515),其中文件系统240响应于该请求实际上打开在唯一位置26处的文件16(步骤517),并且将对于在该唯一位置26处打开的文件16的句柄等经由I/O管理器220返回给做出请求的应用程序205。因此,应用程序205然后可使用该句柄来访问在该唯一位置26处的文件16(步骤519)。
值得注意的是,更改文件16的位置的过程对于传统语言程序205而言是完全透明的。即,尽管文件16被请求在绝对位置20处打开但改为在唯一位置26处打开,但是应用程序205在接收对于文件16的句柄时只关心该句柄实际上访问所打开的文件16。因此,虽然文件16在唯一位置26而不是如传统应用程序205所请求的绝对位置20处打开,但这一传统应用程序205并没有受到不利的影响。更重要的是,通过使用唯一位置26而不是绝对位置20,避免了主机处的传统应用程序205的多个副本之间的冲突,并且文件16中的数据不会被损害,因为传统应用程序205的每一个副本都使用其文件16的单独的位置。
在至此所阐明的本发明中,扇操作过滤器18使用如从文件系统240接收到的重解析点24等来重定向打开文件16的请求。然而,注意,在至少某些系统中文件系统240不能够使用这一重解析点24。也应注意,在至少某些系统中请求不是被定向到文件系统240而是被定向到诸如数据存储、注册表等替换数据源。在任一种情况下,并且在本发明的一替换实施例中,重解析点24并不是从文件系统240等获得的。相反,在这一替换实施例中,扇操作过滤器18访问具有与可从重解析点24处获得的信息相类似的信息的映射转换表等。因此,并且如应当理解的,对于若干绝对位置20中的每一个而言,映射转换表等将包括相应的相对位置22,并且扇操作过滤器18将在打开每一个文件16之前参考该映射转换表以确定是否将要使用替换位置22而不是指定的绝对位置20。
结论
实现结合本发明执行的过程所需的编程相当直接,且应对相关编程公众是显而易见的。因而,这样的编程不附在此。因此,可采用任何特定的编程来实现本发明,而不背离其精神和范围。
在以上描述中,可以看到,本发明包括当主机10处的传统应用程序205的多个副本各自向被指定为绝对形式的位置20写入时防止冲突的新的且有用的扇操作过滤器18。主机10处的扇操作过滤器18实际上将来自应用程序205的每一个副本的数据重定向到特定于这一副本、特定于使用该副本的用户、特定于这一用户所在的终端等的唯一位置26。
应当理解,可对上述实施例作出改变而不脱离其发明概念。仅作为一个示例,虽然本发明主要是按照在文件系统位置处打开的文件16来阐明的,但本发明同样适用于在文件系统位置处打开的子目录或目录。类似地,本发明同样适用于通过适当的栈等在注册表中打开的注册表项、通过适当的栈等在数据存储中打开的数据存储条目等等。从而应理解,本发明不限于所公开的具体实施例,而是旨在覆盖落入如由所附权利要求书定义的本发明的精神和范围内的修改。

Claims (20)

1.一种关于其上具有传统应用程序的多个实例化的副本的主机计算设备的方法,所述传统应用程序的每一个副本都处于不同的工作空间中并且具有与其相关联的唯一ID,所述传统应用程序的每一个副本都至少可能发出打开在所述主机处的传统应用程序的所有副本所共有的所述主机的绝对位置处的文件的数据请求,所述方法用于响应来自具有特定唯一ID的所述传统应用程序的特定副本的数据请求并且包括:
确定所述数据请求的绝对位置具有与其相对应的重定向设备,所述重定向设备指定将要代替所述绝对位置使用的所述主机的替换位置;
基于所述重定向设备不兑现所述数据请求;
基于所述重定向设备的替换位置以及所述传统应用程序的特定副本的特定唯一ID来确定所述主机的唯一位置;以及
重新发出打开在所述主机的唯一位置处的文件的数据请求,
由此对于在所述主机处的所述传统应用程序的每一个不同的实例化的副本而言,来自该副本的数据请求并非被定向到相同的绝对位置,而是到对应于所述副本的唯一位置。
2.如权利要求1所述的方法,其特征在于,包括:
在I/O管理器处生成对应于所述数据请求的第一I/O请求,所述第一I/O请求包括来自所述数据请求的所述文件及其绝对位置的标识;
在文件系统处接收所生成的第一I/O请求并在所述文件系统处确定所接收到的第一I/O请求的绝对位置具有与其相对应的重定向设备,所述重定向设备指定将代替所述绝对位置使用的所述主机的替换位置;
在所述文件系统处基于对应于所接收到的第一I/O请求的绝对位置的所述重定向设备不兑现所接收到的第一I/O请求,并且返回包括所述重定向设备的替换位置的重定向响应;
在扇操作过滤器处接收返回的重定向响应,在所述扇操作过滤器处标识所接收到的重定向响应中的替换位置,并且还标识发出所述数据请求的所述传统应用程序的特定副本的特定唯一ID;
基于所标识的替换位置和所标识的唯一ID在所述扇操作过滤器处确定所述主机的唯一位置,并且将所确定的唯一位置传递给I/O管理器作为忽略所述第一I/O请求并改为基于所述第一I/O请求生成第二I/O请求的请求;以及
在所述I/O管理器处生成包括所述文件和所述唯一位置的标识的第二I/O请求;
由此对于在所述主机处的所述传统应用程序的每一个不同的实例化的副本而言,来自该副本的数据请求并非被定向到相同的绝对位置,而是到对应于所述副本的唯一位置。
3.如权利要求2所述的方法,其特征在于,包括在所述扇操作过滤器处将所述唯一位置确定为所标识的替换位置的分支,所述分支具有所标识的唯一ID作为其名称。
4.如权利要求2所述的方法,其特征在于,还包括在所述文件系统处接收所生成的第二I/O请求并在所述文件系统处确定所接收到的第二I/O请求的唯一位置不具有与其相对应的任何重定向设备,并基于该确定在所述文件系统处通过打开在所述第二I/O请求中所指定的所述主机的唯一位置处的文件来兑现所接收到的第二I/O请求,并将对于在所述唯一位置处打开的文件的句柄返回给所述传统应用程序的特定副本。
5.如权利要求4所述的方法,其特征在于,还包括所述应用程序的特定副本使用所述句柄来访问在所述唯一位置处的文件。
6.如权利要求1所述的方法,其特征在于,包括将所述唯一位置确定为所标识的替换位置的分支,所述分支具有所标识的唯一ID作为其名称。
7.如权利要求1所述的方法,其特征在于,还包括接收重新发出的数据请求并确定所述重新发出的数据请求的唯一位置不具有与其相对应的任何重定向设备,并基于该确定通过打开在所述重新发出的数据请求中所指定的所述主机的唯一位置处的文件来兑现所述重新发出的数据请求,并将对于在所述唯一位置处打开的文件的句柄返回给所述传统应用程序的特定副本。
8.如权利要求7所述的方法,其特征在于,还包括所述应用程序的特定副本使用所述句柄来访问在所述唯一位置处的文件。
9.如权利要求1所述的方法,其特征在于,包括将所请求的所述文件的位置从所述绝对位置更改成所述唯一位置而不向所述传统应用程序的特定副本通知这一更改。
10.如权利要求1所述的方法,其特征在于,包括确定所述数据请求的绝对位置具有与其相对应的重定向设备,所述重定向设备选自附加到所述绝对位置的重解析点以及如从转换表获得的对应于所述绝对位置的重定向信息。
11.一种关于其上具有传统应用程序的多个实例化的副本的主机计算设备的方法,所述传统应用程序的每一个副本都处于不同的工作空间中并且具有与其相关联的唯一ID,所述传统应用程序的每一个副本都至少可能发出访问在所述主机处的传统应用程序的所有副本所共有的所述主机的绝对位置处的数据的数据请求,所述方法用于响应来自具有特定唯一ID的所述传统应用程序的特定副本的数据请求并且包括:
确定所述数据请求的绝对位置具有与其相对应的重定向设备,所述重定向设备指定将要代替所述绝对位置使用的所述主机的替换位置;
基于所述重定向设备不兑现所述数据请求;
基于所述重定向设备的替换位置以及所述传统应用程序的特定副本的特定唯一ID来确定所述主机的唯一位置;以及
重新发出访问在所述主机的唯一位置处的数据的数据请求,
由此对于在所述主机处的所述传统应用程序的每一个不同的实例化的副本而言,来自该副本的数据请求并非被定向到相同的绝对位置,而是到对应于所述副本的唯一位置。
12.如权利要求11所述的方法,其特征在于,包括:
在I/O管理器处生成对应于所述数据请求的第一I/O请求,所述第一I/O请求包括来自所述数据请求的所述数据及其绝对位置的标识;
在数据存取系统处接收所生成的第一I/O请求并在所述数据存取系统处确定所接收到的第一I/O请求的绝对位置具有与其相对应的重定向设备,所述重定向设备指定将代替所述绝对位置使用的所述主机的替换位置;
在所述数据存取系统处基于对应于所接收到的第一I/O请求的绝对位置的所述重定向设备不兑现所接收到的第一I/O请求,并且返回包括所述重定向设备的替换位置的重定向响应;
在扇操作过滤器处接收返回的重定向响应,在所述扇操作过滤器处标识所接收到的重定向响应中的替换位置,并且还标识发出所述数据请求的所述传统应用程序的特定副本的特定唯一ID;
在所述扇操作过滤器处基于所标识的替换位置和所标识的唯一ID确定所述主机的唯一位置,并且将所确定的唯一位置传递给I/O管理器作为忽略所述第一I/O请求并改为基于所述第一I/O请求生成第二I/O请求的请求;以及
在所述I/O管理器处生成包括所述数据和所述唯一位置的标识的第二I/O请求权;
由此对于在所述主机处的所述传统应用程序的每一个不同的实例化的副本而言,来自该副本的数据请求并非被定向到相同的绝对位置,而是到对应于所述副本的唯一位置。
13.如权利要求12所述的方法,其特征在于,包括在所述扇操作过滤器处将所述唯一位置确定为所标识的替换位置的分支,所述分支具有所标识的唯一ID作为其名称。
14.如权利要求12所述的方法,其特征在于,还包括在所述数据存取系统处接收所生成的第二I/O请求并在所述数据存取系统处确定所接收到的第二I/O请求的唯一位置不具有与其相对应的任何重定向设备,并基于该确定在所述数据存取系统处通过开放对在所述第二I/O请求中所指定的所述主机的唯一位置处的数据的访问来兑现所接收到的第二I/O请求,并将对于在所述唯一位置处的数据的句柄返回给所述传统应用程序的特定副本。
15.如权利要求14所述的方法,其特征在于,还包括所述应用程序的特定副本使用所述句柄来访问在所述唯一位置处的数据。
16.如权利要求11所述的方法,其特征在于,包括将所述唯一位置确定为所标识的替换位置的分支,所述分支具有所标识的唯一ID作为其名称。
17.如权利要求11所述的方法,其特征在于,还包括接收重新发出的数据请求并确定所述重新发出的数据请求的唯一位置不具有与其相对应的任何重定向设备,并基于该确定通过开放对在所述重新发出的数据请求中所指定的所述主机的唯一位置处的数据的访问来兑现所述重新发出的数据请求,并将对于在所述唯一位置处的数据的句柄返回给所述传统应用程序的特定副本。
18.如权利要求17所述的方法,其特征在于,还包括所述应用程序的特定副本使用所述句柄来访问在所述唯一位置处的文件。
19.如权利要求11所述的方法,其特征在于,包括将所请求的所述数据的位置从所述绝对位置更改成所述唯一位置而不向所述传统应用程序的特定副本通知这一更改。
20.如权利要求11所述的方法,其特征在于,所请求的数据处于数据存储和注册表中的一个中,所述方法包括确定所述数据请求的绝对位置具有与其相对应的重定向设备,所述重定向设备是如从转换表获得的对应于所述绝对位置的重定向信息。
CNA2007800295928A 2006-08-11 2007-08-07 重定向来自传统应用程序的实例化的可能冲突的i/o命令的主计算机i/o过滤器 Pending CN101501673A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/503,460 US20080040404A1 (en) 2006-08-11 2006-08-11 Host computer I/O filter re-directing potentially conflicting I/O commands from instantiations of legacy application
US11/503,460 2006-08-11

Publications (1)

Publication Number Publication Date
CN101501673A true CN101501673A (zh) 2009-08-05

Family

ID=39052113

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007800295928A Pending CN101501673A (zh) 2006-08-11 2007-08-07 重定向来自传统应用程序的实例化的可能冲突的i/o命令的主计算机i/o过滤器

Country Status (4)

Country Link
US (1) US20080040404A1 (zh)
KR (1) KR20090048577A (zh)
CN (1) CN101501673A (zh)
WO (1) WO2008021080A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8918427B1 (en) 2006-12-29 2014-12-23 Symantec Operating Corporation Virtualization of file input/output operations
US8380808B2 (en) * 2008-11-24 2013-02-19 Royal O'Brien Dynamic medium content streaming system
US9135020B2 (en) * 2011-09-30 2015-09-15 Ncr Corporation Correlation of resources

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9314460D0 (en) * 1993-07-13 1993-08-25 Int Computers Ltd Computer systems integration
US5745752A (en) * 1994-12-13 1998-04-28 Microsoft Corporation Dual namespace client having long and short filenames
US6216101B1 (en) * 1996-04-01 2001-04-10 Openconnect Systems Incorporated Server and terminal emulator for persistent connection to a legacy host system with client token authentication
US6052685A (en) * 1997-08-13 2000-04-18 Mosaix, Inc. Integration of legacy database management systems with ODBC-compliant application programs
US6026402A (en) * 1998-01-07 2000-02-15 Hewlett-Packard Company Process restriction within file system hierarchies
US6145030A (en) * 1998-03-27 2000-11-07 Intel Corporation System for managing input/output address accesses at a bridge/memory controller
US6208991B1 (en) * 1998-08-26 2001-03-27 International Business Machines Corporation Dynamic file mapping for network computers
US6782536B2 (en) * 1999-06-08 2004-08-24 Unisys Corporation System and method for discovering host-based application assets for the development of business-centric software components
US7150018B2 (en) * 2000-02-16 2006-12-12 Microsoft Corporation Method and system for deterministic ordering of software modules
US6898710B1 (en) * 2000-06-09 2005-05-24 Northop Grumman Corporation System and method for secure legacy enclaves in a public key infrastructure
US6782540B1 (en) * 2000-07-31 2004-08-24 Sprint Communications Company, L.P. COBOL/natural copybook to Java conversion Wizard
US20030046289A1 (en) * 2001-09-05 2003-03-06 Infravio Meta browsing with external execution of third party services
US6877011B2 (en) * 2001-10-10 2005-04-05 Sun Microsystems, Inc. System and method for host based storage virtualization
US7036127B2 (en) * 2001-10-11 2006-04-25 International Business Machines Corporation Legacy CORBA name space integration using web application servers
US20030187849A1 (en) * 2002-03-19 2003-10-02 Ocwen Technology Xchange, Inc. Management and reporting system and process for use with multiple disparate data bases
US7444317B2 (en) * 2002-06-28 2008-10-28 Microsoft Corporation System and method for managing file names for file system filter drivers
US6947940B2 (en) * 2002-07-30 2005-09-20 International Business Machines Corporation Uniform name space referrals with location independence
US20050010610A1 (en) * 2003-07-08 2005-01-13 Konica Minolta Business Technologies, Inc. File management system, file management apparatus and image forming apparatus
US20050091535A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Application identity for software products
US7680758B2 (en) * 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US20070226519A1 (en) * 2006-03-22 2007-09-27 Lower Level Software Llc System, method, and computer-readable medium for controlling data flow in a network

Also Published As

Publication number Publication date
KR20090048577A (ko) 2009-05-14
US20080040404A1 (en) 2008-02-14
WO2008021080A1 (en) 2008-02-21

Similar Documents

Publication Publication Date Title
US10528585B2 (en) ETL tool interface for remote mainframes
US10938668B1 (en) Safe deployment using versioned hash rings
CN102938039B (zh) 针对应用的选择性文件访问
CN101248414B (zh) 用户数据配置文件名字空间
US20070239800A1 (en) Update manager for database system
US20200310849A1 (en) Reducing request latency in a multi-tenant web service host
US20020103779A1 (en) Migration of computer personalization information
CN102754073B (zh) 用于虚拟化的扩展点声明性注册的方法和系统
US20160119285A1 (en) System and method for compliance based automation
US20070168350A1 (en) Management of non-traditional content repositories
US11861029B2 (en) Workflow execution state variables
CN109684028B (zh) 一种操作系统与用户数据分离的方法、装置及设备
KR20070054942A (ko) 어플리케이션 상태 정보 수집 및 복원 방법 및 시스템
CN101641688B (zh) 可定义应用程序助理
US9317396B2 (en) Information processing apparatus including an execution control unit, information processing system having the same, and stop method using the same
US20070174289A1 (en) Management of non-traditional content repositories
CN102135895A (zh) 系统升级方法及系统
US20090307680A1 (en) Side-by-side driver installation
US10514940B2 (en) Virtual application package reconstruction
CN101501673A (zh) 重定向来自传统应用程序的实例化的可能冲突的i/o命令的主计算机i/o过滤器
US20040049544A1 (en) In-context launch management method, system therefor, and computer-readable storage medium
US10129213B2 (en) System and method for compliance based automation
JP7387116B2 (ja) データの送信および照会時の費用を最小化するためのデータアーカイビング方法およびシステム
JP2003202990A (ja) プログラム管理起動システムとプログラム管理起動方法およびプログラムと記録媒体
Cohen et al. Google Compute Engine: Managing Secure and Scalable Cloud Computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090805