首页> 中国专利> 通过网络连接访问覆盖介质

通过网络连接访问覆盖介质

摘要

本发明涉及通过网络连接向计算设备提供覆盖介质。嵌入式设备/系统上的输入/输出(I/O)过滤器可通过存储服务向覆盖介质发送数据。I/O过滤器驱动器可使用通用标识符连接到存储服务。当应用向本地存储介质发出读操作和/或写操作时,I/O过滤器驱动器通过网络连接将读操作和/或写操作重定向到存储服务。

著录项

  • 公开/公告号CN104040525A

    专利类型发明专利

  • 公开/公告日2014-09-10

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN201380004727.0

  • 发明设计人 H·兴隆;Y·柯南;K·丛;

    申请日2013-01-03

  • 分类号G06F15/16;G06F3/06;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人杨洁

  • 地址 美国华盛顿州

  • 入库时间 2023-12-17 02:24:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-10-11

    授权

    授权

  • 2015-08-19

    专利申请权的转移 IPC(主分类):G06F15/16 变更前: 变更后: 登记生效日:20150728 申请日:20130103

    专利申请权、专利权的转移

  • 2014-10-15

    实质审查的生效 IPC(主分类):G06F15/16 申请日:20130103

    实质审查的生效

  • 2014-09-10

    公开

    公开

说明书

背景

各种设备/系统可包括嵌入式平台,该平台包括操作系统、应用和各种其它文件。例如,各种设备/系统可包括便携式超频率音响机、全球定位系统(GPS)设备、自动提款机(ATM),给大型施工机械供电的设备等等。操作系统,应用和重要用户数据可被配置到运行时映像中,设备/系统在其上引导并运行。例如,包括嵌入式视窗操作系统的视窗嵌入技术集成现有信息技术(IT)基础结构并允许各种服务(诸如管理、安全、与网络或另一设备/系统数据同步、使用简档、位置服务、广告服务、业务智能和业务线应用)访问关于设备能力和服务等的数据。

嵌入式视窗操作系统包括被称为过滤器(例如,写过滤器)的可任选特征,其将用户在操作系统上作出的改变重定向到一覆盖,而不是在硬盘上作出修改。作为结果,保护操作系统防止被恶意/无意修改,并通过设备/系统重新引导来维持在相同的状态。写过滤器的当前设计可采用基于RAM的或基于盘的覆盖(例如硬盘)作为覆盖类型。覆盖介质的大小限制是预先定义的,使得过滤器可访问物理RAM或硬盘的一部分而不影响用户的正常活动。随着对操作系统作出更多改变,覆盖在大小(例如,字节数)方面增加。最后,覆盖介质超过了大小限制,导致崩溃、非预期的重新引导和其它有害影响。

发明内容

提供本发明内容以便以简化形式介绍将在以下的具体实施方式中进一步描述的一些代表性概念。本发明内容不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。

简而言之,本文所公开的主题的各方面针对通过网络连接来传递数据用于存储在覆盖介质上。在一个方面中,网络连接指的是到因特网的连接,其中覆盖介质包括由云计算服务主控的共享存储资源。在另一方面中,网络连接指的是局域网(LAN)连接,其中覆盖介质包括由可以模拟或可以不模拟云计算服务的LAN服务主控的共享存储资源。共享存储资源可以是文件夹、目录或用于存储文件的任何其他文件系统对象。

在一个方面中,诸如写过滤器驱动器之类的输入/输出(I/O)过滤器提供经存储服务对覆盖介质的访问。在建立了与存储服务的网络连接之后,I/O过滤器驱动器截取针对受保护存储介质(如本地或网络分区/驱动器)的读操作和写操作,并将与具有覆盖保护的文件/扇区相关联的读操作和写操作重定向到覆盖介质。在一个方面中,存储服务返回对应于读操作的数据,并将写操作提供的数据存储在覆盖介质上。在一个方面中,写操作被应用于映像,如快照(层)。在另一方面中,写操作被应用于覆盖高速缓存(如RAM)并响应于诸如设备/系统关闭之类的各种事件而转移到覆盖介质。

