首页> 中国专利> 数据共享系统、数据共享方法及信息处理装置

数据共享系统、数据共享方法及信息处理装置

摘要

本发明涉及数据共享系统、数据共享方法及信息处理装置。所述数据共享系统能够防止与存储在原始节点中的原始数据不匹配的复制数据在网络上散布。所述原始节点存储有所述原始数据。第一复制节点从所述原始节点获取所述原始数据的复制数据,并将该复制数据发送给第二复制节点。所述原始节点接收到来自所述第二复制节点的用于确认从所述第一复制节点接收到的所述复制数据的请求,响应于该请求而将由所述第二复制节点所接收到的所述复制数据与所述原始数据彼此比较,并且取决于所述比较的结果而向所述第二复制节点发送用于删除所述复制数据的请求。

著录项

  • 公开/公告号CN101483577A

    专利类型发明专利

  • 公开/公告日2009-07-15

    原文格式PDF

  • 申请/专利权人 佳能株式会社;

    申请/专利号CN200910001554.2

  • 发明设计人 菅原一浩;

    申请日2009-01-12

  • 分类号H04L12/54;G06F17/30;

  • 代理机构北京怡丰知识产权代理有限公司;

  • 代理人任之光

  • 地址 日本东京都大田区下丸子3-30-2

  • 入库时间 2023-12-17 22:10:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-06

    未缴年费专利权终止 IPC(主分类):H04L12/54 授权公告日:20120404 终止日期:20170112 申请日:20090112

    专利权的终止

  • 2012-04-04

    授权

    授权

  • 2009-09-09

    实质审查的生效

    实质审查的生效

  • 2009-07-15

    公开

    公开

说明书

技术领域

本发明涉及一种其中网络上的节点共享存储在原始节点中的原始数据的复制数据的数据共享系统、数据共享方法及信息处理装置。

背景技术

作为用于共享数据的系统,常规上已知的系统使用诸如其中积聚了数据的共享服务器的服务器。在这样的系统中,服务器对数据进行集中的控制。此外,将通过复制存储在网络上的另一设备(节点)中的原始数据而形成的数据(即,复制数据)存储在服务器中,并且参考原始数据的复制数据作为来自网络上的节点的共享数据。

此外,作为用于共享数据的系统,还提出了一种系统,在该系统中,通过使用诸如Gnutella或Winny的软件以PtoP(P2P)的形式在网络上交换数据的文件来共享数据(例如参见日本专利特开2004-164625号公报)。在这种使用PtoP的数据共享系统的情况下,原始数据的复制数据散布到同一系统内的节点中,并且在节点之间共享所散布的复制数据。

在使用服务器的数据共享系统的情况下,存储有原始数据的节点(原始节点)能够更新并删除存储在服务器中的原始数据的复制数据。然而,原始节点不能处理存储在除服务器以外的其他节点中的原始数据的复制数据。

此外,在使用PtoP的系统的情况下,在跟踪复制数据方面,根据所发送的数据的历史来识别原始节点是可行的。然而,如果所连接的节点中的一个节点从网络脱离,或者所连接的节点中的一个节点断电,则不可能进一步跟踪超出脱离的或断电的节点的复制数据。

此外,原始数据的拥有者不能从原始节点处理原始数据的所有的复制数据。这样会引起连续重复地复制已经被删除的原始数据的复制数据或者原始数据的旧版本的复制数据,导致在网络上散布这种数据。

发明内容

本发明提供了一种能够防止与存储在原始节点中的原始数据不匹配的复制数据在网络上散布的数据共享系统、信息处理装置以及数据共享方法。

此外,本发明提供了一种存储有用于形成原始节点或一节点的程序的计算机可读存储介质。

在本发明的第一方面中,提供了一种数据共享系统,该数据共享系统包括存储有原始数据的第一信息处理装置、从所述第一信息处理装置获取所述原始数据的复制数据的第二信息处理装置、以及经由网络而连接到所述第一信息处理装置及所述第二信息处理装置的第三信息处理装置,其中,所述第二信息处理装置包括适合于将从所述第一信息处理装置所获取的所述复制数据发送给所述第三信息处理装置的复制数据发送单元,并且其中,所述第一信息处理装置包括:接收单元,其适合于接收来自所述第三信息处理装置的用于确认所述复制数据的请求;比较单元,其适合于响应于由所述接收单元所接收到的用于确认的所述请求,将所述第三信息处理装置接收到的所述复制数据与所述原始数据彼此比较;以及发送单元,其适合于取决于所述比较单元的比较结果而向所述第三信息处理装置发送用于删除所述复制数据的请求。

在本发明的第二方面中,提供了一种用于数据共享系统的数据共享方法,所述数据共享系统包括存储有原始数据的第一信息处理装置以及从所述第一信息处理装置获取所述原始数据的复制数据的第二信息处理装置,其中,所述第二信息处理装置包括适合于将从所述第一信息处理装置所获取的所述复制数据发送给第三信息处理装置的复制数据发送单元,其中,所述第一信息处理装置接收来自所述第三信息处理装置的用于确认所述复制数据的请求;响应于通过所述接收所接收到的用于确认的所述请求,将所述第三信息处理装置接收到的所述复制数据与所述原始数据彼此比较;并且取决于所述比较的比较结果而向所述第三信息处理装置发送用于删除所述复制数据的请求。

在本发明的第三方面中,提供了一种信息处理装置,该信息处理装置能够与第一信息处理装置及第二信息处理装置进行通信,所述信息处理装置包括:存储单元,其适合于存储原始数据;生成单元,其适合于生成所述原始数据的复制数据;发送单元,其适合于响应于来自所述第一信息处理装置的请求,将由所述生成单元所生成的所述复制数据发送给所述第一信息处理装置;接收单元,其适合于接收来自从所述第一信息处理装置获取到所述复制数据的所述第二信息处理装置的用于确认所述复制数据的请求;比较单元,其适合于将所述第二信息处理装置接收到的所述复制数据与存储在所述存储单元中的所述原始数据彼此比较;以及发送单元,其适合于取决于所述比较单元的比较结果而向所述第二信息处理装置发送用于删除所述复制数据的请求。

根据本发明,能够防止与存储在原始节点中的原始数据不匹配的复制数据在网络上散布。

根据以下与附图相结合的详细说明,本发明的特征及优点会变得更加明确。

附图说明

图1是根据本发明实施例的数据共享系统的框图。

图2是形成图1中所出现的节点A、节点B、节点C及节点D中的各节点的终端装置的框图。

图3是在节点A至节点D之间交换的各种请求命令及对这些请求命令的响应的列表的图。

图4是各个复制数据112、121、131及141的结构的图。

图5是存储在节点A中的复制节点列表的结构的示例的图。

图6是在节点A接收到从其他节点B、节点C及节点D发送来的作为请求命令的复制请求及伴随该复制请求的确认请求时所执行的请求命令响应处理的流程图。

图7是图6中的步骤S408中的数据确认处理的流程图。

图8是由节点B至节点D中的各节点所执行的复制请求处理的流程图。

图9是用于对在节点A更新原始数据时在节点A与节点B、节点C及节点D之间交换的更新请求及对该更新请求的响应进行解释的示意图。

图10是用于在节点A已更新了原始数据时更新存储在其他节点B至节点D中的各节点中的复制数据的复制数据更新处理的流程图。

图11是图10中的步骤S1005中的节点(i)的更新请求处理的流程图。

图12是由节点B至节点D中的各节点所执行的用于响应于更新请求而更新复制数据的复制数据更新请求响应处理的流程图。

图13是用于对在节点A中原始数据被删除时在节点A与节点B、节点C及节点D中的各节点之间交换的删除请求及响应进行解释的示意图。

图14是用于在节点A中原始数据被删除时删除存储在其他节点B至节点D中的各节点中的复制数据(上述被删除的原始数据的复制数据)的复制数据删除处理的流程图。

图15是图14中的步骤S1405中的节点(i)的删除请求处理的流程图。

图16是由节点B至节点D(复制节点)中的各节点所执行的用于删除由删除请求所请求删除的复制数据的复制数据删除请求响应处理的流程图。

图17是用于对在与LAN断开连接的存储有要被更新的复制数据的节点D再次连接到LAN时在节点D与节点A之间交换的请求及对该请求的响应进行解释的示意图。

图18是用于对在与LAN断开连接的存储有要被删除的复制数据的节点D再次连接到LAN时在节点D与节点A之间交换的请求及对该请求的响应进行解释的示意图。

图19是与LAN断开连接的节点再次连接到LAN以加入数据共享系统的情况下的处理的流程图。

图20是图19的流程图的继续部分。

图21是由接收到来自已经返回到连接到LAN的状态的与LAN断开连接的节点的确认请求的节点A(原始节点)所执行的第二数据确认处理的流程图。

具体实施方式

以下将参照示出本发明的实施例的附图来对本发明进行详细的说明。

图1是根据本发明实施例的数据共享系统的框图。图2是形成图1中所出现的节点A、节点B、节点C及节点D中的各节点的信息处理装置的框图。

如图1所示,数据共享系统由在网络(例如,LAN(局域网)100)内相互连接的多个节点节点A、节点B、节点C及节点D组成。现假设节点A是存储有原始数据的原始节点。节点A存储有复制节点列表111、复制数据(原始数据的复制)112及原始数据113。在本实施例中,具体来说,将存储有作为共享数据而存储在其他节点中的复制数据的原始数据的节点称作原始节点。

复制节点列表111管理作为数据复制节点的存储有原始数据的复制数据的节点B、节点C及节点D。复制数据112包含原始数据113的复制数据以及指示存储有复制数据的原始数据的原始节点A的节点信息。下文中将描述复制节点列表111及复制数据112的详细结构。

应当注意的是,节点B、节点C及节点D是存储有上述原始数据113的复制数据121、131及141的数据复制节点。在所例示的示例中,节点B通过经由LAN 100而从节点A复制复制数据112来获取复制数据121。此外,节点C通过经由LAN 100而从节点B复制复制数据121来获取复制数据131。此外,节点D通过经由LAN 100而从节点C复制复制数据131来获取复制数据141。

例如,形成上述节点A、节点B、节点C及节点D中的各节点的信息处理装置由多功能外围设备200来实现。多功能外围设备200包括CPU 201。CPU 201通过执行存储在ROM 202或者硬盘(HD)210中的程序来对连接到系统总线213的设备进行集中的控制。CPU 201的工作区由RAM 203来提供。

ROM 202及RAM 203以及网络接口卡(NIC)204、操作板控制器205、显示控制器207以及磁盘控制器209连接到系统总线213。此外,打印机211及扫描仪212连接到系统总线213。

NIC 204对经由LAN 100而向其他节点发送数据以及接收来自其他节点的数据进行控制。操作板控制器205将由用户在具有各种键的操作板206上输入的信息(设定信息、指示信息等)进行输入,并将该信息发送给CPU 201。显示控制器207进行控制以使得由CPU 201所生成的信息显示在显示器208上。磁盘控制器209对将数据写入到HD 210中以及从HD 210中读出数据进行控制。打印机211通过电子照相方法或喷墨方法来在纸上打印图像。扫描仪212读取原稿上的图像并输出所读取的图像。由扫描仪212所读取的图像被发送给打印机211,或经由LAN 100而被发送给其他装置。此外,根据需要,将由扫描仪212所读取的图像存储在HD 210中。

在本数据共享系统中,存储在节点A中的作为被其他节点B、节点C及节点D所共享的数据的数据例如包括字体数据、打印数据、控制器固件以及备份数据,并且这些数据存储在HD 210中。

在本实施例中,为了共享存储在节点A中的原始数据113的复制数据112,在节点A至节点D之间交换各种请求命令。

将参照图3来给出对各种请求命令的说明。图3是在节点A至节点D之间交换的各种请求命令以及对这些请求命令的响应的列表的图。

各种请求命令包括复制请求、确认请求、更新请求以及删除请求。复制请求用于从存储有所期望的原始数据(或其复制数据)的原始节点或存储有所期望的原始数据的复制数据的另一节点请求原始数据的复制数据。复制请求包含用于识别原始数据的复制数据的数据信息,以及指示请求复制数据的复制请求节点的节点信息。数据信息是能够利用它来识别原始数据的复制数据的信息,例如,文件名、文件大小及文件创建的日期及时间。节点信息例如是IP地址、MAC地址、URL或邮件地址。

接收到复制请求的节点向由包含在复制请求中的节点信息所指示的复制请求节点返回肯定响应或否定响应。在复制请求所请求的复制数据存在时(利用包含在复制请求中的数据信息而识别出),返回肯定响应,并且作为肯定响应,返回复制请求所请求的复制数据。在复制数据不存在或者不允许对其进行复制等情况时,返回否定响应,并且作为否定响应,返回复制请求NG。

接收到上述肯定响应(即,获取了复制数据)的节点(复制请求节点)向由添加到复制数据中的节点信息所指示的原始节点发送确认请求。该确认请求用于请求确认上述复制数据是否与存储在原始节点中的原始数据相匹配。确认请求包含作为肯定响应而返回的复制数据中所包含的数据信息以及指示已接收到肯定响应的节点(确认请求节点)的节点信息。该节点信息例如是IP地址、MAC地址、URL、邮件地址等。

已接收到确认请求的原始节点向确认请求节点返回有关确认请求的确认结果。此时,如果复制数据与原始数据相匹配,则返回指示该事实的确认结果为“确认OK(肯定响应)”。已接收到确认OK的确认请求节点存储所获取的复制数据,并且使其对LAN 100上的节点公开。另一方面,如果复制数据与原始数据不匹配,则返回指示该事实的确认结果为“确认NG(否定响应)”。已接收到确认NG的确认请求节点将所获取的复制数据删除。

应当注意的是,更新请求用于在原始节点中原始数据被更新时,请求存储有原始数据的复制数据的复制节点更新该复制数据。更新请求包含用于识别请求被更新的复制数据的数据信息以及更新后的原始数据的复制数据。已接收到更新请求的复制节点执行用于将利用更新请求中的数据信息而识别出的复制数据更新为包含在上述更新请求中的复制数据的处理。然后,如果正常地完成对上述识别出的复制数据的更新,则向原始节点返回“更新OK(肯定响应)”。另一方面,如果未正常地完成对上述识别出的复制数据的更新,则向原始节点返回“更新NG(否定响应)”。

应当注意的是,如果在原始节点中删除了原始数据,则上述删除请求请求存储有原始数据的复制数据的复制节点删除该复制数据。删除请求包含用于识别请求被删除的复制数据的数据信息。已接收到上述删除请求的复制节点执行用于将存储在其中的复制数据项中的利用删除请求中的数据信息而被识别出的一项删除的处理。然后,如果正常地完成对识别出的复制数据的删除,则向原始节点返回“删除OK(肯定响应)”。另一方面,如果未正常地完成对识别出的复制数据的删除,则向原始节点返回“删除NG(否定响应)”。

