JP5011965B2 - 情報の管理方法及び情報処理装置 - Google Patents

情報の管理方法及び情報処理装置 Download PDF

Info

Publication number
JP5011965B2
JP5011965B2 JP2006303835A JP2006303835A JP5011965B2 JP 5011965 B2 JP5011965 B2 JP 5011965B2 JP 2006303835 A JP2006303835 A JP 2006303835A JP 2006303835 A JP2006303835 A JP 2006303835A JP 5011965 B2 JP5011965 B2 JP 5011965B2
Authority
JP
Japan
Prior art keywords
information
editing
node
shared
lock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006303835A
Other languages
English (en)
Other versions
JP2008123088A (ja
Inventor
宏樹 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konica Minolta Inc
Original Assignee
Konica Minolta Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2006303835A priority Critical patent/JP5011965B2/ja
Publication of JP2008123088A publication Critical patent/JP2008123088A/ja
Application granted granted Critical
Publication of JP5011965B2 publication Critical patent/JP5011965B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報を複数のノード間で共有し、編集するネットワークにおける情報の管理方法、及びネットワークを構成するノードとしての情報処理装置に関する。
近年、ネットワークを構成する任意のノード間で自由にデータの送受信を行うような通信形態を有するネットワークが盛んに利用されるようになってきた。
従来は、中央にホストの役目を担ったサーバなどがあり、クライアントとしての各端末が、それぞれホストサーバにアクセスし、端末間でやり取りが必要であれば、ホストサーバが仲介して行うというタイプの中央集中処理型のネットワークが主流であった。
これに対して、いわゆる分散処理型のネットワークが徐々に登場してきている。保存する情報を分散する、またその処理を分散するといった機構を実現するためには、通信の機能も分散しなければならない。すなわち、ネットワークを構成する各ノード間で、自由にデータ通信が行われなければならない。
代表的な形態として、P2P(Peer to Peer)と呼ばれる通信ネットワークの形態がある。P2Pは不特定多数のノード間で直接情報のやり取りを行なうネットワークの利用形態であり、技術的に中央サーバの媒介を要するものと、バケツリレー式にデータを運ぶものの2種類がある。
中央サーバを要する場合にも、中央サーバはファイル検索データベースの提供とノードの接続管理のみを行っており、データ自体のやり取りはノード間の直接接続によって行われている。
また、中央サーバがホストとして集中処理するような形態であっても、任意のクライアントが中央サーバとしての機能を果たすよう随時変更可能なシステムもあり、実質的には不特定多数の任意のノード間で直接情報のやり取りを行なうP2Pのシステムと同等機能を有すると見なせるようなネットワーク形態もある。
こういったデータ共有、分散処理のネットワーク形態を効率的に達成する技術が研究されてきた(特許文献1、2、参照)。特許文献1及び2では、何れもP2Pのシステムを採っており、任意のノード間でデータを共有し、データ送受信を行うシステムが形成されている。
これらにより、ネットワークシステムの利用形態としての自由度は向上し、ユーザは大きな利便性を手に入れたが、一方では、各処理能力を分散して所有することになるため、個々のユーザの処理の自由度から見ればかえって不便となる場合もある。
例えば、データを共有して所有するとすれば、ネットワークの規模が大きく、共有の範囲が拡がれば拡がるほど、膨大なユーザが共有データにアクセスすることになる。しかしアクセスするだけでなく、編集などの加工を自由に行えるようにしようとすれば、アクセスが集中すると共有するデータの整合性がとれなくなるため、アクセス不可のユーザが発生してくる。すなわち競合が生じてくる。
アクセスして共有データを取得することはできても、それを元のデータに反映することはできず、同時にアクセスしただけ、データファイルができてしまうといった状態になり、収拾がつかなくなりかねない。またそれを防止しようと排他的にロックを掛けるようにすると、アクセスできないユーザが多く出てくることになってしまう。
広いネットワーク上の多数のユーザが共有するデータに対して、互いに協調してデータの編集加工ができ、最終的に統一された形で保存データとして反映されるというシステムが望まれる。
特開2001−67325号公報 特開2004−252732号公報
上記のようにP2Pネットワークシステムなどのデータを複数のノードで共有し、互いに編集などの加工処理が可能なシステムにおいては、広いネットワーク上の多数のユーザがアクセスしようとすると、競合が発生し、同時にアクセスして処理を行うとデータの整合性がとれなくなってしまうことが起こる。排他的にロックを掛けることで競合を避けようとすると、多くのユーザがアクセスできなくなってしまう。また、各ユーザにデータ取得を許し、並行的に処理をさせると、多数のデータファイルが発生し、収拾がつかなくなってしまう。
本発明の目的は、上記の課題を解決し、ネットワーク上の複数のノードに共有された情報に対して、多数のノード間で情報共有しながら、互いに競合することなく、必要以上にアクセスを制限されることもなく、協調して並行的に共有情報の編集加工ができ、最終的に統一された形で保存情報として反映されることが可能な情報の管理方法、及びノードとしての情報処理装置を提供することである。
本発明は、上記の課題を解決するため、以下の特徴を有するものである。
1. 情報記憶手段を有する複数のノード間で、それぞれ編集対象の情報を共有し、編集するネットワークシステムにおける情報の管理方法であって、複数の前記ノードが、前記情報を協調して編集するための編集参加ノードとして、前記情報を保存するノードから前記情報を共有情報として取得するとともに、協調編集のための編集情報を取得、または生成して、前記共有情報と前記編集情報をそれぞれの前記情報記憶手段に保持する情報共有工程と、前記情報共有工程によって前記共有情報を取得した前記編集参加ノードが、それぞれの前記情報記憶手段に保持する前記共有情報の任意の一部を編集するために、互いに他のノードに対してそれぞれの編集する共有情報の任意の一部にロックを掛け合い、それぞれの編集する共有情報の任意の一部同士を互いに競合させることなく、並行的に編集動作を行う協調編集工程と、前記協調編集工程によって前記共有情報を協調編集した前記編集参加ノードの少なくとも一つが、当該ノードの前記情報記憶手段に保持する協調編集済みの前記共有情報を、元の前記情報を保存するノードに送信し、元の前記情報を協調編集済みの前記共有情報に更新し、更新された前記情報として保存する情報保存工程とを有し、前記情報共有工程において、前記編集参加ノードが取得し、それぞれの前記情報記憶手段に保持する前記編集情報は、前記共有情報を取得した編集参加ノードに関する情報、及びそれら編集参加ノードによる前記共有情報の編集履歴に関する情報を含み、前記編集参加ノード間で前記共有情報とともに共有され、編集参加ノードが変化したり、編集の行われたりする毎に更新され、前記協調編集工程において、編集参加ノードはそれぞれ、当該ノードの前記情報記憶手段に保持する前記共有情報の一部の編集を終えた後、他のノードに対して共有情報の一部に掛けたロックを外すためのアンロック情報を送信する毎に、前記共有情報の一部の編集内容を含む編集情報を共有するために、自らの保持する編集情報を更新するとともに、他のノードに対して更新した前記編集情報を前記アンロック情報とともに送信し、また他のノードから前記アンロック情報と前記編集情報を受信する毎に、受信した前記編集情報に基づいて、自らの情報記憶手段に保持する編集情報を更新することを特徴とする情報の管理方法。
2. 前記情報保存工程は、編集を終えたノードが前記編集参加ノードから抜けて、前記編集情報が更新されていき、最後のノードが編集を終えたときに、当該ノードによって実行されることを特徴とする1に記載の情報の管理方法。
3. 前記情報保存工程は、編集を終えたノードが前記編集参加ノードから抜けるに際して、当該ノードでの保存指示があるとき、当該ノードによって実行されることを特徴とする1に記載の情報の管理方法。
4. 情報記憶手段を有する複数のノード間で、それぞれ編集対象の情報を共有し、編集するネットワークシステムにおける情報の管理方法であって、複数の前記ノードが、前記情報を協調して編集するための編集参加ノードとして、前記情報を保存するノードから前記情報を共有情報として取得するとともに、協調編集のための編集情報を取得、または生成して、前記共有情報と前記編集情報をそれぞれの前記情報記憶手段に保持する情報共有工程と、前記情報共有工程によって前記共有情報を取得した前記編集参加ノードが、それぞれの前記情報記憶手段に保持する前記共有情報の任意の一部を編集するために、互いに他のノードに対してそれぞれの編集する共有情報の任意の一部にロックを掛け合い、それぞれの編集する共有情報の任意の一部同士を互いに競合させることなく、並行的に編集動作を行う協調編集工程と、前記協調編集工程によって前記共有情報を協調編集した前記編集参加ノードの少なくとも一つが、当該ノードの前記情報記憶手段に保持する協調編集済みの前記共有情報を、元の前記情報を保存するノードに送信し、元の前記情報を協調編集済みの前記共有情報に更新し、更新された前記情報として保存する情報保存工程とを有し、前記情報保存工程は、編集を終えたノードが前記編集参加ノードから抜けて、前記編集情報が更新されていき、最後のノードが編集を終えたときに、当該ノードによって実行されることを特徴とする情報の管理方法。
5. 前記協調編集工程は、前記情報共有工程によって前記共有情報を取得した前記編集参加ノードのそれぞれが、当該ノードの前記情報記憶手段に保持する前記共有情報の一部を編集するために、他のノードに対して共有情報の一部にロックを掛けるようにロック情報を送信してから、前記共有情報の一部の編集を行い、前記ロック情報を受信した他のノードは、それぞれのノードの前記情報記憶手段に保持する前記共有情報の一部に編集できないようにロックを掛ける、相互情報ロック工程と、前記相互情報ロック工程において前記ロック情報を送信したそれぞれのノードが、当該ノードの前記情報記憶手段に保持する前記共有情報の一部の編集を終えた後、他のノードに対して前記アンロック情報を送信し、前記アンロック情報を受信した他のノードは、それぞれのノードの前記情報記憶手段に保持する前記共有情報の一部に掛けたロックを外す、相互情報アンロック工程と、を備えることを特徴とする1乃至3の何れか1項に記載の情報の管理方法。
6. 前記協調編集工程は、前記情報共有工程によって前記共有情報を取得した前記編集参加ノードのそれぞれが、当該ノードの前記情報記憶手段に保持する前記共有情報の一部を編集するために、他のノードに対して共有情報の一部にロックを掛けるようにロック情報を送信してから、前記共有情報の一部の編集を行い、前記ロック情報を受信した他のノードは、それぞれのノードの前記情報記憶手段に保持する前記共有情報の一部に編集できないようにロックを掛ける、相互情報ロック工程と、前記相互情報ロック工程において前記ロック情報を送信したそれぞれのノードが、当該ノードの前記情報記憶手段に保持する前記共有情報の一部の編集を終えた後、他のノードに対して共有情報の一部に掛けたロックを外すためのアンロック情報を送信し、前記アンロック情報を受信した他のノードは、それぞれのノードの前記情報記憶手段に保持する前記共有情報の一部に掛けたロックを外す、相互情報アンロック工程と、を備えることを特徴とする4に記載の情報の管理方法。
7. 前記相互情報ロック工程では、編集開始するノードから送信される前記ロック情報は、ロックを掛ける前記共有情報の一部に関する情報として、当該ノードでの現在編集中の箇所から一定範囲内のエリア、現在表示されているウィンドウエリア、またはシステムがロックを必要とするエリアの一つ以上を含むことを特徴とする5または6に記載の情報の管理方法。
8. 前記相互情報アンロック工程では、ロックを外すタイミングとして、編集開始したノードでの、編集入力後一定時間経過後、ユーザによる編集終了指示、または入力ウィンドウの非アクティブ状態の一つ以上に基づき編集を終了し、当該ノードから前記アンロック情報が送信されることを特徴とする5乃至7の何れか1項に記載の情報の管理方法。
9. 前記協調編集工程では、任意の編集参加ノードが、前記ロック情報に基づき既にロックを掛けている前記共有情報の一部に対して編集を行いたい場合に、他のノードに予約ロック情報を送信し、予約したノードが当該ロック情報に対応するアンロック情報を受信すると、他のノードに前記予約ロック情報に基づくロックが掛かり、予約したノードによる編集が可能になることを特徴とする5乃至8の何れか1項に記載の情報の管理方法。
10. 前記協調編集工程では、同一のエリアをロックエリアとして含む前記予約ロック情報が複数発生した場合、当該エリアに対するロックが外されるたびに、前記予約ロック情報に基づくロックを発生順に実行し、実行待ちの予約ロック情報件数が所定数に達した場合は、当該エリアに対するロックを外すタイミングを調整することを特徴とする9に記載の情報の管理方法。
11. 元の前記情報を保存するノードは、当該ノードから前記情報を取得したノードに関するアクセス情報を保持しており、前記情報共有工程において、元の前記情報を保存するノードにアクセスしたノードは、前記アクセス情報を参照し、既に前記情報を前記共有情報として取得したノードが存在する場合は、当該ノードにアクセスして前記共有情報及びその編集情報を取得することを特徴とする1乃至10の何れか1項に記載の情報の管理方法。
12. 情報記憶手段を有する複数のノード間で、それぞれ編集対象の情報を共有し、編集するネットワークシステムにおける、ノードとしての情報処理装置であって、前記情報を他のノードと協調して編集するための編集参加ノードとして、前記情報を保存するノードから前記情報を共有情報として取得するとともに、協調編集のための編集情報を取得、または生成して、前記共有情報と前記編集情報を前記情報記憶手段に保持させる情報共有手段と、前記情報記憶手段に保持する前記共有情報の任意の一部を編集するために、他のノードが保持する前記共有情報の対応する一部にロックを掛け、また他のノードから自らの編集する共有情報の任意の一部にロックを掛けさせることで、他のノードと、それぞれの編集する共有情報の任意の一部同士を互いに競合させることなく、並行的に編集動作を行う協調編集手段と、前記協調編集手段による協調編集を終えた前記共有情報を、元の前記情報を保存するノードに送信し、元の前記情報を協調編集済みの前記共有情報に更新し、保存させる情報保存手段とを有し、前記情報共有手段により取得し、前記情報記憶手段に保持する前記編集情報は、協調編集するために、同じ前記共有情報を取得し、共有する編集参加ノードに関する情報、及びそれら編集参加ノードによる前記共有情報の編集履歴に関する情報を含み、前記編集参加ノード間で前記共有情報とともに共有され、編集参加ノードが変化したり、編集の行われたりする毎に更新され、前記協調編集手段は、
前記情報記憶手段に保持する前記共有情報の一部の編集を終えた後、他のノードに対して共有情報の一部に掛けたロックを外すためのアンロック情報を送信する毎に、前記共有情報の一部の編集内容を含む編集情報を共有するために、保持する編集情報を更新するとともに、他のノードに対して更新した前記編集情報を前記アンロック情報とともに送信し、また他のノードからアンロック情報と編集情報を受信する毎に、受信した前記編集情報に基づいて、前記情報記憶手段に保持する前記編集情報を更新することを特徴とする情報処理装置。
13. 前記情報保存手段は、編集を終えたノードが前記編集参加ノードから抜けて、前記編集情報が更新されていき、自らが最後のノードとして編集を終えたときに、編集を終えた前記共有情報を、元の前記情報を保存するノードに送信し、元の前記情報を編集済みの前記共有情報に更新し、保存させるものであることを特徴とする12に記載の情報処理装置。
14. 前記情報保存手段は、編集を終えて前記編集参加ノードから抜けるに際して、保存指示があるときに、編集を終えた前記共有情報を、元の前記情報を保存するノードに送信し、元の前記情報を編集済みの前記共有情報に更新し、保存させるものであることを特徴とする12に記載の情報処理装置。
15. 情報記憶手段を有する複数のノード間で、それぞれ編集対象の情報を共有し、編集するネットワークシステムにおける、ノードとしての情報処理装置であって、前記情報を他のノードと協調して編集するための編集参加ノードとして、前記情報を保存するノードから前記情報を共有情報として取得するとともに、協調編集のための編集情報を取得、または生成して、前記共有情報と前記編集情報を前記情報記憶手段に保持させる情報共有手段と、前記情報記憶手段に保持する前記共有情報の任意の一部を編集するために、他のノードが保持する前記共有情報の対応する一部にロックを掛け、また他のノードから自らの編集する共有情報の任意の一部にロックを掛けさせることで、他のノードと、それぞれの編集する共有情報の任意の一部同士を互いに競合させることなく、並行的に編集動作を行う協調編集手段と、前記協調編集手段による協調編集を終えた前記共有情報を、元の前記情報を保存するノードに送信し、元の前記情報を協調編集済みの前記共有情報に更新し、保存させる情報保存手段とを有し、前記情報保存手段は、編集を終えたノードが前記編集参加ノードから抜けて、前記編集情報が更新されていき、自らが最後のノードとして編集を終えたときに、編集を終えた前記共有情報を、元の前記情報を保存するノードに送信し、元の前記情報を編集済みの前記共有情報に更新し、保存させるものであることを特徴とする情報処理装置。
16. 前記協調編集手段は、前記情報記憶手段に保持する前記共有情報の一部を編集するために、他のノードに対して共有情報の一部にロックを掛けるようにロック情報を送信し、また他のノードから前記ロック情報を受信したときには、自らの前記情報記憶手段に保持する前記共有情報の一部に編集できないようにロックを掛ける、情報ロック手段と、前記情報記憶手段に保持する前記共有情報の一部の編集を終えた後、他のノードに対して前記アンロック情報を送信し、また他のノードから前記アンロック情報を受信したときには、自らの前記情報記憶手段に保持する前記共有情報の一部に掛けたロックを外す、情報アンロック手段と、を備えることを特徴とする12乃至14の何れか1項に記載の情報処理装置。
17. 前記協調編集手段は、前記情報記憶手段に保持する前記共有情報の一部を編集するために、他のノードに対して共有情報の一部にロックを掛けるようにロック情報を送信し、また他のノードから前記ロック情報を受信したときには、自らの前記情報記憶手段に保持する前記共有情報の一部に編集できないようにロックを掛ける、情報ロック手段と、前記情報記憶手段に保持する前記共有情報の一部の編集を終えた後、他のノードに対して共有情報の一部に掛けたロックを外すためのアンロック情報を送信し、また他のノードから前記アンロック情報を受信したときには、自らの前記情報記憶手段に保持する前記共有情報の一部に掛けたロックを外す、情報アンロック手段と、を備えることを特徴とする15に記載の情報処理装置。
18. 前記情報ロック手段は、ロックを掛ける前記共有情報の一部に関する情報として、現在編集中の箇所から一定範囲内のエリア、現在表示されているウィンドウエリア、またはシステムがロックを必要とするエリアの一つ以上を含む、前記ロック情報を送信することを特徴とする16または17に記載の情報処理装置。
19. 前記情報アンロック手段は、ロックを外すタイミングとして、編集入力後一定時間経過後、ユーザによる編集終了指示、または入力ウィンドウの非アクティブ状態の一つ以上に基づき編集を終了し、前記アンロック情報を送信することを特徴とする16乃至18の何れか1項に記載の情報処理装置。
20. 前記協調編集手段は、前記ロック情報に基づき既にロックを掛けている前記共有情報の一部に対して編集を行いたい場合に、他のノードに予約ロック情報を送信し、 当該ロック情報に対応する前記アンロック情報を受信すると、他のノードに前記予約ロック情報に基づくロックを掛けさせ、編集を可能にすることを特徴とする16乃至19の何れか1項に記載の情報処理装置。
21. 前記協調編集手段は、同一のエリアをロックエリアとして含む前記予約ロック情報を複数受信した場合、当該エリアに対するロックが外されるたびに、前記予約ロック情報に基づくロックを受信順に実行し、実行待ちの予約ロック情報件数が所定数に達した場合は、当該エリアに対するロックを外すタイミングを調整することを特徴とする20に記載の情報処理装置。
22. 元の前記情報を保存するノードは、当該ノードから前記情報を取得したノードに関するアクセス情報を保持しており、前記情報共有手段は、元の前記情報を保存するノードにアクセスして前記アクセス情報を参照し、既に前記情報を前記共有情報として取得したノードが存在する場合は、当該ノードにアクセスして前記共有情報及びその編集情報を取得することを特徴とする12乃至21の何れか1項に記載の情報処理装置。
本発明によれば、情報を複数のノード間で共有し、編集するネットワークシステムにおいて、複数の編集参加ノードが、編集に必要な情報を互いに提供し、最新の状態で共有する。また、それぞれのノードが共有情報の一部を編集するために、互いに他のノードにロックを掛け合い、それぞれの編集する部分を互いに競合させることなく、並行的に編集動作を行う。そして、編集参加ノードの少なくとも一つが代表して、編集済みの共有情報を元の情報を保存するノードに送信し、更新保存させる。
これにより、多数のノード間で情報共有しながら、互いに競合することなく、必要以上にアクセスを制限されることもなく、協調して並行的に共有情報の編集加工ができ、最終的に統一された形で保存情報として反映されることが可能な情報の管理方法、及びノードとしての情報処理装置を提供することができる。
以下に、図を参照して本発明に係る実施形態を説明する。
(ネットワークの全体構成)
図1はネットワーク1の全体的な構成の例を示す図である。図1を用いて本発明に係る情報の管理方法、及び情報処理装置により構成されるネットワークの実施形態について、その全体構成を説明する。
本発明の実施形態に係るネットワーク1は、図1に示すように、複数台の端末装置2(21、22、…、2n)、スイッチングハブ3、ルータ4、及び認証サーバ5などのノードによって構成されるLAN(Local Area Network)である。これらの端末装置2は、スイッチングハブ3にツイストペアケーブルによってスター型に繋がれている。
ネットワークを構成するノードとしての端末装置2は、本発明に係る情報処理装置であり、パーソナルコンピュータ、ワークステーション、またはプリンタなどのような、他の装置との間でデータの入出力の処理を実行する装置である。以下、ノードといえば単にこの端末装置のことを指し、情報処理装置としてのパーソナルコンピュータが用いられるものとして説明する。
また本実施形態では、P2P(Peer to Peer)と呼ばれる通信ネットワークの形態を採っている。P2Pは不特定多数のノード間で直接情報のやり取りを行なうネットワークの利用形態であり、技術的に中央サーバの媒介を要するものと、バケツリレー式にデータを運ぶものの2種類がある。
中央サーバを要する場合にも、中央サーバはファイル検索データベースの提供とノードの接続管理のみを行っており、データ自体のやり取りはノード間の直接接続によって行われている。
また、中央サーバがホストとして集中処理するような形態であっても、任意のクライアントが中央サーバとしての機能を果たすよう随時変更可能なシステムもあり、実質的には不特定多数の任意のノード間で直接情報のやり取りを行なうP2Pのシステムと同等機能を有すると見なせるようなネットワーク形態もある。
本実施形態では、中央サーバは用いず、後で図3の接続トポロジーを説明するが、予め関連付けられたノード(端末装置)間では直接接続を行い、通信する。その他のノードとは、直接接続したノードを介して間接的に接続することになる。認証サーバ5は認証のための証明書に関わる管理のみを担い、通信のための接続には直接関わらない。またルータ4もノード(端末装置)間の通信には直接関与しない。
P2Pでは、直接ノード同士が通信するため、如何にお互いの正当性を認証するか、不正の入り込む余地を抑制するかというセキュリティが重要である。そのために認証サーバ5の発行するディジタル証明書を用いる。後述するSSL通信においては、X.509仕様のディジタル証明書が使用される。
以下、上記の観点から、本実施形態に係るネットワークにおいて、これらのノード2同士がデータ通信を行い、各ノードで共有された情報について、協調して編集を行う場合について説明する。
(端末装置の構成)
図2はノード(端末装置)2のハードウェア構成の例を示す図である。
端末装置2は、図2に示すように、CPU20a、RAM20b、ROM20c、ハードディスク20d、通信インタフェース20e、画像インタフェース20f、入出力インタフェース20g、その他の種々の回路または装置などによって構成される。
通信インタフェース20eは、例えばNIC(Network Interface Card)であって、ツイストペアケーブルを介してスイッチングハブ3のいずれかのポートに繋がれている。画像インタフェース20fは、モニタと繋がれており、画面を表示するための映像信号をモニタに送出する。
入出力インタフェース20gは、キーボード若しくはマウスなどの入力装置またはCD−ROMドライブなどの外部記憶装置などと繋がれている。そして、ユーザが入力装置に対して行った操作の内容を示す信号を入力装置から入力する。または、CD−ROMなどの記録媒体に記録されているデータを外部記憶装置に読み取らせ、これを入力する。または、記録媒体に書き込むためのデータを外部記憶装置に出力する。
ハードディスク20dには、後で機能ブロック図(図5)を用いて説明するが、データ保持部201、ノード情報部202、編集履歴部203、一時情報記憶部204、処理背制御部205、その他操作部206、データ受信部207、データ解析部208、データ作成部209、及びデータ送信部210などの機能を実現するためのプログラム及びデータが格納されている。これらのプログラム及びデータは必要に応じてRAM20bに読み出され、CPU20aによってプログラムが実行される。
各ノード2には、それぞれ、他のノード2との識別のために、ホスト名(マシン名)、IPアドレス、及びMACアドレスが与えられている。ホスト名は、ネットワーク1の管理者などが自由に付けることができる。IPアドレスは、ネットワーク1の規則に従って与えられる。MACアドレスは、そのノード2の通信インタフェース10eに対して固定的に与えられているアドレスである。
本実施形態では、ノード(端末装置)21、22、…ごとに「PC1」、「PC2」、…のようなホスト名が付されているものとする。以下、これらのノード2をホスト名によって記載することがある。
(ノードの接続形態)
図3はノードの接続形態、すなわちノード(端末装置)の論理的なトポロジーの例を示す図である。図3を用いてノード2の接続形態を説明する。
ノード2は、図3に示すように、仮想空間に配置されているものと仮想されている。そして、点線で示すように、仮想空間内の近隣の少なくとも1台の他のノード2と関連付けられている。かつ、これらの関連付けによって、すべてのノード2が互いに直接的にまたは間接的に関連するようになっている。
なお、「直接的に関連」とは、図3において1本の点線で繋がれていること(例えば、図3のPC1とPC2またはPC9とのような関係)を言い、「間接的に関連」とは、2本以上の点線及び1つ以上のノードで繋がれていること(例えば、図3のPC1とPC4とのような関係)を言う。ノード2は、自らに直接的に関連付けられている他のノード2に対してデータを送信する。
図4は図3のように関連付けられたノード2の接続テーブルTLの例を示す図である。各ノード2毎に、直接データ送信可能な、「直接的に関連」付けられている他のノード2との接続のための情報のリストをテーブル化して保持している。
例えば、図3におけるPC1、PC2、PC6、PC7、PC8、及びPC9のノードには、それぞれ図4に示すような接続テーブルTL1、TL2、TL6、TL7、TL8、及びTL9が保持されている。
(端末装置の各部の機能)
図5(a)はノード(端末装置)2の機能的構成の例を示すブロック図である。図5(a)を用いてノード2の各部の処理機能について説明する。
データ保持部201は、そのノード2またはユーザなどの属性を示す属性データ、そのノード2自身のディジタル証明書、失効リスト(CRL)、オペレーティングシステム(OS)またはアプリケーションソフトなどが使用するデータ、ユーザがアプリケーションソフトによって作成したデータ、その他種々のデータを、ファイルとして保存している。
ディジタル証明書は、ノード2の要請により認証サーバ5が発行し、当該ノード2が保持し、ノード2同士の通信時に互いを認証するのに利用される。失効リスト(CRL)は、ノードの脱退などによるディジタル証明書の失効を登録記載するもので、認証サーバ5が管理するが、P2P通信を行う本実施形態では、各ノード2がそれぞれ失効リスト(CRL)を保持し、更新などの管理を行う。
ノード情報部202は、そのノード2自身に直接的に関連付けられている他のノード2のホスト名、IPアドレス、及びMACアドレスなどの属性の一覧を示す接続テーブルTLを保存している。例えば、図3におけるPC1、PC2、PC6、PC7、PC8、及びPC9のノード情報部202に、それぞれ図4に示すような接続テーブルTL1、TL2、TL6、TL7、TL8、及びTL9が保存されている例を図4を用いて既述した。これらの接続テーブルTLの内容は、各ノード2の関連付けに基づいて管理者によって予め作成される。
その他操作部206は、上記ノード情報部202に保持される接続テーブルTLの管理を行う。
また、その他操作部206は、データ保持部201にデータを保存し、またはデータ保持部201に保存されているデータを更新するなどの処理を行う。例えば、ノード2の環境または設定内容が変わるごとに、属性データを更新する。または、失効リスト(CRL)を更新する処理を行う。
また、その他操作部206は、他のノード2から送信されて来たディジタル証明書などに基づいて当該他のノード2の認証の処理を行う。また送信されて来たディジタル証明書が失効していないかどうかを、データ保持部201に保存されている失効リスト(CRL)を参照して確認する。また、当該ノード2が新たにネットワークに参加、もしくは脱退しようとする場合の処理などを行う。
その他操作部206は、必要に応じてデータ受信部207、データ送信部210を介してネットワーク1の他のノード2とデータ通信を行い、また必要に応じてノード情報部202、データ保持部201のデータを参照、あるいは更新する。
データ受信部207は、他のノード2とデータ通信を行うための制御処理を行う。データ受信部207は、ネットワーク1を流れるパケットのうち、そのノード2に必要なものを受信する。
データ解析部208は、データ受信部207が受信した受信データから必要な情報を抽出してその内容を解析することによって、その受信データの種類を判別する。
データ作成部209は、処理制御部205、その他操作部206などの指示に基づいて、他のノード2に送信するための送信データを作成する。
データ送信部210は、送信データ作成部209によって生成され、パケット化された送信データを他のノード2に送信する。
<情報共有、協調編集及び情報保存に関わる機能>
図5(b)は、各ノード2同士でのデータ情報共有と協調編集に関わる機能要素部分の詳細、特に処理制御部205の機能の内部構成を示す図である。図5(b)を用いて、各ノード間でのデータ共有と共有データの協調編集、及び編集済みデータの保存に関わる機能要素について説明する。
処理制御部205は、データをノード2同士で協調編集するために互いにデータ共有する処理や、編集時に互いにロックを掛け合い、編集エリアが競合しないように調整する処理機能や、編集を終えた後の保存などのデータ処理を制御する。
処理制御部205は、情報共有処理部211、協調編集処理部212、そして情報保存処理部213を構成要素として含み、また協調編集処理部212は、情報ロック処理部212a、情報アンロック処理部212bをその構成要素として含む。
一方、ノード情報部202、編集履歴部203、及び一時情報記憶部204は、上記協調編集などに必要な情報をそれぞれ一時的に保持する。
ノード情報部202は、協調編集を行うために共有データを取得し、保持している編集参加ノードを特定することができるノード情報を保持する。
編集履歴部203は、各ノードで編集された内容や履歴に関する編集履歴情報を保持する。
そして一時情報記憶部204は、共有データそのもの、ロック状態、ロックエリアに関する情報、また場合によっては編集中の差分データを一時的に保持する。
これにより、後述する制御情報(ロック情報、アンロック情報)、編集情報(編集履歴、ノード情報)、そして共有データやその差分情報を、協調編集のためにノード間で互いに送受信することができる。すなわち、ノード情報部202、編集履歴部203、及び一時情報記憶部204は、情報記憶手段として機能する。
情報共有処理部211は、編集したいデータ(情報)を他のノードとともに協調して編集するため、元のデータを保存しているノード、あるいは既にそのデータ(情報)を共有データ(共有情報)として保持している他のノードから取得し、共有データとして一時情報記憶部204に保持する。すなわち、情報共有処理部211は情報共有手段として機能する。共有データ(共有情報)を取得する処理の詳細は後述する。
また、協調編集処理部212は、共有データの一部を編集するに当たって、他のノードの対応する共有データの一部にロックを掛け、また他のノードからも自らの保持する共有データの一部にロックを掛けさせることで、他のノードと、それぞれの編集する共有データの一部同士が互いに競合しないように、並行的に編集動作を行わせる。すなわち、協調編集処理部212は協調編集手段として機能する。共有データ(共有情報)を協調して編集する処理の詳細は後述する。
また情報保存処理部213は、必要に応じて一時情報記憶部204に保持する編集を終えた共有データ(共有情報)を編集前の元のデータを保存するノードに送信し、元のデータ(情報)と置き換えて、更新保存させる。すなわち、情報保存処理部213は情報保存手段として機能する。共有データ(共有情報)を元データとして更新保存する処理の詳細は後述する。
また情報ロック処理部212aは、協調編集手段として機能する際に、共有データの一部を編集するに当たって、他のノードの対応する共有データの一部にロックを掛けさせるようにロック情報を送信する。また他のノードからロック情報を受信したときは、同様に自らの保持する共有データの一部にロックを掛ける。すなわち、情報ロック処理部212aは情報ロック手段として機能する。
また情報アンロック処理部212bは、ロック情報を送信して編集中の共有データの一部について、編集を終えた後、他のノードに対して共有データの一部に掛けさせたロックを外すためのアンロック情報を送信する。また他のノードからアンロック情報を受信したときには、同様に自らの保持する共有データの一部に掛けたロックを外す。すなわち、情報アンロック処理部212bは情報アンロック手段として機能する。
処理制御部205は、共有データの協調編集処理、特に情報のロック、アンロック処理において、必要に応じてデータ受信部207、データ送信部210を介してネットワーク1の他のノード2とデータ通信を行い、各種情報を送受信する。各種情報とは、上記ノード情報部202、編集履歴部203、及び一時情報記憶部204が保持する制御情報(ロック情報、アンロック情報)、編集情報(編集履歴、ノード情報)、そして共有データやその差分情報である。上記データ通信により、これらの情報が参照、あるいは更新される。共有データの協調編集処理、特に情報のロック、アンロック処理における上述の処理については後述する。
(ノード間のSSL通信)
ところで、本実施形態におけるノード2は、直接的にまたは間接的に関連付けられたノード2との間でSSL(Secure Sockets Layer)通信を行うことができる。SSLは、ディジタル証明書を用いて暗号化を行うことにより、ネットワーク上でデータを安全に送受信するためのプロトコルである。本実施形態におけるSSL通信のコネクションを確立する処理の流れについて、以下に説明する。
なお、一般的なディジタル証明書及び失効リスト(CRL)の標準仕様は、ITU(International Telecommunication Union)によってX.509として定められている。以下のSSL通信の説明においては、ディジタル証明書をX.509証明書と呼称する。
図6はSSL通信のコネクションを確立する際の処理の流れの例を説明するための図である。図3のノード、例えばPC1とPC2とが目的の通信を行おうとする場合を例に、図6を参照しながらさらに詳細に説明する。
SSL通信のコネクションを確立する前段階として、接続自体の確立が行われる。まず、例えばPC1において、PC2と通信を行いたい旨のコマンドをユーザがキーボードなどを操作して入力したとする。すると、データ作成部209は接続要求データを作成し、データ送信部210はその接続要求データを他方のノードPC2に対して送信する。
そうすると、PC2において、データ受信部207はPC1からの接続要求データを受信し、データ解析部208はそのデータの種類を解析する。ここでは、当然、接続要求データであると解析される。データ作成部209は接続を許可する旨を示す接続許可データを生成し、データ送信部210はPC1に送信する。
PC1のデータ受信部207によって接続許可データが受信され、その後所定の処理が行われると、PC1とPC2とが接続される。但し、この時点では、まだSSL通信のコネクションは確立されておらず、この後SSL通信のコネクション確立のフローに入る。
まず、PC1及びPC2のうちのいずれか一方において、データ作成部209は対応可能なSSLのバージョンを示すSSLバージョンデータを生成し、データ送信部210はこれを他方に送信する(ステップS1)。図6では、PC1がPC2に対してSSLバージョンデータを送信したものとする。
そうすると、PC2において、データ受信部207がSSLバージョンデータを受信し、データ解析部208はそのデータの種類を解析し、データ作成部209はSSLバージョンデータに示されるバージョンのうちPC2で対応可能なバージョンを1つ選択し、これを示すSSLバージョン選択データを生成する。そして、データ送信部210は、これをPC1に送信する(ステップS2)。
PC1において、PC2からのSSLバージョン選択データがデータ受信部207によって受信されると、それに示されるバージョンのSSLを、目的の通信のためのプロトコルとして採用することに決定する。PC2においても、同様に決定する。
次いでPC2において、X.509ディジタル証明書をPC1に送信する。このX.509証明書が周知の認証サーバ5によって署名されたものでなければ、そこに達するまでの証明書のチェーンも送信する。PC1においては認証サーバ5自身を証明するルート証明書を予め保持しており、そのなかにPC2から受信したX.509証明書を署名したものがあるかどうかを検証する。また当該証明書が、その署名を行った認証サーバ5の発行した証明書失効リスト(CRL)に記載がないかどうかを確認し、もし記載があればこの時点で通信を終了する(ステップS3)。
上記認証処理をクリアすれば、この後、PC2は、応答終了の旨をPC1に対して通知する(ステップS4)。
PC2からの応答終了の通知を受けて、PC1は、SSL通信で使用する共通鍵を生成するために、384ビットのランダムな値であるプリマスターキーを生成する。PC1のデータ作成部209は、プリマスターキーを、PC2より受け取ったX.509証明書に含まれるPC2の公開鍵によって暗号化してPC2に送信する(ステップS5)。
また、PC1はこのプリマスターキーを基に、実際にデータの暗号化に使用する共通鍵を生成して、通信用の暗号鍵をその共通鍵に切り替えるように制御を行う。また暗号鍵を切り替える旨の暗号切り替え通知をPC2に送信する(ステップS6)。
PC1からの暗号切り替え終了の通知を受けると(ステップS7)、PC2においても、暗号鍵の切り替えを行うべく、PC1に暗号切り替えの通知を送信する(ステップS8)。PC2のデータ受信部207は、PC1から受信した自らの公開鍵で暗号化されたプリマスターキーを、対応する自らの秘密鍵で復号する。データ解析部208がこれを解析することによってデータの種類がプリマスターキーであることを確認すると、データ操作部204は、受信したプリマスターキーを基に共通鍵を生成し、以後、PC1との間ではその共通鍵による暗号化通信が行われるように制御を行う。つまり、暗号鍵の切替えを行う。
PC2は、上記暗号鍵の切り替えを終了すると、PC1に暗号切り替え終了の通知を送信する(ステップS9)。
以上の処理によって、PC1とPC2との間でSSL通信のコネクションが確立される。これにより、目的の通信を安全に行うことができる。
なお、上述したコネクションの確立は、PC2のX.509証明書をPC1が確認する場合を示したが、同時にPC1のX.509証明書をPC2が確認する場合もある。これをSSLクライアント認証通信と呼ぶ。
このSSLクライアント認証通信をPC同士、及び認証サーバとの間で行うためには、各々がX.509証明書を保持している必要があり、また証明書を検証するためにルート証明書も保持している必要がある。
このようにして、ネットワーク1の各ノード2は、互いに認証されたノードとして安全に通信する動作を果たすことができる。
(情報の共有と編集時の競合)
本実施形態に係るネットワーク1では、上述したように接続テーブルTLにより規定された「関連付けられた」ノード(端末装置2)間で相互認証し、SSL通信を確立して、互いにデータの送受信を行う。
各ノードで共有されたデータ(情報)は、こういった通信をベースにして、互いに送受信されることにより、任意のノードで利用することが可能となる。また互いに編集に必要な情報が、こういった通信をベースにして送受信されることにより、各ノードで互いに協調して編集動作を行うことが可能になる。
なお以降の説明では、各ノードで共有され、協調編集され、保存される情報のことをすべてデータと呼称し、説明する。また、そのデータを加工したり、修正したりして変更する処理をすべて編集と呼称し、説明する。
まず、一般的なネットワークにおけるデータの編集について簡単に述べる。
ネットワーク1に仮に中央サーバとして機能するノード(PC1)があるとする。PC1には元のデータが保存されている。これを編集したいノード(PC2)は、PC1にアクセスして、編集を行う。
しかし、同時にノード(PC3)も編集したいとアクセスした場合、競合が生じてしまう。これを避けるためには、通常は次のような対処が行われる。
一つは、例えばPC2が編集のためにアクセスしたときに、そのデータをコピーして一時的にローカルに保持し、それを用いて編集作業を行う方法である。後からアクセスしたPC3も同様にコピーして編集することができる。
但し、この場合PC2とPC3の双方が編集結果をPC1の元のデータに反映させようとすると、結果的に異なる二つのデータをどう反映させるかで整合がとれなくなってしまう。
もう一つは、排他的にロックを掛ける方法である。例えばPC2が編集のためにPC1にアクセスしたときに、直接編集するか、データをコピーして編集するかに拘わらず、他のノードがそのデータにアクセスできないようにロックを掛ける。後からアクセスしたPC3は編集を拒否され、複数のノードが編集作業を行うことはない。
これにより、編集作業が競合することはなくなるが、多数のノードがアクセスするようなデータでは、いつアクセスしても編集できないといった不便が発生してくる。
本実施形態に係る上記ネットワーク1での情報の管理方法においては、ネットワーク上の複数のノード間で情報共有しながら、編集に必要な各種情報をやり取りしながら、互いに協調して並行的に共有情報の編集加工ができ、最終的に統一された形で保存情報として反映することができるようにしている。
情報の管理は、編集するデータを編集参加ノードで共有する情報共有処理、ロックやアンロックの処理を介して、競合せずにノード間で並行して編集する協調編集処理、編集を終えたデータを元のデータに反映する情報保存処理という全体的な流れを有する。そういった代表的なフローの例を以下に説明する。
(情報共有から協調編集、情報保存に至る全体処理例)
図7は、情報共有処理から情報保存処理に至るまでの代表的な処理の流れを示すフローチャートである。図7を用いて、全体としての処理例の概要を説明する。
まず、分散共有されたデータを利用したいノードは、元のデータファイルが保存されているノードにアクセスする(ステップS11)。元のデータファイルが保存されているノードは、そのデータの現在のバージョンを取得しようとアクセスしたノードを、アクセス情報として記憶手段に保持している。アクセスしたノードは、まずこのアクセス情報を参照する(ステップS12)。
この参照により、アクセスしたノードは、参照したアクセス情報に既に記載されたノードがあるかどうかで、自らが最初にそのデータファイルにアクセスして取得しようとしているノードであるかどうかを判定することができる。すなわち、記載がなければ自らが最初にアクセスしたノードである。
ステップS13では、上記のように自らが最初にアクセスしたノードであるかどうかを判定する。最初のノードである場合(ステップS13:YES)は、ステップS14に進み、データを取得する処理を行う。最初のノードでない場合(ステップS13:NO)は、ステップS16に進み、既にそのデータを取得したノードの情報を取得する。
ここで処理が分岐するのは、編集に参加するノードで各種情報を共有するためである。つまり、最初のノードは元のデータファイルを保存しているノードにアクセスする必要があるが、後から編集に参加するノードは、その時点での編集情報などを共有する必要があり、既に参加済みのノードにアクセスして共有データとともに取得するようにしている。具体的な処理例は後述する。
ステップS14では、元のデータファイルを保存しているノードに最初にアクセスしたノードは、そのデータファイルを編集のために共有するデータとして取得する。合わせて、元のデータファイルを保存しているノードのアクセス情報には、このノードがキャッシュ先として記載される。
この時点では最初のノードなので編集情報などはまだない。編集が開始されれば、ノード情報部202、編集履歴部203に編集情報を保持する。
ステップS15では、取得したデータから編集用の展開データを作成し、一時情報記憶部204に、他の編集参加ノードからアクセス可能な状態で、すなわち共有データとして保持する。この後協調編集処理に移る。
一方、ステップS16では、元のデータファイルを保存しているノードに後からアクセスしたノードは、元のデータファイルは取得せず、参照したアクセス情報からキャッシュ先、すなわち既にデータファイルを取得したノードの情報を取得する。ここで元のデータファイルを保存しているノードのアクセス情報に、後からアクセスしたノードも、編集参加ノードとして追加記載されるようにしてもよい。
ステップS17では、取得したキャッシュ先のノードにアクセスして、公開されている共有データを取得する。取得したデータは一時情報記憶部204に保持する。また、キャッシュ先に既に編集情報があれば、それも合わせて取得してノード情報部202、編集履歴部203に保持する。この後協調編集処理に移る。
以上のステップS11からステップS17の工程は、情報共有工程として機能する。
ステップS18は、協調編集処理である。編集参加ノードは、それぞれ共有データを保持し、編集参加ノードや編集履歴などの編集情報も共有している。互いにロック情報、アンロック情報などの制御情報をやり取りし、編集するエリアを調整し合うとともに、編集情報の更新をやり取りして、最新の情報を共有するようにする。こうして、競合による不整合を発生させずに協調して編集を行う。
すなわち、ステップS18は協調編集工程として機能する。詳細は、図10を用いて後述する。
ステップS19及びステップS20は、通常すべての編集参加ノードでの協調編集が終えてから行う情報保存、すなわち元データファイルへの置き換え更新を途中で実施するケースであり、障害などにより編集済みの共有データを元データに反映できなくなることを防止するなどの目的を持った処理である。
ステップS19では、例えば編集を終え、編集参加ノードから抜けるノードが、共有データや情報を削除する前に、ファイル保存の指示の有無を判定する。ファイル保存の指示がある場合(ステップS19:YES)は、ステップS20に進み、共有データの保存処理を行う。ファイル保存の指示がない場合(ステップS19:NO)は、ステップS21に進み、通常の編集終了の処理に向かう。
ステップS20では、保持する共有データを、保持するその時点で最新の編集情報に照らして、反映すべきデータファイルとし、元のデータファイルを保存されているノードに送信し、元データファイルと置き換え更新させる。
またそれに合わせて、編集情報を更新して他の編集参加ノードにも送信し、元データファイルの更新に合わせて共有データを更新させる。その後ステップS21に進み、共有データの削除に至る通常の編集終了の処理に向かう。
ステップS21では、編集終了かどうかを判定する。判定方法を含めて具体的な処理例は後述する。編集を終了する場合(ステップS21:YES)は、ステップS22に進み、最後の編集参加ノードであるかどうかを判定する。編集を終了しない場合(ステップS21:NO)は、ステップS18に戻り、協調編集処理を継続する。
ステップS22では、最後の編集参加ノードであるかどうかを判定する。判定方法は編集情報の編集参加しているノード情報を参照し、記載されているのが自ノードのみであれば最後のノードである。最後のノードである場合(ステップS22:YES)は、ステップS23に進み、共有データの保存処理を行う。最後のノードでない場合(ステップS22:NO)は、ステップS24に進み、共有データの削除へと向かう。
ステップS23では、保持する共有データを、保持する最新の編集情報に照らして、反映すべきデータファイルとし、元のデータファイルを保存されているノードに送信し、元データファイルと置き換え更新させる。
ステップS24では、不要になった保持する共有データを編集情報などとともに削除する。合わせて、元のデータファイルを保存しているノードにアクセスし、自ノードがアクセス情報に記載されている場合は、削除させる。これですべての処理は終了となる。
以上のステップS19からステップS24の工程は、情報保存工程として機能する。
(情報共有処理例)
図8及び図9は、情報共有処理の具体例を示す図である。図8及び図9を参照して、情報共有処理の具体例を説明する。
図8(a)、(b)、そして図9(a)、(b)は、その順に協調編集のための情報共有処理の流れを示している。図8は編集に参加するノードが最初の1台目の場合を、図9は編集に参加するノードが2台目以降の場合を、それぞれ示している。
各図において、ネットワーク1は、ノードとしてのPC1からPC7によって構成される。もちろんノードの数は任意である。ここでは、PC7が編集の対象となるデータファイル(File1)を保存しており、PC1が編集に参加しようとする最初の1台であり、PC5とPC6がその後に編集参加するものとする。編集に参加するのは計3台であるが、もちろん編集参加ノード数も任意である。
図8(a)において、PC1は編集の対象となるデータファイル(File1)を保存するPC7にアクセスし、まずFile1についてのアクセス情報を参照する。しかしこの時点では、PC1はFile1の現在のバージョンにアクセスした最初のノードであり、アクセス情報にはまだ何の記載もない。従って、PC1は自らが最初の1台であることを判定する。
ここまでの処理は、図7のステップS11からステップS13の工程に相当する。最初の1台であるかどうかを判定してデータの取得先を換える理由は、全体フローの説明で既に述べた通りである。
図8(b)において、編集に参加する最初の1台であるPC1は、保存ノードであるPC7から編集の対象となるデータファイル(File1)を取得する。PC1は取得したファイル形式のFile1から編集用の展開データを作成し、一時情報記憶部204にキャッシュとして保持する。この編集用の共有データであるFile1は、他の編集参加ノードからもアクセス可能なように公開する。
またPC1は、今後編集参加ノードで共有するために編集情報(編集参加ノードの情報、編集履歴情報など)を設定し、合わせて公開する。
一方、保存ノードであるPC7はFile1を取得したPC1に関する情報をキャッシュ先情報としてアクセス情報に記載する。この後にアクセスしてくる編集参加ノードはこのアクセス情報を参照して、キャッシュ先を判定するのである。
ここまでの処理は、図7のステップS14からステップS15の工程に相当する。
次に図9(a)において、PC5とPC6が新たに編集に参加しようと、データファイル(File1)を保存するPC7にアクセスする。PC1の場合と同様に、まずFile1についてのアクセス情報を参照する。しかしPC5とPC6の順序に拘わらず、何れも自らが2台目以降であると判定し、参照したアクセス情報からキャッシュ先としてPC1の情報を得ることになる。
一方、保存ノードであるPC7はFile1を取得しようとアクセスしてきたPC5、PC6に関する情報をアクセス情報に追加して記載してもよい。その場合は、キャッシュ先ノードが編集参加ノードから抜けた場合の次のキャッシュ先ノード候補情報となる。
ここまでの処理は、図7のステップS16の工程に相当する。2台目以降に編集参加したPC5とPC6は、キャッシュ先情報を取得しただけで、保存ノードであるPC7からはFile1の取得は行わない。
図9(b)においては、2台目以降に編集参加したPC5とPC6は、取得したキャッシュ先情報に基づいて、PC1にアクセスし、公開されている共有データFile1を取得する。PC5とPC6は、取得したFile1をキャッシュコピーとして、一時情報記憶部204に保持する。
一方、PC1はアクセスしてきたPC5とPC6を新たな編集参加ノードと認知して、編集情報(編集参加ノードの情報)を更新する。更新した編集情報は、File1と合わせて提供し、常に最新の編集情報が共有されるようにする。もちろん、PC1以外の参加ノードで更新が発生した場合も同様である。また、この時点でPC1によりFile1の編集が既に行われていれば、その編集履歴情報も含めて更新した編集情報を共有する。
ここまでの処理は、図7のステップS17の工程に相当する。これらの情報共有処理により、編集参加ノード(ここでは、PC1、PC5、PC6)は、共有データFile1と最新の編集情報を互いに公開した状態で共有することになる。この状態で次の協調編集処理は行われる。
(協調編集処理例)
図10は、協調編集処理の流れの例を示すシーケンス図である。図10を参照して、協調編集処理の流れを説明する。
図10においては、図左の編集ノードと図右のロックノードとの2種類のノード(編集ノードとロックノード)での処理の流れを並列的に示している。編集ノードとロックノードの関係は、単にノード間の処理についての相対的な関係を示し、固定的なものではない。
編集ノードとは、編集参加ノードのうちの編集を開始した任意のノードである。その編集ノードから見れば、他の編集参加ノードはすべてロックノードである。もちろん、他のノードもそのノード自身から見れば、自らは編集ノードであって、他のノードはすべてロックノードであるように見える。すなわち、例えばPC1、PC5、PC6からなる編集参加ノードにおいて、PC1を編集ノードとすれば、PC5とPC6はロックノードであり、PC5を編集ノードとすれば、PC1とPC6はロックノードである。
図10の上部、すなわち、編集ノードでのステップS31からステップS35、及びロックノードでのステップS41からステップS43は、編集参加ノード間で各ノードがそれぞれ編集する共有データの一部に対して、互いにロックを掛け合う相互情報ロック処理を行う。すなわち、相互情報ロック工程として機能する。
また図10の下部、すなわち、編集ノードでのステップS36からステップS39、及びロックノードでのステップS44からステップS48は、編集参加ノード間で各ノードがそれぞれロックを掛け合った編集する共有データの一部に対して、互いにロックを外し、それぞれ共有データの一部を更新し合う相互情報アンロック処理を行う。すなわち、相互情報アンロック工程として機能する。
ここで、協調編集処理(相互情報ロック処理と相互情報アンロック処理)において各ノードに保持され、協調編集のために使用される情報について述べておく。
図11は、各ノードに保持され、協調編集のために使用される情報を示す図表である。
図11を用いて、各種情報を説明する。
図11において、各編集参加ノードは、それぞれ編集の対象である共有データと編集状態を制御する制御情報や編集に利用する編集情報を保持している。
共有データは、既に述べた編集対象のデータそのものであり、場合によってはまだ編集履歴に反映されていない各編集参加ノードで編集中の差分データをも含む。
制御情報は、各編集参加ノードでの共有データに対する現在のロック状態や予約ロッックの状況など編集を制約する情報を含む。
共有データと制御情報は、各編集参加ノードの一時情報記憶部204に保持される。
編集情報は、各編集参加ノードで編集した結果を統一して整合的に反映させるための情報であり、編集に参加している各ノードの情報や各ノードでの編集履歴情報を含む。
編集に参加している各ノードの情報は、すべての編集参加ノードで常に最新情報を共有するために用いられ、ノード情報部202に保持される。
各ノードでの編集履歴情報は、自ノード及び他ノードで編集を終えた、その編集内容を含んだ履歴情報であり、すなわち協調編集によるすべての変更内容を含んでおり、その最新結果が共有されるものである。
この編集履歴情報と共有データをつきあわせれば、その時点での最新編集結果を反映し、保存ノードの保存する元データに置き換えて更新することができるようになっている。編集履歴情報は各編集参加ノードの編集履歴部203に保持される。
以下に協調編集処理例の流れを相互情報ロック処理と相互情報案ロック処理とに分けて説明する。
<情報ロック処理>
図12は、相互情報ロック処理の具体例を示す図である。前述の図10と図12とを用いて、相互情報ロック処理例の流れを説明する。
図12においては、情報共有処理例で参照した図8、図9と同様のPC1からPC7によるネットワーク構成であり、編集参加ノードはPC1、PC5、PC6であるとする。またここでは、PC5が編集開始する状況を想定して説明する。
図10において、編集ノードは、まずステップS31で、編集を開始するに当たって、他ノードとの競合を防止するためのロックエリアを検出する。
編集開始のタイミングの設定方法は、任意である。ユーザの指示によってロックエリアの検出が開始されてもよいし、編集に用いる何らかのキーをトリガーとしてロックエリア検出が開始されてもよい。
ロックエリアの検出方法も任意である。但し、ロックエリアは当面編集するのに必要な範囲に抑えた方がよい。編集する共有データの一部分のみをロックエリアとすることによって、他ノードによる編集に対する制約を最小限に抑えることができる。
ロックエリアの検出法の例としては、例えば図12に示したように、編集ノードPC5において、共有データFile1のカーソルが置かれた位置から一定範囲内のエリアとしてもよい。また現在編集のために表示中のウィンドウエリアをロックエリアとしてもよい。あるいはシステムがロックを必要とするエリアをロックエリアとしてもよい。
ステップS31では、検出したロックエリアを基にロック情報を作成する。自らが他のノードにロックエリアを指定し、ロックを掛けさせるために送信する情報であり、一時情報記憶部204に制御情報として保持する。
ステップS33では、編集情報を参照し、編集参加ノード情報に基づき、ロック情報の送信先を設定する。送信先は他の編集参加ノードすべてである。図12の場合は、PC5以外の編集参加ノード、すなわちPC1とPC6である。
ステップS34では、作成したロック情報を設定した送信先に送信する。これでロック情報を受信した他のノード(ロックノード)は指定したロックエリアにロックを掛けることになる。図12では、PC5からPC1とPC6にロック情報が送信されている。
上記の処理において、ロックエリアを検出した段階で、制御情報を参照すると、他のノードから既に受信しているロック情報とロックエリアが重なっている場合があり得る。つまり、他のノードが編集中で既にロックが掛かっており、編集したいができないという場合である。この場合は、必要に応じて予約ロック情報として作成し、同様に送信してもよい。同一エリアに対する複数の予約ロックは発信順に実行待ちとなる。
送信されたロック情報を受信したノード(ロックノード)の方の処理について述べる。
ステップS41で、ロックノードはロック情報を受信する。受信したロック情報は制御情報として、一時情報記憶部204に保持する。図12では、PC1とPC6がPC5からのロック情報を受信している。
ステップS42では、受信したロック情報からロックエリアを抽出する。ステップS43では、抽出したロックエリアにロックを掛ける。図12では、PC5における共有データFile1での編集領域、すなわちロックエリアと対応するPC1とPC6それぞれの共有データFile1での領域にロックが掛かっている。
また、ロック情報ではなく。予約ロック情報を受信した場合は、一旦制御情報として、一時情報記憶部204に保持し、実行待ちとなる。同一エリアに対する複数の予約ロックは発信順に実行待ちとなる。
これでPC5での編集と競合することはなくなる。編集ノードであるPC5は、ステップS35において、編集作業を行う。図12でPC5の差分情報というのは、編集中でまだ編集履歴に反映されていない差分データである。
以上で相互情報ロック工程は終了である。実際は、編集ノードはPC5だけではなく、PC1やPC6も編集ノードであり、ロックノードでもあるので、互いにロックを掛け合うことになる。次に述べる相互情報アンロック処理も同様であり、相互にロックを外して編集結果を反映し合うことになる。またすべての協調編集処理が終了するまで、すなわち編集中のノードがなくなるまで、ロックとアンロックの処理は何度も繰り返されることになるであろう。
<情報アンロック処理>
図13は、相互情報アンロック処理の具体例を示す図である。前述の図10と図13とを用いて、相互情報アンロック処理例の流れを説明する。
図13においては、相互情報ロック処理例で参照した図12と同様のPC1からPC7によるネットワーク構成であり、編集参加ノードはPC1、PC5、PC6であるとする。またここでは、PC5が自らロック情報送信したエリアの編集を終了し、ロックを外す状況を想定して説明する。
図10において、編集ノードPC5は、ステップS35での編集処理を終えてロック解除に入るものとする。
ロックしたエリアの編集を終えてロック解除に入るタイミングは、任意に設定すればよい。図13に示したように、例えばポップアップウインドウなどでユーザによる編集終了指示を受けてもよいし、また編集中の入力ウインドウが非アクティブになった状態でそのエリアの編集は終了としてもよいし、あるいは、入力を開始してから一定時間が経過すると終了するように設定してもよい。
また、ロックしたエリアに対して、実行待ちの予約ロック情報が所定の件数以上ある場合には、ロック解除のタイミングを早めるなどの処置をとることが望ましい。例えば入力を開始してから一定時間が経過すると終了するように設定しているのならば、その終了時間を早めるなどの調整を行ってもよい。
また、ロック解除に関しては、例えば管理者権限による強制割り込みでのロック解除や予約ロック情報の実行待ち順序の変更などが可能な処置をとることもできる。
ステップS36では、自らが編集していたエリア、すなわちロックエリアを検出する。自ら保持している制御情報を参照すればよい。
ステップS37では、検出したロックエリアに対するアンロック情報を作成する。自らが他のノードに送信したロック情報によるロックを解除し、ロックを外させるために送信する情報であり、一時情報記憶部204に制御情報として保持する。
また編集終了に当たり、編集履歴情報を更新する。編集中であった差分情報は、すべて編集履歴情報に移される。
ステップS38では、編集情報を参照し、編集参加ノード情報に基づき、アンロック情報の送信先を設定する。ロック情報送信の場合と同様、送信先は他の編集参加ノードすべてである。図13の場合は、PC5以外の編集参加ノード、すなわちPC1とPC6である。
ステップS39では、作成したアンロック情報を設定した送信先に送信する。これでアンロック情報を受信した他のノード(ロックノード)はロックエリアのロックを外すことになる。図12では、PC5からPC1とPC6にアンロック情報が送信されている。
またアンロック情報とともに、更新された編集履歴情報も編集情報として送信する。あるいは、更新された編集履歴情報の代わりに、そのベースとなる差分データであってもよい、またそれを反映した共有データそのものであってもよい。
送信されたアンロック情報を受信したノード(ロックノード)の方の処理について述べる。
ステップS44で、ロックノードはアンロック情報を受信する。受信したアンロック情報は制御情報として、一時情報記憶部204に保持する。図13では、PC1とPC6がPC5からのアンロック情報を受信している。
またロックノードは、編集ノードPC5から更新された編集履歴情報、あるいは共有データ、もしくはそれとの差分データを受信する。これにより、すべての編集参加ノードで、編集ノードPC5による編集内容が反映されることになる。図13では、PC1とPC6がPC5からの更新された編集履歴情報を受信している。
ステップS45では、受信したアンロック情報からアンロックエリアを抽出する。対応するロック情報から抽出してもよい。ステップS46では、抽出したアンロックエリアのロックを外す。図13では、PC5における共有データFile1での編集終了領域、すなわちアンロックエリアと対応するPC1とPC6それぞれの共有データFile1での領域に掛かっているロックが外される。
また、アンロック情報に対応するロック情報に対して、実行待ちの予約ロック情報がある場合は、以下の工程を終えた後、実行待ちの予約ロック情報を新たにロック情報として、既に述べた相互情報ロック処理が実行される。すなわち、予約ロック情報を送信したノード以外は再度ロックを掛けることになる。同一エリアに対する複数の予約ロックが実行待ちの場合は、発信順に実行される。
次のステップS47及びステップS48では、編集ノードPC5での編集内容を各ノードで反映し、共有する。まずステップS47で編集情報を抽出する。受信した編集情報から編集履歴の更新に必要な情報を抽出する。ステップS47で編集履歴を更新する。更新された編集履歴を受信したのであれば、そのまま保持する編集履歴を置き換え更新してもよい。
編集ノードPC5での編集内容を各ノードで反映し、共有する形態は、他にも様々考えられ、任意の形態を採ればよい。例えば既に述べたように、共有データそのものを更新して共有するようにしてもよいし、あるいは差分データとして蓄積し、保持するようにしてもよい。また、差分データを編集履歴の中に移し、編集履歴情報を更新していく形態でもよい。どのような形態であれ、それらの情報を利用して適時最新の共有データを生成し、例えば表示するなどの利用が可能である。
(情報保存処理)
図14は、情報保存処理の具体例を示す図である。図14を参照して、情報保存処理の具体例を説明する。
図14においては、情報共有処理例で参照した図8、図9と同様のPC1からPC7によるネットワーク構成であり、元データファイル(File1)の保存ノードはPC7、編集参加ノードはPC1、PC5、PC6であるとする。但し、編集に参加しているノードのうちPC5とPC6が、既に編集を終えて編集参加ノードから抜けており、最後の1台であるPC1がまさに編集を終えようとしている状況を想定して説明する。
途中で編集を終了し抜けていくノードの中で、ファイル保存の指示により最後の1台でなくても共有データを保存ノードに送信し、置き換え更新させる場合があってもよいことは、図7による情報保存処理の説明の中で既に述べた。編集参加ノードの中のどのノードがすべての編集参加ノードによる編集内容を代表して保存ノードに送信するかは任意である。どの編集参加ノードも、その時点では最新の編集内容を反映したデータを共有している。最後の一台であればそれ以上最新がないという意味で、選択されたものである。
図14において、編集を終了する最後の1台であるPC1は、保存ノードであるPC7に編集の結果を反映するために更新された共有データ(File1’)を送信する。これは協調編集処理により更新された編集情報、差分データ、共有データの形態に応じて、最新の共有データ(File1’)を生成できることは既に述べたとおりである。
図14においては、File1の編集履歴が送信されている。この編集履歴の中には、協調編集処理の間に各ノードからの編集内容として蓄積された差分情報が含まれている。図では保存ノードPC7がデータファイル(File1’)を生成するような図としているが、もちろん上述のように、PC1の方で共有データ(File1’)を生成し、送信してもよい。
保存ノードPC7は取得した共有データFile1’からファイル形式の保存データ(File1’)を作成し、元のデータファイル(File1)と置き換え、データ保持部201に更新、保存する。もちろんこのFile1’は、新たに編集を望むノードがあれば、同様に新たな編集参加ノードからアクセス可能なように再び公開される。
保存ノードPC7の元のデータファイルが更新された後は、最後の一台であるPC1は、保持している共有データ、編集情報などを廃棄する。また、保存ノードPC7のアクセス情報からキャッシュ先情報としてのPC1ノードの記載を削除させて、編集参加ノードから脱退する。
上記はノードPC1が最後の一台である場合を説明したが、PC1が最後の一台でない場合も、情報保存処理、すなわち保存ノードであるPC7に元のデータファイルを更新させる処理を行わない点を除けば、同様の処理で編集の参加を終了し、脱退する。
終了するに当たっては、他の編集参加ノードにノード情報を送り、編集参加ノードから抜けることを通知する、すなわち各ノードの保持するノード情報を更新させる。合わせて保存ノードPC7のアクセス情報からキャッシュ先情報としてのPC1ノードの記載を削除させて、終了する。
保存ノードPC7のアクセス情報がアクセスしたノードすべてを順に記載している場合は、キャッシュ先のPC1ノードが削除されることで、次のノードがキャッシュ先と見なされることになる。
保存ノードPC7のアクセス情報が最初にアクセスしたノードのみを記載している場合は、保存ノードPC7はPC1から編集参加ノード情報を受け取り、それに基づいてアクセス情報を更新し、次の編集参加ノードがキャッシュ先情報として記載される。
(情報を分散保存している場合の処理例)
以上の処理例では、元のデータファイル(File1)を保存しているノードが1台という場合を例にしていたが、元のデータファイル(File1)が複数のノードで分散保存されている場合にも、同様に共有データを協調編集処理することができる。
異なるのは、情報共有処理で、最初の編集参加ノードは複数の保存ノードにアクセスして、データファイル(File1)を生成すること、及び情報保存処理で、共有データFile1’を分割されたデータファイル(File1’)に変えて、複数の保存ノードに送信することである。
図15は情報を分散保存している場合の情報共有処理の具体例を示す図である。図15を用いて、分散保存している場合の情報共有処理の具体例を説明する。
図15において、ネットワーク1は、PC1からPC7のノードによって構成され、ここではPC3、PC4、PC7が、それぞれ3分割された元のデータファイル(File1−1から1−3)を保存しており、PC1が編集に参加しようとする最初の1台であるものとする。
PC1は3台の保存ノードにアクセスし、元のデータファイル(File1−1から1−3)を取得する。3台の保存ノードには、それぞれキャッシュ先としてPC1がアクセス情報に記載される。
PC1で3分割された元のデータファイル(File1−1から1−3)から、図15に示すように共有データ(File1)を生成してしまえば、後は保存データの台数は特に関係なく、協調編集が行える。後から編集に参加するノードは、それぞれ保存ノードのアクセス情報を参照し、PC1の共有データ(File1)を取得すればよい。
情報保存処理についても同様である。PC1が最後の編集参加ノードであるとすると、情報共有処理のときとは逆に、編集済みの共有データ(File1’)を3分割された編集済みのデータファイル(File1’−1から1’−3)に変えて、3台の保存ノード(PC3、PC4、PC7)に分散保存させればよい。
このように本実施形態によれば、情報を複数のノード間で共有し、編集するネットワークシステムにおいて、複数の編集参加ノードが、編集に必要な情報を互いに提供し、最新の状態で共有する。また、それぞれのノードが共有情報の一部を編集するために、互いに他のノードにロックを掛け合い、それぞれの編集する部分を互いに競合させることなく、並行的に編集動作を行う。そして、編集参加ノードの少なくとも一つが代表して、編集済みの共有情報を元の情報を保存するノードに送信し、更新保存させる。
これにより、多数のノード間で情報共有しながら、互いに競合することなく、必要以上にアクセスを制限されることもなく、協調して並行的に共有情報の編集加工ができ、最終的に統一された形で保存情報として反映されることが可能な情報の管理方法、及びノードとしての情報処理装置を提供することができる。
なお本発明の範囲は、上記実施形態に限定されるものではない。本発明の趣旨を逸脱しない限り、それらの変更された形態もその範囲に含むものである。
ネットワーク1の全体構成例を示す図である。 ネットワーク1を構成するノード(端末装置)2のハードウェア構成例を示す図である。 ネットワーク1を構成する各ノード2の接続形態、すなわちノードの論理的なトポロジーの例を示す図である。 図3のように関連付けられたノード2の接続テーブルTL例を示す図である。 ノード(端末装置)2の機能構成例を示すブロック図(a)、及び処理制御部205の機能の内部構成を示す図(b)である。 SSL通信のコネクションを確立する際の処理例を説明するためのシーケンス図である。 情報共有処理から情報保存処理に至るまでの代表的な処理の流れを示すフローチャートである。 情報共有処理の具体例として、最初に編集参加したPC1がPC7のアクセス情報を参照している様子(a)、及びPC1がPC7からデータを取得している様子(b)を示す図である。 情報共有処理の具体例として、後から編集参加したPC5とPC6がPC7のアクセス情報を参照している様子(a)、及びPC5とPC6がPC1から共有データを取得している様子(b)を示す図である。 協調編集処理の流れの例を示すシーケンス図である。 各ノードに保持され、協調編集のために使用される情報を示す図表である。 相互情報ロック処理の具体例を示す図である。 相互情報アンロック処理の具体例を示す図である。 情報保存処理の具体例を示す図である。 情報を分散保存している場合の情報共有処理の具体例を示す図である。
符号の説明
1 ネットワーク
2 端末装置(ノード)
3 スイッチングハブ
4 ルータ
5 認証サーバ
201 データ保持部
202 ノード情報部
203 編集履歴部
204 一時情報記憶部
205 処理制御部
206 その他操作部
207 データ受信部
208 データ解析部
209 データ作成部
210 データ送信部
211 商法共有処理部
212 協調編集処理部
212a 情報ロック処理部
212b 情報アンロック処理部
213 情報保存処理部
TL 接続テーブル

Claims (22)

  1. 情報記憶手段を有する複数のノード間で、それぞれ編集対象の情報を共有し、編集するネットワークシステムにおける情報の管理方法であって、
    複数の前記ノードが、前記情報を協調して編集するための編集参加ノードとして、前記情報を保存するノードから前記情報を共有情報として取得するとともに、協調編集のための編集情報を取得、または生成して、前記共有情報と前記編集情報をそれぞれの前記情報記憶手段に保持する情報共有工程と、
    前記情報共有工程によって前記共有情報を取得した前記編集参加ノードが、それぞれの前記情報記憶手段に保持する前記共有情報の任意の一部を編集するために、互いに他のノードに対してそれぞれの編集する共有情報の任意の一部にロックを掛け合い、それぞれの編集する共有情報の任意の一部同士を互いに競合させることなく、並行的に編集動作を行う協調編集工程と、
    前記協調編集工程によって前記共有情報を協調編集した前記編集参加ノードの少なくとも一つが、当該ノードの前記情報記憶手段に保持する協調編集済みの前記共有情報を、元の前記情報を保存するノードに送信し、元の前記情報を協調編集済みの前記共有情報に更新し、更新された前記情報として保存する情報保存工程とを有し、
    前記情報共有工程において、前記編集参加ノードが取得し、それぞれの前記情報記憶手段に保持する前記編集情報は、
    前記共有情報を取得した編集参加ノードに関する情報、及びそれら編集参加ノードによる前記共有情報の編集履歴に関する情報を含み、
    前記編集参加ノード間で前記共有情報とともに共有され、編集参加ノードが変化したり、編集の行われたりする毎に更新され、
    前記協調編集工程において、
    編集参加ノードはそれぞれ、当該ノードの前記情報記憶手段に保持する前記共有情報の一部の編集を終えた後、他のノードに対して共有情報の一部に掛けたロックを外すためのアンロック情報を送信する毎に、前記共有情報の一部の編集内容を含む編集情報を共有するために、自らの保持する編集情報を更新するとともに、他のノードに対して更新した前記編集情報を前記アンロック情報とともに送信し、
    また他のノードから前記アンロック情報と前記編集情報を受信する毎に、受信した前記編集情報に基づいて、自らの情報記憶手段に保持する編集情報を更新することを特徴とする情報の管理方法。
  2. 前記情報保存工程は、
    編集を終えたノードが前記編集参加ノードから抜けて、前記編集情報が更新されていき、最後のノードが編集を終えたときに、当該ノードによって実行されることを特徴とする請求項に記載の情報の管理方法。
  3. 前記情報保存工程は、
    編集を終えたノードが前記編集参加ノードから抜けるに際して、当該ノードでの保存指示があるとき、当該ノードによって実行されることを特徴とする請求項に記載の情報の管理方法。
  4. 情報記憶手段を有する複数のノード間で、それぞれ編集対象の情報を共有し、編集するネットワークシステムにおける情報の管理方法であって、
    複数の前記ノードが、前記情報を協調して編集するための編集参加ノードとして、前記情報を保存するノードから前記情報を共有情報として取得するとともに、協調編集のための編集情報を取得、または生成して、前記共有情報と前記編集情報をそれぞれの前記情報記憶手段に保持する情報共有工程と、
    前記情報共有工程によって前記共有情報を取得した前記編集参加ノードが、それぞれの前記情報記憶手段に保持する前記共有情報の任意の一部を編集するために、互いに他のノードに対してそれぞれの編集する共有情報の任意の一部にロックを掛け合い、それぞれの編集する共有情報の任意の一部同士を互いに競合させることなく、並行的に編集動作を行う協調編集工程と、
    前記協調編集工程によって前記共有情報を協調編集した前記編集参加ノードの少なくとも一つが、当該ノードの前記情報記憶手段に保持する協調編集済みの前記共有情報を、元の前記情報を保存するノードに送信し、元の前記情報を協調編集済みの前記共有情報に更新し、更新された前記情報として保存する情報保存工程とを有し、
    前記情報保存工程は、
    編集を終えたノードが前記編集参加ノードから抜けて、前記編集情報が更新されていき、最後のノードが編集を終えたときに、当該ノードによって実行されることを特徴とする情報の管理方法。
  5. 前記協調編集工程は、
    前記情報共有工程によって前記共有情報を取得した前記編集参加ノードのそれぞれが、当該ノードの前記情報記憶手段に保持する前記共有情報の一部を編集するために、他のノードに対して共有情報の一部にロックを掛けるようにロック情報を送信してから、前記共有情報の一部の編集を行い、
    前記ロック情報を受信した他のノードは、それぞれのノードの前記情報記憶手段に保持する前記共有情報の一部に編集できないようにロックを掛ける、相互情報ロック工程と、
    前記相互情報ロック工程において前記ロック情報を送信したそれぞれのノードが、当該ノードの前記情報記憶手段に保持する前記共有情報の一部の編集を終えた後、他のノードに対して前記アンロック情報を送信し、
    前記アンロック情報を受信した他のノードは、それぞれのノードの前記情報記憶手段に保持する前記共有情報の一部に掛けたロックを外す、相互情報アンロック工程と、を備えることを特徴とする請求項乃至3の何れか1項に記載の情報の管理方法。
  6. 前記協調編集工程は、
    前記情報共有工程によって前記共有情報を取得した前記編集参加ノードのそれぞれが、当該ノードの前記情報記憶手段に保持する前記共有情報の一部を編集するために、他のノードに対して共有情報の一部にロックを掛けるようにロック情報を送信してから、前記共有情報の一部の編集を行い、
    前記ロック情報を受信した他のノードは、それぞれのノードの前記情報記憶手段に保持する前記共有情報の一部に編集できないようにロックを掛ける、相互情報ロック工程と、
    前記相互情報ロック工程において前記ロック情報を送信したそれぞれのノードが、当該ノードの前記情報記憶手段に保持する前記共有情報の一部の編集を終えた後、他のノードに対して共有情報の一部に掛けたロックを外すためのアンロック情報を送信し、
    前記アンロック情報を受信した他のノードは、それぞれのノードの前記情報記憶手段に保持する前記共有情報の一部に掛けたロックを外す、相互情報アンロック工程と、を備えることを特徴とする請求項4に記載の情報の管理方法。
  7. 前記相互情報ロック工程では、
    編集開始するノードから送信される前記ロック情報は、
    ロックを掛ける前記共有情報の一部に関する情報として、
    当該ノードでの現在編集中の箇所から一定範囲内のエリア、現在表示されているウィンドウエリア、またはシステムがロックを必要とするエリアの一つ以上を含むことを特徴とする請求項5または6に記載の情報の管理方法。
  8. 前記相互情報アンロック工程では、
    ロックを外すタイミングとして、
    編集開始したノードでの、編集入力後一定時間経過後、ユーザによる編集終了指示、または入力ウィンドウの非アクティブ状態の一つ以上に基づき編集を終了し、
    当該ノードから前記アンロック情報が送信されることを特徴とする請求項乃至の何れか1項に記載の情報の管理方法。
  9. 前記協調編集工程では、
    任意の編集参加ノードが、前記ロック情報に基づき既にロックを掛けている前記共有情報の一部に対して編集を行いたい場合に、他のノードに予約ロック情報を送信し、
    予約したノードが当該ロック情報に対応するアンロック情報を受信すると、他のノードに前記予約ロック情報に基づくロックが掛かり、予約したノードによる編集が可能になることを特徴とする請求項乃至の何れか1項に記載の情報の管理方法。
  10. 前記協調編集工程では、
    同一のエリアをロックエリアとして含む前記予約ロック情報が複数発生した場合、当該エリアに対するロックが外されるたびに、前記予約ロック情報に基づくロックを発生順に実行し、
    実行待ちの予約ロック情報件数が所定数に達した場合は、当該エリアに対するロックを外すタイミングを調整することを特徴とする請求項に記載の情報の管理方法。
  11. 元の前記情報を保存するノードは、当該ノードから前記情報を取得したノードに関するアクセス情報を保持しており、
    前記情報共有工程において、
    元の前記情報を保存するノードにアクセスしたノードは、前記アクセス情報を参照し、既に前記情報を前記共有情報として取得したノードが存在する場合は、当該ノードにアクセスして前記共有情報及びその編集情報を取得することを特徴とする請求項1乃至10の何れか1項に記載の情報の管理方法。
  12. 情報記憶手段を有する複数のノード間で、それぞれ編集対象の情報を共有し、編集するネットワークシステムにおける、ノードとしての情報処理装置であって、
    前記情報を他のノードと協調して編集するための編集参加ノードとして、前記情報を保存するノードから前記情報を共有情報として取得するとともに、協調編集のための編集情報を取得、または生成して、前記共有情報と前記編集情報を前記情報記憶手段に保持させる情報共有手段と、
    前記情報記憶手段に保持する前記共有情報の任意の一部を編集するために、他のノードが保持する前記共有情報の対応する一部にロックを掛け、また他のノードから自らの編集する共有情報の任意の一部にロックを掛けさせることで、他のノードと、それぞれの編集する共有情報の任意の一部同士を互いに競合させることなく、並行的に編集動作を行う協調編集手段と、
    前記協調編集手段による協調編集を終えた前記共有情報を、元の前記情報を保存するノードに送信し、元の前記情報を協調編集済みの前記共有情報に更新し、保存させる情報保存手段とを有し、
    前記情報共有手段により取得し、前記情報記憶手段に保持する前記編集情報は、
    協調編集するために、同じ前記共有情報を取得し、共有する編集参加ノードに関する情報、及びそれら編集参加ノードによる前記共有情報の編集履歴に関する情報を含み、
    前記編集参加ノード間で前記共有情報とともに共有され、編集参加ノードが変化したり、編集の行われたりする毎に更新され、
    前記協調編集手段は、
    前記情報記憶手段に保持する前記共有情報の一部の編集を終えた後、他のノードに対して共有情報の一部に掛けたロックを外すためのアンロック情報を送信する毎に、前記共有情報の一部の編集内容を含む編集情報を共有するために、保持する編集情報を更新するとともに、他のノードに対して更新した前記編集情報を前記アンロック情報とともに送信し、
    また他のノードからアンロック情報と編集情報を受信する毎に、受信した前記編集情報に基づいて、前記情報記憶手段に保持する前記編集情報を更新することを特徴とする情報処理装置。
  13. 前記情報保存手段は、
    編集を終えたノードが前記編集参加ノードから抜けて、前記編集情報が更新されていき、自らが最後のノードとして編集を終えたときに、編集を終えた前記共有情報を、元の前記情報を保存するノードに送信し、元の前記情報を編集済みの前記共有情報に更新し、保存させるものであることを特徴とする請求項12に記載の情報処理装置。
  14. 前記情報保存手段は、
    編集を終えて前記編集参加ノードから抜けるに際して、保存指示があるときに、編集を終えた前記共有情報を、元の前記情報を保存するノードに送信し、元の前記情報を編集済みの前記共有情報に更新し、保存させるものであることを特徴とする請求項12に記載の情報処理装置。
  15. 情報記憶手段を有する複数のノード間で、それぞれ編集対象の情報を共有し、編集するネットワークシステムにおける、ノードとしての情報処理装置であって、
    前記情報を他のノードと協調して編集するための編集参加ノードとして、前記情報を保存するノードから前記情報を共有情報として取得するとともに、協調編集のための編集情報を取得、または生成して、前記共有情報と前記編集情報を前記情報記憶手段に保持させる情報共有手段と、
    前記情報記憶手段に保持する前記共有情報の任意の一部を編集するために、他のノードが保持する前記共有情報の対応する一部にロックを掛け、また他のノードから自らの編集する共有情報の任意の一部にロックを掛けさせることで、他のノードと、それぞれの編集する共有情報の任意の一部同士を互いに競合させることなく、並行的に編集動作を行う協調編集手段と、
    前記協調編集手段による協調編集を終えた前記共有情報を、元の前記情報を保存するノードに送信し、元の前記情報を協調編集済みの前記共有情報に更新し、保存させる情報保存手段とを有し、
    前記情報保存手段は、
    編集を終えたノードが前記編集参加ノードから抜けて、前記編集情報が更新されていき、自らが最後のノードとして編集を終えたときに、編集を終えた前記共有情報を、元の前記情報を保存するノードに送信し、元の前記情報を編集済みの前記共有情報に更新し、保存させるものであることを特徴とする情報処理装置。
  16. 前記協調編集手段は、
    前記情報記憶手段に保持する前記共有情報の一部を編集するために、他のノードに対して共有情報の一部にロックを掛けるようにロック情報を送信し、
    また他のノードから前記ロック情報を受信したときには、自らの前記情報記憶手段に保持する前記共有情報の一部に編集できないようにロックを掛ける、情報ロック手段と、
    前記情報記憶手段に保持する前記共有情報の一部の編集を終えた後、他のノードに対して前記アンロック情報を送信し、
    また他のノードから前記アンロック情報を受信したときには、自らの前記情報記憶手段に保持する前記共有情報の一部に掛けたロックを外す、情報アンロック手段と、を備えることを特徴とする請求項12乃至14の何れか1項に記載の情報処理装置。
  17. 前記協調編集手段は、
    前記情報記憶手段に保持する前記共有情報の一部を編集するために、他のノードに対して共有情報の一部にロックを掛けるようにロック情報を送信し、
    また他のノードから前記ロック情報を受信したときには、自らの前記情報記憶手段に保持する前記共有情報の一部に編集できないようにロックを掛ける、情報ロック手段と、
    前記情報記憶手段に保持する前記共有情報の一部の編集を終えた後、他のノードに対して共有情報の一部に掛けたロックを外すためのアンロック情報を送信し、
    また他のノードから前記アンロック情報を受信したときには、自らの前記情報記憶手段に保持する前記共有情報の一部に掛けたロックを外す、情報アンロック手段と、を備えることを特徴とする請求項15に記載の情報処理装置。
  18. 前記情報ロック手段は、
    ロックを掛ける前記共有情報の一部に関する情報として、
    現在編集中の箇所から一定範囲内のエリア、現在表示されているウィンドウエリア、またはシステムがロックを必要とするエリアの一つ以上を含む、前記ロック情報を送信することを特徴とする請求項16または17に記載の情報処理装置。
  19. 前記情報アンロック手段は、
    ロックを外すタイミングとして、
    編集入力後一定時間経過後、ユーザによる編集終了指示、または入力ウィンドウの非アクティブ状態の一つ以上に基づき編集を終了し、
    前記アンロック情報を送信することを特徴とする請求項16乃至18の何れか1項に記載の情報処理装置。
  20. 前記協調編集手段は、
    前記ロック情報に基づき既にロックを掛けている前記共有情報の一部に対して編集を行いたい場合に、他のノードに予約ロック情報を送信し、
    当該ロック情報に対応する前記アンロック情報を受信すると、他のノードに前記予約ロック情報に基づくロックを掛けさせ、編集を可能にすることを特徴とする請求項16乃至19の何れか1項に記載の情報処理装置。
  21. 前記協調編集手段は、
    同一のエリアをロックエリアとして含む前記予約ロック情報を複数受信した場合、当該エリアに対するロックが外されるたびに、前記予約ロック情報に基づくロックを受信順に実行し、
    実行待ちの予約ロック情報件数が所定数に達した場合は、当該エリアに対するロックを外すタイミングを調整することを特徴とする請求項20に記載の情報処理装置。
  22. 元の前記情報を保存するノードは、当該ノードから前記情報を取得したノードに関するアクセス情報を保持しており、
    前記情報共有手段は、
    元の前記情報を保存するノードにアクセスして前記アクセス情報を参照し、既に前記情報を前記共有情報として取得したノードが存在する場合は、当該ノードにアクセスして前記共有情報及びその編集情報を取得することを特徴とする請求項12乃至21の何れか1項に記載の情報処理装置。
JP2006303835A 2006-11-09 2006-11-09 情報の管理方法及び情報処理装置 Expired - Fee Related JP5011965B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006303835A JP5011965B2 (ja) 2006-11-09 2006-11-09 情報の管理方法及び情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006303835A JP5011965B2 (ja) 2006-11-09 2006-11-09 情報の管理方法及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2008123088A JP2008123088A (ja) 2008-05-29
JP5011965B2 true JP5011965B2 (ja) 2012-08-29

Family

ID=39507804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006303835A Expired - Fee Related JP5011965B2 (ja) 2006-11-09 2006-11-09 情報の管理方法及び情報処理装置

Country Status (1)

Country Link
JP (1) JP5011965B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024080586A1 (ko) * 2022-10-14 2024-04-18 삼성전자주식회사 멀티 디바이스 환경에서 공동 편집을 위한 전자 장치 및 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5326543B2 (ja) * 2008-12-18 2013-10-30 富士ゼロックス株式会社 電子会議端末及び電子会議プログラム
JP5532649B2 (ja) * 2009-03-27 2014-06-25 ブラザー工業株式会社 ノード装置、ノード処理プログラム及びコンテンツ保存方法
US8161019B2 (en) * 2009-05-01 2012-04-17 Microsoft Corporation Cross-channel coauthoring consistency
JP2013196233A (ja) * 2012-03-19 2013-09-30 Konica Minolta Inc オブジェクト共有システム及びオブジェクト管理プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816553A (ja) * 1994-06-27 1996-01-19 Canon Inc 文書処理システム及び文書処理方法
JPH0863382A (ja) * 1994-08-19 1996-03-08 Fujitsu Ltd 分散システムにおけるデータ整合性確認方法及びデータ整合性確認装置
JP2001067257A (ja) * 1999-08-30 2001-03-16 Toshiba Corp 分散ノード間排他更新装置
JP2003280969A (ja) * 2002-03-26 2003-10-03 Sanyo Electric Co Ltd 診療支援システムとその端末装置及び制御装置
JP4419824B2 (ja) * 2004-12-10 2010-02-24 日本電気株式会社 レプリケーション制御システム、基幹サーバ、部門サーバ、更新ロック管理装置およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024080586A1 (ko) * 2022-10-14 2024-04-18 삼성전자주식회사 멀티 디바이스 환경에서 공동 편집을 위한 전자 장치 및 방법

Also Published As

Publication number Publication date
JP2008123088A (ja) 2008-05-29

Similar Documents

Publication Publication Date Title
US7958543B2 (en) Account synchronization for common identity in an unmanaged network
US7640324B2 (en) Small-scale secured computer network group without centralized management
US7756924B2 (en) Peer communities
CN102947797B (zh) 使用横向扩展目录特征的在线服务访问控制
JP5242134B2 (ja) プライベートネットワークシステム及び方法
US7698388B2 (en) Secure access to remote resources over a network
US8051473B2 (en) Method for operating networks of devices
US7596625B2 (en) Peer-to-peer grouping interfaces and methods
US7802099B2 (en) Method and apparatus for establishing a secure connection
JP4788711B2 (ja) ワークフロー実行システム、ワークフロー実行方法、及び、プログラム
JP4915182B2 (ja) 情報の管理方法及び情報処理装置
JP4155341B2 (ja) 情報の管理方法及び情報処理装置
JP5011965B2 (ja) 情報の管理方法及び情報処理装置
KR20040015714A (ko) 컨텐츠 이용장치와 네트워크 시스템, 및 라이센스 정보취득방법
JP2004187305A (ja) 共通のグループラベルを用いたピア・ツー・ピアネットワークにおけるノード間の通信のための方法
JP2000112891A (ja) アクセス制御設定システム及び記憶媒体
KR20130114575A (ko) 프로비저닝 서비스를 위한 리더 중재
JP2021189638A (ja) 移行支援システム、移行支援方法、およびノード
JP2008287395A (ja) 認証方法及び認証システム
KR102294569B1 (ko) 블록체인 네트워크를 구축할 수 있는 블록체인 관리시스템
US11416449B2 (en) Method of synchronous deletion for distributed storage system
Achara et al. Descal-decentralized shared calendar for P2P and ad-hoc networks
JP2004252742A (ja) ファイル共有システム、そのユーザ端末装置、及びファイル共有方法、並びにユーザ端末のプログラム
CN113647075A (zh) 设备激活方法、终端设备及计算机存储介质
JPH114262A (ja) ネットワーク接続機器及びネットワーク構築方法並びに通信機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091029

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120328

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120508

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120521

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees