本申请根据美国法典第35章第119条要求于2016年5月24日提交的题为“systemsandmethodsforaccessingremotefiles(用于访问远程文件的系统和方法)”的临时专利申请序号62/340,761的权益和优先权,其以全部内容通过引用并入本文。
本系统和方法一般涉及通过消除或减少支持对被远程存储在文件服务器或网络共享上的任何大小的文件上的操作所需要的网络流量来改进计算机系统。
背景技术:
诸如
因此,需要使得用户能够更有效地从单个cifs共享访问诸如ost文件之类的大文件的系统和方法。还需要允许vdi或rdsh系统的多个用户以改进的性能访问单个cifs共享的系统和方法。
技术实现要素:
本系统和方法一般涉及消除或减少支持对被远程存储在文件服务器或网络共享上的任何大小的文件上的操作所需要的网络流量。更具体地,本系统和方法涉及以这样的方式封装远程文件:使得文件对于本地操作系统和任何本地应用而言看起来像是本地驻留的,因此克服了与访问单个网络共享(例如,cifs共享)的多个用户和远程访问大文件的单个用户相关联的一些性能问题。
远程桌面虚拟化已经改变了大规模计算系统的分发和管理方式。通常,远程桌面虚拟化允许软件执行发生在远程服务器上,而客户端设备(例如,pc/膝上型电脑、智能手机、平板电脑等)提供输入以用于对软件进行导航。在远程桌面虚拟化环境中,用户可以访问计算设备并且被呈现看起来像是由该特定计算设备递送的桌面或工作站环境;然而,该桌面或工作站环境是由远程服务器提供服务,并且特定计算设备仅提供用于控制该环境的输入。
由远程桌面虚拟化带来的一个挑战是网络拥塞。例如,被广泛使用的企业软件
这些问题的一个众所周知的先前的解决方案是通过增加带宽或实现更高级别的服务器硬件诸如ssd(固态驱动器)和高性能nas(网络附加存储装置)来物理地支撑网络。除了成本高昂之外,这些解决方案并没有解决问题的根源,而只是试图修补它。另一种解决方法包括将.ost文件重定向到网络共享上的用户主驱动器,从而将大文件大小的负担放在主驱动器而不是虚拟桌面上。此方案可以补救一些存储问题,但无法为用户提供在本地保存.ost时所实现的优化的计算性能。
如上所提及,本系统和方法旨在克服上述挑战并改进用于远程访问大文件的计算系统和技术。特别地,根据特定实施例,本公开涉及一种用于通过消除或减少网络流量来改进计算功能性的计算机实现的方法,该方法包括:1)将vhd文件封装在虚拟硬盘驱动器中,文件与要在用户的计算设备上运行的程序相关联,其中用户的计算设备正在运行操作系统;2)将虚拟硬盘驱动器附加到用户的计算设备;3)确定要被改变的目标文件,目标文件与要在用户的计算设备上运行的程序相关联;4)改变目标文件的路径,使得路径对操作系统而言是隐藏的;5)在从操作系统接收到运行程序的指示时,引导操作系统访问vhd文件。
根据至少一个实施例,本公开涉及一种用于通过消除或减少网络流量来改进计算功能性的系统,该系统包括存储操作系统的存储器和用于执行操作系统的计算机实现的指令的至少一个处理器,其中操作系统被配置为通过执行以下步骤来实现服务:1)接收附加包括vhd文件的虚拟硬盘驱动器的请求,vhd文件与要在用户的计算设备上运行的程序相关联;2)将虚拟硬盘驱动器附加到用户的计算设备;3)确定要被改变的目标文件,目标文件与要在用户的计算设备上运行的程序相关联;4)改变目标文件的路径,使得路径对操作系统而言是隐藏的;5)在从操作系统接收到运行程序的指示时,引导操作系统访问vhd文件。
从对优选实施例和结合下面的附图所采用的实施例的以下详细书面描述中,所要求保护的(多个)发明的这些和其他实施例、特征和益处将变得明显,但是可以在不脱离本公开的新颖概念的精神和范围的情况下对其进行变化和修改。
附图说明
图1是根据本公开的一个实施例的示例性架构。
图2是根据本公开的一个实施例的示例性过程的流程图。
图3是根据本公开的一个实施例的示例性过程的流程图。
图4是根据本公开的一个实施例的示例性过程的流程图。
图5是根据本公开的一个实施例的示例性过程的流程图。
图6是根据本公开的一个实施例的示例性过程的流程图。
具体实施方式
出于促进对本公开的原理的理解的目的,现在将对附图中所图示的实施例进行参考,并且将使用特定的语言来描述这些实施例。然而,应理解的是,不因此意图限制本公开的范围;本发明所涉及领域的技术人员通常会想到所描述或说明的实施例的任何改变和进一步修改、以及如其中所说明的本公开的原理的任何进一步的应用。范围的所有限制应该如权利要求中所表达的那样以及根据权利要求来确定。
此外,一个或多个参考文献通过引用并入本文。任何通过引用并入的内容并非旨在给出特定术语的确定性或限制性含义。在术语冲突的情况下以本文档为准。
概览
本申请通过引用并入于2014年7月30日提交的题为“managingingconfigurationsofcomputingterminals(管理计算终端的配置)”的美国专利申请序号14/446,983,其公开内容通过引用并入,如同其公开内容在本文中被完全阐述一样。
本公开的实施例一般涉及消除或减少支持对被远程存储在文件服务器或网络共享上的任何大小的文件上的操作所需要的网络流量。更具体地,本系统和方法涉及以这样的方式封装远程文件:使得文件对于本地操作系统和任何本地应用而言看起来像是本地驻留的,因此克服了与访问单个网络共享(例如,cifs共享)的多个用户和/或远程访问大文件的单个用户相关联的一些性能问题。
根据特定实施例,本文所公开的系统和方法涉及在用户的计算机上运行并对用户的系统进行特定改变的服务,将操作系统引导到与本地文件或cifs共享相对的远程文件。例如,诸如
在特定实施例中,例如,本文所公开的服务将用户的计算设备上的现有文件夹“c:\users\<username>\appdata\local\microsoft\outlook”重命名为“c:\users\<username>\appdata\local\microsoft\outlook.hold”。在该实施例中,该服务然后在c:\users\<username>\appdata\local\microsoft\outlook处创建联结,该联结指向具有封装的
以下将进一步详细讨论上述过程的各个方面。在讨论示例性过程之前,我们将在下面讨论示例性架构和服务组件。
示例性架构
如本文所讨论的,本系统和方法涉及以这样的方式封装远程文件:以使得文件对于本地操作系统和本地驻留的任何本地应用而言看起来像是本地驻留的。在特定实施例中,在操作系统环境内实现服务以执行该功能性。在一些实施例中,服务拦截诸如输入/输出(10)请求或注册表请求之类的请求,基于在运行时期间所拦截的请求来评估规则,和/或基于规则评估来执行动作,诸如传递请求、重定向请求、修改请求、隐藏资源或执行其他操作。
该服务可以在终端的文件系统过滤驱动程序和注册表过滤驱动程序中的一个或多个中被实现为终端配置管理服务。在一些实施例中,终端配置管理服务被实现为文件系统过滤驱动程序和注册表过滤驱动程序(在本文中被称为“文件和注册表过滤驱动程序”(frxdrv)),或者被配置为具有其功能性。
图1是典型的基于windowsnt的操作系统结构100的实施例的简化框图,包括win32过程102(规则/分配编辑器104、frx.exe106和frx服务108)、ntdll.dll110、io管理器112、配置管理器(注册表)114、注册表过滤驱动程序116、文件系统过滤驱动程序122和文件系统驱动程序124。win32过程102是在windows终端上运行的应用和服务。win32过程通过调用win32api(未被示出)(诸如createfile、regopenkey等)来发起对文件系统驱动程序122(其与底层文件系统交互)和配置管理器114的调用。win32api层依次调用在ntdll.dll110中的对应的用户模式ntapi(未被示出),其提供本机windowsntapi集。例如,ntdll.dll110包括用户模式windowsntapi,如ntcreatefile、ntopenkey等。用户模式ntapi通常与内核模式api一对一匹配。例如,ntcreatefile映射到zwcreatefileapi。
在一些实施例中,可以提供规则/分配编辑器工具104以促进创建和修改规则和分配,规则/分配编辑器工具104可以被实现为程序模块、插件、脚本或任何其他可执行的win32过程。在一些实施例中,规则/分配编辑器工具104可以是基于gui的工具。备选地或附加地,可以提供命令行组件frx.exe106,以用于创建和添加规则/分配、删除规则/分配、触发由frxdrv118对规则/分配文件120的重新加载等。可以在执行frxdrv118的计算终端上提供和/或可以在管理员终端上提供这些组件,使得可以将规则/分配文件120分发给任何数目的计算终端。
还可以提供文件和注册表过滤服务(frx服务)108以与frxdrv118结合进行操作。可以将frx服务108实现为可执行程序模块或其他程序模块。该服务可以被配置为接受来自命令行组件frx.exe106和/或规则/分配编辑器工具104的命令,将规则/分配文件120从用户格式编译为驱动程序格式,监视(多个)规则/分配文件120的更新出现,并在检测到此类更新时通知frxdrv118。如此,可以在执行frxdrv118的计算终端上和/或在管理员终端上提供frx服务108。例如,frx服务108可以确定已经创建了新的规则/分配文件120,编译那些文件并将它们存储在frxdrv118可访问的文件夹或其他位置中。frx服务108然后可以通知frxdrv118存在要处理的新规则/分配文件120。
在各种实施例中,io管理器112获取被传递给特定功能的参数并创建对应的中断请求分组(irp)。在特定实施例中,irp是包含关于将被传递到操作系统内的较低组件的请求的所有信息的存储器结构。在一些实施例中,文件系统过滤驱动程序(fsfd)122是被加载并插入到io管理器112和文件系统驱动程序124之间的通信路径中的内核组件。fsfd122在io到达文件系统驱动程序124之前基本上“拦截”操作系统内的所有io。fsfd122还可以主动地修改io请求或完成io请求本身。存在几类fsfd122,如防病毒、取消删除、备份、虚拟化、活动监视等。可以将fsfd122实现在堆栈中,其中在它们之中具有可配置的优先级。在一些配置中(例如,在windows7和稍后版本的windowsnt操作系统中),可以将fsfd122实现为过滤管理器,其提供“微过滤驱动程序”的创建和管理,其可以执行诸如防病毒、取消删除、备份、虚拟化、活动监控等此类的功能。
根据一些实施例,配置管理器114实现了注册表并处理所有注册表api调用并将注册表信息存储在多个数据库文件中。在至少一个实施例中,配置管理器114提供允许实现注册表过滤驱动程序116的过滤接口。在特定实施例中,注册表过滤驱动程序116是向配置管理器114注册以拦截、处理和可能修改注册表调用的内核组件。因此,注册表过滤驱动程序116可以被配置为注册表10处理程序。
在所示的实施例中,frxdrv118被配置为执行关于图2至图6和其他地方所描述的功能性,被实现在fsfd122堆栈和注册表过滤驱动程序116堆栈中。例如,可以将frxdrv118的部分实现为fsfd122(或微型过滤驱动程序),并且可以将部分实现为注册表过滤驱动程序116。frxdrv118的其他实现对于本领域技术人员也将是明显的。
因此,由管理器112处理的io请求和由配置管理器114处理的注册表io请求可以被frxdrv118拦截和处理。在各种实施例中,如将更详细地描述的,由frxdrv118提供的功能性允许管理员“隐藏”目录、文件、注册表键、注册表值或其他资源(例如,
frxdrv118可以被配置为针对不同用户隐藏不同资源或资源类型,例如基于访问授权凭证或被分配给用户或用户群组或与用户或用户群组相关联的其他标准。例如,可以针对不同用户或不同用户群组隐藏不同资源集,因此每个用户可以具有相同计算终端的显著不同的视图。在一些实施例中,frxdrv118可以被配置为针对不同过程、线程、会话等或在不同过程、线程、会话等期间隐藏不同资源或资源类型。在一些实施例中,frxdrv118可以被配置为基于诸如时间表、用户和/或终端的位置、网络访问等之类的触发事件而开始或停止隐藏某些资源、改变文件名和/或附加/分离vhd。
可以通过一个或多个规则/分配文件120来指定将由frxdrv118执行的操作。例如,管理员可以创建指定要被隐藏或改变的一个或多个对象的规则(文件、目录、键或值)和任何适用的条件或触发事件。然后,管理员可以将规则分配给一个或多个特定用户或用户群组。在一些实施例中,可以将规则存储在一个文件中,并且可以将对应的分配存储在另一个关联文件中。在其他实施例中,可以将规则和对应的分配存储在同一文件中。用于实现规则和分配的这些和其他方法对于本领域技术人员来说是可想到的,并且被认为是在本公开的范围内。
示例性过程
以下是可以由上面所讨论的各种架构组件执行的示例性过程的描述。如从本文的讨论可以理解,规则/分配编辑器104、frx.exe106、frx服务108、规则/分配文件120和frxdrv118可以一起(或单独地)操作以完成下面所讨论的所有步骤(或仅仅一些步骤)。为了简单和简洁起见但不是出于限制的目的,下面将这些组件统称为“服务”。
现在参考图2,示出了所公开的过程的一个实施例的示例性高级概述200。如将了解和理解的,图2中所示的示例性高级概述200仅表示本系统的一种方法或实施例,并且根据本系统的各种实施例使用其他方面;图2中所示的步骤和过程(以及本文所示和所述的所有其他流程图和序列图中的那些步骤和过程)可以同时且连续地操作,通常是异步和独立的,并且不一定按所示顺序来执行。
通常,过程200是服务将vhd呈现给软件程序或操作系统的过程,就好像vhd对于操作系统正在其上操作的电子计算设备而言是本地的一样。通过以这种方式呈现vhd,在各种实施例中,电子计算设备或在其上操作的软件程序可以访问封装的文件和/或文件夹。因此,在各种实施例中,服务能够允许远程访问通常必须在本地被存储以便正确操作的文件。例如,该服务可以替换
在各种实施例中,过程200以服务设置过程300开始(其进一步细节将结合图3的描述进行讨论),其中,服务由操作系统来启动(例如,当操作系统在电子计算设备被开启之后启动时)并向其注册以接收用户登录和注销活动的通知。在向操作系统注册之后,在一个实施例中,服务在操作系统的后台操作,直到电子计算设备被关闭为止。
在步骤202处,在各种实施例中,服务从操作系统接收用户登录或注销活动的通知。通常,该通知对应于用户登录以使用操作系统(例如,在开启电子计算设备之后)或在使用操作系统之后(例如,在关闭电子计算设备之前)注销。因此,在一个实施例中,服务在步骤204处确定通知是用户登录还是注销(例如,基于通知的标题、通知的结构等)。如果通知是用户登录,那么在一个实施例中,服务行进到用户登录过程400(其进一步的细节将结合图4的描述进行讨论)。在各种实施例中,用户登录过程400是服务通过它来确定要附加到电子计算设备的适当vhd并对vhd正在替换的任何原始文件/文件夹的文件路径进行适当改变的过程。然而,如果通知是用户注销,那么在一个实施例中,服务行进到用户注销过程600(其进一步的细节将结合图6的描述进行讨论),其中,vhd被分离并且原始文件/文件夹将被还原到其原始文件路径。
在用户登录过程400或用户注销过程600之后,在各种实施例中,服务在步骤206处基于一个或多个预定义规则确定是否等待另一个通知。如果服务在步骤206处确定等待另一个通知,那么服务返回到步骤202并等待通知。在各种实施例中,服务可以等待另一个通知,因为先前所接收的通知是用户登录,并且因此用户注销通知可能即将发生,或者因为用户已经注销操作系统但没有关闭电子计算设备。然而,如果服务在步骤206处确定不等待另一个通知(例如,电子计算设备正被关闭等),那么示例性过程在此后结束。
现在参考图3,示出了根据本公开的一个实施例的示例性服务设立过程300。通常,示例性服务设立过程300是由操作系统通过其来启动服务的过程(例如,当操作系统在电子计算设备被开启之后启动时)并且向其注册以接收用户登录和用户注销活动的通知。因此,在各种实施例中,当操作系统向服务提供指令以启动时,示例性服务设立过程300开始于步骤302。在一个实施例中,在步骤304处,服务在从操作系统接收到特定提示时开始。在一些实施例中,步骤302是可选的,并且在步骤304处,在操作系统启动时服务自动启动。通常,在各种实施例中,服务在操作系统的后台中操作,该操作系统对操作系统的用户是隐藏的。在启动之后,在各种实施例中,服务在步骤306处向操作系统注册以接收用户登录和注销事件的通知,并且示例性服务设立过程300在此后结束。如本领域普通技术人员将想到的,该注册允许服务知道何时采取某些动作(例如,发起过程、附加/分离vhd等)。
现在参考图4,示出了根据本公开的一个实施例的示例性用户登录过程400。通常,示例性用户登录过程400是服务通过它来确定要附加到电子计算设备的适当vhd并对vhd正在替换的任何原始文件/文件夹的文件路径进行适当改变的过程。例如,该服务可以将
因此,在各种实施例中,示例性用户登录过程400在步骤402处开始,其中,服务解析用户登录通知以检索与当前登录到操作系统的用户相对应的用户标识。通常,服务可以在适当的情况下在步骤402处从登录通知提取其他数据(例如,用于分析目的的时间和日期信息、用于安全目的的电子计算设备的ip地址等)。在各种实施例中,作为用户配置过程500的一部分(其进一步的细节将结合图5的描述进行讨论),服务可以使用从用户登录通知中所提取/解析的数据来确定是否为用户将特定文件封装在vhd中。
在一个实施例中,在步骤404处,服务基于用户配置过程500的结果确定是否附加vhd。如果服务确定在步骤404处不附加vhd,那么示例性用户登录过程400在此后结束。然而,如果服务确定在步骤404处附加vhd,那么服务行进到步骤406。在步骤406处,在一个实施例中,基于用户配置过程500的结果,服务为用户搜索适当的vhd(具有正确的封装的文件/文件夹)。在一个实施例中,用户与特定配置相关联,该特定配置指示哪个(哪些)文件/文件夹将被封装在哪个vhd上。在一些实施例中,服务使用查找表来确定哪个vhd与特定用户相关联。相应地,在步骤408处,在一个实施例中,服务确定是否找到了适当的vhd(在步骤406处)。如果服务确定在步骤408处未找到适当的vhd,那么在一个实施例中,服务在步骤410处继续以利用封装的文件/文件夹来创建vhd。例如,如果登录到操作系统的用户先前从未登录过或者如果用户删除了先前所创建的vhd,则该服务可以创建vhd。通常,一旦被附加,vhd对电子计算设备而言就像任何其他附加的文件系统(例如,拇指驱动器等)一样,因此作为步骤410的一部分,根据用于在文件系统内存储文件的本领域已知方法,将文件/文件夹存储在该文件系统中。
通常,在步骤410处创建vhd之后或者如果服务确定在步骤408处找到了适当的vhd(在步骤406处),那么在各种实施例中,服务在步骤412处将vhd附加到电子计算设备,以便vhd可以被其访问。如将理解的,本公开对vhd的类型、被封装在vhd内的文件/文件夹、操作系统、电子计算设备或将vhd附加到操作系统/电子计算设备的方法没有设置限制。通过附加vhd,用户和/或电子计算设备现在可以访问被封装在其中的文件/文件夹。在一个实施例中,服务使用由操作系统提供的应用编程接口(“api”)来在步骤412处附加vhd。例如,在
在步骤414处,在各种实施例中,服务确定要用被封装在所附加的vhd内的(多个)文件/文件夹来替换的原始文件/文件夹的文件路径。因此,在步骤416处,服务改变原始文件/文件夹的文件路径,使得使用该原始文件/文件夹的软件程序不再能够访问该文件/文件夹。在各种实施例中,原始文件/文件夹基本上是对软件程序/操作系统/用户是“隐藏”的但尚未被删除,因此如果其位置已知(例如,通过添加“.hold”或其他方法对路径进行重命名),则仍然可以使用它。在各种实施例中,在步骤418处,服务创建联结(例如,联结点等),其将操作系统/软件程序重定向到vhd。通常,联结使vhd看起来好像它位于原始文件/文件夹的原始文件路径上一样(在步骤414被确定)。因此,被封装在vhd上的文件/文件夹看起来好像是对于电子计算设备而言是位于本地的(多个)原始文件/文件夹。在创建联结之后,示例性用户登录过程400在此后结束。
现在参考图5,示出了根据本公开的一个实施例的示例性用户配置过程500。示例性用户配置过程500是服务通过它来确定是否为刚刚登录到操作系统的用户封装文件/文件夹的过程。因此,在步骤502处,在一个实施例中,服务确定用户是否是包括群组的成员。如果用户不是包括群组的成员,那么在一个实施例中,示例性用户配置过程500在此后结束。然而,如果用户是包括群组的成员,那么在步骤504处,在一个实施例中,服务确定用户是否是排除群组的成员。如果用户是排除群组的成员,那么在一个实施例中,示例性用户配置过程500在此后结束。例如,管理员可能已在包括群组中包括了“所有用户”,但决定“董事会成员”应在排除群组中(而不是尝试单独选择除董事会成员之外的所有用户以最初填充包括群组)。然而,如果用户不是排除群组的成员,那么在一个实施例中,服务确定在步骤506处是否根据一个或多个预定义规则为该用户封装文件/文件夹,并且示例性用户配置过程500在此后结束。在一个未在图5中被示出的实施例中,服务还在步骤506处生成指明(由服务在图4中的步骤406处使用的)要被封装在特定vhd上的(多个)特定文件/文件夹的配置。
现在参考图6,示出了根据本公开的一个实施例的示例性用户注销过程600。通常,示例性用户注销过程600是服务通过它来分离(其作为示例性用户登录过程400的一部分而被附加的)vhd的过程并且将原始文件/文件夹恢复到它们的原始文件路径(作为示例性用户登录过程400的一部分,其从它们的原始文件路径被改变)。
因此,在各种实施例中,示例性用户注销过程600在步骤602处开始,其中,服务解析用户注销通知以检索与当前注销操作系统的用户相对应的用户标识。通常,服务可以在适当的情况下在步骤602处从登录通知中提取其他数据(例如,用于分析目的的时间和日期信息等)。在一个实施例中,服务不实施步骤602,因为它已经从示例性用户登录过程400知道了用户的身份。在各种实施例中,服务可以使用从用户注销通知中提取/解析的数据来在步骤604处确定是否为该用户设立了vhd。在一个实施例中,在步骤604处,服务可以在操作系统/电子计算设备上运行诊断以确定vhd当前是否被附加到其上。如果未附加vhd,那么在一个实施例中,示例性用户注销过程600在此后结束。然而,如果附加了vhd,那么在一个实施例中,在步骤606处,服务将(在图4中的步骤418处生成的)到vhd的联结移除,使得软件程序/操作系统不再能够访问vhd以及被封装在其上的文件/文件夹(就像它们是原始文件/文件夹一样)。在移除联结之后,在各种实施例中,在步骤608处,服务将原始文件/文件夹返回到其原始文件路径(其在图4中的步骤416处从其被移除),使得操作系统/软件程序可以访问原始文件/文件夹。在各种实施例中,服务在步骤610处分离vhd,使得电子计算设备不再可访问vhd。在步骤610处分离vhd之后,示例性用户注销过程600在此后结束。
替代实施例
根据第一方面,一种用于更有效地访问虚拟计算环境中的大数据集的计算机实现的方法,该计算机实现的方法由一个或多个处理器实现并且包括以下步骤:i)从操作系统接收指令以启动特定服务;ii)向操作系统注册特定服务,以在本地计算机处接收用户登录和注销事件;iii)在由特定服务接收到特定用户登录事件的指示时,确定特定用户是否是包括群组的成员;iv)响应于确定特定用户是包括群组的成员,将与特定程序相关联的特定文件封装在虚拟硬盘驱动器中;v)将虚拟硬盘驱动器附加在本地计算机处;vi)确定特定文件的原始路径;vii)将特定文件的原始路径改变为新路径以隐藏特定文件;viii)在特定文件的原始路径处创建联结,该联结将特定程序重定向到被封装在虚拟硬盘驱动器中的特定文件;以及xi)在接收到用户注销事件的通知后,移除联结,将新路径改变为原始路径,并且从本地计算机分离虚拟硬盘驱动器。
根据第二方面,任何其他方面的计算机实现的方法,其中一个或多个处理器包括在服务器处的至少一个处理器,该至少一个处理器被配置用于实现第一方面的步骤i至步骤iv。
根据第三方面,任何其他方面的计算机实现的方法,其中一个或多个处理器包括在本地计算机处的本地处理器,本地计算机与服务器操作地通信,本地处理器被配置用于实现第一方面的步骤v至步骤ix。
根据第四方面,任何其他方面的计算机实现的方法,其中一个或多个处理器在本地计算机上操作虚拟桌面环境。
根据第五方面,任何其他方面的计算机实现的方法,其中一个或多个处理器在本地计算机上操作虚拟程序。
根据第六方面,任何其他方面的计算机实现的方法,其中虚拟程序是电子邮件和/或日历程序。
根据第七方面,任何其他方面的计算机实现的方法,其中第一方面的步骤i至步骤ix由操作系统实现,其中操作系统是在本地计算机上操作的虚拟操作系统。
根据第八方面,任何其他方面的计算机实现的方法,其中特定文件是.ost文件。
根据第九方面,一种用于在虚拟环境中的计算系统之间进行更有效的文件共享的计算机系统,计算机系统包括被操作地连接到至少一个数据库的一个或多个处理器,至少一个数据库存储操作系统和特定程序,一个或多个处理器被配置用于:i)从操作系统接收指令以启动特定服务;ii)向操作系统注册特定服务,以在本地计算机处接收用户登录和注销事件;iii)在由特定服务接收到特定用户登录事件的指示时,确定特定用户是否是包括群组的成员;iv)响应于确定特定用户是包括群组的成员,将与特定程序相关联的特定文件封装在虚拟硬盘驱动器中;v)将虚拟硬盘驱动器附加在本地计算机处;vi)确定特定文件的原始路径;vii)将特定文件的原始路径改变为新路径以隐藏特定文件;viii)在特定文件的原始路径处创建联结,联结将特定程序重定向到被封装在虚拟硬盘驱动器中的特定文件;以及ix)在接收到用户注销事件的通知后,移除联结,将新路径改变为原始路径,并且从本地计算机分离虚拟硬盘驱动器。
根据第十方面,任何其他方面的系统,其中一个或多个处理器包括在服务器处的至少一个处理器,至少一个处理器被配置用于实现第九方面的步骤i至步骤iv。
根据第十一方面,任何其他方面的系统,其中一个或多个处理器包括在本地计算机处的本地处理器,本地计算机与服务器操作地通信,本地处理器被配置用于实现本地计算机的第九方面的步骤v至步骤ix。
根据第十二方面,任何其他方面的系统,其中一个或多个处理器在本地计算机上操作虚拟桌面环境。
根据第十三方面,任何其他方面的系统,其中一个或多个处理器在本地计算机上虚拟地操作特定程序。
根据第十四方面,任何其他方面的系统,其中虚拟程序是电子邮件和/或日历程序。
根据第十五方面,任何其他方面的系统,其中步骤i至步骤ix由操作系统实现,其中操作系统是在本地计算机上操作的虚拟操作系统。
根据第十六方面,一种用于通过减少网络流量来改进计算功能性的计算机实现的方法,该计算机实现的方法包括提供在计算系统上操作的服务,该计算系统具有存储操作系统的存储器和用于执行操作系统的计算机实现的指令的至少一个处理器,其中服务被配置用于:i)接收附加包括vhd文件的虚拟硬盘驱动器的请求,vhd文件与要在用户的计算设备上运行的程序相关联;ii)将虚拟硬盘驱动器附加到用户的计算设备;iii)确定要被改变的目标文件,目标文件与要在用户的计算设备上运行的程序相关联;iv)改变目标文件的路径,使得路径对操作系统是隐藏的;v)在从操作系统接收到运行程序的指示时,引导操作系统访问vhd文件。
根据第十七方面,任何其他方面的计算机实现的方法,其中服务还被配置用于将vhd文件封装在虚拟硬盘驱动器内。
根据第十八方面,任何其他方面的计算机实现的方法,其中将vhd封装在虚拟硬盘驱动器内包括生成用于vhd的容器。
根据第十九方面,任何其他方面的计算机实现的方法,其中附加虚拟硬盘驱动器包括将虚拟硬盘驱动器留存在用户的计算设备处的文件系统上。
根据第二十方面,任何其他方面的计算机实现的方法,其中引导操作系统访问vhd文件包括在目标文件的路径和vhd文件之间创建联结,由此操作系统在尝试访问目标文件时访问vhd文件。
根据第二十一方面,任何其他方面的计算机实现的方法,其中联结包括vhd文件的存储器位置。
根据第二十二方面,任何其他方面的计算机实现的方法,其中附加虚拟硬盘驱动器的请求与用户的登录相关联。
根据第二十三方面,任何其他方面的计算机实现的方法,其中用户的登录用于登录到虚拟桌面上。
根据第二十四方面,任何其他方面的计算机实现的方法,其中服务还被配置用于在接收到用户注销的指示时分离虚拟硬盘驱动器。
根据第二十五方面,任何其他方面的计算机实现的方法,其中服务还被配置用于改变目标文件的路径,使得在接收到用户注销的指示时路径不再对操作系统是隐藏的。
根据第二十六方面,任何其他方面的计算机实现的方法,其中服务还被配置用于与操作系统的注册表通信。
根据第二十七方面,任何其他方面的计算机实现的方法,其中服务被配置用于拦截注册表的输入/输出。
根据第二十八方面,任何其他方面的计算机实现的方法,其中注册表过滤驱动程序被配置用于处理注册表的截取的输入/输出。
根据第二十九方面,任何其他方面的计算机实现的方法,其中注册表过滤驱动程序位于用户的计算设备上的内核空间中。
根据第三十方面,任何其他方面的计算机实现的方法,其中改变目标文件的路径包括改变路径以包括.hold。
根据第三十一方面,一种用于消除或减少网络流量的计算机系统,计算机系统包括存储操作系统的存储器和用于执行文件注册和过滤驱动程序(frxdvr)的至少一个处理器,frxdvr被连接到操作系统的系统注册表并且被配置用于拦截系统注册表的输入/输出请求,其中frxdvr还被配置用于:i)隐藏位于目标文件位置处的目标文件;以及ii)创建从目标文件位置到位于虚拟硬盘驱动器上的新文件的联结,由此根据来自特定程序的访问目标文件的请求,操作系统访问新文件位置。
根据第三十二方面,任何其他方面的计算机系统,其中目标文件是ost文件。
根据第三十三方面,任何其他方面的计算机系统,其中联结包括虚拟硬盘驱动器上的新文件的存储器位置。
根据第三十四方面,任何其他方面的计算机系统,其中新文件被封装在虚拟硬盘驱动器上。
根据第三十五方面,任何其他方面的计算机系统,其中将新文件封装在虚拟硬盘驱动器上包括生成用于新文件的容器。
根据第三十六方面,任何其他方面的计算机系统,其中frxdvr通过改变包括目标文件的文件夹的文件名来隐藏目标文件。
根据第三十七方面,任何其他方面的计算机系统,其中改变包括目标文件的文件夹的文件名包括将.hold添加到文件名的末尾。
根据第三十八方面,任何其他方面的计算机系统,其中frxdvr响应于特定用户的登录的通知来将虚拟硬盘驱动器附加到计算机系统。
根据第三十九方面,任何其他方面的计算机系统,其中特定用户的登录用于登录到虚拟桌面上。
根据第四十方面,任何其他方面的计算机系统,其中frxdvr被配置为响应于特定用户的注销的通知来将虚拟硬盘驱动器从计算机系统分离。
根据第四十一方面,任何其他方面的计算机系统,其中frxdvr被配置为响应于特定用户的注销的通知来改变包括目标文件的文件夹的文件名。
根据第四十二方面,任何其他方面的计算机系统,其中frxdvr位于计算机系统上的内核空间中。
结论
领域的技术人员可以想到具有前述描述和相关联附图中所呈现的教导益处的本发明所属的本文所公开的系统和方法的许多修改和其他实施例。虽然上面所讨论的示例涵盖了在