此外,在存储有复制数据的节点从与网络断开连接的状态返回到连接到网络的状态时,该节点向原始节点发送确认请求(第二确认请求)。该确认请求请求由包含在复制数据中的节点信息所指示的原始节点确认存储在该节点中的复制数据是否要被更新或删除。该确认请求包含用于识别请求了对其的上述确认的复制数据的数据信息。已接收到确认请求的原始节点通过参考复制节点列表111来确认利用确认请求而请求了对其的上述确认的复制数据(利用数据信息而识别出的复制数据)是否要被更新或删除。然后,如果确认上述复制数据是不需要被更新或删除的有效的数据,则返回确认OK作为确认结果。另一方面,如果确认复制数据要被更新,则返回更新请求作为确认结果。此外,如果确认复制数据要被删除,则返回删除请求作为确认结果。此外,如果对上述复制数据的确认不成功,则返回确认NG作为确认结果。

已接收到响应于确认请求(第二确认请求)的确认结果的确认请求节点(第二确认请求节点)取决于确认结果来执行处理。已接收到确认OK的节点使该节点利用确认请求而请求了对其的上述确认的复制数据对LAN 100上的公众公开。已接收到更新请求的节点执行用于将该节点利用确认请求而请求了对其的上述确认的复制数据更新为包含在更新请求中的复制数据的处理。已接收到删除请求的节点执行用于将该节点利用确认请求而请求了对其的上述确认的复制数据删除的处理。已接收到确认NG的节点将该节点利用确认请求而请求了对其的上述确认的复制数据删除。

下文中将对由上述各种请求命令所执行的处理进行详细的说明。

接下来,将参照图4来给出对复制数据112、121、131及141的结构的说明。图4是各个复制数据112、121、131及141的结构的图。

如图4所示,通过向作为原始数据的复制数据的数据体304添加节点信息301、数据信息302及数据状态303来形成各个复制数据112、121、131及141。在本实施例中,假设节点信息301是指示LAN 100上的存储有复制数据的原件(Original)的节点的IP地址、MAC地址、URL、邮件地址等节点信息。数据信息302由用于识别复制数据的信息(例如,文件名、文件大小、文件创建的日期及时间、版本信息等)来形成。数据状态303是能够由存储有复制数据的节点(包括原始节点)来重写的数据。例如,在存储有原始数据的原始节点(所例示的示例中的节点A)中,数据状态303被设定为“原件”。此外,在存储有原始数据的复制数据的复制节点中,数据状态303被设定为“经确认”或“未经确认”。

接下来,将参照图5来给出对存储在节点A(原始节点)中的复制节点列表111的说明。图5是存储在节点A中的复制节点列表111的结构的示例的图。

如图5所示,复制节点列表111按逐个原始数据项来存储关于存储节点A中所存储的原始数据的复制数据的节点B、节点C及节点D的节点信息。所例示的复制节点列表111的示例将原始数据项的数据名称、指示存储有复制数据的节点(复制节点)的节点信息及节点状态按相互关联的方式来存储。例如,对于名称为数据1的原始数据,复制节点列表111描述:存储有其复制数据的节点为节点B、节点C及节点D。

节点状态包括指示是否根据对原始数据的更新而更新了原始数据的复制数据的更新状态以及指示是否删除了复制数据的删除状态。

此时,在节点A(原始节点)中的数据1的原始数据被更新时,复制节点列表111中的与数据1相关联的所有的节点B、节点C及节点D(复制节点)的节点状态被设定为“未更新”。然后,向节点B、节点C及节点D中的各节点发送更新请求。在从复制节点返回更新OK作为对更新请求的响应时,复制节点的节点状态被重写为“已更新”。在所例示的示例中,尽管对于数据1,节点B及节点C的各自的节点状态被重写为“已更新”,但是节点D的节点状态保持为“未更新”。

在对存储在所有的复制节点B、节点C及节点D中的复制数据的更新已完成时,删除关于各个所关联的节点状态的信息(改变为无信息的状态)。例如,对于数据1,如果在存储有复制数据的节点B、节点C及节点D中的各节点中更新了复制数据,则删除关于节点B、节点C及节点D中的各节点的节点状态的信息。

此外,如果删除了名称为数据2的原始数据,则将复制节点列表111中的与数据2相关联的节点B、节点C及节点D(复制节点)的节点状态重写为“未删除”。然后,向节点B、节点C及节点D中的各节点发送数据2的复制数据的删除请求。如果从复制节点返回“删除OK”作为对删除请求的响应,则复制节点的节点状态被重写为“已删除”。此时,如果在存储有数据2的原始数据的复制数据的所有的节点B、节点C及节点D中删除了复制数据,则从复制节点列表111中删除与数据2的原始数据有关的信息。即,删除与数据2的原始数据相关联的数据名称、节点信息及节点状态的条目。

接下来,将参照图1来给出对节点B、节点C及节点D获取(共享)存储在节点A(原始节点)中的原始数据113的复制数据112的情况的说明。

假设为了获取存储在节点A中的原始数据113(复制数据112),节点B使用PtoP、文件服务器、文件共享系统或类似的搜索手段来搜索网络。作为搜索的结果,如果节点B找到存储在节点A中的原始数据113(复制数据112),则节点B向节点A发送复制请求(151)。节点A向节点B发送复制数据112作为对复制请求的响应(152)。在此,复制数据112包含用于识别复制数据本身的数据信息以及指示节点A的节点信息。如果节点A中不存在复制数据112,则生成复制数据112。节点B接收到从节点A发送来的复制数据112,以由此获取该复制数据112作为复制数据121。

然后,节点B向节点A发送包含用于识别复制数据121的数据信息(包含在复制数据121中的数据信息)以及指示节点B的节点信息的确认请求(153)。节点A基于包含在确认请求中的数据信息来确认由节点B所获取的复制数据121(112)是否与原始数据113相匹配。然后,如果节点A确认复制数据121与原始数据113相匹配,则节点A向节点B返回确认OK(154)。此外,节点A将包含在确认请求中的节点信息(指示节点B的节点信息)与原始数据113的数据名称相关联地存储在复制节点列表111中。

节点B基于来自节点A的确认OK,使从节点A所获取的复制数据121对LAN100上的公众公开。此时,复制数据121的数据状态被设定为“已确认”。作为用于使复制数据121对公众公开的手段,运用了PtoP、使用文件服务器的共享技术、文件共享技术或类似的公知的技术。

此外,假设节点C已搜索网络并在节点B中找到原始数据113的复制数据121。在这种情况下,节点C向节点B发送复制请求(155)。节点B基于来自节点C的复制请求而确认节点B中存储有所请求的复制数据121,并将复制数据121发送给节点C(156)。

节点C获取从节点B接收到的复制数据121作为复制数据131。然后,节点C向由包含在复制数据131(121)中的节点信息所指示的节点(即,节点A)发送用于请求原始节点确认复制数据131与原始数据113相匹配的确认请求(157)。该确认请求包含关于复制数据131的数据信息以及指示节点C的节点信息。节点A基于确认请求来确认复制数据131是否与原始数据113相匹配。然后,如果节点A确认复制数据131与原始数据113相匹配,则节点A向节点C返回确认OK(158)。此外,节点A将包含在确认请求中的节点信息(节点C)与原始数据113的数据名称相关联地存储在复制节点列表111中。

