(57)【要約】  Ｎｏｄｅ１が何らかの原因によって、ネットワーク（ＮＷ）との接続が遮断されオフライン（通信遮断状態）となった場合には、Ｎｏｄｅ１の参照制御部は、データ格納部に格納されたワークスペースデータの実体部分（各オブジェクトを定義する記述）を削除する。これにより、Ｎｏｄｅ１では、ワークスペースに含まれるオブジェクトに対するアクセスが不能となる。これにより、これらのオブジェクトに関するデータがゴミとして存在するようなことを回避できる、かつ、当該データが漏洩するようなことを回避できる。
2010016382.tif 000002
【特許請求の範囲】
【請求項１】
記憶部（２１１；２６２）を有する複数の情報処理装置（ＰＣ）を用いて、複数のユーザによる同時アクセス可能な仮想空間（ＷＳ）を提供する情報処理方法であって、
前記情報処理装置が、前記仮想空間を構成するデータの少なくとも一部を自身の記憶部に格納するステップ（図６〜図９）と、
前記情報処理装置が、他の情報処理装置との間で通信遮断状態であるか否かを判断するステップ（Ｓ１００）と、
前記情報処理装置が、前記通信遮断状態であると判断した場合に、当該時点において前記記憶部に格納されている前記データに対するユーザの参照を不能にするステップ（Ｓ１０８）とを備える、情報処理方法。
【請求項２】
ユーザの参照を不能にする前記ステップは、前記記憶部に格納されている前記データを削除するステップ（Ｓ１０８）を含む、請求の範囲第１項に記載の情報処理方法。
【請求項３】
前記情報処理装置が、前記通信遮断状態への移行後、通信可能状態に復帰したか否かを判断するステップ（Ｓ１２４）と、
前記情報処理装置が、前記通信可能状態に復帰したと判断した場合に、他の情報処理装置に前記仮想空間を構成するデータを要求するステップ（Ｓ１２６）と、
前記情報処理装置が、前記他の情報処理装置から前記仮想空間を構成するデータの受信に応答して、自身の記憶部の内容を更新するステップ（Ｓ１３２）とをさらに備える、請求の範囲第２項に記載の情報処理方法。
【請求項４】
データを削除する前記ステップは、前記仮想空間を特定するための情報を前記記憶部に保持した状態で、前記仮想空間を構成する実体部分を削除するステップを含み、
前記情報処理方法は、
前記情報処理装置が、ユーザ操作に応答して、前記仮想空間の全体を削除するステップ（図１５）と、
前記情報処理装置が、他の情報処理装置から前記仮想空間を構成するデータの要求を受信した場合に、要求された仮想空間の全体が削除済であるか否かを判断するステップ（Ｓ１１２）と、
前記情報処理装置が、前記要求された仮想空間の全体が削除済であると判断した場合に、要求元の情報処理装置に、前記要求された仮想空間の全体が削除済であることを通知するステップ（Ｓ１１４）と、
前記情報処理装置が、他の情報処理装置からの前記仮想空間の全体が削除済であることの通知の受信に応答して、前記仮想空間を特定するための情報を含む前記仮想空間を構成するデータの全体を削除するステップ（Ｓ１３０）とをさらに備える、請求の範囲第３項に記載の情報処理方法。
【請求項５】
ユーザの参照を不能にする前記ステップは、
前記複数の情報処理装置の間で共通に保持する暗号化鍵を用いて、前記記憶部に格納されている前記データを暗号化するステップ（図１８）と、
暗号化に用いた前記暗号化鍵を削除するステップ（図１８）とを含む、請求の範囲第１項に記載の情報処理方法。
【請求項６】
前記情報処理装置が、前記通信遮断状態への移行後、通信可能状態に復帰したか否かを判断するステップ（Ｓ１２４）と、
前記情報処理装置が、前記通信可能状態に復帰したと判断した場合に、他の情報処理装置に共通鍵を要求するステップ（図１９）と、
前記他の情報処理装置からの前記共通鍵の受信に応答して、前記共通鍵を用いて、前記暗号化したデータを復号化するステップ（図１９）とをさらに備える、請求の範囲第５項に記載の情報処理方法。
【請求項７】
ユーザの参照を不能にする前記ステップは、
前記通信遮断状態へ移行してからの時間を計測するステップ（Ｓ１４０）と、
計測された時間が所定値に到達した場合に、前記データに対するユーザの参照を不能にするステップ（Ｓ１０８）とを含む、請求の範囲第１項に記載の情報処理方法。
【請求項８】
前記所定値は、前記仮想空間を構成するデータおよび前記仮想空間に含まれるオブジェクトの少なくとも一方の単位で規定される、請求の範囲第７項に記載の情報処理方法。
【請求項９】
ユーザの参照を不能にする前記ステップは、前記通信遮断状態であると判断した場合であっても、ユーザが前記データを参照中であれば、前記データに対するユーザの参照を可能に維持するステップを含む、請求の範囲第１項に記載の情報処理方法。
【請求項１０】
他の情報処理装置とデータ通信可能に構成され、複数のユーザによる同時アクセス可能な仮想空間（ＷＳ）を提供する情報処理装置（ＰＣ）であって、
前記仮想空間を構成するデータの少なくとも一部を格納するための記憶部（２１１；２６２）と、
他の情報処理装置との間で通信遮断状態であるか否かを判断するための部位（２０１；２６０）と、
前記通信遮断状態であると判断した場合に、当該時点において前記記憶部に格納されている前記データに対するユーザの参照を不能にするための部位（２０１；２５０）とを備える、情報処理装置。
【請求項１１】
記憶部（２１１；２６２）を有する複数の情報処理装置（ＰＣ）を用いて、複数のユーザによる同時アクセス可能な仮想空間を提供するためのプログラムを格納した記憶媒体であって、前記プログラムは、前記情報処理装置によって実行されると、前記情報処理装置に、
前記仮想空間を構成するデータの少なくとも一部を前記記憶部に格納するステップ（図６〜図９）と、
他の情報処理装置との間で通信遮断状態であるか否かを判断するステップ（Ｓ１００）と、
前記通信遮断状態であると判断した場合に、当該時点において前記記憶部に格納されている前記データに対するユーザの参照を不能にするステップ（Ｓ１０８）とを行なわせる、プログラムを格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のユーザが共同作業を行なうことが可能なワークスペースを提供する情報処理方法、情報処理装置およびそのプログラムを格納した記憶媒体に関する。
【背景技術】
【０００２】
複数のユーザによる共同作業を効率化するために共同作業空間（以下、「ワークスペース」とも称す。）を提供するアプリケーションが提案されている（たとえば、特開平０９−３０５５４２号公報および特開平１１−２８８４２８号公報など）。このワークスペースは、複数のユーザが同時にアクセス可能な仮想空間である。典型的には、ワークスペースは、ネットワーク接続などの互いにデータ通信可能に構成された複数の情報処理装置（以下、「ｎｏｄｅ（ノード）」とも称す。）の間でデータが共有されることによって実現される。このようなワークスペースを利用することで、遠隔地にいるユーザ同士でも共同作業（コラボレーション）が可能となる。【０００３】
このようなワークスペースを実現するための一例として、ネットワーク接続された情報処理装置の各々がワークスペースを構成するデータを共通に保持する構成が採用される。このような構成下において、ユーザがいずれかの情報処理装置を操作して、ワークスペース上のテキスト、線、画像といったオブジェクトに対して、新規作成、変更、削除といった何らかの操作をした場合を考える。この場合には、ユーザからの操作がなされた情報処理装置に加えて、データ通信可能に構成された他の情報処理装置に対しても、当該操作を反映するためのデータ更新処理が実行される。【０００４】
より具体的には、データ更新処理を実行するための指令が、何らかの操作がなされた情報処理装置から他の情報処理装置へ送信される。そして、この指令を受信した情報処理装置の各々が更新処理を実行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０９−３０５５４２号公報
【特許文献２】特開平１１−２８８４２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述のような更新処理は、その時点においてワークスペースに参加している情報処理装置の間で実行されるものであり、たとえば、電源オフ状態やオフラインとなっている情報処理装置が保持するワークスペースを構成するデータに対しては、更新処理を行なうことができない。【０００７】
そのため、たとえば、いずれかのワークスペースが不要となり、当該ワークスペース全体を削除するような操作を行なった場合であっても、かつて当該ワークスペースに参加していたが、当該削除の操作がなされたタイミングにおいて、一時的に電源オフまたはオフラインとなっていた情報処理装置は、ワークスペースの削除の指令を受信することができない。すなわち、削除の操作がなされた場合に、一時的に電源オフまたはオフラインである情報処理装置が保持する、ワークスペースを構成するデータは半永久的に削除されないことになる。【０００８】
その結果、当該情報処理装置に保持されたワークスペースを構成するデータは、いわばゴミとなり、記憶装置の記憶可能容量を実質的に低減させる。あるいは、既に削除されたはずのデータを保持する情報処理装置がオンラインとなることで、他の情報処理装置との間でワークスペースが再度構築されてしまうおそれもある。さらに、削除されるべきデータが保持されたまま、当該情報処理装置を外部に持ち出してしまった場合には、情報漏洩などの問題を生じる可能性がある。【０００９】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、複数のユーザによる同時アクセス可能な仮想空間を提供するとともに、当該仮想空間を構成するデータに対する機密性を高めることのできる情報処理方法、情報処理装置およびプログラムを格納した記憶媒体を提供することである。
【課題を解決するための手段】
【００１０】
この発明のある局面に従えば、記憶部を有する複数の情報処理装置を用いて、複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理方法を提供する。本情報処理方法は、情報処理装置によって実行される次のステップを含む。仮想空間を構成するデータの少なくとも一部を自身の記憶部に格納するステップ、情報処理装置が、他の情報処理装置との間で通信遮断状態であるか否かを判断するステップ、および、情報処理装置が、通信遮断状態であると判断した場合に、当該時点において記憶部に格納されているデータに対するユーザの参照を不能にするステップ。【００１１】
好ましくは、ユーザの参照を不能にするステップは、記憶部に格納されているデータを削除するステップを含む。【００１２】
さらに好ましくは、本情報処理方法は、情報処理装置によって実行される次のステップをさらに含む。通信遮断状態への移行後、通信可能状態に復帰したか否かを判断するステップ、通信可能状態に復帰したと判断した場合に、他の情報処理装置に仮想空間を構成するデータを要求するステップ、および、他の情報処理装置から仮想空間を構成するデータの受信に応答して、自身の記憶部の内容を更新するステップ。【００１３】
さらに好ましくは、データを削除するステップは、仮想空間を特定するための情報を記憶部に保持した状態で、仮想空間を構成する実体部分を削除するステップを含む。本情報処理方法は、情報処理装置によって実行される次のステップをさらに含む。ユーザ操作に応答して、仮想空間の全体を削除するステップ、他の情報処理装置から仮想空間を構成するデータの要求を受信した場合に、要求された仮想空間の全体が削除済であるか否かを判断するステップ、要求された仮想空間の全体が削除済であると判断した場合に、要求元の情報処理装置に、要求された仮想空間の全体が削除済であることを通知するステップ、および、他の情報処理装置からの仮想空間の全体が削除済であることの通知の受信に応答して、仮想空間を特定するための情報を含む仮想空間を構成するデータの全体を削除するステップ。【００１４】
あるいは、好ましくは、ユーザの参照を不能にするステップは、複数の情報処理装置の間で共通に保持する暗号化鍵を用いて、記憶部に格納されているデータを暗号化するステップと、暗号化に用いた暗号化鍵を削除するステップとを含む。【００１５】
さらに好ましくは、本情報処理方法は、情報処理装置によって実行される次のステップをさらに含む。通信遮断状態への移行後、通信可能状態に復帰したか否かを判断するステップ、通信可能状態に復帰したと判断した場合に、他の情報処理装置に共通鍵を要求するステップ、および、他の情報処理装置からの共通鍵の受信に応答して、共通鍵を用いて、暗号化したデータを復号化するステップ。【００１６】
あるいは、好ましくは、ユーザの参照を不能にするステップは、通信遮断状態へ移行してからの時間を計測するステップと、計測された時間が所定値に到達した場合に、データに対するユーザの参照を不能にするステップとを含む。【００１７】
さらに好ましくは、所定値は、仮想空間を構成するデータおよび仮想空間に含まれるオブジェクトの少なくとも一方の単位で規定される。【００１８】
あるいは、好ましくは、ユーザの参照を不能にするステップは、通信遮断状態であると判断した場合であっても、ユーザがデータを参照中であれば、データに対するユーザの参照を可能に維持するステップを含む。【００１９】
この発明の別の局面に従えば、他の情報処理装置とデータ通信可能に構成され、複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理装置を提供する。本情報処理装置は、仮想空間を構成するデータの少なくとも一部を格納するための記憶部と、他の情報処理装置との間で通信遮断状態であるか否かを判断するための部位と、通信遮断状態であると判断した場合に、当該時点において記憶部に格納されているデータに対するユーザの参照を不能にするための部位とを含む。【００２０】
この発明のさらに別の局面に従えば、記憶部を有する複数の情報処理装置を用いて、複数のユーザによる同時アクセス可能な仮想空間を提供するためのプログラムを格納した記憶媒体を提供する。プログラムは、情報処理装置によって実行されると、情報処理装置に、仮想空間を構成するデータの少なくとも一部を記憶部に格納するステップと、他の情報処理装置との間で通信遮断状態であるか否かを判断するステップと、通信遮断状態であると判断した場合に、当該時点において記憶部に格納されているデータに対するユーザの参照を不能にするステップとを行なわせる。
【発明の効果】
【００２１】
この発明によれば、複数のユーザによる同時アクセス可能な仮想空間において、当該仮想空間を構成するデータに対する機密性を高めることができる。
【図面の簡単な説明】
【００２２】
【図１】この発明の実施の形態１に従うワークスペースを提供するためのシステムの概略構成図である。
【図２】この発明の実施の形態１に従う情報処理装置の代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【図３Ａ】この発明の実施の形態１に従うワークスペースの一例を模式的に示した図である。
【図３Ｂ】この発明の実施の形態１に従うワークスペースの一例を模式的に示した図である。
【図４】この発明の実施の形態１に従う情報処理装置の制御構造を示すブロック図である。
【図５】この発明の実施の形態１に従うワークスペースデータの内容の一例を示す図である。
【図６】この発明の実施の形態１に従うワークスペースのある状態を示す図である。
【図７】図６に示す状態において、Ｎｏｄｅ１でユーザ操作が行なわれた直後の状態を示す図である。
【図８】図７の後に同期処理中の状態を示す図である。
【図９】図７に示すユーザ操作に係る同期処理が完了した状態を示す図である。
【図１０】図１０は、この発明の実施の形態１に従うワークスペースにおいてＮｏｄｅ１がローカル環境に移行した状態を示す図である。
【図１１】この発明の実施の形態１に従うローカル環境であるか否かを判断する処理を示す図である。
【図１２】この発明の実施の形態１に従うワークスペースにおいてＮｏｄｅ１〜Ｎｏｄｅ３がローカル環境に移行した状態を示す図である。
【図１３】図１０に示すワークスペースにおいてＮｏｄｅ１がローカル環境からオンラインに移行した状態を示す図である。
【図１４】図１２に示すワークスペースにおいてＮｏｄｅ１〜Ｎｏｄｅ３がローカル環境からオンラインに移行した状態を示す図である。
【図１５】図１０に示すワークスペースにおいてＮｏｄｅ１がローカル環境である期間中にワークスペースの全体が削除された状態を示す図である。
【図１６】図１５に示すワークスペースにおいてＮｏｄｅ１がローカル環境からオンラインへ移行した状態を示す図である。
【図１７】この発明の実施の形態１に従う全体処理手順を示すフローチャートである。
【図１８】この発明の実施の形態１の第１変形例に従うワークスペースにおいてＮｏｄｅ１がローカル環境に移行した状態を示す図である。
【図１９】図１８に示すワークスペースにおいてＮｏｄｅ１がローカル環境からオンラインに移行直後の状態を示す図である。
【図２０】この発明の実施の形態１の第２変形例に従うワークスペースにおいてＮｏｄｅ１〜Ｎｏｄｅ３がローカル環境に移行した状態を示す図である。
【図２１Ａ】この発明の実施の形態１の第４変形例に従うワークスペースにおいて用いられるデータ構造を示す図である。
【図２１Ｂ】この発明の実施の形態１の第４変形例に従うワークスペースにおいて用いられるデータ構造を示す図である。
【図２２】この発明の実施の形態１の第５変形例に従うワークスペースを提供するためのシステムの概略構成図である。
【図２３】この発明の実施の形態２に従うワークスペースデータの内容の一例を示す図である。
【図２４】この発明の実施の形態２に従う各情報処理装置の制御構造を示すブロック図である。
【図２５】この発明の実施の形態２に従うワークスペースにおいてＮｏｄｅ１およびＮｏｄｅ２のいずれもがオンラインである状態を示す図である。
【図２６】図２５に示すワークスペースにおいてＮｏｄｅ１がオンラインからローカル環境に移行した直後の状態を示す図である。
【図２７】図２５に示すワークスペースにおいてＮｏｄｅ１がオンラインからローカル環境に移行して所定期間経過後の状態を示す図である。
【図２８】図２５に示すワークスペースにおいてＮｏｄｅ１がローカル環境からオンラインに移行した状態を示す図である。
【図２９】この発明の実施の形態２に従う全体処理手順を示すフローチャートである。
【図３０】この発明の実施の形態２の第１変形例に従うワークスペースデータの内容の一例を示す図である。
【発明を実施するための形態】
【００２３】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２４】
［実施の形態１］
（ワークスペースの全体構成）
図１は、この発明の実施の形態１に従うワークスペースを提供するためのシステムの概略構成図である。
【００２５】
図１を参照して、本実施の形態に従うシステムは、ネットワークＮＷを介して互いにデータ通信可能に接続されたデバイスである複数の情報処理装置ＰＣ１〜ＰＣ３（以下、「情報処理装置ＰＣ」あるいは「ｎｏｄｅ（ノード）」とも総称する。）を含む。本明細書において、「ｎｏｄｅ」は、ネットワーク接続された任意のデバイスを示し、特に、ネットワーク上を伝送する情報（データ）を受信して、当該情報を自身で処理可能なデバイスを示す。
【００２６】
これらの情報処理装置ＰＣ１〜ＰＣ３の各々は、ワークスペースを構成する共通のデータ（以下、「ワークスペースデータ」とも称す。）の全部または一部を保持することで、複数のユーザによる同時アクセス可能な仮想空間を提供する。すなわち、いずれかの情報処理装置ＰＣ上でユーザ操作によってワークスペースデータが変更されると、当該変更後のワークスペースデータへの変更を指示する情報（変更後ワークスペースデータの全部または一部）が他の情報処理装置ＰＣへ送信される。このような同期処理が随時行われることで、すべての情報処理装置ＰＣにおいて、実質的に同一のワークスペースが提供されることになる。
【００２７】
なお、それぞれの情報処理装置ＰＣは、論理的に相互にデータ通信可能であれば、必ずしも同一階層のネットワークに接続されている必要はない。
【００２８】
（ハードウェア構成）
図２は、この発明の実施の形態１に従う情報処理装置ＰＣの代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【００２９】
図２を参照して、本実施の形態に従う情報処理装置ＰＣは、オペレーティングシステムを含む各種プログラムを実行するＣＰＵ２０１と、ＣＰＵ２０１でのプログラムの実行に必要なデータを一時的に記憶するための記憶部としてのメモリ部２１３と、ＣＰＵ２０１で実行されるプログラムを不揮発的に記憶するためのハードディスク（ＨＤＤ）２１１とを含む。このようなプログラムは、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ２１５またはＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）ドライブ２１７によって、それぞれＣＤ−ＲＯＭ２１５ａまたはＦＤ２１７ａなどから読取られる。
【００３０】
ＣＰＵ２０１は、キーボード、マウスなどを含む入力装置２０９を介してユーザからの操作要求を受取る。ＣＰＵ２０１は、プログラムの実行によって生成される画面出力を表示部であるモニター２０５へ出力する。ＣＰＵ２０１は、ＬＡＮカードなどを含む通信インターフェイス２０７を介して、他の情報処理装置ＰＣおよび／またはサーバ装置ＳＲＶとの間でデータ通信を行なう。これらの部位は、内部バス２０３を介して互いに接続される。
【００３１】
本明細書における「ｎｏｄｅ」として機能するデバイスであれば、どのようなデバイスを用いてもよく、たとえば通信機能を有する携帯電話などを用いることもできる。
【００３２】
（ワークスペース）
本明細書において「ワークスペース」とは、複数のユーザによる同時アクセス可能な仮想空間を意味し、ワークスペースデータおよび当該ワークスペースデータに定義される任意数のオブジェクトデータなどを用いてワークスペースは提供される。なお、本明細書中では、ワークスペースデータおよびオブジェクトデータなどをレンダリング（可視化）した結果を「ワークスペース」という場合もある。
【００３３】
図３Ａおよび図３Ｂは、この発明の実施の形態１に従うワークスペースＷＳの一例を模式的に示した図である。
【００３４】
図３Ａには、可視化されたワークスペースＷＳの全体像の一例を示す。このワークスペースＷＳには、一例として、３つのオブジェクトＯＢＪ１〜ＯＢＪ３が含まれているとする。なお、本明細書において「オブジェクト」とは、ユーザによる各操作の対象となる対象物の単位である。具体的には、文字を示すテキストオブジェクト（ｔｅｘｔ）、描画を示す線オブジェクト（ｌｉｎｅ）、イメージを示す画像オブジェクト（ｉｍａｇｅ）といった、任意の電子的に取扱可能な情報を用いることができる。図３Ａに示す例では、オブジェクトＯＢＪ１として「画像オブジェクト」を例示し、オブジェクトＯＢＪ２として「文字オブジェクト」を例示し、オブジェクトＯＢＪ３として「線オブジェクト」を例示する。
【００３５】
ワークスペースＷＳのサイズは、自在に設定することができる。典型的に、ワークスペースＷＳのサイズは、各情報処理装置ＰＣのモニター２０５の表示サイズに比較して大きくなるように設定される。そのため、各情報処理装置ＰＣのモニター２０５には、図３Ｂに示すように、ワークスペースＷＳの一部の領域だけがレンダリング（可視化）される場合が多い。
【００３６】
ユーザは、キーボードやマウスなどからなる入力装置２０９（図２）を用いて、ワークスペースＷＳのうちモニター２０５にレンダリングする領域を選択する。さらに、ユーザは、各種操作ボタンを選択することで、および／または、表示されるオブジェクトを選択してドラッグすることで、目的のオブジェクトの新規作成、変更、削除といった操作を行なうことができる。
【００３７】
（制御構造）
図４は、この発明の実施の形態１に従う情報処理装置ＰＣの制御構造を示すブロック図である。
【００３８】
図４を参照して、情報処理装置ＰＣの各々は、その制御構造として、参照制御部２５０と、データ操作部２５２と、同期制御部２５４と、描画部２５６と、ユーザ認証部２５８と、データ送受信部２６０と、データ格納部２６２とを含む。データ格納部２６２は、ハードディスク２１１（図２）の任意の領域として提供される。データ送受信部２６０は、通信インターフェイス２０７（図２）および関連するドライバソフトの協同によって提供される。その他の部位は、代表的に、ＣＰＵ２０１（図２）がプログラムをメモリ部２１３（図２）に展開し、プログラムに含まれるコマンドを実行することで提供される。
【００３９】
また、データ格納部２６２は、ワークスペースを構成するワークスペースデータ２６２ａと、ネットワークＮＷ（図１）を介して接続可能な他のｎｏｄｅ（情報処理装置ＰＣ）を特定するための情報（たとえば、ＩＰアドレスなどの各ｎｏｄｅを一意に特定できるユニークな宛て先情報）とをリスト形式で記述した接続テーブル２６２ｂとを含む。
【００４０】
参照制御部２５０は、本実施の形態に従う情報処理装置ＰＣの特徴的な処理を実行する。参照制御部２５０は、自装置を操作するユーザについて、ワークスペースデータ２６２ａへの参照（アクセス）の可否を判断するとともに、必要に応じて、ユーザがワークスペースデータ２６２ａを参照できない状態を提供する。より具体的な一例としては、後述するように、自装置がワークスペースＷＳから離脱してローカル環境、すなわち他の情報処理装置との間で通信遮断状態になった場合には、参照制御部２５０は、データ格納部２６２に既に格納されているワークスペースデータ２６２ａの全部または一部を削除し、あるいは暗号化することで、ユーザからの参照が不能な状態を提供する。
【００４１】
データ操作部２５２は、ユーザによる入力装置２０９（図２）の操作に従って、オブジェクトの新規作成、変更、削除などを行なう。より具体的には、このユーザによる操作に応答して、データ操作部２５２は、データ格納部２６２に格納されているワークスペースデータ２６２ａの追加、変更、削除などを行なう。
【００４２】
同期制御部２５４は、ワークスペースＷＳを構成するワークスペースデータ２６２ａを他のｎｏｄｅ（情報処理装置ＰＣ）との間で同期する。すなわち、同期制御部２５４は、自装置においてワークスペースデータ２６２ａに何らかの変更がなされると、変更後のワークスペースデータ２６２ａの全部または一部（差分）を、対応のワークスペースＷＳに参加している他のｎｏｄｅへそれぞれ送信する。また、同期制御部２５４は、他のｎｏｄｅから変更後のワークスペースデータ２６２ａの全部または一部（差分）を受信すると、それに従って、自装置のデータ格納部２６２に記憶されているワークスペースデータ２６２ａを更新する。
【００４３】
上述したように、いずれかの情報処理装置ＰＣにおいて特定の操作がなされることをイベントとして、このような同期処理が実行されるようにしてもよい。さらに、これに加えて、あるいはこれに代えて、ワークスペースＷＳに参加するすべてのｎｏｄｅ（情報処理装置ＰＣ）の間で、データの一致／不一致を所定周期毎につきあわせ、この結果に基づいて、ワークスペースデータ２６２ａの内容を変更するようにしてもよい。
【００４４】
描画部２５６は、ワークスペースデータ２６２ａの情報のうち、ユーザにより指定された範囲に含まれる情報に基づいて、描画処理（レンダリング処理）を行なう。すなわち、描画部２５６は、ワークスペースＷＳのうちユーザが指定した領域を可視化する。より具体的には、描画部２５６は、ワークスペースデータ２６２ａを参照して、モニター２０５（図２）に表示すべき画像を示すデータをビデオメモリ（図示しない）に周期的に出力する。このビデオメモリに格納されるデータに基づいて、モニター２０５には画像が表示される。
【００４５】
ユーザ認証部２５８は、情報処理装置ＰＣを使用するユーザに対するユーザ認証処理を実行する。具体的には、ユーザ認証部２５８は、あるユーザが情報処理装置ＰＣの使用を開始する時に、そのユーザに対して、ＩＤおよびパスワードの入力を促す。そして、ユーザからＩＤおよびパスワードの入力があると、予め格納されたユーザテーブル（図示しない）を参照することで、あるいは、ユーザ認証サーバ（図示しない）に問合せることで、ユーザ認証処理を行なう。ユーザ認証が成功すると、ユーザ認証部２５８は、ユーザによる情報処理装置ＰＣの使用を許可するとともに、現在使用中（ログイン中）のユーザ名を保持する。なお、本実施の形態に従う情報処理装置ＰＣでは、それぞれの情報処理装置ＰＣを使用するユーザを識別できればよいので、パスワードを必ずしも要求しなくてもよい。
【００４６】
データ送受信部２６０は、他のｎｏｄｅ（情報処理装置ＰＣ）との間のデータ通信を制御する。具体的には、データ送受信部２６０は、同期制御部２５４からの要求に従って、データ格納部２６２に格納されているワークスペースデータ２６２ａの全部または一部を読み出して他のｎｏｄｅへ送信し、あるいは、他のｎｏｄｅから受信したワークスペースデータ２６２ａの全部または一部を同期制御部２５４へ渡す。データ送受信部２６０は、データ格納部２６２に格納されている接続テーブル２６２ｂを参照して、データ通信を行なう相手を特定する。
【００４７】
また、データ送受信部２６０は、自装置がネットワークＮＷに接続されているか、または、ローカル環境であるかについても判断する。具体的な方法として、データ送受信部２６０は、他のｎｏｄｅへ確認パケットを定期的に送信（マルチキャスト）する。そして、データ送受信部２６０は、この確認パケットに対する送信先からの存在パケットが受信されたか否かに基づいて、ネットワークＮＷに接続されているか否か、すなわちローカル環境であるか否かを判断する。言い換えれば、データ送受信部２６０は、自装置が他の情報処理装置ＰＣとの間で通信遮断状態であるか、あるいは通信可能状態であるかを判断する。
【００４８】
（データ構造）
図５を参照して、本実施の形態に従うワークスペースＷＳを構成するワークスペースデータ２６２ａのデータ構造について説明する。各データは、代表的に、ＸＭＬなどのマークアップ言語で記述される。これは、タグ（＜＞と＜／＞とで囲まれる文字に与える属性）を自在に設定することでシステムの拡張性を高めるためである。
【００４９】
図５は、この発明の実施の形態１に従うワークスペースデータ２６２ａの内容の一例を示す図である。なお、図５に示す内容は、図３に示すオブジェクトＯＢＪ１〜ＯＢＪ３に対応している。
【００５０】
図５を参照して、ワークスペースデータ２６２ａは、当該ワークスペースを特定するためのワークスペースタグ２７０と、各オブジェクトを定義する記述を含む。このワークスペースタグ２７０は、ワークスペースの識別番号（ｗｏｒｋｓｐａｃｅ  ｉｄ）と、作成者属性（Ａｕｔｈｏｒ）とを含む。図５に示す例では、識別番号＝「１」であり、作成者属性＝「Ｎｏｄｅ２」である。
【００５１】
各オブジェクトを定義する記述としては、各オブジェクトの種類（ｉｍａｇｅ／ｔｅｘｔ／ｌｉｎｅ）および配置される座標位置（ｘ，ｙ）を示すタグ、ならびに、その実体ファイルへのリンクデータを含む。
【００５２】
たとえば、オブジェクトＯＢＪ１の定義としては、ｘ＝’２５０’  ｙ＝’１４０’の位置に配置される画像（ｉｍａｇｅ）であることを示す記述、および画像の実体のファイル名（ｆｕｊｉ．ｊｐｇ）を示す記述を含む。また、オブジェクトＯＢＪ２の定義としては、ｘ＝’３００’  ｙ＝’１８０’の位置に配置されるテキスト（ｔｅｘｔ）であることを示す記述、およびそのテキストの内容（ＡＢＣ）を示す記述を含む。また、オブジェクトＯＢＪ３の定義としては、線（ｌｉｎｅ）であることを示す記述、および当該線を定義する頂点の座標を示す記述を含む。
【００５３】
なお、図５では、１つのワークスペースデータ２６２ａを用いて、ワークスペースＷＳを構成する例について例示したが、任意のデータ構造を採用することができる。たとえば、階層化された複数のファイルを用いる構成、あるいは複数のファイルを互いに関連付けた構成（典型的には、リレーショナルデータベース）などを採用することができる。
【００５４】
また、複数の情報処理装置ＰＣの間で任意の数のワークスペースＷＳを共有することも可能である。この場合には、上述のワークスペースの識別番号（ｗｏｒｋｓｐａｃｅ  ｉｄ）の値に基づいて、対象のワークスペースＷＳが特定される。言い換えれば、複数の情報処理装置ＰＣの間で共有されるワークスペースＷＳが１つだけである場合には、上述のワークスペースの識別番号を必ずしも定義する必要はない。
【００５５】
（同期処理の概要）
図６〜図９を参照して、本実施の形態に従うワークスペースにおける同期処理について説明する。なお、図６〜図９に示す例では、ワークスペースＷＳには、図３Ａに示すようにオブジェクトＯＢＪ１〜ＯＢＪ３が既に作成されているものとする。
【００５６】
図６は、この発明の実施の形態１に従うワークスペースのある状態を示す。図７は、図６に示す状態において、Ｎｏｄｅ１でユーザ操作が行なわれた直後の状態を示す。図８は、図７の後に同期処理中の状態を示す。図９は、図７に示すユーザ操作に係る同期処理が完了した状態を示す。
【００５７】
図６を参照して、同期処理が完了しているある状態では、Ｎｏｄｅ１〜Ｎｏｄｅ３の各々は、同一の内容が記述されたワークスペースデータ２６２ａを保持している。
【００５８】
次に、図６の状態において、Ｎｏｄｅ１のユーザが何らかの操作を行なった場合について説明する。
【００５９】
図７を参照して、Ｎｏｄｅ１のユーザがマウスなどの入力装置２０９の操作によって、ワークスペースＷＳ上のオブジェクトＯＢＪ１（図３Ａ参照）をドラッグし、オブジェクトＯＢＪ１の位置を変更したとする。このＮｏｄｅ１に対するユーザ操作に応答して、Ｎｏｄｅ１のデータ操作部２５２（図４）は、オブジェクトＯＢＪ１の変更後の位置情報を取得し、自装置のデータ格納部２６２（図４）に格納されているワークスペースデータ２６２ａの対応する値を変更する（タグ２７４）。
【００６０】
具体的には、図７に示すように、Ｎｏｄｅ１の保持するワークスペースデータ２６２ａのオブジェクトＯＢＪ１を記述するタグの値が「ｘ＝’２５０’  ｙ＝’１４０’」から「ｘ＝’２５５’  ｙ＝’１５０’」に書き換えられる。
【００６１】
このワークスペースデータ２６２ａの変更に伴って、Ｎｏｄｅ１の同期制御部２５４（図４）は、同じ変更が他のｎｏｄｅに反映されるように、同期処理を実行する。具体的には、図８に示すように、Ｎｏｄｅ１の同期制御部２５４は、自装置における変更後のワークスペースデータ２６２ａと変更前のワークスペースデータ２６２ａとの差分を示す変更情報データ２８０を、ワークスペースＷＳに参加している他のｎｏｄｅの各々へ送信する。なお、このワークスペースＷＳに参加しているｎｏｄｅは、接続テーブル２６２ｂを参照することで特定される。
【００６２】
図８に示す変更情報データ２８０の内容の一例は、行頭に「−」の記号を付した削除行指示２８２と、行頭に「＋」の記号を付した追加行指示２８４とを含む。削除行指示２８２は、現在のワークスペースデータ２６２ａから削除すべき内容を示す。追加行指示２８４は、現在のワークスペースデータ２６２ａに追加すべき内容を示す。
【００６３】
変更情報データ２８０には、当該変更情報データ２８０の送信元および送信先を特定するための情報（図示しない）が付加されてもよい。
【００６４】
この変更情報データ２８０を受信したＮｏｄｅ２およびＮｏｄｅ３の各々は、変更情報データ２８０に基づいて、各自のデータ格納部２６２に格納されたワークスペースデータ２６２ａの内容を変更する。この結果、図８に示すように、ワークスペースＷＳに参加しているすべてのｎｏｄｅで変更後のワークスペースデータ２６２ａが共通に保持されるようになる。
【００６５】
以下、いずれのｎｏｄｅにおいてユーザ操作がなされたとしても、上述と同様の同期処理が実行される。
【００６６】
（ローカル環境移行時の処理概要）
次に、ワークスペースＷＳに参加していたｎｏｄｅがオフライン（ローカル環境）に移行した場合の処理について説明する。
【００６７】
特に本実施の形態に従うワークスペースでは、自装置がローカル環境に移行した後は、ユーザからのワークスペースデータの参照が不能な状態に維持される。このような処理を行なうことで、ワークスペースデータの機密性を高めることができる。
【００６８】
このようなワークスペースデータの参照を不能な状態に維持する方法の一例として、本実施の形態に従う情報処理装置ＰＣは、ローカル環境に移行したと判断されると、他のｎｏｄｅとの間でそれ以前に共有していたワークスペースデータを削除する。以下、図１０を参照して、このローカル環境移行時の処理について具体的に説明する。
【００６９】
図１０は、この発明の実施の形態１に従うワークスペースＷＳにおいてＮｏｄｅ１がローカル環境に移行した状態を示す図である。
【００７０】
図１０を参照して、Ｎｏｄｅ１が、何らかの原因によって、ネットワークＮＷとの接続が遮断されてオフライン（通信遮断状態）となった場合を考える。この場合において、Ｎｏｄｅ１の参照制御部２５０（図４）は、自装置がローカル環境に移行したことを検知すると、データ格納部２６２に格納されたワークスペースデータ２６２ａの実体部分（各オブジェクトを定義する記述）を削除する。これにより、Ｎｏｄｅ１上では、ワークスペースＷＳに含まれるオブジェクトに対するアクセスは不能になる。その結果、これらのオブジェクトに関するデータがゴミとして存在するようなことや、当該データが漏洩するようなことを回避できる。
【００７１】
なお、本実施の形態では、ワークスペースデータ２６２ａに含まれるワークスペースタグ２７０（図５）は、削除されない。これは、後述するように、一旦オフラインになった後、再度オンライン（通信可能状態への移行）になって、ワークスペースＷＳに再参加した場合に、ワークスペースＷＳを容易に再構築できるようにするためである。
【００７２】
なお、自装置がローカル環境に移行したか否かの判断は、他のｎｏｄｅへ確認パケットを定期的に送信（マルチキャスト）する方法を採用することができる。
【００７３】
図１１は、この発明の実施の形態１に従うローカル環境であるか否かを判断する処理を示す図である。
【００７４】
図１１を参照して、各ｎｏｄｅは、他のｎｏｄｅの各々へ確認パケットを送信（マルチキャスト）する。この確認パケットは、当該パケットを受信した場合に、応答パケットの送信を要求する制御パケットである。そのため、たとえば、Ｎｏｄｅ１からの確認パケットを受信したＮｏｄｅ２およびＮｏｄｅ３の各々は、応答パケットをＮｏｄｅ１へ返信する。なお、確認パケットのマルチキャストの宛て先は、データ格納部２６２に格納されている接続テーブル２６２ｂを参照して決定される。
【００７５】
このようなマルチキャストされる確認パケットに応答して、いずれかのｎｏｄｅから応答パケットが返信された場合には、ローカル環境ではない、すなわちワークスペースに参加していると判断される。一方、いずれのｎｏｄｅからも応答パケットが返信されない場合には、ローカル環境であると判断される。なお、一部のｎｏｄｅのみから応答パケットが返信されない場合には、確認パケットの送信先のｎｏｄｅがローカル環境であることが想定されるので、すべてのｎｏｄｅから応答パケットが受信されなかった場合に限って、はじめてローカル環境に移行したと判断される。
【００７６】
図１２は、この発明の実施の形態１に従うワークスペースにおいてＮｏｄｅ１〜Ｎｏｄｅ３がローカル環境に移行した状態を示す図である。
【００７７】
図１２を参照して、Ｎｏｄｅ１〜Ｎｏｄｅ３のすべてがローカル環境（オフライン）に移行した場合にも同様に、各ｎｏｄｅは、データ格納部２６２に格納されたワークスペースデータ２６２ａの実体部分（各オブジェクトを定義する記述）を削除する。
【００７８】
但し、本実施の形態に従うワークスペースにおいては、削除対象のワークスペースデータ２６２ａの作成者として定義されているｎｏｄｅは、ローカル環境（オフライン）に移行しただけでは、当該ワークスペースデータ２６２ａの実体部分を削除しない。これは、複数のｎｏｄｅがオンラインに移行して、ワークスペースＷＳを再構成する場合の処理を容易化するためである。図１２に示す例では、ワークスペースデータ２６２ａのワークスペースタグ２７０に作成者属性（Ａｕｔｈｏｒ）として「Ｎｏｄｅ２」が記述されている。すなわち、Ｎｏｄｅ２がワークスペースデータ２６２ａの作成者となっている。このため、Ｎｏｄｅ２は、保持するワークスペースデータ２６２ａの実体部分を削除しない。
【００７９】
なお、後述するように、ワークスペースＷＳ全体が削除された場合には、対象のワークスペースデータ２６２ａの作成者として定義されているｎｏｄｅであっても、そのｎｏｄｅは、ワークスペースデータ２６２ａの全体を削除する。
【００８０】
また、図１２に示すようにワークスペースデータ２６２ａの作成者として定義されているｎｏｄｅには、ローカル環境移行後であっても、ワークスペースデータ２６２ａが残るの。そのため、このようなワークスペースデータ２６２ａの作成者として定義されるｎｏｄｅは、サーバ装置などのセキュアな装置を採用することが好ましい。
【００８１】
（ローカル環境からオンラインへの移行時の処理概要）
（１）ワークスペースへの再参加可能な場合
次に、ローカル環境に移行したｎｏｄｅが再度オンラインして、ワークスペースＷＳに再参加する場合の処理について説明する。
【００８２】
上述したように、本実施の形態に従う情報処理装置ＰＣは、ローカル環境に移行したと判断された場合であっても、ワークスペースデータ２６２ａのワークスペースタグ２７０を削除しない。そのため、ワークスペースＷＳに再参加したｎｏｄｅは、自装置のデータ格納部２６２に格納されているワークスペースデータ２６２ａのワークスペースタグ２７０を参照することで、ワークスペースＷＳの再構築に必要なデータを他のｎｏｄｅから取得する。
【００８３】
図１３は、図１０に示すワークスペースＷＳにおいてＮｏｄｅ１がローカル環境からオンラインに移行した状態を示す図である。
【００８４】
図１３を参照して、Ｎｏｄｅ１は、ローカル環境（オフライン）からオンラインになると、ワークスペースデータ２６２ａのワークスペースタグ２７０に記述された識別番号（ｗｏｒｋｓｐａｃｅ  ｉｄ）の値を参照して、必要なデータ（ローカル環境移行時に削除した実体部分）を他のｎｏｄｅへ要求する。この要求に応答して、既にワークスペースに参加しているいずれかのｎｏｄｅから変更情報データ２９０がＮｏｄｅ１へ送信される。
【００８５】
なお、図１３では、ワークスペースデータ２６２ａの作成者として定義されているＮｏｄｅ２から変更情報データ２９０が送信される場合を例示するが、必ずしも作成者として定義されているｎｏｄｅが変更情報データ２９０を送信する必要はない。この変更情報データ２９０の要求先のｎｏｄｅとしては、予め定められた順序、ネットワーク上の距離、各ｎｏｄｅの負荷状態、要求に対して最も応答の早いｎｏｄｅ、といった基準に基づいて決定することができる。
【００８６】
図１４は、図１２に示すワークスペースにおいてＮｏｄｅ１〜Ｎｏｄｅ３がローカル環境からオンラインに移行した状態を示す図である。
【００８７】
図１４を参照して、Ｎｏｄｅ１〜Ｎｏｄｅ３がいずれもローカル環境（オフライン）からオンラインに復帰すると、各ｎｏｄｅは、必要なデータ（ローカル環境移行時に削除した実体部分）を他のｎｏｄｅへ要求する。図１４に示す例では、Ｎｏｄｅ２は、ワークスペースデータ２６２ａの実体部分を保持しているので、他のｎｏｄｅにデータを要求する必要はない。一方、Ｎｏｄｅ１およびＮｏｄｅ３は、Ｎｏｄｅ２から変更情報データ２９０をそれぞれ受信し、ワークスペースデータ２６２ａを本来の内容に更新する。
【００８８】
（２）ワークスペースへの再参加不可能な場合
上述の例では、ローカル環境に移行したｎｏｄｅが再度オンラインしたタイミングで、ローカル環境への移行時に参加していたワークスペースＷＳが有効に存在している場合の処理について例示した。一方、あるｎｏｄｅがローカル環境に移行した後に、参加していたワークスペースＷＳが削除される場合も想定される。
【００８９】
このような場合であっても、ローカル環境に移行したｎｏｄｅは、ワークスペースタグ２７０を含むワークスペースデータ２６２ａを保持しているので、再度オンラインした場合に、以前に参加していたワークスペースＷＳが有効であるのか否かを判断する必要がある。このような判断をしない場合には、再度オンラインしたｎｏｄｅでは、削除されたワークスペースＷＳが有効なものとして取り扱われる。そのため、当該ｎｏｄｅでは、当該ワークスペースＷＳに対するユーザ操作が可能となってしまう可能性もある。
【００９０】
そこで、本実施の形態に従うワークスペースでは、このようにワークスペース自体が削除された後に、当該削除されたワークスペースに参加していたｎｏｄｅからの要求に応答して、目的のワークスペースが削除されたことを通知する機能を有する。
【００９１】
図１５は、図１０に示すワークスペースＷＳにおいてＮｏｄｅ１がローカル環境である期間中にワークスペースＷＳの全体が削除された状態を示す。図１６は、図１５に示すワークスペースＷＳにおいてＮｏｄｅ１がローカル環境からオンラインへ移行した状態を示す。
【００９２】
図１５を参照して、Ｎｏｄｅ１がローカル環境へ移行した後の、Ｎｏｄｅ２のユーザがワークスペースＷＳ全体を削除するための操作を行なった場合を考える。この操作によって、当該時点でワークスペースＷＳに参加していたＮｏｄｅ２およびＮｏｄｅ３の各々は、保持しているワークスペースデータ２６２ａの内容を削除し、ヌル（ｎｕｌｌ）の状態に変更する。
【００９３】
続いて、図１６に示すように、Ｎｏｄｅ１がローカル環境（オフライン）からオンラインになると、Ｎｏｄｅ１は、ワークスペースデータ２６２ａのワークスペースタグ２７０に記述された識別番号の値を参照して、必要なデータの要求が他のｎｏｄｅ（たとえば、Ｎｏｄｅ２）へ送信する。この要求の送信先のｎｏｄｅは、要求されたワークスペースＷＳが削除されたものであると判断すると、その旨を通知するための削除通知を応答する。この削除通知を受信した要求元のｎｏｄｅは、自装置で保持しているワークスペースデータ２６２ａの内容を削除し、ヌル（ｎｕｌｌ）の状態に変更する。
【００９４】
（全体処理手順）
図１７は、この発明の実施の形態１に従う全体処理手順を示すフローチャートである。図１７に示す各処理手順は、代表的に、各情報処理装置ＰＣのＣＰＵ２０１（図２）がプログラムを実行することで提供される。
【００９５】
図１７を参照して、情報処理装置ＰＣのＣＰＵ２０１は、ワークスペースを提供するアプリケーションの実行が開始されると、現在、自装置がオンラインであるか否かを判断する（ステップＳ１００）。オンラインであると判断された場合（ステップＳ１００においてＹＥＳの場合）には、ＣＰＵ２０１は、内部フラグをオンライン状態に設定する（ステップＳ１０２）。
【００９６】
続いて、ＣＰＵ２０１は、オンラインからオフラインに移行したか否かを判断する（ステップＳ１０４）。オンラインからオフラインに移行したと判断された場合（ステップＳ１０４においてＹＥＳの場合）には、ＣＰＵ２０１は、自装置のデータ格納部２６２に格納しているワークスペースデータ２６２ａのワークスペースタグ２７０を参照して、自装置がワークスペースデータ２６２ａの作成者であるか否かを判断する（ステップＳ１０６）。
【００９７】
自装置がワークスペースデータ２６２ａの作成者である場合（ステップＳ１０６においてＹＥＳの場合）には、処理はステップＳ１２２に進む。
【００９８】
一方、自装置がワークスペースデータ２６２ａの作成者ではない場合（ステップＳ１０６においてＮＯの場合）には、ＣＰＵ２０１は、ワークスペースデータ２６２ａの実体部分（各オブジェクトを定義する記述）を削除する（ステップＳ１０８）。その後、処理はステップＳ１２２に進む。
【００９９】
オンラインからオフラインに移行していないと判断された場合（ステップＳ１０４においてＮＯの場合）には、ＣＰＵ２０１は、他の情報処理装置ＰＣからワークスペースデータ要求を受信したか否かを判断する（ステップＳ１１０）。他の情報処理装置ＰＣからワークスペースデータ要求を受信していない場合（ステップＳ１１０においてＮＯの場合）には、処理はステップＳ１０２に戻る。
【０１００】
他の情報処理装置ＰＣからワークスペースデータ要求を受信した場合（ステップＳ１１０においてＹＥＳの場合）には、ＣＰＵ２０１は、自装置のデータ格納部２６２に格納しているワークスペースデータ２６２ａの全体が削除済であるか否かを判断する（ステップＳ１１２）。
【０１０１】
ワークスペースデータ２６２ａの全体が削除済である場合（ステップＳ１１２においてＹＥＳの場合）には、ＣＰＵ２０１は、削除通知をワークスペースデータ要求の送信元の情報処理装置ＰＣへ送信する（ステップＳ１１４）。その後、処理はステップＳ１０２に戻る。
【０１０２】
一方、ワークスペースデータ２６２ａの全体が削除済でない場合（ステップＳ１１２においてＮＯの場合）には、ＣＰＵ２０１は、自装置のデータ格納部２６２に格納しているワークスペースデータ２６２ａの実体部分をワークスペースデータ要求の送信元の情報処理装置ＰＣへ送信する（ステップＳ１１６）。その後、処理はステップＳ１０２に戻る。
【０１０３】
これに対して、オンラインではないと判断された場合（ステップＳ１００においてＮＯの場合）には、ＣＰＵ２０１は、内部フラグをオフライン状態に設定する（ステップＳ１２２）。
【０１０４】
続いて、ＣＰＵ２０１は、オフラインからオンラインに移行したか否かを判断する（ステップＳ１２４）。オフラインからオンラインに移行していないと判断された場合（ステップＳ１２４においてＮＯの場合）には、ステップＳ１２４の処理が繰返される。
【０１０５】
一方、オフラインからオンラインに移行したと判断された場合（ステップＳ１２４においてＹＥＳの場合）には、ＣＰＵ２０１は、いずれかの他の情報処理装置ＰＣに向けて、ワークスペースデータ要求を送信する（ステップＳ１２６）。そして、ＣＰＵ２０１は、他の情報処理装置ＰＣからの応答を待つ。他の情報処理装置ＰＣから何らかの受信データを受けると、ＣＰＵ２０１は、受信データの内容を判断する（ステップＳ１２８）。
【０１０６】
受信データが削除通知である場合（ステップＳ１２８において「削除通知」）には、ＣＰＵ２０１は、自装置のデータ格納部２６２に格納しているワークスペースデータ２６２ａの全体を削除する（ステップＳ１３０）。そして、処理はステップＳ１０２に戻る。
【０１０７】
一方、受信データがワークスペースデータである場合（ステップＳ１２８において「ワークスペースデータ」）には、ＣＰＵ２０１は、当該受信したワークスペースデータに基づいて、自装置のデータ格納部２６２に格納しているワークスペースデータ２６２ａを更新する（ステップＳ１３２）。そして、処理はステップＳ１０２に戻る。
【０１０８】
なお、図１７に示す処理手順は、ワークスペースを提供するアプリケーションの実行停止に伴って終了する。
【０１０９】
本実施の形態によれば、ワークスペースに参加していたいずれかのｎｏｄｅがローカル環境に移行すると、当該ｎｏｄｅは格納しているワークスペースデータの実体部分を削除することで、ユーザによる参照を不能な状態にする。さらに、いずれかのｎｏｄｅがローカル環境へ移行した後に、当該ｎｏｄｅが参加していたワークスペース全体が削除された場合には、当該ｎｏｄｅは、再度オンラインに移行したタイミングで、当該ワークスペースを識別するための情報（ワークスペースタグなど）を含むデータ全体を削除する。
【０１１０】
そのため、各ｎｏｄｅのハードディスクなどに不要となったワークスペースに係るデータがゴミとして残ることを回避できる。また、当該ｎｏｄｅを構成する情報処理装置が外部に持ち出されるような使用形態であっても、各ｎｏｄｅに残るデータを必要最小限、もしくはゼロにできるので、情報漏洩などの問題の発生を低減できる。
【０１１１】
［実施の形態１の第１変形例］
上述の実施の形態１では、オフライン（ローカル環境）に移行したｎｏｄｅ（情報処理装置）が自装置に格納するワークスペースデータの実体部分を削除することで、当該ｎｏｄｅにおいてワークスペースデータに対する参照不能な状態を提供する構成について例示した。これに対して、本変形例では、ワークスペースデータを暗号化することで、参照不能な状態を提供する構成について例示する。
【０１１２】
本変形例に従うワークスペースを提供するためのシステムの概略構成および情報処理装置ＰＣのハードウェア構成などについては、それぞれ図１および図２と同様であるので、詳細な説明は繰返さない。
【０１１３】
図１８は、この発明の実施の形態１の第１変形例に従うワークスペースにおいてＮｏｄｅ１がローカル環境に移行した状態を示す図である。図１９は、図１８に示すワークスペースにおいてＮｏｄｅ１がローカル環境からオンラインに移行した直後の状態を示す図である。
【０１１４】
図１８を参照して、本変形例に従うワークスペースＷＳでは、各情報処理装置ＰＣは、ワークスペースを構成するワークスペースデータ２６２ａに加えて、ワークスペースＷＳに参加する情報処理装置ＰＣの間で同一の共通鍵２６４を保持している。
【０１１５】
この状態において、たとえばＮｏｄｅ１がオンラインからローカル環境（オフライン）に移行すると、Ｎｏｄｅ１では、ワークスペースデータ２６２ａの一部または全部（図１８に示す例では、実体部分のみ）が共通鍵２６４を用いて暗号化される。図１８には、ワークスペースデータ２６２ａの実体部分が暗号化された状態（符号２６６）を示す。暗号化としては、公知の暗号化方法または符号化方法（たとえば、Ｂａｓｅ６４）を用いることができる。
【０１１６】
このワークスペースデータ２６２ａの実体部分が暗号化された後、共通鍵２６４はＮｏｄｅ１から削除される。これにより、Ｎｏｄｅ１では、暗号化されたワークスペースデータ２６２ａの実体部分を平文に復号することができなくなる。そのため、一般ユーザは、当該実体部分を参照することができなくなる。
【０１１７】
図１９を参照して、Ｎｏｄｅ１は、ローカル環境（オフライン）からオンラインになると、共通鍵の配送を他のｎｏｄｅへ要求する。この要求に応答して、既にワークスペースに参加しているいずれかのｎｏｄｅから共通鍵２６４がＮｏｄｅ１へ配送される。
【０１１８】
そして、Ｎｏｄｅ１は、この配送された共通鍵２６４を用いて、暗号化されたワークスペースデータ２６２ａの実体部分を復号化する。その結果、ワークスペースデータ２６２ａは、平文として復元されるので、Ｎｏｄｅ１のユーザは、通常の参照が可能となる。
【０１１９】
その他の処理手順および制御構造については、上述の実施の形態１と同様であるので、詳細な説明は繰返さない。
【０１２０】
本変形例によれば、上述の実施の形態１における効果に加えて、各ｎｏｄｅがローカル環境からオンラインに移行後、再度ワークスペースＷＳに参加する際に、他のｎｏｄｅからデータを取得する必要がないので、ネットワーク上の負荷を低減できる。また、ワークスペースＷＳ上での作業を迅速に再開できる。
【０１２１】
［実施の形態１の第２変形例］
上述の実施の形態１では、オフライン（ローカル環境）に移行したｎｏｄｅが自装置に格納するワークスペースデータの実体部分を削除することで、当該ｎｏｄｅにおけるワークスペースデータに対する参照不能な状態を提供する構成について例示した。これに対して、本変形例では、各ｎｏｄｅがワークスペースデータを部分的にのみ保持することで、参照不能な状態を提供する構成について例示する。
【０１２２】
本変形例に従うワークスペースを提供するためのシステムの概略構成や情報処理装置ＰＣのハードウェア構成などについては、それぞれ図１および図２と同様であるので、詳細な説明は繰返さない。
【０１２３】
図２０は、この発明の実施の形態１の第２変形例に従うワークスペースにおいてＮｏｄｅ１〜Ｎｏｄｅ３がローカル環境に移行した状態を示す図である。
【０１２４】
図２０を参照して、本変形例に従うワークスペースＷＳでは、各情報処理装置ＰＣは、ローカル環境（オフライン）に移行すると、ワークスペースデータ２６２ａを部分的にのみ保持することで、各ｎｏｄｅにおけるワークスペースデータ２６２ａへの参照を実質的に不能な状態にする。
【０１２５】
このワークスペースデータ２６２ａを部分的にのみ保持するとは、各ｎｏｄｅがそれ自体では意味をなさない一部分の情報のみを保持しており、かつ、各ｎｏｄｅが保持する情報同士を互いに結合してはじめて全体として意味のあるワークスペースデータ２６２ａが生成される状態を意味する。
【０１２６】
図２０に示す例では、Ｎｏｄｅ１〜Ｎｏｄｅ３の各々は、元のワークスペースデータ２６２ａを構成する文字列のうち、所定の順序にあるものだけを保持する構成を示す。たとえば、Ｎｏｄｅ１は文字列の１，４，７，…番目の文字を保持し、Ｎｏｄｅ２は文字列の２，５，８，…番目の文字を保持し、Ｎｏｄｅ３は文字列の３，６，９，…番目の文字を保持する。このようにそれぞれのｎｏｄｅが分散して情報を保持することで、情報漏洩に対する保護機能を高めることができる。
【０１２７】
なお、図２０には、説明の簡素化のために、Ｎｏｄｅ１〜Ｎｏｄｅ３のすべてがローカル環境に移行した後の状態を例示したが、Ｎｏｄｅ１〜Ｎｏｄｅ３のいずれか１つまたは２つのみがローカル環境に移行した場合にも、当該ローカル環境に移行したｎｏｄｅの各々は、図２０と同様の状態で一部分の情報のみを保持する。このように、各ｎｏｄｅがワークスペースデータ２６２ａの全体の一部分のみを保持することで、各ｎｏｄｅでは、ワークスペースデータ２６２ａに対する参照不能な状態を提供することができる。
【０１２８】
その他の処理手順および制御構造については、上述の実施の形態１と同様であるので、詳細な説明は繰返さない。
【０１２９】
本変形例によれば、上述の実施の形態１における効果に加えて、各ｎｏｄｅがローカル環境からオンラインに移行後、再度ワークスペースＷＳに参加する際に、他のｎｏｄｅから取得するデータをより少なくできる。そのため、ネットワーク上の負荷を低減できるとともに、ワークスペースＷＳ上での作業をより迅速に再開できる。
【０１３０】
［実施の形態１の第３変形例］
上述の実施の形態１では、ユーザの使用状態（アクセス状態）を考慮することなく、オフライン（ローカル環境）に移行したｎｏｄｅが格納するワークスペースデータの実体部分を削除する構成について例示した。
【０１３１】
代替として、各ｎｏｄｅは、ローカル環境に移行したタイミングで、当該ｎｏｄｅのユーザが削除対象のワークスペースデータを参照中であれば、当該ワークスペースデータへの参照を可能な状態に維持してもよい。すなわち、そのような条件下においては、当該ｎｏｄｅにおけるワークスペースデータの削除などの処理を行なわないようにしてもよい。
【０１３２】
このような処理を付加することで、いずれかのｎｏｄｅのユーザが作業中に、何らかの原因で当該ｎｏｄｅがローカル環境に移行してしまった場合であっても、作業中の内容が消去されることを回避できる。
【０１３３】
［実施の形態１の第４変形例］
上述の実施の形態１では、ワークスペースデータ２６２ａの作成者をｎｏｄｅ（情報処理装置ＰＣ）単位で識別する構成について例示した。これに対して、本変形例では、ワークスペースデータの作成者をユーザ単位で識別する構成について例示する。
【０１３４】
本変形例に従うワークスペースを提供するためのシステムの概略構成や情報処理装置ＰＣのハードウェア構成などについては、それぞれ図１および図２と同様であるので、詳細な説明は繰返さない。
【０１３５】
図２１Ａおよび図２１Ｂは、この発明の実施の形態１の第４変形例に従うワークスペースにおいて用いられるデータ構造を示す図である。
【０１３６】
図２１Ａを参照して、本変形例に従うワークスペースＷＳでは、作成者属性（Ａｕｔｈｏｒ）としてユーザ名が記述されたワークスペースタグ２７２を含む、ワークスペースデータ２６２ｃが用いられる。
【０１３７】
さらに、各ｎｏｄｅには、図２１Ｂに示すように、このワークスペースデータ２６２ｃに記述されたユーザと、当該ユーザが使用中（ログイン中）のｎｏｄｅとの対応関係を記述したユーザテーブル２６２ｄが格納される。すなわち、各ｎｏｄｅは、いずれかのユーザがユーザ認証を経てログインすると、当該ログインしたユーザを自装置が保持するユーザテーブル２６２ｄに追加する。そして、各ｎｏｄｅは、オンラインからローカル環境（オフライン）に移行すると、参照不能とすべきワークスペースデータ２６２ｃに記述された作成者属性（Ａｕｔｈｏｒ）と、ユーザテーブル２６２ｄとを参照する。そして、各ｎｏｄｅは、自装置にログイン中のユーザが作成者であるワークスペースデータ２６２ｃについては、その実体部分を削除しない。
【０１３８】
なお、ワークスペースデータ２６２ｃの作成者であるユーザがいずれのｎｏｄｅにもログインしていない場合も想定されるので、ワークスペースデータの作成者属性としてｎｏｄｅ名およびユーザ名を記述しておき、いずれの作成者属性を用いるかを任意に選択できるようにしてもよい。この場合、ＡＮＤ条件、および／または、ＯＲ条件を用いて、２つの属性値を判断するようにしてもよい。
【０１３９】
その他の処理手順および制御構造については、上述の実施の形態１と同様であるので、詳細な説明は繰返さない。
【０１４０】
本変形例によれば、上述の実施の形態１における効果に加えて、ワークスペースデータを保持するｎｏｄｅをよりフレキシブルに決定できるので、たとえばそのポストなどに応じて、ローカル環境に移行した後であっても、ワークスペースデータを保持するユーザをより自由に設定することができる。
【０１４１】
［実施の形態１の第５変形例］
上述の実施の形態１では、いずれかのｎｏｄｅがオフラインからオンラインに移行した場合に、対象のワークスペースの全体がすでに削除されているときには、他のｎｏｄｅが削除通知を送信する構成について例示した。これに対して、本変形例では、対象のワークスペースの全体がすでに削除されているか否かを、ワークスペースに参加しない別の装置に問合せる構成について例示する。
【０１４２】
図２２は、この発明の実施の形態１の第５変形例に従うワークスペースを提供するためのシステムの概略構成図である。
【０１４３】
図２２を参照して、本変形例に従うシステムは、情報処理装置ＰＣ１〜ＰＣ３（Ｎｏｄｅ１〜Ｎｏｄｅ３）に加えて、サーバ装置ＳＲＶを含む。このサーバ装置ＳＲＶは、Ｎｏｄｅ１〜Ｎｏｄｅ３の間で構成されるワークスペースＷＳの状態を監視する機能を有している。より具体的には、サーバ装置ＳＲＶは、ネットワークＮＷ上を流れるパケットを継続的に監視しており、いずれかのｎｏｄｅからの指示によって、ワークスペースＷＳの状態を自装置で保持するワークスペース状態情報３５０の内容に反映する。そして、ワークスペースＷＳ全体が削除された場合には、サーバ装置ＳＲＶは、当該削除を指示するパケットを受信することで、ワークスペースＷＳ全体が削除されたと判断し、ワークスペース状態情報３５０にワークスペースＷＳ全体の削除を意味する「ｄｅｌｅｔｅ」を記述する。
【０１４４】
一方、ローカル環境（オフライン）からオンラインに移行したＮｏｄｅ１は、ワークスペースデータに必要なデータの要求を他のｎｏｄｅへ送信する前に、サーバ装置ＳＲＶへワークスペースＷＳが有効に存在しているか否かを問合せ、ワークスペースＷＳが有効に存在している場合に限って、他のｎｏｄｅへ必要なデータの要求を送信する。
【０１４５】
なお、サーバ装置ＳＲＶがネットワークＮＷを流れるパケットを継続的に監視する構成に代えて、ワークスペースＷＳ全体削除を指示したｎｏｄｅが、サーバ装置ＳＲＶに対しても、ワークスペースＷＳ全体が削除されたことを通知するようにしてもよい。
【０１４６】
その他の処理手順および制御構造については、上述の実施の形態１と同様であるので、詳細な説明は繰返さない。
【０１４７】
本変形例によれば、上述の実施の形態１における効果に加えて、各ｎｏｄｅが他のｎｏｄｅからのデータ要求を受けた場合に、削除通知を応答するためにワークスペース全体が削除された履歴を記憶しておく必要がなくなる。そのため、各ｎｏｄｅでの処理を簡素化できるとともに、不要なデータを各ｎｏｄｅに保持する必要がない。
【０１４８】
［実施の形態２］
上述の実施の形態１では、いずれかのｎｏｄｅがローカル環境に移行すると、すぐにワークスペースデータの実体部分を削除する処理が実行される構成について例示した。これに対して、本実施の形態では、ローカル環境に移行した後であっても、所定期間はワークスペースデータの実体部分が維持される構成について例示する。
【０１４９】
たとえば、ワークスペースＷＳから一時的に離脱した後、比較的短時間で再度ワークスペースＷＳに参加するような形態で使用される場合に、ワークスペースＷＳに参加する毎に、ワークスペースデータを他のｎｏｄｅとの間で同期する処理を実行すると、ネットワークＮＷの負荷が増大する。また、当該ｎｏｄｅのユーザが即座に作業に取り掛かることができないという不具合が生じ得る。
【０１５０】
そこで、本実施の形態では、あるｎｏｄｅがローカル環境に移行した後の、所定期間の間は、ワークスペースデータがそのまま維持され、その後、その所定期間が経過した後には、ワークスペースデータの実体部分が削除される構成を採用する。
【０１５１】
（データ構造）
上述したように、ワークスペースデータの実体部分を削除するタイミングを制御するために、本実施の形態に従うワークスペースデータは、ローカル環境に移行した後から削除されるまでの期間を指定するタイマー値の記述を含む。
【０１５２】
図２３は、この発明の実施の形態２に従うワークスペースデータ２６２ｅの内容の一例を示す図である。
【０１５３】
図２３を参照して、本実施の形態に従うワークスペースデータ２６２ｅは、図５に示す実施の形態１に従うワークスペースデータ２６２ａにおいて、ワークスペースタグ２７２に代えて、ワークスペースタグ２７２の記述にタイマー属性（Ｔｉｍｅｒ）が追加されたワークスペースタグ２７６を採用したものである。
【０１５４】
このタイマー属性は、対応するｎｏｄｅがローカル環境に移行した後、ワークスペースデータ２６２ｅの実体部分が削除されるまでの期間を記述したものである。図２３に示す例では、タイマー属性（Ｔｉｍｅｒ）＝「５００００」に設定されている。たとえば、この記述は、５００００秒を意味する。
【０１５５】
なお、その他の記述は、ワークスペースデータ２６２ａと同様であるので、詳細な説明は繰返さない。
【０１５６】
（制御構造）
図２４は、この発明の実施の形態２に従う各情報処理装置ＰＣの制御構造を示すブロック図である。
【０１５７】
図２４を参照して、本実施の形態に従う情報処理装置ＰＣの制御構造は、図４に示す実施の形態１に従う情報処理装置ＰＣの制御構造において、参照制御部２５０に代えて参照制御部２５１を設けるとともに、データ格納部２６２にワークスペースデータ２６２ａに代えて、ワークスペースデータ２６２ｅおよびタイマーデータ２６２ｆを格納するようにしたものである。
【０１５８】
参照制御部２５１は、自装置がワークスペースＷＳから離脱してローカル環境になった後、所定期間が経過すると、データ格納部２６２に格納されているワークスペースデータ２６２ｅに対する参照不能な状態を提供する。より具体的には、参照制御部２５１は、タイマー部２５１Ａを含む。タイマー部２５１Ａは、自装置がローカル環境に移行したことを検知すると、当該ローカル環境移行後からの時間計測を開始する。そして、タイマー部２５１Ａは、時間計測の結果に応じて、データ格納部２６２に格納されているタイマーデータ２６２ｆの内容を順次更新する。さらに、参照制御部２５１は、タイマー部２５１Ａで計測されたタイマー値がワークスペースデータ２６２ｅに記述されたタイマー属性の値に到達すると、当該ワークスペースデータ２６２ｅの実体部分を削除する。これにより、参照制御部２５１は、ワークスペースデータ２６２ｅに対する参照不能な状態を提供する。
【０１５９】
また、タイマー部２５１Ａは、自装置がローカル環境からオンラインに移行し、ワークスペースＷＳに再参加した場合に、その計測値をリセットする。そのため、各ｎｏｄｅがローカル環境への移行後、ワークスペースデータ２６２ｅに記述されたタイマー属性の値までの間に、当該ｎｏｄｅが再度オンラインに移行する限り、ワークスペースデータ２６２ｅの実体は削除されない。
【０１６０】
その他については、図４と同様であるので、詳細な説明は繰返さない。
（ローカル環境移行時の処理概要）
次に、本実施の形態に従うワークスペースＷＳに参加していたｎｏｄｅがオフライン（ローカル環境）に移行した場合の処理について説明する。
【０１６１】
図２５は、この発明の実施の形態２に従うワークスペースＷＳにおいてＮｏｄｅ１およびＮｏｄｅ２のいずれもがオンラインである状態を示す。図２６は、図２５に示すワークスペースＷＳにおいてＮｏｄｅ１がオンラインからローカル環境に移行した直後の状態を示す。図２７は、図２５に示すワークスペースＷＳにおいてＮｏｄｅ１がオンラインからローカル環境に移行して所定期間経過後の状態を示す。
【０１６２】
図２５を参照して、各ｎｏｄｅは、図２３に示すワークスペースデータ２６２ｅと、自装置がローカル環境に移行してからの経過時間を管理するためのタイマーデータ２６２ｆとを保持している。
【０１６３】
タイマーデータ２６２ｆは、ｃｏｕｎｔタグ２９６と、ｌｏｃａｌタグ２９８とを含む。オンライン状態において、ｃｏｕｎｔタグ２９６の値は、ワークスペースデータ２６２ｅのワークスペースタグ２７６に記述されたタイマー属性（Ｔｉｍｅｒ）の値に設定される。後述するように、ｃｏｕｎｔタグ２９６の値は、自装置がローカル環境に移行すると、時間経過に伴ってデクリメントされる。たとえば、自装置がローカル環境に移行後、１０秒が経過した状態を図２６に示す。
【０１６４】
また、ｌｏｃａｌタグ２９８の値は、自装置の状態（オンライン／オフライン）に応じた値に随時更新される。たとえば、図２５に示すように、Ｎｏｄｅ１がオンラインである場合には、ｌｏｃａｌタグ２９８の値は、自装置がローカル環境ではないことを示す「ｏｆｆ」に設定される。これに対して、図２６に示すように、Ｎｏｄｅ１がローカル環境である場合には、ｌｏｃａｌタグ２９８の値は、自装置がローカル環境ではあることを示す「ｏｎ」に設定される。
【０１６５】
このようにＮｏｄｅ１がローカル環境に移行後、タイマー属性として記述された期間（この場合には、５００００秒）が経過すると、図２７に示すような状態になる。図２７に示すように、タイマーデータ２６２ｆのｃｏｕｎｔタグ２９６の値が「０」となっており、カウントアップを意味している。このように、ｃｏｕｎｔタグ２９６の値が「０」なると、Ｎｏｄｅ１は、ワークスペースデータ２６２ｅの実体部分を削除する。その結果、Ｎｏｄｅ１では、ワークスペースデータ２６２ｅに対するユーザの参照が不能な状態になる。
【０１６６】
なお、Ｎｏｄｅ１にユーザがログイン中であれば、ワークスペースデータ２６２ｅの実体部分を削除する前に、Ｎｏｄｅ１がワークスペースデータ２６２ｅの削除をユーザに通知する（たとえば、ポップアップメッセージなどにより）ようにしてもよい。
【０１６７】
（ローカル環境からオンラインへの移行時の処理概要）
図２８は、図２５に示すワークスペースＷＳにおいてＮｏｄｅ１がローカル環境からオンラインに移行した状態を示す図である。
【０１６８】
図２８を参照して、Ｎｏｄｅ１は、ローカル環境からオンラインに移行すると、タイマーデータ２６２ｆのｃｏｕｎｔタグ２９６の値（タイマー値）をリセットする。図２８に示す例では、タイマーデータ２６２ｆのｃｏｕｎｔタグ２９６の値は、初期値である「５００００」に戻される。
【０１６９】
また、このとき、ワークスペースデータ２６２ｅの実体部分が削除済である場合には、Ｎｏｄｅ１は、他のｎｏｄｅから実体部分を取得することで、ワークスペースＷＳに再参加する。一方、ワークスペースデータ２６２ｅの実体が未だ削除されていない場合には、Ｎｏｄｅ１は、ワークスペースデータ２６２ｅを何ら変更することなく、即座にワークスペースＷＳに再参加する。
【０１７０】
その他の処理手順および制御構造については、上述の実施の形態１と同様であるので、詳細な説明は繰返さない。
【０１７１】
（時間計測）
各ｎｏｄｅがローカル環境に移行したタイミングで、当該ｎｏｄｅのユーザが削除対象のワークスペースデータを参照中であれば、当該ｎｏｄｅがタイマーデータ２６２ｆのｃｏｕｎｔタグ２９６のデクリメントを行なわないようにしてもよい。これは、いずれかのｎｏｄｅのユーザが作業中に、当該ｎｏｄｅが何らかの原因でローカル環境に移行してしまった場合であっても、作業中の内容が消去されることを回避するためである。
【０１７２】
また、各ｎｏｄｅのユーザの操作に応答して、当該ｎｏｄｅがタイマーデータ２６２ｆのｃｏｕｎｔタグ２９６のデクリメントを一時的に中断してもよいし、あるいは、タイマーデータ２６２ｆのｃｏｕｎｔタグ２９６の値をリセットしてもよい。
【０１７３】
（全体処理手順）
図２９は、この発明の実施の形態２に従う全体処理手順を示すフローチャートである。図２９に示す各処理手順は、代表的に、各情報処理装置ＰＣのＣＰＵ２０１（図２）がプログラムを実行することで提供される。なお、図２９に示す処理のうち、図１７に示す処理と同じ処理については、同一の参照番号を付している。
【０１７４】
図２９を参照して、情報処理装置ＰＣのＣＰＵ２０１は、ワークスペースを提供するアプリケーションの実行が開始されると、現在、自装置がオンラインであるか否かを判断する（ステップＳ１００）。オンラインではないと判断された場合（ステップＳ１００においてＮＯの場合）には、処理はステップＳ１４０に進む。
【０１７５】
一方、オンラインであると判断された場合（ステップＳ１００においてＹＥＳの場合）には、ＣＰＵ２０１は、内部フラグをオンライン状態に設定する（ステップＳ１０２）。
【０１７６】
続いて、ＣＰＵ２０１は、オンラインからオフラインに移行したか否かを判断する（ステップＳ１０４）。オンラインからオフラインに移行したと判断された場合（ステップＳ１０４においてＹＥＳの場合）には、ＣＰＵ２０１は、時間計測を開始する（ステップＳ１４０）。より具体的には、ＣＰＵ２０１は、タイマーデータ２６２ｆのｃｏｕｎｔタグ２９６の初期値に、タイマー属性として設定されている値をセットし、続いて、この初期値を順次更新する。そして、ＣＰＵ２０１は、このタイマーデータ２６２ｆのｃｏｕｎｔタグ２９６がカウントアップしたか否かを判断する（ステップＳ１４２）。すなわち、ＣＰＵ２０１は、タイマーデータ２６２ｆのｃｏｕｎｔタグ２９６の値が「０」となっているか否かを判断する。
【０１７７】
タイマーデータ２６２ｆのｃｏｕｎｔタグ２９６が未だカウントアップしていない場合（ステップＳ１４２においてＮＯの場合）には、処理はステップＳ１２４に進む。
【０１７８】
一方、タイマーデータ２６２ｆのｃｏｕｎｔタグ２９６がカウントアップしている場合（ステップＳ１４２においてＹＥＳの場合）には、ＣＰＵ２０１は、自装置のデータ格納部２６２に格納しているワークスペースデータ２６２ａのワークスペースタグ２７０を参照して、自装置がワークスペースデータ２６２ａの作成者であるか否かを判断する（ステップＳ１０６）。
【０１７９】
自装置がワークスペースデータ２６２ａの作成者である場合（ステップＳ１０６においてＹＥＳの場合）には、処理はステップＳ１２４に進む。
【０１８０】
一方、自装置がワークスペースデータ２６２ａの作成者ではない場合（ステップＳ１０６においてＮＯの場合）には、ＣＰＵ２０１は、ワークスペースデータ２６２ａの実体部分（各オブジェクトを定義する記述）を削除する（ステップＳ１０８）。その後、処理はステップＳ１２４に進む。
【０１８１】
ステップＳ１２４では、ＣＰＵ２０１は、オフラインからオンラインに移行したか否かを判断する。オフラインからオンラインに移行していないと判断された場合（ステップＳ１２４においてＮＯの場合）には、処理はステップＳ１４０に戻る。
【０１８２】
一方、オフラインからオンラインに移行したと判断された場合（ステップＳ１２４においてＹＥＳの場合）には、ＣＰＵ２０１は、時間計測中のタイマー値をリセットする（ステップＳ１４４）。そして、処理はステップＳ１４６に進む。より具体的には、ＣＰＵ２０１は、タイマーデータ２６２ｆのｃｏｕｎｔタグ２９６に、タイマー属性として設定された値を再度セットする。
【０１８３】
ステップＳ１４６では、ＣＰＵ２０１は、自装置のデータ格納部２６２に格納しているワークスペースデータ２６２ａの実体部分が削除済であるか否かを判断する（ステップＳ１４６）。ワークスペースデータ２６２ａの実体部分が削除済ではない場合（ステップＳ１４６においてＮＯの場合）には、処理はステップＳ１０２に戻る。
【０１８４】
一方、ワークスペースデータ２６２ａの実体部分が削除済である場合（ステップＳ１４６においてＹＥＳの場合）には、ＣＰＵ２０１は、いずれかの他の情報処理装置ＰＣに向けて、ワークスペースデータ要求を送信する（ステップＳ１２６）。そして、ＣＰＵ２０１は、他の情報処理装置ＰＣからの応答を待つ。他の情報処理装置ＰＣから何らかの受信データを受けると、ＣＰＵ２０１は、受信データの内容を判断する（ステップＳ１２８）。
【０１８５】
受信データが削除通知である場合（ステップＳ１２８において「削除通知」）には、ＣＰＵ２０１は、自装置のデータ格納部２６２に格納しているワークスペースデータ２６２ａの全体を削除する（ステップＳ１３０）。そして、処理はステップＳ１０２に戻る。
【０１８６】
一方、受信データがワークスペースデータである場合（ステップＳ１２８において「ワークスペースデータ」）には、ＣＰＵ２０１は、当該受信したワークスペースデータに基づいて、自装置のデータ格納部２６２に格納しているワークスペースデータ２６２ａを更新する（ステップＳ１３２）。そして、処理はステップＳ１０２に戻る。
【０１８７】
これに対して、オンラインからオフラインに移行していないと判断された場合（ステップＳ１０４においてＮＯの場合）には、ＣＰＵ２０１は、他の情報処理装置ＰＣからワークスペースデータ要求を受信したか否かを判断する（ステップＳ１１０）。他の情報処理装置ＰＣからワークスペースデータ要求を受信していない場合（ステップＳ１１０においてＮＯの場合）には、処理はステップＳ１０２に戻る。
【０１８８】
他の情報処理装置ＰＣからワークスペースデータ要求を受信した場合（ステップＳ１１０においてＹＥＳの場合）には、ＣＰＵ２０１は、自装置のデータ格納部２６２に格納しているワークスペースデータ２６２ａの全体が削除済であるか否かを判断する（ステップＳ１１２）。
【０１８９】
ワークスペースデータ２６２ａの全体が削除済である場合（ステップＳ１１２においてＹＥＳの場合）には、ＣＰＵ２０１は、削除通知をワークスペースデータ要求の送信元の情報処理装置ＰＣへ送信する（ステップＳ１１４）。その後、処理はステップＳ１０２に戻る。
【０１９０】
一方、ワークスペースデータ２６２ａの全体が削除済でない場合（ステップＳ１１２においてＮＯの場合）には、ＣＰＵ２０１は、自装置のデータ格納部２６２に格納しているワークスペースデータ２６２ａの実体部分を当該要求の送信元の情報処理装置ＰＣへ送信する（ステップＳ１１６）。その後、処理はステップＳ１０２に戻る。
【０１９１】
なお、図２９に示す処理手順は、ワークスペースを提供するアプリケーションの実行停止に伴って終了する。
【０１９２】
本実施の形態によれば、ワークスペースに参加していたいずれかのｎｏｄｅがローカル環境に移行すると、所定期間経過後に、ワークスペースデータの実体部分が削除されて、ユーザによる参照が不能になる。
【０１９３】
このような構成を採用することで、一旦、ワークスペースから離脱した後、比較的短時間の間に、再度ワークスペースに参加するようなユーザにとってみれば、他のｎｏｄｅからワークスペースを構成するデータを取得する必要がないので、ワークスペースＷＳ上での作業を迅速に再開できる。一方、ワークスペースから長期間離脱したままのユーザにとってみれば、不必要なデータがそのままゴミとしてハードディスクなどに残ることを回避できるため、ハードディスクを有効に利用できるとともに、情報漏洩などの問題の発生を低減できる。
【０１９４】
［実施の形態２の第１変形例］
上述の実施の形態２では、ワークスペースデータの全体に対してタイマー属性（Ｔｉｍｅｒ）が設定され、このタイマー属性の値に基づいて、ワークスペースデータの実体部分を一括して削除する構成について例示した。これに対して、本変形例では、ワークスペースデータに含まれるオブジェクト単位でタイマー属性を設定する構成について例示する。
【０１９５】
本変形例に従うワークスペースを提供するためのシステムの概略構成や情報処理装置ＰＣのハードウェア構成などについては、それぞれ図１および図２と同様であるので、詳細な説明は繰返さない。
【０１９６】
図３０は、この発明の実施の形態２の第１変形例に従うワークスペースデータ２６２ｇの内容の一例を示す図である。
【０１９７】
図３０を参照して、本変形例に従うワークスペースデータ２６２ｇでは、オブジェクトＯＢＪ１〜ＯＢＪ３の記述に対して、それぞれタイマー属性３０１〜３０３が追加されている。
【０１９８】
各ｎｏｄｅの参照制御部２５１（図２４）は、オブジェクトＯＢＪ１〜ＯＢＪ３に対応付けてそれぞれタイマー属性３０１〜３０３を定義し、各タイマー属性の値を順次更新する。そして、参照制御部２５１は、対応するタイマー属性の値がカウントアップしたオブジェクトについて、対応する記述を削除する。
【０１９９】
なお、その他の記述は、ワークスペースデータ２６２ｅと同様であるので、詳細な説明は繰返さない。
【０２００】
その他の処理手順および制御構造については、上述の実施の形態２と同様であるので、詳細な説明は繰返さない。
【０２０１】
本変形例によれば、上述の実施の形態２における効果に加えて、ワークスペース上に配置されたオブジェクトの重要度やファイルサイズなどに応じて、ローカル環境移行から参照不能となるまでの期間を自在に設定することができる。そのため、各ｎｏｄｅがローカル環境からオンラインに移行後、再度ワークスペースＷＳに参加する際に、他のｎｏｄｅから取得するデータ量を適正範囲に制限することができる。
【０２０２】
［実施の形態２の他の変形例］
上述した実施の形態１の第１変形例〜第５変形例についても、実施の形態２に対して同様に適用できる。
【０２０３】
［実施の形態３］
上述の実施の形態１および２、ならびにそれらの変形例では、各ｎｏｄｅがワークスペースデータの全体を保持する構成について例示したが、各ｎｏｄｅがワークスペースデータの一部を保持するような構成についても適用可能である。
【０２０４】
たとえば、複数のクライエント装置と、それぞれのクライエント装置とデータ通信可能に構成されたサーバ装置とを含むシステムを考える。このシステムにおいて、サーバ装置は、ワークスペースデータの全体を管理しており、各クライエント装置は、主として処理の高速化のために、当該サーバ装置に保持されているワークスペースデータの一部を動的に保持する（典型的には、いわゆるキャッシュ（ｃａｃｈｅ）機能）場合にも、本発明は適用可能である。より具体的には、このようなシステムにおいては、各クライエント装置が自装置の保持するキャッシュを上述したいずれかの実施形態と同様の処理手順に従って削除する。
【０２０５】
［その他の実施の形態］
本発明に係るプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明に係るプログラムに含まれ得る。
【０２０６】
さらに、本発明に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明に係るプログラムに含まれ得る。
【０２０７】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
【０２０８】
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
【０２０９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２１０】
２０１  ＣＰＵ、２０３  内部バス、２０５  モニター、２０７  通信インターフェイス、２０９  入力装置、２１１  ハードディスク、２１３  メモリ部、２１５  ＣＤ−ＲＯＭドライブ、２１７  フレキシブルディスクドライブ、２５０，２５１  参照制御部、２５１Ａ  タイマー部、２５２  データ操作部、２５４  同期制御部、２５６  描画部、２５８  ユーザ認証部、２６０  データ送受信部、２６２  データ格納部、ＮＷ  ネットワーク、ＰＣ，ＰＣ１〜ＰＣ３  情報処理装置、ＳＲＶ  サーバ装置。
【図１】
2010016382.tif 000003
【図２】
2010016382.tif 000004
【図３Ａ】
2010016382.tif 000005
【図３Ｂ】
2010016382.tif 000006
【図４】
2010016382.tif 000007
【図５】
2010016382.tif 000008
【図６】
2010016382.tif 000009
【図７】
2010016382.tif 000010
【図８】
2010016382.tif 000011
【図９】
2010016382.tif 000012
【図１０】
2010016382.tif 000013
【図１１】
2010016382.tif 000014
【図１２】
2010016382.tif 000015
【図１３】
2010016382.tif 000016
【図１４】
2010016382.tif 000017
【図１５】
2010016382.tif 000018
【図１６】
2010016382.tif 000019
【図１７】
2010016382.tif 000020
【図１８】
2010016382.tif 000021
【図１９】
2010016382.tif 000022
【図２０】
2010016382.tif 000023
【図２１Ａ】
2010016382.tif 000024
【図２１Ｂ】
2010016382.tif 000025
【図２２】
2010016382.tif 000026
【図２３】
2010016382.tif 000027
【図２４】
2010016382.tif 000028
【図２５】
2010016382.tif 000029
【図２６】
2010016382.tif 000030
【図２７】
2010016382.tif 000031
【図２８】
2010016382.tif 000032
【図２９】
2010016382.tif 000033
【図３０】
2010016382.tif 000034
【手続補正書】
【提出日】平成21年11月24日(2009.11.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記憶部を有する複数の情報処理装置を用いて、複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理方法であって、
前記情報処理装置が、前記仮想空間を構成するデータの少なくとも一部を自身の記憶部に格納するステップと、
前記情報処理装置が、他の情報処理装置との間で通信遮断状態であるか否かを判断するステップと、
前記情報処理装置が、前記通信遮断状態であると判断した場合に、当該時点において前記記憶部に格納されている前記データに対するユーザの参照を不能にするステップとを備え、ユーザの参照を不能にする前記ステップは、前記記憶部に格納されている前記データのうち、前記仮想空間を特定するための情報を前記記憶部に保持した状態で、前記仮想空間を構成する実体部分を削除するステップを含み、さらに
前記情報処理装置が、前記通信遮断状態への移行後、通信可能状態に復帰したか否かを判断するステップと、
前記情報処理装置が、前記通信可能状態に復帰したと判断した場合に、他の情報処理装置に前記仮想空間を構成するデータを要求するステップと、
前記情報処理装置が、前記他の情報処理装置から前記仮想空間を構成するデータの受信に応答して、自身の記憶部の内容を更新するステップと、
前記情報処理装置が、ユーザ操作に応答して、前記仮想空間の全体を削除するステップと、
前記情報処理装置が、他の情報処理装置から前記仮想空間を構成するデータの要求を受信した場合に、要求された仮想空間の全体が削除済であるか否かを判断するステップと、
前記情報処理装置が、前記要求された仮想空間の全体が削除済であると判断した場合に、要求元の情報処理装置に、前記要求された仮想空間の全体が削除済であることを通知するステップと、
前記情報処理装置が、他の情報処理装置からの前記仮想空間の全体が削除済であることの通知の受信に応答して、前記仮想空間を特定するための情報を含む前記仮想空間を構成するデータの全体を削除するステップとを備える、情報処理方法。
【請求項２】
ユーザの参照を不能にする前記ステップは、
前記複数の情報処理装置の間で共通に保持する暗号化鍵を用いて、前記記憶部に格納されている前記データを暗号化するステップと、
暗号化に用いた前記暗号化鍵を削除するステップとを含む、請求項１に記載の情報処理方法。
【請求項３】
前記情報処理装置が、前記通信可能状態に復帰したと判断した場合に、他の情報処理装置に共通鍵を要求するステップと、
前記他の情報処理装置からの前記共通鍵の受信に応答して、前記共通鍵を用いて、前記暗号化したデータを復号化するステップとをさらに備える、請求項２に記載の情報処理方法。
【請求項４】
ユーザの参照を不能にする前記ステップは、
前記通信遮断状態へ移行してからの時間を計測するステップと、
計測された時間が所定値に到達した場合に、前記データに対するユーザの参照を不能にするステップとを含む、請求項１〜３のいずれかに記載の情報処理方法。
【請求項５】
前記所定値は、前記仮想空間を構成するデータおよび前記仮想空間に含まれるオブジェクトの少なくとも一方の単位で規定される、請求項４に記載の情報処理方法。
【請求項６】
ユーザの参照を不能にする前記ステップは、前記通信遮断状態であると判断した場合であっても、ユーザが前記データを参照中であれば、前記データに対するユーザの参照を可能に維持するステップを含む、請求項１〜５のいずれかに記載の情報処理方法。
【請求項７】
他の情報処理装置とデータ通信可能に構成され、複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理装置であって、
前記仮想空間を構成するデータの少なくとも一部を格納するための記憶部と、
他の情報処理装置との間で通信遮断状態であるか否かを判断するための手段と、
前記通信遮断状態であると判断した場合に、当該時点において前記記憶部に格納されている前記データに対するユーザの参照を不能にするための手段とを備え、ユーザの参照を不能にするための前記手段は、前記記憶部に格納されている前記データのうち、前記仮想空間を特定するための情報を前記記憶部に保持した状態で、前記仮想空間を構成する実体部分を削除し、さらに
前記通信遮断状態への移行後、通信可能状態に復帰したか否かを判断するための手段と、
前記通信可能状態に復帰したと判断した場合に、他の情報処理装置に前記仮想空間を構成するデータを要求する手段と、
前記他の情報処理装置から前記仮想空間を構成するデータの受信に応答して、自身の記憶部の内容を更新するための手段と、
ユーザ操作に応答して、前記仮想空間の全体を削除するための手段と、
他の情報処理装置から前記仮想空間を構成するデータの要求を受信した場合に、要求された仮想空間の全体が削除済であるか否かを判断するための手段と、
前記要求された仮想空間の全体が削除済であると判断した場合に、要求元の情報処理装置に、前記要求された仮想空間の全体が削除済であることを通知するための手段と、
他の情報処理装置からの前記仮想空間の全体が削除済であることの通知の受信に応答して、前記仮想空間を特定するための情報を含む前記仮想空間を構成するデータの全体を削除するための手段とを備える、情報処理装置。
【請求項８】
記憶部を有する複数の情報処理装置を用いて、複数のユーザによる同時アクセス可能な仮想空間を提供するためのプログラムであって、前記プログラムは、前記情報処理装置によって実行されると、前記情報処理装置に、
前記仮想空間を構成するデータの少なくとも一部を前記記憶部に格納するステップと、
他の情報処理装置との間で通信遮断状態であるか否かを判断するステップと、
前記通信遮断状態であると判断した場合に、当該時点において前記記憶部に格納されている前記データに対するユーザの参照を不能にするステップとを行なわせ、ユーザの参照を不能にする前記ステップは、前記記憶部に格納されている前記データのうち、前記仮想空間を特定するための情報を前記記憶部に保持した状態で、前記仮想空間を構成する実体部分を削除するステップを含み、さらに、前記情報処理装置に、
前記通信遮断状態への移行後、通信可能状態に復帰したか否かを判断するステップと、
前記通信可能状態に復帰したと判断した場合に、他の情報処理装置に前記仮想空間を構成するデータを要求するステップと、
前記他の情報処理装置から前記仮想空間を構成するデータの受信に応答して、自身の記憶部の内容を更新するステップと、
ユーザ操作に応答して、前記仮想空間の全体を削除するステップと、
他の情報処理装置から前記仮想空間を構成するデータの要求を受信した場合に、要求された仮想空間の全体が削除済であるか否かを判断するステップと、
前記要求された仮想空間の全体が削除済であると判断した場合に、要求元の情報処理装置に、前記要求された仮想空間の全体が削除済であることを通知するステップと、
他の情報処理装置からの前記仮想空間の全体が削除済であることの通知の受信に応答して、前記仮想空間を特定するための情報を含む前記仮想空間を構成するデータの全体を削除するステップとを行なわせる、プログラム。
【国際調査報告】
2010016382.tif 000035
2010016382.tif 000036
2010016382.tif 000037
2010016382.tif 000038