结合附图阅读以下具体实施方式,本发明的其他优点会变得显而易见。

附图说明

作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中:

图1是根据一个示例实现的示出用于通过网络连接与覆盖介质通信的示例系统的框图。

图2是根据一个示例实现的示出用于通过网络连接与覆盖介质通信的示例步骤的流程图。

图3是根据一个示例实现的示出用于对本地存储介质上的卷在覆盖介质上维护一映像的示例步骤的流程图。

图4是根据一个示例实现的示出用于在覆盖高速缓存和覆盖介质之间转移数据的示例步骤的流程图。

图5是表示示例性非限制联网环境的框图,其中可实现本文所描述的各种实施例。

图6是表示示例性非限制计算系统或运行环境的框图,其中可实现本文所描述各种实施例的一个或多个方面。

具体实施方式

本文公开的技术的各种方面一般涉及提供通过网络连接对覆盖介质(overlay media)的利用的输入/输出(I/O)过滤器驱动器。该I/O过滤器驱动器可通过因特网或局域网将针对受保护卷的输入/输出操作重定向到称为覆盖高速缓存的本地易失性RAM和/或网络基于盘的覆盖介质。在一个实现中,当某一应用发出针对本地存储介质(如硬盘)的读操作或写操作时,替代于提交给受保护卷,I/O过滤器驱动器截取读操作和写操作。该I/O过滤器驱动器连接到与覆盖介质相关联的存储服务,并将读操作和写操作传递到该覆盖介质。

在一个实现中,该I/O过滤器驱动器指示存储服务将写操作存储在覆盖介质中,以及从覆盖介质返回对应于对本地存储介质的读操作的数据。如果写操作要被提交,则I/O过滤器驱动器指示存储服务返回写操作,写操作的I/O过滤器驱动器应用于本地存储介质。在一个实现中,I/O过滤器驱动器维护本地存储介质上的包括来自写操作的文件数据的卷的快照。在这样的实现中,I/O过滤器驱动器在本地存储介质上的相应物理文件地址处存储文件数据。

应当理解的是,此处的任何示例均是非限制的。因此,本发明不限制于在此描述的任何具体的实施例、方面、概念、结构、功能或示例。相反,在此所描述的实施例、方面、概念、结构、功能或示例中的任何一个都是非限制性的,并且本发明可以按一般在计算和数据存储系统中提供益处和优点的各种方式来使用。

图1是根据一个示例实现的示出用于通过网络连接与覆盖介质通信的示例系统的框图。示例系统的组件可包括存储服务102、覆盖介质104、以及网络104和网络106,网络104和106被表示为分别耦合于过滤器驱动器108和过滤器驱动器110。要理解,尽管图1描绘了两个网络来例示出存储服务102可支持具有覆盖介质104的多个计算设备(如嵌入式设备/系统),但是可采用到一个或多个计算设备的一个网络连接来实施本公开的实现。在一个实现中,分别运行过滤器驱动器108和110的第一嵌入式设备/系统(对应于示例程序112)和第二嵌入式设备/系统(对应于示例程序122)可构成用户的联网社区的一部分。

在一个实现中,存储服务102可包括提供通过诸如因特网之类的网络连接对覆盖介质104的访问的托管服务(称为云计算服务)。因此,覆盖介质104可包括共享的、可配置的存储资源的一部分。存储服务102可被分配一公共ID(即云ID)和统一资源定位器(URL)(即云URL),过滤器驱动器108和/或过滤器驱动器110可使用它们来与覆盖介质104通信数据。公共ID可包括与公共网络上的托管服务(hosted service)相关联的微软Live ID或ID。作为替代,可对特定社区的用户的专属平台上的私有托管服务配置该公共ID和URL。替代地,存储服务102可以是包括诸如如执行过滤器驱动器108或过滤器驱动器110的嵌入式设备/系统之类的嵌入式设备/系统的共享局域网上的托管服务。