节点C基于确认OK,使从节点B所获取的复制数据131对LAN 100上的公众公开。此时,复制数据131的数据状态被设定为“已确认”。

此外,假设节点D已搜索网络并在节点C中找到原始数据113的复制数据131。在这种情况下,与节点C的情况相似的是,节点D向节点C发送复制请求(159)。节点C将复制请求所请求的复制数据131发送给节点D(160)。节点D获取复制数据131作为复制数据141。然后,节点D向由复制数据141中的节点信息所指示的节点A发送确认请求(161)。

节点A确认复制数据141是否与原始数据113相匹配。如果二者彼此匹配,则节点A向节点D返回确认OK(162)。然后,节点A将指示节点D的节点信息与原始数据113的数据名称相关联地存储在复制节点列表111中。

节点D基于确认OK,使从节点C所获取的复制数据141对LAN 100上的公众公开。此时,复制数据141的数据状态被设定为“已确认”。

接下来,将参照图6来给出对在节点A(原始节点)接收到从其他节点B、节点C及节点D中的各节点发送来的复制请求及伴随该复制请求的确认请求时所执行的请求命令响应处理的描述。图6是在节点A接收到从其他节点B、节点C及节点D中的各节点发送来的作为请求命令的复制请求及伴随该复制请求的确认请求时所执行的请求命令响应处理的流程图。图6中的请求命令响应处理是由节点A的CPU 201根据存储在ROM 202或HD 210中的程序来执行的。

如图6所示,如果节点A接收到从其他节点B至节点D中的任一节点发送来的请求命令,则节点A的CPU 201分析所接收到的请求命令,并确定该请求命令是否为复制请求(步骤S401)。此时,如果所接收到的请求命令是复制请求,则CPU 201确定是否存储了该复制请求所请求的原始数据的复制数据(步骤S402)。

在步骤S402中,如果确定未存储复制数据,则CPU 201确定是否存储了所请求的复制数据的原始数据(步骤S403)。如果存储了所请求的复制数据的原始数据,则CPU 201对所请求的复制数据的原始数据进行复制,以生成复制数据并存储该复制数据(步骤S404)。此时,将节点信息301及数据信息302添加到所生成的复制数据中(参见图4)。此外,将数据状态303添加到复制数据中。在这种情况下,数据状态303被设定为“原件”。然后,CPU201将所生成的复制数据发送给复制请求节点(步骤S405),接着终止该处理。

在步骤S403中,如果确定未存储所请求的复制数据的原始数据,则CPU201向复制请求节点发送复制请求NG(复制请求拒绝)作为对复制请求的响应(步骤S406),接着终止该处理。

在步骤S402中,如果确定存储了所请求的复制数据,则CPU 201向复制请求节点发送所请求的复制数据作为对复制请求的肯定响应(步骤S405),接着终止该处理。

在步骤S401中,如果确定所接收到的请求命令不是复制请求,则CPU201确定所接收到的请求命令是否为确认请求(步骤S407)。所接收到的确认请求是从复制请求节点(已从节点A或除节点A以外的其他节点获取复制数据的节点)发送给节点A的。如果所接收到的请求命令是确认请求,则CPU 201执行用于确认由该节点所获取的复制数据是否与存储在节点A中的原始数据相匹配的数据确认处理(步骤S408)。下文中将参照图7来对数据确认处理进行详细的说明。然后,CPU 201立即终止该处理。

在步骤S407中,如果确定所接收到的请求命令不是确认请求,则CPU201立即终止该处理。

现假设作为复制请求节点的节点B至节点D中的任一节点试图获取存储在除节点A(原始节点)以外的其他节点中的复制数据,则已从复制请求节点接收到复制请求的除节点A以外的该其他节点从未接收到伴随复制请求的确认请求。

在除节点A(原始节点)以外的其他节点已从作为复制请求节点的节点B至节点D中的一个节点接收到复制请求的情况下,该节点执行以下处理:在接收到复制请求时(步骤S401),确定是否存储了请求被复制的复制数据(步骤S402)。如果存储了请求被复制的复制数据,则将该复制数据发送给复制请求节点(步骤S405)。另一方面,如果未存储请求被复制的复制数据,则由于请求命令响应处理是由除节点A(原始节点)以外的其他节点来执行的,因此无需步骤S403中的确定而直接地向复制请求节点发送复制请求NG(步骤S406)。

接下来,将参照图7来给出对步骤S408中的节点A(原始节点)的数据确认处理的说明。图7是图6中的步骤S408中的数据确认处理的流程图。

在接收到确认请求时,CPU 201开始图7中所示的数据确认处理。首先,CPU 201确定由复制请求节点所获取的复制数据是否与存储在节点A中的原始数据相匹配(步骤S501)。在所例示的示例中,将包含在确认请求中的数据信息(包含在所获取的复制数据中的数据信息)与包含在存储在原始节点中的原始数据的复制数据中的数据信息彼此比较。然后,如果二者彼此匹配,则确定由复制请求节点所获取的复制数据与原始数据相匹配。此外,例如假设原始数据被更新,则二者不彼此匹配,因此确定由复制请求节点所获取的复制数据与原始数据不匹配。此外,如果原始数据被删除(未存储),则相似的是,也确定由复制请求节点所获取的复制数据与原始数据不匹配。

在步骤S501中,如果确定复制数据与原始数据相匹配,则CPU 201将包含在确认请求中的节点信息与原始数据的数据名称相关联地存储在复制节点列表111中(步骤S502)。然后,CPU 201向确认请求节点(复制请求节点)发送确认OK作为数据确认处理的结果(步骤S503),接着退出该处理。

在步骤S501中,如果确定复制数据与原始数据不匹配,则CPU 201向确认请求节点(复制请求节点)发送数据确认NG作为数据确认处理的结果(步骤S504),接着退出该处理。

接下来,将参照图8来给出对由节点B至节点D中的各节点所执行的复制请求处理的说明。图8是由节点B至节点D中的各节点所执行的复制请求处理的流程图。图8中的复制请求处理是由节点B至节点D中的各节点的CPU 201根据存储在ROM 202或HD 210中的程序来执行的。

如图8所示,在节点B至节点D中的一个节点作出复制请求时,节点B至节点D中的该节点的CPU 201向存储有原始数据或复制数据的节点发送复制请求(步骤S701)。已接收到复制请求的节点向复制请求节点返回复制数据(肯定响应)或复制请求NG(否定响应)作为对复制请求的响应。然后,CPU 201等待接收由被复制请求节点所返回的对复制请求的响应(步骤S702)。此时,如果接收到来自被复制请求节点的响应,则CPU 201确定所接收到的响应是复制请求NG还是复制数据(步骤S703)。

在步骤S703中,如果确定所接收到的响应是复制请求NG,则CPU 201执行数据获取失败处理(步骤S710)。在数据获取失败处理中,在显示器208上显示示出复制请求被拒绝(对所请求的复制数据的获取不成功)的消息。然后,CPU 201终止该处理。

在步骤S703中,如果确定所接收到的响应是复制数据,则CPU 201确定复制数据中是否添加了指示原始节点的节点信息(步骤S704)。在该步骤中,如果添加了指示原始节点的节点信息,则CPU 201向由节点信息所指示的原始节点发送确认请求(步骤S705)。然后,CPU 201等待接收从原始节点返回的对确认请求的响应(步骤S706)。已接收到确认请求的原始节点(节点A)基于确认请求来执行数据确认处理(图6中的步骤S408),并向确认请求节点返回指示数据确认处理的结果的响应(确认OK或NG)。

