使用通知联结来管理高速缓存对象的系统和方法

文档序号:6418337阅读:108来源:国知局
专利名称:使用通知联结来管理高速缓存对象的系统和方法
背景技术
在许多现代分布式计算环境中,通常需要集中式维护多个客户机所共享的文件。一般来说,可以使用一个常规的分布式文件系统来便于文件的共享。在这类系统中,客户机可以通过与维护该共享文件的文件服务器的积极交互来获得访问该共享的文件。特别是,客户机可以从文件服务器获得文件的句柄,并且可以通过与文件服务器通信交流变化来更改该文件。这类文件共享技术通常称之为在线共享。因为对于这类文件共享来说,在文件服务器和客户机之间需要进行大量的通信,因此与在线共享有关的资源开销实际上是非常大的。
目前,某些分布式文件系统允许客户机可以在客户机的计算机存储器中高速缓存文件数据。特别是,客户可以在它的存储器中存储由文件服务器所管理的文件和目录的本地副本。通过使得客户能够迅速确定在服务器上的那些文件和目录是有效,使得这些本地的副本便于文件的共享。然而,为了确保数据是最新的,客户机必须周期性地与服务器相接触,以便于同步高速缓存的文件数据以确保数据是最新的。同步高速缓存的文件数据是一项非常昂贵的话题,特别是对于一个具有许多高速缓存文件数据客户机的服务器。例如,当一个客户机在与服务器断开了一段时间周期之后再次与服务器相连接时,客户机必须同步从服务器高速缓存的整个文件数据,因为客户不知道在断开的周期中服务器上的哪些文件或目录被更改了。因为与同步有关的工作是与高速缓存的文件和目录的数量成比例的,所以某些系统就限制了允许各个客户机高速缓存的文件和目录的数量。
最近,移动计算环境已经变得越来越普及。在这类环境中,移动用户时常会与网络断开一段时间。这就构成了对分布式文件系统的特殊挑战。例如,在移动客户机与网络断开时,就不会发生所需要的同步。另外,用户越来越希望客户机能够高速缓存服务器文件和目录的重要部分。当移动客户机再与网络相连接时,就必须同步这些高速缓存的数据。这些大量数据的高速缓存就需要非常多的客户机/服务器的通讯和计算资源,在许多应用中这种状况是禁止的。
向本领域中的熟练技术人士提供了由一个分布文件系统的用户来高速缓存文件的高效和有效方法。
发明概述简单地说,本发明提供了一种使用通知联结(bond)方法来管理高速缓存的对象的系统和方法。一方面,本发明提出了一种适用于用户使用通知联结来与服务器进行交互的计算机实施方法。服务器管理着一个原始对象。用户创建一个来自原始对象的高速缓存对象并且与服务器建立一个通知联结。该通知联结使得客户能够从服务器获得一个通知,以响应一个与原始对象有关的对象。
另一方面,本发明提出了一种适用于服务器使用通知联结来与客户互动的计算机实施方法。服务器与客户建立一个通知联结。服务器使得客户可以高速缓存对象并且在出现相关对象时可以向用户提供通知。
还有一个方面,本发明提出了一种使用通知联结来共享对象的分布式文件系统。分布式文件系统包括一个构成管理原始对象的服务器。该服务器包括一个构成向客户发布通知联结的联结管理器。分布式文件系统也可以包括一个构成与原始对象有关的高速缓存的对象。客户包括一个构成与服务器一起维护与原始对象有关的通知联结的通知处理器。
附图简要描述