在一个示例实现中,过滤器驱动器108和过滤器驱动器110可包括内核模式驱动器,如分层驱动器栈中的特定类型的输入/输出(I/O)驱动器(如写过滤器驱动器)。过滤器驱动器108和110可耦合于相同的分层I/O驱动器或不同的分层I/O驱动器,并截取针对与较低层/底层分层I/O驱动器相关联的存储设备/介质上的文件系统对象(如文件和/或目录)的I/O操作/请求。过滤器驱动器108和110一般允许关于存储设备/介质的附加功能。

当程序112(如操作系统组件或用户模式应用)发起了针对本地和/或网络存储介质上的受覆盖保护的卷的输入/输出操作114时,替代于由底层输入/输出驱动器(如文件系统驱动器、盘驱动器等等)处理,输入/输出操作114可由过滤器驱动器108截取并重定向到覆盖介质104。在一个示例实现中,过滤器驱动器108可使用标识符116(如统一标识符、系统级唯一标识符等等)访问与存储服务102的网络连接,并可指示存储服务102将对应于写操作的数据存储在覆盖介质108上。

例如当写操作要被提交给盘118时,过滤器驱动器108可向存储服务102请求对应于写操作的数据,并将数据写入受保护卷。作为替代,过滤器驱动器108可在数据被转移到覆盖介质104之前从覆盖高速缓存120中取回数据。替代于提交给盘118或在提交给盘118之后,过滤器驱动器108可从覆盖介质104和/或覆盖高速缓存120删除该数据。为了说明该示例,在对计算机设备执行了必要的改变之后,如安装/更新其他程序(如操作系统)、修改系统设置等等,程序112可调用一(提交)命令来安排在下一次系统重新引导/重启之后盘118上的提交过程。

在一个实现中,存储服务102可以范围(extent)和/或范围信息(extentinformation)的形式用一个或多个文件的部分来响应于来自过滤器驱动器108的请求。这些范围可包括在更新/安装其他程序、修改系统设置等时程序112作出的改变的数据块。一般来说,范围信息可包括各种文件系统、卷和/或存储介质(即盘118)元数据和/或文件偏移映射信息。对于每个文件,文件偏移映射信息指示出表示范围(如包括某一文件的数据的存储器的连续区域)的偏移量的值。偏移量被用于以文件级或盘/扇区级来定位每个范围。偏移量可以是第一地址(如与文件的开始相关联的地址、与文件所驻留的卷的开始相关联的地址、与卷或文件等相关联的扇区位置)和该范围之间的字节数。作为替代,范围信息可被与I/O驱动器栈相关联的其他内核模式驱动器和/或I/O系统服务本地地维护。

在一个示例实现中,程序122可发出计划给受保护卷但被过滤器驱动器110截取的输入/输出(I/O)操作124,过滤器驱动器110可使用可使用各种服务(如诸如I/O之类的系统服务、存储和/或网络服务)和/或一个或多个内核模式驱动器来将I/O操作124应用于覆盖介质104。在由与目标存储设备相关联的底层输入/输出驱动器-文件系统驱动器中在文件级或盘或设备驱动器中在盘扇区级-处理之前,过滤器驱动器110可截取I/O操作124。

在一个实现中,过滤器驱动器110可连接到存储服务102并利用标识符126将I/O操作124传递给覆盖介质104,该标识符126引用特定的存储位置(如分区或文件夹)。作为一示例,I/O操作124可包括盘写入或盘读取I/O请求分组(IRP)。IRP包括充分地描述对配置成处理该IRP的可兼容的I/O系统服务和/或内核模式驱动器的I/O操作/请求(如创建或打开文件、写数据、读数据等等)所需的信息。存储设备102包括这些I/O系统服务和/或内核模式驱动器的实现。每个IRP包括分层驱动器栈(如I/O驱动器栈)中的每个驱动器的特定信息,包括要由该驱动器执行的一个或多个功能。在完成这些功能之后,每个驱动器将结果数据和/或元数据存储在IRP中,并将经更新的IRP传递给下一驱动器,直到完成或出错。