在步骤S706中,在接收到从原始节点返回的响应时,CPU 201确定所接收到的响应是确认OK还是确认NG(步骤S707)。此时,如果所接收到的响应是确认OK,则CPU 201执行数据获取成功处理(步骤S708)。在该数据获取成功处理中,将所接收到的复制数据按照能够使其对LAN 100上的公众公开的方式来存储,并将添加到复制数据中的数据状态303设定为“已确认”。此外,在显示器208上显示示出对由复制请求所请求的复制数据的获取成功的消息。然后,CPU 201终止该处理。

在步骤S707中,如果确定所接收到的响应是确认NG,则CPU 201删除所接收到的复制数据(步骤S709)。然后,CPU 201执行数据获取失败处理,以在显示器208上显示示出对所请求的复制数据的获取不成功(或者复制请求被拒绝)的消息,接着终止该处理。

如上所述,由于复制数据中添加了指示原始节点的节点信息,因此已获取到其复制数据的节点能够确认所获取的复制数据是否与原始数据相匹配。结果,允许已获取到复制数据的节点仅使被确认为与原始数据相匹配的复制数据对LAN 100上的公众公开。此外,原始节点能够使用包含在确认请求中的节点信息及存储在原件中的复制节点列表111来管理存储有原始数据的复制数据的节点。

接下来,将参照图9来给出对在节点A(原始节点)中更新原始数据的情况的说明。图9是用于对在节点A中原始数据被更新时在节点A与节点B、节点C及节点D之间交换的更新请求及对该更新请求的响应进行解释的示意图。

在节点A中,例如假设将原始数据913从ver.1(版本1)更新为ver.2,创建被更新为ver.2的原始数据913的复制数据912。然后,在复制节点列表111中,登记为存储有原始数据913的复制数据的复制节点的节点的各自的节点状态被重写为“未更新”。在所例示的示例中,假设节点B至节点D存储有原始数据913的复制数据,并且这些节点B至节点D登记在复制节点列表111中。

然后,节点A参考复制节点列表111,并向存储有原始数据913的复制数据的节点B至节点D中的第一节点B发送用于请求更新复制数据的更新请求(951)。在该更新请求中,包含已被更新为ver.2的原始数据913的复制数据912。

已接收到更新请求的节点B将存储在相对应的节点B中的复制数据912重写(即,更新)为包含在所接收到的更新请求中的复制数据(ver.2的复制数据)。然后,节点B向节点A发送更新OK(952)。在节点A接收到来自节点B的更新OK时,复制节点列表111中的与相对应的数据名称相关联的节点B的节点状态被重写为“已更新”。

然后,与节点B的情况相似的是,节点A向下一节点C发送更新请求(953)。已接收到更新请求的节点C将存储在其中的复制数据913重写为包含在所接收到的更新请求中的复制数据(ver.2的复制数据)。然后,节点C向节点A发送更新OK(954)。在节点A接收到来自节点C的更新OK时,复制节点列表111中的与相对应的数据名称相关联的节点C的节点状态被重写为“已更新”。

然后,与节点B的情况相似的是,节点A向下一节点D发送更新请求(956)。然而,假设此时节点D在接收到更新请求之前例如由于关机而已经处于与LAN 100断开连接的状态。在这种情况下,节点D从未接收到来自节点A的更新请求,因此从不向节点A返回对更新请求的响应(957)。因此,由于不存在来自节点D的响应,因此节点A继续将被设定为“未更新”的节点D的节点状态存储在复制节点列表111中。此外,节点D继续存储旧版本(ver.1)的复制数据941,直到节点D连接到LAN100为止。然而,由于节点D未连接到LAN 100,因此旧版本(ver.1)的复制数据941不会在LAN 100上散布。

接下来,将参照图10来给出对用于在节点A已更新了原始数据时更新存储在其他节点B至节点D中的各节点中的复制数据的复制数据更新处理的描述。图10是用于在节点A已更新了原始数据时更新存储在其他节点B至节点D中的各节点中的复制数据的复制数据更新处理的流程图。图10中的复制数据更新处理是由节点A(原始节点)的CPU 201根据存储在ROM 202或HD 210中的程序来执行的。

如图10所示,在存储在节点A中的原始数据已被更新时,节点A的CPU201将存储有尚未被更新的原始数据的复制数据的所有的节点的节点状态设定为“未更新”(步骤S1001)。具体来说,参考复制节点列表111,识别出存储有未被更新的原始数据的复制数据的所有的节点,并将所有的识别出的节点的节点状态设定为“未更新”。然后,CPU 201创建其中列出所有的识别出的节点的节点信息(i)(i≧0)的识别节点信息列表(步骤S1002)。然后,CPU 201将用于从识别节点信息列表中获取节点信息(i)的变量i初始化为0(步骤S1003)。

接下来,CPU 201确定在识别节点信息列表中是否存在节点信息(i)(步骤S1004)。在该步骤中,如果存在节点信息(i),则CPU 201对由节点信息(i)所指示的节点(i)执行更新请求处理(步骤S1005)。下文中将参照图11来对更新请求处理进行详细的说明。然后,CPU 201使变量i递增1(步骤S1006),并返回到步骤S1004。

在步骤S1004中,如果确定不存在节点信息(i),则CPU 201确定在复制节点列表111中的所有的识别出的节点中是否存在节点状态为“未更新”的节点(步骤S1007)。在该步骤中,如果不存在节点状态为“未更新”的任何节点,则CPU 201清除复制节点列表111中的所有的识别出的节点的节点状态

(步骤S1008)。在该步骤中,由于所有的识别出的节点的节点状态已被重写为“已更新”,因此节点状态被清除。然后,CPU 201终止该处理。

在步骤S1007中,如果确定存在节点状态为“未更新”的节点,则CPU 201在显示器208上显示示出存在存储有未被更新的复制数据的节点的消息(步骤S1009),接着终止该处理。

接下来,将参照图11来给出对步骤S1005中的对节点(i)的更新请求处理的详细的描述。图11是图10中的步骤S1005中的节点(i)的更新请求处理的流程图。

如图11所示,在更新请求处理中,首先,CPU 201向由节点信息(i)所指示的节点(i)发送更新请求(步骤S1101)。该更新请求包含用于识别要被更新的复制数据的数据信息以及更新后的原始数据的复制数据。

然后,CPU 201确定是否接收到来自节点(i)的指示复制数据更新成功的更新OK(步骤S1102)作为对更新请求的响应。在该步骤中,如果未接收到来自节点(i)的更新OK,则CPU 201确定更新请求的发送次数是否超过预定次数(步骤S1103)。如果更新请求的发送次数未超过预定次数,则CPU201返回到步骤S1102以发送再一更新请求,而如果更新请求的发送次数超过预定次数,则由于不存在来自节点(i)的更新OK的响应,因此CPU 201判断节点(i)中对复制数据的更新不成功,接着退出该处理。

在步骤S1102中,如果确定接收到来自节点(i)的更新OK,则CPU 201将复制节点列表111中的节点(i)的节点状态重写为“已更新”(步骤S1104),接着退出该处理。

如上所述,在接收到来自节点(i)的更新NG或未接收到响应的情况下,重复地发送更新请求达预定次数,直到接收到来自节点(i)的更新OK为止。然后,如果接收到更新OK(即,节点(i)中对复制数据的更新成功),则复制节点列表111中的节点(i)的节点状态被重写为“已更新”。

