在计算机系统中提供卷快照相关性的方法和设备的制作方法

文档序号:6647175阅读:135来源:国知局
专利名称:在计算机系统中提供卷快照相关性的方法和设备的制作方法
技术领域
本发明涉及计算机系统方面的备份或恢复。更具体地说,本发明涉及存储有关应用程序相关性的信息,以便计算机系统可以有效地返回到与相关性信息有关的崩溃前状态的方法和设备。本发明还针对可获得备份信息那一瞬时的任何恢复操作。并且,本发明还针对最好能回退到已知的或所希望的前系统配置的环境。
背景技术
当计算机系统崩溃或系统冻结时,可能导致从微不足道到不能恢复原状的各种后果。对于独立的计算机或客户机计算机,本地系统的崩溃可能导致工作产物的丢失。例如,没有得到适当保存的任何东西都可能无法被进一步存取或使用。并且,用户可能因不得不重新启动计算机系统而感到不便,从而花费了额外时间。在网络服务器和其它计算机系统的情况下,系统崩溃甚至可以殃及四邻,影响众多用户、客户和/或顾客。随着计算机系统变得越来越复杂,总的说来,似乎程序设计人员再也不能完全消除计算机或应用程序“冻结(freeze)”或“崩溃(crash)”的系统状态了。
在“恢复到以前状态”的情况中,我们所希望的是把系统恢复到合乎需要的以前状态。这种状态含有当,例如,我们已经安装好新软件和新系统没有按预料的那样运行时的值。
在承认了系统崩溃或冻结的概率不是零的事实之后,出现了与改进把计算机系统从崩溃状态复原到稳定状态的进程有关的、称为复原的研究领域。从系统不稳定状态中复原过来已经成为许多研究和开发的主题。
一般说来,重新启动或重新进行复原的目的是在崩溃之后,让计算机系统返回到正好在崩溃之前或已知相容备份信息组那一瞬时计算机系统正在运行的以前的和认为正确的状态。由于不能保证代表与所有应用程序相关性有关的相容状态的瞬时信息,因此,一些恢复或备份服务程序可能把应用程序的状态不正确地复位成不正确的状态,或者,可能需要对计算机系统的每个进程进行与资源密切相关的强制冻结(freeze)或刷新(flush),以便为备份或恢复的应用程序、卷(volume)或其它对象复原到稳定状态。
例如,数据库系统设计者已经尝试设计出使数据丢失量、复原到崩溃前运行状态所需的工作量和在正常运行期间复原对数据库系统的性能影响达到最小的数据库恢复技术。但是,每当在恢复或备份服务程序之前,存在文件保存操作、注册表写操作、数据库存储操作、活动目录写操作等相关性时,最好复原到代表原子瞬时(atomic point in time)的崩溃前状态。
已经开发出来的一种有效备份技术利用了提供卷的快照(snapshot)的快照提供器。与每当系统崩溃时对卷进行强制逐个文件复原不同,快照使计算机系统的状态能够‘被冻结’在任意瞬时上,从而启用快得多的和与资源关系不那么密切的备份进程。一般说来,为要在时刻t0创建的快照作出请求,那个快照的创建反映了时刻t0的卷数据。在t0之后,可以备份快照本身的内容,因此,通过利用勘误数据或文件,避免了全备份,这使系统能够只根据自从前一时刻以来发生改变的数据,就可以有效地行动。
Cabrera等人在2000年2月16日提出的、名称为“支持同一卷的多个瞬时快照”的美国专用申请第09/505,447号(″Support for MultipleTemporal Snapshots of Same Volume″,U.S.Patent Appln.No.09/505,447,filed 2/16/2000,to Cabrera et al)、Golds等人在2000年2月16日提出的、名称为“基于内核的崩溃相容协调器”的美国专用申请第09/505,344号(″Kernel-based Crash-Consistency Coordinator″,U.S.Patent Appln.No.09/505,344,filed 2/16/2000,to Golds et al)和Kusters等人在2000年2月16日提出的、名称为“在快照的基卷上逐渐形成勘误文件的系统和方法”的美国专用申请第09/505,450号(″System and Method forGrowing Differential File on a Base Volume of a Snapshot″,U.S.PatentAppln.No.09/505,450,filed 2/16/2000,to Kusters et al)统统涉及到备份进程,并且针对快照拍摄系统的不同方面。这些申请作为与快照拍摄服务的措施有关的背景信息列在这里,以供参考。
但是,试图为卷、应用程序或其它对象进行备份或恢复服务时经常遇到一个困难是,对于要备份或恢复的给定对象,在原子瞬时必须知道对象的状态。因此,‘快照拍摄’时知道对象的状态的最近瞬时是可以恢复对象的最近瞬时。
类似地,如果正在提供备份或快照拍摄服务,那么,必须及时地和以适合于快照一贯地反映有关原子瞬时的信息的次序冻结要备份的对象的相关性信息。
如果在这样的单个瞬时内不能提取要备份的给定对象所依赖的应用程序、任务或其它对象的状态,那么,备份进程可能因完成一个任何的备份与完成另一个任务的备份所需的任意时间量可能破坏那些应用程序、任务或其它对象中的数据而毁掉。首先,不同任务一般需要花费不同的时间量来完成,例如,读操作一般要花费与写操作不同的时间量来完成。甚至同一个任务,诸如与文件系统有关的写操作,在动态使用系统资源时,也可以花费不同的时间来完成。并且,多个应用程序正在写,还是依赖于同一个对象可能是未知的,从而建立起备份服务程序可能意识不到的相关性。
因此,对于适合于给定卷、应用程序或对象的备份或恢复操作,可能首先需要以基于给定对象相关性的某种次序冻结(暂时不再进行与之相关的写操作)某些进程或文件。尤其与快照拍摄服务程序结合在一起,其中与原子瞬时有关的状态信息高于提供瞬时备份信息,智能确定哪些应用程序或进程、仅仅那些需要遵照(冻结)行事的应用程序或进程和什么样的次序将是有利的。
并且,提供哪些应用程序的一个有信息的确定(informeddetermination)可以被排除在以恢复操作之外是有益的,其中该恢复操作提供更有效的恢复处理,将要恢复的对象恢复到以前已知的状态。
系统崩溃或冻结往往可能只涉及到少数几个有问题文件或进程。例如,当应用程序不再作出响应时,通常,从系统的角度来看,最好只终止没有响应的应用程序,或者找出可能引起程序冻结它的响应的应用程序相关性。的确,常常出现这样的情况,应用程序A的程序设计人员不能预料为了运行应用程序A而安装到给定计算机系统上的其它应用程序B、C、D等的所有组合和排列。应用程序A的运行状态可能依赖于为了适当执行而处在应用程序A的系统空间中的某些其它应用程序、存储部件、进程和文件,并且,这些相关性可能动态地变化着。因此,通过冻结可能垂直地或水平地依赖于它们的对象,在原子瞬时上冻结应用程序A的状态的方式是有用的,并且比在快照拍摄时冻结数据的整个卷(可能比备份单个对象所需的凝结得严重得多)改进了许多。由于可能存在必须以由内嵌相关性决定的次序拆开那些相关性,因此,在备份操作之前,必须以适当次序冻结或刷新要备份的给定对象可能依赖于它们的对象。
因此,由于从资源的角度来看,计算机系统的一个对象的全备份或恢复是不合乎需要的,通过根据对象的相关性,以有选择的、有效的和适当的次序有选择地和智能地冻结某些数据,追溯性地从崩溃中复原过来或建立备份的方式将是复原领域的有用补充。
Lomet等人在1999年3月15日提出的、名称为“利用逻辑登录来扩大复原的数据库计算机系统”的美国专利申请第268,146号(″DatabaseComputer System Using Logical Logging to Extend Recovery″,U.S.Appln.No.268,146,filed 03/15/99,to Lomet et al)描述了在复原进程期间,利用逻辑登录操作来降低登录成本的技术。该申请公开了通过引入使节点对象不与刷新相关性相联系的全同操作,动态打开应用程序刷新相关性信息。因此,在系统崩溃的情况下,应用程序相关性的问题已经通过逻辑登录操作得到了解决,这样,不会遇到与拆开或打开相关性有关的复原困难。但是,这种技术没有确定根据分层对象相关性信息冻结对象的次序,因此,不能用于在给定瞬时冻结涉及所有对象相关性的对象的状态。
因此,最好能提供一种通过以有选择的、有效的和适当的次序有选择地和明确地分析应用程序相关性信息,追溯性地从崩溃中复原过来或进行备份或恢复操作的方式。并且,在给定瞬时保留有关卷快照相关性的信息,即,有关哪些应用程序依赖于可能还存在进一步的相关性等的哪些其它应用程序的分层信息也是有利的。并且,最好能利用与从崩溃中复原过来有关的卷快照相关性信息,以便可以改善从崩溃状态中复原过来的进程。并且,最好能提供应用程序可以用来传送有关应用程序依赖于它们的对象的信息的统一协议。