当程序122发出对读取盘128上存储的受保护卷的某一文件的当前复制的数据(即读操作)的请求时,过滤器驱动器110可指示存储服务102从该特定存储位置取回对应于更新的和/或新的范围的文件部分。存储服务102可使用合适的I/O系统服务和/或内核模式驱动器来访问这些部分并满足该请求。连同存储在盘128上的任何其他文件数据,过滤器驱动器110可将来自存储服务102的数据提供给程序122。过滤器驱动器110不向程序122提供文件的任何删除的部分,因为这些部分对应于非当前时间点。作为替代,在如本文所述的数据被转移到覆盖介质104之前,过滤器驱动器110可从覆盖高速缓存130取回数据。

当程序122发出对盘128上的受保护卷的文件写数据(即写操作)的请求时,过滤器驱动器110可指示存储服务102访问合适的I/O系统服务和/或内核模式驱动器,并执行必要的操作来满足该请求。在一个实现中,存储服务102在仅包括被写入的数据的文件副本中存储数据。在另一实现中,如本文所述,存储服务102在覆盖介质104中维护的用于受保护卷的当前快照层中存储数据。

作为替代,过滤器驱动器110可使用本地I/O系统服务和内核模式驱动器来将数据存储在文件和/或受保护卷的(经高速缓存)的版本中。例如,过滤器驱动器110可将数据写入体现盘128上、但在稍后/当前时间点的(即更新的)文件的物理版本的逻辑或虚拟文件副本。这种文件副本可包括含写入的数据的范围以及表示盘上的文件的未改变的物理范围的逻辑或虚拟范围(如诸如指针、引用等之类的占位符)的范围。过滤器驱动器110可将文件副本存储在覆盖高速缓存130上。覆盖高速缓存130可例如驻留在RAM上或过滤器驱动器110所使用的另一卷上。在一个实现中,过滤器驱动器110可将文件副本转移到覆盖介质104以用于存储在对应于某一时间点处的受保护卷的快照层上或不与该快照层相关联的分开的位置中。

类似于过滤器驱动器108,过滤器驱动器110可提交对应于对本地和/或网络受覆盖保护的存储介质(如盘128)上的受保护卷的写操作的数据,从而文件(如操作系统或应用文件)改变可在设备或系统重启之后持续。作为另一示例,过滤器驱动器110可将写操作重定向到覆盖高速缓存130,覆盖高速缓存可存储对文件系统作出的改变,这些改变可在设备或系统重启和恢复受保护/原始状态时被删除。

各种程序对受覆盖保护的存储介质上的受保护卷作出的改变可用称为快照的映像类型来被体现,并存储在覆盖介质104的快照132中。快照132中的每个快照可包括对应于某一时间点的卷状态的一个或多个快照层。例如,添加到现有快照中的每个快照层创建了对应于稍后时间点的一新的、更新的快照。

当当前时间点的快照层被添加到现有快照时,所产生的快照层的组结合受保护卷上的未改变数据可表示一运行时映像,在该运行时映像上,操作系统可装载文件系统以及运行各种程序。因此,快照132可形成卷从原始状态到当前状态的编年史。在一个示例实现中,用快照132中的任何一个快照更新受覆盖保护的存储介质上的受保护卷造成与每个包括在内的快照层相关联的所有写操作都被应用来创建时间点一致的卷状态。

在一个示例实现中,标识符116和126可包括分别由写过滤器驱动器108和110生成的系统特定的唯一标识符,或可从本地硬件信息生成的通用唯一ID(UUID)。一示例性通用唯一ID可包括CPU序列号、主板序列号和/或网卡MAC地址或它们的组合。该示例性通用唯一ID可被用作(云)文件夹的名称,其中所有数据块是为某一设备存储的。