接下来,将参照图12来给出对由节点B至节点D中的各节点所执行的用于更新由更新请求所请求更新的复制数据的处理的说明。图12是由节点B至节点D中的各节点所执行的用于响应于更新请求而更新复制数据的复制数据更新请求响应处理的流程图。图12中的复制数据更新请求响应处理是由节点B至节点D中的各节点的CPU 201根据存储在ROM 202或HD 210中的程序来执行的。

如图12所示,在节点B至节点D中的一个节点接收到来自节点A(原始节点)的更新请求时,节点B至节点D的CPU 201提取包含在所接收到的更新请求中的数据信息(步骤S1201)。然后,CPU 201确定是否存储了利用所提取出的数据信息而识别出的复制数据(步骤S1202)。在该步骤中,如果确定存储了所识别出的复制数据,则CPU 201执行用于将所存储的复制数据重写为包含在更新请求中的复制数据的更新处理(步骤S1203)。

然后,CPU 201确定更新处理是否成功(步骤S1204)。在该步骤中,如果更新处理成功,则CPU 201向更新请求节点(即,原始节点)发送更新OK(步骤S1205),接着终止该处理。

在步骤S1204中,如果确定更新处理不成功,则CPU 201向节点A(原始节点)发送更新NG(步骤S1206),接着终止该处理。

在步骤S1202中,如果确定未存储所识别出的复制数据,则CPU 201跳过步骤S1203及步骤S1204,并发送更新OK(步骤S1205)。尽管在被更新请求节点中,未存储要被更新的复制数据,但是能够通过向节点A(原始节点)返回更新OK来防止节点A不必要地重复发送更新请求。

接下来,将参照图13来给出对节点A中的原始数据被删除的情况的说明。图13是用于对在节点A中原始数据被删除时在节点A与节点B、节点C及节点D中的各节点之间交换的删除请求及响应进行解释的示意图。

如图13所示,如果在存储有原始数据1313的节点A(原始节点)中原始数据1313被删除,则原始数据1313的复制数据1312被删除。现假设存储有被删除的原始数据1313的复制数据1312的复制节点为节点B至节点D。然后,节点A参考复制节点列表111,以由此识别节点B至节点D为存储有被删除的原始数据1313的复制数据1312的复制节点。然后,节点A将复制节点列表111中的节点B至节点D中的各节点的节点状态重写为“未删除”。

然后,节点A向所有的复制节点B至节点D发送用于请求删除所存储的复制数据的删除请求(1351、1353、1356)。该删除请求包含用于识别要被删除的复制数据的数据信息。

例如,在节点B及节点C接收到删除请求时,它们删除存储在各自的节点B及节点C中的复制数据1321及1331,并向节点A返回删除OK作为对删除请求的响应(1352、1354)。在节点A接收到来自节点B及节点C的删除OK时,节点A将复制节点列表111中的具有各自的相对应的数据名称的节点B及节点C的节点状态重写为“已删除”。

在节点D接收到删除请求之前,节点D由于关机等而处于与LAN 100断开连接的状态。因此,由于节点D未接收到删除请求,因此节点D未向节点A返回对删除请求的响应(1357)。在这种情况下,在节点D中,保持存储复制数据1341而不将其删除。然而,由于节点D未连接到LAN 100,因此复制数据1341不会在网络上散布。节点A未接收到来自节点D的对删除请求的响应,使得复制节点列表111中的节点D的节点状态不被重写,而保持为“未删除”。

接下来,将参照图14来给出对用于在节点A中原始数据被删除时删除存储在其他节点B至节点D中的各节点中的复制数据(已被删除的原始数据的复制数据)的复制数据删除处理的说明。图14是用于在节点A中原始数据被删除时删除存储在其他节点B至节点D中的各节点中的复制数据(已被删除的原始数据的复制数据)的复制数据删除处理的流程图。图14中的复制数据删除处理是由节点A(原始节点)的CPU 201根据存储在ROM 202或HD 210中的程序来执行的。

如图14所示,在节点A中原始数据1313被删除时,CPU 201将存储有被删除的原始数据的复制数据的所有的节点的节点状态设定为“未删除”(步骤S1401)。具体来说,通过参考复制节点列表111,识别出存储有被删除的原始数据的复制数据的所有的节点,并将所有的识别出的节点的节点状态设定为“未删除”。然后,CPU 201创建其中列出所有的识别出的节点的节点信息(i)(i≧0)的识别节点信息列表(步骤S1402)。然后,CPU 201将用于从识别节点信息列表中获取节点信息(i)的变量i初始化为“0”(步骤S1403)。

然后,CPU 201访问识别节点信息列表来确定是否存在节点信息(i)(步骤S1404)。在该步骤中,如果存在节点信息(i),则CPU 201对由节点信息(i)所指示的节点(i)执行复制数据删除请求处理(步骤S1405)。下文中将参照图15来对复制数据删除请求处理进行详细的说明。然后,CPU 201使变量i递增1(步骤S1406),并且返回到步骤S1404。

在步骤S1404中,如果确定不存在节点信息(i),则CPU 201确定在复制节点列表111中的所有的识别出的节点中是否存在节点状态为“未删除”的节点(步骤S1407)。在该步骤中,如果确定不存在节点状态为“未删除”的节点,则CPU 201从复制节点列表111中删除与本次被删除的原始数据有关的信息(步骤S1408)。即,将与本次被删除的原始数据相关联的数据名称、节点信息及节点状态的条目删除。然后,CPU 201终止该处理。

在步骤S1407中,如果确定存在节点状态为“未删除”的节点,则CPU 201在显示器208上显示示出存在针对其的复制数据删除未完成的节点的消息(步骤S1409),接着终止该处理。

接下来,将参照图15来给出对步骤S1405中的节点(i)的复制数据删除请求处理的描述。图15是图14中在步骤S1405中所执行的节点(i)的复制数据删除请求处理的流程图。

如图15所示,在复制数据删除请求处理中,首先,CPU 201向由节点信息(i)所指示的复制节点(i)发送删除请求(步骤S1501)。该删除请求包含用于识别要被删除的复制数据的数据信息。

然后,CPU 201确定在发送删除请求之后的预定时间段内是否接收到来自复制节点(i)的删除OK作为对删除请求的响应(步骤S1502)。在此,在预定时间段内未接收到来自节点(i)的删除OK的情况包括接收到来自节点(i)的删除NG作为对删除请求的响应的情况以及节点(i)未作出对删除请求的响应的情况。删除NG是指示复制数据删除失败的响应。

如果在预定时间段内未接收到来自复制节点(i)的删除OK,则CPU 201确定删除请求的发送次数是否超过预定次数(步骤S1503)。在该步骤中,如果确定删除请求的发送次数超过预定次数,则CPU 201退出该处理,而如果删除请求的发送次数未超过预定次数,则CPU 201返回到步骤S1501以发送另一删除请求。

在步骤S1502中,如果在预定时间段内接收到来自节点(i)的删除OK,则CPU 201将复制节点列表111中的节点(i)的节点状态重写为“已删除”(步骤S1504),接着终止该处理。

如上所述,在接收到来自节点(i)的删除OK时(即,在节点(i)中复制数据删除成功时),将复制节点列表111中的节点(i)的节点状态重写为“已删除”。

