(57)【要約】【課題】複数のユーザの各々が単独で行なった作業結果を確実に反映しつつ、効率的な共同作業を実現するための情報処理方法、情報処理装置およびプログラムを提供する。【解決手段】共有オブジェクトであるオブジェクトＯＢＪ１と、個人作業モードにおいて各ユーザの操作によって生成されたオブジェクトＯＢＪ１Ａ，ＯＢＪ１Ｂ，ＯＢＪ１Ｃとの派生関係が、視覚的に表現される。さらに、付加されたメッセージであるオブジェクトＯＢＪ１ＢｔおよびＯＢＪ１Ｃｔについても、それぞれ対応するオブジェクトＯＢＪ１ＢおよびＯＢＪ１Ｃとに関連付けて表示される。【選択図】図７
2010061290.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置を用いて複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理方法であって、
前記複数の情報処理装置が、第１モードにおいて、前記仮想空間および前記仮想空間に含まれるオブジェクトを定義する共有ファイルを同期して保持するステップと、
前記複数の情報処理装置のうち第１情報処理装置が、前記第１モードから第２モードへの切替えの指示を受けて、前記共有ファイルについての同期処理を停止するステップと、
前記第１情報処理装置が、前記仮想空間に含まれる第１オブジェクトに対する変更操作を受付けるステップと、
前記第１情報処理装置が、前記共有ファイルの少なくとも一部をコピーすることで、前記第１オブジェクトを定義する局所ファイルを生成するステップと、
前記第１情報処理装置が、前記第１オブジェクトに対する変更操作の結果得られる第２オブジェクトに応じて、前記局所ファイルを更新するステップと、
前記第１情報処理装置が、前記第２モードから前記第１モードへの切替えの指示を受けて、他の情報処理装置との間で共有する前記共有ファイルに前記局所ファイルとの対応関係を反映するステップと、
前記複数の情報処理装置が、前記第１モードにおいて、前記局所ファイルとの対応関係が反映された前記共有ファイルに基づいて、第１および第２オブジェクトを含む仮想空間を表示部に描画するステップとを備える、情報処理方法。
【請求項２】
前記対応関係を反映するステップは、前記仮想空間において、前記第２オブジェクトが前記第１オブジェクトに近接して表示されるように、前記共有ファイルの記述を変更するステップを含む、請求項１に記載の情報処理方法。
【請求項３】
前記対応関係を反映するステップは、前記仮想空間において、前記第１オブジェクトと前記第２オブジェクトとの対応関係を視覚的に表示するオブジェクトを追加するステップをさらに含む、請求項１または２に記載の情報処理方法。
【請求項４】
前記第１情報処理装置が、前記第２モードにおいて、前記変更操作によって前記第２オブジェクトが生成されると、前記第１オブジェクトを不可視としつつ、前記第２オブジェクトを含む仮想空間を表示部に描画するステップをさらに備える、請求項１〜３のいずれか１項に記載の情報処理方法。
【請求項５】
前記共有ファイルは、第１オブジェクトの実体を示すファイルと、前記実体を示すファイルへの参照情報を記述したファイルとを含む、請求項１〜４のいずれか１項に記載の情報処理方法。
【請求項６】
前記第１情報処理装置が、前記第２モードにおいて、オブジェクトの新規作成指示を受けて、前記第２オブジェクトとは異なる第３オブジェクトを生成するステップと、
前記第１情報処理装置が、前記第３オブジェクトを前記第２オブジェクトに対応付けるステップとをさらに備える、請求項１〜５のいずれか１項に記載の情報処理方法。
【請求項７】
前記第１および第２オブジェクトを含む仮想空間を表示部に描画するステップでは、前記第３オブジェクトを前記第２オブジェクトに対応付けて描画される、請求項６に記載の情報処理方法。
【請求項８】
他の情報処理装置とデータ通信可能に構成され、複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理装置であって、
表示部と、
第１モードにおいて、前記仮想空間および前記仮想空間に含まれるオブジェクトを定義する共有ファイルを他の情報処理装置との間で同期して保持する手段と、
前記第１モードから第２モードへの切替えの指示を受けて、前記共有ファイルについての同期処理を停止する手段と、
前記仮想空間に含まれる第１オブジェクトに対する変更操作を受付ける手段と、
前記共有ファイルの少なくとも一部をコピーすることで、前記第１オブジェクトを定義する局所ファイルを生成する手段と、
前記第１オブジェクトに対する変更操作の結果得られる第２オブジェクトに応じて、前記局所ファイルを更新する手段と、
前記第２モードから前記第１モードへの切替えの指示を受けて、他の情報処理装置との間で共有する前記共有ファイルに前記局所ファイルとの対応関係を反映する手段と、
前記第１モードにおいて、前記局所ファイルとの対応関係が反映された前記共有ファイルに基づいて、第１および第２オブジェクトを含む仮想空間を前記表示部に描画する手段とを備える、情報処理装置。
【請求項９】
複数の情報処理装置を用いて複数のユーザによる同時アクセス可能な仮想空間を提供するためのプログラムであって、
前記プログラムは、前記情報処理装置に、
第１モードにおいて、前記仮想空間および前記仮想空間に含まれるオブジェクトを定義する共有ファイルを他の情報処理装置との間で同期して保持するステップと、
前記第１モードから第２モードへの切替えの指示を受けて、前記共有ファイルについての同期処理を停止するステップと、
前記仮想空間に含まれる第１オブジェクトに対する変更操作を受付けるステップと、
前記共有ファイルの少なくとも一部をコピーすることで、前記第１オブジェクトを定義する局所ファイルを生成するステップと、
前記第１オブジェクトに対する変更操作の結果得られる第２オブジェクトに応じて、前記局所ファイルを更新するステップと、
前記第２モードから前記第１モードへの切替えの指示を受けて、他の情報処理装置との間で共有する前記共有ファイルに前記局所ファイルとの対応関係を反映するステップと、
前記第１モードにおいて、前記局所ファイルとの対応関係が反映された前記共有ファイルに基づいて、第１および第２オブジェクトを含む仮想空間を表示部に描画するステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のユーザが共同作業を行なうことが可能なワークスペースを提供する情報処理方法、情報処理装置およびそのプログラムに関する。
【背景技術】
【０００２】
複数のユーザによる共同作業を効率化するために共同作業空間（以下、「ワークスペース」とも称す。）を提供するアプリケーションが提案されている。このようなワークスペースは、複数のユーザが同時にアクセス可能な仮想空間であり、ネットワーク接続などの互いにデータ通信可能に構成された複数の情報処理装置（以下、「ｎｏｄｅ（ノード）」とも称す。）の間でデータが共有されることで実現される。このようなワークスペースによって、遠隔地にいるユーザ同士でも共同作業（コラボレーション）が可能となる。
【０００３】
このようなワークスペースの使用形態としては、少なくとも、当該ワークスペースに参加している各ユーザが単独で作業を行なうような場合と、複数のユーザが議論をしながら共通の作業を進めていく場合とが想定される。たとえば、特開平０６−０７５７３５号公報（特許文献１）には、他のユーザと共通の情報を表示する共有モードと、個人的に表示したい情報を表示する個人モードとを選択可能な共有画面制御装置が開示されている。
【０００４】
このような使用形態のうち、後者に属する形態で作成されたデータ（あるいは、オブジェクトなど）については、ユーザ間の共通の認識に基づくものであり、変更操作に伴う不整合や消滅といった事態が生じる可能性は低い。
【０００５】
これに対して、前者に属する形態で各ユーザが行なった作業の結果は、互いに類似の内容のものが複数存在することも考えられ、このような場合には、これらの結果の間で整合性をとることが難しい。このような課題に対する一つのアプローチとして、特開平１１−３２７９８０号公報（特許文献２）には、バージョン間を派生関係で管理するバージョン管理装置が開示されている。
【特許文献１】特開平０６−０７５７３５号公報
【特許文献２】特開平１１−３２７９８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特開平１１−３２７９８０号公報（特許文献２）に開示されるバージョン管理装置では、最後に変更を行なったユーザの結果が最新のものとして取扱われるため、共同作業の結果ではなく、あるユーザが行なった作業の結果が当該ワークスペース上で最新のものとして取扱われるという課題があった。
【０００７】
すなわち、特開平１１−３２７９８０号公報（特許文献２）に開示されるバージョン管理装置では、各ユーザが行なった作業の結果をすべて反映して１つのデータとして纏めるような処理は想定されておらず、そのため、複数のユーザの間で効率的な共同作業を行なうことはできなかった。
【０００８】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、複数のユーザの各々が単独で行なった作業結果を確実に反映しつつ、効率的な共同作業を実現するための情報処理方法、情報処理装置およびプログラムを提供することである。
【課題を解決するための手段】
【０００９】
この発明のある局面に従えば、複数の情報処理装置を用いて複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理方法を提供する。情報処理方法は、複数の情報処理装置が、第１モードにおいて、仮想空間および仮想空間に含まれるオブジェクトを定義する共有ファイルを同期して保持するステップと、複数の情報処理装置のうち第１情報処理装置が、１モードから第２モードへの切替えの指示を受けて、共有ファイルについての同期処理を停止するステップと、第１情報処理装置が、仮想空間に含まれる第１オブジェクトに対する変更操作を受付けるステップと、第１情報処理装置が、共有ファイルの少なくとも一部をコピーすることで、第１オブジェクトを定義する局所ファイルを生成するステップと、第１情報処理装置が、第１オブジェクトに対する変更操作の結果得られる第２オブジェクトに応じて、局所ファイルを更新するステップと、第１情報処理装置が、第２モードから第１モードへの切替えの指示を受けて、他の情報処理装置との間で共有する共有ファイルに局所ファイルとの対応関係を反映するステップと、複数の情報処理装置が、第１モードにおいて、局所ファイルとの対応関係が反映された共有ファイルに基づいて、第１および第２オブジェクトを含む仮想空間を表示部に描画するステップとを含む。
【００１０】
好ましくは、対応関係を反映するステップは、仮想空間において、第２オブジェクトが第１オブジェクトに近接して表示されるように、共有ファイルの記述を変更するステップを含む。
【００１１】
好ましくは、対応関係を反映するステップは、仮想空間において、第１オブジェクトと第２オブジェクトとの対応関係を視覚的に表示するオブジェクトを追加するステップをさらに含む。
【００１２】
好ましくは、情報処理方法は、第１情報処理装置が、第２モードにおいて、変更操作によって第２オブジェクトが生成されると、第１オブジェクトを不可視としつつ、第２オブジェクトを含む仮想空間を表示部に描画するステップをさらに含む。
【００１３】
好ましくは、共有ファイルは、第１オブジェクトの実体を示すファイルと、実体を示すファイルへの参照情報を記述したファイルとを含む。
【００１４】
好ましくは、情報処理方法は、第１情報処理装置が、第２モードにおいて、オブジェクトの新規作成指示を受けて、第２オブジェクトとは異なる第３オブジェクトを生成するステップと、第１情報処理装置が、第３オブジェクトを第２オブジェクトに対応付けるステップとをさらに含む。
【００１５】
さらに好ましくは、第１および第２オブジェクトを含む仮想空間を表示部に描画するステップでは、第３オブジェクトを第２オブジェクトに対応付けて描画される。
【００１６】
この発明の別の局面に従えば、他の情報処理装置とデータ通信可能に構成され、複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理装置を提供する。情報処理装置は、表示部と、第１モードにおいて、仮想空間および仮想空間に含まれるオブジェクトを定義する共有ファイルを他の情報処理装置との間で同期して保持する手段と、第１モードから第２モードへの切替えの指示を受けて、共有ファイルについての同期処理を停止する手段と、仮想空間に含まれる第１オブジェクトに対する変更操作を受付ける手段と、共有ファイルの少なくとも一部をコピーすることで、第１オブジェクトを定義する局所ファイルを生成する手段と、第１オブジェクトに対する変更操作の結果得られる第２オブジェクトに応じて、局所ファイルを更新する手段と、第２モードから第１モードへの切替えの指示を受けて、他の情報処理装置との間で共有する共有ファイルに局所ファイルとの対応関係を反映する手段と、第１モードにおいて、局所ファイルとの対応関係が反映された共有ファイルに基づいて、第１および第２オブジェクトを含む仮想空間を表示部に描画する手段とを含む。
【００１７】
この発明のさらに別の局面に従えば、複数の情報処理装置を用いて複数のユーザによる同時アクセス可能な仮想空間を提供するためのプログラムを提供する。プログラムは、情報処理装置に、第１モードにおいて、仮想空間および仮想空間に含まれるオブジェクトを定義する共有ファイルを他の情報処理装置との間で同期して保持するステップと、第１モードから第２モードへの切替えの指示を受けて、共有ファイルについての同期処理を停止するステップと、仮想空間に含まれる第１オブジェクトに対する変更操作を受付けるステップと、共有ファイルの少なくとも一部をコピーすることで、第１オブジェクトを定義する局所ファイルを生成するステップと、第１オブジェクトに対する変更操作の結果得られる第２オブジェクトに応じて、局所ファイルを更新するステップと、第２モードから第１モードへの切替えの指示を受けて、他の情報処理装置との間で共有する共有ファイルに局所ファイルとの対応関係を反映するステップと、第１モードにおいて、局所ファイルとの対応関係が反映された共有ファイルに基づいて、第１および第２オブジェクトを含む仮想空間を表示部に描画するステップとを実行させる。
【発明の効果】
【００１８】
この発明によれば、複数のユーザの各々が単独で行なった作業結果を確実に反映しつつ、効率的な共同作業を実現することができる。
【発明を実施するための最良の形態】
【００１９】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２０】
＜ワークスペースの全体構成＞
図１は、この発明の実施の形態に従うワークスペースを提供するためのシステムの概略構成図である。
【００２１】
図１を参照して、本実施の形態に従うシステムは、ネットワークＮＷを介して互いにデータ通信可能に接続されたデバイスである複数の情報処理装置ＰＣ１〜ＰＣ３（以下、「情報処理装置ＰＣ」あるいは「ｎｏｄｅ（ノード）」とも総称する。）を含む。本明細書において、「ｎｏｄｅ」は、ネットワーク接続されたデバイス一般を示し、特に、ネットワーク上を伝送される情報（データ）を受信して、当該情報を自身で処理可能なデバイスを示す。
【００２２】
これらの情報処理装置ＰＣ１〜ＰＣ３の各々は、ワークスペースを定義するファイル（以下、「ワークスペース定義ファイル」とも称す。）を保持することで、複数のユーザによる同時アクセス可能な仮想空間（共同作業空間）を提供する。すなわち、いずれかの情報処理装置ＰＣ上でユーザ操作によってワークスペース定義ファイルが変更されると、当該変更後のワークスペース定義ファイルを変更するための情報（変更に係るワークスペース定義ファイルの全部または一部）が他の情報処理装置ＰＣにも送信される。このような同期処理が随時行われることで、すべての情報処理装置ＰＣにおいて、実質的に同一のワークスペースが提供されることになる。
【００２３】
なお、それぞれの情報処理装置ＰＣは、論理的に相互にデータ通信可能であれば、必ずしも同一階層のネットワークに接続されている必要はない。
【００２４】
＜ハードウェア構成＞
図２は、この発明の実施の形態に従う情報処理装置ＰＣの代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【００２５】
図２を参照して、本実施の形態に従う情報処理装置ＰＣは、オペレーティングシステムを含む各種プログラムを実行するＣＰＵ２０１と、ＣＰＵ２０１でのプログラムの実行に必要なデータを一時的に記憶する記憶部としてのメモリ部２１３と、ＣＰＵ２０１で実行されるプログラムを不揮発的に記憶するハードディスク部（ＨＤＤ）２１１とを含む。このようなプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブ２１５またはフレキシブルディスク（ＦＤ：Flexible Disk）ドライブ２１７によって、それぞれＣＤ−ＲＯＭ２１５ａまたはフレキシブルディスク２１７ａなどから読取られる。
【００２６】
ＣＰＵ２０１は、キーボードやマウスなどからなる入力装置２０９を介してユーザによる操作要求を受取るとともに、プログラムの実行によって生成される画面出力を表示部であるモニター２０５へ出力する。また、ＣＰＵ２０１は、ＬＡＮカードなどからなる通信６インターフェイス２０７を介して、他の情報処理装置ＰＣやサーバ装置ＳＲＶとの間でデータ通信を行なう。なお、これらの部位は、内部バス２０３を介して互いに接続される。
【００２７】
なお、本明細書における「ｎｏｄｅ」として機能するデバイスであれば、どのようなデバイスを用いてもよく、たとえば通信機能を備えた携帯電話などを用いることもできる。
【００２８】
＜ワークスペース＞
本明細書において「ワークスペース」とは、複数のユーザによる同時アクセス可能な仮想空間を意味し、ワークスペース定義ファイルおよび当該ワークスペース定義ファイルに含まれる任意数のオブジェクトデータなどによってワークスペースは提供される。なお、本明細書中では、ワークスペース定義ファイルおよびオブジェクトデータなどをレンダリング（可視化）したものを「ワークスペース」という場合もある。
【００２９】
図３は、この発明の実施の形態に従うワークスペースＷＳの一例を模式的に示す図である。
【００３０】
図３（ａ）には、可視化されたワークスペースＷＳの全体構造の一例を示す。このワークスペースＷＳには、一例として、オブジェクトＯＢＪ１〜ＯＢＪ８が既に作成されているとする。なお、本明細書において「オブジェクト」とは、ユーザによる各操作の対象となる対象物の単位であり、具体的には、文書ファイルや表計算ファイルといったファイルオブジェクト（file）、ＪＰＥＧ形式やＧＩＦ形式などの画像オブジェクト（image）、文字を示すテキストオブジェクト（text）、描画を示す線オブジェクト（line）といった任意の電子的に取扱可能な情報を用いることができる。なお、ファイルオブジェクトや画像オブジェクトについては、ワークスペース定義ファイルとは別の実体ファイルが用意されており、ワークスペース定義ファイル中に当該実体ファイルへのリンク情報（リンクアドレス）が記述される。このようなファイルオブジェクトや画像オブジェクトについては、ワークスペースＷＳ上で、その内容を参照したり表示したりすることが可能である。また、本明細書において「オブジェクト」には、ワークスペース定義ファイル中に定義されたファイルオブジェクトや画像オブジェクトのリンク先である実体ファイル自体を含む。
【００３１】
図３（ａ）に示す例では、オブジェクトＯＢＪ１として「ファイルオブジェクト」を例示し、オブジェクトＯＢＪ２，ＯＢＪ３として「画像オブジェクト」を例示し、オブジェクトＯＢＪ４，ＯＢＪ６として「線オブジェクト」を例示し、オブジェクトＯＢＪ５，ＯＢＪ７，ＯＢＪ８として「テキストオブジェクト」を例示する。
【００３２】
ワークスペースＷＳのサイズは自在に設定することができ、一般的に、各情報処理装置ＰＣのモニター２０５の表示サイズに比較して大きくなるように設定される。そのため、各情報処理装置ＰＣのモニター２０５には、図３（ｂ）に示すようにワークスペースＷＳの一部の領域だけがレンダリング（可視化）される場合が多い。
【００３３】
ユーザは、キーボードやマウスなどからなる入力装置２０９（図２）を用いて、ワークスペースＷＳのうちモニター２０５にレンダリングする領域を選択し、また各種操作ボタンを選択したり、表示されるオブジェクトを選択してドラッグしたりすることで、各オブジェクトの新規作成、変更、削除といった操作が可能である。また、ワークスペースＷＳのうち各情報処理装置ＰＣのモニター２０５に表示される領域を表示エリアＶＡとも称する。
【００３４】
＜全体処理概要＞
本実施の形態に従うワークスペースでは、各ｎｏｄｅにおいて、「共同作業モード」と「個人作業モード」との切替機能が提供される。
【００３５】
この共同作業モードでは、ワークスペースＷＳに参加しているｎｏｄｅの間で、ワークスペース定義ファイルが随時（あるいは、所定の定周期で）同期される。すなわち、いずれかのｎｏｄｅのユーザが何らかの操作を行なうと、当該操作は他のｎｏｄｅの保持するワークスペース定義ファイルにも反映される。そのため、すべてのｎｏｄｅで実質的に同一のワークスペースＷＳが提供される。
【００３６】
一方、「個人作業モード」では、各ｎｏｄｅはワークスペースＷＳから論理的に離脱した状態となっており、各ｎｏｄｅのユーザは、自ｎｏｄｅに保持されているワークスペース定義ファイルおよびリンク付けされているファイルなどに対して、単独の操作（作業）が可能である。なお、この個人作業モードでは、ワークスペース定義ファイルについての同期処理は停止される。
【００３７】
後述するように、本実施の形態に従うワークスペースＷＳでは、共同作業モードから個人作業モードに移行する直前にワークスペースＷＳに含まれていたオブジェクト（以下、「共有オブジェクト」とも称す。）に対しては、個人的な変更などの操作は禁止される。それに代えて、ユーザがいずれかの共有オブジェクトに対して変更などの操作を行なった場合には、当該共有オブジェクトから局所オブジェクトが派生的に生成され、当該局所オブジェクトにその操作が反映される。ここで、「局所オブジェクト」とは、主として、個人作業モードにおいて、いずれかのｎｏｄｅにおいて作成されたオブジェクトを意味する。
【００３８】
以下、図４〜図７を参照して、本実施の形態に従う全体処理の概要について説明する。図４は、図３（ａ）に示すワークスペースＷＳの状態からｎｏｄｅ１が個人作業モードに移行した後、ｎｏｄｅ１のユーザＡによる作業中の状態の一例を示す図である。図５は、図３（ａ）に示すワークスペースＷＳの状態からｎｏｄｅ２が個人作業モードに移行した後、ｎｏｄｅ２のユーザＢによる作業中の状態の一例を示す図である。図６は、図３（ａ）に示すワークスペースＷＳの状態からｎｏｄｅ３が個人作業モードに移行した後、ｎｏｄｅ３のユーザＣによる作業中の状態の一例を示す図である。図７は、図４〜図６に示す個人作業モードから共同作業モードへ復帰した後の状態の一例を示す図である。
【００３９】
図４を参照して、たとえば、ｎｏｄｅ１を使用する（ログインしている）ユーザＡが、共同作業モードから個人作業モードへモード切替を行ない、ワークスペースＷＳに配置されていた、文書ファイルであるオブジェクトＯＢＪ１に対して個人的な変更を行なおうとする場合について例示する。
【００４０】
上述したように、共同作業モードから個人作業モードに移行する直前にワークスペースＷＳに含まれていたオブジェクトについての個人的な変更などの操作は禁止される。そのため、ユーザＡによるオブジェクトＯＢＪ１に対する変更操作によって、オブジェクトＯＢＪ１をコピーしたオブジェクトＯＢＪ１Ａが派生的に生成される。図４に示すように、ｎｏｄｅ１のユーザＡが共有オブジェクトであるオブジェクトＯＢＪ１を変更して得られた結果が局所オブジェクト（あるいは、派生オブジェクト）であるオブジェクトＯＢＪ１Ａであるとする。
【００４１】
同様に、図５を参照して、たとえば、ｎｏｄｅ２を使用するユーザＢが、共同作業モードから個人作業モードへモード切替を行ない、ワークスペースＷＳに配置されていた、文書ファイルであるオブジェクトＯＢＪ１に対して個人的な変更を行なったとする。このユーザＢによるオブジェクトＯＢＪ１に対する変更操作によって、オブジェクトＯＢＪ１からオブジェクトＯＢＪ１Ｂが派生的に生成される。さらに、ｎｏｄｅ２のユーザＢは、このオブジェクトＯＢＪ１Ｂの変更後に、他のユーザに向けたメッセージ「コメントは３点」であるオブジェクトＯＢＪ１Ｂｔを新たに作成したものとする。
【００４２】
同様に、図６を参照して、たとえば、ｎｏｄｅ３を使用するユーザＣが、共同作業モードから個人作業モードへモード切替を行ない、ワークスペースＷＳに配置されていた、文書ファイルであるオブジェクトＯＢＪ１に対して個人的な変更を行なったとする。このユーザＣによるオブジェクトＯＢＪ１に対する変更操作によって、オブジェクトＯＢＪ１からオブジェクトＯＢＪ１Ｃが派生的に生成される。さらに、ｎｏｄｅ３のユーザＣは、このオブジェクトＯＢＪ１Ｃの変更後に、他のユーザに向けたメッセージ「修正済」であるオブジェクトＯＢＪ１Ｃｔを新たに作成したものとする。
【００４３】
その後、それぞれのｎｏｄｅにおいて個人作業モードから共同作業モードへのモード切替（復帰操作）が行なわれると、後述するように、各ｎｏｄｅの間で同期処理が実行され、各ｎｏｄｅにおける個人作業モードでの結果がワークスペース定義ファイルに反映される。その結果、各ｎｏｄｅのモニター２０５には、図７に示すようなワークスペースＷＳが表示される。
【００４４】
図７に示すように、共有オブジェクトであるオブジェクトＯＢＪ１と、個人作業モードにおいて各ユーザの操作によって生成されたオブジェクトＯＢＪ１Ａ，ＯＢＪ１Ｂ，ＯＢＪ１Ｃとの派生関係が、視覚的に表現される。さらに、付加されたメッセージであるオブジェクトＯＢＪ１ＢｔおよびＯＢＪ１Ｃｔについても、それぞれ対応するオブジェクトＯＢＪ１ＢおよびＯＢＪ１Ｃとに関連付けて表示される。
【００４５】
このように、本実施の形態に従うワークスペースＷＳでは、共同作業モードにおける作業結果と個人作業モードにおける作業結果とを互いに関連付けつつ、独立のオブジェクトとして管理および視覚化する。そのため、各ユーザが単独で行なった作業結果をワークスペースＷＳに確実に反映することができ、これにより効率的な共同作業を実現することができる。
【００４６】
＜データ構造＞
次に、本実施の形態に従うワークスペースＷＳを構成するためのワークスペース定義ファイル１００のデータ構造について説明する。各データは、代表的に、ＸＭＬなどのマークアップ言語で記述される。これは、タグ（＜＞と＜／＞とで囲まれる文字に与える属性）を自在に設定することでシステムの拡張性を高めるためである。
【００４７】
図８は、この発明の実施の形態に従うワークスペース定義ファイル１００の内容の一例を示す図である。なお、図８に示す内容は、図３（ａ）に示すワークスペースＷＳに対応している。
【００４８】
図８を参照して、ワークスペース定義ファイル１００は、当該ワークスペースを特定するためのワークスペースタグ１１０と、オブジェクトＯＢＪ１〜ＯＢＪ８をそれぞれ定義する記述１２１〜１２８とを含む。なお、図８に示すワークスペース定義ファイル１００には、後述するように、予め定められたユーザ色情報を定義する記述１６１が含まれるが、このユーザ色情報は必ずしも必要ではない。
【００４９】
ワークスペースタグ１１０は、ワークスペースの識別番号（space id）や文字エンコーディング属性（encoding）などを含む。図８に示す例では、識別番号＝「AB12」である。なお、後述するように、ワークスペースタグ１１０には、個人作業モードであることを示す属性（mode="local"）が付加される。
【００５０】
各オブジェクトは、<object>タグと</object>タグとの間の記述によって定義され、これらの記述１２１〜１２８の各々には、各オブジェクトの識別番号（object id）、各オブジェクトの種類（type）、配置される座標位置（point）、実体ファイルのリンクアドレス（src）、各オブジェクトのオーナー（user）などが含まれる。
【００５１】
より具体的には、<object id>タグには、各オブジェクトを一意に特定する識別番号が定義され、<type>タグには、各オブジェクトの種類（file：ファイルオブジェクト、image：画像オブジェクト、text：テキストオブジェクト、line：線オブジェクト）が定義される。また、<point>タグには、各オブジェクトまたは各オブジェクトを構成する要素についてのワークスペースＷＳ上の座標位置が定義される。<src>タグには、関連付けされた実体ファイルのリンクアドレスが定義される。<user>タグには、各オブジェクトのオーナーが定義される。この各オブジェクトのオーナーとしては、各オブジェクトの作成や変更を行なったユーザが記述される。あるいは、ワークスペースＷＳに参加するユーザが任意に設定してもよい。本実施の形態では、各オブジェクトを作成したユーザがオーナーとして記述される。
【００５２】
たとえば、オブジェクトＯＢＪ１に対応する記述１２１には、<object id>タグにおいて、識別番号が「CX11」であることが定義され、<type>タグにおいて、ファイルオブジェクトであることを示す「file」が定義される。さらに、<point>タグにおいて、x='100' y='300'の位置に配置されることが定義され、<src>タグにおいて、実体のファイルを特定する「salesplan.doc」が定義され、<user>タグにおいて、オブジェクトＯＢＪ１のオーナーが「ユーザＡ」であることが定義される。
【００５３】
なお、図８では、１つのワークスペース定義ファイル１００を用いて、ワークスペースＷＳを構成する例について例示したが、複数のファイルを用いて同等の情報を定義してもよい。たとえば、各オブジェクトが定義されたファイルを、リレーショナルデータベースなどを用いて互いに関連付けた構成などを採用することができる。
【００５４】
また、情報処理装置ＰＣ群の間で任意の数のワークスペースＷＳを共有することも可能である。この場合には、上述のワークスペースの識別番号（space id）の値に基づいて、対象のワークスペースＷＳが特定される。
【００５５】
＜制御構造＞
図９は、この発明の実施の形態に従う各情報処理装置ＰＣの制御構造を示すブロック図である。図１０は、図９に示す作業モード制御部２５０のより詳細な制御構造を示すブロック図である。
【００５６】
図９を参照して、各情報処理装置ＰＣは、その制御構造として、作業モード制御部２５０と、データ操作部２５２と、同期制御部２５４と、描画部２５６と、ユーザ認証部２５８と、データ送受信部２６０と、データ格納部２６２とを含む。データ格納部２６２は、ハードディスク部２１１（図２）の任意の領域として提供され、データ送受信部２６０は、通信インターフェイス２０７（図２）および関連するドライバソフトの協同によって提供され、その他の各部は、代表的に、ＣＰＵ２０１（図２）がプログラムをメモリ部２１３（図２）に展開し、各コマンドを実行することで提供される。
【００５７】
また、データ格納部２６２は、ワークスペースを構成するためのワークスペース定義ファイル１００と、ワークスペース定義ファイル１００内でリンクされた実体ファイル１２０と、ワークスペース定義ファイル１００と実体ファイル１２０とのリンク関係を記述したリンクリスト１４０と、ネットワークＮＷ（図１）を介して接続可能な他のｎｏｄｅ（情報処理装置ＰＣ）を特定するための情報（たとえば、ＩＰアドレスなどの各ｎｏｄｅを一意に特定できるユニークな宛て先情報）をリスト形式で記述した接続テーブル１６０とを含む。
【００５８】
作業モード制御部２５０は、本実施の形態に従う情報処理装置ＰＣの特徴的な処理を提供する部位であり、自装置において共同作業モードと個人作業モードとの間の切替指示が与えられると、共同作業モードにおいて作成済のオブジェクトを保護（いわゆる「読出専用」）するとともに、個人作業モードにおいて各ユーザの作業結果を記憶し、共同作業モードに復帰した後に、ワークスペースＷＳに反映する。
【００５９】
図１０を参照して、作業モード制御部２５０は、モード切替部２５０Ａと、オブジェクト属性管理部２５０Ｂと、リンクリスト管理部２５０Ｃと、派生制御部２５０Ｄとを含む。モード切替部２５０Ａは、ユーザが入力装置２０９（図２）を介して入力する操作に基づいて、共同作業モードと個人作業モードとを切替える。そして、モード切替部２５０Ａは、各時点における自装置において選択中のモードを必要に応じて他の部位へ伝える。
【００６０】
オブジェクト属性管理部２５０Ｂは、上述したように、ワークスペースＷＳにおける各オブジェクトについての属性（共有オブジェクトまたは局所オブジェクト）を管理する。より具体的には、オブジェクト属性管理部２５０Ｂは、共有作業モードから個人作業モードへの切替えが実行されると、その直前においてワークスペースＷＳ上に配置されていたオブジェクトを共有オブジェクトとして取扱う。そして、オブジェクト属性管理部２５０Ｂは、個人作業モードにおいて自装置のユーザの操作によって作成や変更などがなされたオブジェクトについては、局所オブジェクトとして取扱う。さらに、オブジェクト属性管理部２５０Ｂは、個人作業モードから共同作業モードへの切替えが実行されると、他のｎｏｄｅとの間で同期処理を実行し、局所オブジェクトを他のｎｏｄｅとの間で共有される共同オブジェクトに変更する。なお、オブジェクト属性管理部２５０Ｂは、共同作業モードから個人作業モードに切替えられると、ワークスペース定義ファイル１００からワークスペース定義ファイル（ローカル）１００Ａを予め生成し、このワークスペース定義ファイル（ローカル）１００Ａに対して、その内容の変更を行なう。
【００６１】
リンクリスト管理部２５０Ｃは、オブジェクト属性管理部２５０Ｂおよび派生制御部２５０Ｄと協働し、個人作業モードにおいて、ファイルオブジェクトや画像オブジェクトなどのオブジェクト定義ファイルとは別の実体ファイルの内容が変更された場合に、オブジェクト定義ファイルに記述されたオブジェクトと当該変更後の実体ファイルとの間のリンク関係を随時更新する。より具体的には、リンクリスト管理部２５０Ｃは、自装置におけるユーザ操作に応じて、リンクリスト１４０の記述内容を順次更新する。
【００６２】
派生制御部２５０Ｄは、個人作業モードにおいて、ファイルオブジェクトや画像オブジェクトなどのオブジェクト定義ファイルとは別の実体ファイルに対する変更操作がなされた場合に、対象の実体ファイルをコピーして実体ファイル（ローカル）１２０Ａを生成し、この実体ファイル（ローカル）１２０Ａに対して、その内容の変更を行なう。
【００６３】
再度、図９を参照して、データ操作部２５２は、ユーザによる入力装置２０９（図２）の操作に従って、オブジェクトの新規作成、変更、削除などを行なう。このユーザによる操作によって、データ操作部２５２は、データ格納部２６２に格納されているワークスペース定義ファイル１００の追加、変更、削除などを行なう。
【００６４】
同期制御部２５４は、ワークスペースＷＳを構成するワークスペース定義ファイル１００を他のｎｏｄｅ（情報処理装置ＰＣ）との間で同期する。すなわち、同期制御部２５４は、自ｎｏｄｅにおいてワークスペース定義ファイル１００に何らかの変更がなされると、変更後のワークスペース定義ファイル１００の全部または一部（差分）を、当該ワークスペースＷＳを形成する他のｎｏｄｅへそれぞれ送信する。また、同期制御部２５４は、他のｎｏｄｅから変更後のワークスペース定義ファイル１００の全部または一部（差分）を受信すると、それに応じて、自装置のデータ格納部２６２に記憶されているワークスペース定義ファイル１００を更新する。
【００６５】
なお、上述したように、各情報処理装置ＰＣにおいて何らかの操作がなされることをイベントとしてこのような同期処理が実行されるようにしてもよいし、これに加えて、あるいはこれに代えて、所定周期毎に、ワークスペースＷＳに参加するすべてのｎｏｄｅ（情報処理装置ＰＣ）の間で、データの一致／不一致をつきあわせ、この結果に応じて、ワークスペース定義ファイル１００の内容を変更するようにしてもよい。
【００６６】
描画部２５６は、ワークスペース定義ファイル１００の情報のうち、ユーザにより指定される所定範囲に含まれる情報に基づいて、描画処理（レンダリング処理）を行なう。すなわち、描画部２５６は、ワークスペースＷＳのうちユーザが指定した領域を可視化する。より具体的には、描画部２５６は、ワークスペース定義ファイル１００を参照して、モニター２０５（図２）に表示すべき画像を示すデータを図示しないビデオメモリに周期的に出力する。このビデオメモリに格納されるデータに応じて、モニター２０５には画像が表示される。
【００６７】
ユーザ認証部２５８は、各情報処理装置ＰＣを使用するユーザに対するユーザ認証処理を実行する。具体的には、ユーザ認証部２５８は、いずれかのユーザが各情報処理装置ＰＣの使用開始時に、ＩＤおよびパスワードの入力を促す。そして、ユーザからＩＤおよびパスワードの入力があると、予め格納されたユーザテーブル（図示しない）、あるいはユーザ認証サーバ（図示しない）に問合せを行ってユーザ認証処理を行なう。ユーザ認証が成功すると、ユーザによる当該情報処理装置ＰＣの使用を許可するとともに、現在使用中（ログイン中）のユーザ名を保持する。なお、本実施の形態に従う情報処理装置ＰＣでは、各装置を使用するユーザを識別できればよいので、パスワードを必ずしも要求しなくてもよい。
【００６８】
データ送受信部２６０は、他のｎｏｄｅ（情報処理装置ＰＣ）との間のデータ通信を制御する。具体的には、データ送受信部２６０は、同期制御部２５４からの要求に応じて、データ格納部２６２に格納されているワークスペース定義ファイル１００の全部または一部を読み出して他のｎｏｄｅへ送信し、あるいは、他のｎｏｄｅから受信したワークスペース定義ファイル１００の全部または一部を同期制御部２５４へ渡す。なお、データ送受信部２６０は、データ格納部２６２に格納されている接続テーブル１６０を参照して、データの送受信を行なう相手を特定する。
【００６９】
図１１は、この発明の実施の形態に従うリンクリスト１４０の内容の一例を示す図である。なお、図１１に示す内容は、図８に示すワークスペース定義ファイル１００に対応している。
【００７０】
図１１を参照して、情報処理装置ＰＣの各々は、ワークスペース定義ファイル１００中に記述された実体ファイルへのリンク情報の数と同数のリンクリスト１４０を保持する。より具体的な一例として、図８に示すワークスペース定義ファイル１００中には、リンク情報を含むオブジェクトとして、記述１２１，１２２，１２３（オブジェクトＯＢＪ１，ＯＢＪ２，ＯＢＪ３）が含まれている。
【００７１】
この記述１２１では、識別番号が「CX11」として、リンク先の実体ファイルが「salesplan.doc」であり、かつユーザが「ユーザＡ」として定義されている。この定義に対応させて、図１１に示すような、「実体ファイル名」と、「ＩＤ」と、「Ｕｓｅｒ」とを対応付けたリンクリストが予め用意されている。同様に、図８に示すワークスペース定義ファイル１００に含まれる記述１２２の内容を反映したリンクリストが予め用意される。
【００７２】
以下同様にして、ワークスペース定義ファイル１００中に存在するリンク情報を含むオブジェクトの各々に対応付けてリンクリスト１４０が予め用意される。なお、ワークスペース定義ファイル１００中に何らかのリンク情報を含むオブジェクトが新規作成されると、これに応じてリンクリストも新規作成される。
【００７３】
＜共同作業モードにおける概略処理＞
共同作業モードでは、各ｎｏｄｅがワークスペース定義ファイル１００を共有することで、各ｎｏｄｅのユーザにワークスペースＷＳを提供する。このようなワークスペースＷＳを提供するため、共同作業モードでは、ｎｏｄｅ間でワークスペース定義ファイル１００の同期処理が継続的に実行される。
【００７４】
まず、図１２〜図１５を参照して、本実施の形態に従うワークスペースの共同作業モードにおける同期処理について説明する。なお、図１２〜図１５に示す例は、図３（ａ）に示すワークスペースＷＳに対応している。
【００７５】
図１２は、この発明の実施の形態に従うワークスペースのある状態を示す図である。図１３は、図１２に示す状態において、ｎｏｄｅ１でユーザ操作が行なわれた直後の状態を示す図である。図１４は、図１３の後に同期処理中の状態を示す図である。図１５は、図１４に示すユーザ操作に係る同期処理が完了した状態を示す図である。
【００７６】
図１２を参照して、共同作業モードにおいて同期処理が完了している状態では、ｎｏｄｅ１〜ｎｏｄｅ３の各々は、同一の内容が記述されたワークスペース定義ファイル１００を保持している。
【００７７】
次に、図１２に示す状態において、ｎｏｄｅ１のユーザが何らかの操作を行なった場合について説明する。一例として、ｎｏｄｅ１のユーザがマウスなどの入力装置２０９を操作して、ワークスペースＷＳ上のオブジェクトＯＢＪ１（図３（ａ）参照）をドラッグし、オブジェクトＯＢＪ１の位置を変更したとする。このｎｏｄｅ１のユーザ操作に伴って、ｎｏｄｅ１のデータ操作部２５２（図９）は、オブジェクトＯＢＪ１の変更後の位置情報を取得し、自装置のデータ格納部２６２（図９）に格納されているワークスペース定義ファイル１００中の対応するタグの値を変更する。
【００７８】
具体的には、図１３に示すように、ｎｏｄｅ１の保持するワークスペース定義ファイル１００のオブジェクトＯＢＪ１を記述する<point>タグ１０８の値が「x='100' y='300'」から「x='200' y='300'」に書き換えられる。
【００７９】
このワークスペース定義ファイル１００の変更に伴って、ｎｏｄｅ１の同期制御部２５４（図９）は、他のｎｏｄｅに対して、この変更が反映されるように同期処理を実行する。具体的には、図１４に示すように、ｎｏｄｅ１の同期制御部２５４は、自装置におけるワークスペース定義ファイル１００の変更後と変更前との差分を示す変更情報データ１０２を、ワークスペースＷＳに参加している他のｎｏｄｅの各々へ送信（たとえば、マルチキャスト送信）する。なお、このワークスペースＷＳに参加しているｎｏｄｅは、接続テーブル１６０を参照することで特定される。
【００８０】
図１４に示す変更情報データ１０２の内容の一例としては、行頭に「−」の記号を付した削除行指示１０４と、行頭に「＋」の記号を付した追加行指示１０６とを含む。この削除行指示１０４は、現在のワークスペース定義ファイル１００から削除すべき内容を示し、追加行指示１０６は、現在のワークスペース定義ファイル１００に追加すべき内容を示す。
【００８１】
なお、この変更情報データ１０２には、当該変更情報データ１０２の送信元および送信先と特定するための情報（図示しない）も併せて付加される。
【００８２】
この変更情報データ１０２を受信したｎｏｄｅ２およびｎｏｄｅ３は、この変更情報データ１０２に基づいて、各自のデータ格納部２６２に格納されたワークスペース定義ファイル１００の内容を変更する。この結果、図１５に示すように、ワークスペースＷＳに参加しているすべてのｎｏｄｅで変更後のワークスペース定義ファイル１００が共通に保持されるようになる。
【００８３】
以下、いずれのｎｏｄｅにおいてユーザがなされたとしても、上述と同様の同期処理が実行される。
【００８４】
＜共同作業モードから個人作業モードへの切替時における処理＞
次に、各ｎｏｄｅにおいて、共同作業モードから個人作業モードへの切替えられた場合の処理について説明する。
【００８５】
共同作業モードから個人作業モードへ切替えられると、各ｎｏｄｅのオブジェクト属性管理部２５０Ｂ（図１０）は、共同作業モードにおいて作成済のオブジェクトを保護（読出専用）し、かつ個人作業モードから共同作業モードへ復帰した際の同期処理を容易化するために、ワークスペース定義ファイル１００をコピーして、個人作業モードでの操作を反映するためのワークスペース定義ファイル（ローカル）１００Ａ（図９）を生成する。
【００８６】
図１６は、図８に示すワークスペース定義ファイル１００に対応するワークスペース定義ファイル（ローカル）１００Ａの内容の一例を示す図である。
【００８７】
図１６を参照して、生成直後のワークスペース定義ファイル（ローカル）１００Ａは、元のワークスペース定義ファイル１００の内容と実質的に同一であるが、個人作業モードで用いられることを示すために、ワークスペースタグ１１０Ａにおいて、「mode="local"」という属性が付加されている。
【００８８】
＜個人作業モードにおける処理＞
次に、各ｎｏｄｅにおける個人作業モードにおける処理について説明する。なお、以下の説明では、ｎｏｄｅ１〜ｎｏｄｅ３のいずれもが個人作業モードに移行し、ｎｏｄｅ１〜ｎｏｄｅ３では、それぞれ図４〜図６に示すような操作がなされたものとする。
【００８９】
（１．オブジェクトＯＢＪ１の変更操作）
図４に示すように、ｎｏｄｅ１のユーザＡが、ワークスペースＷＳ上に配置されていたオブジェクトＯＢＪ１（実際は、実体ファイル１２０として保持される文書ファイル「salesplan.doc」）の内容を変更する場合を考える。なお、このオブジェクトＯＢＪ１は、共有作業モードにおいて作成済であったので、共有オブジェクトとして取扱われ、ｎｏｄｅ１のユーザＡによる個人的な変更は許可されない。そのため、ｎｏｄｅ１のユーザＡが入力装置２０９（図２）を操作してオブジェクトＯＢＪ１を選択すると、ｎｏｄｅ１の派生制御部２５０Ｄ（図９）は、ｎｏｄｅ１のデータ格納部２６２に格納されていた文書ファイル「salesplan.doc」をコピーして、ファイル名「salesplan.doc.local」という文書ファイルを生成する。なお、この文書ファイルは、一時的に生成されるものであり、代表的にメモリ部２１３（図２）に格納される。
【００９０】
（２．実体ファイル（ローカル）の生成およびリンクリストの更新）
ｎｏｄｅ１のユーザＡがオブジェクトＯＢＪ１に対する何らかの変更を行ない、当該変更内容の保存を指示すると、ｎｏｄｅ１の派生制御部２５０Ｄは、変更後の文書ファイル（salesplan.doc.local）を、実体ファイル（ローカル）１２０Ａ（図９）としてデータ格納部２６２に格納する。このとき、他のｎｏｄｅにおいて変更されたオブジェクトＯＢＪ１との間で識別可能となるように、一意のファイル名が付加される。たとえば、「salesplan.doc.pc1」といったファイル名が用いられる。
【００９１】
また、リンクリスト管理部２５０Ｃ（図９）は、「salesplan.doc.pc1」というファイル名をもつ実体ファイル（ローカル）１２０Ａが派生したことを、オブジェクトＯＢＪ１に対応するリンクリスト１４０に記述する。
【００９２】
図１７は、この発明の実施の形態に従うリンクリスト１４０の更新後の内容の一例を示す図である。
【００９３】
図１７（ａ）を参照して、リンクリスト管理部２５０Ｃは、オブジェクトＯＢＪ１のリンク情報として、ファイル名が「salesplan.doc」である実体ファイルのエントリに加えて、新たに生成されたファイル名が「salesplan.doc.pc1」である実体ファイルのエントリを追加する。ここで、リンクリスト管理部２５０Ｃは、他の実体ファイルとの間で一意である識別番号（この例では、「OW25」）を付加する。
【００９４】
（３．ワークスペース定義ファイル（コピー）の更新）
上述した実体ファイルの生成に伴って、ワークスペース定義ファイル（コピー）１００Ａの記述内容についても更新が行なわれる。
【００９５】
より具体的には、オブジェクト属性管理部２５０Ｂ（図２）は、ワークスペース定義ファイル（ローカル）１００Ａに、ユーザＡにより生成された実体ファイル（salesplan.doc.pc1）をリンクアドレスとするオブジェクトＯＢＪ１Ａの記述を追加する。
【００９６】
図１８は、図１７（ａ）に示す実体ファイルの生成に伴って追加されるオブジェクトＯＢＪ１Ａの記述１４１の一例を示す図である。
【００９７】
図１８を参照して、オブジェクト属性管理部２５０Ｂ（図２）は、オブジェクトＯＢＪ１Ａに対応する記述１４１をワークスペース定義ファイル（ローカル）１００Ａに追加する。この記述１４１には、局所オブジェクトであることを示す<localObject/>タグが付加される。そして、<object id>タグにおいて、識別番号が「OW25」であることが定義され、<type>タグにおいて、ファイルオブジェクトであることを示す「file」が定義される。さらに、<point>タグにおいて、x='100' y='300'の位置に配置されることが定義され、<src>タグにおいて、実体のファイルを特定する「salesplan.doc.pc1」が定義され、<user>タグにおいて、オブジェクトＯＢＪ１Ａのオーナーが「ユーザＡ」であることが定義される。
【００９８】
なお、図１８に示す例では、派生元の共有オブジェクトＯＢＪ１の配置位置と同じ位置にオブジェクトＯＢＪ１Ａが配置されるので、以下に述べるように、両者が互いに重複して表示されないように、派生元の共有オブジェクトＯＢＪ１をワークスペースＷＳ上に表示されないように変更される。
【００９９】
図１９は、図１７（ａ）に示す実体ファイルの生成に伴って変更される共有オブジェクトＯＢＪ１の記述１２１の一例を示す図である。
【０１００】
図１９を参照して、オブジェクト属性管理部２５０Ｂは、ワークスペース定義ファイル（ローカル）１００Ａ中の共有オブジェクトＯＢＪ１に対応する記述１２１に対して、当該オブジェクトが不可視であることを示す<invisible/>タグを付加する。この<invisible/>タグの付加によって、共有オブジェクトＯＢＪ１は、レンダリングの対象から除外される。
【０１０１】
図２０は、この発明の実施の形態に従うワークスペース定義ファイル（コピー）の更新処理によって生成されるワークスペース定義ファイル１００の内容の一例を示す図である。上述のようなワークスペース定義ファイル（コピー）の更新処理によって、図２０に示すようなワークスペース定義ファイル（ローカル）１００Ａが生成される。
【０１０２】
図２０に示すワークスペース定義ファイル（ローカル）１００Ａでは、図８に示す個人作業モードへの切替直前のワークスペース定義ファイル１００に比較して、ワークスペースタグ１１０および記述１２１の内容が変更され、かつオブジェクトＯＢＪ１Ａに対応する記述１４１が追加されている。
【０１０３】
（４．オブジェクト同士の関連付け処理（その１））
ｎｏｄｅ２のユーザＢについても、上述したｎｏｄｅ１のユーザＡと同様に、ワークスペースＷＳ上に配置されていたオブジェクトＯＢＪ１の内容を変更したとする（図５参照）。なお、ｎｏｄｅ２では、上述したｎｏｄｅ１と同様に、文書ファイル「salesplan.doc」から実体ファイル（ローカル）１２０Ａ（salesplan.doc.pc2）が生成されるとともに、リンクリスト１４０の内容が更新される（図１７（ｂ）参照）。これらの処理の詳細については、上述したｎｏｄｅ１と同様であるので繰り返さない。
【０１０４】
このとき、変更したオブジェクトＯＢＪ１に関して、メッセージ（コメント）、矢印、画像などのオブジェクトを追加したい場合もある。そして、このようなオブジェクトは、オブジェクトＯＢＪ１Ｂに関連付けておくことが好ましい。なお、関連付けるとは、オブジェクトＯＢＪ１Ｂの移動や削除などを行った場合には、関連付けられたオブジェクトも同時に移動や削除されることを意味する。なお、通常、関連付けられたオブジェクトが削除されたとしても、参照元のオブジェクトＯＢＪ１Ｂは削除されない。
【０１０５】
このようなオブジェクト同士の関連付け処理（その１）について以下説明する。なお、オブジェクト同士の関連付け処理（その１）では、ユーザが任意に指定したオブジェクトと局所オブジェクトとを関連付ける、いわゆる手動操作の処理である。
【０１０６】
再度、図５を参照して、ｎｏｄｅ２のユーザＢが文書ファイル「salesplan.doc」を変更するとともに、この文書ファイルに関して、「コメントは３点」というメッセージ（オブジェクトＯＢＪ１Ｂｔ）を作成した場合について説明する。
【０１０７】
ｎｏｄｅ２のユーザＢは、このメッセージの作成前に、関連付け対象であるオブジェクトＯＢＪ１Ｂを選択（指定）することで、ワークスペース定義ファイル（ローカル）１００Ａの記述内容についての更新が行なわれ、メッセージ（局所オブジェクト）を関連付けることができる。
【０１０８】
図２１は、図５に示すオブジェクトＯＢＪ１Ｂの作成に伴って、ワークスペース定義ファイル（ローカル）１００Ａに追加される記述１４３の一例を示す図である。図２２は、図５に示すオブジェクトＯＢＪ１Ｂｔの新規作成に伴って、ワークスペース定義ファイル（ローカル）１００Ａに追加される記述１４２の一例を示す図である。
【０１０９】
まず、ｎｏｄｅ２のオブジェクト属性管理部２５０Ｂ（図２）は、ｎｏｄｅ２のデータ格納部２６２に格納されているワークスペース定義ファイル（ローカル）１００Ａに、図２１に示すような、ユーザＢにより生成された実体ファイル（salesplan.doc.pc2）をリンクアドレスとするオブジェクトＯＢＪ１Ｂの記述１４３を追加する。なお、この時点では、タグ１４３Ａの記述は存在しない。
【０１１０】
続いて、ｎｏｄｅ２のユーザＢがオブジェクトＯＢＪ１Ｂを選択した上で、「コメントは３点」というメッセージ（オブジェクトＯＢＪ１Ｂｔ）を新規作成すると、ｎｏｄｅ２のオブジェクト属性管理部２５０Ｂ（図２）は、ｎｏｄｅ２のデータ格納部２６２に格納されているワークスペース定義ファイル（ローカル）１００Ａに、図２２に示すような、オブジェクトＯＢＪ１Ｂｔを定義する記述１４２を追加する。さらに、このオブジェクトＯＢＪ１Ｂｔの識別番号（object id）である「NJ45」をキーにして、オブジェクトＯＢＪ１Ｂの記述１４３に両オブジェクトの関連付けを記述する<relation>タグ１４３Ａが追加される。
【０１１１】
このような処理によって、オブジェクトＯＢＪ１Ｂ（記述１４３）には、オブジェクトＯＢＪ１Ｂｔ（記述１４２）が関連付けられていると判断することができる。
【０１１２】
（５．オブジェクト同士の関連付け処理（その２））
上述のオブジェクト同士の関連付け処理（その１）では、ユーザが任意に選択したオブジェクトとの間で関連付けがなされる構成について例示したが、自動的にオブジェクト同士の関連付け処理を行なうようにしてもよい。以下、オブジェクト同士の関連付け処理（その２）では、このようなオブジェクト同士が自動的に関連付けられる構成について例示する。
【０１１３】
一例として、ｎｏｄｅ３のユーザＣについても、上述したｎｏｄｅ１のユーザＡと同様に、ワークスペースＷＳ上に配置されていたオブジェクトＯＢＪ１の内容を変更したとする（図６参照）。なお、ｎｏｄｅ３では、上述したｎｏｄｅ１と同様に、文書ファイル「salesplan.doc」から実体ファイル（ローカル）１２０Ａ（salesplan.doc.pc3）が生成されるとともに、リンクリスト１４０の内容が更新される（図１７（ｃ）参照）。これらの詳細については、上述したｎｏｄｅ１と同様であるので繰り返さない。
【０１１４】
再度、図６を参照して、さらに、ｎｏｄｅ３のユーザＣが文書ファイル「salesplan.doc」を変更するとともに、この文書ファイル（オブジェクトＯＢＪ１Ｃ）に近接した位置に、「修正済み」というメッセージ（オブジェクトＯＢＪ１Ｃｔ）を作成した場合について説明する。
【０１１５】
図２３は、この発明の実施の形態に従うオブジェクト同士の関連付け処理（その２）の概要を説明するための図である。図２４は、図６に示すオブジェクトＯＢＪ１Ｃの作成に伴って、ワークスペース定義ファイル（ローカル）１００Ａに追加される記述１４５の一例を示す図である。図２５は、図６に示すオブジェクトＯＢＪ１Ｃｔの作成に伴って、ワークスペース定義ファイル（ローカル）１００Ａに追加される記述１４４の一例を示す図である。
【０１１６】
図２３を参照して、ｎｏｄｅ３では、ユーザＣにより新規作成されたメッセージ（オブジェクトＯＢＪ１Ｃｔ）の配置位置が既に配置されているいずれかの局所オブジェクトまたは共有オブジェクトの配置位置から所定距離ＡＰＲ内にあるか否かを判断し、新規作成されたメッセージがその所定距離ＡＰＲ内にあり、かつその距離が最も小さい局所オブジェクトまたは共有オブジェクトを参照元のオブジェクトと決定する。なお、所定距離内であるか否かの判断は、ワークスペース定義ファイル（ローカル）１００Ａに記述された各オブジェクトの<point>タグの属性値（座標位置）に基づいて判断される。
【０１１７】
図２３に示す例では、オブジェクトＯＢＪ１Ｃｔは、オブジェクトＯＢＪ１Ｃから所定距離ＡＰＲ内にあるので、オブジェクトＯＢＪ１Ｃと関連付けるべきものと判断される。
【０１１８】
ｎｏｄｅ３のユーザＣが共有オブジェクトＯＢＪ１に対して変更操作を行なうと、ｎｏｄｅ３のオブジェクト属性管理部２５０Ｂ（図２）は、ｎｏｄｅ３のデータ格納部２６２に格納されているワークスペース定義ファイル（ローカル）１００Ａに、図２４に示すような、ユーザＣにより生成された実体ファイル（salesplan.doc.pc3）をリンクアドレスとするオブジェクトＯＢＪ１Ｃの記述１４５を追加する。なお、この時点では、タグ１４５Ａの記述は存在しない。
【０１１９】
続いて、ｎｏｄｅ３のユーザＣがメッセージ（オブジェクトＯＢＪ１Ｃｔ）を新規作成し、図２３に示すように、この新規作成されたオブジェクトＯＢＪ１Ｃｔは、オブジェクトＯＢＪ１Ｃに関連付けるべきものと判断されると、ｎｏｄｅ３のオブジェクト属性管理部２５０Ｂ（図２）は、ｎｏｄｅ３のデータ格納部２６２に格納されているワークスペース定義ファイル（ローカル）１００Ａに、図２５に示すような、オブジェクトＯＢＪ１Ｃｔを定義する記述１４４を追加する。さらに、このオブジェクトＯＢＪ１Ｃｔの識別番号（object id）である「JK58」をキーにして、オブジェクトＯＢＪ１Ｃの記述１４５に両オブジェクトの関連付けを記述する<relation>タグ１４５Ａが追加される。
【０１２０】
このような処理によって、オブジェクトＯＢＪ１Ｃ（記述１４５）には、オブジェクトＯＢＪ１Ｃｔ（記述１４４）が関連付けられていると判断することができる。
【０１２１】
なお、オブジェクト同士の関連付け処理（その１）および同（その２）について説明したが、いずれか一方の処理のみを実装するようにしてもよく、あるいは両方の処理をユーザが任意に選択できるようにしてもよい。
【０１２２】
＜個人作業モードから共同作業モードへの切替時における処理＞
上述したように、個人作業モードでは、各ユーザが任意に個人的な作業を行なうことができる。その後、個人作業モードから共同作業モードへの切替が行なわれると、これらの各ユーザによる作業結果を反映したワークスペースを提供する必要がある。そこで、個人作業モードから共同作業モードへの切替が行なわれると、以下のような共同作業モード開始処理およびマージ処理が実行される。以下、これらの処理について説明する。
【０１２３】
（１．共同作業モード開始処理）
図２６は、この発明の実施の形態に従う共同作業モードの開始処理を示すシーケンス図である。なお、図２６に示すシーケンス図は、共同作業モードが開始されていない状態において、ｎｏｄｅ１およびｎｏｄｅ２において、個人作業モードから共同作業モードへの切替が指示された場合の処理例を示す。なお、共同作業モードは、２つ以上のｎｏｄｅの間で構成されるため、１つのｎｏｄｅにおいて個人作業モードから共同作業モードへの切替が指示されたとしても、個人作業モードが実質的に維持される。
【０１２４】
図２６を参照して、まず、個人作業モードから共同作業モードへの切替が指示されると、各ｎｏｄｅでは、通信ポートを受信可能状態に変更し、他のｎｏｄｅからのパケットの待ち状態になる（シーケンスＳＱ１００，ＳＱ１０２）。なお、この待ち状態を維持する期間（待機期間）は、ランダムに決定されてもよい。
【０１２５】
続いて、所定の待機期間が経過しても、他のｎｏｄｅから何らのパケットも受信できない場合には、再参加したいワークスペースの識別番号（space id）を用いて他のｎｏｄｅへ問い合わせを行なう（シーケンスＳＱ１０４）。図２６に示す例では、ｎｏｄｅ１がまず他のｎｏｄｅへの問い合わせを行なう。ここでは、他のｎｏｄｅが既にワークスペースに参加中であるか否かの問い合わせを行なう。なお、この問い合わせは、代表的に、マルチキャスト送信され、自ｎｏｄｅに近接した範囲のｎｏｄｅへ問い合わせが行なわれる。
【０１２６】
この問い合わせを受信したｎｏｄｅでは、「問い合わせを受けた識別番号（space id）のワークスペースに参加中」、「問い合わせの受けた識別番号（space id）のワークスペースには参加していない」、「問い合わせの受けた識別番号（space id）のワークスペースへの参加を待っている（＝待ち状態）」の３種類のうちいずれかを返答する。
【０１２７】
図２６の例では、ｎｏｄｅ２は、待ち中の識別番号（space id）を確認し（シーケンスＳＱ１０６）、受信した識別番号（space id）に対して、「問い合わせの受けた識別番号（space id）のワークスペースへの参加を待っている（＝待ち状態）」旨を応答する（シーケンスＳＱ１０８）。その後、ｎｏｄｅ２は、所定期間だけ待ち状態を維持する（シーケンスＳＱ１１０）。これは、応答先のｎｏｄｅから何らかの通知があるのを待つためである。
【０１２８】
さらに、ｎｏｄｅ１は、ｎｏｄｅ２から同じ識別番号（space id）のワークスペースへの参加を待っている状態であることを通知されると、共同作業モードを開始する（シーケンスＳＱ１１２）。続いて、ｎｏｄｅ１は、共同作業モード開始をｎｏｄｅ２を含む他のｎｏｄｅへ通知する（シーケンスＳＱ１１４）。この共同作業モード開始の通知を受けてｎｏｄｅ２も共同作業モードを開始する（シーケンスＳＱ１１６）。
【０１２９】
なお、シーケンスＳＱ１０８において、いずれかのｎｏｄｅから「問い合わせを受けた識別番号（space id）のワークスペースに参加中」旨の応答を受信すると、当該応答の送信元との間で通信を行なって、共同作業モードを開始する。この場合には、シーケンスＳＱ１１４の処理は行なわれず、既にワークスペースに参加している全ｎｏｄｅとの間で順次通信を行なう。すなわち、いずれかのｎｏｄｅにおいて個人作業モードから共同作業モードへの切替指示が与えられた際に、すでに他の複数のｎｏｄｅの間で共同作業モードが開始されている場合には、このような処理が実行される。
【０１３０】
このように、共同作業モードが開始されると、後述するような、ｎｏｄｅ間でワークスペース定義ファイルのマージ処理が実行される。
【０１３１】
（２．マージ処理）
本実施の形態に従うワークスペースでは、基本的に２つのｎｏｄｅ間でマージ処理が実行される。すなわち、３つ以上のｎｏｄｅが共通のワークスペース参加している場合であっても、まず２つのｎｏｄｅの間でマージ処理が実行され、さらに当該マージ処理を行なったいずれかのｎｏｄｅとそれ以外のｎｏｄｅとの間でさらにマージ処理が実行される。このように、２つのｎｏｄｅの間でマージ処理が順次実行されることで、ワークスペースに参加しているｎｏｄｅの数が多くなった場合であっても、各ユーザによる個人作業の結果を共通のワークスペースに反映させることができる。
【０１３２】
本実施の形態に従うマージ処理では、いずれか一方のｎｏｄｅが「マージ親」となり、他方のｎｏｄｅが「マージ子」となる。基本的に「マージ親」となったｎｏｄｅが主体的にマージ処理を実行する。そして、マージ処理によって生成されたワークスペース定義ファイルは、「マージ親」となったｎｏｄｅから「マージ子」となったｎｏｄｅへ配布される。
【０１３３】
（２−１．同期処理）
図２７は、この発明の実施の形態に従うマージ処理を含む全体処理を示すシーケンス図である。なお、図２７のシーケンスＳＱ１００〜ＳＱ１１６の処理については、図２６に示す処理と同様であるので、詳細な説明は繰り返さない。
【０１３４】
図２７に示す例では、他のｎｏｄｅへの問い合わせ（シーケンスＳＱ１０４）を先に実行したｎｏｄｅ１が「マージ親」となり、これに応答したｎｏｄｅ２が「マージ子」となる場合を示す。
【０１３５】
まず、「マージ子」であるｎｏｄｅ２は、自ｎｏｄｅのデータ格納部２６２に保持しているリンクリスト１４０を「マージ親」であるｎｏｄｅ１へ送付する（シーケンスＳＱ２０２）。ｎｏｄｅ１は、ｎｏｄｅ２から受信したリンクリストと自ｎｏｄｅのデータ格納部２６２に保持しているリンクリスト１４０とを比較し、自ｎｏｄｅのリンクリスト１４０の更新・追加を行なう（シーケンスＳＱ２０４）。より具体的には、自ｎｏｄｅのリンクリスト１４０に存在しないエントリが他ｎｏｄｅから受信したリンクリスト１４０にふくまれている場合には、当該エントリを自ｎｏｄｅのリンクリスト１４０に追加する。なお、「マージ親」であるｎｏｄｅ１が保持していないオブジェクトが新規に生成されていた場合には、ｎｏｄｅ１は当該オブジェクトについてのリンクリストを保持していないので、「マージ子」であるｎｏｄｅ２から送信されたリンクリストをそのまま格納する。
【０１３６】
同様に、ｎｏｄｅ１は、自ｎｏｄｅのデータ格納部２６２に保持しているリンクリスト１４０を「マージ子」であるｎｏｄｅ２へ送付する（シーケンスＳＱ２０６）。ｎｏｄｅ２は、ｎｏｄｅ１から受信したリンクリストと自ｎｏｄｅのデータ格納部２６２に保持しているリンクリスト１４０とを比較し、自ｎｏｄｅのリンクリスト１４０の更新・追加を行なう（シーケンスＳＱ２０８）。これにより、「マージ親」および「マージ子」が共に保持しているオブジェクトに対する変更内容が共有される。
【０１３７】
図２８は、図１７に示すｎｏｄｅ１〜ｎｏｄｅ３の間で同期がなされた後のリンクリスト１４０の内容の一例を示す図である。図２８を参照して、各ｎｏｄｅにおいて、リンクリスト１４０に追加された内容（エントリ）が順次追加されることで、各ｎｏｄｅでは、
すべてのエントリの内容を含む（マージされた）リンクリストが生成される。
【０１３８】
再度、図２７を参照して、ｎｏｄｅ１は、更新・追加後のリンクリスト１４０を参照して、自ｎｏｄｅのデータ格納部２６２に保持していないオブジェクト（実体ファイル）の送付依頼をｎｏｄｅ２へ送信する（シーケンスＳＱ２１０）。この送付依頼に応答して、ｎｏｄｅ２は、指定されたオブジェクト（実体ファイル）をｎｏｄｅ１へ送付する（シーケンスＳＱ２１２）。そして、ｎｏｄｅ１は、ｎｏｄｅ２から送付されたオブジェクト（実体ファイル）を自ｎｏｄｅのデータ格納部２６２に格納する。
【０１３９】
同様に、ｎｏｄｅ２は、更新・追加後のリンクリスト１４０を参照して、自ｎｏｄｅのデータ格納部２６２に保持していないオブジェクト（実体ファイル）の送付依頼をｎｏｄｅ１へ送信する（シーケンスＳＱ２１４）。この送付依頼に応答して、ｎｏｄｅ１は、指定されたオブジェクト（実体ファイル）をｎｏｄｅ２へ送付する（シーケンスＳＱ２１６）。そして、ｎｏｄｅ２は、ｎｏｄｅ１から送付されたオブジェクト（実体ファイル）を自ｎｏｄｅのデータ格納部２６２に格納する。
【０１４０】
このような処理によって、新規作成されたオブジェクトおよび変更が加えられたオブジェクトのいずれについても、ｎｏｄｅ１とｎｏｄｅ２との間で同期が取れたことになる。
【０１４１】
さらに、ｎｏｄｅ１は、ワークスペース定義ファイル（ローカル）１００Ａの送付依頼をｎｏｄｅ２へ送信する（シーケンスＳＱ２１８）。この送付依頼に応答して、ｎｏｄｅ２は、自ｎｏｄｅのデータ格納部２６２に保持しているワークスペース定義ファイル（ローカル）１００Ａをｎｏｄｅ１へ送付する（シーケンスＳＱ２２０）。
【０１４２】
「マージ親」であるｎｏｄｅ１は、自ｎｏｄｅのワークスペース定義ファイル（ローカル）１００Ａに、「マージ子」であるｎｏｄｅ２のワークスペース定義ファイル（ローカル）１００Ａに含まれるオブジェクト定義を追加する。ここで追加されるオブジェクト定義は、「マージ親」であるｎｏｄｅ１のワークスペース定義ファイル（ローカル）１００Ａに存在しないオブジェクトの記述である。なお、変更操作は、すべて別のオブジェクト（局所オブジェクト）と見なされるため、「マージ子」であるｎｏｄｅ２において変更された内容は、「マージ親」であるｎｏｄｅ１において認識されていないオブジェクト定義となる。
【０１４３】
さらに、「マージ親」であるｎｏｄｅ１は、自ｎｏｄｅのワークスペース定義ファイル（ローカル）１００Ａの内容を精査して、ワークスペース上の位置調整および紐付け処理を実行する（シーケンスＳＱ２２２およびＳＱ２２４）。
【０１４４】
（２−２．ワークスペース上の位置調整）
図２７のシーケンスＳＱ２２２に示される「ワークスペース上の位置調整」について説明する。
【０１４５】
上述したように、各ｎｏｄｅでは、共有オブジェクトを保護しつつ、変更された共有オブジェクトについては局所オブジェクトを派生させた。これらの局所オブジェクトのワークスペース上の配置位置は、共有オブジェクトのそれと同じに設定されているので、これらの局所オブジェクトを反映させる場合には、各局所オブジェクトを派生元の共有オブジェクトとは同一ではないが、近接した位置に配置する必要がある。「ワークスペース上の位置調整」では、このような処理を実行する。
【０１４６】
たとえば、共有オブジェクトＯＢＪ１（salesplan.doc）についてのリンクリスト１４０に記載されているエントリのうち、「salesplan.doc」を除く局所オブジェクトの配置位置を変更する処理について例示する。
【０１４７】
まず、ワークスペース定義ファイル（ローカル）１００Ａ中から、オブジェクトの識別番号（object id）に基づいて該当するオブジェクトの記述を探索し、各記述中の<point>タグの値を適切な位置を示す座標値に変更する。このとき、各オブジェクトの配置位置は認定に設定することが可能であるが、共有オブジェクトである「salesplan.doc」とは同一ではないが、近接した位置にすることが好ましい。
【０１４８】
このように各オブジェクトの位置を変更した後、ワークスペース定義ファイル（ローカル）１００Ａにおいて、共有オブジェクトに付加されていた<invisible/>タグが削除される。
【０１４９】
なお、「salesplan.doc」を除く局所オブジェクトについては、ワークスペース上で、より薄い色で表示されていてもよいし、重なって表示されていてもよいし、３Ｄ上に立体で表示されていてもよい。
【０１５０】
「salesplan.doc」を除く局所オブジェクトのそれぞれは、共有オブジェクトである「salesplan.doc」から派生しているオブジェクトなので、後述するように、このよう派性関係を視覚的に表示する。
【０１５１】
さらに、新たに追加されたオブジェクトの位置関係を最適化する。なお、新たに追加されたオブジェクトとは、「マージ親」から見た場合に新たに追加されたオブジェクトを意味し、言い換えれば、「マージ子」において新たに追加されたオブジェクト（但し、共有オブジェクトから派生した局所オブジェクトではない）を意味する。この新たに追加されたオブジェクトを配置する位置としては、ワークスペース上に既に配置されているいずれかのオブジェクトとは同一ではなく、かつ「マージ子」において定義されていた位置と近接した位置にすることが好ましい。
【０１５２】
なお、以上述べた処理は、（１）「マージ親」において記述されていた各オブジェクトの位置を変化させず、かつすべてのオブジェクトが極力重ならないようにする、（２）いずれかの共有オブジェクトから派生した局所オブジェクトについては、「マージ親」、「「マージ子」の順に派生元の共有オブジェクトに近接するように配置する、（３）「マージ子」において新たに追加されたオブジェクトは、「マージ子」においては位置された位置に近くなるように配置する、ということを示している。なお、「極力重ならないようにする」とは、１０回程度の試行でも重なってしまった場合は、無視しておいてしまうということである。
【０１５３】
（２−３．ワークスペース上の紐付け処理）
上述の「salesplan.doc」を除く局所オブジェクトについては、すべて局所オブジェクトであるので、ワークスペース上でその派生関係を「紐付け」によって表現する（図７のオブジェクトＯＢＪ１Ａｓ，ＯＢＪ１Ｂｓ，ＯＢＪ１Ｂｓ）。
【０１５４】
すなわち、ワークスペース定義ファイルにこの「紐付け」を示すオブジェクトの記述を追加する。具体的には、リンクリスト１４０を参照して、共有オブジェクトと派生した局所オブジェクトとの対応関係を抽出し、さらに各対応関係について、共有オブジェクトの座標（<point>タグの値）と局所オブジェクトの座標（<point>タグの値）とを結ぶ紐付けオブジェクト（string）を追加する。
【０１５５】
図２９は、この発明の実施の形態に従う紐付けオブジェクトの記述１５２の一例を示す図である。図２９を参照して、たとえば、オブジェクトＯＢＪ１Ａｓ（図７）に対応する記述１５２には、<object id>タグにおいて、識別番号が「ML38」であることが定義され、<type>タグにおいて、紐付けオブジェクトであることを示す「string」が定義される。さらに、<colour>タグにおいて、紐付けに用いる色が定義され、<point>タグにおいて、紐付けすべき座標が定義され、<wireSize>タグにおいて、線の太さが定義される。
【０１５６】
なお、図２９に示す記述１５２では、<colour>タグにユーザ名である「ユーザＡ」が定義されている。これは、予めユーザ別に用いる色が定義されており、このユーザ名により、予め定義された色が指定される。
【０１５７】
図３０は、この発明の実施の形態に従うユーザ色情報を定義する記述１６１の一例を示す図である。図３０を参照して、たとえば、「ユーザＡ」には、赤色を示すカラーコード「＃ＦＦ０００００」という値が対応付けて定義されており、「ユーザＢ」には、青色を示すカラーコード「＃０００００ＦＦ」という値が対応付けて定義されている。なお、このようなカラーコードに代えて、一般的な色名（red,blue,green）などを用いてもよい。この図３０に示すユーザ色情報を参照して、図２９に示す各紐付けオブジェクトの色が判断される。なお、図２９に示す<colour>タグにおいて、色を直接定義するようにしてもよい。
【０１５８】
また、図２９に示す<wireSize>タグには、予め定められた規定値を設定するようにしてもよいし、あるいは各紐付けオブジェクトに応じた値（太さ）を設定してもよい。この各紐付けオブジェクトに応じた値（太さ）は、ユーザ別に規定してもよいし、あるいは対応する共有オブジェクトと局所オブジェクトとの積に基づいて定めてもよい。
【０１５９】
（２−４．配布処理）
再度、図２７を参照して、「マージ親」であるｎｏｄｅ１は、ワークスペース上の位置調整および紐付け処理の結果得られたワークスペース定義ファイル（ローカル）１００Ａを、新たなワークスペース定義ファイル１００として上書きし、当該ワークスペース定義ファイル（ローカル）１００Ａを削除する。
【０１６０】
さらに、ｎｏｄｅ１は、ワークスペース定義ファイル１００をｎｏｄｅ２へ送付する（シーケンスＳＱ２２６）。ｎｏｄｅ２は、ｎｏｄｅ１から送付されたワークスペース定義ファイル１００で自ｎｏｄｅのデータ格納部２６２に格納しているワークスペース定義ファイル１００を上書きする。そして、ｎｏｄｅ２は、自ｎｏｄｅのワークスペース定義ファイル（ローカル）１００Ａを削除する。
【０１６１】
以上で、ｎｏｄｅ１とｎｏｄｅ２との間で、「ワークスペース定義ファイル」、「実体ファイル」、「リンクリスト」についての同期をとることができる。同様の処理手順によって、ｎｏｄｅ１〜ｎｏｄｅ３の間で、「ワークスペース定義ファイル」、「実体ファイル」、「リンクリスト」についての同期をとることができる。
【０１６２】
図３１および図３２は、図７に示すワークスペースに対応するワークスペース定義ファイル１００の内容の一例を示す図である。上述のように、ｎｏｄｅ１〜ｎｏｄｅ３の間で同期処理が実行されることで、図３１および図３２に示すような、各ｎｏｄｅにおける個人作業の結果を反映したワークスペース定義ファイルが生成される。
【０１６３】
上述のような処理によって、個人作業モードから共同モードへ移行した場合に、図７に示すようなワークスペースＷＳが表示させることができる。なお、図７に示すワークスペースＷＳにおいて、カーソルを紐付けオブジェクトに移動させると、リンクリスト１４０に基づく情報が表示されるようにしてもよいし、あるいはユーザ名が表示されるようにしてもよい。さらに、派生元である共有オブジェクトと、各局所オブジェクトとの相違点を表示するようにしてもよい。
【０１６４】
また、共有オブジェクトまたは対応する局所オブジェクトをワークスペースＷＳ上で移動させた場合には、紐付けオブジェクトについてもその移動に合わせて移動するように表示される。これは、紐付けオブジェクトの定義に含まれる<point>タグの値を移動量に応じて更新することで提供される。
【０１６５】
このような同期処理完了後、局所オブジェクトは、局所オブジェクトのまま取り扱われてもよいが、共同作業モード時に、ユーザ間で実際に協議をしながら作業を進め、必要に応じて共有オブジェクトに変更される。この場合には、ワークスペース定義ファイル中の当該局所オブジェクトを定義する記述から、<localObject/>タグが取り除かれる。なお、局所オブジェクトから共有オブジェクトへの変更操作は、ワークスペースＷＳに参加している全ユーザが視認できるようにすることが好ましい。
【０１６６】
また、共有作業モードでは、共有オブジェクトおよび局所オブジェクトのいずれについても、全ユーザが変更可能であることが好ましい。あるいは、共有オブジェクトについては全ユーザが変更可能とし、局所オブジェクトについては作成したユーザのみが変更可能としてもよい。
【０１６７】
＜処理手順＞
以上説明した内容を実現するための処理手順について説明する。
【０１６８】
図３３は、この発明の実施の形態１に従う全体処理手順を示すフローチャートである。図３３に示す各処理手順は、代表的に、情報処理装置ＰＣのＣＰＵ２０１（図２）がプログラムを実行することで提供される。なお、図３３に示す処理は、定周期（たとえば、数１０〜数１００ｍｓｅｃ）で繰り返し実行される。
【０１６９】
図３３を参照して、ユーザによる入力装置２０９の操作によって、共同作業モードと個人作業モードとの間の切替指示が与えられたか否かを判断する（ステップＳ１）。共同作業モードと個人作業モードとの間の切替指示が与えられていない場合（ステップＳ１においてＮＯの場合）には、処理はステップＳ３へ進む。
【０１７０】
一方、共同作業モードと個人作業モードとの間の切替指示が与えられた場合（ステップＳ１においてＹＥＳの場合）には、図３４に示すモード切替処理が実行される（ステップＳ２）。このモード切替処理の後、処理はステップＳ３へ進む。
【０１７１】
ステップＳ３では、図３６などに示すワークスペース処理が実行される。
図３４は、図３３のステップＳ２に示すモード切替処理の処理手順を示すフローチャートである。なお、図３４に示す処理手順は、サブルーチンとして提供される。
【０１７２】
図３４を参照して、まず、自装置における「モード状態」の値を取得する（ステップＳ２１）。なお、この「モード状態」の値は、メモリ部２１３もしくはハードディスク部（ＨＤＤ）２１１（図２）に保持されている。続いて、取得した「モード状態」が「共同作業モード」であるか否かが判断される（ステップＳ２２）。
【０１７３】
取得した「モード状態」が「共同作業モード」である場合（ステップＳ２２においてＹＥＳの場合）には、個人作業モードへの切替処理として、メモリ部２１３もしくはハードディスク部（ＨＤＤ）２１１（図２）に保持されている「モード状態」の値を「個人作業モード」に変更する（ステップＳ２３）。そして、処理はリターンする。
【０１７４】
一方、取得した「モード状態」が「共同作業モード」でない場合（ステップＳ２２においてＮＯの場合）には、図３５に示す共同作業モードへの切替処理を実行する（ステップＳ２４）。この共同作業モードへの切替処理の実行後、処理はリターンする。
【０１７５】
図３５は、図３４のステップＳ２４に示す共同作業モードへの切替処理の処理手順を示すフローチャートである。なお、図３５に示す処理手順は、サブルーチンとして提供される。
【０１７６】
図３５を参照して、まず、通信ポートを受信可能状態にする（ステップＳ２４１）。続いて、ワークスペースの識別番号（space id）を用いた問い合わせを他のｎｏｄｅから受信したか否かを判断する（ステップＳ２４２）。
【０１７７】
ワークスペースの識別番号（space id）を用いた問い合わせを他のｎｏｄｅから受信した場合（ステップＳ２４２においてＹＥＳの場合）には、当該問い合わせの送信元に応答を送信する（ステップＳ２４３）。そして、処理は、ステップＳ２４７へ進む。
【０１７８】
一方、ワークスペースの識別番号（space id）を用いた問い合わせを他のｎｏｄｅから受信しなかった場合（ステップＳ２４２においてＮＯの場合）には、ワークスペースの識別番号（space id）を用いた問い合わせをマルチキャスト送信する（ステップＳ２４４）。さらに、いずれかの他のｎｏｄｅから応答を受信したか否かを判断する（ステップＳ２４５）。いずれのｎｏｄｅからも応答を受信しなかった場合（ステップＳ２４５においてＮＯの場合）には、処理はステップＳ２４１へ戻る。
【０１７９】
これに対して、いずれかの他のｎｏｄｅから応答を受信した場合（ステップＳ２４５においてＹＥＳの場合）には、共同作業モードの開始をマルチキャスト送信する（ステップＳ２４６）。そして、処理はステップＳ２４７へ進む。
【０１８０】
ステップＳ２４７では、メモリ部２１３もしくはハードディスク部（ＨＤＤ）２１１（図２）に保持されている「モード状態」の値を「共同作業モード」に変更する。そして、処理はリターンする。
【０１８１】
図３６は、図３３のステップＳ３に示すワークスペース処理の処理手順を示すフローチャートである。なお、図３６に示す処理手順は、サブルーチンとして提供される。
【０１８２】
図３６を参照して、まず、自装置における「モード状態」の値を取得する（ステップＳ３１）。続いて、取得した「モード状態」が「共同作業モード」であるか否かが判断される（ステップＳ３２）。
【０１８３】
取得した「モード状態」が「共同作業モード」である場合（ステップＳ３２においてＹＥＳの場合）には、図３７に示す共同作業モード処理が実行される（ステップＳ３３）。そして、処理はリターンする。
【０１８４】
一方、取得した「モード状態」が「共同作業モード」でない場合（ステップＳ３２においてＮＯの場合）には、図３８に示す個人作業モード処理が実行される（ステップＳ３４）。そして、処理はリターンする。
【０１８５】
図３７は、図３６のステップＳ３３に示す共同作業モード処理の処理手順を示すフローチャートである。なお、図３７に示す処理手順は、サブルーチンとして提供される。
【０１８６】
図３７を参照して、ハードディスク部（ＨＤＤ）２１１（図２）に保持されているワークスペース定義ファイルを読出す（ステップＳ３３１）。続いて、ユーザ操作に応じて、図３９に示すオブジェクト操作を実行する（ステップＳ３３２）。
【０１８７】
さらに、このオブジェクト操作によって得られたワークスペース定義ファイルの内容をハードディスク部（ＨＤＤ）２１１に書込む（ステップＳ３３３）とともに、当該ワークスペース定義ファイル１００の情報のうち、ユーザにより指定される所定範囲に含まれる情報に基づいて、描画処理（レンダリング処理）を行なう（ステップＳ３３４）。さらに、ステップＳ３３５〜Ｓ３３８に示す同期処理を実行する。
【０１８８】
ステップＳ３３５では、前回の同期処理からワークスペース定義ファイルが変更されたか否かが判断される。前回の同期処理からワークスペース定義ファイルが変更されていない場合（ステップＳ３３５においてＮＯの場合）には、処理はステップＳ３３７へ進む。
【０１８９】
一方、前回の同期処理からワークスペース定義ファイルが変更された場合（ステップＳ３３５においてＹＥＳの場合）には、変更された部分を示す変更情報データ１０２を他のｎｏｄｅへマルチキャスト送信する（ステップＳ３３６）。そして、処理はステップＳ３３７へ進む。
【０１９０】
ステップＳ３３７では、ワークスペース定義ファイルの変更された部分を示す変更情報データ１０２を他のｎｏｄｅから受信したか否かを判断する（ステップＳ３３７）。変更情報データ１０２を他のｎｏｄｅから受信していない場合（ステップＳ３３７においてＮＯの場合）には、処理はリターンする。
【０１９１】
一方、変更情報データ１０２を他のｎｏｄｅから受信した場合（ステップＳ３３７においてＹＥＳの場合）には、当該変更情報データ１０２に基づいて、ハードディスク部（ＨＤＤ）２１１に格納されているワークスペース定義ファイル１００を更新する（ステップＳ３３８）。そして、処理はリターンする。
【０１９２】
図３８は、図３６のステップＳ３４に示す個人作業モード処理の処理手順を示すフローチャートである。なお、図３８に示す処理手順は、サブルーチンとして提供される。
【０１９３】
図３８を参照して、ハードディスク部（ＨＤＤ）２１１（図２）に保持されているワークスペース定義ファイルを読出す（ステップＳ３４１）。続いて、ユーザ操作に応じて、図３９に示すオブジェクト操作を実行する（ステップＳ３４２）。
【０１９４】
さらに、このオブジェクト操作によって得られたワークスペース定義ファイルの内容をハードディスク部（ＨＤＤ）２１１に書込む（ステップＳ３４３）とともに、当該ワークスペース定義ファイル１００の情報のうち、ユーザにより指定される所定範囲に含まれる情報に基づいて、描画処理（レンダリング処理）を行なう（ステップＳ３４４）。そして、処理はリターンする。
【０１９５】
図３９は、図３７のステップＳ３３２および／または図３８のＳ３４２に示すオブジェクト操作の処理手順を示すフローチャートである。なお、図３９に示す処理手順は、サブルーチンとして提供される。
【０１９６】
図３９を参照して、ユーザによる入力装置２０９の操作によって、操作指示が与えられたか否かを判断する（ステップＳ３５１）。操作指示が与えられていない場合（ステップＳ３５１においてＮＯの場合）には、処理はリターンする。
【０１９７】
一方、操作指示が与えられた場合（ステップＳ３５１においてＹＥＳの場合）には、当該操作指示がオブジェクトの作成指示であるか否かを判断する（ステップＳ３５２）。当該操作指示がオブジェクトの作成指示である場合（ステップＳ３５２においてＹＥＳの場合）には、当該作成指示に従って、オブジェクトを作成する（ステップＳ３５３）。そして、処理はリターンする。
【０１９８】
これに対して、当該操作指示がオブジェクトの作成指示でない場合（ステップＳ３５２においてＮＯの場合）には、自装置における「モード状態」の値を取得する（ステップＳ３５４）。続いて、取得した「モード状態」が「個人作業モード」であるか否かが判断される（ステップＳ３５５）。
【０１９９】
取得した「モード状態」が「個人作業モード」でない場合（ステップＳ３５５においてＮＯの場合）には、そして、処理はステップＳ３５７へ進む。
【０２００】
一方、取得した「モード状態」が「個人作業モード」である場合（ステップＳ３５５においてＹＥＳの場合）には、対象のオブジェクト（もしくは、実体ファイル）をコピーする（ステップＳ３５６）。そして、処理はステップＳ３５７へ進む。
【０２０１】
ステップＳ３５７では、ユーザからの操作指示に従って、対象のオブジェクトに対する変更操作（オブジェクトの移動・変更・削除・属性変更）を実行する。そして、処理はリターンする。
【０２０２】
＜本実施の形態の第１変形例＞
上述の実施の形態では、個人作業モードにおいて、いずれかの共有オブジェクトに対して変更がなされた場合には、当該共有オブジェクトを定義する記述に<invisible/>タグが付加され、当該共有オブジェクトが不可視になる構成について例示した。このような構成に代えて、共有オブジェクトおよび当該共有オブジェクトに対する変更操作によって生成される局所オブジェクトにいずれもがワークスペースＷＳ上に表示されるようにしてもよい。
【０２０３】
図４０は、この発明の実施の形態の第１変形例に従う個人作業モードから共同作業モードへ復帰した後の状態の一例を示す図である。図４０に示すように、たとえば、ｎｏｄｅ１を使用するユーザＡが、共同作業モードから個人作業モードへモード切替を行なった場合には、共有オブジェクトＯＢＪ１と自身の操作によって生成されたオブジェクトＯＢＪ１Ａとが近接して表示される。
【０２０４】
この場合には、当該共有オブジェクトを定義する記述に<invisible/>タグが付加されることなく、かつ共有オブジェクトから派生して生成された局所オブジェクトの配置される座標位置を派生元の共有オブジェクトとは同一ではないが近接した位置に設定する。
【０２０５】
このような処理を行なうことで、個人作業モードにおいても、共有オブジェクトと局所オブジェクトとが同一のワークスペースＷＳ上に表示される。
【０２０６】
なお、共有オブジェクトを可視化した状態で局所オブジェクトが作成され、その後共同作業モードから個人作業モードに復帰した場合には、他のｎｏｄｅにおいて作成された局所オブジェクトとその配置位置が重なることがあるので、このような場合には、上述した実施の形態と同様に、オブジェクト間の位置調整を行なう。
【０２０７】
＜本実施の形態の第２変形例＞
上述の実施の形態では、個人作業モードから共有作業モードに復帰すると、共有オブジェクトと派生した局所オブジェクトとの対応関係を紐付けオブジェクトを用いて視覚化する構成について例示した。このような構成に代えて、派生オブジェクトを共有オブジェクトより小さい表示サイズのアイコンを用いて局所オブジェクトの存在を視覚化してもよい。
【０２０８】
図４１は、この発明の実施の形態の第２変形例に従う個人作業モードから共同作業モードへ復帰した後の状態の一例を示す図である。図４１に示すように、個人作業モードから共有作業モードへ復帰した場合には、共有オブジェクトであるオブジェクトＯＢＪ１に近接して、派生したオブジェクトＯＢＪ１Ａ，ＯＢＪ１Ｂ，ＯＢＪ１ＣがそれぞれオブジェクトＯＢＪ１よりその表示サイズの小さなアイコンＩＣＯＮａ，ＩＣＯＮｂ，ＩＣＯＮｃとして表示される。
【０２０９】
さらに、図４１に示すようなワークスペースＷＳにおいて、ユーザがカーソルをアイコン上に移動させると、アイコンが拡大表示（オブジェクトＯＢＪ１Ａ）されるようにしてもよい。さらに、ユーザがカーソルをアイコン上に移動させると、リンクリスト１４０に基づく情報が表示されるようにしてもよいし、あるいはユーザ名が表示されるようにしてもよい。さらに、派生元である共有オブジェクトと、各局所オブジェクトとの相違点を表示するようにしてもよい。
【０２１０】
＜本実施の形態の第３変形例＞
上述の実施の形態では、個人作業モードから共有作業モードに復帰すると、共有オブジェクトと派生した局所オブジェクトとの対応関係を紐付けオブジェクトを用いて視覚化する構成について例示した。このような構成に代えて、派生オブジェクトを作成したユーザを識別可能なアイコンを用いて局所オブジェクトの存在を視覚化してもよい。
【０２１１】
図４２は、この発明の実施の形態の第３変形例に従う個人作業モードから共同作業モードへ復帰した後の状態の一例を示す図である。図４２に示すように、個人作業モードから共有作業モードへ復帰した場合には、共有オブジェクトであるオブジェクトＯＢＪ１に近接して、オブジェクトＯＢＪ１Ａ，ＯＢＪ１Ｂ，ＯＢＪ１Ｃを作成したユーザＡ，ユーザＢ，ユーザＣをそれぞれ示すアイコンＩＣＯＮ１，ＩＣＯＮ２，ＩＣＯＮ３が表示される。
【０２１２】
この場合には、予めユーザ別に用いるアイコンが定義されており、各局所オブジェクトの作成者に応じて、対応するアイコンが表示される。
【０２１３】
図４３は、この発明の実施の形態の第３変形例に従うユーザ別アイコンを定義する記述の一例を示す図である。図４３を参照して、たとえば、「ユーザＡ」に対応付けて「user_a_icon.jpg」というアイコンファイルが使用されることが定義されており、「ユーザＢ」に対応付けて「user_b_icon.jpg」というアイコンファイルが使用されることが定義されている。なお、このような記述は、ワークスペース定義ファイルに含められる。
【０２１４】
さらに、図４２に示すようなワークスペースＷＳにおいて、ユーザがカーソルをアイコン上に移動させると、当該アイコンに対応する局所オブジェクトが共有オブジェクトＯＢＪ１より前面に表示される。さらに、ユーザがカーソルをアイコン上に移動させると、リンクリスト１４０に基づく情報が表示されるようにしてもよいし、あるいはユーザ名が表示されるようにしてもよい。さらに、派生元である共有オブジェクトと、各局所オブジェクトとの相違点を表示するようにしてもよい。
【０２１５】
このようなユーザ別のアイコンを共通に用いることで、局所オブジェクトについてサムネイルなどを生成して表示する構成に比較して、処理を簡素化および高速化できる。
【０２１６】
＜本実施の形態の第４変形例＞
上述の実施の形態では、基本的に、すべてのユーザが同じようなタイミングで共同作業モードに復帰する場合における処理について例示したが、共同作業モードでの作業が進んだ後に、遅れて共同作業モードに復帰するｎｏｄｅが存在する場合も想定される。このような場合において、共有オブジェクトが既に削除されていたような場合には、完全に同期処理を行なうことができないこともあり、このような場合には、以下のように処理を行なう。
【０２１７】
上述の実施の形態で説明したワークスペースＷＳにおいて、ｎｏｄｅ３（ユーザＣ）が共同作業モードに遅れて参加したとする。このとき、ｎｏｄｅ１（ユーザＡ）およびｎｏｄｅ２（ユーザＢ）との間の合意の下、共有オブジェクトの実体である「salesplan.doc」が削除されており、ユーザＡが作成した「salesplan.doc.pc1」が共有オブジェクトの実体である「salesplan.doc」として格納されていたとする。
【０２１８】
このような状況下では、ｎｏｄｅ３が他のｎｏｄｅとの間でリンクリストを交換したとしても、「salesplan.doc」は存在しない（新規オブジェクト）と取扱われてしまう。すなわち、各オブジェクトは識別番号（object id）によって識別されるため、同一ファイル名であっても、同一のオブジェクトとは見なされない。
【０２１９】
このように、共同作業モードを開始している他のｎｏｄｅにおいて、同じファイル名のオブジェクトが存在する場合には、あるオブジェクトの原本を修正してしまった可能性が高いと推測できる。そこで、リンクリストにエントリが存在しないオブジェクトについては、対応する実体ファイルのファイル名を検索し、同じファイル名または類似のファイル名をもつオブジェクト、ないしは同じファイル種類のオブジェクトを同じグループだと見なしてもよい。そして、これらのファイルを自動的にリンクリストのエントリに加えてもよい。あるいは、このような推測結果をユーザに通知してもよい。さらに、これらを適宜組み合わせたような処理にしてもよい。
【０２２０】
＜本実施の形態の第５変形例＞
上述の実施の形態では、ユーザが操作を行なうことで共同作業モードと個人作業モードとを切替える構成について例示したが、ネットワークの接続状況などに応じて、自動的にモードを切替えるようにしてもよい。
【０２２１】
たとえば、共同作業モード中に他のｎｏｄｅとの間の接続が切断されるなどした場合には、個人作業モードに自動的に移行するようにしてもよい。この他のｎｏｄｅとの間の接続が切断されたとは、他のｎｏｄｅへのパケットの不着が発生した場合や他のｎｏｄｅへのパケットの不着率が一定値以上になった場合などである。
【０２２２】
あるいは、ワークスペースＷＳに参加しているｎｏｄｅ（ユーザ）の数が所定のしきい値を下回った場合にも、自動的に共同作業モードから個人作業モードに移行するようにしてもよい。
【０２２３】
このような個人作業モード移行時の画面状態としては、共同作業モードの移行直前の状態を維持しつつ単にモードを切替えてもよいし、あるいは共同作業モードのある時点の状態に戻るようにしてもよい。
【０２２４】
また、モード移行時に進行中だった作業（オブジェクトの編集や移動、手書きでの入力中）などを除いて、すべての作業結果が反映した上で、個人作業モードへ移行することが好ましい。この場合、これらのオブジェクトはすべて共有オブジェクトとなる。
【０２２５】
なお、個人作業モードにおけ操作履歴に関しては、個人作業モード中の共有オブジェクトと同様に取扱ってもよいが、処理が複雑化するので、個人作業モード中では、局所オブジェクトの作成・変更・削除などの関する操作履歴のみを記録することが好ましい。
【０２２６】
また、共有オブジェクトや局所オブジェクトをいずれかのユーザがコピーして新たなオブジェクト（コピーオブジェクト）を作成した場合には、これらのコピーオブジェクトについてもリンクリストにエントリとして追加することが好ましい。
【０２２７】
＜本実施の形態における効果＞
本実施の形態によれば、共同作業モードにおける作業結果と個人作業モードにおける作業結果とを互いに関連付けつつ、共同作業モードにおけるワークスペースＷＳ上では、各オブジェクトを独立のオブジェクトとして管理および視覚化する。そのため、各ユーザが単独で行なった作業結果をワークスペースＷＳに確実に反映することができ、これにより効率的な共同作業を実現することができる。
【０２２８】
［その他の実施の形態］
本発明に係るプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明に係るプログラムに含まれ得る。
【０２２９】
さらに、本発明に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明に係るプログラムに含まれ得る。
【０２３０】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
【０２３１】
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
【０２３２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０２３３】
【図１】この発明の実施の形態に従うワークスペースを提供するためのシステムの概略構成図である。
【図２】この発明の実施の形態に従う情報処理装置の代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【図３】この発明の実施の形態に従うワークスペースの一例を模式的に示す図である。
【図４】図３（ａ）に示すワークスペースの状態からｎｏｄｅ１が個人作業モードに移行した後、ｎｏｄｅ１のユーザＡによる作業中の状態の一例を示す図である。
【図５】図３（ａ）に示すワークスペースの状態からｎｏｄｅ２が個人作業モードに移行した後、ｎｏｄｅ２のユーザＢによる作業中の状態の一例を示す図である。
【図６】図３（ａ）に示すワークスペースの状態からｎｏｄｅ３が個人作業モードに移行した後、ｎｏｄｅ３のユーザＣによる作業中の状態の一例を示す図である。
【図７】図４〜図６に示す個人作業モードから共同作業モードへ復帰した後の状態の一例を示す図である。
【図８】この発明の実施の形態に従うワークスペース定義ファイルの内容の一例を示す図である。
【図９】この発明の実施の形態に従う各情報処理装置の制御構造を示すブロック図である。
【図１０】図９に示す作業モード制御部のより詳細な制御構造を示すブロック図である。
【図１１】この発明の実施の形態に従うリンクリストの内容の一例を示す図である。
【図１２】この発明の実施の形態に従うワークスペースのある状態を示す図である。
【図１３】図１２に示す状態において、ｎｏｄｅ１でユーザ操作が行なわれた直後の状態を示す図である。
【図１４】図１３の後に同期処理中の状態を示す図である。
【図１５】図１４に示すユーザ操作に係る同期処理が完了した状態を示す図である。
【図１６】図８に示すワークスペース定義ファイルに対応するワークスペース定義ファイル（ローカル）の内容の一例を示す図である。
【図１７】この発明の実施の形態に従うリンクリストの更新後の内容の一例を示す図である。
【図１８】図１７（ａ）に示す実体ファイルの生成に伴って追加されるオブジェクトＯＢＪ１Ａの記述１４１の一例を示す図である。
【図１９】図１７（ａ）に示す実体ファイルの生成に伴って変更される共有オブジェクトＯＢＪ１の記述１２１の一例を示す図である。
【図２０】の発明の実施の形態に従うワークスペース定義ファイル（コピー）の更新処理によって生成されるワークスペース定義ファイルの内容の一例を示す図である。
【図２１】図５に示すオブジェクトＯＢＪ１Ｂの作成に伴って、ワークスペース定義ファイル（ローカル）に追加される記述の一例を示す図である。
【図２２】図５に示すオブジェクトＯＢＪ１Ｂｔの新規作成に伴って、ワークスペース定義ファイル（ローカル）に追加される記述の一例を示す図である。
【図２３】この発明の実施の形態に従うオブジェクト同士の関連付け処理（その２）の概要を説明するための図である。
【図２４】図６に示すオブジェクトＯＢＪ１Ｃの作成に伴って、ワークスペース定義ファイル（ローカル）に追加される記述の一例を示す図である。
【図２５】図６に示すオブジェクトＯＢＪ１Ｃｔの作成に伴って、ワークスペース定義ファイル（ローカル）に追加される記述の一例を示す図である。
【図２６】この発明の実施の形態に従う共同作業モードの開始処理を示すシーケンス図である。
【図２７】この発明の実施の形態に従うマージ処理を含む全体処理を示すシーケンス図である。
【図２８】図１７に示すｎｏｄｅ１〜ｎｏｄｅ３の間で同期がなされた後のリンクリスト１４０の内容の一例を示す図である。
【図２９】この発明の実施の形態に従う紐付けオブジェクトの記述の一例を示す図である。
【図３０】この発明の実施の形態に従うユーザ色情報を定義する記述の一例を示す図である。
【図３１】図７に示すワークスペースに対応するワークスペース定義ファイルの内容の一例を示す図である。
【図３２】図７に示すワークスペースに対応するワークスペース定義ファイルの内容の一例を示す図である。
【図３３】この発明の実施の形態１に従う全体処理手順を示すフローチャートである。
【図３４】図３３のステップＳ２に示すモード切替処理の処理手順を示すフローチャートである。
【図３５】図３４のステップＳ２４に示す共同作業モードへの切替処理の処理手順を示すフローチャートである。
【図３６】図３３のステップＳ３に示すワークスペース処理の処理手順を示すフローチャートである。
【図３７】図３６のステップＳ３３に示す共同作業モード処理の処理手順を示すフローチャートである。
【図３８】図３６のステップＳ３４に示す個人作業モード処理の処理手順を示すフローチャートである。
【図３９】図３７のステップＳ３３２および／または図３８のＳ３４２に示すオブジェクト操作の処理手順を示すフローチャートである。
【図４０】この発明の実施の形態の第１変形例に従う個人作業モードから共同作業モードへ復帰した後の状態の一例を示す図である。
【図４１】この発明の実施の形態の第２変形例に従う個人作業モードから共同作業モードへ復帰した後の状態の一例を示す図である。
【図４２】この発明の実施の形態の第３変形例に従う個人作業モードから共同作業モードへ復帰した後の状態の一例を示す図である。
【図４３】この発明の実施の形態の第３変形例に従うユーザ別アイコンを定義する記述の一例を示す図である。
【符号の説明】
【０２３４】
２０１  ＣＰＵ、２０３  内部バス、２０５  モニター、２０７  通信インターフェイス、２０９  入力装置、２１１  ハードディスク部、２１３  メモリ部、２１５  ＣＤ−ＲＯＭドライブ、２１７  フレキシブルディスク（ＦＤ）ドライブ、２１５ａ  ＣＤ−ＲＯＭ、２１７ａ  フレキシブルディスク、２５０  作業モード制御部、２５０Ａ  モード切替部、２５０Ｂ  オブジェクト属性管理部、２５０Ｃ  リンクリスト管理部、２５０Ｄ  派生制御部、２５２  データ操作部、２５４  同期制御部、２５６  描画部、２５８  ユーザ認証部、２６０  データ送受信部、２６２  データ格納部、ＰＣ，ＰＣ１〜ＰＣ３  情報処理装置、ＳＲＶ  サーバ装置。
【図１】
2010061290.tif 000003
【図２】
2010061290.tif 000004
【図３】
2010061290.tif 000005
【図４】
2010061290.tif 000006
【図５】
2010061290.tif 000007
【図６】
2010061290.tif 000008
【図７】
2010061290.tif 000009
【図８】
2010061290.tif 000010
【図９】
2010061290.tif 000011
【図１０】
2010061290.tif 000012
【図１１】
2010061290.tif 000013
【図１２】
2010061290.tif 000014
【図１３】
2010061290.tif 000015
【図１４】
2010061290.tif 000016
【図１５】
2010061290.tif 000017
【図１６】
2010061290.tif 000018
【図１７】
2010061290.tif 000019
【図１８】
2010061290.tif 000020
【図１９】
2010061290.tif 000021
【図２０】
2010061290.tif 000022
【図２１】
2010061290.tif 000023
【図２２】
2010061290.tif 000024
【図２３】
2010061290.tif 000025
【図２４】
2010061290.tif 000026
【図２５】
2010061290.tif 000027
【図２６】
2010061290.tif 000028
【図２７】
2010061290.tif 000029
【図２８】
2010061290.tif 000030
【図２９】
2010061290.tif 000031
【図３０】
2010061290.tif 000032
【図３１】
2010061290.tif 000033
【図３２】
2010061290.tif 000034
【図３３】
2010061290.tif 000035
【図３４】
2010061290.tif 000036
【図３５】
2010061290.tif 000037
【図３６】
2010061290.tif 000038
【図３７】
2010061290.tif 000039
【図３８】
2010061290.tif 000040
【図３９】
2010061290.tif 000041
【図４０】
2010061290.tif 000042
【図４１】
2010061290.tif 000043
【図４２】
2010061290.tif 000044
【図４３】
2010061290.tif 000045