发明内容
本发明一般涉及可能进入不稳定、冻结或崩溃状态的计算机系统。在优选实施例中,应用程序编程接口(API)协议用于向已注册应用程序作出与应用程序相关性信息有关的请求,以便可以递归地生成与目标对象有关的相关性信息表。当对于给定卷或对象同时收集到所有应用程序相关性时,可以在给定时间保留整个卷或对象的程序和数据相关性信息。借助于对这种相关性信息的访问,计算机系统不仅有利地知道哪些文件和以哪种次序冻结或刷新与给定卷或对象的备份,诸如快照拍摄,或恢复有关的文件,而且有利地知道哪些卷或对象可以从冻结进程中排除掉。
在通过服务程序请求了应用程序相关性信息之后,计算机系统可以翻译或处理相关性信息,从而在给定的一组卷或对象上安排复原事件。可以通过联网环境把该组卷或对象同点定位和远程定位成彼此相关的。在优选实施例中,与系统和应用程序之间的叠代协作进程和用于应用程序编码接口(API)的公共协议联系在一起生成相关性信息。因此,应用程序可以把它们的外部相关性传送到含有存储部件的公共软件代理器,从而在相容瞬时保留与目标对象的应用程序相关性有关的表、列表或其它有条理信息。这个表、列表或其它有条理信息可以有利地用作诸如备份、恢复或复原进程之类的服务程序,或者,其中相容瞬时应用程序相关性信息对服务程序有用的任何服务程序的一部分。
本发明的其它特征描述如下。