接下来,将参照图16来给出对由节点B至节点D(复制节点)中的各节点所执行的用于删除由删除请求所请求删除的复制数据的复制数据删除请求响应处理的说明。图16是由节点B至节点D(复制节点)中的各节点所执行的用于删除由删除请求所请求删除的复制数据的复制数据删除请求响应处理的流程图。图16的流程图中所示的复制数据删除请求响应处理是由节点B至节点D中的各节点的CPU 201根据存储在ROM 202或HD 210中的程序来执行的。

如图16所示,在节点B至节点D(复制节点)中的一个节点接收到来自节点A(原始节点)的删除请求时,节点B至节点D中的该节点的CPU 201从所接收到的删除请求中提取用于识别要被删除的复制数据的数据信息(步骤S1601)。然后,CPU 201确定是否存储了利用所提取出的数据信息而识别出的复制数据(步骤S1602)。在该步骤中,如果存储了所识别出的复制数据,则CPU 201执行用于删除所存储的复制数据的删除处理(步骤S1603)。

然后,CPU 201确定对复制数据的删除是否成功(步骤S1604)。在该步骤中,如果确定复制数据删除成功,则CPU 201向删除请求节点(即,节点A)发送删除OK(步骤S1605),接着终止该处理。

在步骤S1604中,如果确定复制数据删除不成功,则CPU 201向节点A发送删除NG(步骤S1606),接着终止该处理。

在步骤S1602中,如果确定未存储所识别出的复制数据,则CPU 201跳过步骤S1603及步骤S1604,并向节点A发送删除OK(步骤S1605)。尽管节点A中未存储要被删除的复制数据,但是能够通过向节点A返回删除OK来防止节点A不必要地重复发送删除请求。

接下来,将参照图17来给出对存储有要被更新的复制数据的节点处于与LAN 100断开连接的状态并再次连接到LAN 100的情况的说明。图17是用于对在存储有要被更新的复制数据941的节点D处于与LAN100断开连接的状态并再次连接到LAN 100的情况下在节点D与节点A之间交换的请求及对该请求的响应进行解释的示意图。

如图17所示,现假设节点B及节点C存储有节点A中的更新后的原始数据(ver.2)的、根据来自节点A(原始节点)的更新请求而被更新的复制数据(ver.2)921及931。此外,假设节点D在更新复制数据(ver.1)941之前终止与LAN100的连接,因此存储有未被更新的复制数据(ver.1)941。此外,假设在复制节点列表111中,存储有复制数据(ver.2)921及931的节点B及节点C的节点状态被设定为“已更新”,并且节点D的节点状态被设定为“未更新”。

在节点D由于开机等而连接到LAN 100时,节点D(第二确认请求节点)开始用于确认复制数据(ver.1)941是否要被更新或删除的处理。首先,节点D将复制数据941的数据状态303设定为“未确认”,并向节点A发送确认请求(第二确认请求)(1571)。确认请求包含用于识别请求了对其的确认的复制数据941的数据信息以及指示节点D(第二确认请求节点)的节点信息。

在接收到来自节点D的确认请求时,节点A参考复制节点列表111,以由此确认节点D的关于复制数据的节点状态是否为“未更新”或“未删除”(第二数据确认处理)。在该处理中,节点A确认复制节点列表111中的与相对应的原始数据相关联的节点D的节点状态为“未更新”,并向节点D发送更新请求(1572)。

在节点D接收到更新请求时,节点D将复制数据(ver.1)941更新为更新后的原始数据(ver.2)913的复制数据(ver.2)912。然后,在复制数据更新成功时,节点D向节点A返回更新OK作为对更新请求的响应(1753)。节点A接收到更新OK并将复制节点列表111中的节点D的节点状态重写为“已更新”。

节点D在发送更新OK之后将复制数据941的数据状态303设定为“已确认”。结果,节点D成为加入数据共享系统的节点之一,并且使存储在节点D中的复制数据对其他节点公开。

接下来,将参照图18来给出对存储有要被删除的复制数据的节点处于与LAN 100断开连接的状态并再次连接到LAN 100的情况的说明。图18是用于对在存储有要被删除的复制数据1341的节点D处于与LAN 100断开连接的状态并再次连接到LAN 100时在节点D与节点A之间交换的请求及响应进行解释的示意图。

如图18所示,现假设响应于来自节点A(原始节点)的删除请求,已经在节点B及节点C中删除了相对应的复制数据(ver.2)1321及1331。此外,假设在复制数据1341根据删除请求而被删除之前,节点D终止与LAN100的连接,并存储请求被删除的复制数据1341。此外,假设在复制节点列表111中,节点B及节点C的节点状态被设定为“已删除”,并且存储有复制数据1341的节点D的节点状态被设定为“未删除”。

在节点D由于开机等而连接到LAN 100时,节点D开始用于确认复制数据(ver.1)1341是否要被更新或删除的处理。首先,节点D(第二确认请求节点)将复制数据1341的数据状态303设定为“未确认”,并向节点A发送确认请求(第二确认请求)(1851)。确认请求包含用于识别请求了对其的确认的复制数据1341的数据信息以及指示节点D(第二确认请求节点)的节点信息。

在接收到来自节点D的确认请求时,节点A参考复制节点列表111,并确认节点D的复制数据的节点状态是否为“未更新”或“未删除”(第二数据确认处理)。在该处理中,节点A确认节点D的关于复制数据的节点状态为“未删除”,并向节点D发送删除请求(1852)。

在接收到删除请求时,节点D删除复制数据1341。然后,在复制数据删除成功时,节点D向节点A返回删除OK作为对删除请求的响应(1853)。节点A接收到删除OK,并将复制节点列表111中的节点D的节点状态重写为“已删除”。

在发送删除OK之后,节点D加入数据共享系统作为数据共享系统的节点之一,并且使存储在节点D中的其他复制数据对其他节点公开。

接下来,将参照图19及图20来给出对在与LAN 100断开连接的节点再次连接到LAN 100以加入数据共享系统时(如图17或图18中所示的节点D的情况)所执行的、用于返回到数据共享系统的处理的说明。图19及图20是用于在与LAN 100断开连接的节点再次连接到LAN 100以加入数据共享系统时返回到数据共享系统的处理的流程图。图19及图20中的用于返回到数据共享系统的处理是由节点B至节点D(第二确认请求节点)中的各节点的CPU 201根据存储在ROM 202或HD210中的程序来执行的。

如图19所示,在处于与LAN 100断开连接的状态的节点(例如,节点D)再次连接到LAN 100时,首先,节点的CPU 201执行对用于连接到LAN100的网络接口的初始化(步骤S1901)。然后,CPU 201将存储在节点中的所有的复制数据的数据状态初始化,即,将它们设定为“未确认”(步骤S1902)。

接下来,CPU201搜索数据状态为“未确认”的复制数据(步骤S1903)。然后,CPU 201根据搜索的结果来确定是否存在数据状态为“未确认”的复制数据(步骤S1904)。在该步骤中,如果确定存在数据状态为“未确认”的复制数据,则CPU 201向节点A(原始节点)发送用于请求确认复制数据的确认请求(第二确认请求)(步骤S1905),如图20所示。该确认请求是用于确认复制数据是有效的数据、要被更新的数据还是要被删除的数据的请求命令。

然后,CPU 201确定是否接收到从节点A返回的作为对确认请求的响应的确认OK(步骤S1906)。在该步骤中,如果确定接收到确认OK,则CPU 201将复制数据的数据状态重写为“已确认”(步骤S1910)。然后,CPU 201返回到步骤S1903。