图2是根据一个示例实现的示出用于通过网络连接与覆盖介质通信的示例步骤的流程图。图2中所描绘的步骤可由诸如过滤器驱动器108或过滤器驱动器110之类的I/O过滤器驱动器执行。这些步骤在步骤202开始并进行到步骤204,在步骤204中建立与存储服务和覆盖介质的网络连接。如本文所述,在一个实现中,可使用公共云ID和URL来定位存储服务,覆盖介质可以是采用诸如文件夹之类的数据存储的形式的共享存储资源的一部分。

步骤206表示处理来自应用的针对诸如盘之类的本地存储介质的I/O操作。在分层I/O驱动器栈中,在到达较低分层内核模式驱动器之前,I/O过滤器驱动器截取该I/O操作。步骤208示出经存储服务将该I/O操作重定向到覆盖介质。步骤210指的是关于该I/O操作是读操作还是写操作的确定。读操作一般涉及请求文件数据的应用作出的各种“读取文件”(ReadFile)功能调用中的任何一个。写操作一般涉及各种“写文件”(WriteFile)功能调用中的任何一个。如果该I/O操作是读操作,则步骤210进行到步骤212。步骤212描绘从覆盖介质将数据返回到作出请求的应用。在一个实现中,I/O过滤器驱动器指示存储服务定位与对应于该读操作的文件相关联的当前数据(块)。该I/O过滤器驱动器向作出请求的应用提供当前数据,就好像数据实际上存储在本地存储介质中。在执行了步骤212之后,图2所示出的示例方法进行到步骤220,在步骤220该方法结束。

如果该I/O操作是写操作,则步骤210进行到步骤214。步骤214涉及从存储服务将各种元数据返回到I/O驱动器栈中的内核模式驱动器。在一个实现中,I/O过滤器驱动器向I/O管理器驱动器、文件系统驱动器和/或设备驱动器提供与当前存储在覆盖介质中的新的和/或更新的数据块有关的范围信息。这些驱动器可使用该信息来维护时间点一致的文件系统信息,并创建表示覆盖介质中用于一个或多个新的和/或更新数据块的存储位置的覆盖指针。当某一程序发出读取这样的数据的请求时,替代于提供指向盘上的扇区或文件地址的指针,I/O过滤器驱动器使用该覆盖指针来请求和/或定位对应的数据块。

步骤216涉及确定是否要向本地和/或网络受覆盖保护的存储介质提交一个或多个累积的写操作。在一个实现中,步骤216确定是否要提交对应于一个或多个快照层的数据。用户可发出提交命令,该提交命令将数据存储(如转储清除所有写操作)到受覆盖保护的存储介质上的受保护卷。如果该写操作要被提交,则步骤214进行到步骤218。如果写操作不要被提交,则步骤216返回到步骤206并处理另一I/O操作。

步骤216针对向存储服务请求与该写操作相关联的数据。在一个实现中,具有该数据的文件的(经高速缓存的)版本被发送。步骤220涉及用所请求的数据来更新本地和/或网络受覆盖保护的存储介质上的文件。步骤222结束图2中所描绘的示例步骤。

图3是根据一个示例实现的示出用于对本地存储介质上的卷在覆盖介质上维护一映像的示例步骤的流程图。图3中所描绘的步骤可由诸如过滤器驱动器108或过滤器驱动器110之类的I/O过滤器驱动器执行。这些步骤在步骤302开始,并进行到步骤304,在步骤304访问覆盖介质上对于本地存储介质上的卷的快照。如本文所述,快照层是表示某一时间点受保护卷的状态的一种类型的映像(文件)。当快照和受保护卷被聚集时,所产生的映像构成了一更新的运行时映像,该更新的运行时映像可由嵌入式设备/系统引导和/或装载且与该时间点一致。在一个实现中,步骤304期间被访问的快照与最后一次恢复的时间点(即原始状态)之后的一时间点相关联。