下面参照附图进一步描述提供卷快照相关性信息的系统和设备,在附图中图1是代表可以把本发明的各个方面合并到其中的通用计算机的方框图;图2是代表含有与之结合在一起可以实现本发明的方法和设备的服务器的示范性网络环境的方框图;图3A和3B是描绘根据本发明的应用程序相关性信息的示范性分层结构的方框图;图4是用于存储根据本发明的应用程序相关性信息的示范性存储部件的方框图;图5是用来把应用程序相关性信息传送到存储部件的、根据本发明的示范性序列的流程图;图6是通过服务程序请求和利用存储在存储部件中的应用程序相关性信息的、根据本发明的示范性序列的流程图;和图7是说明利用根据本发明存储的应用程序相关性信息进行备份或快照拍摄操作的优选实施例的、根据本发明的示范性序列的流程图。
具体实施例方式
本发明涉及由于使用而可能导致不稳定、冻结或崩溃状态的任何计算机系统。当对于给定卷(或其它目标对象)同时收集到所有应用程序相关性时,可以在给定时间内保留整个卷的程序和数据相关性信息。借助于对这个卷相关性信息的访问,计算机系统有利地知道哪些文件要包括在内和如何把它们安排在备份、恢复或其它复原进程中。同样,还可以知道哪些文件可以从进程中排除掉。
应用程序相关性指的是与文件、注册表关键字、数据库记录、活动目录实体、IIS(因特网信息服务器)元库(metabase)的任何一个或多个有关的应用程序状态相关性信息的分层组织。
在优选实施例中,应用程序编码接口(API)相关性模块为与依赖于目标对象的某些对象有关的应用程序相关性信息请求服务。相关性信息是与系统和应用程序之间的叠代协作进程联系在一起生成的。作为协作进程的结果,应用程序可以把它们的外部相关性传送到公共软件代理器,从而在存储部件中保留与应用程序相关性有关的信息表或列表。然后,在崩溃或冻结的情况下,计算机系统可以翻译或处理卷(或目标对象)快照相关性信息,从而在给定的一组卷上安排复原事件。可以有利地把这个信息表或列表继续保存为另一个备份、恢复或复原进程的一部分,供以后重新使用之用,其中目标对象的状态和/或相关性保持不变。
在优选实施例中,备份或快照拍摄服务程序利用与服务程序的备份或快照操作有关的应用程序相关性信息。因此,备份服务程序根据相关性信息的分层结构,知道哪些应用程序和进程需要在其它的应用程序和进程之前及时得到冻结,以便成功地完成备份。类似地,快照拍摄服务程序根据相关性信息的分层结构,知道哪些应用程序和进程需要在其它的应用程序和进程之前及时得到冻结,以便成功地完成快照。由于正如在背景技术部分中所描述的,快照易感受到混乱的应用程序冻结和其它潜在的数据破坏,因此,相容瞬时的系统、卷或对象快照尤其适用于本发明。
正如上面所讨论的,本发明提供了改进的系统崩溃复原技术。本发明以几种方式解决了现有技术中的缺陷。如上所述,涉及系统崩溃复原技术方面的问题是有关卷快照相关性信息的信息不适合于与备份或恢复进程或适合于使用应用程序相关性信息的其它服务程序联系在一起使用。本发明的基础结构提供了保持与应用程序和其它对象的通信,以便可以存储应用程序相关性信息,供与让系统返回到崩溃前状态联系在一起或与备份或快照进程或其它服务程序联系在一起使用的API。
按照本发明,在给定时间与系统应用程序有关的应用程序相关性信息也可以在整个系统崩溃期间都一直保存着,并且,相关性信息可以用于最好以某种次序恢复目标对象相关性的某几个或更多个的恢复操作。例如,可以根据预定规则或其它规则定期调用服务程序,从而,服务程序请求系统为目标对象确定相容瞬时的相关性数据组。以后,在给定时间使用相关性信息可以包括,例如,在备份或崩溃复原进程之前,确定哪些应用程序冻结写操作,和以哪种次序。
图1和如下的讨论意在提供可以实现本发明的适当计算环境的概括性描述。尽管并非非要这样做不可,但是,仍然在可由诸如客户机工作站或服务器之类的计算机执行的、诸如程序模块之类的计算机可执行指令的一般背景下描述本发明。一般说来,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。此外,本领域的普通技术人员应该认识到,本发明可以用其它计算机系统配置来实现,包括手持设备、多处理器系统、基于微处理器的或可编程消费品电子设备、网络PC(个人计算机)、微型计算机、大型计算机等。本发明也可以在由通过通信网络链接的远程处理设备执行任务的分布式计算环境中得以实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备两者中。
如图1所示,示范性通用计算系统包括传统个人计算机20等,传统个人计算机20包括处理单元21、系统存储器22和将包括系统存储器的各种系统部件与处理单元21耦合的系统总线23。系统总线23可以是几种类型的总线结构的任何一种,包括存储器总线或存储器控制器、外围总线和利用各种总线构造的任何一种的本地总线。系统存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统(BIOS)26存储在ROM 24中,它包含,譬如在启动期间,有助于在个人计算机20内的各个单元之间传送信息的基本例程。个人计算机20还可以包括硬盘驱动器27,用于读写硬盘(未示出);磁盘驱动器28,用于读写可移动磁盘29和光盘驱动器30,用于读写诸如CD-ROM(只读存储光盘)或其它光介质的可移动光盘31。硬盘驱动器27、磁盘驱动器28和光盘驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34与系统总线23相连接。驱动器和它们的相关计算机可读介质为个人计算机20提供了计算机可读指令、数据结构、程序模块和其它数据的非易失性存储器件。尽管上述示范性的环境应用了硬盘、可移动磁盘29和可移动光盘31,但是,本领域的普通技术人员的应该认识到,在示范性的操作环境中也可以使用可以存储可由计算机存取的数据的其它类型计算机可读介质,譬如,盒式磁带、闪速存储卡、数字视频盘、伯努利(Bernoulli)盒式磁带、随机存取存储器(RAM)、只读存储器(ROM)等。
在硬盘、磁盘29、光盘31、ROM 24或RAM 25上可以存储大量程序模块,包括操作系统35、一个或多个应用程序36、其它程序模块37和程序数据38。用户可以通过诸如键盘40和定位设备42之类的输入设备,把命令和信息输入个人计算机20。其它输入设备(未示出)可能包括麦克风、操纵杆、游戏盘、碟形卫星天线、扫描仪等。这些和其它输入设备往往通过与系统总线耦合的串行端口接口46与处理单元21相连接,但是也可以通过其它接口相连接,譬如,通过并行端口、游戏端口或通用串行总线(USB)。监视器47或其它类型的显示设备也通过接口,譬如,视频适配器48与系统总线23相连接。除了监视器47之外,个人计算机通常还包括其它外围输出设备(未示出),譬如,扬声器和打印机。
个人计算机20可以在与一台或多台远程计算机,譬如,远程计算机49进行逻辑连接的联网环境下运行。远程计算机49可以是另一台个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且,尽管在图1中只显示出存储器存储设备50,但是通常包括上述与个人计算机20有关的那些单元的许多个或全部。在图1中描绘的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这样的联网环境在办公室中是司空见惯的,例如,企业范围内的计算机网络、内联网和因特网。
当用在LAN联网环境中时,个人计算机20通过网络接口或适配器53与LAN 51相连接。当用在WAN联网环境中时,个人计算机20通常包括用于在广域网52,譬如,因特网上建立通信的调制解调器54或其它装置。调制解调器54可以是内置式的,也可以是外置式的,它通过串行端口接口46与系统总线23相连接。在联网环境中,针对个人计算机20描绘的程序模块,或它的一部分可以存储在远程存储器存储设备中。应该认识到,所示的网络连接是示范性的,也可以使用其它手段来建立计算机之间的通信链路。
应该注意到,上述的计算机可以作为计算机网络的一部分来部署,本发明适用于含有任意数据的存储器或存储单元和在整个任意数量的卷中存在的任意数量的应用程序和进程的任何计算机。因此,本发明可应用于含有远程或本地存储器件的、部署在网络环境中的服务器计算机和客户机计算机两者。图2显示了本发明可以应用到其中的、含有通过网络与客户机计算机进行通信的服务器的示范性网络环境。如图所示,许多服务器10a、10b等通过通信网络14(可以是LAN、WAN、内联网或因特网)与许多客户机计算机20a、20b、20c等互连。在通信网络14是,例如,因特网的网络环境中,服务器10可以是客户机20通过诸如超文本传输协议(HTTP)之类的许多已知协议的任何一种与之通信的万维网服务器。
每台客户机计算机20和服务器计算机10可以配有各种应用程序模块36、其它程序模块37和程序数据38,并且可以配有与各种存储单元或对象的连线或可以访问这些存储单元或对象。因此,每台计算机10或20可以含有与之相关的应用程序相关性信息,这种相关性可能存在于整个系统之中,包括卷内相关性、卷间相关性和/或在整个网络内的相关性,或应用程序状态从外部依赖于它的其它类型相关性。
因此,本发明可用在含有访问网络和与网络交互的客户机计算机和与客户机计算机交互的服务器计算机的计算机网络环境中。如前所述,按照本发明,API协议与应用程序(或其它对象)、公共软件代理器、注册表、存储部件和服务程序的一个或多个当中的应用程序相关性信息的传送联系在一起使用。这种API可以用各种各样的网络或系统构造来实现,因此,不应该仅限于所示和所述的例子。
图3A和3B是为了与服务程序联系在一起使用而收集在存储器件中的、反映潜在应用程序相关性信息的垂直和水平方面的状态相关性的示范性分层结构。在图3A中,应用程序X与对象Y和Z通信,从而对象Y进行对数据库400a的读访问,和对象Z进行对数据库400b的写操作。应用程序X也可以写文件对象F1和F2。服务程序可以利用这种与,例如,备份或恢复操作联系在一起瞬时收集的信息。因此,应用程序X瞬时状态相关性的知识可能对某些类型的系统服务操作带来很大好处。图3B展示了穿插在应用程序1和2中的分层信息,应用程序1和2两者都进行对数据库400c的写操作。这些写操作的一个或两个可能比另一个长,同时进行,要不然,破坏数据库400c中的数据。因此,在原子瞬时有关应用程序1和2的应用程序相关性的信息非常有助于,例如,在崩溃之后恢复应用程序1的进程。如果在试图恢复应用程序1之前没有冻结应用程序2,那么,可能导致错误。另外,分层相关性信息的知识也有助于与应用程序1和2有关的备份操作。虽然应用程序状态分层结构的这些例子包括应用程序和数据库,但是,应该明白,含有相关性的数据可以存储在许多不同类型的存储单元中,包括含有与其它这样的对象的相关性的文件、数据库记录、注册表关键字、活动目录实体、IIS元库等。
图4显示了供存储应用程序相关性信息用的、通过本发明的API使用的示范性数据结构。因此,诸如数据库或硬盘存储器之类的存储部件12可以含有存储在其中的相关性信息的列表或表。按照本发明,例如,各个列表或表可以含有首标12a和各种特征12b,譬如,分层相关性信息或收集信息的时间,以及与可以使用信息的服务程序有关的其它信息。在优选实施例中,分层相关性信息12b是用XML(可扩展标记语言)格式表述的,但是,也可以是适合于表述和传送应用程序相关性信息的任何格式。
如上所述,本发明包括系统与应用程序之间的协作进程。如图5的系统构造所示,一旦被注册(如虚线所表示的),应用程序就可以响应有关它们相关性信息的请求,把它们的外部相关性传送到公共软件代理器510。因此,服务程序500可以在给定瞬时请求目标对象的应用程序相关性信息。如果目标对象已经被注册了,代理器510就可以向目标对象请求目标对象的应用程序相关性,从而开始把与目标对象的相关性有关的信息的表或列表存储在存储部件12中。然后,通过向应用程序进一步请求相关性信息,从目标对象相关性中查找进一步的相关性。通过这种递归进程,生成目标对象相关性信息的完备列表,并且将其存储在存储部件12中。然后,通过代理器510把完备列表传送给服务程序500。服务程序500可以是为目标对象生成相容瞬时相关性列表的通用服务程序,并且可以与备份、快照或恢复服务程序分开使用,或者与它们联系在一起使用。
API协议根据收集应用程序相关性信息的服务规则,启动对有关相关性信息的应用程序的预定调用。另外,可以把应用程序注册在或安装在通过本发明的API启动的基础结构中,从而可以把最初的一组状态相关性传送到代理器,以便同时存储。每当与自身相关的状态发生改变时,应用程序就发出应用程序相关性信息在技术上也是可行的,或者可以定期调度(由代理器510或服务程序500)和收集完备相关性信息组。因此,按照本发明的API协议,应用程序能够理解它依赖于哪些其它对象或应用程序,即,应用程序意识到它自己的相关性。另外,用于在本发明的API与应用程序Appl-AppN、代理器510和/或备份服务程序500之间通信的示范性格式是XML,但是,再次提醒一起,不应该局限于某一特定的格式。
图6是与服务操作联系在一起的服务程序利用存储在存储部件12中的和由代理器510管理的应用程序相关性信息的、根据本发明的示范性序列的流程图。例如,在600,可以利用通过本发明的API协议形成的基础结构注册应用程序。应用程序可以在任何时候注册或注销。在610,确定应用程序相关性信息是否是所需信息。在620,服务程序500请求与特定卷、应用程序、数据库等(目标对象)有关的相关性信息。在630,代理器510向API相关性模块请求目标对象,和与要服务的对象有关的相关性信息集。在640,代理器510向不同程度依赖于目标对象的某些已注册应用程序请求相关性信息。最好,代理器发出局限于通过服务程序请求的目标对象相关性的请求。
在640到660,把相关性信息递归地发送到遵照与完备相关性信息组有关的各种请求的代理器510,直到已经把与目标对象有关的完备相关性信息组(例如,通过图3A的应用程序X反映的分层信息)存储在存储部件12中为止。在660,由于与目标对象有关的完备相关性信息组的请求已经完成,因此,再也没有从应用程序传送而来的应用程序相关性信息。在670,代理器510把相关性信息传送给服务程序500。在优选实施例中,只有少量完成服务请求所需的相关性信息传送给服务程序500。在680,服务程序处理和利用分层相关性信息。因此,在690,完成服务请求,并且流程可选地返回到610。
尽管通过与通用设备500联系在一起已经描述了图6的示范性序列,但是,应用程序相关性信息的预期使用可广泛应用于与复原有关的进程、包含应用程序交互的进程或应用程序被认为与其它应用程序和对象的操作有关的进程。
图7是说明利用根据本发明存储的应用程序相关性信息进行备份或快照拍摄操作的优选实施例的、根据本发明的示范性备份序列的流程图。图7说明了一种特定类型的服务,诸如全备份操作的备份服务或快照拍摄服务,它们可能与图6的结构重叠。一旦描述通用设备500,也可以使用更具体的服务程序。在本发明的优选实施例中,在710,最好将应用程序相关性信息与备份服务程序相联系,和在720,请求与目标对象有关的信息。如果由于预定的相关性信息集而已经存在相关性信息,那么,流程可以跳到770,把信息传送给备份服务程序;否则,如图6所示那样执行步骤630到660。
接着,在780,根据目标对象的相关性信息确定冻结次序,并且执行冻结次序。例如,图3B所描绘的分层相关性背景可以用于说明或许与步骤780联系在一起使用的刷新或冻结次序确定和执行。例如,根据代理器510收集的和提供给备份服务程序的应用程序相关性信息,可以确定备份服务程序首先应该冻结或刷新应用程序2,然后再冻结或刷新应用程序1,以便为目标对象应用程序1进行适当的备份服务或诸如恢复操作之类的其它服务。一旦为了备份或快照拍摄服务,以适当次序已经冻结了计算机系统的对象,备份或快照拍摄服务就可以在790与应用程序相关性无关地完成它的操作。流程可以再一次返回到710,以便进行另一个服务操作。
这里所述的各种技术可以用适当的硬件或软件,或两者的组合来实现。因此,本发明的方法和设备,或它们的某些方面或部分可以采取包含在有形介质中的程序代码(即,指令)的形式,有形介质包括,例如,软盘、CD-ROM、硬盘或任何其它机器可读存储介质,其中,当把程序代码装入诸如计算机的机器中和该机器执行这样的程序代码时,该机器就变成了实现本发明的设备。如果在可编程计算机上执行程序代码,计算机一般包括处理器、可由处理器读取的存储介质(包括易失性和非易失性存储器和/或存储单元)、至少一个输入设备和至少一个输出设备。一个或多个程序最好用高级过程或面向对象的编程语言编写,以便与计算机系统通信。但是,如果需要的话,程序也可以用汇编或机器语言编写。无论如何,语言可以是编译或解释语言,并且与硬件设施结合在一起。
本发明的方法和设备还可以以在一些传输媒体上传输的程序代码的形式具体化,这些传输媒体包括,例如,在电线或电缆上、通过光纤或通过任何其它传输形式,其中,当接收到程序代码,把这样的程序代码装入诸如EPROM(电可擦除可编程只读存储器)、门阵列、可编程逻辑设备(PLD)、客户机计算机、录像机等的机器中,和该机器执行这样的程序代码时,该机器就变成了实现本发明的设备。当在通用处理器上实现时,程序代码与处理器结合在一起,变成起执行本发明的索引功能作用的独特设备。例如,本发明的存储技术和快照拍摄技术可以分别总是要与存储数据或拍摄数据的快照联系在一起使用的硬件和软件的组合。
虽然通过结合各个图所示的优选实施例已经对本发明作了描述,但是,应该明白,可以利用其它相似的实施例,并且可以对所述的实施例进行修改和补充,来执行本发明的相同功能,而不会偏离本发明的精神和范围。例如,虽然在优选实施例中,把XML用作相关性信息的通信协议,但是,应该明白,许多不同的通信和网络协议也适合于传送基于本发明的相关性信息。并且,应该强调一下,各种各样的计算机平台,包括手持设备操作系统和其它应用专用操作系统,也在考虑之列。因此,本发明不应该限于任何单个实施例,而是应该理解为基于所附权利要求书的宽度和范围。
权利要求
1.一种在计算机系统中利用应用程序相关性信息有效地进行备份服务操作的方法,包括如下步骤利用应用程序相关性应用程序编码接口(API)注册装入所述计算机系统中的应用程序,以便在应用程序、公共软件代理器、供所述代理器使用的存储部件和备份服务程序内传送应用程序相关性信息;把至少一个应用程序相关性信息存储在所述存储部件中;和把所述应用程序相关性信息从所述存储部件传送到所述备份设备。
2.根据权利要求1所述的方法,其中,所述备份服务程序包括快照拍摄服务程序。
3.根据权利要求1所述的方法,其中,所述备份服务程序包括应用程序冻结次序的确定。
4.根据权利要求3所述的方法,其中,所述备份服务程序包括以所确定的应用程序冻结次序反映的次序冻结应用程序的执行。
5.根据权利要求1所述的方法,还包括如下步骤把所述应用程序相关性应用程序编码接口(API)装入所述计算机系统中。
6.根据权利要求1所述的方法,还包括如下步骤所述备份服务程序向公共软件代理器请求应用程序相关性信息组,以便与恢复操作联系在一起使用。
7.根据权利要求6所述的方法,其中,所述应用程序相关性信息组是成功完成恢复操作的来自所述存储部件的最小信息组。
8.根据权利要求6所述的方法,还包括如下步骤所述代理器向至少一个已注册应用程序发出与出自服务程序所请求的所述应用程序相关性信息组的信息有关的请求。
9.根据权利要求1所述的方法,还包括如下步骤至少一个已注册应用程序响应所述代理器的请求,把信息传送到所述代理器,所述信息与所述至少一个应用程序外部相关性有关。
10.根据权利要求1所述的方法,还包括如下步骤注销应用程序。
11.根据权利要求1所述的方法,其中,所述API协议是XML协议。
12.根据权利要求1所述的方法,其中,所述代理器以反映分层应用程序相关性的列表格式把所述应用程序相关性信息存储在所述存储部件中。
13.一种含有用于指令客户机计算机执行根据权利要求1所述的步骤的计算机可执行指令的计算机可读介质。
14.一种用于存储应用程序相关性信息的数据结构,包括标识应用程序的标识符,对于标识的应用程序,至少一个外部相关性是已知的;和代表所述至少一个外部相关性的数据。
15.根据权利要求14所述的数据结构,其中,代表所述至少一个外部相关性的所述数据是以XML格式存储的。
16.一种供计算机系统使用的应用程序编程接口(API),其中,所述API协议使代理器能够响应通过服务程序的请求,收集、存储和封装应用程序相关性信息,此后,把所述应用程序相关性信息传送给所述服务程序,供所述服务程序作进一步处理之用。
17.根据权利要求16所述的API,其中,所述代理器把所述信息传送给它的服务程序是备份服务程序。
18.根据权利要求16所述的API,其中,所述服务程序包括快照拍摄服务程序。
19.根据权利要求16所述的API,其中,所述服务程序包括应用程序冻结次序的确定。
20.根据权利要求16所述的API,其中,所述代理器以反映分层应用程序相关性的列表格式把所述应用程序相关性信息存储在所述存储部件中。
21.一种根据权利要求14的数据结构,传送与计算机系统中的应用程序有关的应用程序相关性信息的应用程序编程接口(API)。
22.一种计算机系统,包括装入所述系统中的数个应用程序,其中,至少一个应用程序含有至少一个与之相联系的外部数据相关性;用于存储应用程序相关性信息的存储部件;依所述系统中的应用程序编码接口(API)的通信协议起作用的代理器,用于处理从所述代理器传送到所述API的应用程序相关性信息,和用于把应用程序相关性信息存储在所述存储部件中;和向所述代理器作出有关应用程序相关性信息的请求的服务程序,其中,所述代理器响应通过服务程序的请求,收集、存储和封装所述应用程序相关性信息,此后,把所述应用程序相关性信息组传送给所述服务程序,供所述服务程序作进一步处理之用。
23.根据权利要求22所述的计算机系统,其中,所述代理器把所述信息传送给它的服务程序是备份服务程序。
24.根据权利要求22所述的计算机系统,其中,所述服务程序包括快照拍摄服务程序。
25.根据权利要求22所述的计算机系统,其中,所述服务程序包括应用程序冻结次序的确定。
26.根据权利要求22所述的计算机系统,其中,所述代理器以反映分层应用程序相关性的列表格式把所述应用程序相关性信息存储在所述存储部件中。
27.根据权利要求22所述的计算机系统,其中,所述应用程序相关性信息组是成功完成服务的来自所述存储部件的最小信息组。
全文摘要
应用程序编程接口(API)协议用于向已注册应用程序作出与应用程序相关性信息有关的请求,以便可以递归地生成与目标对象有关的相关性信息表。当对于给定卷或对象同时收集到所有应用程序相关性时,可以在给定时间内保留整个卷或对象的程序和数据相关性信息。借助于对这种相关性信息的访问,计算机系统不仅有利地知道哪些文件和以哪种次序冻结或刷新与给定卷或对象的备份,诸如快照拍摄,或恢复有关的文件,而且有利地知道哪些卷或对象可以从冻结进程中排除掉。在通过服务程序请求了应用程序相关性信息之后,计算机系统可以翻译或处理相关性信息,从而在给定的一组卷或对象上安排恢复事件。可以通过联网环境把该组卷或对象同点定位和远程定位成彼此相关的。在优选实施例中,与系统和应用程序之间的叠代协作进程和用于应用程序编码接口(API)的公共协议联系在一起生成相关性信息。因此,应用程序可以把它们的外部相关性传送到含有存储部件的公共软件代理器,从而在相容瞬时保留与目标对象的应用程序相关性有关的表、列表或其它有条理信息。这个表、列表或其它有条理信息可以有利地用作诸如备份、恢复或复原进程之类的服务程序,或者,其中相容瞬时应用程序相关性信息对服务程序有用的任何服务程序的一部分。
文档编号G06F9/445GK1452737SQ00819465
公开日2003年10月29日 申请日期2000年6月6日 优先权日2000年4月24日
发明者乔纳森·S·戈尔迪克, 卢伊斯·F·卡布里拉, 保罗·奥尔蒂恩 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1