在步骤S1906中,确定未接收到确认OK,确定是否接收到来自节点A的更新请求(步骤S1907)。在该步骤中,如果确定接收到更新请求,则CPU201执行用于将复制数据重写为包含在所接收到的更新请求中的复制数据的更新处理(步骤S1908)。在该更新处理中,如果复制数据更新成功,则向节点A发送更新OK,而如果复制数据更新不成功,则向节点A发送更新NG。然后,CPU 201确定更新处理是否成功(步骤S1909)。在该步骤中,如果确定更新处理成功,则CPU 201将复制数据的数据状态重写为“已确认”(步骤S1901),并且返回到步骤S1903。

在步骤S1907中,如果确定未接收到更新请求,则CPU 201确定是否接收到删除请求(步骤S1911)。在该步骤中,如果确定接收到删除请求,则CPU 201执行用于删除复制数据的删除处理(步骤S1912)。在该删除处理中,如果删除处理成功,则向节点A发送删除OK,而如果删除处理不成功,则向节点A发送删除NG。然后,CPU 201确定删除处理是否成功(步骤S1913)。在该步骤中,如果确定删除处理成功,则CPU 201返回到步骤S1903。

在步骤S1911中,如果确定未接收到删除请求,则CPU 201确定是否接收到确认NG(步骤S1914)。如果接收到确认NG,则CPU 201删除复制数据(步骤S1915)。然后,CPU 201返回到步骤S1903。

在步骤S1914中,如果确定未接收到确认NG,则CPU 201确定确认请求的发送次数是否超过预定次数(步骤S1916)。在该步骤中,如果确定上述确认请求的发送次数未超过预定次数,则CPU 201返回到步骤S1905以向节点A发送再一确认请求,而如果确认请求的发送次数超过预定次数,则CPU201判断未获取到响应于确认请求的确认结果,并删除复制数据(步骤S1915)。然后,CPU 201返回到步骤S1903。

如果在步骤S1909中确定更新处理不成功,并且如果在步骤S1913中确定删除处理不成功,则CPU 201进入步骤S1916。

在步骤S1904中,如果确定不存在数据状态为“未确认”的复制数据,则CPU 201加入数据共享系统(步骤S1917),接着终止该处理。

接下来,将参照图21来给出对由接收到来自已经从与LAN 100断开连接的状态返回到连接到LAN100的状态的节点的确认请求的节点A(原始节点)所执行的第二数据确认处理的说明。图21是由接收到来自已经从与LAN100断开连接的状态返回到连接到LAN100的状态的节点的确认请求的节点A(原始节点)所执行的第二数据确认处理的流程图。图21中的第二数据确认处理是由节点A的CPU 201根据存储在ROM 202或HD 210中的程序来执行的。

在节点A(原始节点)接收到来自返回到连接到LAN 100的状态的节点(第二确认请求节点)的确认请求(第二确认请求)时,节点A的CPU 201开始图21中的第二数据确认处理(第二确认处理)。

首先,节点A的CPU 201基于包含在确认请求中的数据信息及节点信息,在复制节点列表111中搜索与存储有复制数据的节点相关联的节点状态(步骤S2101)。然后,CPU 201确定是否通过搜索而提取出存储有复制数据的节点的节点状态(步骤S2102)。在此,未提取出存储有复制数据的节点的节点状态的情况包括存储有复制数据的确认请求节点未登记在复制节点列表111中的情况以及存储在确认请求节点中的复制数据未登记在该列表中的情况。在这种情况下,CPU 201不能确认复制数据是否为有效的数据,因此其向确认请求节点发送确认NG(步骤S2103),接着终止该处理。

在步骤S2012中,如果确定提取出存储有复制数据的节点的节点状态,则CPU 201进行对所提取出的节点状态的确定(步骤S2104)。在所例示的示例中,确定节点状态是“已更新”(或处于清除状态)、“未更新”还是“未删除”。

如果节点状态为“已更新”(或处于清除状态),则CPU 201向确认请求节点发送指示复制数据与原始数据相匹配的确认OK(步骤S2105),接着终止该处理。

如果节点状态为“未更新”,则CPU 201发送用于请求将存储在确认请求节点中的复制数据更新的更新请求(步骤S2106)。该更新请求包含更新后的原始数据的复制数据。然后,CPU 201确定是否接收到来自确认请求节点的更新OK(步骤S2107)。在该步骤中,如果确定接收到更新OK,则CPU 201将复制节点列表111中的与确认请求节点相关联的节点状态从“未更新”重写为“已更新”(步骤S2108),接着终止该处理,而如果未接收到更新OK,则CPU 201终止该处理。

如果节点状态为“未删除”,则CPU 201向确认请求节点发送用于请求将存储在确认请求节点中的复制数据删除的删除请求(步骤S2109)。然后,CPU201确定是否接收到来自确认请求节点的作为对删除请求的响应的删除OK(步骤S2110)。在该步骤中,如果确定接收到删除OK,则CPU 201将复制节点列表111中的与确认请求节点相关联的节点状态从“未删除”重写为“已删除”(步骤S2111),接着终止该处理,而如果未接收到删除OK,则CPU 201终止该处理。

如上所述,在与LAN 100断开连接的节点再次连接到LAN 100以加入数据共享系统时,请求原始节点确认已经存储在相对应的节点中的复制数据是否为有效的。然后,作为该确认请求的结果,存储在再次加入数据共享系统的节点中的所有的复制数据变为“已确认”的数据,即,有效的数据。因此,能够防止无效的复制数据从再次加入数据共享系统的节点散布到其他节点。

尽管在本实施例中,通过示例的方式描述了多功能外围设备作为形成节点的信息处理装置,但是信息处理装置可以是打印机、扫描仪、传真机、PC或类似的装置。

应当理解的是,还可以通过提供具有其中存储有实现上述实施例的功能的软件的程序代码的计算机可读存储介质的系统或装置、并使系统或装置的计算机(或CPU或MPU)读出并执行存储在计算机可读存储介质中的程序代码,来实现本发明。

在这种情况下,从计算机可读存储介质中读出的程序代码本身实现本实施例的功能,因此程序代码及其中存储有程序代码的计算机可读存储介质构成本发明。

用于提供程序代码的计算机可读存储介质的示例包括软(注册商标)盘、硬盘、磁光盘、光盘(例如,CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW或DVD+RW)、磁带、非易失性存储卡及ROM。作为另一种选择,可以经由网络来下载程序。

此外,应当理解的是,不仅可以通过执行由计算机所读出的程序代码,而且可以通过使在计算机上操作的OS(操作系统)等基于程序代码的指令来执行实际操作的部分或全部,来实现上述实施例。

此外,应当理解的是,可以通过将从计算机可读存储介质中读出的程序代码写入到设置在插入到计算机中的扩展板上的存储器中或者设置在连接到计算机的扩展单元中的存储器中、然后使设置在扩展板或扩展单元中的CPU等基于程序代码的指令来执行实际操作的部分或全部,来实现上述实施例。

虽然参照示例性实施例对本发明进行了说明,但是应当理解的是,本发明并不限于所公开的示例性实施例。应当对以下权利要求书的范围给予最宽泛的解释,以使其涵盖所有的变型例、等同的结构及功能。

本申请要求于2008年1月11日提交的日本专利申请第2008-004573号公报的优先权,这里通过引用将其全部内容合并于此。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号