图1是一例实施本发明的典型高速缓存对象管理系统的示意图;图2是一例通知处理器和联结管理器的示意图;图3是一例在高速缓存对象管理系统中的一个客户和一个服务器之间的典型通讯的示意图;图4是一例示例过滤器表的示意图;图5是一例示例服务器联结表的示意图;图6是一例示例用户联结表的示意图;图7是一例适用于客户与服务器一起建立一个通知联结以便于服务器来管理对象处理的操作流程图;图8是一例适用于服务器与客户一起建立适用于对象的通知联结处理的操作流程图;图9是一例适用于服务器向客户发送通知处理的操作流程图;图10是一例适用于客户机将它的高速缓存对象与服务器相同步处理的操作流程图;图11是一例适用于客户机结束通知联结处理的操作流程图;图12是一例根据本发明的实施例适用于服务器结束通知联结的处理的操作流程图。
较佳实施例的详细描述本发明的发明者已经确定了一个分布式文件系统,该文件系统使得用户可以高效和有效地高速缓存由服务器所管理的对象,从而大大改善系统的对象共享性能。发明者也已经意识到,能够使用户迅速确定在客户离线的同时服务器上的哪一个文件已被更改,可以明显地减小重新有效与用户高速缓存对象有关的工作。于是,本发明集中于一个使用通知联结的方式来管理高速缓存对象的系统和方法。由本发明所管理的高速缓存对象的方法非常不同于常规的文件高速缓存方法。例如,某些常规方法要求基于各个项目的基础来更新各个高速缓存的文件。这些要求需要大量的文件管理资源并且会将一些过时的高速缓存文件发送至应用和用户。其它常规方法需要通过将所有高速缓存文件与在服务器上的对应文件相比较,来同步所有高速缓存的文件。通过比较来同步整个高速缓存内容会造成在客户、服务器和网络上的显著的性能负载。由于在离线的同时不可能重新生效,在客户与服务器相断开的同时会影响高速缓存器的状态,因此该技术会恶化上述问题。
相比较,本发明能够使客户机迅速地确定在服务器上的哪一个对象相对于所对应的高速缓存对象已经更改,并能有效地同步这些高速缓存的对象以匹配所更改的对象。对于用户所高速缓存的对象来说,要建立与对象相关的通知联结。通知联结可以使客户机得到对对象产生变更的通知。客户机和服务器可以保持与通知联结相关的状态。这些通知联结的状态一般都可以存储于永久的存储器,这些存储器可以使客户机和服务器在重新开始或重新启动之后可以重新建立上述状态。这些状态允许客户机使得所高速缓存的对象是最新的,而不需要一定要使所有其它高速缓存的对象重新有效。本发明的上述和其它方面都将在阅读了下列详细描述以后变得更加清晰。
图1是一例根据本发明实施例、可以实现本发明的示例性高速缓存对象管理系统100的示意图。在其它结构方面,高速缓存对象管理系统100可以包括比所示结构更多或更少的组件。正如图中所示,高速缓存对象管理系统100包括在服务器103和客户机121-123上的组件。
服务器103是一个计算设备,它可以构成管理对象,以及便于客户机对对象的共享。服务器103可以包括一个或多个计算机。各个计算机一般都配置有存储器,存储器可以包括计算机可读媒介,例如,RAM、ROM、硬盘驱动器、光盘驱动器,等等。在本实施例中,存储器包括一个联结管理器105、文件管理器107和原始对象109。文件管理系统107是一个文件服务器103的软件组件,并且构成为处理服务器103的原始对象109。一例文件系统管理器107的实例是由微软(Microsoft)开发的NTFS。原始对象109是存储于服务器103的数据结构,是可以由客户机121-123所共享的。原始对象109可以是诸如文件目录的任何类型数据结构,以及诸如可执行的数据等等的任何种类文件。原始对象109一般都存储于诸如硬盘驱动器的大容量数据存储单元中。在这类大容量数据存储单元中,可以通过在硬盘驱动器中的对象存储位置,例如,,各分卷的ID、文件的ID、文件的路径等等,来识别对象。
联结管理器105是服务器103的一个软件组件,并且构成通知用户对由用户所高速缓存对象的变更。联结管理器105可以作为诸如文件系统管理器107的另一个组件的部件来集成,或者作为诸如一个过滤器的分离组件来实现。联结管理器105被配置为与通知处理器131-133的协调工作,从而保持最新的高速缓存对象141-143。将结合图2来进一步讨论联结管理器105。简单地说,联结管理器105与通知处理器131-133一起建立通知联结,以提供与所高速缓存的对象相关的通知。该通知使得用户121-123能够确定哪一个高速缓存对象141-143需要更新。
服务器103通过网路110构成了与客户机121-123的通讯,这类网络可以是任何类型的网络,例如,互联网或任何其它广域网(WAN)、局域网(LAN)、无线网,等等。在服务器103和客户机121-123之间的通讯可以结合图3作详细的讨论。简单地说,服务器103构成了与客户机121-123的通讯,以便于建立联结、发送通知。以及同步高速缓存的对象141-143,等等。在客户机和服务器之间的通讯可以看成是计算机可读媒介。
客户机121-123都是能够访问服务器103对象的计算设备。客户机121-123可以通过有效的通讯连接与服务器103进行交互。客户机121-123也可以具有不与服务器103相连接的功能。客户机121-123也能够使得用户直接对其进行工作或者作为其它计算设备的服务器来进行服务。各个客户机121-123可以由存储器构成,该存储器可以包括任何类型的计算机可读媒介。客户机121-123的存储器包括所高速缓存的对象141-143和通知处理器131-133。高速缓存对象141-143可以从对客户机121-123是有用的原始对象109被复制。如果在客户机121-123和服务器103之间没有建立通讯或者失去了通讯,则高速缓存对象141-143与在服务器103上所相对应的原始对象是不同步。为了对客户机121-123有用,高速缓存对象141-143应该与相对应的原始对象109相同步。采用本发明,客户机121-123可以使用相对应的对象的通知来同步所高速缓存的对象141-143。
通知处理器131-133处理与通知有关的通讯和数据管理的是客户机121-123的部件。通知处理器131-134将结合图2作更详细的讨论。简单地说,通知处理器131-133能够与服务器103建立通知联结,以及处理适用于客户机121-123的通知和高速缓存对象的同步。
图2是根据本发明一个实施例的通知处理器131和联结管理器105的示意图。在该实施例中,联结管理器105包括一个过滤器组件205和一个服务器组件210。过滤器组件205构成了扫描从服务器103的文件系统管理器进入、出去的相关事件的对象。这些与事件相关的对象可以包括由诸如客户机121的用户高速缓存的对象。联结管理器105构成了响应这些事件来创建用于客户机121的通知。过滤器组件205构成了用于确定哪一个与相关事件有关的对象需要使用过滤器表格207的通知和将这些事件转发至服务器组件210。过滤器表格207识别需要通知的对象。一示例过滤器表格207的数据结构将结合图4作详细的讨论。
服务组件210配置为与客户机建立通知联结,用于接受与用户所高速缓存的对象变化有关的通知。在该实施例中,服务组件210保持着一个服务器联结表格215,该表格包括了与通知联结相关的状态。服务器联结表格215识别需要通知的对象,并且包括使得服务器组件210可以创建适用于用户的通知的状态。该通知可以各种不同方式提供给用户。在一个实施例中,服务器组件210构成为保持通知的记录217,该记录包含着适用于通知处理器131的通知。该实施例的一个配置包括了配置服务器组件210使得能够使通知处理器131检索通知记录217。另一个结构包括了能够响应一个事件,例如,预定时间周期的到期向通知处理器131发送通知记录217超过预定数值的通知记录217的大小,等等。
在另一实施例中,当存在着有效的通讯链路时,通知处理器131可以构成向通知处理器131发送通知。当不存在着有效的通讯链路时,通知处理器131可以构成将通知记录在通知记录217中,并且当通讯链路重新建立时向通知处理器131提供通知记录。
通知记录217可以采用许多方式来逻辑实现。在一个实施例中,通知记录217可采用多路复用的记录来实现,使得在记录中可以包括适用于多个客户机的通知。在另一个实施例中,通知记录217可以每完全客户机的记录,使得每个客户机都具有一个单独的通知记录。服务器组件210可以包含一个记录表格224,该表格包括适用于辨别多路复用的记录的那一部分是与一个特定客户机相关的或者那一个每客户机记录是与该客户机相关的。服务器组件210可以构成发送或产生有效的整个通知记录217或者仅仅是适用于客户机121的部分记录。通知处理器131可以使用在通知记录中的相关数据,并且向客户机121提供最新的高速缓存对象。
服务器组件210也构成了确定改变对象的客户机是否在其对象上具有通知联结,以及避免创建用于该客户机的通知。服务器组件210通过在与对象变化事件相关的数据中寻找客户机标识以及将该客户机标识与在客户机表格中的一个标识相匹配来作出确定,其中在用户表格中包含了与通知联结相关的各个用户的标识信息。服务器组件210也可构成了用于提供和更新用于过滤器组件205的过滤器表格207。
通知处理器131构成了与联结管理器105的交互作用,以便于对客户机121所高速缓存的对象建立通知联结。在一个实施例中,通知处理器131包含了一个客户机联结表格220,该表格可以包括与所建立的通知联结相关的状态。客户机联结表格220将结合图6作详细的讨论。简单的说,客户机联结表格220包括有关通知联结的状态,该通知联结是建立在一个或多个服务器上的。理想的说,在客户机联结表格220中的状态应该与在服务器联结表格215中的状态相匹配。然而,状态会因为连接断开和故障而不相同。一旦重新连接上,客户机和服务器就会重新同步该状态。同步表格中的状态可以用于使得在客户机121所高速缓存的对象重新有效。
图3是一例根据本发明一个实施例在一个高速缓存对象管理系统中的一客户机和一服务器之间通讯的示意图。该通讯300可以通过客户机在服务器上打开的会话来产生。为了说明的目的,所示的该通讯是在服务器103和客户机121之间。然而,在操作中,通信实际上是在服务器和客户软件组件之间进行的,例如,在通知处理器141和联结管理器105之间。
通讯302涉及获取通知联结并包括消息305和310。正如图中所示,客户机121可以通过发送一个具有通知联结请求的消息305来获取一个通知联结。通知联结是与服务器103所发出消息的对象有关,并且可以由客户机121来高速缓存。通知联结使得客户机121可以获得有关文件系统事件的通知,其中该事件与对象的更改有关。消息305包括一个可识别对象的标识符。该标识符可以包含有关在服务器103中的对象的文件路径。消息305也可以包括所需通知联结的类型。各类联结都可以指定在通知中所包含的数据。
响应该消息305之后,服务器103可以建立一个通知联结,并且用通知联结将给消息310发送至客户机121。消息310可以包括与通知联结有关的状态,例如,一个与联结唯一相关联的联结号(BN)和一个服务器的总计联结号(ABN),这些都是只与服务器103有关的客户机121唯一的单调增加的号码。服务器103和客户机121保持着一个ABN。比较客户机ABN和服务器ABN可以使得客户机121和服务器103能够确定是否掉失联结。
通讯322涉及采用客户机拉配置向客户机121发送通知,并且包括消息325和330。在客户机拉配置中,客户机121构成了从服务器103检索通知记录中的通知。客户机121可以发送包括请求,一与通知联结相关联的通知记录的消息325。通知记录可以包括与多个通知联结有关的通知。响应之后,服务器103可以发送包括通知记录的消息330。通知记录包含着根据通知联结为客户机121所创建的通知。在接受到通知记录之后,客户机121可以使用在通知记录中的通知来更新所高速缓存的对象。
通讯330涉及采用服务器发出的结构向客户机121提供通知,并且包括消息334和336。响应于与带有通知联结的对象更改有关的文件系统事件,服务器103确定一个通知,并且用该通知向客户机121发送消息334。消息315可以包括一个BN,用于识别对象。消息334也可以包括有关更改的数据,使得客户机121可以在没有与服务器103附加通讯的条件下来更新所相对应高速缓存的对象。响应之后,客户机121可以向服务器103发送一个消息336,以表示确认。
通讯340涉及响应重新连接的操作向客户机121提供通知,并且包括消息334和336。作为重新连接操作的一部分,客户机121可以发送包括请求,一与通知联结相关联的通知记录的消息342。响应之后,服务器103可以发送包括已经发送给客户机121的通知联结状态的消息346。客户机121可以使用这些状态来发现在客户机121和服务器103上所丢失的通知联结,并且重新获取或者重新建立所丢失的通知联结。响应之后,客户机121可以发送一个包括了确认信息的消息348。
图4是一例根据本发明一个实施例的过滤器表格207的示意图。过滤器表格207使得联结管理器可以确定在联结管理器扫描对象相关事件时哪一个对象与通知联结相关联。正如图中所显示的,过滤器表格400是一个由对象标识符所索引的数据结构,例如,对象标识符411-414。对象标识符411-414可以是文件名称或者目录名称,路径,名称或路径的散列值,或者任何其它标识数值。各个对象标识符标识一个对象并索引一个与该对象相关的入口。该入口可以包括多种与对象相关联的数据。在该实施例中,入口包括一个表示对象是否与通知联结相关联的布尔标识符。在另一实施例中,过滤器表格207可以简化至只包含与通知联结相关联的对象的对象标识符。正如图4所示,对象标识符411-414表示着对象P、Q、R和S,并且入口表示着对象P、Q和S与通知联结相关联。
图5是一例根据本发明一个实施例的服务器联结表格215的示意图。服务器联结表格215是一个由服务器中用于管理通知联结的联结管理器维护的数据结构。正如在图中所显示的,服务器联结表格215可以由对象标识符来索引,例如,对象标识符511-513。各个对象标识符表示一个对象,并且索引与该对象相关联的入口,例如,入口520。入口520可以包括用户标识符541-543,它们将它们相对应的入口与一个特定客户机相关联,联结号531-533唯一地识别通知联结,并且识别通知联结的类型的联结类型标识符551-553与它们所对应入口相关联。正如图5所示,联结表格215包括用于识别对象P的对象标识符511。入口520指示了用户a,b和c具有与对象P相关联的通知联结。
图6是一例根据本发明一个实施例的示例客户机联结表格220的示意图。客户机联结表格220是一种由在用户中用于管理通知联结的通知处理器来维护的数据结构。正如图中所显示的,客户机联结表格是一种由服务器标识符,例如,服务器标识符611-612所索引的数据结构。服务器标识符611-612表示具有客户机通知联结的服务器,正如图中所显示的,服务器标识符611标识服务器R11,这表示服务器R11与ABN标识符615、偏置617以及入口620相关联。
ABN标识符615表示与服务器R11相关联的总计联结号。总计的联结号是单调增加的,并且使得客户机能够确定是否存在着掉失的通知联结。偏置617可以用于识别在可以从一个特定服务器中接受到通知的通知记录中的最后位置。偏置617使得客户机可以在接受到来自服务器的通知之后开始行动。这避免客户机一定要分析在服务器上的整个通知记录,即使在通知记录包括了用户已经接受到通知时。偏置617可以是一个指向用户通知记录的指针或者一个多路复用通知记录。
入口620包含着可以使客户机管理通知联结和更新与通知联结相关联的高速缓存对象的数据。在一个实施例中,入口包括了对象标识符641-643和联结号631-633。对象标识符641-643标识了对应于通知联结的高速缓存对象。各个高速缓存对象的文件路径可以在对象标识符641-643中被编码。各个联结号631-633唯一地标识了一个在客户机和服务器R11之间的特殊通知联结。
图7是一例根据本发明一个实施例适用于客户机与服务器一起建立由服务器所管理的对象的通知联结的处理过程700的操作流程图。该处理过程可以采用由客户机高速缓存一个对象来实现或者可以要求由客户机分别初始化来实现。从开始方框开始,处理700移至方框710,在这里由用户向服务器发出通知联结的请求。在方框715,接受到来自服务器的通知联结。该通知联结可以包括唯一识别通知联结的联结号(BN)。该通知联结也可以包括访问信息,例如,与通知联结相关联的对象的文件路径。在方框720,客户机将入口添加至客户机联结表格中。该入口包含着有关通知联结的数据。在方框725,客户机更新与服务器有关的总计联结号(ABN)。在该实施例中,ABN是通知联结的BN。在方框730,客户机高速缓存与存储器所存储的通知联结相关联的对象。至此,处理过程700结束。
图8是一例根据本发明一个实施例适用于服务器与客户机建立一个对象的通知联结。该处理过程可以在客户机请求高速缓存对象时实现或者响应客户机的各个初始化时实现。
从开始方框开始之后,从方框810,处理过程800开始接受来自客户机的联结请求。在方框815,建立通知联结。在方框820,将一个入口添加到服务器联结表格中。一个入口也可以添加到一个过滤器表格中。在方框825,更新对用户唯一的ABN。在方框830,通知联结发送至客户机。至此,结束处理800。
图9是一例根据本发明一个实施例用于服务器向用户发送一个通知的处理过程900的操作流程图。从开始方框开始之后,在方框910继续处理过程900,以确定与对象相关联事件的对象。在判决方框915,作出确定是否需要用于通知事件的通知。该确定可以通过校对在过滤器表格中是否引用了对象而作出。如果不需要通知,则处理过程就结束。
返回至判决方框915,如果需要适用于对象相关事件的通知,则在方框920继续该处理过程900,在该方框中,确定与对象相关联的一个或多个通知联结。该确定可以通过校对在服务器联结表格中的入口来作出。因为多个客户机可以具有高速缓存的对象并可获得了一个通知联结,所以可能存在着多个通知联结。以下所讨论的处理过程可以应用于已经具有通知联结的每个用户。
在判决方框923,确定是否由客户利用在对象上的通知联结来产生一项对象相关事件。如需要,则客户机已经了解了对象相关事件且不再向客户机发送任何通知。如果客户机只是一个具有通知联结的客户机,则处理900就结束。否则,就在925中继续该处理。
返回至判决方框923,如果任何具有在对象上的通知联结的客户机没有产生对象相关事件,则处理过程900就转入方框925。在方框925,可以根据服务器联结表格来创建通知。
在判决方框930,确定是否需要向客户机发送通知。如果服务器被配置为在通知记录中记录所有的通知,则就不再需要该确定。然而,如果所服务器被配置为在一定的条件下可直接向用户发送通知,则只要存在着这些条件,该确定就是肯定的。如果在发送通知的同时产生了断开现象,则该确定就变为否。
如果该确定是肯定的,则处理过程900就转入至方框935,在该方框中,向各个用户发送通知并且结束该处理过程。返回至判决方框930,如果该确定为否,则与客户机相关联的通知就被发送到一个通知记录。方框935和940可以都执行并且适用于多个客户机。至此,结束处理过程900。
图10是一例根据本发明一个实施例的用于客户机重新连接服务器的处理过程1000的示意图。一旦客户机在断开一段时间之后重新连接上服务器之后,可以由客户机自动实现处理过程1000。处理过程1000也可以响应客户机的各个初始化来实现,或者响应外部事件来实现,例如,当通知记录的大小达到了预定的数值时由服务器所激发的外部事件。从开始方框开始,在方框1020继续处理1000,在该方框中,用户和服务器相互确认,在方框1025,比较在用户上的通知联结和在服务器上的通知联结,以确定是否存在着丢失的通知联结。如果由于系统崩溃或者其它故障引起有关通知联结的数据掉失,则可能会丢失通知联结。在一个实施例中,可以通过用户ABN和服务器ABN的比较来进行上述比较。
在判决方框1030,确定是否丢失服务器上的通知联结。用户ABN大于服务器ABN则表示存在着丢失服务器上的通知联结。例如,如果用户确定由BN所表示的通知联结大于由服务器所确立的ABN,则由用户所确立的通知联结是服务器所不能了解的通知联结。
如果存在着丢失的通知联结,则在方框1050继续处理1000,它重新从服务器中获取所丢失的通知联结。例如,客户机可以初始化处理过程700,正如原先结合图7所讨论的那样,重新获取通知联结。客户机也可以放弃这些通知联结以及与这些通知联结有关的高速缓存对象。在方框1040继续该处理。
返回至判决方框1030,如果在服务器上不存在丢失联结,则处理过程100就转入至方框1040,在该方框中,确定客户机是否丢失了联结。用户ABN小于服务器ABN,则表示用户存在着丢失的通知联结。例如,如果服务器确立的由BN所表示的通知联结,该BN大于用户所插入的ABN,则由服务器所确立的通知联结是客户所不能理解的通知联结。如果客户没有丢失通知联结,则结束该处理过程。如果客户机存在着丢失的通知联结,处理1000就转入到方框1045,在该方框中,更新客户机联结表格,以去除这些掉失的通知联结。客户机也可以高速缓存与掉失通知联结有关的对象或者放弃该联结。至此,结束该处理过程。
图11是一例适用于根据本发明一个实施例的客户机放弃通知联结的处理过程1100的示意图。处理过程1100可以通过用户放弃一个或多个通知联结来实现。为了说明的目的,可以放弃单个通知联结的环境来讨论处理1100。从开始方框开始,处理1100转入方框1120,在该方框中,确定是否放弃通知联结。客户机可以出于多种原因希望放弃一个通知联结。例如,如果客户机已经确定不再需要一个特殊的高速缓存对象,则客户机就可以删除所高速缓存的对象,并且放弃相关联的通知联结。在方框1125,客户机执行放弃通知联结的操作。例如,客户机可以删除适用于实现通知联结的各种表格中的通知联结所关联的数据。在方框1130,客户机向服务器发送一个放弃通知联结的请求。为了能保持一致性,在方框1130向服务器发送放弃请求之前,用户可以在方框1125中执行提交放弃通知联结的操作。响应之后,服务器可以发送一个对请求的确认,正如方框1135所示。至此,结束处理过程。
图12是一个适用于根据本发明一个实施例的服务器放弃通知联结的处理过程1200的示意图。处理过程1200可以通过服务器放弃一个或多个通知联结来实现。从开始方框开始,处理1200转入方框1220,在该方框,确定放弃一个通知联结。服务器可以出于不同原因希望放弃一个通知联结。例如,如果服务器已经停止管理一个对象,则服务器就可以放弃与该对象相关联的通知联结。如果客户机在时间的延伸期间没有接触过服务器,则服务器就可以放弃与该特殊客户机相关联的通知联结。
在判决方框1225,确定是否正在放弃所有与该特殊对象相关联的通知联结。如果不是,则处理1200就在方框1229继续。在方框1229,服务器就执行放弃通知联结的操作。至此,处理就转入至方框1230。
返回至判决方框1225,如果正在放弃与该特殊客户机相关联的所有通知联结,则处理就转入至方框1227,在该方框,将与客户机相关联的ABN设置为0。处理就在方框1228继续,在该方框,服务器就执行放弃所有与客户机相关联的通知联结。至此,处理就转入到方框1230。
在方框1230,服务器向客户机提供有关放弃一个特定通知联结或者放弃所有用户的通知联结的通知。该通知可以由在通知记录中所记录的通知来提供。为了保持一致性,在方框1230向用户发送通知之前,用户可以在方框1228或者在方框1229中执行提交放弃通知联结的操作。服务器可以接受来自用户的确认,正如方框1235所显示的。至此,结束处理过程。
总之,本发明使得客户机可以高速缓存大量的对象,并且能使高速缓存的对象迅速与服务器上所相对应的对象相同步。部分是通过让客户机知道在服务器上哪些高速缓存对象可以更改并需要更新,可获得本发明的功能和效率。使用通知联结,可确保向客户机通讯对所高速缓存对象所作出的变化。持久的共享通知联结状态可以使得服务器和客户机能够重新建立通知联结,以保证客户机和服务器重新启动和重新开始成功。在客户机只感兴趣所高速缓存在服务器中的部分内容的情况下,本发明也最小化了通信量。
上述的说明、实例和数据提供了对本发明的完整描述。由于可以在不背离本发明的精神和范围的条件下产生许多本发明的实施例,因此本发明取决于后附的权利要求。
权利要求
1.一种适用于客户机与服务器进行交互的计算机实施方法,该计算机实施方法包括创建一个来自原始对象的高速缓存的对象,该原始对象是由服务器管理的;和与服务器建立一个通知联结,响应与原始对象相关联的对象相关事件,该通知联结使得客户机能够获得来自服务器的通知。
2.如权利要求1所述的计算机实施方法,其特征在于,所述对象相关事件包括当所述原始对象已经更改时。
3.如权利要求1所述的计算机实施方法,其特征在于,建立所述通知联结是响应创建该高速缓存对象来执行的。
4.如权利要求1所述的计算机实施方法,其特征在于,还包括获得一个来自所述服务器的通知;和,使用所述通知来更新所述高速缓存的对象。
5.如权利要求1所述的计算机实施方法,其特征在于,获得所述通知包括检索一个包含所述通知的通知记录。
6.如权利要求1所述的计算机实施方法,其特征在于,还包括在断开一段时间周期之后,重新连接服务器;请求一个包含一个通知的通知记录;和,使用所述通知,将所述高速缓存的存对象与所述原始对象相同步。
7.如权利要求1所述的计算机实施方法,其特征在于,还包括包含与所述通知联结相关联的状态。
8.如权利要求7所述的计算机实施方法,其特征在于,所述状态是采用持久媒介来保存的。
9.如权利要求8所述的计算机实施方法,其特征在于,所述状态包括一个唯一识别所述通知联结的联结号。
10.如权利要求8所述的计算机实施方法,其特征在于,所述状态包括一个对该客户机是唯一的总计联结号。
11.如权利要求8所述的计算机实施方法,其特征在于,还包括在重新启动之后在客户机上重新创建状态。
12.如权利要求11所述的计算机实施方法,其特征在于,还包括将客户机的状态与服务器的对应状态相同步。
13.一种适用于服务器与客户机进行交互的计算机实施方法,该计算机实施方法包括与所述客户机创建一个通知联结,响应与一个与对象相关联的对象相关事件,该通知联结使得所述客户机能够获得来自服务器的通知;和,使得所述客户机能够高速缓存所述对象。
14.如权利要求13所述的计算机实施方法,其特征在于,所述对象相关事件包括何时所述原始对象已经被更改。
15.如权利要求13所述的计算机实施方法,其特征在于,建立所述通知联结是响应来自所述客户机的请求以高速缓存所述对象来执行的。
16.如权利要求13所述的计算机实施方法,其特征在于,还包括确定一个不是由所述客户机造成的对象相关事件;根据所述通知联结来创建一个通知;和向所述客户机提供所述通知。
17.如权利要求13所述的计算机实施方法,其特征在于,还包括确定一个不是由所述客户机造成的对象相关事件;根据所述通知联结来创建一个通知;和,在一个通知记录中记录所述通知。
18.如权利要求17所述的计算机实施方法,其特征在于,还包括与所述客户机创建了一个连接;和,向所述客户机发送所述通知记录。
19.一种用于共享对象的分布式文件系统,该分布式文件系统包括一个服务器构成管理原始对象,该服务器包括一个联结管理器,其构成向各客户机发布通知联结,响应于与一个原始对象相关联的一个对象相关事件,每个通知联结使得一个客户机能够从所述服务器获得一个通知。
20.如权利要求19所述的分布式文件系统,其特征在于,所述联结管理器构成了根据所述通知联结向所述客户机提供通知。
21.如权利要求19所述的分布式文件系统,其特征在于,所述服务器还包括一个文件系统管理器,它构成了管理所述原始对象,并且所述联结管理器包括一个过滤器组件,该过滤器组件构成了提供监测与所述文件系统管理器相关联的通讯话务量来确定对象相关事件。
22.如权利要求19所述的分布式文件系统,其特征在于,所述联结管理器构成了维护一个联结表格,并且所述联结表格包括与一个原始对象和一个向其提供通知的客户机相关的每个通知联结的状态。
23.如权利要求19所述的分布式文件系统,其特征在于,所述联结管理器构成了维护一个通知记录,并且所述通知记录包括适用于所述客户机的通知。
24.如权利要求19所述的分布式文件系统,其特征在于,还包括一个客户机构成了创建一个与所述服务器管理的原始对象相关联的高速高速缓存的对象,所述客户机包括一个通知处理器,它与所述服务器一起构成了维护一个与所述原始对象相关联的通知联结。
25.如权利要求19所述的分布式文件系统,其特征在于,所述通知处理器构成了从所述服务器获得一个与所述通知联结相关联的通知记录,并且根据所述通知记录来更新所述高速缓存的对象。
26.如权利要求25所述的分布式文件系统,其特征在于,所述通知记录包括与多个通知联结相关联的通知。
27.如权利要求19所述的分布式文件系统,其特征在于,所述通知处理器构成了维护一个联结表格,并且所述联结表格包括与一个高速缓存的对象的各个通知联结相关的状态以及管理对应于所述高速缓存对象的原始对象的服务器的状态。
28.一种用一种数据结构来编码的计算机可读媒介,该媒介包括一个第一索引数据字段,它包含着对象标识符,各个对象标识符可唯一识别一个由服务器所管理的对象;以及,一个第二数据字段,它包含多个入口,各个入口可索引一个在所述第一索引数据字段中的对象标识符,并且包含着与在服务器和一个高速缓存了由所述对象标识符所标识的对象的客户机之间的通知联结相关联的状态。
29.如权利要求28所述计算机可读媒介,其特征在于,在所述第一索引数据字段中各个对象标识符包括一个与一个对象相关联的文件路径。
30.如权利要求29所述计算机可读媒介,其特征在于,各个对象标识符包括一个文件路径的散列值。
31.如权利要求28所述计算机可读媒介,其特征在于,所述第二数据字段的各个入口包括了一个唯一可识别一个通知联结的联结号。
32.如权利要求28所述计算机可读媒介,其特征在于,所述第二数据字段的各个入口包括了一个识别与一个通知联结相关联的客户机的客户机标识符。
33.如权利要求28所述计算机可读媒介,其特征在于,所述第二数据字段的各个入口包括了一个识别与一个通知联结相关联的类型的类型标识符。
34.一种用一种数据结构来编码的计算机可读媒介,该媒介包括一个第一索引数据字段,它包含着服务器的标识符,各个服务器标识符唯一识别一个管理一个原始对象的服务器,所述原始对象可以由客户机来高速缓存;和,一个第二数据字段,它包含着多个入口,各个入口可以索引在所述第一索引数据字段中的服务器标识符,并且包含着与在该客户机和一个由服务器标识符所识别的服务器之间的通知联结相关联的状态,通知联结与该客户机从原始对象所创建的一个高速缓存对象相关联。
35.如权利要求34所述计算机可读媒介,其特征在于,所述第二数据字段的各个入口包括一个唯一识别一个通知联结的联结号。
36.如权利要求34所述计算机可读媒介,其特征在于,所述第二数据字段的各个入口包括一个识别一个原始对象的原始对象标识符。
37.如权利要求34所述计算机可读媒介,其特征在于,所述第二数据字段的各个入口包括一个识别与一个原始对象相关联的高速缓存对象的高速缓存对象标识符。
38.如权利要求34所述计算机可读媒介,其特征在于,还包括一个第三数据字段,该第三数据字段包括了一个总计联结号。
39.如权利要求34所述计算机可读媒介,其特征在于,还包括一个第三数据字段,该第三数据字段包括一个通知记录偏置。
40.一种用于共享对象的分布式文件系统,该分布式文件系统包括用于一个客户机高速缓存一个由服务器所管理的原始对象的装置;和,用于与所述服务器和所述客户机创建一个通知联结的装置,响应于一个与所述原始对象相关联的对象相关事件,所述通知联结使得所述客户机能够从所述服务器获得一个通知。
41.如权利要求40所述的分布式文件系统,其特征在于,还包括用于从所述服务器获得一个通知的装置;和用于使用所述通知来更新所高速缓存的对象的装置。
42.如权利要求40所述的分布式文件系统,其特征在于,还包括用于在断开一段时间周期之后重新与所述服务器相连接的装置;用于请求一个包含着通知的通知记录的装置;和,用于使用所述通知同步所述高速缓存对象的装置。
43.如权利要求40所述的分布式文件系统,其特征在于,还包括用于确定一个对象相关事件的装置;用于根据所述通知联结来创建一个通知的装置;和,用于向所述客户机提供所述通知的装置。
44.如权利要求40所述的分布式文件系统,其特征在于,还包括用于确定一个对象相关事件的装置;用于根据所述通知联结来创建一个通知的装置;和用于在一个通知记录中记录所述通知的装置。
45.如权利要求40所述的分布式文件系统,其特征在于,还包括用于与所述客户机创建一个连接的装置;和用于向所述客户机发送所述通知记录的装置。
46.如权利要求40所述的分布式文件系统,其特征在于,还包括用于所述客户机放弃所述通知联结的装置。
47.如权利要求40所述的分布式文件系统,其特征在于,还包括用于所述服务器放弃所述通知联结的装置。
48.如权利要求40所述的分布式文件系统,其特征在于,还包括用于所述服务器放弃所有与所述用户相关联的通知联结的装置。
49.如权利要求48所述的分布式文件系统,其特征在于,还包括用于所述服务器重置与所述放弃的通知联结相关联的清除状态的装置。
50.一种用于维护对应于由一个服务器所管理的原始对象的高速缓存对象的计算机实施方法,该计算机实施方法包括在没有通讯链路的一段时间周期之后,重新创建在所述客户机和所述服务器之间的通讯链路;在一段时间周期中,获得来自所述服务器有关至少一个所述原始对象所作的变化的通知;和,使用所述通知来同步一个对应于至少一个原始对象的高速缓存对象,而不是同步所有的高速缓存对象。
51.一种用于采用由一个服务器所维护的对应原始对象来同步由个月所维护的高速缓存对象的计算机实施方法,该计算机实施方法包括由所述服务器来持久维护与所述原始对象相关联的服务器联结状态,所述服务器联结状态对应于与所述原始对象相关联的通知联结,每个通知联结使得所述客户机可以在已经更改了至少一个原始对象时获得来自所述服务器的一个通知;和由所述客户机来持久维护对应于所述服务器联结状态的客户机联结状态。
52.如权利要求51所述计算机实施方法,其特征在于,还包括在一个服务器重新启动或重新开始之后,重新建立所述服务器的联结状态。
53.如权利要求52所述计算机实施方法,其特征在于,还包括在一个服务器重新启动或重新开始之后,重新恢复与所述通知联结相关联的通知。
54.如权利要求52所述计算机实施方法,其特征在于,还包括在一个客户机重新启动或重新开始之后,重新建立所述客户机的联结状态。
55.如权利要求54所述计算机实施方法,其特征在于,还包括在一个服务器重新启动或重新开始之后,记录与所述通知联结相关联的通知。
56.如权利要求51所述计算机实施方法,其特征在于,还包括由所述服务器来确定放弃一个通知联结;由所述服务器来执行放弃所述通知联结的操作;和,由所述服务器向所述客户机提供一个用于放弃所述通知联结的通知。
57.如权利要求56所述计算机实施方法,其特征在于,执行向所述服务器提交放弃所述通知联结的操作。
58.如权利要求57所述计算机实施方法,其特征在于,执行在向所述用户提供所述通知之前完成操作。
59.如权利要求51所述计算机实施方法,其特征在于,还包括由所述服务器来确定放弃所有与所述客户机相关联的通知联结;由所述服务器来执行放弃所述通知联结的操作;和,由所述服务器向所述客户机提供一个用于放弃所述通知联结的通知。
60.如权利要求59所述计算机实施方法,其特征在于,执行向所述服务器提交放弃所述通知联结的操作。
61.如权利要求60所述计算机实施方法,其特征在于,执行在向所述客户机提供所述通知之前完成操作。
62.如权利要求51所述计算机实施方法,其特征在于,还包括由所述客户机来确定放弃一通知联结;由所述客户机来执行放弃所述通知联结的操作;和请求所述服务器放弃所述通知联结。
63.如权利要求62所述计算机实施方法,其特征在于,执行向所述客户机提交放弃所述通知联结的操作。
64.如权利要求63所述计算机实施方法,其特征在于,执行在请求所述服务器放弃所述通知联结之前完成操作。
全文摘要
本发明提供一种使用通知联结的方式来管理高速缓存对象的系统和方法。一个服务器构成了管理原始对象。一个客户机创建来自原始对象的高速缓存对象,并且与服务器一起建立通知联结。响应一个与原始对象相关联的对象相关事件,各个通知联结使得客户机能够获得一个来自服务器的通知。客户机使用在通知中的数据来更新对应于原始对象的高速缓存对象,而无需同步其它高速缓存的对象。
文档编号G06F12/00GK1592203SQ20041006281
公开日2005年3月9日 申请日期2004年6月18日 优先权日2003年6月19日
发明者D·C·斯笛雷, R·库马, 凌云, 达尼罗达米克埃尔米达, S·P·帕笛卡 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1