步骤306针对截取对文件的写操作并经存储服务将写操作重定向到覆盖介质。步骤308表示对当前时间点创建快照层。在一个实现中,I/O过滤器驱动器指示存储服务创建当前快照层。步骤310涉及将写操作应用于当前快照层上的文件的相应版本。相应文件版本可以是包括表示文件系统级或扇区级的物理地址的逻辑地址的经高速缓存的文件副本。例如,某些文件部分(如范围)可映射到盘上不同的和/或非相邻的扇区,但是文件系统可将该文件表示为具有一系列物理地址的连续的存储器区域。作为替代,覆盖介质可将盘的表示(如映像)维护为受保护卷的当前状态的体现,并指示出那些扇区存储文件的新的/更新的版本。因此,可在扇区级应用写操作。

在一个实现中,在当前快照层内,对应于将不被改变的物理(盘上)地址的逻辑文件(即字节)地址被留为空,而要用新的/更新的数据更新的物理对应物的逻辑地址被标记为“改变的”并嵌有对该新的/更新的数据的引用。因此,当前快照层仅包括如果被提交则可被写入卷的新的/更新的数据。步骤312涉及确定是否有更多的写操作要截取。如果有更多的写操作,则步骤312返回步骤306,在步骤306当前快照层被加到步骤304期间访问的快照。如果没有更多的写操作要截取和重定向,则步骤312进行到步骤314,在步骤314示例步骤终止。

图4是根据一个示例实现的示出用于在覆盖高速缓存和覆盖介质之间转移数据的示例步骤的流程图。图4中所描绘的步骤可由诸如过滤器驱动器108或过滤器驱动器110之类的I/O过滤器驱动器执行。这些步骤在步骤402开始并进行到步骤404,在步骤404用对应于写操作的数据来维护覆盖高速缓存。在一个实现中,覆盖高速缓存是基于RAM的覆盖,该基于RAM的覆盖在数据被通过网络连接转移到覆盖介质之前存储该数据。步骤406确定是否观察到触发数据转移的事件。示例事件包括嵌入式设备/系统关闭。另一示例事件包括超过了覆盖高速缓存的大小限制。又一示例事件是定时转储清除或手动转储清除事件。如果没有观察到事件,则步骤406返回到步骤404,在步骤404在覆盖高速缓存中存储和/或维护更多的写操作。

如果事件被观察到,步骤406进行到步骤408。步骤408涉及经诸如因特网或局域网之类的网络连接到覆盖介质。步骤410涉及将对应于写操作的经高速缓存的数据转储清除到覆盖介质中。步骤412针对指示覆盖介质的存储服务存储经高速缓存的数据。步骤414确定嵌入式设备/系统是否正在重新引导/重启。在一个实现中,如果事件是未决的关闭,则嵌入式设备/系统要被重新引导。如果嵌入式设备/系统正被重新引导/重启,则步骤414进行到步骤416。如果嵌入式设备/系统不要被重新引导/重启,则步骤414进行到步骤420,在步骤420,图4中描述的示例性步骤结束。步骤416涉及在重新引导期间重新连接到覆盖介质以及请求对应于写操作的经高速缓存的数据。步骤418涉及将经高速缓存的数据存储在受覆盖保护的存储介质和更新的受保护卷中。作为替代,在重新引导之后,经高速缓存的数据可被存储在覆盖高速缓存或另一卷中,以确保保留受保护卷的前一状态。步骤420结束图4中所描绘的示例步骤。

示例性联网以及分布式环境

本领域技术人员可以理解,此处描述的各实施例和方法可结合任何计算机或其它客户机或服务器设备来实现,其可被部署为计算机网络的部分或在分布式计算环境中,并且可以被连接到任何类型一个或多个数据存储。在这一点上,此处描述的各实施例可在具有任何数量的存储器或存储单元的、并且任何数量的应用和进程跨任何数量的存储单元发生的任何计算机系统或环境中实现。这包括但不限于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户计算机的环境。

分布式计算通过计算设备和系统之间的通信交换来提供计算机资源和服务的共享。这些资源和服务包括信息的交换、对于诸如文件之类的对象的高速缓存存储和盘存储。这些资源和服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、处理专门化等等。分布式计算利用网络连接,从而允许客户机利用其集体力量来使整个企业受益。就此,各种设备可具有可如参考本发明的各实施例描述地参与资源管理机制的应用、对象或资源。

