(57)【要約】【課題】互いに共有しているファイルを複数のユーザで効率よく処理できる排他制御装置、プログラム及び方法を提供する。【解決手段】互いに共有しているファイルを複数のユーザで加工するための排他制御装置であって、ファイル内のオブジェクト単位にユーザの所有権を設定する所有権管理手段と、当該オブジェクトについて所有権の無いユーザによる当該オブジェクトに対する加工を禁止する排他制御手段と、リモートユーザに対し所有権を請求及び許諾するための所有対話手段とを備え、排他制御装置１ｂは排他制御装置１ａにオブジェクトＡの所有権の譲渡を請求でき（Ｓ４０５）、排他制御装置１ａが所有権の譲渡を許可するとき（Ｓ４１５）、排他制御装置１ｂはオブジェクトＡを所有できる（Ｓ４２０）。【選択図】　図１
2004078535.tif 000002
【特許請求の範囲】
【請求項１】
互いに共有しているファイルを複数のユーザで加工するための排他制御装置であって、
ファイル内のオブジェクト単位にユーザの所有権を設定する所有権管理手段と、
当該オブジェクトについて所有権の無いユーザによる当該オブジェクトに対する加工を禁止する排他制御手段と、
リモートユーザに対し所有権を請求及び許諾するための所有対話手段と、
を備えることを特徴とする排他制御装置。
【請求項２】
オブジェクトの同期更新前の不整合状態をユーザに識別可能にするステータス案内手段をさらに備えることを特徴とする請求項１に記載の排他制御装置。
【請求項３】
所有権の設定されているオブジェクトに対する同期更新をリモートユーザに対し請求及び許諾するための更新対話手段をさらに備えることを特徴とする請求項１又は２に記載の排他制御装置。
【請求項４】
前記所有権管理手段は、第一種オブジェクトに対する処理の制御情報に相当する第二種オブジェクト単位にユーザの所有権を設定することを特徴とする請求項１、２又は３に記載の排他制御装置。
【請求項５】
互いに共有しているファイルを複数のユーザで処理するための排他制御方法であって、
ファイル内のオブジェクト単位にユーザの所有権を設定する所有権管理工程と、
当該オブジェクトについて所有権の無いユーザによる当該オブジェクトに対する加工を禁止する排他制御工程と、
他ユーザに対し所有権の移転を請求及び許諾するための移転対話工程と、
を含むことを特徴とする排他制御方法。
【請求項６】
オブジェクトの同期更新前の不整合状態をユーザに識別可能にするステータス案内工程をさらに含むことを特徴とする請求項５に記載の排他制御方法。
【請求項７】
所有権の設定されているオブジェクトに対する同期更新を他ユーザに対し請求及び許諾するための更新対話工程をさらに含むことを特徴とする請求項５又は６に記載の排他制御方法。
【請求項８】
前記所有権管理工程において、第一種オブジェクトに対する処理の制御情報に相当する第二種オブジェクト単位にユーザの所有権を設定することを特徴とする請求項５、６又は７に記載の排他制御方法。
【請求項９】
互いに共有しているファイルを複数のユーザで処理するための排他制御装置を、
ファイル内のオブジェクト単位にユーザの所有権を設定する所有権管理手段と、
当該オブジェクトについて所有権の無いユーザによる当該オブジェクトに対する加工を禁止する排他制御手段と、
リモートユーザに対し所有権を請求及び許諾するための所有対話手段として機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、互いに共有しているファイルを複数のユーザで処理するための排他制御装置、プログラム及び方法に関する。
【０００２】
【従来の技術】
従来、分散処理システム、クライアントサーバシステムなどにおいて、共有ファイルの部分的な排他制御が行われている。その一例として、データベースでのトランザクション単位の排他制御や、ＣＡＳＥツール（ｃｏｍｐｕｔｅｒ　ａｉｄｅｄ　ｓｏｆｔｗａｒｅ　ｅｎｇｉｎｅｅｒｉｎｇ　ｔｏｏｌ）を用いた共同作業におけるファイル内オブジェクト単位の排他制御などが知られている。
【０００３】
例えばクライアントサーバシステムの排他制御では、共有ファイルのあるオブジェクトに対する手続があるクライアントの要求によって実行されるとき、他のクライアントの要求に応じた手続の実行を禁止するフラグがそのオブジェクトについてセットされる。このようにフラグがセットされ、すなわちオブジェクトに対するクライアントの排他的所有権が設定されると、そのフラグがリセットされるまでの期間（排他制御期間）、他のクライアント、すなわち所有権のないクライアントは、フラグがセットされているオブジェクトを加工することができない。
【０００４】
【発明が解決しようとする課題】
排他制御期間が短ければそれほど大きな問題にはならないものの、例えば排他制御期間の開始と終了がクリティカルセクションに応じて自動的に決まるものでなく、クライアントのユーザの意志によって決まるときなどには、排他制御期間が長期化しやすい。
【０００５】
しかし、排他制御期間においては、排他制御されているオブジェクトに対して所有権のないユーザは、いつ自分自身に所有権が設定されるのか不明のまま、排他的所有権のあるユーザから自分自身にその権利が移転されるまで待機するしかない。したがって、排他制御期間が長期化する場合には、共有ファイルを処理する複数のシステム全体で見ると、リソースの稼働率の低下やユーザの作業効率の低下が問題になっている。
【０００６】
本発明は、このような問題を解決するために創作されたものであって、互いに共有しているファイルを複数のユーザで効率よく処理できる排他制御装置、プログラム及び方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、本発明に係る排他制御装置は、ファイル内のオブジェクト単位にユーザの所有権を設定する所有権管理手段と、当該オブジェクトについて所有権の無いユーザによる当該オブジェクトに対する加工を禁止する排他制御手段と、リモートユーザに対し所有権を請求及び許諾するための所有対話手段と、を備えることを特徴とする。所有対話手段は、リモートユーザに対し所有権を請求し、リモートユーザからの所有権の請求を許諾する機能を実現する。このため、これから加工しようとするオブジェクトに対して所有権のないユーザは、所有権を有する他のユーザに対して所有権の自己への移転を請求し、当該他のユーザから所有権を移転してもらうことにより、所有権が自分自身に移転されるまで単に受け身で待機する場合に比べて早期に所有権を得ることができる。したがって、本発明に係る排他制御装置によると、互いに共有しているファイルを複数のユーザで効率よく処理することができる。
【０００８】
さらに本発明に係る排他制御装置は、オブジェクトの同期更新前の不整合状態をユーザに識別可能にするステータス案内手段をさらに備えることを特徴とする。あるオブジェクトが将来の同期更新により変更されるであろうことを、そのオブジェクトについて所有権を持たないユーザが知り得るため、複数のユーザによる円滑な共同作業が可能になる。
【０００９】
さらに本発明に係る排他制御装置は、所有権の設定されているオブジェクトに対する同期更新をリモートユーザに対し請求及び許諾するための更新対話手段をさらに備えることを特徴とする。あるユーザによってなされたオブジェクトに対する加工について無条件に同期更新を実行するのではなく、他のユーザの許諾が得られてからはじめて同期更新を実行するようにできるため、共有ファイルを処理する複数のユーザ全体の統一的処理が可能になる。
【００１０】
さらに本発明に係る排他制御装置の前記所有権管理手段は、第一種オブジェクトに対する処理の制御情報に相当する第二種オブジェクト単位にユーザの所有権を設定することを特徴とする。これにより例えばあるオブジェクトを加工するための所有権をあるユーザに設定しつつ、そのオブジェクトを出力するための制御情報を加工するための所有権を他のユーザに設定するような、ファイルに対するきめ細かな所有権設定が可能になる。具体的には、例えば、音源波形などの音源データそのものの編集者と複数の音源データの再生ボリュームのバランス設定などの出力条件の編集者を個別に設定した共同作業が可能になる。
【００１１】
尚、本発明に係る排他制御装置に備わる複数の手段の各機能は、構成自体で機能が特定されるハードウェア資源とプログラムにより機能が特定されるハードウェア資源との任意の組み合わせにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。
【００１２】
また、本発明は装置の発明として特定できるだけでなく、プログラムの発明としても、そのプログラムを記録した記録媒体の発明としても、方法の発明としても特定することができる。
【００１３】
【発明の実施の形態】
以下、本発明の好適な実施形態を実施例に基づいて説明する。以下に説明する実施例は、本発明の排他制御装置をデータ編集装置に適用した例である。
【００１４】
図２は、データ編集装置１を通信ネットワークＮに接続した様子を表す図である。図示するようにデータ編集装置１はＬＡＮ、インターネット、電話回線等の通信ネットワークＮを介して相互に通信可能に接続されている。
【００１５】
図３は、データ編集装置１のハードウェア構成を示すブロック図である。図示するようにデータ編集装置１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ハードディスク１４、表示装置１５、ネットワークＩ／Ｏ１６及び入力装置１８を備え、バス１７で相互に接続されている。ＣＰＵ１１は、ＲＯＭ１２及びハードディスク１４に格納されたプログラムを実行してデータ編集装置１の各部を制御する他、本発明の一実施例による排他制御プログラムを実行し、オブジェクト単位にユーザの所有権を設定する処理、オブジェクトについて所有権の無いユーザによる当該オブジェクトに対する加工を禁止する処理、他のユーザに対し所有権を請求及び許諾する処理、不整合状態をユーザに識別可能にする処理、同期更新をリモートユーザに対し請求及び許諾する処理等を行う。ＲＯＭ１２はＣＰＵ１１が動作するために最低限必要なプログラムやデータを予め格納しているメモリであり、ＲＡＭ１３はプログラムや各種のデータ等を一時的に格納するメモリである。ハードディスク１４にはオペレーティングシステム（ＯＳ）、排他制御プログラム、ファイル等が記憶されている。表示装置１５は液晶表示装置やＣＲＴ等の表示装置とそれらの制御回路を備える。ネットワークＩ／Ｏ１６は所謂ネットワークインタフェースカードやモデム等であり、通信ネットワークＮに接続可能に構成されている。入力装置１８は、例えばキーボードやマウスである。
【００１６】
図４は、データ編集装置１で編集するファイル３０の構造を示す模式図である。ファイル３０は編集データ３１と属性データ３２とを含む複数のオブジェクト５１、５２を含んでいる。
【００１７】
編集データ３１はユーザによる実体的な編集の対象になるデータである。編集データ３１には、表示、印刷、放音等の処理の対象となるデータと、処理の制御情報となるデータとが含まれる。処理の対象となるデータとは、具体的には例えばＭＩＤＩデータのような音源データ、ワードプロセッサで作成したテキストデータ等に相当する。処理の制御情報となるデータとは、具体的には例えば音源データの再生ボリューム、テキストデータの書式、データのアクセス制限等に相当する。以下、処理の対象となるデータを含むオブジェクトを第一種オブジェクトといい、処理の制御情報となるデータを含むオブジェクトを第二種オブジェクトというものとする。図４において５１は第一種オブジェクト、５２は第二種オブジェクトを表している。
【００１８】
属性データ３２はオブジェクト内で編集データ３１と対になっているデータであって、編集データ３１の所有権と同期状態を示すデータである。より具体的には、属性データ３２は、当該属性データを含むオブジェクトについて所有権が設定されたユーザの識別情報と、ネットワークＮに接続された全てのデータ編集装置１のファイル３０が整合しているか否かを示す同期更新フラグとを含むデータである。
【００１９】
尚、本実施例では各オブジェクト内に編集データ３１及び属性データ３２を持たせることでオブジェクト単位にユーザの所有権を設定するが、表などを用いて編集データ３１と属性データ３２を関連付けてもよい。また、編集データ３１と属性データ３２は、１ファイル内に格納してもよいし互いに関連付けられた別々のファイルに格納するようにしてもよい。
【００２０】
以上、ファイル３０の構造について説明した。次にデータ編集プログラム２のモジュール構成について説明する。図５は、データ編集プログラム２のモジュール構成を表すブロック図である。
【００２１】
中央制御モジュール２１は、制御の中心となるモジュールであり、データ編集装置１間及び各モジュール間の情報の中継を行う中継プロセスをＣＰＵ１１で実行するためのモジュールである。
【００２２】
データ編集制御モジュール２２は、後述するユーザインタフェース（ＵＩ）制御プロセスから出力されるデータに基づいてＲＡＭ１３に格納された編集データに対する編集、追加、削除などの加工を行う編集プロセスをＣＰＵ１１で実行するためのモジュールである。編集プロセスは、ローカルユーザによって編集データが加工されてからリモートユーザによって更新が許諾されるまでの期間、ハードディスク１４に格納されているファイル３０からＲＡＭ１３に読み込んだオブジェクトについて加工前のデータとは別にして、加工後のデータを更新データとしてＲＡＭ１３に記憶させておく。
【００２３】
データ更新制御モジュール２３は、オブジェクトの更新が許諾されると編集プロセスがＲＡＭ１３に記憶させた更新データを当該オブジェクトに反映させることによりオブジェクトを更新するデータ更新プロセスをＣＰＵ１１で実行するためのモジュールである。
【００２４】
属性更新制御モジュール２４は、所有権の設定変更がリモートユーザに許諾されたり、編集データに対する加工が行われたりすると、属性データ３２を更新することにより所有権を設定したり同期更新フラグをセットしたりする属性更新プロセスをＣＰＵ１１で実行するためのモジュールである。属性更新プロセスがファイル３０内の第一種オブジェクト５１及び第二種オブジェクト５２にアクセスしてオブジェクト内の属性データ３２を更新することでファイル３０内の第一種オブジェクト単位及び第二種オブジェクト単位でユーザの所有権が設定される。
【００２５】
ＵＩ制御モジュール２５は、所有権の設定請求、請求案内及び設定許諾、並びに更新データの入力受付及び入力拒絶による排他制御、並びに同期更新の請求、請求案内及び許諾、並びに同期更新前の不整合状態の案内をする対話プロセスをＣＰＵ１１で実行するためのモジュールであって、後述の各種画面を制御するとともに入力装置１８を用いて入力される指示及びデータを中継プロセスに出力する。例えば対話プロセスは、オブジェクトの属性データ３２に基づいて、ローカルユーザに所有権が設定されていないとき当該オブジェクトに対する加工を禁止し、リモートユーザによる編集データの加工によって当該オブジェクトの不整合状態が生ずると表示、音などでそれを案内する。また対話プロセスは、リモートユーザから所有権の設定請求や同期更新請求を受け付けると、ローカルユーザに表示、音などでそれを案内する。
【００２６】
以上、データ編集プログラム２のモジュール構成について説明した。次に対話プロセスで制御される画面について説明する。
図６は、データ画面２８の一例を表す図である。データ画面２８は第一種オブジェクトを表示及び加工するための画面であると共に、第一種オブジェクトに対する所有権の設定の請求及び許諾、同期更新の請求及び許諾を行うための画面である。図示するデータ画面２８は編集データ３１がＭＩＤＩデータである場合の例であって、どのオブジェクトについても所有権が設定されていない状態を表している。
【００２７】
図７は、自分自身に所有権を設定しようとする第一種オブジェクトをローカルユーザが選択した状態を表す図である。図６においてトラック”０２”の音源波形をマウスでドラッグして第一種オブジェクトの１つを選択すると、図７に示すように選択した部分（斜線部分）の色が変化する。色が変化したオブジェクトに対応する部分をマウスで右クリックすると図８に示す選択メニュー２８０が表示され、選択メニュー２８０中に選択項目として「所有」が表示される。またリモートユーザに所有されている第一種オブジェクトを選択する場合、そのオブジェクトに対応する部分をマウスで右クリックすることで表示される選択メニューには「所有」の代わりに「移転」という選択項目が表示される。「所有」又は「移転」をマウスで左クリックすると、選択した部分に対応する第一種オブジェクトについてローカルユーザに対する所有権の設定をリモートユーザに請求する処理が開始される。
【００２８】
図９は、第一種オブジェクトの所有権の移転をリモートユーザに請求したとき、リモートユーザのデータ編集装置１の表示装置１５にステータス情報が表示された状態を表す図である。リモートユーザから所有権の設定を請求されると、図示するように請求されたオブジェクトに対応する部分（斜線部分）の色が変化したり点滅したりするとともに「所有要求：”請求元リモートユーザのユーザ名”」というステータス情報が表示される。請求されたオブジェクトに対応する部分をマウスで左クリックすると、図１０に示す許可画面２８１が表示され、［ＹＥＳ］をクリックすると図１１に示すように濃く変化した部分に「所有中：”請求元リモートユーザのユーザ名”」というステータス情報が表示される。
【００２９】
図１２は、操作画面２９の一例を表す図である。操作画面２９は第二種オブジェクト３３に対する加工を行うための画面であると共に、第二種オブジェクト３４に対する所有権の設定の請求及び許諾を行うための画面である。図示する操作画面２９はＭＩＤＩデータを演奏するときのボリューム調整を行う場合の例である。どのユーザにも所有権が設定されていないボリュームつまみ４０をマウスで左クリックすると、選択したボリュームつまみ４０の色が変化する。色が変化したボリュームつまみ４０をマウスで右クリックすると図１３に示す選択メニュー２９０が表示され、選択メニュー２９０中に選択項目として「所有」が表示される。またリモートユーザに所有されている第二種オブジェクトを選択する場合、そのオブジェクトに対応する部分をマウスで右クリックすることで表示される選択メニュー２９０に「所有」の代わりに「移転」という選択項目が表示される。「所有」又は「移転」をマウスで左クリックすると、選択したボリュームつまみ４０に対応する第二種オブジェクト３４についてローカルユーザに対する所有権の設定をリモートユーザに請求する処理が開始される。
【００３０】
図１４は、ボリュームつまみ４０についてリモートユーザから所有権の設定を請求されたとき、表示装置１５にステータス情報が表示された状態を表す図である。リモートユーザから所有権が請求されると、図示するように所有権が請求されたボリュームつまみ４０の色が変化し「所有要求：”請求元リモートユーザのユーザ名”」というステータス情報が表示される。所有権の移転が請求されたボリュームつまみ４０をマウスで左クリックすると、図１５に示す許可画面２９１が表示され、［ＹＥＳ］をクリックすると所有権の移転が請求されたボリュームつまみ４０について図１６に示すように「所有中：”請求元リモートユーザのユーザ名”」というステータス情報が表示される。
【００３１】
以上、対話プロセスで制御される画面について説明した。以下、排他制御装置１ａのハードディスク１４に格納されているファイル３０を排他制御装置１ａのユーザと排他制御装置１ｂのユーザが共有し、排他制御装置１ａに格納された情報と排他制御装置１ｂに格納された情報の同期を取りながら、ファイル３０を共同で編集する場合を例に説明する。以下の処理はデータ編集装置１のＣＰＵ１１がデータ編集プログラム２をＲＡＭ１３にロードして実行することで行われる。
【００３２】
図１７は、オブジェクトが他のユーザに所有されていないときの、所有権の新規設定を請求及び許諾する処理の流れを表すシーケンス図である。ローカルユーザが所有権を請求する操作を行うと、データ編集装置１は請求対象オブジェクトの識別情報と請求元ユーザの識別情報とを全てのリモートユーザのデータ編集装置１に送信し、所有権を請求する（Ｓ１０５）。具体的には例えば次のように処理する。データ編集装置１ａの対話プロセスは、データ画面２８又は操作画面２９でユーザにより所有権を請求する操作が行われたとき、（”オブジェクト情報”、”所有権請求”）を中継プロセスに出力する。データ編集装置１ａの中継プロセスは、データ編集装置１ｂを含む全てのデータ編集装置１に（”オブジェクト情報”、”所有権請求”、”データ編集装置１ａのユーザ名”）を送信する。
【００３３】
データ編集装置１はリモートユーザから所有権の移転を請求されると、所有権が請求されていることを表示や音でローカルユーザに案内する（Ｓ１１０）。具体的には例えば次のように処理する。データ編集装置１ｂの中継プロセスは、データ編集装置１ａから（”オブジェクト情報”、”所有権請求”、”データ編集装置１ａのユーザ名”）を受信したとき、それらの情報を対話プロセスに出力する。データ編集装置１ｂの対話プロセスは、データ画面２８又は操作画面２９の当該オブジェクトを表示している部分の色を変化させ、その部分に「所有要求：”データ編集装置１ａのユーザ名”」を表示する。
【００３４】
リモートユーザから所有権を請求されたローカルユーザが所有権の新規設定を許諾する操作を行うと、データ編集装置１はローカルユーザによって許諾されたことを請求元リモートユーザに通知する（Ｓ１１５）。具体的には例えば次のように処理する。データ編集装置１ｂの対話プロセスは、ローカルユーザが所有権を許諾する操作を行ったとき、（”オブジェクト情報”、”所有許諾”）を中継プロセスに出力する。データ編集装置１ｂの中継プロセスは、（”オブジェクト情報”、”所有許諾”、”データ編集装置１ｂのユーザ名”）をデータ編集装置１ａに送信する。
【００３５】
請求元ユーザのデータ編集装置１は、すべての請求先リモートユーザから許諾されたことを通知されると、所有権を請求したオブジェクトのローカルの属性データ３２について所有権をローカルユーザに設定することによりローカルユーザによる当該オブジェクトの加工を可能にするとともに、ローカルユーザに所有権が設定されたことを全てのリモートユーザに通知し、全てのユーザのデータ編集装置１において属性データを同期更新させる（Ｓ１２０）。具体的には例えば次のように処理する。データ編集装置１ａの中継プロセスは、データ編集装置１ｂを含む全てのリモートユーザのデータ編集装置１から（”オブジェクト情報”、”所有許諾”、”データ編集装置１のユーザ名”）を受信したとき、（”オブジェクト情報”、”所有更新”、”データ編集装置１ａのユーザ名”）を引数として属性更新プロセスを呼び出すとともに全てのリモートユーザのデータ編集装置１に（”オブジェクト情報”、”所有更新”、”データ編集装置１ａのユーザ名”）を送信する。全てのデータ編集装置１において、属性更新プロセスはオブジェクト情報で特定されるオブジェクトの属性データ３２について所有者をデータ編集装置１ａのユーザ名に設定する。全てのユーザのデータ編集装置１では、対話プロセスが属性データに基づいて当該オブジェクトについて「所有中：”データ編集装置１ａのユーザ名”」を表示する。
【００３６】
図１８は、ユーザがオブジェクトを加工する処理の流れを表すシーケンス図である。
ユーザがオブジェクトを加工する操作を行うと、当該オブジェクトについてローカルユーザに所有権が無いとき、データ編集装置１はその加工を禁止する（Ｓ２０５）。具体的には例えば次のように禁止する。データ編集装置１ｂの対話プロセスは、マウスなどによりオブジェクトが選択されたとき、そのオブジェクトについて所有権が設定されているユーザのユーザ名を属性データ３２から中継プロセスを介して取得し、所有権が設定されているユーザのユーザ名とローカルユーザのユーザ名とを比較する。ユーザ名が一致しないとき、対話プロセスは選択されたオブジェクトに対する更新データの入力を拒絶し、例えばエラーメッセージ、エラー音などを出力する。
【００３７】
ローカルユーザにオブジェクトの所有権が設定されているとき、データ編集装置１はローカルユーザに加工を許可し、ローカルユーザによりオブジェクトが編集されると更新データを記憶するとともに（Ｓ２１０）、オブジェクトが編集されたことを全てのリモートユーザに通知し、全てのユーザのデータ編集装置１において同期更新フラグに１をセットさせる（Ｓ２１５）。具体的には例えば、データ編集装置１ａの対話プロセスは、ローカルユーザがオブジェクトを加工する操作を行って更新データを入力すると、データ編集装置１ａの中継プロセスに（”当該オブジェクト情報”、”編集あり”）を出力する。また、編集プロセスは更新データをＲＡＭ１３に記憶させる。ここでオブジェクトを加工する操作とはキーボードからデータを入力したり、ボリュームつまみ４０を上下に移動させたりすることである。データ編集装置１ａの中継プロセスは、データ編集装置１ｂを含む全てのデータ編集装置１に（”当該オブジェクト情報”、編集あり”）を送信する。全てのデータ編集装置１において、属性更新プロセスはオブジェクト情報で特定されるオブジェクトの属性データ３２について同期更新フラグに１をセットする。全てのユーザのデータ編集装置１では、同期更新フラグに１がセットされると対話プロセスが当該オブジェクトについて「所有中：”データ編集装置１ａのユーザ名”」の表示を「編集あり：”データ編集装置１ａのユーザ名”」に変更する。
【００３８】
尚、ローカルユーザのデータ編集装置１は、ローカルユーザが加工の操作を行う毎に、あるいは一定時間毎にリモートユーザに更新データを通知してもよい。また、リモートユーザのデータ編集装置１は、当該オブジェクトの編集データを更新データで更新することなしに、当該オブジェクトについて通知された更新データを表示するようにしてもよい。
【００３９】
図１９は、他のユーザに対し同期更新を請求及び許諾する処理の流れを表すシーケンス図である。ローカルユーザにより同期更新を請求する操作が行われたときデータ編集装置１は全てのリモートユーザのデータ編集装置１に同期更新を請求する（Ｓ３０５）。具体的には例えば次のように処理する。ローカルの編集データを加工したユーザのデータ編集装置１ａの対話プロセスは、加工したオブジェクトについて更新を請求する操作が行われると、（”オブジェクト情報”、”同期更新請求”、”更新データ”）を中継プロセスに出力する。更新データは編集プロセスから出力される。データ編集装置１ａの中継プロセスは、データ編集装置１ｂを含む全てのリモートユーザのデータ編集装置１にそれらの情報を送信する。
【００４０】
データ編集装置１はリモートユーザから同期更新を請求されると、同期更新が請求されていることを表示や音でローカルユーザに案内する（Ｓ３１０）。具体的には例えば次のように処理する。中継プロセスは、データ編集装置１ａから（”オブジェクト情報”、”同期更新請求”、”更新データ”）を受信したとき、（”オブジェクト情報”、”同期更新請求”）を対話プロセスに出力する。対話プロセスは、当該オブジェクト情報で一意に識別されるオブジェクトを表示している部分の色を変化させ、その部分について「更新要求：”データ編集装置１ａのユーザ名”」を表示する。また更新されない場合に元の状態に戻せるように、当該オブジェクトの編集データを更新データで更新することなしに当該オブジェクトについて更新データを表示する。
【００４１】
リモートユーザから同期更新を請求されたローカルユーザが同期更新を許諾する操作を行うと、データ編集装置１はローカルユーザによって許諾されたことを請求元リモートユーザに通知する（Ｓ３１５）。具体的には例えば次のように処理する。データ編集装置１ｂの対話プロセスは、ローカルユーザが同期更新を許諾する操作を行うと、（”オブジェクト情報”、”同期更新許諾”）を中継プロセスに出力する。データ編集装置１ｂの中継プロセスは、対話プロセスから（”オブジェクト情報”、”同期更新許諾”）が出力されたとき、（”オブジェクト情報”、”同期更新許諾”、”データ編集装置１ｂのユーザ名”）をデータ編集装置１ａに送信する。
【００４２】
同期更新の請求元ユーザのデータ編集装置１では、全てのリモートユーザによって同期更新が許可されると、ローカルのオブジェクトを更新データで更新すると共に、全てのリモートユーザのデータ編集装置１に同期更新されたことを通知し、全てのユーザのデータ編集装置１において編集データ及び属性データを同期更新させる（Ｓ３２０）。具体的には例えば次のように処理する。データ編集装置１ａの中継プロセスは、データ編集装置１ｂを含む全てのリモートユーザのデータ編集装置１から（”オブジェクト情報”、”同期更新許諾”）を受信したとき、（”オブジェクト情報”、”更新データ”）を引数として更新プロセスを呼び出す。更新プロセスは、オブジェクト情報で一意に識別されるオブジェクトを、引数として渡された更新データで更新するとともに属性データの同期更新フラグをリセットする。全てのデータ編集装置１の対話プロセスは、データ画面２８又は操作画面２９において当該オブジェクトについて「所有中：”データ編集装置１ａのユーザ名”」を表示する。
【００４３】
図１は、オブジェクトの所有権がデータ編集装置１ａのユーザに設定されているときに、当該オブジェクトの所有者であるユーザに自分自身（データ編集装置１ｂのユーザ）に対する所有権の設定、すなわち移転を請求及び許諾する処理の流れを表すシーケンス図である。
【００４４】
ローカルユーザが既にリモートユーザに所有権が設定されているオブジェクトについて所有権の移転を請求する操作を行うと、データ編集装置１は請求対象オブジェクトの識別情報と請求元ユーザの識別情報とを当該リモートユーザのデータ編集装置１に送信し、所有権の移転を請求する（Ｓ４０５）。具体的には例えば次のように処理する。データ編集装置１ｂの対話プロセスは、データ画面２８又は操作画面２９でローカルユーザによりデータ編集装置１ａのリモートユーザに所有権が設定されているオブジェクトに対する所有権の移転を請求する操作が行われたとき、（”オブジェクト情報”、”所有権移転請求”、”データ編集装置１ａのユーザ名”）を中継プロセスに出力する。データ編集装置１ｂの中継プロセスは、データ編集装置１ａに（”オブジェクト情報”、”所有権移転請求”、”データ編集装置１ｂのユーザ名”）を送信する。
【００４５】
データ編集装置１はリモートユーザから所有権の移転を請求されると、所有権の移転が請求されていることを表示、音などでローカルユーザに案内する（Ｓ４１０）。具体的には例えば次のように処理する。データ編集装置１ａの中継プロセスは、データ編集装置１ｂから（”オブジェクト情報”、”所有権移転請求”、”データ編集装置１ｂのユーザ名”）を受信したとき、それらの情報を対話プロセスに出力する。対話プロセスは、データ画面２８又は操作画面２９の当該オブジェクトについて表示されている「所有中：”データ編集装置１ａのユーザ名”」を「所有権移転請求：”データ編集装置１ｂのユーザ名”」に変更する。
【００４６】
リモートユーザから所有権の移転を請求されたローカルユーザが所有権の移転を許諾する操作を行うと、データ編集装置１はローカルユーザによって許諾されたことを請求元リモートユーザに通知する（Ｓ４１５）。具体的には例えば次のように処理する。データ編集装置１ａの対話プロセスは、ローカルユーザが許可画面２８１又は２９１で［ＹＥＳ］をクリックして所有権を許諾する操作を行ったとき、（”オブジェクト情報”、”所有移転許諾”）を中継プロセスに出力する。データ編集装置１ａの中継プロセスは、（”オブジェクト情報”、”所有移転許諾”）をデータ編集装置１ｂに送信する。
【００４７】
請求元ユーザのデータ編集装置１は、リモートユーザから所有権の移転を許諾したことを通知されると、所有権の移転を請求したオブジェクトのローカルの属性データ３２について所有者をローカルユーザに設定することによりローカルユーザによる当該オブジェクトの加工を可能にするとともに、ローカルユーザに所有権が設定されたことを全てのリモートユーザに通知し、全てのユーザのデータ編集装置１において属性データ３２を同期更新させる（Ｓ４２０）。具体的には例えば次のように処理する。データ編集装置１ｂの中継プロセスは、データ編集装置１ａから（”オブジェクト情報”、”所有移転許諾”）を受信したとき、（”オブジェクト情報”、”データ編集装置１ｂのユーザ名”）を引数として属性更新プロセスを呼び出すとともに全てのリモートユーザのデータ編集装置１に（”オブジェクト情報”、”所有更新”、”データ編集装置１ｂのユーザ名”）を送信する。全てのデータ編集装置１において、属性更新プロセスはオブジェクト情報で特定されるオブジェクトの属性データ３２について所有者をデータ編集装置１ｂのユーザ名に設定する。全てのユーザのデータ編集装置１では、対話プロセスが属性データに基づいて当該オブジェクトについて「所有中：”データ編集装置１ａのユーザ名”」の表示を「所有中：”データ編集装置１ｂのユーザ名”」に変更する。
【００４８】
以上、データ編集装置１の作動について説明した。本発明の実施例では、特許請求の範囲に記載の「所有権管理手段」は、ＣＰＵ１１、ＲＡＭ１３などで構成され、その機能は属性更新プロセスによって実現されている。特許請求の範囲に記載の「排他制御手段」は、ＣＰＵ１１、ＲＡＭ１３、表示装置１５などで構成され、その機能は対話プロセスによって実現されている。特許請求の範囲に記載の「ステータス案内手段」は、ＣＰＵ１１、ＲＡＭ１３及び表示装置１５などで構成され、その機能は対話プロセスによって実現されている。特許請求の範囲に記載の「所有対話手段」の機能は、ネットワークＩ／Ｏ１６、ＣＰＵ１１、ＲＡＭ１３、表示装置１５、入力装置１８などで構成され、その機能は対話プロセスによって実現されている。特許請求の範囲に記載の「同期対話手段」の機能は、ネットワークＩ／Ｏ１６、ＣＰＵ１１、ＲＡＭ１３、表示装置１５、入力装置１８などで構成され、その機能は対話プロセスによって実現されている。
【００４９】
本実施例のデータ編集装置１によると、これから加工しようとするオブジェクトに対して所有権のないユーザは、所有権を有するリモートユーザに対して所有権の自己への移転を請求し、リモートユーザから所有権を移転してもらうことにより、所有権が自分自身に移転されるまで単に受け身で待機する場合に比べて早期に所有権を得ることができる。したがって、本実施例のデータ編集装置１によると、互いに共有しているファイル３０を複数のユーザで内容の同期を取りつつ効率よく処理することができる。
【００５０】
本実施例のデータ編集装置１によると、オブジェクトが誰に所有されているか、オブジェクトが編集され同期更新されていない状態であるか、などを示す情報を表示、音などによってユーザに案内するため、あるオブジェクトが将来の同期更新により変更されるであろうことを、そのオブジェクトについて所有権を持たないユーザが知り得るため、複数のユーザによる円滑な共同作業が可能になる。
【００５１】
さらに本実施例のデータ編集装置１によると、所有権の設定と同期更新とを２段階に分けて請求及び許諾できる。すなわち、所有権を許諾されたユーザによってなされたオブジェクトに対する加工について無条件に同期更新を許諾するのではなく、全てのユーザが同期更新を許諾してはじめて同期更新を実行する。このため、ファイル３０を処理する複数のユーザ全体の統一的処理が可能になる。
【００５２】
さらに本実施例のデータ編集装置１によると、第一種オブジェクト単位及び第二種オブジェクト単位で所有権を設定することができる。具体的には例えば、データ編集装置１ａのユーザがＭＩＤＩデータの一部分を所有して加工する一方で、同じＭＩＤＩデータに対しデータ編集装置１ｂのユーザがそのＭＩＤＩデータの再生ボリュームの調整を行うといったようにきめ細かく作業を分担した共同作業が可能になる。
【００５３】
尚、本実施例では排他制御装置をデータ編集装置１に適用したが、排他制御装置を例えばＭＩＤＩデータの入出力、加工、演奏が可能な電子楽器に適用してもよい。こうした電子楽器は一般にデータを表示、加工するための表示装置や鍵盤、トラック毎に音量を調整するためのボリュームつまみ等を備えており、そうしたボリュームつまみはデータ編集装置１のキーボードやマウスに相当する。
【００５４】
また、本実施例ではデータ画面２８及び操作画面２９で、オブジェクトについて所有権が設定されていないユーザにより加工の操作がなされたとき、対話プロセスがその加工の操作を受け付けないことで排他制御を行っているが、見かけ上は加工の操作を受け付け、同期更新の操作を受け付けないことで排他制御を行うようにしてもよい。同期更新の操作を受け付けないこととは、例えば加工したオブジェクトを表示している部分がクリックされたとき、表示されたメニューの「更新」を選択できないようにすることである。これによりユーザは所有権の無いオブジェクトについても自由に加工をできつつファイル３０の整合性を保つことができる。
【００５５】
また、本実施例では複数のデータ編集装置１がそれぞれ自律的にオブジェクトの所有権を設定する例を説明したが、ファイル３０をハードディスク１４に格納しているデータ編集装置１が所有権の設定を集中して管理し、他のデータ編集装置１はファイル３０を格納しているデータ編集装置１のみと所有権に関する情報を送受信するようにしてもよい。
【００５６】
また、本実施例では処理の対象となるデータとしてＭＩＤＩデータ等の音源データを例に説明したが、処理の対象となるデータはワードプロセッサで作成したデータであってもよい。この場合、データ画面２８はワードプロセッサのテキスト入力領域に相当し、操作画面２９は表示される書式設定や印刷等の操作を選択するための選択項目を表示するメニュー、あるいは書式設定や印刷等を指示するためのアイコン等に相当する。
【図面の簡単な説明】
【図１】本発明の一実施例である排他制御装置が所有されているオブジェクトの所有権の移転を請求及び許諾する処理の流れを表すシーケンス図である。
【図２】本発明の一実施例である排他制御装置を通信ネットワークに接続した様子を表す図である。
【図３】本発明の一実施例である排他制御装置のハードウェア構成を示すブロック図である。
【図４】本発明の一実施例である排他制御装置が有するファイルの構造を示す模式図である。
【図５】本発明の一実施例である排他制御プログラムのモジュール構成を表すブロック図である。
【図６】本発明の一実施例である排他制御装置の第一種オブジェクトを加工する画面を表す図である。
【図７】本発明の一実施例である排他制御装置の第一種オブジェクトを加工する画面においてオブジェクトを選択した状態を表す図であり、
【図８】本発明の一実施例である排他制御装置の操作の選択を行うメニューを表す図である。
【図９】本発明の一実施例である排他制御装置の画面にステータス情報が案内された状態を表す図である。
【図１０】本発明の一実施例である排他制御装置の所有権の移転を許可するための画面を表す図である。
【図１１】本発明の一実施例である排他制御装置の画面にステータス情報が案内された状態を表す図である。
【図１２】本発明の一実施例である排他制御装置の第二種オブジェクトを表示する画面を表す図である。
【図１３】本発明の一実施例である排他制御装置の操作の選択を行うメニューである。
【図１４】本発明の一実施例である排他制御装置の画面にステータス情報が表示された状態を表す図である。
【図１５】本発明の一実施例である排他制御装置の所有権の移転を許可するための画面を表す図である。
【図１６】本発明の一実施例である排他制御装置の画面にステータス情報が表示された状態を表す図である。
【図１７】本発明の一実施例である排他制御装置が所有されていないオブジェクトの所有権を請求及び許諾する処理の流れを表すシーケンス図である。
【図１８】本発明の一実施例である排他制御装置がオブジェクトを加工する処理の流れを表すシーケンス図である。
【図１９】本発明の一実施例である排他制御装置が同期更新を請求及び許諾する処理の流れを表すシーケンス図である。
【符号の説明】
１　排他制御装置
２　排他制御プログラム
１１　ＣＰＵ（所有権管理手段、排他制御手段、ステータス案内手段、所有対話手段、同期対話手段）
１２　ＲＯＭ
１３　ＲＡＭ（所有権管理手段、排他制御手段、ステータス案内手段、所有対話手段、同期対話手段）
１４　ハードディスク
１５　表示装置）排他制御手段、ステータス案内手段、所有対話手段、同期対話手段）
１６　ネットワークＩ／Ｏ（所有対話手段、同期対話手段）
１７　バス
１８　入力装置（所有対話手段、同期対話手段）
２１　中央制御モジュール
２２　データ編集制御モジュール
２３　データ更新制御モジュール
２４　属性更新制御モジュール
２５　ユーザインタフェース制御モジュール
２８　データ画面
２９　操作画面
３０　ファイル
３１　編集データ
３２　属性データ
【図１】
2004078535.tif 000003
【図２】
2004078535.tif 000004
【図３】
2004078535.tif 000005
【図４】
2004078535.tif 000006
【図５】
2004078535.tif 000007
【図６】
2004078535.tif 000008
【図７】
2004078535.tif 000009
【図８】
2004078535.tif 000010
【図９】
2004078535.tif 000011
【図１０】
2004078535.tif 000012
【図１１】
2004078535.tif 000013
【図１２】
2004078535.tif 000014
【図１３】
2004078535.tif 000015
【図１４】
2004078535.tif 000016
【図１５】
2004078535.tif 000017
【図１６】
2004078535.tif 000018
【図１７】
2004078535.tif 000019
【図１８】
2004078535.tif 000020
【図１９】
2004078535.tif 000021