JP4144864B2 - 情報処理方法及び装置 - Google Patents
情報処理方法及び装置 Download PDFInfo
- Publication number
- JP4144864B2 JP4144864B2 JP2003054140A JP2003054140A JP4144864B2 JP 4144864 B2 JP4144864 B2 JP 4144864B2 JP 2003054140 A JP2003054140 A JP 2003054140A JP 2003054140 A JP2003054140 A JP 2003054140A JP 4144864 B2 JP4144864 B2 JP 4144864B2
- Authority
- JP
- Japan
- Prior art keywords
- exclusive control
- control right
- data item
- data
- terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1822—Conducting the conference, e.g. admission, detection, selection or grouping of participants, correlating users to one or more conference sessions, prioritising transmission
Description
【発明の属する技術分野】
本発明は、複数のプロセス間でデータを共有し操作する技術に関する。特に3次元仮想空間中の物体を記述するデータを保持するデータベースをネットワークを介して複数のプロセス間での排他制御に好適な技術に関する。
【0002】
【従来の技術】
異なるコンピュータ端末間で3次元仮想空間を共有する技術は、遠隔会議システム、ネットワーク型対戦ゲーム、協調型デザインシステムなどを実現するために必須である。3次元仮想空間におけるオブジェクトを共有するシステムは、特許文献1に開示されている。
【0003】
このような3次元仮想空間を共有するシステムでは、各端末上で仮想空間の動画像をコンピュータグラフィクスにより描画するために仮想空間データが用いられる。このような仮想空間データを管理するための方式として以下のようなものがある。一つは、サーバ上に仮想空間データを持ち、各端末がネットワークを介してサーバ上の仮想空間データを参照し、CG画像を生成する方式である。また、別の方式として、各々の端末が仮想空間データのコピーを持ち、それを参照することによってCG画像を生成する方式がある。各々の端末が仮想空間データのコピーを持つ方式の場合、あるコンピュータ端末上で仮想空間に対して何らかの操作、例えば仮想物体の移動や回転が行われた場合には、その操作に関する情報が他の端末にネットワーク経由で伝送され、各端末の持つデータベースに反映される。こうして、各コンピュータ端末におけるデータベースの同一性が保たれる。
【0004】
しかしながら、いずれの方式においても、同一の仮想空間データに対して、各端末より同時または時間的に極めて近いタイミングで操作が行われた場合には、意図しない結果を引き起こしたり、仮想空間の整合が取れなくなる可能性がある。
【0005】
この問題に対処するための方法として、排他的制御権という概念が知られている。これは、ある操作対象を操作しようとする端末は、あらかじめ、その操作対象を独占的に操作するための権利(排他的制御権)を取得してから操作を行うものである。排他的制御権が設定された操作対象については、排他的制御権を取得した端末以外からは操作されることがない。すなわち、同時に当該操作対象を操作することができる端末は唯一であることが保証されるため、上記の問題点については解消される。
【特許文献1】
特開2000−99437号公報
【0006】
【発明が解決しようとする課題】
一般に3次元空間中に配置される物体は階層的な相互関係を持っている。ある物体に対して移動させるなどの操作を行うと、その操作はその物体に属するすべての物体に対して波及する。例えば、物体の上に何か別の物体が載っているような場合、下の物体を移動させると、通常は上に載っている物体もそれに合わせて、位置を変化させる。この物体間の階層的な相互関係を適切に表現するため、仮想空間データはN分木などの木構造、あるいは非再帰有向グラフなどのデータ構造によって記述されるのが一般的である。
【0007】
しかしながら、従来は、仮想空間の階層関係とは無関係に、個々の物体に対して排他的制御権が設定されていた。そのため、物体の操作を行うためには、あらかじめ物体が属する仮想空間の階層関係を知った上で、当該物体に関連する他の物体についても個別に排他的制御権を取得する必要があり、大変煩わしいものであったため、改善が求められていた。
【0008】
本発明は、上記の課題に鑑みてなされたものであり、仮想空間の階層構造に基づいた排他的制御権の取得方法を提供することにより、操作する側に仮想空間の構造を特別に意識させることなく、必要な排他的制御権を適切に取得できるようにすることを目的とする。
【0009】
【課題を解決するための手段】
上記の目的を達成するための本発明による情報処理方法は、
情報伝達媒体を介してサーバ装置と通信可能な複数の端末で構成され、前記複数の端末でそれぞれ動作する複数のプロセスが、操作対象のデータアイテムを根とする階層構造を有する、仮想空間の構造的な依存関係を記述するデータ構造によって複数のデータアイテムを共有するシステムにおいて、前記複数の端末の中の1つの端末で動作するプロセスによるデータアイテムの排他的制御権を設定するための前記サーバ装置による情報処理方法であって、
前記複数のデータアイテムの各々には、下位の階層に属する全てのデータアイテムに対して他のプロセスによる排他的制御権が設定されていない場合に前記1つの端末で動作するプロセスによる排他的制御権を設定する第1のタイプと、下位の階層に属するデータアイテムのうちの他のプロセスによる排他的制御権が設定されていないデータアイテムに対して、前記1つの端末で動作するプロセスによる排他的制御権を設定する第2のタイプとのいずれのタイプであるかを示す情報が設定されており、
第1指示手段が、前記複数の端末の中の前記1つの端末で動作するプロセスから排他的制御権を設定するべきデータアイテムの指示を受け付ける第1指示工程と、
探索手段が、前記複数のデータアイテムの階層構造情報に基づいて、前記第1指示工程で指示されたデータアイテムに関して下位の階層に属するデータアイテムを探索する探索工程と、
設定手段が、前記指示されたデータアイテムが前記第1のタイプであった場合には、前記探索工程で探索された全てのデータアイテムに他のプロセスによる排他的制御権が設定されていない場合に、前記指示されたデータアイテムと前記探索工程で探索されたデータアイテムに対して前記1つの端末で動作するプロセスによる排他的制御権を設定し、前記指示されたデータアイテムが前記第2のタイプであった場合には、前記指示されたデータアイテムと前記探索工程で探索されたデータアイテムのうち他のプロセスによる排他的制御権が設定されていないデータアイテムに対して前記1つの端末で動作するプロセスによる排他的制御権を設定する設定工程と、
第2指示手段が、排他的制御権を解放するべきデータアイテムの指示を受け付ける第2指示工程と、
第1解放手段が、前記第2指示工程で指示されたデータアイテムに関して前記階層構造情報に基づいて探索された下位の階層に属するデータアイテムと、該第2指示工程で指示されたデータアイテムとからなるデータアイテムの集合に対して前記1つの端末で動作するプロセスによる排他的制御権を解放する第1解放工程とを有し、
前記第1解放工程では、前記設定工程で前記1つの端末で動作するプロセスによる排他的制御権が設定されたデータアイテムのうち、当該排他的制御権が解放された前記データアイテムの集合以外のデータアイテムについては、前記1つの端末で動作するプロセスによる排他的制御権が維持される。
【0011】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【0012】
〔第1実施形態〕
第1実施形態では、本願発明による情報処理方法を、仮想空間の構造と属性を記述するシーンデータベースを複数の端末で共有する仮想空間共有システムに適用した実現形態について説明する。
【0013】
本実施形態の仮想空間共有システムの全体的な構成を図1に示す。システムには1つのサーバプロセス101(以下、「サーバ」と略す)と、複数のクライアントプロセス103(以下、「クライアント」と略す)があり、情報伝達媒体としてのネットワーク102を介してデータを交換する。それぞれのクライアントは共通の仮想空間の構造と属性を記述するシーンデータベースを保持する。なお、本実施形態では、ネットワーク102はイーサネット(登録商標)上に構築したLANである。また、以下の説明では、サーバとクライアントとを総称して「ホスト」と呼ぶことがある。なお、情報伝達媒体は有線でも無線でもかまわない。
【0014】
ここで、以下の説明で用いる「データベース操作」という用語について説明しておく。データベースの「操作」とは、共有データベースを持つ任意のプロセスにおけるデータベースの内容を書き換える処理のことを差す。このデータベース操作は「操作指令」と「操作実行」の2段階に分かれる。操作指令はデータベースの更新要求であり、実際の書き換えは行われない。データベースに対する実際の書き換えは、操作実行の段階で行われる。以下の説明では特に断らない限り、単に「操作」と記述すれば「データベース操作」のことを指すものとする。操作対象がデータベース以外の場合は、「ユーザによる対話デバイスの操作」などのように操作対象を明示するものとする。
【0015】
なお、操作指令はユーザが発生させることもあれば、プロセスが動作する過程で発生することもある。前者の例としては、ユーザがマウスなどの対話デバイスを操作して、仮想オブジェクトを移動させた際に操作指令が発生されることが挙げられる。一方、後者の例としては、シューティングゲーム・システムにおいて、ゲームプログラムが敵キャラクタをアルゴリズム的に移動・回転させた際に操作指令が発生されること等が挙げられる。
【0016】
さて、図2はデータベースを更新するための基本的な情報の流れを示すものである。図2で、A,B,C,D(201〜204)はクライアント、X(205)はサーバである。いま、クライアントA(201)がシーンデータベースの操作指令を行ったとする。操作指令の内容はネットワーク経由でサーバに送信される(図2で(1)の矢印の過程)。サーバは、この操作指令を受けてクライアントA(201)から送信されたデータを、接続されているすべてのクライアントに配信する(図2で(2)の矢印の過程)。このような過程を経ることによって、非操作者のクライアントB(202)、C(203)、D(204)も操作指令の内容を知ることができる。
【0017】
次に、クライアントまたはサーバプロセスが動作する端末の構成を図3に示す。図3において、301はCPUであり、端末全体の動作を制御する。302はメモリであり、CPU301の動作に用いるプログラムやデータを格納する。303はバスであり、各構成モジュール間のデータ転送を司る。304はバス303と各種装置とのインタフェースである。305はネットワークと接続するための通信部、306はCPU301に読み込むプログラムやデータを格納する外部記憶装置、307および308はプログラムを起動したり、プログラムの動作を指定するための入力装置を構成するキーボードおよびマウス、309はプロセスの動作結果を表示するための表示部である。
【0018】
本実施形態のシステムでは、ある操作指令に対する操作実行をサーバからのイベントの配信を待って行うことで、各クライアントのデータベースの更新タイミングを同期させる。図4は、時間の進行に沿った処理手順を模式的に示したものである。図4で、「操作者」は操作指令を行ったクライアント、「非操作者」は操作者以外のクライアントを指す。処理の進行は以下の通りである。
【0019】
まず、手順T401で操作者クライアントがデータベースの操作指令を発する。この時点では、操作者クライアントのデータベースは更新されない。次に手順T402にて、T401の操作内容を示すイベントが生成され、T403でこのイベントがサーバに送信される。サーバは手順T404でイベントを受信すると、T405で当該サーバとの接続が確立しているすべてのクライアントに向けてイベントを送信する(接続の確立について図7のステップS702で後述する)。サーバより発行されたイベントを操作者クライアントが手順T406で受信し、その内容を分析して(T407)、データベースを書き換える(操作実行、T408)。イベントの受信から操作実行までの手順は、非操作者クライアントでも同様である(手順T409〜T411)。図4に示したように、本実施形態のデータベース操作では、操作指令(T401)から操作実行(T408)までタイムラグがある。しかし、ネットワーク上の情報転送の条件が同様であれば、操作者・非操作者クライアントともほぼ同時刻にデータベースが更新され、仮想空間の画像がクライアント間で同期することが期待できる。
【0020】
図5は、クライアントからサーバに対して、或いはサーバからクライアントに対して発行されるイベントの構成を示したものである。イベントのデータは複数のフィールドから構成される。クライアントID501は、各クライアントを一意に識別するための番号で、クライアントがサーバとネットワーク接続を確立する際にサーバより割り当てられたものである(図7のステップS702により後述する)。操作ID502は操作を一意に識別するための番号で、各クライアントごとに操作指令を行った時点で割り当てられる。このクライアントID501および操作ID502の組を用いることにより、当該システム内部で発生したすべての操作指令を一意に特定することが可能である。
【0021】
エントリID503は、データベースの各エントリを一意に識別するための番号で、データをファイルからロードした際に割り当てられる。操作内容504は、操作指令の具体的内容であり、例えばCGオブジェクトのX座標をある値に設定する操作であれば、X座標属性を識別する番号とX座標の設定値の組で表される。
【0022】
なお、操作イベントを受信した時点で先に発行された別の操作イベントに対応した操作を実行中の場合には、後に受信した操作イベントは操作キューに保持され、先の操作実行が終了した後に順次実行される。図6は操作キューを示す図である。操作キューは、イベントの受信または実行処理を待機している操作指令のリストである。ある時点で待機状態にある操作指令がm個あるとすると、操作キューは図6のように操作指令に関するm個の情報(キューアイテム)を指令の発生順に並べたものとなる。
【0023】
次に、クライアント、サーバのそれぞれについて、データベース操作の処理の流れを詳しく説明する。
【0024】
図7は、クライアントの処理におけるデータベース操作の全体的な流れを示すフローチャートである。クライアントが起動されると、ステップS701にて仮想空間を記述するファイルを外部記憶装置306(図3)より読み込み、メモリ302(図3)上にシーングラフデータベースを構築する。クライアント間でのデータの同一性を維持するため、ここでロードするファイルはクライアント間で同じ内容を持つとする。次に、サーバとのネットワーク接続を確立する(ステップS702)。このとき、サーバから各クライアントを識別するためのクライアントID501(図5)が付与される。なお、クライアントとサーバ間のデータ交換は、TCP/IPプロトコルを用いた1対1のソケット通信にて行う。したがって、サーバは少なくともクライアントの数だけのソケット通信路を持つことになる。
【0025】
続いて、ステップS703でプロセスを分岐し、操作指令を処理するための操作処理(ステップS704)およびサーバから受信するイベントを処理するための受信イベント処理(ステップS706)を起動する。なお、図7には図示していないが、シーングラフデータベースを参照して、仮想空間のCG画像を生成するプロセスも起動する。この処理は、公知のCG画像生成方法と同様であるのでその詳細な説明は省略する。また、操作処理および受信イベント処理については、後に詳しく説明する。
【0026】
操作処理および受信イベント処理について、それぞれステップS705およびステップS707でプロセスの終了する指示があったかどうか判定され、終了指示がなければステップS704およびステップS706に戻って操作指令および受信イベントを継続して処理する。一方、終了指示があればステップS708でプロセスを統合し、サーバとのネットワーク接続を切断(ステップS709)した上で、データベースの内容を外部記憶装置306(図3)にファイルとしてセーブ(ステップS710)して、すべての処理を終了する。
【0027】
ここで、ステップS704の操作処理について図8を参照して詳しく説明する。初めに、ステップS801にて操作指令の内容を入力する(T401)。このとき、操作指令を一意に特定する操作ID502(図5)を決定する。次に、ステップS802にて、ステップS801で入力した操作の内容に基づいて、イベントデータ(図5参照)を生成する(T402)。そして、ステップS803に進み、生成したイベントデータをサーバに向けて発信する(T403)。
【0028】
続いて、ステップS706(図7)の受信イベント処理について詳しく説明する。図9は、受信イベント処理の流れを示した図である。受信イベントは、通信部305を介してサーバより受信され、不図示の受信イベントバッファに入力される。
【0029】
ステップS901では、受信イベントバッファを検索する。続くステップS902で、受信イベントバッファにイベントが入力されているかどうか判定し、受信イベントがあればステップS903に進む。一方、受信イベントが存在しないと判定されれば、処理を終了する。受信イベントがある場合、そのイベントデータを解析し、操作指令の内容を抽出する(ステップS903、T406、T407、T409、T410)。次に、ステップS904でイベントに記述された操作を実行する(T408、T411)。具体的には、エントリID503によって指定されたエントリに関して、操作内容504の内容に従って設定値を変更する等の操作を実行する。
【0030】
以上、クライアント側プロセスの流れを説明した。続いて、サーバ側プロセスの流れを図10を用いて詳しく説明する。
【0031】
最初にステップS1001で、クライアントからの接続要求を受け付け、通信を確立する。このとき、通信を確立した各クライアントにクライアントID501を通知する。次に、受信イベントバッファを検索し(ステップS1002)、受信イベントが存在するかどうか判定する(ステップS1003)。受信イベントがあれば、ステップS1004に進み、なければステップS1005に進む。ステップS1004では、接続している各クライアントに当該イベントを送信する(T404、T405)。ステップS1005では、ユーザからの指令などによりサーバ処理を終了するかどうかを判定し、終了する場合はステップS1006に進み、終了しない場合はステップS1002に戻る。ステップS1006では、接続している各クライアントに処理を終了することを通知し、次にクライアントとの接続を終了して(ステップS1007)から処理を終了する。
【0032】
次に、本実施形態でクライアントが読み込むデータベース記述ファイルの構成について説明する。
【0033】
図11はエントリ数がNのデータのファイルフォーマットを模式的に示したものである。各エントリの属性は、スタートデリミタおよびエンドデリミタで囲まれたフィールドに記述される。図11で、1番目、2番目、…、N番目のエントリのスタートデリミタはそれぞれ1101、1106、1109で示されている。一方、それぞれのエンドデリミタは1105、1108、1111である。エントリの属性は、1102〜1104のように、各属性を識別するための識別子および属性値の組で記述される。
【0034】
また、上記の説明では、サーバ・クライアント間のデータ通信を1対1のTCP/IPソケットにて行うとしているが、ブロードキャストあるいはマルチキャストによりイベントを交換してもよい。また、通信プロトコルはTCP/IPに限らない。また、通信媒体としてはイーサネット(登録商標)を利用しているが、USBやFirewireなど他の情報伝達媒体でも構わない。更に、ネットワークの形態もLANだけでなく、WAN経由の接続でもよいし、LANとWANを併用しても構わない。
【0035】
また、サーバの数は、1つの共有データベースシステムにつき1つに限定する必要はなく、複数のサーバが存在してもよい。この場合、各サーバに処理を割り当てる形態は任意である。例えば、クライアントごとに異なるサーバを用いてもよいし、あるいはデータベースのエントリごとにサーバを設けてもよい。
【0036】
更に、端末に対するプロセスの割当は1端末1プロセスに限定されるものではなく、1つの端末上で複数のプロセスを動作させることができる。その場合、プロセスの種別の組み合わせは任意であり、クライアントのみ、サーバのみ、クライアントおよびサーバの、いずれの組み合わせでもシステムは動作する。なお、同じ端末上のプロセスは、ネットワークに替えて、共有メモリを経由してデータを交換してもよい。
【0037】
また、イベントはサーバが仲介して各端末に配信されるが、データ操作を行った端末が直接に他の端末にイベントを送信してもよい。
【0038】
また、サーバプロセスにおいては、情報伝達媒体を介して通信可能に接続された複数のプロセスによって共有される共有データを該複数のプロセスの各々が保持して利用するシステムにおいて、各プロセスが保持する共有データの同一性を維持するために、複数のクライアントプロセスとの接続を確立し、これら複数のクライアントプロセスより共有データの変更に関るイベントを受信する。そして、受信したイベントを、上記複数のクライアントプロセスに対して発行する。
【0039】
次に、本実施形態のシステムにおいて仮想空間を表現するシーンデータベースの構造について説明する。
【0040】
本実施形態におけるシステムでのシーンデータベースは「シーングラフ」と呼ばれる木構造、あるいは非再帰有向グラフ構造をとる。シーングラフは、仮想空間の構造的な依存関係を記述するためのデータ構造である。図12では床1201の上にテーブル1202があり、さらにテーブル1202の上に箱1203が載っている仮想空間の例を示している。また、図13では、図12の仮想空間を表現するシーングラフの例を示している。図13中の丸印は木構造の節(ノード)を、直線は枝を意味する。以後、添付の図面において、特に断らない限りは、シーングラフのノードは丸印で、枝は直線で表現されるものとする。なお、各ノードは操作対象のデータアイテムを表す。
【0041】
図13のシーングラフでは、木構造の根に床1201が配置され、その子としてテーブル1202が、さらにテーブル1202の子として箱1203が配置されている。このようなデータ構造を用いることにより、仮想空間において床1201を移動させると、あたかもテーブル1202が床1201に、箱1203がテーブル1202の上に実際に載っているかのように、テーブル1202、箱1203も床1201に追従して移動させることができる。
【0042】
ところで、本実施形態のシステムにおいて、データベース中のある操作対象に対して、複数のクライアントが同時に操作指令を発行した場合には、操作者が意図しない結果を引き起こす可能性が生じる。例えば、不図示のクライアント1、クライアント2およびサーバがデータベースを共有しており、クライアント1が不図示の操作対象TをX軸の正方向に1だけ平行移動させる操作指令Aを、クライアント2が操作対象TをX軸の負方向に1だけ平行移動させる操作指令Bをほぼ同時に発行する場合を考える。サーバではクライアント1からの操作指令A,クライアント2からの操作指令Bを受け取り、各操作指令がサーバに到着した順に操作対象Tに対して操作を実行する。操作指令A、操作指令Bの順に実行した場合には、操作対象Tは、操作指令AによってX軸の正方向に1だけ平行移動し、操作指令BによってX軸の負方向に1だけ平行移動する。この結果、操作指令Bが終了した時点で操作対象Tは、操作対象Aが実行される直前の状態と等しくなる。操作指令B、操作指令Aの順に実行した場合も、操作指令Aが終了した時点で操作対象Tは、操作対象Bが実行される直前の状態と等しくなる。操作指令A、操作指令Bは微小時間内に実行されるため、各クライアントまたはサーバでは、操作対象Tはまったく移動しないか、または、振動しているように観察される。すなわち、この場合、クライアント1は操作対象Tが操作指令AによってX軸の正方向に1だけ平行移動することを意図しており、また、クライアント2は操作指令BによってX軸の負方向に1だけ平行移動することを意図しているため、実際の操作結果はクライアント1,2のどちらにとっても意図しないものとなっている。
【0043】
上記のような問題を回避するため、ある操作対象を操作しようとするホストは、事前に当該操作対象を独占的に操作する権利を取得し、その後に当該操作対象の操作指令を発行する。この権利を「排他的制御権」と呼ぶ。排他的制御権が設定されている操作対象については、排他的制御権を取得しているホスト以外からの操作指令は実行されず、排他的制御権を取得しているホストのみが当該操作対象の操作を行うことが可能となる。また、あるホストが排他的制御権を有している操作対象に関しては、当該操作対象の排他的制御権を取得したホストが排他的制御権を解放するまでの間、他のホストが排他的制御権を取得することはできない。排他的制御権を取得したホストが排他的制御権を解放した場合、当該操作対象は排他的制御権が設定されていない状態となり、すべてのホストの操作が許可されることになる。
【0044】
ホストが排他的制御権の取得を行うときには、「排他的制御権取得」の操作要求を発行する。具体的には、クライアントが3次元空間の表示画面上より所望の操作対象を選択して排他的制御権の取得要求を操作イベントとして発行する。この取得要求はサーバによって受信され各クライアントへ通知される。当該取得要求の発行元のクライアントでは以下に説明するように選択された操作対象とこれに関連する対象(データアイテム)について排他的制御権の取得が行われる。排他的制御権の取得結果サーバを介して全クライアントに通知される。
【0045】
通常、排他的制御権は操作対象ごとに独立に設定される。そのため、操作対象ごとにそれぞれ異なるホストが排他的制御権を取得することが可能である。例えば図14のシーングラフにおいて、クライアント1が操作対象1401の排他的制御権を、クライアント2が操作対象1402の排他的制御権を同時に取得することが可能である。
【0046】
上記の方法では、操作対象ごとに完全に独立して排他的制御権を取得することができるため、階層構造を持つシーングラフに適用した場合に問題が生じることがある。例えば図13のシーングラフにおいて、図示しないホストAが床1201の排他的制御権を取得した場合、図示しない別のホストBがテーブル1202の排他的制御権を、さらに図示しない別のホストCが箱1203の排他的制御権を取得することができる。図13のシーングラフでは、テーブル1202は床1201に、箱1203はテーブル1202と床1201に属している。そのため、床1201の排他的制御権を取得しているホストAが床1201を操作すると、テーブル1202、箱1203にまでその操作の影響が波及する場合がある。しかし、ホストAは床1201のみの排他的制御権しか取得していないため、テーブル1202、箱1203に関しては、他のホストによって操作されて意図しない操作結果となる可能性がある。
【0047】
これを回避するためには、ホストAはテーブル1202、箱1203の排他的制御権についても床1201の排他的制御権と同時に取得しておかなければならない。上記の方法では、ホストAはシーングラフの構造に基づいて、操作するノードに階層的に関連したノードの排他的制御権を個別に取得する必要がある。すなわち、各ホストは操作するシーングラフの階層構造を正確に把握した上で、操作対象となる全ノードについて排他的制御権を取得しなければならない。この作業は、シーングラフの規模に比例して煩雑なものとなる。
【0048】
本実施形態では、シーングラフ中で上位のノードに該当する操作対象の排他的制御権を取得した場合には、その下位の全ノードに該当する操作対象について排他的制御権を取得する。すなわち、ある操作対象の排他的制御権を取得すると、当該操作対象を根とする部分木(サブシーングラフ)に含まれるすべての操作対象の排他的制御権をも取得する。以後、本明細書では、シーングラフ中のノードに該当する操作対象について排他的制御権を取得することを、単に「ノードの排他的制御権を取得する」と表現する。また、サブシーングラフに含まれるすべての操作対象の排他的制御権を取得することを、単に「サブシーングラフの排他的制御権を取得する」と表現する。本実施形態によれば、操作対象以下のサブシーングラフのすべてのノードの排他的制御権が自動的に取得される。このため、操作を行うホストは操作対象の情報のみを所持していればよく、シーングラフの構造を正確に把握している必要はない。
【0049】
図15は、上記に述べた排他的制御権を取得する処理の流れを示している。ステップS1500では、指定の操作対象について、排他的制御権を取得する処理を開始する。ステップS1505では、指定のホスト(排他的制御権の取得要求元のクライアント)以外のホストが自ノード(その階層における排他的制御権の設定対象ノード)に対して排他的制御権を取得しているかを確認する。排他的制御権が取得されていた場合には、ステップS1508に進み、処理の呼び出し元(再帰処理を行なう上位の階層のノードに対する処理)に「失敗」を示す情報を通知して本処理を終了する。当該自ノードがホストより排他的制御権の取得を要求されたノードの場合は、当該ホストに対して取得の失敗を返すことになる。
【0050】
取得されていなかった場合にはステップS1501に進む。ステップS1501では、当該自ノードのすべての子ノードについて、排他的制御権を取得する処理が完了したかを判定する。すべての子ノードについて排他的制御権を取得する処理が完了したか、または、子ノードが存在しない場合にはステップS1506に進む。そうでない場合には、ステップS1502に進む。ステップS1502では、各子ノードについて、排他的制御権を取得する処理を行う。この処理は再帰的に行われる。すなわち、処理対象を子ノードとして、新たに排他的制御権を取得するための処理を呼び出す。より具体的には、現時点までの処理結果を保存してから処理を中断し、処理対象とした子ノードに対する処理(当該子ノードを自ノードとした処理)を新たにステップS1500から開始する。
【0051】
ステップS1503では、ステップS1502で呼び出した新たな排他的制御権を取得するための処理が成功したか失敗したかを判定する。成功した場合には、次の子ノードを処理するべくステップS1501に戻る。失敗した場合には、ステップS1504に進む。ステップS1504では、処理の呼び出し元に「失敗」を示す情報を通知し、ステップS1509に進む。
【0052】
ステップS1501において未処理の子ノードが存在しないと判定されたならば、ステップS1506で自ノードに排他的制御権を設定し、データベースに排他的制御権を取得したホストのホストIDを書き込む。そして、ステップS1507において、処理の呼び出し元に「成功」を示す情報を通知し、ステップS1509に進む。一方、ステップS1508では、処理の呼び出し元に「失敗」を示す情報を通知し、ステップS1509に進む。ステップS1509では、排他的制御権の取得処理を終了する。再帰呼び出しの過程で中断している処理がある場合には、中断している処理を再開する。
【0053】
例えば、図23に示すようなシーングラフがあった場合、処理は、O→A→C→D→B→Eの順に行われる。Oに対する処理が開始されると、未処理の子ノードが存在するので処理はステップS1502に進み、Oに対する処理を中断してAに対する処理がステップS1500より開始される。同様に、Aに対する処理を行うと、ステップS1502に進み、Aに対する処理が中断されて、Cの処理がステップS1500から開始される。Cには子ノードがないので、Cに対して排他的制御権が設定されていなければステップS1501→S1506→S1507→S1509と処理が進み、Cの処理に成功して終了することになる。この結果、呼び出し元の処理(Cの上の階層のAに対する処理)が再開され、ステップS1503からステップS1501へ戻ることになる。
【0054】
Aには、未だ未処理の子ノードDが存在するので、ステップS1502へ進み、Dの処理がステップS1500から開始される。Cと同様にDの処理に成功すると、再びAの処理が再開される。今度は全ての子ノードについて処理が終了しているので、ステップS1501からステップS1506へ進み、Aに対して排他的制御権が設定され、処理が終了する。Aに対する処理が終了すると、中断していたOに対する処理が再開されるが、Oには未処理の子ノードBが存在するので、再び処理が中断され、Bに対する処理が開始されることになる。以上のようにして、O、A、C、D、B、Eの全てのノードについて排他的制御権の設定に成功した場合に、Oに対する排他的制御権が設定されることになる。
【0055】
一方、排他的制御権を解放する場合については、あるサブシーングラフの排他的制御権を取得しているとき、解放すべきサブシーングラフの根となるノードの排他的制御権の解放を指示することにより、その下位の全ノードの排他的制御権が解放される。
【0056】
図16は、排他的制御権を解放する処理の流れを示している。ステップS1600では、指定の操作対象について、排他的制御権を解放する処理を開始する。ステップS1601では、当該ノードのすべての子ノードについて、排他的制御権を解放する処理が完了したかを判定する。すべての子ノードについて排他的制御権を解放する処理が完了したか、または、子ノードが存在しない場合にはステップS1603に進む。そうでない場合には、ステップS1602に進む。
【0057】
ステップS1602では、各子ノードについて、排他的制御権を解放する処理を行う。この処理は再帰的に行われる。すなわち、処理対象を子ノードとして、新たに排他的制御権を解放するための処理を呼び出す。現時点までの処理結果を保存してから処理を中断し、子ノードに対する処理を新たにステップS1600から開始する。
【0058】
ステップS1603では、自ノードに対して排他的制御権を設定したホストが、指定のホストと一致するかを確認する。なお、本実施形態では排他的制御権を解放できるのは対象ノードに排他的制御権を設定したホストのみとしている。すなわち、排他的制御権を設定したときに、そのノード(のデータ領域)に排他的制御権を設定したホストのIDを登録しておき、解放時には保持されているIDと解放処理を呼び出しているホストのIDとを照合し、これが一致したときのみ解放を行う。排他的制御権が設定されていない、あるいはホストが一致しない場合には、ステップS1605に進む。それ以外の場合にはステップS1604に進む。
【0059】
ステップS1604では、自ノードに対して設定されている排他的制御権を解放し、データベースに記述されている排他的制御権を取得したホストのホストIDを削除する。ステップS1605では、排他的制御権の解放処理を終了する。再帰呼び出しの過程で中断している処理がある場合には、中断している処理を再開する。
【0060】
例えば、図17のシーングラフにおいて、黒で示されるノードの排他的制御権を取得しようとしている場合、黒に加えて、灰色で示される下位ノードの排他的制御権も同時に取得する。同様に、黒で示されるノード1701の排他的制御権を解放すると、ノード1701に加えて、灰色で示される下位ノード(1702)の排他的制御権も同時に解放する。
【0061】
ここで、当該操作対象を根とするサブシーングラフのうち、一つでも排他的制御権を取得することができないノードが存在する場合には、そのサブシーングラフのすべてのノードの排他的制御権を取得できない。例えば、図18のシーングラフにおいて、図示しないホストAが黒の丸で示されるノード1801の排他的制御権を取得しようとしており、既に灰色の四角形で示されるノードの排他的制御権が図示しないホストBによって取得されているような場合には、ホストAは灰色の四角印の下位ノードの排他的制御権を取得することができない。よって、ホストAは黒の丸印で示されるノード1801の排他的制御権についても取得することができない。すなわち、あるノードの排他的制御権を取得する場合には、当該ノードを根とするサブシーングラフ中の全てのノードの排他的制御権が取得可能でなければならない。この条件が満たされない場合には、当該ノードの排他的制御権を取得することはできない。
【0062】
また、排他的制御権を取得したサブシーングラフについて、その一部を解放することも可能である。図19は、図示しないホストAが黒で示されるノード以下のサブシーングラフ1901の排他的制御権を取得している様子を示している。すなわち、ホストAは黒および灰色で示されているノード群の排他的制御権を取得している。一方、図20は、図19の状態から、ホストAが黒で示されるノード2001以下のサブシーングラフの排他的制御権を解放した状態を示している。すなわち、図19の状態において、ホストAがノード2001を指定して排他的制御権の解放を指示すると、図20に示されるようにノード2001以下のサブシーングラフの排他的制御権が解放される。
【0063】
また、排他的制御権を取得したサブシーングラフの一部を解放し、他のホストがその部分の排他的制御権を取得することも可能である。図21では、図20の状態から、上述したホストBが黒の四角印で示されるノード2001以下のサブシーングラフ2101の排他的制御権を取得した状態を示している。図21では、灰色の丸印のノード群2102に関してホストAが、黒および灰色の四角印のノード群2101に関してホストBが排他的制御権を取得している状態を示している。
【0064】
例えば図12のシーンにおいて、不図示のホストAが床1201の排他的制御権を取得したとする。このとき、テーブル1202および箱1203は床1201のサブシーングラフであるので(図13)、テーブル1202および箱1203の排他的制御権もホストAによって同時に取得される。次に、ホストAはテーブル1202の排他的制御権を解放し、不図示のホストBがテーブル1202の排他的制御権を取得する。このとき、ホストAは同時に箱1203の排他的制御権も解放することになるので、ホストBは同時にテーブル1202と箱1203の排他的制御権を取得することになる。この結果、ホストAは床1201の排他的制御権を、ホストBはテーブル1202と箱1203の排他的制御権を取得している状態となる。
【0065】
また、当該ノードを根とするサブシーングラフ中に、他のホストが排他的制御権を取得しているノードが存在した場合には、サブシーングラフ中の全てのノードの排他的制御権を解放できないようにすることも可能である。すなわち、サブシーングラフ中のいずれかのノードについて、他のホストが排他的制御権を取得している場合には、当該ホストが当該ノードの排他的制御権を解放しない限りは、その上位のノードあるいはサブシーングラフの排他的制御権を取得しているホストは、当該ノードあるいはサブシーングラフの排他的制御権を解放できないようにすることができる。
【0066】
上述したように、従来例においては個別にノードの排他的制御権を設定する。したがって、従来例においても排他的制御権を取得したノードの子ノードまたはサブシーングラフを、他のホストに操作させるようにすることも可能ではある。しかしながら、その手順は本実施形態よりも煩雑となる。例えば上記の場合、従来例ではホストAはテーブル1202および箱1203の排他的制御権を解放し、ホストBはテーブル1202および箱1203の排他的制御権を取得する必要がある。このため、排他的制御権を解放・取得の操作を行う回数の合計は4回となる。一方、本実施形態の場合、ホストAはテーブル1202の排他的制御権を解放し、ホストBはテーブル1202の排他的制御権を取得すれば済むので、排他的制御権を解放・取得する回数の合計は2回となる。この差は、シーングラフの規模が大きくなり、シーングラフの構造が複雑になるほど顕著に現れる。
【0067】
なお、上記の説明では、3次元仮想空間データを共有するとしているが、データベースの内容はこれに限らず任意であることはいうまでもない。また、データベース全体を共有する場合のみならず、その一部のみを共有する場合にも上記実施形態で説明した方法が適用可能であることは言うまでもない。これらの特徴は、以下の実施形態についても同様である。
【0068】
以上のように、第1実施形態によれば、情報伝達媒体を介して接続された複数のプロセスによってデータを共有し、データは単数または複数の階層構造を持つ部分データから構成され、部分データは単数または複数のデータアイテムから構成されるシステムにおいて、データアイテムについて特定のプロセスからの操作を許可し、当該プロセス以外のプロセスからの操作を拒否する排他的制御権を設定するための情報処理方法が開示され、排他的制御権を設定する対象ノードを指定すると、当該シーングラフの構造に基づき、対象ノード以下のサブシーングラフの排他的制御権をも同時に取得される。また、排他的制御権を取得した対象ノードを解放するときにも、シーングラフの構造に基づき、対象ノード以下のサブシーングラフの排他的制御権をも同時に解放される。このため、排他的制御権の取得、解放が容易になる。
【0069】
さらに、第1実施形態によれば、排他的制御権を取得したサブシーングラフの一部について排他的制御権を解放し、解放した排他的制御権を他のプロセスに取得させることが可能となる。柔軟な排他的制御権の設定を容易な操作で行なえる。
【0070】
〔第2実施形態〕
第1実施形態では、操作対象を根とするサブシーングラフのうち、一つでも排他的制御権を取得することができないノードが存在する場合には、そのサブシーングラフのすべてのノードの排他的制御権を取得できない。第2実施形態では、そのような場合に、サブシーングラフ中で排他的制御権を取得可能ノードについて排他的制御権を取得するようにする。
【0071】
図22は、第2実施形態による排他的制御権を取得する処理の流れを示している。ステップS2200では、指定の操作対象について、排他的制御権を取得する処理を開始する。ステップS2201では、当該ノードのすべての子ノードについて、排他的制御権を取得する処理が完了したかを判定する。すべての子ノードについて排他的制御権を取得する処理が完了したか、または、子ノードが存在しない場合にはステップS2203に進む。そうでない場合には、ステップS2202に進む。
【0072】
ステップS2202では、各子ノードについて、排他的制御権を取得する処理を行う。この処理は再帰的によって行われる。すなわち、処理対象を子ノードとして、新たに排他的制御権を取得するための処理を呼び出す。現時点までの処理結果を保存してから処理を中断し、子ノードに対する処理を新たにステップS2200から開始する。
【0073】
ステップS2203では、指定のホスト以外のホストが自ノードに対して排他的制御権を取得しているかを確認する。排他的制御権が取得されていた場合には、ステップS2205に進み、取得されていなかった場合にはステップS2204に進む。ステップS2204では、自ノードに排他的制御権を設定し、データベースに排他的制御権を取得したホストのホストIDを書き込む。
【0074】
ステップS2205では、排他的制御権の取得処理を終了する。再帰呼び出しの過程で中断している処理がある場合には、中断している処理を再開する。
【0075】
第2実施形態では、子ノードが排他的制御権を取得する処理(ステップS2202)の後に、その処理が成功したか否かの判定を行わない。すなわち、子ノードが排他的制御権を取得できなかった場合においても、そこで処理を停止することなく、サブシーングラフの全ノードに対して排他的制御権の取得を試みる。なお、第2実施形態における、排他的制御権の解放の手順については、第1実施形態と同じである。
【0076】
以上のように、第2実施形態によれば、操作対象を根とするサブシーングラフのうち、排他的制御権を取得することができないノードが存在する場合においても、サブシーングラフ中で排他的制御権を取得できるノードについてのみ、排他的制御権を取得することが可能となる。
【0077】
〔他の実施形態〕
なお、第1実施形態と第2実施形態における排他的制御権の取得方法のうちいずれかの取得方法を選択して、排他的制御権の取得処理を起動できるようにしてもよい。
【0078】
また、第1実施形態、第2実施形態における排他的制御権の取得方法のうちのいずれの取得方法を、適用するかをあらかじめノードごとに設定しておき、排他的制御権の取得処理が起動されると、当該ノードに設定された取得方法を用いて処理を実行するようにしてもよい。
【0079】
また、上記各実施形態においては、あるノードの排他的制御権を同時に取得できるホストはただ一つとしているが、各ノードについて、あらかじめ定められた数だけの複数のホストが排他的制御権を取得することを可能にしてもよい。この場合において、排他的制御権を取得した複数のホストが同時に操作を行ったときには、排他的制御は行われないため、先述したように、意図しない操作結果を引き起こす可能性がある。しかし、同一ノードに同時に操作を行わないことが保証されるホストのみが排他的制御権を取得するようにすることで、そのような問題を回避することが可能である。
【0080】
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0081】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0082】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0083】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0084】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0085】
【発明の効果】
以上説明したように、本発明によれば、仮想空間の構造に基づいた排他的制御権の取得方法を提供することにより、操作する側に仮想空間の構造を特別に意識させることなく、必要な排他的制御権を適切に取得することが可能となる。
【図面の簡単な説明】
【図1】第1実施形態におけるデータベース共有システム全体の構成を示すブロック図である。
【図2】第1実施形態によるプロセス間の基本的な情報伝達方法を示す図である。
【図3】第1実施形態による端末装置のハードウエア構成を示すブロック図である。
【図4】第1実施形態によるデータベースの更新手順を示す図である。
【図5】イベントデータのデータ構成例を示す図である。
【図6】操作キューのデータ構成例を示す図である。
【図7】第1実施形態によるクライアントプロセスのフローチャートである。
【図8】図7のクライアントプロセスにおける操作処理を示すフローチャートである。
【図9】図7のクライアントプロセスにおける受信イベント処理を示すフローチャートである。
【図10】第1実施形態によるサーバプロセスを説明するフローチャートである。
【図11】データベースの記述ファイルフォーマットを示す図である。
【図12】仮想空間の構造の例を示す図である。
【図13】図12の仮想空間を表現するシーングラフの例を示す図である。
【図14】操作対象別に排他的制御権を設定する例を示す図である。
【図15】第1実施形態による排他的制御権を取得する手順を説明するフローチャートである。
【図16】排他的制御権を解放する手順を説明するフローチャートである。
【図17】サブシーングラフの排他的制御権を取得する例を示す図である。
【図18】サブシーングラフの排他的制御権を取得できない例を示す図である。
【図19】サブシーングラフにおける排他的制御権の取得及び解放を説明する図である。
【図20】サブシーングラフにおける排他的制御権の取得及び解放を説明する図である。
【図21】サブシーングラフにおける排他的制御権の取得及び解放を説明する図である。
【図22】第2実施形態による排他的制御権を取得する手順を説明するフローチャートである。
【図23】図15に示した処理において、再帰呼び出しが必要となるシーングラフの一例を示す図である。
Claims (3)
- 情報伝達媒体を介してサーバ装置と通信可能な複数の端末で構成され、前記複数の端末でそれぞれ動作する複数のプロセスが、操作対象のデータアイテムを根とする階層構造を有する、仮想空間の構造的な依存関係を記述するデータ構造によって複数のデータアイテムを共有するシステムにおいて、前記複数の端末の中の1つの端末で動作するプロセスによるデータアイテムの排他的制御権を設定するための前記サーバ装置による情報処理方法であって、
前記複数のデータアイテムの各々には、下位の階層に属する全てのデータアイテムに対して他のプロセスによる排他的制御権が設定されていない場合に前記1つの端末で動作するプロセスによる排他的制御権を設定する第1のタイプと、下位の階層に属するデータアイテムのうちの他のプロセスによる排他的制御権が設定されていないデータアイテムに対して、前記1つの端末で動作するプロセスによる排他的制御権を設定する第2のタイプとのいずれのタイプであるかを示す情報が設定されており、
第1指示手段が、前記複数の端末の中の前記1つの端末で動作するプロセスから排他的制御権を設定するべきデータアイテムの指示を受け付ける第1指示工程と、
探索手段が、前記複数のデータアイテムの階層構造情報に基づいて、前記第1指示工程で指示されたデータアイテムに関して下位の階層に属するデータアイテムを探索する探索工程と、
設定手段が、前記指示されたデータアイテムが前記第1のタイプであった場合には、前記探索工程で探索された全てのデータアイテムに他のプロセスによる排他的制御権が設定されていない場合に、前記指示されたデータアイテムと前記探索工程で探索されたデータアイテムに対して前記1つの端末で動作するプロセスによる排他的制御権を設定し、前記指示されたデータアイテムが前記第2のタイプであった場合には、前記指示されたデータアイテムと前記探索工程で探索されたデータアイテムのうち他のプロセスによる排他的制御権が設定されていないデータアイテムに対して前記1つの端末で動作するプロセスによる排他的制御権を設定する設定工程と、
第2指示手段が、排他的制御権を解放するべきデータアイテムの指示を受け付ける第2指示工程と、
第1解放手段が、前記第2指示工程で指示されたデータアイテムに関して前記階層構造情報に基づいて探索された下位の階層に属するデータアイテムと、該第2指示工程で指示されたデータアイテムとからなるデータアイテムの集合に対して前記1つの端末で動作するプロセスによる排他的制御権を解放する第1解放工程とを有し、
前記第1解放工程では、前記設定工程で前記1つの端末で動作するプロセスによる排他的制御権が設定されたデータアイテムのうち、当該排他的制御権が解放された前記データアイテムの集合以外のデータアイテムについては、前記1つの端末で動作するプロセスによる排他的制御権が維持されることを特徴とする情報処理方法。 - 請求項1に記載の情報処理方法をコンピュータに実行させるための制御プログラム。
- 請求項1に記載の情報処理方法をコンピュータに実行させるための制御プログラムを格納したコンピュータ読み取り可能な記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003054140A JP4144864B2 (ja) | 2003-02-28 | 2003-02-28 | 情報処理方法及び装置 |
US10/786,116 US7660796B2 (en) | 2003-02-28 | 2004-02-26 | Information processing method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003054140A JP4144864B2 (ja) | 2003-02-28 | 2003-02-28 | 情報処理方法及び装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004265081A JP2004265081A (ja) | 2004-09-24 |
JP2004265081A5 JP2004265081A5 (ja) | 2006-12-28 |
JP4144864B2 true JP4144864B2 (ja) | 2008-09-03 |
Family
ID=32905791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003054140A Expired - Fee Related JP4144864B2 (ja) | 2003-02-28 | 2003-02-28 | 情報処理方法及び装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7660796B2 (ja) |
JP (1) | JP4144864B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006093180A1 (ja) * | 2005-03-01 | 2006-09-08 | Pioneer Corporation | 制御装置及び制御方法、ネットワークシステム及び制御装置用プログラム並びに情報記録媒体 |
JP2008108096A (ja) * | 2006-10-26 | 2008-05-08 | Sony Corp | コンテンツ共有システム、コンテンツ管理サーバ、クライアント機器、コンテンツ管理方法およびコンテンツ取得方法 |
JP5020605B2 (ja) * | 2006-11-16 | 2012-09-05 | 東京エレクトロン株式会社 | 上位制御装置、下位制御装置、画面の操作権付与方法および画面の操作権付与プログラムを記憶した記憶媒体 |
US20110035036A1 (en) * | 2008-04-17 | 2011-02-10 | Pioneer Corporation | Control apparatus, control method, control program and network system |
EP3995952A1 (en) | 2013-04-19 | 2022-05-11 | Huawei Technologies Co., Ltd. | Method for displaying a 3d scene graph on a screen |
US10341413B2 (en) * | 2016-01-04 | 2019-07-02 | Hangzhou Yameilijia Technology Co., Ltd. | Method and system for synchronizing robot with server |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5285528A (en) | 1991-02-22 | 1994-02-08 | International Business Machines Corporation | Data structures and algorithms for managing lock states of addressable element ranges |
US5742813A (en) | 1994-11-10 | 1998-04-21 | Cadis, Inc. | Method and apparatus for concurrency in an object oriented database using lock inheritance based on class objects |
US5729734A (en) * | 1995-11-03 | 1998-03-17 | Apple Computer, Inc. | File privilege administration apparatus and methods |
JPH10255069A (ja) | 1997-03-10 | 1998-09-25 | Canon Inc | 画像処理システム |
US6215495B1 (en) * | 1997-05-30 | 2001-04-10 | Silicon Graphics, Inc. | Platform independent application program interface for interactive 3D scene management |
US5933825A (en) * | 1997-07-21 | 1999-08-03 | Apple Computer, Inc. | Arbitrating concurrent access to file system objects |
JPH1185597A (ja) | 1997-09-04 | 1999-03-30 | Fuji Electric Co Ltd | 階層化された複数オブジェクトのロック制御方法 |
DE69809710T2 (de) | 1998-04-03 | 2003-09-18 | St Microelectronics Srl | Stabilisation eines einschleifigen Sigma Delta Modulators höherer Ordnung |
US7062532B1 (en) * | 1999-03-25 | 2006-06-13 | Autodesk, Inc. | Method and apparatus for drawing collaboration on a network |
US6529905B1 (en) * | 2000-01-11 | 2003-03-04 | Frontline Solutions, Inc. | Method and system for allowing multiple users to edit a hierarchical data structure |
WO2002017115A2 (en) * | 2000-08-21 | 2002-02-28 | Thoughtslinger Corporation | Simultaneous multi-user document editing system |
JP2002123813A (ja) | 2000-10-12 | 2002-04-26 | Shikoku Lines:Kk | サーバおよびクライアントを用いてサーバ上で1つのデータを作成する方法および装置 |
-
2003
- 2003-02-28 JP JP2003054140A patent/JP4144864B2/ja not_active Expired - Fee Related
-
2004
- 2004-02-26 US US10/786,116 patent/US7660796B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20040172448A1 (en) | 2004-09-02 |
JP2004265081A (ja) | 2004-09-24 |
US7660796B2 (en) | 2010-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7023452B2 (en) | Image generation system, image generating method, and storage medium storing image generation program | |
US10063660B1 (en) | Collaborative editing of media in a mixed computing environment | |
US20070283043A1 (en) | Information delivery system, delivery request program, transfer program, delivery program, and the like | |
US10579240B2 (en) | Live-rendered and forkable graphic edit trails | |
CN109684414A (zh) | 区块数据的同步方法、装置、设备及存储介质 | |
CN114127690A (zh) | 用于协作的合并树 | |
JP4144864B2 (ja) | 情報処理方法及び装置 | |
CN111736950A (zh) | 一种虚拟机的加速器资源添加方法及相关装置 | |
US7584243B2 (en) | Information processing method and apparatus maintaining consistency of shared data | |
JP4550604B2 (ja) | 設定情報同期プログラム | |
WO2014019545A1 (zh) | 内容发布系统及其内容发布方法 | |
US20060167954A1 (en) | Information processing method, information processing apparatus, method of controlling server apparatus, and server apparatus | |
US7516204B2 (en) | Information processing method and apparatus | |
US20080215595A1 (en) | Data distribution system, terminal apparatus, connection candidate introduction apparatus, information processing method and recording medium with program recorded thereon | |
CN109828977A (zh) | 同步表单数据的方法、装置和存储介质及客户端、服务端 | |
CN113259426B (zh) | 微服务中解决数据依赖的方法、系统、设备和介质 | |
JP2009251756A (ja) | クライアント装置、分散ファイルシステム、共有リソース多重化方法およびプログラム | |
JP6643114B2 (ja) | 画像処理装置、その制御方法、及びプログラム | |
CN108289226B (zh) | 数字电影视频数据的放映方法、服务器和系统 | |
JPH1041940A (ja) | 通信制御装置及びその方法 | |
JPH10320367A (ja) | ネットワーク移動可能なオブジェクト間の通信方法及び通信システム | |
TWI788085B (zh) | 同步管理伺服器、同步管理系統及同步管理方法 | |
CN112055057B (zh) | 一种Web系统动态扩展的方法及系统和设备 | |
JP2006059321A (ja) | 分散オブジェクト環境におけるセッション維持方法 | |
JPH11120059A (ja) | ネットワークシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070226 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070426 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071019 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071211 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080303 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080502 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080515 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080613 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080616 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110627 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120627 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120627 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130627 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |