再生用于备份软件的代理程序的制作方法

文档序号:6577827阅读:200来源:国知局
专利名称:再生用于备份软件的代理程序的制作方法
技术领域
本发明领域本发明涉及用在备份软件系统中的代理程序模块,并特别涉及用于更新远程工作站上的代理程序模块的系统和方法。版权公告本专利文件公开的部分包含受版权保护的技术内容。对于出现在专利和商标局专利文件和档案中的受版权保护的技术内容,版权拥有者授权由专利文件或专利公开中的任何一个对其所进行的准确复制,但是对于未出现在专利和商标局专利文件和档案中的受版权保护的技术内容,无论其为什么版权拥有者都保留全部版权。本发明背景技术现代计算机网络通常按照客户/服务器体系结构构成。客户/服务器体系结构是一种在局域网(“LAN”)使用的结构,该结构将服务器和单个的工作站都认为是智能的、可编程的装置。一般地,一个LAN包括多个“前端”客户计算机和一个“后端”服务器。客户部分通常为一个人计算机,将其运行程序的全部能力和特点提供给用户。通常,客户计算机(本文称为工作站)具有其本身的处理能力和硬盘驱动器或其他局部存储设备。可以为一个人计算机、小型计算机或主机的服务器通过提供诸如数据管理、信息共享和保密之类的服务提高客户部分的性能。服务器向工作站提供包括例如备份服务的服务。
通常,LAN的用户(一般为网络管理者)希望备份存储在LAN的某些或全部计算机,包括工作站的硬盘上的数据。在备份过程中,将存储在LAN的工作站和服务器的文件下载到诸如磁带驱动器上的磁带之类的中央存储设备。这样,例如,如果工作站上的文件被损坏,网络管理器将从中央备份存储设备检索丢失数据的备份拷贝。
典型的备份程序具有多个部分。在服务器上集中运行的备份引擎(engine)能够控制数据写入到备份存储设备(用于备份作业),控制读出备份存储设备上的数据(用于恢复作业),管理作业的任务队列,以及控制与客户计算机的通信。一般在客户计算机运行的管理控制台协助网络管理者管理工作站备份。例如,管理控制台将执行诸如作业提交,查看记录文件,数据库管理,调度和类似工作之类的作业。
备份程序常常包括代理程序。一个代理程序是一小段软件,通过每个工作站存储和处理以执行服务器的从属任务。这样,在每个要备份的计算机运行代理程序。代理程序不是一个完整的计算机程序,而是支持服务器以完成为在其上运行代理程序的工作站定义的任务的一段软件。在备份程序中,代理程序的一项作业是将数据从工作站移动到服务器并从服务器接收数据以及将其存储在工作站。
使用代理程序协助备份和恢复过程具有很多优点。因为存在在每个工作站运行的代理程序(自然,每个工作站本身具有处理器),在每个工作站能同时进行处理。由于代理程序能够例如确定工作站存储设备的内容并就文件是否备份作出决定,不必向服务器提供存储在工作站上的文件的列表,因此减少了通信的额外开销以及提高了网络的安全性。
现在的备份程序中的代理程序技术的一个缺陷是在每个工作站加载代理程序。这样,如果网络管理者希望将备份程序更新为该程序的新的释放,网络管理者就必须经常定位和更新每个工作站上的每个代理程序。由于很多工作站位于很多物理位置,这将是一项困难和费时的工作。
特别是,在分布式应用中,不容易同步更新多个工作站上的代理程序。
更新代理程序的需求正变得越来越普遍。例如,各种备份程序的代理程序经常与工作站的操作系统程序连在一起。则用户将购买包括备份引擎和管理控制台的备份程序。由于每个工作站具有与操作系统一起预安装的代理程序,备份引擎与每个工作站通信。然而,当备份程序更新为该程序的新的释放时,能够很容易地替换/更新备份引擎和管理控制台,但替换/更新每个代理程序比较困难和费时。
还存在进行更新并且使备份引擎能同时使用更新的代理程序的需要。
每个代理程序是存储在每个工作站并被执行以支持备份引擎完成为该工作站定义的任务的一小段软件。这样,总之,每个代理程序是一个驻留在被备份或恢复的工作站上的并执行例如在该工作站上的文件处理的模块。
在典型的实施例中,使用本发明的备份程序具有三个主要部分。定位于服务器的备份引擎控制数据写入到备份存储设备(用于备份作业),控制从备份存储设备读出数据(用于恢复作业),管理作业的任务队列,以及控制与客户计算机的通信。在客户计算机运行的管理控制台能管理备份和恢复操作。如上所述,在要备份的每个工作站运行代理程序。
为解释方便,在本文使用时,术语“备份”包括“恢复”,术语“更新”包括“替换”或“修改”,以及术语“LAN”包括广域网(“WAN”)和企业广域网。
根据本发明的典型实施例代理程序的更新如下进行。假定每个代理程序被称为A1。备份引擎将包括替换A1的代理程序的执行代码的替换代理程序文件(A2)通过网络电传输到每个工作站。备份引擎还将一个例如被称为“Swapit”的可执行的再生模块电传输给每个工作站。A1和Swapit通过A1存储在工作站。
可选择地,每个代理程序A1将一个检验A2和Swapit成功接收的消息传输给备份引擎。
此后,备份引擎将“执行/结束“命令传输给每个工作站(即,每个工作站上的A1)。每个代理程序A1加载Swapit模块并通过其工作站执行,然后每个代理程序A1结束其操作。
在每个工作站执行的Swapit模块将A1改名以保存A1的拷贝。接着Swapit模块将A2改为适合执行的新名字,例如,改为A1。例如,当从备份引擎接收到命令时,Swapit模块使A1被执行或者可用于执行。
如果需要的话,本发明可用于更新LAN上的代理程序的子集。
每个工作站可以具有多于一个的备份代理程序。本发明是可升级的并能很容易地适应更新存储在工作站的多于一个的代理程序。
如果更新操作不成功,本发明具有允许适度取消该处理并恢复旧的代理程序(例如,上面实例中的A1)的能力。
本发明能协调更新的定时。例如,对于较大的LAN,新的代理程序(例如,A2)的传输能在很多夜晚进行,并且Swapit模块的执行能在所有的工作站上同时进行。
本发明的备份代理程序具有能够进行高效备份网络上的全部工作站的存储设备的能力。当结合更新处理使用时,减少网络通信的额外开销。
应注意到,例如,备份引擎仅在两种情况下需要与工作站通信(当传送新的代理程序和Swapit模块时和发出“执行/结束”指令时)。全部处理或者通过“旧的”代理程序或者通过Swapit模块“自动”执行,而不是响应来自服务器的一组命令来执行,两种执行都在工作站上进行。
也可以使用压缩和解压缩技术来减少传输时间和中间存储费用。


