(57)【要約】【課題】複数のユーザの各々が単独で行なった作業結果を確実に反映しつつ、効率的な共同作業を実現するための情報処理方法、情報処理装置およびプログラムを提供する。【解決手段】個人作業モードのワークスペース上でユーザが新規作成した、もしくは変更を行なったオブジェクトについては、「個人オブジェクト」として取扱われる。共同作業モードのワークスペースＷＳ１上では、この「個人オブジェクト」に対するユーザ操作がなされると、当該オブジェクトに対する改変を保護するための処理が実行される。この改変を保護するための処理は、典型的に「読み取り専用」として取扱われる。【選択図】図５
2010108261.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>タグにおいて、識別番号が「TU58」であることが定義され、<type>タグにおいて、イメージオブジェクトであることを示す「image」が定義される。さらに、<point>タグにおいて、x='120' y='250'の位置に配置されることが定義され、<src>タグにおいて、実体のファイルを特定する「sunflower.jpg」が定義され、<user>タグにおいて、オブジェクトＯＢＪ１のオーナーが「ユーザＡ」であることが定義される。
【００５８】
なお、図６では、１つのワークスペース定義ファイル１００を用いて、ワークスペースを構成する例について例示したが、複数のファイルを用いて同等の情報を定義してもよい。たとえば、各オブジェクトが定義されたファイルを、リレーショナルデータベースなどを用いて互いに関連付けた構成などを採用することができる。
【００５９】
また、サーバｎｏｄｅが任意の数のワークスペースＷＳを共有することも可能である。この場合には、上述のワークスペースの識別番号（space id）の値に基づいて、対象のワークスペースＷＳが特定される。
【００６０】
＜制御構造＞
図７は、この発明の実施の形態に従う各情報処理装置ＰＣの制御構造を示すブロック図である。
【００６１】
図７を参照して、サーバ装置ＳＲＶ（サーバｎｏｄｅ）は、その制御構造として、データ更新部３５０と、属性変更部３５２と、ユーザ認証部３５４と、データ送受信部３６０と、データ格納部３６２とを含む。データ格納部３６２は、ハードディスク部２１１（図２）の任意の領域として提供され、データ送受信部３６０は、通信インターフェイス２０７（図２）および関連するドライバソフトの協同によって提供され、その他の各部は、代表的に、ＣＰＵ２０１（図２）がプログラムをメモリ部２１３（図２）に展開し、各コマンドを実行することで提供される。なお、これらの機能の全部または一部をハードウェアによって実現してもよい。
【００６２】
サーバｎｏｄｅのデータ格納部３６２は、ワークスペースを構成するためのワークスペース定義ファイル１００と、ワークスペース定義ファイル１００内でリンクされた実体ファイル１２０と、ネットワークＮＷ（図１）を介して接続可能な他のｎｏｄｅ（情報処理装置ＰＣ）を特定するための情報（たとえば、ＩＰアドレスなどの各ｎｏｄｅを一意に特定できるユニークな宛て先情報）をリスト形式で記述した接続テーブル１６０とを含む。
【００６３】
サーバｎｏｄｅのデータ更新部３５０は、各クライエントｎｏｄｅからのワークスペース変更指令（図１）に従って、データ格納部３６２のワークスペース定義ファイル１００を更新するとともに、必要に応じて実体ファイル１２０を新規作成もしくは変更する。
【００６４】
属性変更部３５２は、個人作業モードにおいて、いずれかのクライエントｎｏｄｅで新規作成された、もしくは変更された結果生じた個人オブジェクトの属性を、ユーザ操作に応じて変更する。より具体的には、属性変更部３５２は、各個人オブジェクトのオーナーもしくは当該オーナーから所定の権限を与えられているユーザが、当該個人オブジェクトを共有オブジェクトに変更するための指令を与えると、対象のオブジェクトの属性を変更する。さらに、属性変更部３５２は、共有オブジェクトとして存在するオブジェクトを個人オブジェクトに変更することもできる。後述するように、本実施の形態に従うワークスペースでは、オブジェクトを定義する記述に、個人オブジェクトを示す属性である<localObject/>タグを付加することで、個人オブジェクトとして取扱われる。そのため、属性変更部３５２は、このワークスペース定義ファイル１００の記述に対して、この<localObject/>タグを削除し、もしくは、この<localObject/>タグを付加することで、属性の変更を実現する。
【００６５】
ユーザ認証部３５４は、各情報処理装置ＰＣを使用するユーザに対するユーザ認証処理を実行する。具体的には、各クライエントｎｏｄｅは、ユーザによる使用開始前に、当該ユーザのＩＤおよびパスワードの入力を促す。いずれかのクライエントｎｏｄｅの入力されたユーザのＩＤおよびパスワードは、サーバｎｏｄｅへ伝送される。続いて、サーバｎｏｄｅのユーザ認証部３５４が図示しないユーザ管理ファイルなどを参照して、要求元のユーザによる各クライエントｎｏｄｅの使用の許否を判断する。ユーザ認証が成功すると、ユーザ認証部３５４は、送信元のクライエントｎｏｄｅに対して、要求されたユーザの使用を許可する旨の通知を行なうとともに、現在使用中（ログイン中）のユーザ名を保持する。なお、本実施の形態に従う情報処理装置ＰＣでは、各装置を使用するユーザを識別できればよいので、必ずしも、ユーザ認証にパスワードを要求しなくてもよい。
【００６６】
データ送受信部３６０は、クライエントｎｏｄｅ（情報処理装置ＰＣ）との間のデータ通信を制御する。具体的には、データ送受信部３６０は、クライエントｎｏｄｅから何らかの指令（要求）を受信すると、その指令（要求）を対応する部位へ出力する。また、データ送受信部３６０は、各部位からのデータを宛て先のクライエントｎｏｄｅへ送信する。
【００６７】
また、各情報処理装置ＰＣ（クライエントｎｏｄｅ）は、その制御構造として、作業モード制御部２５０と、データ操作部２５２と、描画部２５６と、データ送受信部２６０と、データ格納部２６２とを含む。データ格納部２６２は、ハードディスク部２１１（図２）の任意の領域として提供され、データ送受信部３６０は、通信インターフェイス２０７（図２）および関連するドライバソフトの協同によって提供され、その他の各部は、代表的に、ＣＰＵ２０１（図２）がプログラムをメモリ部２１３（図２）に展開し、各コマンドを実行することで提供される。なお、これらの機能の全部または一部をハードウェアによって実現してもよい。
【００６８】
クライエントｎｏｄｅの作業モード制御部２５０は、ユーザが入力装置２０９（図２）を介して入力する操作に従って、共同作業モードと個人作業モードとを切替える。そして、クライエントｎｏｄｅは、現在のモードをデータ操作部２５２へ通知する。
【００６９】
データ操作部２５２は、作業モード制御部２５０によって共同作業モードから個人作業モードへ切替えられると、サーバｎｏｄｅからワークスペース定義ファイル１００および（必要に応じて）実体ファイル１２０を取得し、それぞれワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａとして、自装置のデータ格納部２６２へ格納する。すなわち、この各クライエントｎｏｄｅのデータ格納部２６２に格納されるワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａに基づいて、個人作業モードにおけるワークスペースＷＳ２が提供される。すなわち、共同作業モードから個人作業モードへの切替直後では、ワークスペース定義ファイル１００および実体ファイル１２０とワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａは、それぞれ同一のものとなる。
【００７０】
さらに、データ操作部２５２は、作業モード制御部２５０によって個人作業モードから共同作業モードへ切替えられると、サーバｎｏｄｅとの間でワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａの変更反映処理を実行する。具体的には、データ操作部２５２は、個人作業モードにおいて新規作成もしくは変更されたオブジェクト（個人オブジェクト）を定義する記述および実体ファイルをサーバｎｏｄｅが保持・管理するワークスペース定義ファイルおよび実体ファイルに反映する。
【００７１】
描画部２５６は、ワークスペース定義ファイル１００もしくはワークスペース定義ファイル１００Ａの情報のうち、ユーザにより指定される所定範囲に含まれる情報に基づいて、描画処理（レンダリング処理）を行なう。より具体的には、共同作業モードでは、描画部２５６は、ユーザが入力装置２０９（図２）を介して入力する操作に従って、サーバｎｏｄｅが保持・管理するワークスペース定義ファイルのうち必要な情報を取得し、この取得した情報に基づいて、モニター２０５（図２）に表示すべき画像を示すデータを図示しないビデオメモリに周期的に出力する。一方、描画部２５６は、個人作業モードでは、自装置のデータ格納部２６２に格納されるワークスペース定義ファイル１００Ａを参照して、モニター２０５（図２）に表示すべき画像を示すデータを図示しないビデオメモリに周期的に出力する。このビデオメモリに格納されるデータに応じて、モニター２０５には画像が表示される。
【００７２】
データ送受信部２６０は、主として、サーバｎｏｄｅとの間のデータ通信を制御する。具体的には、データ送受信部２６０は、サーバｎｏｄｅから何らかのデータ（情報）を受信すると、そのデータ（情報）を対応する部位へ出力する。また、データ送受信部２６０は、各部位からのデータをサーバｎｏｄｅへ送信する。
【００７３】
＜個人オブジェクト＞
次に、図８および図９を参照して、図４に示すような個人オブジェクトであるオブジェクトＯＢＪ５が新規作成される場合の処理について説明する。
【００７４】
図８は、図４に示す個人オブジェクトであるオブジェクトＯＢＪ５を定義する記述の一例を示す図である。図９は、図４に示すワークスペースＷＳ２を提供するためのワークスペース定義ファイルの一例を示す図である。
【００７５】
クライエントｎｏｄｅ１のユーザが、個人作業モードにおいて、文書ファイルであるオブジェクトＯＢＪ６を新規作成すると、データ更新部３５０（図７）がデータ格納部３６２（図７）に格納されているワークスペース定義ファイル１００Ａに、図８に示す記述１２６を追加する。この記述１２６のデータ構造は、<localObject/>タグ１２６ａが付加されている点を除いて、上述の共有オブジェクトについての記述１２１〜１２５（図６）と同様である。すなわち、記述１２６では、識別番号が「CX11」として、リンク先の実体ファイルが「newplan.doc」であり、かつオーナーが「ユーザＡ」として定義されている。そして、これらの定義に加えて、個人オブジェクトであることを示す<localObject/>タグ１２６ａが記述されている。
【００７６】
その結果、クライエントｎｏｄｅ１のデータ格納部２６２に格納されるワークスペース定義ファイル１００Ａは、図６に示す内容（ワークスペース定義ファイル１００と同じもの）から、図９に示すような内容に更新される。
【００７７】
＜モード切替処理＞
いずれかのクライエントｎｏｄｅにおいて、個人作業モードから共同作業モードへのモード切替が実行されると、個人作業モードにおいて新規作成された個人オブジェクトがサーバｎｏｄｅによって保持・管理されるワークスペース定義ファイルに反映される。すなわち、各ｎｏｄｅで保持・管理されるワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａと、サーバ装置ｎｏｄｅが保持・管理するワークスペース定義ファイル１００および実体ファイル１２０との間で変更反映処理が実行される。
【００７８】
本実施の形態では、典型的には、各ｎｏｄｅで作成された個人オブジェクトの記述およびそれに関連付けられた実体ファイルが、サーバｎｏｄｅに転送され、サーバｎｏｄｅが保持・管理するワークスペース定義ファイル１００および実体ファイル１２０に追加（追記）される。なお、このような変更反映処理を採用する場合には、各クライエントｎｏｄｅで保持・管理される共有オブジェクトの記述などは転送する必要がない。
【００７９】
＜共同作業モードにおける個人オブジェクトの取り扱い＞
サーバｎｏｄｅが提供するワークスペースＷＳにおいて、個人オブジェクトの属性が付加されているオブジェクト（すなわち、その記述に<localObject/>タグを含むオブジェクト）については、「読み取り専用」として取扱われる。より具体的には、クライエントｎｏｄｅのデータ操作部２５２（図７）がワークスペース定義ファイルに含まれるオブジェクトの記述のうち、<localObject/>タグを含むものに対しては、変更操作を禁止するように処理を行なうことで実現される。
【００８０】
なお、「改変を保護するための処理」の典型例としては、ユーザによる変更操作が全く禁止される「読み取り専用」として取扱われる。このような典型的な「読み取り専用」としての処理に加えて、もしくはそれに代えて以下のような処理を採用してもよい。たとえば、ファイルを開くタイミングで「読み取り専用」である旨の警告を表示する一方で、ファイル自体に対する変更操作（編集や削除）については許可するようにしてもよい。あるいは、オーナー以外のユーザが「読み取り専用」の個人オブジェクトに対して何らかの変更操作を行なおうとすると、当該オブジェクトについて権限を有するユーザ（典型的には、当該オブジェクトのオーナーとなっているユーザ）に対して、その旨の通知や「読み取り専用」の属性の変更の許可を確認するための通知を行なってもよい。あるいは、オーナー以外のユーザが「読み取り専用」の個人オブジェクトに対して何らかの変更操作を行なうと、当該変更は当該オーナーが許可するまで個人オブジェクトに反映されないようにしてもよい。
【００８１】
また、個人オブジェクトのオーナーもしくは当該オーナーから所定の権限を与えられているユーザが、当該個人オブジェクトを共有オブジェクトに変更するための指示を与えると、対象のオブジェクトの属性を変更できるようにしてもよい。具体的には、サーバｎｏｄｅの属性変更部３５２がワークスペース定義ファイル１００の記述のうち、指定された個人オブジェクトの記述に含まれる<localObject/>タグを削除する。これにより、当該個人オブジェクトは、共有オブジェクトとして取扱われる。そのため、原則的にワークスペースＷＳに参加しているすべてのユーザによる変更操作が可能となる。
【００８２】
あるいは、上述のような明示的な指示に代えて、所定の条件が成立した場合に、個人オブジェクトを自動的に共有オブジェクトに変更、すなわち<localObject/>タグを削除するようにしてもよい。このような個人オブジェクトを共有オブジェクトに変更するための条件の一例としては、（ａ）予め個人オブジェクトのオーナーが設定したタイミング、（ｂ）個人作業モードから共有作業モードに移行した後、予め定められた期間の経過後、（ｃ）予め定められたユーザ（たとえば、あるプロジェクトのメンバーなど）のすべてが対象の個人オブジェクトにアクセスしたタイミング、などが挙げられる。
【００８３】
上述の例では、ワークスペース定義ファイルにおける対応する記述に<localObject/>タグが含まれているか否かに基づいて、個人オブジェクトであるか否か、すなわち「読み取り専用」であるか否かが判断される構成について例示したが、これ以外の方法を採用してもよい。たとえば、あるクライエントｎｏｄｅが個人作業モードから共同作業モードに移行するタイミングで、当該クライエントｎｏｄｅにおいて作成された個人オブジェクトについて、サーバｎｏｄｅが保持・管理するワークスペース定義ファイル１００とは別の定義ファイルに記述するようにしてもよい。そして、この別の定義ファイルに定義されたオブジェクトについては、「読み取り専用」として取り扱うようにする。あるいは、<localObject/>タグとは異なる「読み取り専用」を示すタグなどを<localObject/>タグに代えて、あるいはさらに付加するようにしてもよい。
【００８４】
＜個人作業モードから共同作業モードへの切替タイミング＞
上述の実施の形態においては、ユーザが明示的な指示を与えることで、個人作業モードと共同作業モードとが切替えられる構成について例示したが、以下のような条件が成立した場合に、個人作業モードから共同作業モードへの移行を行なうようにしてもよい。なお、この個人作業モードから共同作業モードへの移行によって、クライエントｎｏｄｅで提供されるワークスペースＷＳ２上で作成されたオブジェクトは、個人オブジェクトとして共同作業モードのワークスペースＷＳ１へ反映される。
【００８５】
このような個人作業モードから共同作業モードへの移行するための条件の一例としては、（ａ）ユーザの使用状況、（ｂ）時間および／または時刻、（ｃ）ユーザ操作、などが挙げられる。
【００８６】
このうち、（ａ）ユーザの使用状況としては、ユーザの周囲の状況、ユーザの存在場所、ユーザが他のユーザと一緒にいる場合、ユーザ型デバイスによるアクセスがあった場合、ワークスペースへのユーザの参加状況、ユーザがクライエントｎｏｄｅを一定期間操作していない場合（スクリーンセイバーが実行された場合）、情報処理装置ＰＣのリソース（ハードディスクの残容量・メモリ使用量・ネットワーク帯域）などが含まれる。
【００８７】
また、（ｂ）時間および／または時刻としては、何らかのオブジェクトを作成してから一定期間経過した場合、一日のうち予め定められたタイミング（昼休み・定時・定時外など）、予め定められた日付（月初め、月末、毎週末、水曜日など）、ユーザが長期不在の場合、ユーザが予め定められた期間に亘ってクライエントｎｏｄｅを使用しなかった場合などが含まれる。
【００８８】
また、（ｃ）ユーザ操作としては、ペンデバイスによる操作、選択中のオブジェクトの変更操作、ユーザが予め定められたツール（アプリケーション）を使用している場合、ワークスペースＷＳの予め定められた範囲を指定した場合（範囲を指定しなかった場合）、予め定められた階層のレイヤーに表示がなされた場合、オブジェクトの色を変更した場合などが含まれる。
【００８９】
＜処理手順＞
以上説明した内容を実現するための処理手順について説明する。
【００９０】
図１０は、この発明の実施の形態１に従う全体処理手順を示すフローチャートである。図１０に示す各処理手順は、代表的に、情報処理装置ＰＣのＣＰＵ２０１（図２）がプログラムを実行することで提供される。なお、図１０に示す処理は、定周期（たとえば、数１０〜数１００ｍｓｅｃ）で繰り返し実行される。
【００９１】
図１０を参照して、ユーザによる入力装置２０９の操作によって、共同作業モードと個人作業モードとの間の切替指示が与えられたか否かを判断する（ステップＳ１）。共同作業モードと個人作業モードとの間の切替指示が与えられていない場合（ステップＳ１においてＮＯの場合）には、処理はステップＳ３へ進む。
【００９２】
一方、共同作業モードと個人作業モードとの間の切替指示が与えられた場合（ステップＳ１においてＹＥＳの場合）には、図１１に示すモード切替処理が実行される（ステップＳ２）。このモード切替処理の後、処理はステップＳ３へ進む。
【００９３】
ステップＳ３では、図１４などに示すワークスペース処理が実行される。
図１１は、図１０のステップＳ２に示すモード切替処理の処理手順を示すフローチャートである。なお、図１１に示す処理手順は、典型的には、サブルーチンとして提供される。
【００９４】
図１１を参照して、まず、自装置における「モード状態」の値を取得する（ステップＳ２１）。なお、この「モード状態」の値は、メモリ部２１３もしくはハードディスク部（ＨＤＤ）２１１（図２）に保持されている。続いて、取得した「モード状態」が「共同作業モード」であるか否かを判断する（ステップＳ２２）。
【００９５】
取得した「モード状態」が「共同作業モード」である場合（ステップＳ２２においてＹＥＳの場合）には、図１３に示す個人作業モードへの切替処理を実行する（ステップＳ２４）。この共同作業モードへの切替処理の実行後、処理はリターンする。
【００９６】
一方、取得した「モード状態」が「共同作業モード」でない場合（ステップＳ２２においてＮＯの場合）には、図１４に示す共同作業モードへの切替処理を実行する（ステップＳ２４）。この共同作業モードへの切替処理の実行後、処理はリターンする。
【００９７】
図１２は、図１１のステップＳ２３に示す個人作業モードへの切替処理の処理手順を示すフローチャートである。なお、図１２に示す処理手順は、典型的には、サブルーチンとして提供される。
【００９８】
図１２を参照して、まず、通信ポートを受信可能状態にする（ステップＳ２３１）。続いて、サーバ装置ＳＲＶから現在のワークスペース定義ファイル１００および（必要に応じて）実体ファイル１２０を取得し、それぞれワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａとして格納する（ステップＳ２３２）。
【００９９】
その後、メモリ部２１３もしくはハードディスク部（ＨＤＤ）２１１（図２）に保持されている「モード状態」の値を「個人作業モード」に変更する（ステップＳ２３３）。そして、処理はリターンする。
【０１００】
図１３は、図１２のステップＳ２４に示す共同作業モードへの切替処理の処理手順を示すフローチャートである。なお、図１３に示す処理手順は、典型的には、サブルーチンとして提供される。
【０１０１】
図１３を参照して、まず、通信ポートを受信可能状態にする（ステップＳ２４１）。続いて、サーバ装置ＳＲＶに対して、ワークスペースの識別番号（space id）を用いた同期通知を送信する（ステップＳ２４２）。さらに、サーバ装置ＳＲＶからの応答を受信したか否かを判断する（ステップＳ２４３）。サーバ装置ＳＲＶからの応答を受信しなかった場合（ステップＳ２４３においてＮＯの場合）には、応答を受信するまで待つ。
【０１０２】
これに対して、サーバ装置ＳＲＶからの応答を受信すると（ステップＳ２４３においてＹＥＳの場合）には、自装置に格納されているワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａのうち、個人オブジェクトであるものを、サーバ装置ＳＲＶへ送信する（ステップＳ２４４）。この情報処理装置ＰＣから送信された個人オブジェクトについてのデータは、サーバ装置ＳＲＶが保持・管理するワークスペース定義ファイル１００および実体ファイル１２０に反映される。
【０１０３】
その後、メモリ部２１３もしくはハードディスク部（ＨＤＤ）２１１（図２）に保持されている「モード状態」の値を「共同作業モード」に変更する（ステップＳ２４５）。そして、処理はリターンする。
【０１０４】
図１４は、図１０のステップＳ３に示すワークスペース処理の処理手順を示すフローチャートである。なお、図１４に示す処理手順は、典型的には、サブルーチンとして提供される。
【０１０５】
図１４を参照して、まず、自装置における「モード状態」の値を取得する（ステップＳ３１）。続いて、取得した「モード状態」が「共同作業モード」であるか否かを判断する（ステップＳ３２）。
【０１０６】
取得した「モード状態」が「共同作業モード」である場合（ステップＳ３２においてＹＥＳの場合）には、図１５に示す共同作業モード処理が実行される（ステップＳ３３）。そして、処理はリターンする。
【０１０７】
一方、取得した「モード状態」が「共同作業モード」でない場合（ステップＳ３２においてＮＯの場合）には、図１６に示す個人作業モード処理が実行される（ステップＳ３４）。そして、処理はリターンする。
【０１０８】
図１５は、図１４のステップＳ３３に示す共同作業モード処理の処理手順を示すフローチャートである。なお、図１５に示す処理手順は、典型的には、サブルーチンとして提供される。
【０１０９】
図１５を参照して、情報処理装置ＰＣは、サーバ装置ＳＲＶに対して、サーバ装置ＳＲＶのハードディスク部（ＨＤＤ）２１１（図２）に保持されているワークスペース定義ファイル１００および実体ファイル１２０に基づくワークスペースＷＳを表示するための要求を送信する（ステップＳ３３１）。続いて、情報処理装置ＰＣは、この要求に応答して、サーバ装置ＳＲＶから送信されるワークスペース表示情報を受信し（ステップＳ３３２）、ワークスペースの画面を表示する（ステップＳ３３３）。このとき、サーバ装置ＳＲＶは、そのハードディスク部（ＨＤＤ）２１１（図２）に保持されているワークスペース定義ファイル１００を読出して、必要なデータを要求元の情報処理装置ＰＣへ応答する。
【０１１０】
続いて、ユーザ操作に応じて、図１７に示すオブジェクト操作を実行する（ステップＳ３３４）。さらに、情報処理装置ＰＣは、このオブジェクト操作に従って生成されたワークスペース変更指令がサーバ装置ＳＲＶへ送信する（ステップＳ３３５）。このワークスペース変更指令に応じて、サーバ装置ＳＲＶは、そのハードディスク部（ＨＤＤ）２１１に格納されているワークスペース定義ファイル１００および実体ファイル１２０を更新する。そして、処理はリターンする。
【０１１１】
図１６は、図１４のステップＳ３４に示す個人作業モード処理の処理手順を示すフローチャートである。なお、図１６に示す処理手順は、典型的には、サブルーチンとして提供される。
【０１１２】
図１６を参照して、ハードディスク部（ＨＤＤ）２１１（図２）に保持されているワークスペース定義ファイル１００Ａを読出す（ステップＳ３４１）。続いて、ユーザ操作に応じて、図１８に示すオブジェクト操作を実行する（ステップＳ３４２）。
【０１１３】
さらに、このオブジェクト操作によって得られたワークスペース定義ファイル１００Ａの内容をハードディスク部（ＨＤＤ）２１１に書込む（ステップＳ３４３）とともに、当該ワークスペース定義ファイル１００Ａの情報のうち、ユーザにより指定される所定範囲に含まれる情報に基づいて、描画処理（レンダリング処理）を行なう（ステップＳ３４４）。なお、オブジェクト操作によって新規作成もしくは変更されたオブジェクトは、個人オブジェクトとして作成され、ワークスペース定義ファイル１００Ａに追加される。その後、処理はリターンする。
【０１１４】
図１７は、図１５のステップＳ３３４および／または図１６のＳ３４２に示すオブジェクト操作の処理手順を示すフローチャートである。なお、図１７に示す処理手順は、典型的には、サブルーチンとして提供される。
【０１１５】
図１７を参照して、ユーザによる入力装置２０９の操作によって、操作指示が与えられたか否かを判断する（ステップＳ３５０）。操作指示が与えられていない場合（ステップＳ３５０においてＮＯの場合）には、処理はリターンする。
【０１１６】
一方、操作指示が与えられた場合（ステップＳ３５０においてＹＥＳの場合）には、当該操作指示がオブジェクトの作成指示であるか否かを判断する（ステップＳ３５１）。当該操作指示がオブジェクトの作成指示である場合（ステップＳ３５１においてＹＥＳの場合）には、当該作成指示に従って、オブジェクトを作成する（ステップＳ３５２）。その後、処理はリターンする。
【０１１７】
これに対して、当該操作指示がオブジェクトの作成指示でない場合（ステップＳ３５１においてＮＯの場合）には、当該操作指示がオブジェクトの閲覧指示であるか否かを判断する（ステップＳ３５３）。当該操作指示がオブジェクトの閲覧指示である場合（ステップＳ３５３においてＹＥＳの場合）には、当該作成指示に従って、オブジェクトに関連付けられた実体ファイルのコンテンツもしくはオブジェクトの属性情報などを表示する（ステップＳ３５４）。その後、処理はリターンする。
【０１１８】
これに対して、当該操作指示がオブジェクトの閲覧指示でない場合（ステップＳ３５３においてＮＯの場合）には、自装置における「モード状態」の値を取得する（ステップＳ３５５）。続いて、取得した「モード状態」が「共同作業モード」であるか否かを判断する（ステップＳ３５６）。
【０１１９】
取得した「モード状態」が「共同作業モード」でない場合（ステップＳ３５６においてＮＯの場合）には、そして、処理はステップＳ３５９へ進む。
【０１２０】
一方、取得した「モード状態」が「共同作業モード」である場合（ステップＳ３５６においてＹＥＳの場合）には、対象のオブジェクトが個人オブジェクトであるか否かを判断する（ステップＳ３５７）。対象のオブジェクトが個人オブジェクトでない場合（ステップＳ３５７においてＮＯの場合）には、処理はステップＳ３５９へ進む。
【０１２１】
これに対して、対象のオブジェクトが個人オブジェクトである場合（ステップＳ３５７においてＹＥＳの場合）には、読み取り専用の処理を実行する（ステップＳ３５８）。具体的な一例として、操作を行なおうとしたユーザに対して、「読み取り専用」である旨の警告を行なう。そして、処理はリターンする。あるいは、操作対象のオブジェクトのオーナーに対して、変更操作に対する許可を求めるメッセージを通知してもよい。この場合には、オーナーから変更操作の許可が得られたことを条件として、処理をステップＳ３５９に進めてもよい。
【０１２２】
ステップＳ３５９では、ユーザからの操作指示に従って、対象のオブジェクトに対する変更操作（オブジェクトの移動・変更・削除・属性変更）を実行する。その後、処理はリターンする。
【０１２３】
＜本実施の形態による作用・効果＞
この発明の実施の形態によれば、個人作業モードのワークスペースＷＳ２上でユーザが新規作成した、もしくは変更を行なったオブジェクトについては、「個人オブジェクト」として取扱われる。この「個人オブジェクト」は、ユーザが共同作業モードへ切替えた場合に、共同作業モードのワークスペースＷＳ１に反映される。共同作業モードのワークスペースＷＳ１上では、この個人オブジェクトに対して変更や削除などが指示されると、当該個人オブジェクトに対する改変を保護するための処理が実行される。典型的には、当該個人オブジェクトが読み取り専用として取扱われる。
【０１２４】
これにより、個人作業モードのワークスペースＷＳ２上でいずれかのユーザが作成したオブジェクトが、共同作業モードのワークスペースＷＳ１上で他のユーザのミスなどによって変更や削除されるような事態を回避することができる。また、複数の個人オブジェクトをマージ（結合）して、１つのオブジェクト（成果物）などにまとめるような場合にも、ミスを低減して、効率的に作業を行なうことができる。さらに、共同作業モードのワークスペースＷＳ１上において、個人オブジェクトであることを示す表示がなされることで、当該共同作業モードのワークスペースＷＳ１に参加しているそれぞれのユーザは、いずれのオブジェクトに対して変更操作を行なうことができるのかを、一見して把握することができる。
【０１２５】
［実施の形態２］
上述の実施の形態１では、サーバ−クライエント構成のシステムについて例示した。一方、以下に例示する実施の形態２では、それぞれのｎｏｄｅが互いに連係してワークスペースＷＳを提供するためのワークスペース定義ファイルなどを共有する構成について例示する。
【０１２６】
＜ワークスペースの全体構成＞
図１８は、この発明の実施の形態２に従うワークスペースを提供するためのシステムの概略構成図である。
【０１２７】
図１８を参照して、本実施の形態に従うシステムは、ネットワークＮＷを介して互いにデータ通信可能に接続されたデバイスである、複数の情報処理装置ＰＣ１〜ＰＣ３で構成される。
【０１２８】
これらの情報処理装置ＰＣ１〜ＰＣ３の各々は、ワークスペース定義ファイル１００および実体ファイル１２０を共通に保持・管理することで、複数のユーザによる同時アクセス可能な仮想空間（共同作業空間）を提供する。すなわち、いずれかの情報処理装置ＰＣ上でユーザ操作によってワークスペース定義ファイルが変更されると、当該変更後のワークスペース定義ファイルを変更するための情報（変更に係るワークスペース定義ファイルの全部または一部）が他の情報処理装置ＰＣにも送信される。このような同期処理が随時行われることで、すべての情報処理装置ＰＣにおいて、実質的に同一のワークスペースが提供されることになる。
【０１２９】
なお、それぞれの情報処理装置ＰＣは、論理的に相互にデータ通信可能であれば、必ずしも同一階層のネットワークに接続されている必要はない。
【０１３０】
このように、本実施の形態に従うシステムにおける情報処理装置ＰＣは、上述の実施の形態１におけるサーバｎｏｄｅおよびクライエントｎｏｄｅの機能を統合させたものとみることもできる。従って、実施の形態２に係る説明では、情報処理装置ＰＣを単に「ｎｏｄｅ」とも称す。
【０１３１】
＜ハードウェア構成＞
情報処理装置ＰＣ（ｎｏｄｅ）のハードウェア構成は、図２と同様であるので、詳細な説明は繰り返さない。
【０１３２】
＜全体処理概要＞
本実施の形態に従うワークスペースにおいても、上述の実施の形態１と同様に、各ｎｏｄｅにおいて、「共同作業モード」と「個人作業モード」との切替機能が提供される。
【０１３３】
特に、本実施の形態に従うシステムにおいても、個人作業モードから共同作業モードに移行した後、個人作業モードにおいて各ユーザが新規作成した、もしくは変更を行なったオブジェクトについては、「個人オブジェクト」として取扱われる。この「個人オブジェクト」は、共同作業モードにおいて、改変を保護するための処理（典型的には、「読み取り専用」）の処理が実行される。言い換えれば、「個人オブジェクト」の属性が付加されたオブジェクトは、読み取り専用の属性が付加される。そのため、共同作業モードにおいて、この読み取り専用に設定された個人オブジェクトに対しては、変更や削除などの操作が禁止される。
【０１３４】
なお、本実施の形態では、それぞれのｎｏｄｅがワークスペース定義ファイル１００および実体ファイル１２０を管理・保持するので、ｎｏｄｅ間の同期処理が上述の実施の形態１とは異なっている。この同期処理については、後述する。その他の処理については、その概略において、上述の実施の形態１と同様であるので、詳細な説明は繰り返さない。
【０１３５】
＜データ構造＞
本実施の形態に従うワークスペース定義ファイル１００などのデータ構造は、上述の図６などと同様であるので、詳細な説明は繰り返さない。
【０１３６】
＜制御構造＞
図１９は、この発明の実施の形態２に従う各情報処理装置ＰＣの制御構造を示すブロック図である。情報処理装置ＰＣ（ｎｏｄｅ）の各々は、その制御構造として、作業モード制御部２５０と、データ操作部２５２と、同期制御部２５４と、描画部２５６と、ユーザ認証部２５８と、データ送受信部２６０と、属性変更部２６４とを含む。データ格納部２６２は、ハードディスク部２１１（図２）の任意の領域として提供され、データ送受信部２６０は、通信インターフェイス２０７（図２）および関連するドライバソフトの協同によって提供され、その他の各部は、代表的に、ＣＰＵ２０１（図２）がプログラムをメモリ部２１３（図２）に展開し、各コマンドを実行することで提供される。なお、これらの機能の全部または一部をハードウェアによって実現してもよい。
【０１３７】
データ格納部２６２は、ワークスペースを構成するためのワークスペース定義ファイル１００と、ワークスペース定義ファイル１００内でリンクされた実体ファイル１２０と、ネットワークＮＷ（図１）を介して接続可能な他のｎｏｄｅ（情報処理装置ＰＣ）を特定するための情報（たとえば、ＩＰアドレスなどの各ｎｏｄｅを一意に特定できるユニークな宛て先情報）をリスト形式で記述した接続テーブル１６０とを含む。
【０１３８】
さらに、データ格納部２６２には、ワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａを保持するための領域が予め設定されている。
【０１３９】
作業モード制御部２５０は、ユーザが入力装置２０９（図２）を介して入力する操作に従って、共同作業モードと個人作業モードとを切替える。そして、クライエントｎｏｄｅは、現在のモードをデータ操作部２５２へ通知する。
【０１４０】
データ操作部２５２は、作業モード制御部２５０によって共同作業モードから個人作業モードへ切替えられると、自装置のデータ格納部２６２に格納されているワークスペース定義ファイル１００および（必要に応じて）実体ファイル１２０が、それぞれワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａとしてコピーされる。そして、これらのワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａに基づいて、個人作業モードにおけるワークスペースＷＳ２が提供される。すなわち、共同作業モードから個人作業モードへの切替直後では、ワークスペース定義ファイル１００および実体ファイル１２０とワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａは、それぞれ同一のものとなる。
【０１４１】
さらに、データ操作部２５２は、作業モード制御部２５０によって個人作業モードから共同作業モードへ切替えられると、ワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａでの変更内容をそれぞれワークスペース定義ファイル１００および実体ファイル１２０へ反映する。
【０１４２】
同期制御部２５４は、ワークスペース定義ファイル１００および（必要に応じて）実体ファイル１２０を他のｎｏｄｅ（情報処理装置ＰＣ）との間で同期する。すなわち、同期制御部２５４は、自ｎｏｄｅにおいてワークスペース定義ファイル１００および／または実体ファイル１２０に何らかの変更がなされると、変更後のワークスペース定義ファイル１００および／または実体ファイル１２０の全部または一部（差分）を、当該ワークスペースＷＳ１を形成する他のｎｏｄｅへそれぞれ送信する。また、同期制御部２５４は、変更後のワークスペース定義ファイル１００および／または実体ファイル１２０の全部または一部（差分）を他のｎｏｄｅから受信すると、それに応じて、自装置のデータ格納部２６２に記憶されているワークスペース定義ファイル１００および／または実体ファイル１２０を更新する。
【０１４３】
なお、上述したように、各情報処理装置ＰＣにおいて何らかの操作がなされることをイベントとしてこのような同期処理が実行されるようにしてもよいし、これに加えて、あるいはこれに代えて、所定周期毎に、ワークスペースＷＳ１に参加するすべてのｎｏｄｅ（情報処理装置ＰＣ）の間で、データの一致／不一致をつきあわせ、この結果に応じて、ワークスペース定義ファイル１００および／または実体ファイル１２０の内容を変更するようにしてもよい。
【０１４４】
描画部２５６は、ワークスペース定義ファイル１００もしくは１００Ａの情報のうち、ユーザにより指定される所定範囲に含まれる情報に基づいて、描画処理（レンダリング処理）を行なう。すなわち、共同作業モードであれば、描画部２５６は、ワークスペース定義ファイル１００に基づいて、ユーザが指定した領域を可視化する。一方、個人作業モードであれば、描画部２５６は、ワークスペース定義ファイル１００Ａに基づいて、ユーザが指定した領域を可視化する。
【０１４５】
ユーザ認証部２５８は、各情報処理装置ＰＣを使用するユーザに対するユーザ認証処理を実行する。具体的には、ユーザ認証部２５８は、いずれかのユーザが各情報処理装置ＰＣの使用開始時に、ＩＤおよびパスワードの入力を促す。そして、ユーザからＩＤおよびパスワードの入力があると、予め格納されたユーザテーブル（図示しない）、あるいはユーザ認証サーバ（図示しない）に問合せを行ってユーザ認証処理を行なう。ユーザ認証が成功すると、ユーザによる当該情報処理装置ＰＣの使用を許可するとともに、現在使用中（ログイン中）のユーザ名を保持する。なお、本実施の形態に従う情報処理装置ＰＣでは、各装置を使用するユーザを識別できればよいので、パスワードを必ずしも要求しなくてもよい。
【０１４６】
データ送受信部２６０は、他のｎｏｄｅ（情報処理装置ＰＣ）との間のデータ通信を制御する。具体的には、データ送受信部２６０は、同期制御部２５４からの要求に応じて、データ格納部２６２に格納されているワークスペース定義ファイル１００および／または実体ファイル１２０の全部または一部を読み出して他のｎｏｄｅへ送信し、あるいは、他のｎｏｄｅから受信したワークスペース定義ファイル１００および／または実体ファイル１２０の全部または一部を同期制御部２５４へ渡す。なお、データ送受信部２６０は、データ格納部２６２に格納されている接続テーブル１６０を参照して、データの送受信を行なう相手を特定する。
【０１４７】
属性変更部３５２は、個人作業モードにおいて、いずれかのクライエントｎｏｄｅで新規作成された、もしくは変更された結果生じた個人オブジェクトの属性を、ユーザ操作に応じて変更する。より具体的には、属性変更部３５２は、各個人オブジェクトのオーナーもしくは当該オーナーから所定の権限を与えられているユーザが、当該個人オブジェクトを共有オブジェクトに変更するための指令を与えると、対象のオブジェクトの属性を変更する。さらに、属性変更部３５２は、共有オブジェクトとして存在するオブジェクトを個人オブジェクトに変更することもできる。具体的には、属性変更部３５２は、ワークスペース定義ファイル１００の記述に対して、この<localObject/>タグを削除し、もしくは、この<localObject/>タグを付加することで、属性の変更を実現する。
【０１４８】
＜同期処理＞
上述したように、本実施の形態に従うシステムでは、各ｎｏｄｅがワークスペース定義ファイル１００を共有することで、共同作業モードにおけるワークスペースＷＳ１を各ｎｏｄｅのユーザに提供する。このようなワークスペースＷＳ１を提供するため、共同作業モードでは、ｎｏｄｅ間でワークスペース定義ファイル１００の同期処理が継続的に実行される。
【０１４９】
まず、図２０〜図２３を参照して、本実施の形態に従うワークスペースの共同作業モードにおける同期処理について説明する。なお、図２０〜図２３に示す例は、図３に示すワークスペース定義ファイルに対応している。
【０１５０】
図２０は、この発明の実施の形態２に従うワークスペースのある状態を示す図である。図２１は、図２０に示す状態において、ｎｏｄｅ１でユーザ操作が行なわれた直後の状態を示す図である。図２２は、図２１の後に同期処理中の状態を示す図である。図２３は、図２２に示すユーザ操作に係る同期処理が完了した状態を示す図である。
【０１５１】
図２０を参照して、共同作業モードにおいて同期処理が完了している状態では、ｎｏｄｅ１〜ｎｏｄｅ３の各々は、同一の内容が記述されたワークスペース定義ファイル１００を保持している。
【０１５２】
次に、図２０に示す状態において、ｎｏｄｅ１のユーザが何らかの操作を行なった場合について説明する。一例として、ｎｏｄｅ１のユーザがマウスなどの入力装置２０９を操作して、ワークスペース上のオブジェクトＯＢＪ１（図３参照）をドラッグし、オブジェクトＯＢＪ１の位置を変更したとする。このｎｏｄｅ１のユーザ操作に伴って、ｎｏｄｅ１のデータ操作部２５２（図１９）は、オブジェクトＯＢＪ１の変更後の位置情報を取得し、自装置のデータ格納部２６２（図１９）に格納されているワークスペース定義ファイル１００中の対応するタグの値を変更する。
【０１５３】
具体的には、図２１に示すように、ｎｏｄｅ１の保持するワークスペース定義ファイル１００のオブジェクトＯＢＪ１を記述する<point>タグ１０８の値が「x='120' y='250'」から「x='200' y='300'」に書き換えられる。
【０１５４】
このワークスペース定義ファイル１００の変更に伴って、ｎｏｄｅ１の同期制御部２５４（図１９）は、他のｎｏｄｅに対して、この変更が反映されるように同期処理を実行する。具体的には、図２２に示すように、ｎｏｄｅ１の同期制御部２５４は、自装置におけるワークスペース定義ファイル１００の変更後と変更前との差分を示す変更情報データ１０２を、ワークスペースに参加している他のｎｏｄｅの各々へ送信（たとえば、マルチキャスト送信）する。なお、このワークスペースに参加しているｎｏｄｅは、接続テーブル１６０を参照することで特定される。
【０１５５】
図２２に示す変更情報データ１０２の内容の一例としては、行頭に「−」の記号を付した削除行指示１０４と、行頭に「＋」の記号を付した追加行指示１０６とを含む。この削除行指示１０４は、現在のワークスペース定義ファイル１００から削除すべき内容を示し、追加行指示１０６は、現在のワークスペース定義ファイル１００に追加すべき内容を示す。
【０１５６】
なお、この変更情報データ１０２には、当該変更情報データ１０２の送信元および送信先と特定するための情報（図示しない）も併せて付加される。
【０１５７】
この変更情報データ１０２を受信したｎｏｄｅ２およびｎｏｄｅ３は、この変更情報データ１０２に基づいて、各自のデータ格納部２６２に格納されたワークスペース定義ファイル１００の内容を変更する。この結果、図２３に示すように、ワークスペースに参加しているすべてのｎｏｄｅで変更後のワークスペース定義ファイル１００が共通に保持されるようになる。
【０１５８】
以下、いずれのｎｏｄｅにおいてユーザがなされたとしても、上述と同様の同期処理が実行される。
【０１５９】
＜モード切替処理＞
それぞれのｎｏｄｅにおいて、個人作業モードから共同作業モードへのモード切替が実行されると、個人作業モードにおいて新規作成された個人オブジェクトが、他のｎｏｄｅとの間で共有されるワークスペース定義ファイルに反映される。すなわち、自装置で保持・管理されるワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａと、自装置で保持・管理するワークスペース定義ファイル１００および実体ファイル１２０との間で変更反映処理が実行される。この変更反映処理の実行後、他のｎｏｄｅとの間で同期処理が実行されることで、すべてのｎｏｄｅで変更反映後のワークスペース定義ファイル１００および実体ファイル１２０が共有されることになる。
【０１６０】
その他の処理については、上述の実施の形態１と同様であるので、詳細な説明は繰り返さない。
【０１６１】
＜共同作業モードにおける個人オブジェクトの取り扱い＞
共同作業モードにおける個人オブジェクトの取り扱いについても、上述の実施の形態１と同様であるので、詳細な説明は繰り返さない。
【０１６２】
＜処理手順＞
以上説明した内容を実現するための処理手順について説明する。概略の処理手順については、上述の実施の形態１と同様であるので、異なる処理手順についてのみ、以下説明する。
【０１６３】
まず、この発明の実施の形態２に従う全体処理手順については、図１１と同様であるので、詳細な説明は繰り返さない。また、図１０のステップＳ２に示すモード切替処理の処理手順についても、図１１と同様であるので、詳細な説明は繰り返さない。
【０１６４】
図２４は、この発明の実施の形態２に従う、図１１のステップＳ２３に示す個人作業モードへの切替処理の処理手順を示すフローチャートである。なお、図２４に示す処理手順は、典型的には、サブルーチンとして提供される。
【０１６５】
図２４を参照して、自装置で保持している現在のワークスペース定義ファイル１００および（必要に応じて）実体ファイル１２０をコピーして、それぞれワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａとして生成する（ステップＳ２３１Ａ）。
【０１６６】
その後、メモリ部２１３もしくはハードディスク部（ＨＤＤ）２１１（図２）に保持されている「モード状態」の値を「個人作業モード」に変更する（ステップＳ２３２Ａ）。そして、処理はリターンする。
【０１６７】
図２５は、この発明の実施の形態２に従う、図１１のステップＳ２４に示す共同作業モードへの切替処理の処理手順を示すフローチャートである。なお、図２５に示す処理手順は、典型的には、サブルーチンとして提供される。
【０１６８】
図２５を参照して、自装置に保持・管理されているワークスペース定義ファイル１００Ａおよび実体ファイル１２０Ａのうち、個人オブジェクトの記述およびそれに関連付けられた実体ファイルを抽出する（ステップＳ２４１Ａ）。続いて、抽出した個人オブジェクトの記述およびそれに関連付けられた実体ファイルで、自装置が保持・管理するワークスペース定義ファイル１００および実体ファイル１２０を更新する（ステップＳ２４２Ａ）。さらに、他のｎｏｄｅとの間で、更新後のワークスペース定義ファイル１００および実体ファイル１２０の同期処理を実行する（ステップＳ２４３Ａ）。
【０１６９】
その後、メモリ部２１３もしくはハードディスク部（ＨＤＤ）２１１（図２）に保持されている「モード状態」の値を「共同作業モード」に変更する（ステップＳ２４４Ａ）。そして、処理はリターンする。
【０１７０】
図１０のステップＳ３に示すワークスペース処理の処理手順についても、図１４と同様であるので、詳細な説明は繰り返さない。
【０１７１】
図２６は、この発明の実施の形態２に従う、図１５のステップＳ３３に示す共同作業モード処理の処理手順を示すフローチャートである。なお、図２６に示す処理手順は、典型的には、サブルーチンとして提供される。
【０１７２】
図２６を参照して、自装置に保持・管理されているワークスペース定義ファイル１００を読出す（ステップＳ３４１Ａ）。続いて、ユーザ操作に応じて、図１７に示すオブジェクト操作を実行する（ステップＳ３４２Ａ）。
【０１７３】
そして、このオブジェクト操作に従ってワークスペース定義ファイル１００および／または実体ファイル１２０の内容を更新する（ステップＳ３４３Ａ）とともに、当該更新後のワークスペース定義ファイル１００の情報のうち、ユーザにより指定される所定範囲に含まれる情報に基づいて、描画処理（レンダリング処理）を行なう（ステップＳ３４４Ａ）。さらに、他のｎｏｄｅとの間で、更新後のワークスペース定義ファイル１００および実体ファイル１２０の同期処理を実行する（ステップＳ３４５Ａ）。そして、処理はリターンする。
【０１７４】
図１４のステップＳ３４に示す個人作業モード処理の処理手順についても、図１７と同様であるので、詳細な説明は繰り返さない。さらに、図２６のステップＳ３３４および／または図１６のＳ３４２に示すオブジェクト操作の処理手順についても、図１７と同様であるので、詳細な説明は繰り返さない。
【０１７５】
＜本実施の形態による作用・効果＞
この発明の実施の形態によれば、個人作業モードのワークスペースＷＳ２上でユーザが新規作成した、もしくは変更を行なったオブジェクトについては、「個人オブジェクト」として取扱われる。この「個人オブジェクト」は、ユーザが共同作業モードへ切替えた場合に、共同作業モードのワークスペースＷＳ１に反映される。共同作業モードのワークスペースＷＳ１上では、この個人オブジェクトに対して変更や削除などが指示されると、当該個人オブジェクトに対する改変を保護するための処理が実行される。典型的には、当該個人オブジェクトが読み取り専用として取扱われる。
【０１７６】
これにより、個人作業モードのワークスペースＷＳ２上でいずれかのユーザが作成したオブジェクトが、共同作業モードのワークスペースＷＳ１上で他のユーザのミスなどによって変更や削除されるような事態を回避することができる。また、複数の個人オブジェクトをマージ（結合）して、１つのオブジェクト（成果物）などにまとめるような場合にも、ミスを低減して、効率的に作業を行なうことができる。さらに、共同作業モードのワークスペースＷＳ１上において、個人オブジェクトであることを示す表示がなされることで、当該共同作業モードのワークスペースＷＳ１に参加しているそれぞれのユーザは、いずれのオブジェクトに対して変更操作を行なうことができるのかを、一見して把握することができる。
【０１７７】
［第１変形例]
上述の実施の形態１および２では、個人作業モードから共同作業モードへ移行した際に、それ以前の個人作業モードにおいて作成された個人オブジェクトがすべて反映される構成について例示したが、作業の進行状況によっては、他のユーザに閲覧されることを希望しないものも存在する。
【０１７８】
そこで、個人作業モードにおいて作成された個人オブジェクトのうち、オーナーのユーザが指定したものだけを共同作業モードにおいて閲覧可能な状態にすることが、状況によっては好ましい。以下、本変形例に従う処理について、図２７を参照して説明する。
【０１７９】
図２７は、この発明の実施の形態の第１変形例に従う特徴的な処理を説明するための図である。
【０１８０】
図２７（ａ）を参照して、ｎｏｄｅ１のユーザＡが、個人作業モードにおいて複数のオブジェクトＯＢＪ６，ＯＢＪ１１，ＯＢＪ１２を作成したとする。このとき、オブジェクトＯＢＪ１１およびＯＢＪ１２については、他のユーザとの間で協議できるほどの完成度に達していない場合には、ユーザＡは、これらのオブジェクトの公開を望まない場合もある。すなわち、他のユーザによる閲覧を希望しない場合もある。
【０１８１】
このような場合には、個人作業モードから共同作業モードへの移行前に、予め共同作業モードに対して反映すべき範囲ＳＬＡ（もしくは、具体的オブジェクト）を指定しておき、この範囲ＳＬＡに含まれるオブジェクトについてのみ、共同作業モードに対して反映するようにしてもよい。より具体的には、この範囲ＳＬＡに含まれるオブジェクトの記述のみが、ワークスペース定義ファイル１００および／または実体ファイル１２０に反映される。
【０１８２】
［第２変形例］
上述の実施の形態では、本発明を個人作業モードと共同作業モードとの２つのモード間でのワークスペースの切替え処理に適用した構成について例示した。しかしながら、本発明は、これらの形態に限られず、２つの独立したワークスペースを相互に切替えるような使用形態に適用可能である。
【０１８３】
一例として、あるプロジェクトを進める際に、当該プロジェクトを司る部署が設けられ、さらにこの部署には、当該プロジェクトに必要な複数のコンポーネントに対応させて、複数のチームが設けられる場合がある。このような業務分担を考えると、当該部署のメンバーが共同作業するワークスペースと、各チームのメンバーが共同作業モードするワークスペースとがそれぞれ独立に設けられる。一方で、多くのメンバーは、当該部署に所属するとともに、いずれかのチームにも所属することとなるので、少なくとも２つのワークスペースに参加する必要がある。
【０１８４】
より具体的には、各チームのメンバー（すなわち、部署の一部のメンバー）が共同作業可能なワークスペース（以下、「チーム内共同作業用ワークスペース」とも称す。）と、部署のすべてのメンバーが共同作業可能なワークスペース（以下、「部署内共同作業用ワークスペース」とも称す。）とが設けられており、典型的には、各チーム内共同作業用ワークスペースにおいて作成されたオブジェクトが、部署内共同作業用ワークスペース上で、他のチームのメンバーや当該部署の責任者によって、精査される。
【０１８５】
このような使用形態においては、チーム内共同作業用ワークスペース上で作成されたオブジェクトを、何らの制限なく、部署内共同作業用ワークスペースへコピー（転送）することは、部署内共同作業用ワークスペースの内容を不用意に変更等してしまうおそれがある。そもそも、部署内共同作業用ワークスペースとチーム内共同作業用ワークスペースとは、その用途および目的が異なるので、それぞれで作成されたオブジェクトが混同すると、不都合が生じる可能性がある。
【０１８６】
そこで、チーム内共同作業用ワークスペースで作成されたオブジェクトを部署内共同作業用ワークスペースにコピーする場合などには、チーム内共同作業用ワークスペースで作成されたオブジェクトに上述と同様の<localObject/>タグを付加することで、それぞれのワークスペース上で作成されたオブジェクト同士が混同することを回避できる。また、このような<localObject/>タグが付加されたオブジェクトについては、部署内共同作業用ワークスペースにおいて、読み取り専用として取り扱われる。
【０１８７】
あるいは、<localObject/>タグに代えて、別のタグを用いてもよい。たとえば、オブジェクトの生成されたワークスペースに特有のタグ、たとえば<teamObject/>といったタグを付加することで、複数のチームからそれぞれコピーされた複数のオブジェクトの各々に対して、異なる取り扱いを行なうこともできるようになる。すなわち、チームＡに対して設けられたチーム内共同作業用ワークスペースと、チームＢに対して設けられたチーム内共同作業用ワークスペースとの間で、取り扱いを変更することもできる。
【０１８８】
［その他の実施の形態］
本発明に係るプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明に係るプログラムに含まれ得る。
【０１８９】
さらに、本発明に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明に係るプログラムに含まれ得る。
【０１９０】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
【０１９１】
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
【０１９２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１９３】
【図１】この発明の実施の形態１に従うワークスペースを提供するためのシステムの概略構成図である。
【図２】この発明の実施の形態１に従う情報処理装置の代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【図３】この発明の実施の形態１に従うワークスペースの一例を模式的に示す図である。
【図４】図３（ａ）に示す共同作業モードのワークスペースの状態からクライエントｎｏｄｅ１が個人作業モードに移行した後、クライエントｎｏｄｅ１のユーザＡによる作業中の状態の一例を示す図である。
【図５】図４に示す個人作業モードから共同作業モードへ復帰した後の状態の一例を示す図である。
【図６】この発明の実施の形態１に従うワークスペース定義ファイルの内容の一例を示す図である。
【図７】この発明の実施の形態に従う各情報処理装置の制御構造を示すブロック図である。
【図８】図４に示す個人オブジェクトであるオブジェクトを定義する記述の一例を示す図である。
【図９】図４に示すワークスペースを提供するためのワークスペース定義ファイルの一例を示す図である。
【図１０】この発明の実施の形態１に従う全体処理手順を示すフローチャートである。
【図１１】図１０のステップＳ２に示すモード切替処理の処理手順を示すフローチャートである。
【図１２】図１１のステップＳ２３に示す個人作業モードへの切替処理の処理手順を示すフローチャートである。
【図１３】図１２のステップＳ２４に示す共同作業モードへの切替処理の処理手順を示すフローチャートである。
【図１４】図１０のステップＳ３に示すワークスペース処理の処理手順を示すフローチャートである。
【図１５】図１４のステップＳ３３に示す共同作業モード処理の処理手順を示すフローチャートである。
【図１６】図１４のステップＳ３４に示す個人作業モード処理の処理手順を示すフローチャートである。
【図１７】図１５のステップＳ３３４および／または図１６のＳ３４２に示すオブジェクト操作の処理手順を示すフローチャートである。
【図１８】この発明の実施の形態２に従うワークスペースを提供するためのシステムの概略構成図である。
【図１９】この発明の実施の形態２に従う各情報処理装置ＰＣの制御構造を示すブロック図である。
【図２０】この発明の実施の形態２に従うワークスペースのある状態を示す図である。
【図２１】図２０に示す状態において、ｎｏｄｅ１でユーザ操作が行なわれた直後の状態を示す図である。
【図２２】図２１の後に同期処理中の状態を示す図である。
【図２３】図２２に示すユーザ操作に係る同期処理が完了した状態を示す図である。
【図２４】この発明の実施の形態２に従う、図１１のステップＳ２３に示す個人作業モードへの切替処理の処理手順を示すフローチャートである。
【図２５】この発明の実施の形態２に従う、図１１のステップＳ２４に示す共同作業モードへの切替処理の処理手順を示すフローチャートである。
【図２６】この発明の実施の形態２に従う、図１５のステップＳ３３に示す共同作業モード処理の処理手順を示すフローチャートである。
【図２７】この発明の実施の形態の第１変形例に従う特徴的な処理を説明するための図である。
【符号の説明】
【０１９４】
２０１  ＣＰＵ、２０３  内部バス、２０５  モニター、２０７  通信インターフェイス、２０９  入力装置、２１１  ハードディスク部、２１３  メモリ部、２１５  ＣＤ−ＲＯＭドライブ、２１７  フレキシブルディスク（ＦＤ）ドライブ、２１５ａ  ＣＤ−ＲＯＭ、２１７ａ  フレキシブルディスク、２５０  作業モード制御部、２５２  データ操作部、２５４  同期制御部、２５６  描画部、２５８  ユーザ認証部、２６０，３６０  データ送受信部、２６２，３６２  データ格納部、２６４，３５２  属性変更部、３５０  データ更新部、３５４  ユーザ認証部、ＮＷ  ネットワーク、ＰＣ，ＰＣ１〜ＰＣ３  情報処理装置、ＳＲＶ  サーバ装置。
【図１】
2010108261.tif 000003
【図２】
2010108261.tif 000004
【図３】
2010108261.tif 000005
【図４】
2010108261.tif 000006
【図５】
2010108261.tif 000007
【図６】
2010108261.tif 000008
【図７】
2010108261.tif 000009
【図８】
2010108261.tif 000010
【図９】
2010108261.tif 000011
【図１０】
2010108261.tif 000012
【図１１】
2010108261.tif 000013
【図１２】
2010108261.tif 000014
【図１３】
2010108261.tif 000015
【図１４】
2010108261.tif 000016
【図１５】
2010108261.tif 000017
【図１６】
2010108261.tif 000018
【図１７】
2010108261.tif 000019
【図１８】
2010108261.tif 000020
【図１９】
2010108261.tif 000021
【図２０】
2010108261.tif 000022
【図２１】
2010108261.tif 000023
【図２２】
2010108261.tif 000024
【図２３】
2010108261.tif 000025
【図２４】
2010108261.tif 000026
【図２５】
2010108261.tif 000027
【図２６】
2010108261.tif 000028
【図２７】
2010108261.tif 000029