图5提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计算对象510、512等以及计算对象或设备520、522、524、526、528等,这些计算对象或设备可包括如由示例应用530、532、534、536、538表示的程序、方法、数据存储、可编程逻辑等。可以理解,计算对象510、512等以及计算对象或设备520、522、524、526、528等可包括不同的设备,诸如个人数字助理(PDA)、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机等。

每个计算对象510、512等以及计算对象或设备520、522、524、526、528等可经由通信网络540直接或间接地与一个或多个其他计算对象510、512等以及计算对象或设备520、522、524、526、528等通信。尽管在图5中被示为单个元件,但通信网络540可包括向图5的系统提供服务的其他计算对象和计算设备和/或可表示未示出的多个互连网络。每个计算对象510、512等或计算对象或设备520、522、524、526、528等还可以包含应用,诸如可以利用API或其他对象、软件、固件和/或硬件的、适于根据本发明的各实施例所提供的应用实现与其进行通信的应用530、532、534、536、538。

存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络被耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的网络,但任何网络基础结构都可用于便于与如各实施例中所描述的系统的示例性通信。

由此,可使用诸如客户机/服务器、对等、或混合体系结构之类的网络拓扑结构和网络基础结构的主机。“客户机”是使用与其无关的另一类或组的服务的一类或组中的成员。客户机可以是进程,例如,大致上是请求另一程序或进程所提供的服务的一组指令或任务。客户机进程使用所请求的服务,而无需“知道”关于其他程序或服务本身的任何工作细节。

在客户机/服务器体系结构中,尤其在联网系统中,客户机通常是访问另一计算机(例如,服务器)所提供的共享网络资源的计算机。在图5的图示中,作为非限制性示例,计算对象或设备520、522、524、526、528等可被认为是客户机而计算对象510、512等可被认为是服务器,其中计算对象510、512等作为提供数据服务的服务器,诸如从客户机计算对象或设备520、522、524、526、528等接收数据、存储数据、处理数据、向客户机计算对象或设备520、522、524、526、528等发送数据,但任何计算机都可取决于环境而被认为是客户机、服务器、或两者。

服务器通常是可通过诸如因特网或无线网络基础架构之类的远程网络或本地网络访问的远程计算机系统。客户机进程可在第一计算机系统中活动,而服务器进程可在第二计算机系统中活动,它们通过通信介质相互通信,由此提供分布式功能并允许多个客户机利用服务器的信息收集能力。

在通信网络540或总线是因特网的网络环境中,例如,计算对象510、512等可以是其他计算对象或设备520、522、524、526、528等经由诸如超文本传输协议(HTTP)之类的多种已知协议中的任一种与其通信的Web服务器。计算对象510、512等作为服务器还可用作例如计算对象或设备520、522、524、526、528等的客户机,这可以是如分布式计算环境的特性。

示例计算设备

如上所述,有利地,本文所描述的技术可应用于任何设备。因此,应当理解,构想了结合各实施例使用的所有种类的手持式、便携式和其它计算设备和计算对象。因此,以下在图6中所述的通用远程计算机只是计算设备的一个示例。

各实施例可部分地经由操作系统来实现,以供设备或对象的服务开发者使用和/或被包括在用于执行此处所述的各实施例的一个或多个功能方面的应用软件内。软件可以在由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域的技术人员可以理解,计算机系统具有可用于传递数据的各种配置和协议,并且由此没有特定配置或协议应当被认为是限制性的。

图6由此示出了其中可实现本文所述的各实施例的一个或多个方面的合适的计算系统环境600的一个示例,尽管如上所述,计算系统环境600仅为合适的计算环境的一个示例,并非对使用范围或功能提出任何限制。此外,也不应当将计算系统环境600解释为对在示例性计算系统环境600中所示的组件中的任何一个或其组合有任何依赖。