图1是本发明使用的网络结构的系统图。
图2是示出的客户系统的硬件配置的方框图。
图3是本发明的典型实施例的示范的更新处理的流程图。
图4是一个示范的更新模块的操作流程图。详细描述现在首先参考图1,图1示出结合本发明使用的一个典型网络的图。服务器110通过网络120连接到客户计算机C1-Cn。网络120可以是诸如局域网(LAN),广域网(WAN),或支持TCP/IP,以太网,X.25等的任何范围协议的公共交换网(PSN)之类的支持计算机到计算机通信的任何类型的网络。服务器110执行备份引擎程序。服务器110连接到备份存储设备(未示出)。
客户计算机C1-Cn中的每一个是一个具有诸如,例如,视窗95或视窗NT操作系统之类的操作系统程序的工作站。每个客户计算机C1-Cn存储并执行(当被备份引擎指示这样做时)一个代理程序。每个代理程序执行每个客户计算机Cl-Cn的备份引擎的确定任务。例如,可以构成代理程序来断开和/或连接到插口(socket)并“收听(listen)”从服务器110上的备份引擎传来的命令。例如,备份引擎可以请求每个代理程序将选择文件“推入”服务器110以便服务器110(在备份引擎的控制下)能够将该文件拷贝到备份存储设备。
下面是本发明的代理程序能够执行的某些功能的更为详细的示意性描述。备份作业可以规定要备份的特定文件或备份文件的标准(例如,由Bob创建的所有文件,所有文字优美的文件,等)。由管理控制台创建备份作业,该作业在客户计算机(例如,C2)上运行,并由服务器110上的备份引擎执行。如果要备份规定的文件,备份引擎就向在加载该文件的客户计算机上运行的代理程序发出请求,代理程序检查该文件是否可用于备份,以及将该文件的拷贝送到备份引擎。如果使用标准识别要备份的文件,备份引擎就将该标准提供给适当的客户计算机上的代理程序。接着每个代理程序将扫描存储设备的目录结构。如果由代理程序定位的一个文件与标准一致,代理程序就将该文件的拷贝送到备份引擎。或者,可以使用环形缓冲器,代理程序A将与标准一致的文件名增加到缓冲器并且代理程序B执行读/写操作以便将该文件送到备份引擎。这样,可以看出,代理程序作为一个从属设备协助服务器完成客户计算机定义的任务。
图2示出图1的客户计算机(例如,C1)的详细硬件配置。在典型实施例中,客户计算机C1包括执行计算机程序(包含根据本发明的代理程序)并管理和控制客户计算机C1操作的中央处理单元210。诸如软盘驱动器之类的存储设备220连接到中央处理单元210。连接到中央处理单元210的存储设备230也提供存储计算机程序和数据的装置。存储设备230最好是一个具有较高存储容量的硬盘。诸如RAM之类的动态存储器设备240连接到中央处理单元210。客户计算机C1包括诸如,例如,键盘250,鼠标260和监视器270之类的一般的输入/输出设备。剩余的每个客户计算机C2-Cn配置与此相似。也可以类似地配置服务器110,但是可以进一步包括与多个高容量存储介质的连接。
根据本发明,每个客户计算机C1-Cn上的代理程序由服务器110更新。这样,从服务器上的存储设备接收“新的”代理程序。或者,“新的”代理程序可以原始存储在连接到网络120并与客户计算机Cl-Cn通信的任何其他的计算机并由此从这里接收。
图3是表示根据本发明的典型的更新处理的流程图。
根据本发明的典型实施例,备份引擎首先将包含更新的代理程序的文件传输(或使其被传送)给每个客户计算机C1-Cn(或其子集)(步骤310)。也传输“Swapit”模块,结合图4的流程图将对其进行详细描述(步骤310)。
(在每个客户计算机C1-Cn执行的)“旧的”代理程序接收并存储工作站发送的文件(步骤310)。接收的文件局部存储在客户计算机Cl-Cn(例如,在存储设备230)并具有“new”文件扩展名以指示一个新文件。这样,例如,“代理程序.new”可以表示新的可执行代理程序(后面对其改名)。“旧的”代理程序可以有选择地向备份引擎发回验证文件是否被成功接收和存储的消息(步骤310a)。
接下来,备份引擎将“执行/结束”命令发送到适当的客户计算机C1-Cn(步骤330)。执行/结束命令可以包括识别客户计算机C1-Cn要执行的程序的参数(例如,在这种情况下“Swapit”)。与此相应,每个代理程序加载并使被该参数,例如,Swapit识别的程序被执行(步骤340),然后结束运行(步骤350)。
图4的流程图提供图3中步骤310和340的Swapit模块的示范程序流程的细节。在每个客户计算机C1-Cn执行Swapit模块。Swapit模块可以在每个客户计算机C1-Cn上同时执行。当开始执行时,Swapit模块将“旧的”代理程序改为新名字以保存该版本代理程序的拷贝(步骤410)。例如,“代理程序.exe”可以改为“代理程序.o1d”(另外,Swapit模块也可以简单地删除该旧的代理程序)。然后Swapit模块将与更新的代理程序有关的文件改为适合执行的新名字(步骤410)。例如,“代理程序.new”改为“代理程序.exe”。
一旦更新,就保留新的代理程序以作为备份引擎的从属程序。换言之,可以要求在更新处理结束时执行新的代理程序。这样,在客户计算机进行下面的附加步骤。在将全部适当文件改名之后,Swapit模块确定是否仍执行旧的代理程序(步骤420)。例如,这可以通过调用返回执行模块的“handle”的视窗NT命令来实现。当请求该代理程序模块的handle时如果返回handle,代理程序就仍在执行。在这种情况下,Swapit模块等待预定时间长度(步骤430),然后再次检查“handle”(步骤420)。如果不返回handle,旧的代理程序就终止。然后Swapit模块启动代理程序软件,即,更新的代理程序(步骤440)。
应清楚可以在一段时间,例如,当网络使用频率较低时执行步骤310到320。一旦所有的客户计算机C1-Cn已接收更新的代理程序和Swapit模块,随后就将“执行/结束”命令同时送到执行更新的所有客户计算机Cl-Cn。
如果需要的话,可以将处于一个信息包的新的代理程序和Swapit模块发送到客户计算机Cl-Cn,或者,也可以分时以分开的文件发送。
可选择地,新的代理程序可以删除Swapit模块。
对上面内容作出的某些变化包括将软件修补程序传输给代理程序而不是替换代理程序。在这种情况下,Swapit模块将i)作旧的代理程序的备份拷贝,ii)将软件修补程序应用到旧的代理程序,和iii)使代理程序可被执行。
在一个替换实施例,例如,可以将Swapit模块配置为在一预定时间自动执行。这样,不必进行步骤330。在步骤350,Swapit模块将确定是否正执行代理程序,并暂停操作直到不再执行代理程序时为止。
应清楚本发明的原则可以应用到在远程系统执行的任何代理程序的更新,而不仅是备份代理程序的更新。
可以通过使用逻辑电路和包括诸如计算机程序之类的编码计算机可读指令的计算机存储器实现本发明的代理程序和Swapit模块。上面详细描述逻辑电路或计算机存储器的功能性。
尽管参考示范实施例已特别表示和描述了本发明,本领域的技术人员应明白在不脱离本发明的精神和范围情况下可以对本发明的形式和细节作出各种变化。
权利要求
1.一种用于更新在备份软件程序中使用的代理程序的方法,在具有一个服务器和多个工作站的网络上操作该备份软件程序,服务器连接到备份存储设备,该方法包括步骤提供在服务器上执行的备份引擎;提供在多个工作站中的每一个执行的代理程序作为备份引擎的从属程序;在备份引擎的控制下,将更新的代理程序发送到每个工作站;在备份引擎的控制下,将可执行的再生模块发送到每个工作站;在每个工作站上的代理程序的控制下,将更新的代理程序和可执行的再生模块存储在每个工作站;在备份引擎的控制下,将一执行命令发送到每个工作站上的代理程序;在每个工作站上的代理程序的控制下,使可执行的再生模块执行;终止代理程序的操作;在每个工作站上的可执行的再生模块的控制下,将代理程序改名为恢复名;在每个工作站上的可执行的再生模块的控制下,将更新的代理程序改名为代理程序的名字;和在每个工作站上的可执行的再生模块的控制下,使更新的代理程序作为该代理程序进行操作。
2.如权利要求1所述的方法,进一步包括执行工作站上的代理程序来协助备份引擎进行备份操作的步骤,其中存储在工作站上的文件通过网络备份到备份存储设备。
3.如权利要求2所述的方法,进一步包括在每个工作站上的代理程序的控制下,将更新的代理程序和可执行的再生模块的成功接收通知备份引擎的步骤。
4.如权利要求2所述的方法,进一步包括删除可执行的再生模块的步骤。
5.如权利要求2所述的方法,其中进行将一执行命令发送到每个工作站上的代理程序的步骤以便能够同时更新每个代理程序。
6.如权利要求1所述的方法,进一步包括通过将具有恢复名的代理程序改名为该代理程序的名字恢复该代理程序的步骤。
7.一种用于更新在备份软件程序中使用的代理程序的系统,在具有一个服务器和多个工作站的网络操作该备份软件程序,服务器连接到备份存储设备,该系统包括在服务器上执行的备份引擎,该备份引擎包括将更新的代理程序发送到每个工作站的装置,将可执行的再生模块发送到每个工作站的装置,和将执行命令发送到每个工作站上的代理程序的装置,和每个工作站上的代理程序,代理程序包括将更新的代理程序和可执行的再生模块存储在每个工作站的装置,和使可执行的再生模块执行的装置;其中在每个工作站上的可执行的再生模块将代理程序改名为恢复名,将更新的代理程序改名为代理程序的名字,并使更新的代理程序作为该代理程序进行操作。
8.如权利要求7所述的系统,进一步包括用于执行工作站上的代理程序来协助备份引擎进行备份操作的装置,其中存储在工作站上的文件通过网络备份到备份存储设备。
9.如权利要求7所述的系统,进一步包括用于将更新的代理程序和可执行的再生模块的成功接收通知备份引擎的装置。
全文摘要
一种用于更新在备份软件程序中使用的代理程序的系统。在具有,例如,服务器(110)和多个工作站(C1,C2…Cn)的网络(120)操作该备份软件程序(310)。在服务器执行备份引擎(310)。在工作站(C1,C2…Cn)中的每一个执行代理程序(320)。备份引擎(310)将更新的代理程序(310a)发送给每个工作站,将可执行的再生模块发送给每个工作站以及将一个执行命令(330)发送给每个工作站上的代理程序。每个工作站上的代理程序存储更新的代理程序和可执行的再生模块并使可执行的再生模块执行。可执行的再生模块(340)删除或改名代理程序,并且也将更新的代理程序改名为代理程序的名字,然后使更新的代理程序作为该代理程序进行操作。
文档编号G06F15/16GK1410901SQ0211814
公开日2003年4月16日 申请日期2002年4月20日 优先权日1996年10月29日
发明者C·H·陈, M·龙, W·斯 申请人:电脑相关想象公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1