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

文档序号:7943857阅读:174来源:国知局
专利名称:数据共享系统、数据共享方法及信息处理装置的制作方法
技术领域
本发明涉及一种其中网络上的节点共享存储在原始节点中的原始数据的 复制数据的数据共享系统、数据共享方法及信息处理装置。
背景技术
作为用于共享数据的系统,常规上已知的系统使用诸如其中积聚了数据 的共享服务器的服务器。在这样的系统中,服务器对数据进行集中的控制。 此外,将通过复制存储在网络上的另一设备(节点)中的原始数据而形成的 数据(g卩,复制数据)存储在服务器中,并且参考原始数据的复制数据作为 来自网络上的节点的共享数据。
此外,作为用于共享数据的系统,还提出了一种系统,在该系统中,通
过使用诸如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中的节点(0的删除请求处理的流程图。
图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存储有复制节点列表lll、复制数据 (原始数据的复制)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的设备进行集中的控制。CPU201的工作区由RAM203来提供。
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,或经由LAN100而被发送给其他装置。此外,根据需 要,将由扫描仪212所读取的图像存储在HD210中。
在本数据共享系统中,存储在节点A中的作为被其他节点B、节点C及 节点D所共享的数据的数据例如包括字体数据、打印数据、控制器固件以及 备份数据,并且这些数据存储在HD 210中。
在本实施例中,为了共享存储在节点A中的原始数据113的复制数据 112,在节点A至节点D之间交换各种请求命令。
将参照图3来给出对各种请求命令的说明。图3是在节点A至节点D之 间交换的各种请求命令以及对这些请求命令的响应的列表的图。
各种请求命令包括复制请求、确认请求、更新请求以及删除请求。复制 请求用于从存储有所期望的原始数据(或其复制数据)的原始节点或存储有所期望的原始数据的复制数据的另一节点请求原始数据的复制数据。复制请 求包含用于识别原始数据的复制数据的数据信息,以及指示请求复制数据的 复制请求节点的节点信息。数据信息是能够利用它来识别原始数据的复制数 据的信息,例如,文件名、文件大小及文件创建的日期及时间。节点信息例
如是IP地址、MAC地址I、 URL或邮件地址。
接收到复制请求的节点向由包含在复制请求中的节点信息所指示的复制 请求节点返回肯定响应或否定响应。在复制请求所请求的复制数据存在时(利 用包含在复制请求中的数据信息而识别出),返回肯定响应,并且作为肯定响 应,返回复制请求所请求的复制数据。在复制数据不存在或者不允许对其进 行复制等情况时,返回否定响应,并且作为否定响应,返回复制请求NG。
接收到上述肯定响应(即,获取了复制数据)的节点(复制请求节点) 向由添加到复制数据中的节点信息所指示的原始节点发送确认请求。该确认 请求用于请求确认上述复制数据是否与存储在原始节点中的原始数据相匹 配。确认请求包含作为肯定响应而返回的复制数据中所包含的数据信息以及 指示已接收到肯定响应的节点(确认请求节点)的节点信息。该节点信息例 如是IP地址、MAC地址、URL、邮件地址等。
已接收到确认请求的原始节点向确认请求节点返回有关确认请求的确认 结果。此时,如果复制数据与原始数据相匹配,则返回指示该事实的确认结 果为"确认OK (肯定响应)"。已接收到确认OK的确认请求节点存储所获 取的复制数据,并且使其对LAN100上的节点公开。另一方面,如果复制数 据与原始数据不匹配,则返回指示该事实的确认结果为"确认NG (否定响 应)"。己接收到确认NG的确认请求节点将所获取的复制数据删除。
应当注意的是,更新请求用于在原始节点中原始数据被更新时,请求存 储有原始数据的复制数据的复制节点更新该复制数据。更新请求包含用于识 别请求被更新的复制数据的数据信息以及更新后的原始数据的复制数据。已 接收到更新请求的复制节点执行用于将利用更新请求中的数据信息而识别出 的复制数据更新为包含在上述更新请求中的复制数据的处理。然后,如果正 常地完成对上述识别出的复制数据的更新,则向原始节点返回"更新OK (肯 定响应)"。另一方面,如果未正常地完成对上述识别出的复制数据的更新, 则向原始节点返回"更新NG (否定响应)"。
应当注意的是,如果在原始节点中删除了原始数据,则上述删除请求请 求存储有原始数据的复制数据的复制节点删除该复制数据。删除请求包含用于识别请求被删除的复制数据的数据信息。已接收到上述删除请求的复制节 点执行用于将存储在其中的复制数据项中的利用删除请求中的数据信息而被 识别出的一项删除的处理。然后,如果正常地完成对识别出的复制数据的删
除,则向原始节点返回"删除OK (肯定响应)"。另一方面,如果未正常地 完成对识别出的复制数据的删除,则向原始节点返回"删除NG(否定响应)"。
此外,在存储有复制数据的节点从与网络断开连接的状态返回到连接到 网络的状态时,该节点向原始节点发送确认请求(第二确认请求)。该确认请 求请求由包含在复制数据中的节点信息所指示的原始节点确认存储在该节点 中的复制数据是否要被更新或删除。该确认请求包含用于识别请求了对其的 上述确认的复制数据的数据信息。已接收到确认请求的原始节点通过参考复 制节点列表111来确认利用确认请求而请求了对其的上述确认的复制数据 (利用数据信息而识别出的复制数据)是否要被更新或删除。然后,如果确 认上述复制数据是不需要被更新或删除的有效的数据,则返回确认0K作为 确认结果。另一方面,如果确认复制数据要被更新,则返回更新请求作为确 认结果。此外,如果确认复制数据要被删除,则返回删除请求作为确认结果。 此外,如果对上述复制数据的确认不成功,则返回确认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是指示LAN100上的存储有复制 数据的原件(Original)的节点的IP地址、MAC地址、URL、邮件地址等节 点信息。数据信息302由用于识别复制数据的信息(例如,文件名、文件大小、文件创建的日期及时间、版本信息等)来形成。数据状态303是能够由 存储有复制数据的节点(包括原始节点)来重写的数据。例如,在存储有原 始数据的原始节点(所例示的示例中的节点A)中,数据状态303被设定为"原 件"。此外,在存储有原始数据的复制数据的复制节点中,数据状态303被设 定为"经确认"或"未经确认"。
接下来,将参照图5来给出对存储在节点A (原始节点)中的复制节点 列表111的说明。图5是存储在节点A中的复制节点列表111的结构的示例 的图。
如图5所示,复制节点列表111按逐个原始数据项来存储关于存储节点 A中所存储的原始数据的复制数据的节点B、节点C及节点D的节点信息。 所例示的复制节点列表lll的示例将原始数据项的数据名称、指示存储有复 制数据的节点(复制节点)的节点信息及节点状态按相互关联的方式来存储。 例如,对于名称为数据1的原始数据,复制节点列表111描述存储有其复 制数据的节点为节点B、节点C及节点D。
节点状态包括指示是否根据对原始数据的更新而更新了原始数据的复制 数据的更新状态以及指示是否删除了复制数据的删除状态。
此时,在节点A (原始节点)中的数据l的原始数据被更新时,复制节 点列表111中的与数据1相关联的所有的节点B、节点C及节点D (复制节 点)的节点状态被设定为"未更新"。然后,向节点B、节点C及节点D中的 各节点发送更新请求。在从复制节点返回更新OK作为对更新请求的响应时, 复制节点的节点状态被重写为"己更新"。在所例示的示例中,尽管对于数据 1,节点B及节点C的各自的节点状态被重写为"已更新",但是节点D的节 点状态保持为"未更新"。
在对存储在所有的复制节点B、节点C及节点D中的复制数据的更新已 完成时,删除关于各个所关联的节点状态的信息(改变为无信息的状态)。例 如,对于数据l,如果在存储有复制数据的节点B、节点C及节点D中的各 节点中更新了复制数据,则删除关于节点B、节点C及节点D中的各节点的 节点状态的信息。
此外,如果删除了名称为数据2的原始数据,则将复制节点列表lll中 的与数据2相关联的节点B、节点C及节点D (复制节点)的节点状态重写 为"未删除"。然后,向节点B、节点C及节点D中的各节点发送数据2的复 制数据的删除请求。如果从复制节点返回"删除OK"作为对删除请求的响应,则复制节点的节点状态被重写为"已删除"。此时,如果在存储有数据2的原 始数据的复制数据的所有的节点B、节点C及节点D中删除了复制数据,则 从复制节点列表lll中删除与数据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 对LAN 100上的公众公开。此时,复制数据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基于确认0K,使从节点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的CPU201分析所接收到的请求命令,并确定 该请求命令是否为复制请求(步骤S401)。此时,如果所接收到的请求命令 是复制请求,则CPU201确定是否存储了该复制请求所请求的原始数据的复 制数据(步骤S402)。
在步骤S402中,如果确定未存储复制数据,则CPU 201确定是否存储 了所请求的复制数据的原始数据(步骤S403)。如果存储了所请求的复制数据的原始数据,则CPU201对所请求的复制数据的原始数据进行复制,以生 成复制数据并存储该复制数据(步骤S404)。此时,将节点信息301及数据 信息302添加到所生成的复制数据中(参见图4)。此外,将数据状态303添 加到复制数据中。在这种情况下,数据状态303被设定为"原件"。然后,CPU 201将所生成的复制数据发送给复制请求节点(步骤S405),接着终止该处 理。
在步骤S403中,如果确定未存储所请求的复制数据的原始数据,则CPU 201向复制请求节点发送复制请求NG (复制请求拒绝)作为对复制请求的响 应(步骤S406),接着终止该处理。
在步骤S402中,如果确定存储了所请求的复制数据,则CPU 201向复 制请求节点发送所请求的复制数据作为对复制请求的肯定响应(步骤S405), 接着终止该处理。
在步骤S401中,如果确定所接收到的请求命令不是复制请求,则CPU 201确定所接收到的请求命令是否为确认请求(步骤S407)。所接收到的确 认请求是从复制请求节点(已从节点A或除节点A以外的其他节点获取复制 数据的节点)发送给节点A的。如果所接收到的请求命令是确认请求,则 CPU 201执行用于确认由该节点所获取的复制数据是否与存储在节点A中的 原始数据相匹配的数据确认处理(步骤S408)。下文中将参照图7来对数据 确认处理进行详细的说明。然后,CPU201立即终止该处理。
在步骤S407中,如果确定所接收到的请求命令不是确认请求,则CPU 201立即终止该处理。
现假设作为复制请求节点的节点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将 包含在确认请求中的节点信息与原始数据的数据名称相关联地存储在复制节 点列表lll中(步骤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上显示示出复制请求被拒绝(对所请求的复制数据的获取不成功)的消息。
然后,CPU201终止该处理。
在步骤S703中,如果确定所接收到的响应是复制数据,则CPU 201确 定复制数据中是否添加了指示原始节点的节点信息(步骤S704)。在该步骤 中,如果添加了指示原始节点的节点信息,则CPU201向由节点信息所指示 的原始节点发送确认请求(步骤S705)。然后,CPU 201等待接收从原始节 点返回的对确认请求的响应(步骤S706)。已接收到确认请求的原始节点(节 点A)基于确认请求来执行数据确认处理(图6中的步骤S408),并向确认 请求节点返回指示数据确认处理的结果的响应(确认OK或NG)。
在步骤S706中,在接收到从原始节点返回的响应时,CPU201确定所接 收到的响应是确认OK还是确认NG (步骤S707)。此时,如果所接收到的响 应是确认OK,则CPU 201执行数据获取成功处理(步骤S708)。在该数据 获取成功处理中,将所接收到的复制数据按照能够使其对LAN 100上的公众 公开的方式来存储,并将添加到复制数据中的数据状态303设定为"已确认"。 此外,在显示器208上显示示出对由复制请求所请求的复制数据的获取成功 的消息。然后,CPU201终止该处理。
在步骤S707中,如果确定所接收到的响应是确认NG,则CPU 201删除 所接收到的复制数据(步骤S709)。然后,CPU201执行数据获取失败处理, 以在显示器208上显示示出对所请求的复制数据的获取不成功(或者复制请 求被拒绝)的消息,接着终止该处理。
如上所述,由于复制数据中添加了指示原始节点的节点信息,因此已获 取到其复制数据的节点能够确认所获取的复制数据是否与原始数据相匹配。 结果,允许已获取到复制数据的节点仅使被确认为与原始数据相匹配的复制 数据对LAN100上的公众公开。此外,原始节点能够使用包含在确认请求中 的节点信息及存储在原件中的复制节点列表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连接到LAN 100为止。然而,由于节点D 未连接到LAN 100,因此旧版本(ver. 1)的复制数据941不会在LAN 100 上散布。
接下来,将参照图10来给出对用于在节点A已更新了原始数据时更新 存储在其他节点B至节点D中的各节点中的复制数据的复制数据更新处理的 描述。图10是用于在节点A已更新了原始数据时更新存储在其他节点B至 节点D中的各节点中的复制数据的复制数据更新处理的流程图。图10中的复制数据更新处理是由节点A (原始节点)的CPU 201根据存储在ROM 202 或HD210中的程序来执行的。
如图10所示,在存储在节点A中的原始数据已被更新时,节点A的CPU 201将存储有尚未被更新的原始数据的复制数据的所有的节点的节点状态设 定为"未更新"(步骤S1001)。具体来说,参考复制节点列表lll,识别出存 储有未被更新的原始数据的复制数据的所有的节点,并将所有的识别出的节 点的节点状态设定为"未更新"。然后,CPU201创建其中列出所有的识别出 的节点的节点信息(i) (i^O)的识别节点信息列表(步骤S1002)。然后, CPU201将用于从识别节点信息列表中获取节点信息(i)的变量i初始化为 0 (步骤S1003)。
接下来,CPU 201确定在识别节点信息列表中是否存在节点信息(i)(步 骤S1004)。在该步骤中,如果存在节点信息(i),则CPU201对由节点信息 (i)所指示的节点(i)执行更新请求处理(步骤S1005)。下文中将参照图 11来对更新请求处理进行详细的说明。然后,CPU 201使变量i递增l (步 骤S画6),并返回到步骤S1004。
在步骤S1004中,如果确定不存在节点信息(i),则CPU201确定在复 制节点列表111中的所有的识别出的节点中是否存在节点状态为"未更新"的 节点(步骤S1007)。在该步骤中,如果不存在节点状态为"未更新"的任何节 点,则CPU201清除复制节点列表111中的所有的识别出的节点的节点状态 (步骤S1008)。在该步骤中,由于所有的识别出的节点的节点状态己被重写 为"已更新",因此节点状态被清除。然后,CPU201终止该处理。
在步骤S1007中,如果确定存在节点状态为"未更新"的节点,则CPU 201 在显示器208上显示示出存在存储有未被更新的复制数据的节点的消息(步 骤S1009),接着终止该处理。
接下来,将参照图11来给出对步骤S1005中的对节点(i)的更新请求 处理的详细的描述。图11是图10中的步骤S1005中的节点(i)的更新请求 处理的流程图。
如图11所示,在更新请求处理中,首先,CPU 201向由节点信息(i) 所指示的节点(i)发送更新请求(步骤SllOl)。该更新请求包含用于识别 要被更新的复制数据的数据信息以及更新后的原始数据的复制数据。
然后,CPU201确定是否接收到来自节点(i)的指示复制数据更新成功 的更新OK (步骤S1102)作为对更新请求的响应。在该步骤中,如果未接收到来自节点(i)的更新OK,则CPU201确定更新请求的发送次数是否超过 预定次数(步骤S1103)。如果更新请求的发送次数未超过预定次数,则CPU 201返回到步骤S1102以发送再一更新请求,而如果更新请求的发送次数超 过预定次数,则由于不存在来自节点(i)的更新OK的响应,因此CPU201 判断节点(0中对复制数据的更新不成功,接着退出该处理。
在步骤S1102中,如果确定接收到来自节点(0的更新OK,则CPU201 将复制节点列表111中的节点(0的节点状态重写为"已更新"(步骤S1104), 接着退出该处理。
如上所述,在接收到来自节点(i)的更新NG或未接收到响应的情况下, 重复地发送更新请求达预定次数,直到接收到来自节点(i)的更新OK为止。 然后,如果接收到更新OK(即,节点(i)中对复制数据的更新成功),则复 制节点列表lll中的节点(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)。然后,CPU201确定是否存储了利 用所提取出的数据信息而识别出的复制数据(步骤S1202)。在该步骤中,如 果确定存储了所识别出的复制数据,则CPU201执行用于将所存储的复制数 据重写为包含在更新请求中的复制数据的更新处理(步骤S1203)。
然后,CPU201确定更新处理是否成功(步骤S1204)。在该步骤中,如 果更新处理成功,则CPU 201向更新请求节点(即,原始节点)发送更新 OK(步骤S1205),接着终止该处理。
在步骤S1204中,如果确定更新处理不成功,则CPU201向节点A (原 始节点)发送更新NG (步骤S1206),接着终止该处理。
在步骤S1202中,如果确定未存储所识别出的复制数据,则CPU201跳 过步骤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参考复制节点列表lll,以由此识别节点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将复制节点列表lll中的具有各自的相对应的数据名称的 节点B及节点C的节点状态重写为"已删除"。
在节点D接收到删除请求之前,节点D由于关机等而处于与LAN 100 断开连接的状态。因此,由于节点D未接收到删除请求,因此节点D未向节 点A返回对删除请求的响应(1357)。在这种情况下,在节点D中,保持存 储复制数据1341而不将其删除。然而,由于节点D未连接到LAN 100,因 此复制数据1341不会在网络上散布。节点A未接收到来自节点D的对删除 请求的响应,使得复制节点列表lll中的节点D的节点状态不被重写,而保 持为"未删除"。
接下来,将参照图14来给出对用于在节点A中原始数据被删除时删除 存储在其他节点B至节点D中的各节点中的复制数据(已被删除的原始数据 的复制数据)的复制数据删除处理的说明。图14是用于在节点A中原始数 据被删除时删除存储在其他节点B至节点D中的各节点中的复制数据(己被 删除的原始数据的复制数据)的复制数据删除处理的流程图。图14中的复制 数据删除处理是由节点A (原始节点)的CPU 201根据存储在ROM 202或 HD210中的程序来执行的。如图14所示,在节点A中原始数据1313被删除时,CPU 201将存储有 被删除的原始数据的复制数据的所有的节点的节点状态设定为"未删除"(步 骤S1401)。具体来说,通过参考复制节点列表lll,识别出存储有被删除的 原始数据的复制数据的所有的节点,并将所有的识别出的节点的节点状态设 定为"未删除"。然后,CPU201创建其中列出所有的识别出的节点的节点信 息(i) (iSO)的识别节点信息列表(步骤S1402)。然后,CPU201将用于 从识别节点信息列表中获取节点信息(i)的变量i初始化为"0"(步骤S1403)。
然后,CPU201访问识别节点信息列表来确定是否存在节点信息(i)(步 骤S1404)。在该步骤中,如果存在节点信息(i),则CPU201对由节点信息 (i)所指示的节点(i)执行复制数据删除请求处理(步骤S1405)。下文中 将参照图15来对复制数据删除请求处理进行详细的说明。然后,CPU 201 使变量i递增l (步骤S1406),并且返回到步骤S1404。
在步骤S1404中,如果确定不存在节点信息(i),则CPU201确定在复 制节点列表111中的所有的识别出的节点中是否存在节点状态为"未删除"的 节点(步骤S1407)。在该步骤中,如果确定不存在节点状态为"未删除"的节 点,则CPU 201从复制节点列表111中删除与本次被删除的原始数据有关的 信息(步骤S1408)。即,将与本次被删除的原始数据相关联的数据名称、节 点信息及节点状态的条目删除。然后,CPU201终止该处理。
在步骤S1407中,如果确定存在节点状态为"未删除"的节点,则CPU 201 在显示器208上显示示出存在针对其的复制数据删除未完成的节点的消息 (步骤S1409),接着终止该处理。
接下来,将参照图15来给出对步骤S1405中的节点(i)的复制数据删 除请求处理的描述。图15是图14中在步骤S1405中所执行的节点(i)的复 制数据删除请求处理的流程图。
如图15所示,在复制数据删除请求处理中,首先,CPU201向由节点信 息(i)所指示的复制节点(i)发送删除请求(步骤S150D。该删除请求包 含用于识别要被删除的复制数据的数据信息。
然后,CPU 201确定在发送删除请求之后的预定时间段内是否接收到来 自复制节点(i)的删除OK作为对删除请求的响应(步骤S1502)。在此, 在预定时间段内未接收到来自节点(0的删除OK的情况包括接收到来自节 点(0的删除NG作为对删除请求的响应的情况以及节点(i)未作出对删除 请求的响应的情况。删除NG是指示复制数据删除失败的响应。如果在预定时间段内未接收到来自复制节点(0的删除OK,则CPU 201 确定删除请求的发送次数是否超过预定次数(步骤S1503)。在该步骤中,如 果确定删除请求的发送次数超过预定次数,则CPU201退出该处理,而如果 删除请求的发送次数未超过预定次数,则CPU 201返回到步骤S1501以发送
另一删除请求。
在步骤S1502中,如果在预定时间段内接收到来自节点(i)的删除OK, 则CPU 201将复制节点列表111中的节点(i)的节点状态重写为"己删除" (步骤S1504),接着终止该处理。
如上所述,在接收到来自节点(i)的删除OK时(g卩,在节点(i)中复 制数据删除成功时),将复制节点列表111中的节点(O的节点状态重写为"已 删除"。
接下来,将参照图16来给出对由节点B至节点D (复制节点)中的各 节点所执行的用于删除由删除请求所请求删除的复制数据的复制数据删除请 求响应处理的说明。图16是由节点B至节点D (复制节点)中的各节点所 执行的用于删除由删除请求所请求删除的复制数据的复制数据删除请求响应 处理的流程图。图16的流程图中所示的复制数据删除请求响应处理是由节点 B至节点D中的各节点的CPU 201根据存储在ROM 202或HD 210中的程 序来执行的。
如图16所示,在节点B至节点D (复制节点)中的一个节点接收到来 自节点A(原始节点)的删除请求时,节点B至节点D中的该节点的CPU 201 从所接收到的删除请求中提取用于识别要被删除的复制数据的数据信息(步 骤S1601)。然后,CPU201确定是否存储了利用所提取出的数据信息而识别 出的复制数据(步骤S1602)。在该步骤中,如果存储了所识别出的复制数据, 则CPU 201执行用于删除所存储的复制数据的删除处理(步骤S16(B)。
然后,CPU201确定对复制数据的删除是否成功(步骤S1604)。在该步 骤中,如果确定复制数据删除成功,则CPU201向删除请求节点(即,节点 A)发送删除OK (步骤S1605),接着终止该处理。
在步骤S1604中,如果确定复制数据删除不成功,则CPU 201向节点A 发送删除NG (步骤S1606),接着终止该处理。
在步骤S1602中,如果确定未存储所识别出的复制数据,则CPU201跳 过步骤S1603及步骤S1604,并向节点A发送删除OK (步骤S1605)。尽管 节点A中未存储要被删除的复制数据,但是能够通过向节点A返回删除OK来防止节点A不必要地重复发送删除请求。
接下来,将参照图17来给出对存储有要被更新的复制数据的节点处于与 LAN 100断开连接的状态并再次连接到LAN 100的情况的说明。图17是用 于对在存储有要被更新的复制数据941的节点D处于与LAN 100断开连接 的状态并再次连接到LAN 100的情况下在节点D与节点A之间交换的请求 及对该请求的响应进行解释的示意图。
如图17所示,现假设节点B及节点C存储有节点A中的更新后的原始 数据(ver.2)的、根据来自节点A (原始节点)的更新请求而被更新的复制 数据(ver. 2) 921及931。此外,假设节点D在更新复制数据(ver. 1) 941 之前终止与LAN 100的连接,因此存储有未被更新的复制数据(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参考复制节点列表lll,以 由此确认节点D的关于复制数据的节点状态是否为"未更新"或"未删除"(第 二数据确认处理)。在该处理中,节点A确认复制节点列表111中的与相对 应的原始数据相关联的节点D的节点状态为"未更新",并向节点D发送更新 请求(1572)。
在节点D接收到更新请求时,节点D将复制数据(ver. 1) 941更新为更 新后的原始数据(ver. 2) 913的复制数据(ver. 2) 912。然后,在复制数据 更新成功时,节点D向节点A返回更新OK作为对更新请求的响应(1753)。 节点A接收到更新OK并将复制节点列表lll中的节点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终止与LAN 100 的连接,并存储请求被删除的复制数据1341。此外,假设在复制节点列表111 中,节点B及节点C的节点状态被设定为"已删除",并且存储有复制数据1341 的节点D的节点状态被设定为"未删除"。
在节点D由于开机等而连接到LAN 100时,节点D开始用于确认复制 数据(ver. 1) 1341是否要被更新或删除的处理。首先,节点D (第二确认请 求节点)将复制数据1341的数据状态303设定为"未确认",并向节点A发 送确认请求(第二确认请求)(1851)。确认请求包含用于识别请求了对其的 确认的复制数据1341的数据信息以及指示节点D (第二确认请求节点)的节 点信息。
在接收到来自节点D的确认请求时,节点A参考复制节点列表lll,并 确认节点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或HD 210中的程序来执行的。
如图19所示,在处于与LAN 100断开连接的状态的节点(例如,节点 D)再次连接到LAN 100时,首先,节点的CPU 201执行对用于连接到LAN 100的网络接口的初始化(步骤S1901)。然后,CPU201将存储在节点中的 所有的复制数据的数据状态初始化,即,将它们设定为"未确认"(步骤 S1902)。
接下来,CPU201搜索数据状态为"未确认"的复制数据(步骤S1903)。 然后,CPU 201根据搜索的结果来确定是否存在数据状态为"未确认"的复制 数据(步骤S1904)。在该步骤中,如果确定存在数据状态为"未确认"的复制 数据,则CPU 201向节点A (原始节点)发送用于请求确认复制数据的确认 请求(第二确认请求)(步骤S1905),如图20所示。该确认请求是用于确认 复制数据是有效的数据、要被更新的数据还是要被删除的数据的请求命令。
然后,CPU201确定是否接收到从节点A返回的作为对确认请求的响应 的确认OK(步骤S1906)。在该步骤中,如果确定接收到确认0K,则CPU201 将复制数据的数据状态重写为"已确认"(步骤S1910)。然后,CPU201返回 到步骤S1903。
在步骤S1906中,确定未接收到确认OK,确定是否接收到来自节点A 的更新请求(步骤S1907)。在该步骤中,如果确定接收到更新请求,则CPU 201执行用于将复制数据重写为包含在所接收到的更新请求中的复制数据的 更新处理(步骤S1908)。在该更新处理中,如果复制数据更新成功,则向节 点A发送更新OK,而如果复制数据更新不成功,则向节点A发送更新NG。 然后,CPU201确定更新处理是否成功(步骤S1909)。在该步骤中,如果确 定更新处理成功,则CPU201将复制数据的数据状态重写为"已确认"(步骤 S1901),并且返回到步骤S1903。
在步骤S1907中,如果确定未接收到更新请求,则CPU 201确定是否接 收到删除请求(步骤S19U)。在该步骤中,如果确定接收到删除请求,则 CPU201执行用于删除复制数据的删除处理(步骤S1912)。在该删除处理中, 如果删除处理成功,则向节点A发送删除OK,而如果删除处理不成功,则 向节点A发送删除NG。然后,CPU201确定删除处理是否成功(步骤S1913)。 在该步骤中,如果确定删除处理成功,则CPU201返回到步骤S1903。
在步骤S1911中,如果确定未接收到删除请求,则CPU201确定是否接 收到确认NG (步骤S1914)。如果接收到确认NG,则CPU201删除复制数据(步骤S1915)。然后,CPU201返回到步骤S1903。
在步骤S1914中,如果确定未接收到确认NG,则CPU201确定确认请 求的发送次数是否超过预定次数(步骤S1916)。在该步骤中,如果确定上述 确认请求的发送次数未超过预定次数,则CPU 201返回到步骤S1905以向节 点A发送再一确认请求,而如果确认请求的发送次数超过预定次数,则CPU 201判断未获取到响应于确认请求的确认结果,并删除复制数据(步骤 S1915)。然后,CPU201返回到步骤S1903。
如果在步骤S1909中确定更新处理不成功,并且如果在步骤S1913中确 定删除处理不成功,则CPU 201进入步骤S1916。
在步骤S1904中,如果确定不存在数据状态为"未确认"的复制数据,则 CPU201加入数据共享系统(步骤S1917),接着终止该处理。
接下来,将参照图21来给出对由接收到来自已经从与LAN 100断开连 接的状态返回到连接到LAN 100的状态的节点的确认请求的节点A (原始节 点)所执行的第二数据确认处理的说明。图21是由接收到来自已经从与LAN 100断开连接的状态返回到连接到LAN 100的状态的节点的确认请求的节点 A (原始节点)所执行的第二数据确认处理的流程图。图21中的第二数据确 认处理是由节点A的CPU 201根据存储在ROM 202或HD 210中的程序来 执行的。
在节点A (原始节点)接收到来自返回到连接到LAN 100的状态的节点 (第二确认请求节点)的确认请求(第二确认请求)时,节点A的CPU201 开始图21中的第二数据确认处理(第二确认处理)。
首先,节点A的CPU 201基于包含在确认请求中的数据信息及节点信息, 在复制节点列表111中搜索与存储有复制数据的节点相关联的节点状态(步 骤S2101)。然后,CPU201确定是否通过搜索而提取出存储有复制数据的节 点的节点状态(步骤S2102)。在此,未提取出存储有复制数据的节点的节点 状态的情况包括存储有复制数据的确认请求节点未登记在复制节点列表111 中的情况以及存储在确认请求节点中的复制数据未登记在该列表中的情况。 在这种情况下,CPU201不能确认复制数据是否为有效的数据,因此其向确 认请求节点发送确认NG (步骤S2103),接着终止该处理。
在步骤S2012中,如果确定提取出存储有复制数据的节点的节点状态, 则CPU 201进行对所提取出的节点状态的确定(步骤S2104)。在所例示的示 例中,确定节点状态是"已更新"(或处于清除状态)、"未更新"还是"未删除"。如果节点状态为"已更新"(或处于清除状态),则CPU 201向确认请求 节点发送指示复制数据与原始数据相匹配的确认OK (步骤S2105),接着终 止该处理。
如果节点状态为"未更新",则CPU 201发送用于请求将存储在确认请求 节点中的复制数据更新的更新请求(步骤S2106)。该更新请求包含更新后的 原始数据的复制数据。然后,CPU201确定是否接收到来自确认请求节点的 更新OK(步骤S2107)。在该步骤中,如果确定接收到更新OK,则CPU 201 将复制节点列表111中的与确认请求节点相关联的节点状态从"未更新"重写 为"已更新"(步骤S2108),接着终止该处理,而如果未接收到更新OK,则 CPU 201终止该处理。
如果节点状态为"未删除",则CPU 201向确认请求节点发送用于请求将 存储在确认请求节点中的复制数据删除的删除请求(步骤S2109)。然后,CPU 201确定是否接收到来自确认请求节点的作为对删除请求的响应的删除OK (步骤S2110)。在该步骤中,如果确定接收到删除OK,则CPU201将复制 节点列表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号 公报的优先权,这里通过引用将其全部内容合并于此。
权利要求
1. 一种数据共享系统,该数据共享系统包括存储有原始数据的第一信息处理装置、从所述第一信息处理装置获取所述原始数据的复制数据的第二信息处理装置、以及经由网络而连接到所述第一信息处理装置及所述第二信息处理装置的第三信息处理装置,所述第二信息处理装置包括适合于将从所述第一信息处理装置所获取的所述复制数据发送给所述第三信息处理装置的复制数据发送单元,并且所述第一信息处理装置包括接收单元,其适合于接收来自所述第三信息处理装置的用于确认所述复制数据的请求;比较单元,其适合于响应于由所述接收单元所接收到的用于确认的所述请求,将所述第三信息处理装置接收到的所述复制数据与所述原始数据彼此比较;以及发送单元,其适合于取决于所述比较单元的比较结果而向所述第三信息处理装置发送用于删除所述复制数据的请求。
2. 根据权利要求1所述的数据共享系统,其中,在作为所述比较单元的 所述比较结果、由所述第三信息处理装置所接收到的所述复制数据与所述原 始数据不匹配时,所述发送单元向所述第三信息处理装置发送用于删除所述 复制数据的所述请求。
3. 根据权利要求1或2所述的数据共享系统,其中,所述第三信息处理 装置响应于对由所述发送单元所发送来的用于删除的所述请求的接收而删除 所述复制数据,并且在所述发送单元未发送来用于删除的所述请求时,所述 第三信息处理装置继续存储所述复制数据。
4. 根据权利要求1所述的数据共享系统,其中,所述第一信息处理装置 还包括存储单元,其适合于存储用于管理存储有所述原始数据的所述复制数据 的信息处理装置的列表;以及登记单元,其适合于取决于所述比较单元的所述比较结果而将所述第三 信息处理装置登记在所述列表中。
5. 根据权利要求1或4所述的数据共享系统,其中,所述第一信息处理 装置还包括更新单元,其适合于更新所述原始数据;以及更新请求发送单元,其适合于在所述更新单元更新了所述原始数据时, 向登记在所述列表中的信息处理装置发送用于更新所述原始数据的所述复制 数据的请求,并且其中,所述第二信息处理装置及所述第三信息处理装置响应于对所述更 新请求的接收而更新所述原始数据的所述复制数据。
6. 根据权利要求1或4所述的数据共享系统,其中,所述第一信息处理 装置还包括删除单元,其适合于删除所述原始数据;以及删除请求发送单元,其适合于在所述删除单元删除了所述原始数据时, 向登记在所述列表中的信息处理装置发送用于删除所述原始数据的所述复制 数据的请求,并且其中,所述第二信息处理装置及所述第三信息处理装置响应于对用于删 除的所述请求的接收而删除所述原始数据的所述复制数据。
7. 根据权利要求1或2所述的数据共享系统,其中,在从所述第二信息处理装置获取所述原始数据的所述复制数据时,或者在起动所述第三信息处 理装置时,所述第三信息处理装置发送用于确认的所述请求。
8. 根据权利要求1或7所述的数据共享系统,其中,所述复制数据包含 用于识别所述第一信息处理装置的识别信息,并且所述第三信息处理装置基 于所述识别信息而向所述第一信息处理装置发送用于确认的所述请求。
9. 一种用于数据共享系统的数据共享方法,所述数据共享系统包括存储 有原始数据的第一信息处理装置以及从所述第一信息处理装置获取所述原始 数据的复制数据的第二信息处理装置,其中,所述第二信息处理装置包括适 合于将从所述第一信息处理装置所获取的所述复制数据发送给第三信息处理 装置的复制数据发送单元,所述第一信息处理装置-接收来自所述第三信息处理装置的用于确认所述复制数据的请求; 响应于通过所述接收所接收到的用于确认的所述请求,将所述第三信息处理装置接收到的所述复制数据与所述原始数据彼此比较;并且取决于所述比较的比较结果而向所述第三信息处理装置发送用于删除所述复制数据的请求。
10. —种信息处理装置,该信息处理装置能够与第一信息处理装置及第二信息处理装置进行通信,所述信息处理装置包括 存储单元,其适合于存储原始数据; 生成单元,其适合于生成所述原始数据的复制数据;发送单元,其适合于响应于来自所述第一信息处理装置的请求,将由所 述生成单元所生成的所述复制数据发送给所述第一信息处理装置;接收单元,其适合于接收来自从所述第一信息处理装置获取到所述复制数据的所述第二信息处理装置的用于确认所述复制数据的请求;比较单元,其适合于将所述第二信息处理装置接收到的所述复制数据与存储在所述存储单元中的所述原始数据彼此比较;以及发送单元,其适合于取决于所述比较单元的比较结果而向所述第二信息 处理装置发送用于删除所述复制数据的请求。
全文摘要
本发明涉及数据共享系统、数据共享方法及信息处理装置。所述数据共享系统能够防止与存储在原始节点中的原始数据不匹配的复制数据在网络上散布。所述原始节点存储有所述原始数据。第一复制节点从所述原始节点获取所述原始数据的复制数据,并将该复制数据发送给第二复制节点。所述原始节点接收到来自所述第二复制节点的用于确认从所述第一复制节点接收到的所述复制数据的请求,响应于该请求而将由所述第二复制节点所接收到的所述复制数据与所述原始数据彼此比较,并且取决于所述比较的结果而向所述第二复制节点发送用于删除所述复制数据的请求。
文档编号H04L12/54GK101483577SQ20091000155
公开日2009年7月15日 申请日期2009年1月12日 优先权日2008年1月11日
发明者菅原一浩 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1