参考图6,用于实现一个或多个实施例的示例性远程设备包括计算机610形式的通用计算设备。计算机610的组件可包括,但不限于,处理单元620、系统存储器630、以及将包括系统存储器的各种系统组件耦合到处理单元620的系统总线622。

计算机610通常包括各种计算机可读介质,并且可以是可由计算机610访问的任何可用介质。系统存储器630可包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。作为示例而非限制,系统存储器630还可包括操作系统、应用程序、其他程序模块、以及程序数据。

用户可通过输入设备640向计算机610输入命令和信息。监视器或其他类型的显示设备也经由诸如输出接口650之类的接口连接到系统总线622。除监视器以外,计算机还可包括诸如扬声器和打印机之类的其他外围输出设备,它们可通过输出接口650连接。

计算机610可使用到一个或多个其他远程计算机(诸如远程计算机670)的逻辑连接在联网或分布式环境中操作。远程计算机670可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或者任何其他远程媒体消费或传输设备,并且可包括以上关于计算机610所述的任何或全部元件。图6所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)之类的网络672,但也可包括其他网络/总线。这些联网环境在家庭、办公室、企业范围的计算机网络、内联网和因特网中是常见的。

如上所述,尽管结合各种计算设备和网络体系结构描述了各示例性实施例,但基本概念可被应用于其中期望改进资源使用的效率的任何网络系统和任何计算设备或系统。

而且,存在实现相同或相似功能的多种方法,例如适当的API、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它们使得应用和服务能够使用此处提供的技术。由此,此处的各实施例从API(或其他软件对象)的观点以及从实现如此处描述的一个或多个实施例的软件或硬件对象构想。由此,此处所述的各实施例可具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方面。

本文中所使用的词语“示例”意味着用作示例、实例、或说明。为避免疑惑,本文所公开的主题不限于这些示例。另外,本文中作为“示例”所述的任何方面或设计不一定被解释为比其他方面或设计更优选或有利,它也不意味着排除本领域普通技术人员已知的等效示例性结构和技术。此外,在使用术语“包括”、“具有”、“包含”和其他类似词语的程度上,为避免疑惑,这些术语旨在以类似于术语“包括”作为开放的过渡词的方式是包含性的而在用于权利要求时不排除任何附加或其他元素。

如所述的,此处所述的各种技术可结合硬件或软件或,在适当时,以两者的组合来实现。如此处所使用的,术语“组件”、“模块”、“系统”等同样旨在指计算机相关实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是,但不限于,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可位于一个计算机上和/或分布在两个或更多的计算机之间。

如前所述的系统已经参考若干组件之间的交互来描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(层次性)。另外,应注意到一个或多个组件可被组合成提供聚集功能的单个组件,或被分成若干单独的子组件,且诸如管理层等任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能。此处所述的任何组件也可与一个或多个此处未专门描述的但本领域技术人员一般已知的其他组件进行交互。

鉴于本文所述的示例系统,可根据参考各附图的流程图还可理解根据所述的主题来实现方法。尽管为了说明简洁起见,作为一系列框示出和描述的方法,但是应当理解,各实施例不仅仅限于框的次序,因为一些框可以与此处所描绘和描述的框不同的次序发生和/或与其他框并发地发生。尽管经由流程图示出了非顺序或分支的流程,但可以理解,可实现达到相同或类似结果的各种其他分支、流程路径和框的次序。此外,某些示出的框在实现下文所述的方法中是可选的。

结论

尽管本发明易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而应当了解,这不旨在将本发明限于所公开的具体形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。

除此处所述的各实施例以外,应当理解,可使用其他类似实施例,或者可对所述实施例作出修改和添加以便执行对应实施例的相同或等效功能而不背离这些实施例。此外,多个处理芯片或多个设备可共享此处所述的一个或多个功能的性能,并且类似地,存储可跨多个设备实现。因此,本发明不应限于任何单个实施例,而是应当根据所附权利要求书的广度、精神和范围来解释。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号