JPH05324359A - 選択可能ロック領域 - Google Patents

選択可能ロック領域

Info

Publication number
JPH05324359A
JPH05324359A JP4325333A JP32533392A JPH05324359A JP H05324359 A JPH05324359 A JP H05324359A JP 4325333 A JP4325333 A JP 4325333A JP 32533392 A JP32533392 A JP 32533392A JP H05324359 A JPH05324359 A JP H05324359A
Authority
JP
Japan
Prior art keywords
user
cursor
lock
block
shared data
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.)
Granted
Application number
JP4325333A
Other languages
English (en)
Other versions
JPH0816872B2 (ja
Inventor
Cary L Bates
ケアリー・エル・ベーツ
Jeffrey M Ryan
ジェフリー・エム・ライアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05324359A publication Critical patent/JPH05324359A/ja
Publication of JPH0816872B2 publication Critical patent/JPH0816872B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Abstract

(57)【要約】 【目的】 協働的コンピュータ・ベース・システムにお
いて共用データ・オブジェクトのテキストのブロックま
たは他の部分を2人以上のユーザによる同時操作から選
択的に保護すること。 【構成】 協働的コンピュータ・ベース・システムは、
複数の端末を通信できるように接続するネットワークを
含む。各端末は出力表示装置とユーザ入力装置を含む。
協働的コンピュータ・ベース・システムは、システムの
複数のユーザから同時にアクセス可能な共用データ・オ
ブジェクトを含む。ユーザが共用データ・オブジェクト
に対するアクセス権を得るのに応答して、そのユーザに
すべての現ユーザの視覚表示装置上に表示するのに使用
できるカーソルが割り当てられる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は協働的コンピュータ・ベ
ース・システムに関し、具体的には、協働的エディタ用
の修正された「あなたが見る通りに私が見る」(WYSIWI
S)マルチユーザ・インターフェースに関する。さらに具
体的には、本発明は、協働的コンピュータ・ベース・シ
ステムにおいて共用データ・オブジェクトのユーザが選
択可能なブロックを複数のユーザによる同時操作から保
護する方法に関する。
【0002】
【従来の技術】協働的システムは、タスクの完成を目指
す個々の努力を調整する、実時間コンピュータ・ベース
環境として定義される。グループが関心をもつタスクま
たは主題は、文書、生産スケジュール、コンピュータ・
プログラム、製品設計、スチルもしくはフルモーション
のビデオ・イメージ、またはその解決策が情報の編成さ
れた表現によって表されるその他のタスクである。その
表現の構築は、複数の人間の労力によって、具体的には
複数の人間の同時の労力によって支援されると想定され
る。
【0003】コンピュータ・ネットワークは、通常、作
業を調整する手段である。作業の主題は、通常、ネット
ワークを介してアクセス可能なメモリに記憶された1つ
または複数の共用データ・オブジェクトとして構造化さ
れる。データ・オブジェクトを構築するためのマシン
は、テキスト・エディタやデータベース管理機能などの
ソフトウェアである。ユーザは、ネットワークによって
サポートされたマルチユーザ・インターフェース機能を
介して共用データ・オブジェクトにアクセスする。
【0004】共用データ・オブジェクトとは、ネットワ
ークを介して複数のユーザが同時にアクセスできるもの
である。このようなデータ・オブジェクトには、たとえ
ば、ワード・プロセシング文書やスプレッド・シートが
含まれる。共用データ・オブジェクトは、複数のユーザ
がそれに対して同時にあるタイプのアクセスを行うこと
のできる、データ・オブジェクトである。
【0005】したがって、協働的システムの設計者が直
面する共通の問題は、複数のユーザの一人一人にどんな
タイプの同時アクセスが許されるかである。この中心的
問題には、いくつかの副次的問題がある。ユーザ・アク
セスを、あるオブジェクトを読み出せることだけに限定
することもできるが、より一般的には、そのオブジェク
トを操作または変更するある種の権利を含める。たとえ
ば、複数のユーザのうちの誰にそのデータ・オブジェク
トを変更する権利を与えるか。各ユーザにそのデータ・
オブジェクトの同じ表現を示すか。各ユーザは共用デー
タ・オブジェクトに対する自分の視点をどの程度自由に
変えることができるか。
【0006】ユーザは、マルチユーザ・インターフェー
スを介して共用データ・オブジェクトにアクセスでき
る。このインターフェースは、通常、ユーザのローカル
・ワークステーションの制御下にあるビデオ・モニタを
含み、それを介して共用データ・オブジェクトのビュー
が表示される。このインターフェースは、オブジェクト
の内容を操作する権利を伴う、あるオブジェクトへの多
数同時アクセスを可能にするソフトウェアによってサポ
ートされる。共通のマルチユーザ・インターフェースの
1つのカテゴリの一般的特徴は、WYSIWISコンセ
プトと呼ばれている。厳密な形では、各ユーザが同じ視
点から全く同じものを見るとともに、各ユーザは共用オ
ブジェクトを操作する明白な直接の権利を与えられる。
すべてのユーザ・カーソルが同時に表示される。更新は
各参加者に伝送されるので、全参加者は実行されつつあ
ることをその実行時に見ることができる。実際には、W
YSIWISコンセプトは部分的に緩和される。たとえ
ば、ユーザは、通常、自分の視点を選択することができ
る。ユーザが選択した視点は、公用オブジェクトの私用
ビューとして知られている。ワード・プロセシング文書
では、ユーザが、その文書の自分が現在関心をもつ部分
を私用ビューとして選択する。
【0007】WYSIWISコンセプトは便宜のために
緩和されているが、また技術の限界への容認としても緩
和されている。ワード・プロセシング文書のテキストに
関する協働作業の例を考える。この文書に対して現在ア
クセス権を有する各ユーザのローカル・ワークステーシ
ョンのビデオ・モニタ上にウィンドウが生成され、テキ
ストはウィンドウ内に複製された文書から取られる。各
ユーザは、文書内の自分が変更を行う点を示す、1つの
テキスト・カーソルを有する。厳密なWYSIWISで
は、すべてのテキスト・カーソルが表示されるはずであ
る。実際には、カーソルの所有権を一目で区別できない
と、混乱を生ずることがわかっており、ユーザ自身のも
のを除き、ユーザのビデオ・モニタから私用カーソルを
抑制することがしばしば必要になる。
【0008】ワード・プロセシング文書内の同じ語を変
更しようとする同時試行など、ユーザ活動における争奪
または衝突も問題を引き起こす可能性がある。厳密なW
YSIWISでは、争奪の発生が許される。各ユーザに
即時アクセス可能な印象が与えられる。すべてのワーク
ステーションが1つの部屋にある、またはある形の遠隔
会議が行われている状況では、参加者達が会話によって
衝突を解決できるので、このような衝突を許すことは許
容される。ユーザ同士間の通常の通信が共用文書の変更
によって暗示されるものである場合、衝突はそれほど許
容されない。
【0009】
【発明が解決しようとする課題】本発明の目的は、協働
的コンピュータ・システムにおける協働作業を改善する
方法を提供することである。
【0010】本発明の別の目的は、共用データ・オブジ
ェクト用の協働的編集システムを提供することである。
【0011】本発明の別の目的は、修正されたWYSI
WISインターフェースを提供することである。
【0012】本発明の別の目的は、協働的コンピュータ
・ベース・システムにおいて共用データ・オブジェクト
のユーザが選択可能なブロックを、複数のユーザによる
同時操作から保護する方法を提供することである。
【0013】
【課題を解決するための手段】前記の諸目的は、以下に
記載するようにして達成される。本発明の方法は、協働
的コンピュータ・ベース・システムにおいて、共用デー
タ・オブジェクトのブロックを2人以上のユーザによる
同時操作から保護するために利用できる。この協働的コ
ンピュータ・ベース・システムは、複数の端末を通信で
きるように接続するネットワークを含む。各端末は、出
力表示装置及びユーザ入力装置を含む。協働的コンピュ
ータ・ベース・システムは、そのシステムの複数のユー
ザによって同時にアクセス可能な共用データ・オブジェ
クトを含む。ユーザが共用データ・オブジェクトへのア
クセス権を得るのに応答して、そのユーザに、すべての
現ユーザの視覚表示装置上に表示するために使用可能な
カーソルが割り当てられる。ユーザは、そのようなロッ
ク領域の位置座標を選定することにより、共用データ・
オブジェクトの一部分をロック領域で覆おうと試みるこ
とができる。位置座標が以前に確立されたロック領域の
どの部分も含む場合は、ロック領域が確立され、共用デ
ータ・オブジェクトの覆われた部分の操作を、確立ユー
ザのカーソル以外のカーソルに関連する変更がされない
ように阻止する。適当なコマンドを実行すると、そのユ
ーザに関連する以前のロック領域が解放される。したが
って、それぞれ特定のユーザと関連する、複数のロック
領域が確立できる。
【0014】
【実施例】ここで図面、具体的には図1を参照すると、
本発明の方法に従って利用されるローカル・エリア・ネ
ットワークの絵画図が示されている。ローカル・エリネ
ットワーク8は、サーバに記憶されたデータ・オブジェ
クトに関係する協働的コンピュータ・ベース編集システ
ムをサポートする。ローカル・エリア・ネットワーク8
は、伝送チャネル10を介して複数のパーソナル・コン
ピュータ12間のデータ通信を提供する。図のシステム
内のコンピュータ12は、IBMパーソナル・コンピュ
ータ、IBMパーソナル・システム/2、またはその他
の類似のシステムを利用して提供することが好ましい。
当業者なら理解できるように、コンピュータ12は、一
般に、ローカル・エリア・ネットワークのユーザにメッ
セージを送るためのユーザ入力をビデオ表示装置内で受
け取るためのキーボードを含む。コンピュータ12の1
つは、ネットワーク8のサーバとして機能する。このサ
ーバは、たとえば、IBM適用業務システム/400な
どの大型コンピュータでよい。
【0015】図2は、本発明によってサポートされるマ
ルチユーザ・インターフェースの機能の例を含むウィン
ドウの絵画図である。ウィンドウ18は、コンピュータ
12の表示スクリーン上に現れるような通常のウィンド
ウである。ローカルで生成されるマウス・ポインタ22
を使って、ウィンドウの制御機能を操作することができ
る。ウィンドウ18は、ユーザによってアクセスされる
共用データ・オブジェクトを識別するタイトル・バー2
4を含む。表示フィールド27は、共用データ・オブジ
ェクトの私用ビュー28を示す。カーソル20及び26
も表示フィールド27内に現れている。カーソル20
は、私用ビュー27のユーザに割り当てられたカーソル
である。カーソル26は、同じ共用データ・オブジェク
トに対するアクセス権を有し、共用データ・オブジェク
トの私用ビュー28中に延びる部分の、少なくとも一部
分にアクセスしている、別のユーザに割り当てられたカ
ーソルである。カーソル20は、ユーザによって発生さ
れた移動コマンドに応答して位置を移す。カーソル26
は、スクリーンの周囲を移動し、遠隔地点からのコマン
ドに応じて表示フィールド27の外に出ることもある。
共用データ・オブジェクトは、表示フィールド27内に
複製されたテキストの行によって部分的に表されるワー
ド・プロセシング文書でもよいが、図形イメージやその
他のタイプの文書でもよい。
【0016】カーソル20及び26は、カーソル20の
ソリッド・シェーディング及びカーソル26のクロスハ
ッチングによって示される、視覚的に明確な外観を生ず
る表示属性をもつ。好ましい実施例では、これらのカー
ソルは区別のできるカラーつきで見える。
【0017】図3は、ユーザ表示装置上に生成されたウ
ィンドウ102の絵画図である。テキスト・エディタ機
能がウィンドウ102と関連している。表示フィールド
104内には、目標テキスト・オブジェクトの私用ビュ
ーがある。ユーザは、自分に割り当てられたカーソル1
08を、自分が変更をしたいまたは資料を追加したい点
に合わせることによって、この目標テキスト・オブジェ
クトを編集する。カーソル108は、浮動する一時的ロ
ック領域106に埋め込まれた形で現れ、ロック領域1
06は、カーソル108が現在位置する語または語と同
等なオブジェクトにまで延びる。カーソル108及びロ
ック領域106は、カラー・モニタ上にカラーつき領域
として現れ、カーソル108及びロック領域106の特
定のカラーならびにロック領域106の背景の外観が、
カーソル108及びロック領域106の所有者ならびに
ロック領域のタイプを示す。
【0018】領域110は、特定のユーザに固有のカラ
ーづけによってマークされ、そのユーザとの何らかの関
連を示す。領域110は、所有権を識別することがで
き、また他のユーザによって編集されないようにロック
することもできる。第2のユーザ・カーソル114が、
浮動ロック領域112に埋め込まれて、表示フィールド
104のビュー内に現れる。この場合も、カーソル11
4及びロック領域112は、カーソル114の所有者を
識別する固有のカラーである。領域110は、カーソル
108、114の所有者、または協働的エディタの第3
の現在のまたは過去のクライアントと関連づけられる。
【0019】図4は、協働的図形エディタを使用した編
集用に、共用図形オブジェクトに開かれたウィンドウ1
16の絵画図である。カーソル130、138、140
によって表される3人のユーザが、表示フィールド11
7内に現れる共用図形オブジェクトのビュー内に現れ
る。テキスト・セグメント118、汽車の線画120、
第2のテキスト・セグメント122、宇宙船オブジェク
ト124と月オブジェクト125と宇宙旅行者オブジェ
クト126と惑星オブジェクト127とを囲む線画12
3、ならびに第3のテキスト・セグメント128を含む
複数のサブオブジェクトがビュー内に現れる。各領域ま
たはその境界の視覚属性が、その領域とユーザの間の何
らかの関連状況を示す。領域142、134、123
は、ユーザ選択領域であり、いつでも当該の確立ユーザ
によって取り消される。このユーザ選択領域は、他のユ
ーザによって操作されないようにロックすることがで
き、また単に所有者を示すために使用することもでき
る。
【0020】各ユーザ・カーソル130、138、14
0は、それ自体を区別するカラーをもつ。各カーソル
は、カーソル・ロック領域132、136、144の1
つの内部に現れ、これらのカーソル・ロック領域も区別
する視覚属性、好ましくは固有のカラーをもつ。この場
合も、これらのカーソル・ロック領域は、浮動的かつ一
時的であり、カーソルがユーザ選択領域または別のユー
ザのカーソル・ロック領域をもたないときに生ずる。カ
ーソル・ロック領域の形状及びサイズは、ユーザが選択
できる。たとえば、カーソル138の所有者は円形のカ
ーソル・ロック領域136を選択したが、カーソル14
0の所有者は正方形のカーソル・ロック領域144を選
択した。カーソル130の所有者はオブジェクト・ロッ
ク領域132を選択したが、この領域132は下にある
オブジェクト125の形状を引き継いでいる。
【0021】図5は、カーソル146によって表される
第4のユーザの、表示フィールド117のビューへの進
入を示す絵画図である。カーソル146のユーザは、表
示フィールド117内に表示されたXによって示される
選択点145を生成することによって、新しい領域の選
択を開始した。カーソル146は、他のカーソルと同様
にカラーでそのユーザが識別される。カーソル146
は、正方形のカーソル・ロック領域148によって取り
囲まれ、この領域148もカラーで所有者が識別され
る。
【0022】図6は、カーソル146のユーザによる選
択領域の完成を示す絵画図である。第2の選択点147
の選択、及び矩形構築要求によって、表示フィールド1
17に選択領域150がペイントされる。選択領域15
0は、図6ではクロスハッチングによって示されてお
り、他のユーザ関連領域と同様に、その所有者及びタイ
プを他のユーザに対して識別する、何らかの視覚的に区
別する属性をもつ。この指示を行う表示スタイルが好ま
しい。
【0023】図7は、カーソル146のユーザによる、
選択領域150の関連タイプの選択を示す絵画図であ
る。この場合も、このようなタイプは、ユーザ選択ロッ
ク領域の単なる「所有権」または作成でよい。関連の変
更は、その領域、この場合はユーザ選択ロック領域15
1の視覚属性または表示スタイルの変化によって示され
る。異なるタイプの関連に、異なる形式の相互関連やカ
ラー・シェーディングなど、異なる視覚属性を与えるこ
ともできる。
【0024】図8ないし図10は、カーソル・ロック・
モード・パラメータを選択する機能を制御するために開
かれた2つのウィンドウ152及び選択モード・ウィン
ドウ154の絵画図である。図8を参照すると、ユーザ
は、表示フィールド153及びマウス・ポインタ22を
使って、ONまたはOFFボタンを選択して、テキスト
・アプリケーションで自分に割り当てられたカーソルに
自動的にロック領域を付加することを選択できる。自動
的関連づけを選択する際、ユーザはロック・モードを選
択する。文字モード、ワード・モード及びライン・モー
ドは一般にテキスト編集に適している。当業者なら理解
するように、文、パラグラフ、ページなど、他のモード
も利用できる。図9は、イメージまたは図形アプリケー
ション用のロック領域の選択を示す。たとえば、POL
YGONボタンの選択は、通常は絵または図形の編集に
より適したモードである。「ユーザ定義」モードでは、
ユーザが、さまざまな頂点を指定することによって不規
則なロック領域を定義する。あるいは、OBJECTボ
タンを選択することによって、図形情報またはテキスト
情報を含むオブジェクトをロック領域として選択するこ
ともできる。同様に、SQUAREまたはCIRCLE
ボタンを選択して、それらの形状のロック領域を選択す
ることもできる。
【0025】図10は、どのようにしてユーザが選択領
域の様々な形状を定義できるかを示す。ウィンドウ15
4の表示フィールド155は、マウスによって選択可能
な3つのボタン、すなわちSQUAREボタン、CIR
CLEボタン及びPOLYGONボタンを含む。3つの
ボタンのいずれかを選択するには、円の半径などいくつ
かのパラメータの識別が必要である。POLYGONを
選択する場合は、複数の境界点を指定する必要がある。
このようにして選択モードを指定した後、そのユーザに
よる以後の選択操作は、選ばれた選択モードによって指
定された形状の上で行われる。
【0026】ネットワーク・サーバは、システムへのロ
グオン時に各ユーザに割り当てられた、カーソルの省略
時のカラーを生成する。ただし、このシステムはいくつ
かの方法でこのインターフェースをローカルに修正する
権利をユーザに与える。このような修正は、図11のウ
ィンドウ34、及び図12のウィンドウ40を介してサ
ポートされる。図11に示すように、ウィンドウ34
は、その名前バー36内に「ローカル表示オプション」
と記載されている。カラー・モード38に関して4つの
選択が提供される。これらの選択は、各ユーザが異なる
カラーを受け取るFULL、ユーザ自身のカーソルに1
つのカラーを、他のすべてのユーザのカーソルに別のカ
ラーを提供するTWO COLOR、モノクロ・スクリ
ーン上で各カーソルの強度を変えるGREY SCAL
E、及び各カーソルを区別するためにハッチング、平行
線、フラッシングなどの背景を使用するFILL PA
TTERNである。選択されたカラー・モードは、共用
データ・オブジェクト内に発生するロック領域のユーザ
が選択し定義した関連及びユーザに割り当てられたカー
ソルにまで延びる。
【0027】パレット・オプション39は、フル・カラ
ー・モードでのカラーの選択に関係する。DEFAUL
Tボタンを押すと、システムによって確立されたカラー
が呼び出される。CUSTOM PALLETTEボタ
ンを押すと、図12に示すウィンドウ40が生成され
る。ウィンドウ40内で、ユーザは各ユーザ用の新しい
カラーを選択することができる。カラー選択によって、
部分的に色盲であるユーザが各種カラーのパレットを選
択することができる。ユーザ/カラー・テーブル44
が、ウィンドウ40の表示フィールド内に現れる。特定
のユーザを選択すると、カラー・ホイール46から特定
のカラーが選択される。カラーの強度は、スクロール・
バー50を操作することによって変えることができる。
選択は修正ボタン48からボタンによって行われる。ボ
タン48には、取消しボタン及び省略時値選択ボタンも
含まれ、省略時値選択ボタンを押すと特定のユーザに最
初に割り当てられたカラーが復元される。
【0028】図13は、好ましい実施例において協働的
コンピュータ・ベース編集システムをサポートするため
のローカル・エリア・ネットワーク8のブロック・ダイ
アグラムを示す。サーバ12は、通信チャネル10を介
してコンピュータ12a〜12nと通信する。ローカル
・エリア・ネットワーク8は、トークン・リングの形で
示されているが、他の形状も可能である。サーバ12
は、本発明を実施するためにプログラミングされたIB
Mパーソナル・システム/2やAS/400システムな
どの通常のコンピュータであり、中央演算処理装置6
0、メモリ64、及び発信をフォーマットし着信をデフ
ォーマットするためのネットワーク・アダプタ62を含
む。サーバ12は、一人または複数のユーザによるアク
セス要求があるまで複数の共用データ・オブジェクトを
記憶する、ハード・ドライブ・ユニット56を含む。こ
のような要求があると、データ・オブジェクトがデータ
・バス58を介してコンピュータ・メモリ64に転送さ
れる。いくつかのオブジェクトがメモリ64内に存在す
る。オペレーティング・システムとローカル・エリア・
ネットワーク・サーバ66は、1つのオブジェクトとし
て表されている。協働的機械に共用データ・オブジェク
トの生成及び修正を行わせるために、エディタ・プログ
ラム68、関連/ロック・リスト70及びカーソル・リ
スト72が、特定の編集オブジェクト、ここでは第1の
編集オブジェクト74と関連づけられている。追加の編
集オブジェクトが同時に存在してもよい。
【0029】ユーザはコンピュータ12a〜12nを介
して共用データ・オブジェクトにアクセスする。コンピ
ュータ12bは、典型的な例である。コンピュータ12
bは、コンピュータ12と通信するパーソナル・ワーク
ステーションとして機能する。概略的には、パーソナル
・ワークステーション12bは、実質的にコンピュータ
12に類似しており、ネットワーク・アダプタ78、デ
ィスプレイ・アダプタ84、ハード・ドライブ・ユニッ
ト90、中央演算処理装置(CPU)82及びアドレス
可能メモリ88を含む。パーソナル・ワークステーショ
ン12bの諸構成要素が、データ・バス83を介してデ
ータを転送する。CPU82は、キーボード及びマウス
を含む入力周辺装置80を直接制御する。ディスプレイ
・アダプタ84は、ウィンドウを生成する表示装置86
を駆動する。メモリ88は、パーソナル・ワークステー
ション12bのユーザによってアクセスされる文書71
のレプリカ92を含む。レプリカ92にアクセスする
と、共用データ・オブジェクトのユーザの私用ビュー
を、その私用ビューをサポートするためにネットワーク
10にそのデータを転送するという負担をかける必要な
く、変更することができる。また、コマンド構造94も
存在し、ネットワーク8上で通信セッションを確立する
ために使用される。
【0030】第1の編集オブジェクト74の変更を実施
するマシンは、それに関連するエディタ68、関連/ロ
ック・リスト70、及びカーソル・リスト72である。
文書71は、関連/ロック・リスト70、カーソル・リ
スト72、及び目標編集オブジェクト74からなる。カ
ーソル・リスト72は、第1の編集オブジェクト74に
現在アクセスしている各ユーザのレコードである。関連
/ロック・リスト70は、編集オブジェクト74のアン
ロック領域へのカーソルの移動によって生成されるロッ
ク領域、及びユーザによってすでに確立されているロッ
ク領域、ならびにユーザに関連するその他の領域を含
む。カーソル・リスト72は、新しいユーザが編集オブ
ジェクト74にアクセスしたとき、またはユーザが編集
オブジェクトをログオフしたときに更新される。関連/
ロック・リスト70内のエントリ・レコードは、カーソ
ルの移動、及びユーザによる選択及び選択解除操作の実
行によって変化する。関連/ロック・レコードは、起
点、終点、関連タイプ、及びユーザ識別を含む。
【0031】図14は、協働的コンピュータ・ベース・
システム6をサポートする代替実施例のブロック・ダイ
アグラムである。図14は、クライアント12A〜12
C用の文書71のレプリカ92が、メモリ64内に含ま
れており、サーバ12内で実行される点を除いて、図1
3に類似している。入出力プロセッサ61は、複数のプ
ログラミング不能なワークステーション(NWS)85
と通信する。この実施例では、サーバ12は、複数のプ
ログラミング不能ワークステーションに接続されたIB
M適用業務システム/400など、複数のプロセスを走
らせる単一のコンピュータ・システムになる。各プログ
ラミング不能ワークステーション85は、メモリ64内
に対応するレプリカ92をもつ。
【0032】図15及び図16は、それぞれ、本発明の
第1の実施例、及び第2の実施例を実施する際に使用さ
れるデータ・レコード160、162、164、166
を示す。これらの実施例は、協働的テキスト編集、及び
協働的図形またはピクチャ編集に関する。
【0033】協働的テキスト・エディタ用の現ユーザ・
リストは、カーソル・レコード160を指すポインタの
リストを含み、カーソル・レコードの1つが詳細に示さ
れている。各現ユーザごとに1つのカーソル・レコード
が存在する。レコード160は、そのカーソルの一義的
識別子を含む。テキストの行、及びカーソルの行内での
オフセットを示す現在位置レコードが維持され、各コマ
ンドによる更新を受けて、位置が変化する。レコード1
60は、新しい領域の選択の際にロッキングまたはその
他の目的で利用される2つの関連フィールドを含む。S
ELECT_ONフィールドは、選択領域が活動状態で
あることを示すフラグである。選択領域は、関連タイプ
に関して識別されていない、新たに識別された領域であ
る。SELECT_LOCKフィールドは、選択領域用
のレコードを指すポインタである。
【0034】ユーザ・ロック・リストは、他のユーザに
対してロックされている領域のロック・レコードを指す
ポインタのリストである。カーソル・ロックは、そのカ
ーソルに関連する浮動ロックに関するロック・レコード
を指すポインタを含むフィールドである。ポインタは存
在することもしないこともある。最後に、関連領域リス
トは、他のユーザによって操作されないようにロックさ
れている以外の何らかの形でユーザと関連づけられてい
る「関連/ロック」レコードを指すポインタを含むフィ
ールドの集まりである。
【0035】レコード162は、このような関連/ロッ
ク・レコードの特徴を備えている。このレコードは、所
有カーソルの識別番号を含む。関連タイプ、たとえば選
択ロック、ユーザ・ロック、カーソル・ロック、所有権
などが識別される。行及びオフセットに関して、領域の
先頭及び末尾を識別するためのフィールドが設けられて
いる。
【0036】図16は、協働的図形エディタ用に利用さ
れるデータ構造レコードを示す。協働的図形エディタ用
の現ユーザ・リストは、カーソル・レコード164を指
すポインタのリストを含み、カーソル・レコードの1つ
が詳細に示されている。各現ユーザごとに1つのカーソ
ル・レコードが存在する。レコード164は、そのカー
ソルの一義的識別子を含む。図形またはピクチャ内のカ
ーソルのX軸及びY軸座標を示す現在位置レコードが維
持され、各コマンドによる更新を受けて位置が変化す
る。レコード164は、新しい領域の選択の際にロッキ
ングまたはその他の目的で利用される2つの関連フィー
ルドを含む。SELECT_ONフィールドは、選択領
域が活動状態であることを示すフラグである。選択領域
は、関連タイプに関して識別されていない、新たに識別
された領域である。SELECT_LOCKフィールド
は、選択領域用のレコードを指すポインタである。
【0037】ユーザ・ロック・リストは、他のユーザに
対してロックされている領域のロック・レコードを指す
ポインタのリストである。カーソル・ロックは、そのカ
ーソルに関連する浮動ロックに関するロック・レコード
を指すポインタを含むフィールドである。ポインタは存
在することもしないこともある。最後に、関連領域リス
トは、他のユーザによって操作されないようにロックさ
れている以外の何らかの形でユーザと関連づけられてい
る「関連/ロック」レコードを指すポインタを含むフィ
ールドの集まりである。
【0038】レコード166は、協働的図形エディタ用
の関連/ロック・レコードの特徴を備えている。このレ
コードは、所有カーソルの識別番号を含む。関連タイ
プ、たとえば選択ロック、ユーザ・ロック、カーソル・
ロック、所有権などが識別される。1つのフィールド
が、正方形、円、及びユーザ定義の多角形を含む、領域
の形状を識別する。その領域用に、定義点、すなわち頂
点の順序通り並べたリストが維持される。リストの配列
は、多角形の境界線によって結合された点のシーケンス
を識別するように行われる。
【0039】図17は、テキストまたは図形/ピクチャ
タイプの協働的編集システムへのクライアントによるア
クセスを示す高水準の流れ図である。このシステムの初
期状態は、サーバがクライアントの接続要求を待ってい
る状態である(ブロック200)。サーバは、通常はブ
ロックされ、ホスト・マシンの計算資源をほとんど必要
としない。ユーザの要求があると、接続が確立される。
判断ブロック202は、ユーザが疑似ユーザであっても
よいことを反映しており、終了フラグをセットすること
によって終了コマンドをサーバに渡す。ブロック202
からのYES分岐は、このようなフラグを反映してい
る。しかし、より普通には、実際のユーザが接続されて
おり、その結果ブロック204が実行されて、要求側ク
ライアント用の「非同期クライアント・マネージャ」が
確立される。クライアント・マネージャは以下の図19
に示されている。
【0040】ここで図18を参照すると、クライアント
におけるテキストまたは図形アプリケーション用の協働
的エディタの操作を示す高水準の流れ図が示されてい
る。このプロセスは、ブロック206から始まり、編集
すべき共用文書が識別される。次に、ブロック208
で、クライアントは、サーバと連絡をとり、ブロック2
06で識別された文書を要求する。この要求から出た伝
送は文字Aで示されている。サーバによる伝送の受取り
(これも文字Aで示されている)は、上の図17のブロ
ック200に示されている。ブロック210で、クライ
アントは、文字Bで示されるように、サーバからその文
書のコピーを受け取る。その文書は、編集用の目標オブ
ジェクト、カーソル・リスト、カーソル・レコード、及
び関連/ロック・レコードを含む。その文書はクライア
ント・メモリに記憶される。最後に、ブロック212
で、ローカル・エディタが初期設定される。これで編集
が開始できる。
【0041】次に、判断ブロック214で、ユーザから
入力を受け取ったか否かを判定する。YESの場合、判
断ブロック216で、そのコマンドが有効であったか否
かを判定する。そのコマンドが有効でない場合、ブロッ
ク218で、そのユーザに警告が出され、ブロック21
4に戻って次のユーザ・エントリを解析する。そのコマ
ンドが有効であった場合は、ブロック220で、編集コ
マンドをサーバに送る。ローカル・エディタ・プログラ
ムとサーバ・エディタ・プログラムの切替え点は、文字
Cで示されている。
【0042】次に、有効コマンドに対するローカル・エ
ディタの応答について詳しく説明する。最初に、ブロッ
ク215で、切替え点Fで示されるように、新しいカー
ソルをサーバから受け取ったか否か判定する。YESの
場合、ブロック217で、そのカーソルがローカル文書
に追加される。新しいカーソルをサーバから受け取って
いない場合は、ブロック222に進み、ここで編集コマ
ンドをサーバからすでに受け取ったか否かを判定する。
編集コマンドはローカルにも、また別のユーザから出す
こともできる。ただし、編集コマンドは、サーバからク
ライアントが受け取るまで作用を受けない。したがっ
て、サーバに伝送するコマンドを識別し、サーバからコ
マンドを受け取るために、ブロック214及び222が
繰り返し実行される。
【0043】切替え点Dで示されるように、サーバ・エ
ディタから編集コマンドが戻されると、ブロック224
でローカル文書上でそのコマンドを実行する。そのよう
なコマンドが、他のユーザ用のクライアント・マネージ
ャからくることがあり得ることは、以下の議論から明ら
かになるであろう。ブロック224で行われる操作につ
いては、図20ないし図33を参照して以下で詳細に説
明する。それには、編集操作、領域関連操作、カーソル
移動及びその他の段階が含まれる。判断ブロック226
で、そのコマンドがクイット・コマンドまたは脱出コマ
ンドであるかどうか判定する。そうである場合、ブロッ
ク227に進み、所有者のカーソルを削除する。ブロッ
ク229で、削除されたカーソルがこのクライアントの
カーソルであったか否かを判定する。そうでない場合
は、ブロック214に戻って、次のコマンドを待つ。削
除されたカーソルがこのクライアントのカーソルであっ
た場合は、ブロック228で、ローカル文書を閉じ、他
のローカル・クリーンアップ機能を実行し、その後ロー
カル・プロセスが打ち切られる。ブロック226からN
O分岐をとってブロック214に戻り、次のコマンドを
待つ。
【0044】図19は、サーバにおいて処理されている
クライアント・マネージャ及び協働的エディタを示す高
水準の流れ図である。このプロセスはブロック230か
ら始まり、要求目標オブジェクトまたは文書が他の誰か
によって現在編集されているかどうかを判定する。NO
の場合、ブロック232で、その文書を開き、協働的編
集をサポートするために適切なデータ構造を初期設定す
る。開いた文書が得られた後、またはそれがすでに存在
している場合、ブロック234で、新しいユーザ用のカ
ーソル・レコードを作成する。切替え点Bで示されるよ
うに、更新されたカーソル・レコード及びロック・レコ
ードが存在する場合はそれらを含めて、その文書のコピ
ーが、クライアント端末にダウンロードされる。ファン
アウト点Fで示されるように、新しいカーソルが、他の
すべてのクライアントに配布される。ブロック236
で、その文書にアクセスしているクライアントのリスト
に新しいユーザを追加する。
【0045】文書内の目標オブジェクトに対するクライ
アント・アクセスの管理は、ブロック238から始ま
る。切替え点Cで示されるように、クライアントから編
集コマンドを受け取ると、ブロック240で、文書のサ
ーバ・バージョンのセマフォアを得る。セマフォアを得
ると、クライアント・マネージャは文書ファイルに対す
る排他的アクセス権をもつ。したがって、クライアント
による文書へのアクセスが、一貫性を保持するために直
列化される。このとき、ブロック242で、文書のサー
バ・バージョン上で編集操作を実行する。これらの操作
については、図20ないし図33を参照して以下で詳細
に説明する。次に、ファンアウト点Dで示されるよう
に、ブロック246で、文書のローカル・バージョンに
対する並列操作のために現文書に接続されたすべてのク
ライアントに編集コマンドを配布する。以下で明らかに
なるように、図18に示したクライアント・エディタ
は、複数のクライアント・マネージャから編集コマンド
を受け取ることがある。次に、ブロック248で、最後
の編集コマンドがこのクライアント・マネージャのクラ
イアントによるクイットであったかどうか判定する。N
Oの場合は、ブロック250に進み、文書にセマフォア
を解放する。
【0046】クライアントのクイット命令の結果とし
て、ブロック252で、文書に接続されたクライアント
のリストからそのクライアントを除去し、そのクライア
ントのカーソル・レコードを削除する。ブロック254
で、あるクライアントが、ある文書に接続された唯一の
残りのクライアントであったかどうか判定する。YES
の場合、ブロック256で、文書を閉じ、必要なクリー
ンアップ段階を実行する。次に、ブロック257で、そ
の文書のセマフォアを解放する。クライアント・マネー
ジャを閉じて、クライアントだけを取り下げる。
【0047】図20は、クライアント・エディタがロー
カル端末上で走っているブロック224及びクライアン
ト・マネージャがサーバ上で走っているブロック242
で行われる操作を示す。これらの操作は、大部分が並行
しているが、存在する相違について指摘する。ここで図
20を参照すると、協働的エディタの操作を示す流れ図
が示されている。このプロセスはブロック258で始ま
り、コマンド及びそのコマンドを実行するためのカーソ
ルを受け取る。ブロック260で、そのコマンドが文書
の目標オブジェクトを何らかの形で修正するものである
か否かを判定する。
【0048】コマンドが目標オブジェクトを修正するも
のである場合、ブロック262で、そのカーソルに対し
てロックされている目標オブジェクト内のある位置にそ
のカーソルが位置するか否かを判定する。NOの場合、
ブロック264で、目標オブジェクトを修正するアプリ
ケーション・コマンドを実行する。これは、カナダ、オ
タワのCorelsystems Corp.から市販
されているCorelDrawなどの図形エディタ、ま
たはいくつかのテキスト・エディタのうちのいずれかに
よって利用されるコマンドに類似のコマンドを含み、セ
ーブ・コマンドと編集コマンドを含む。操作がクライア
ント・エディタのビュー内で行われる場合、ディスプレ
イの適切な修正が実行される。目標オブジェクトがロッ
クされている場合、変更は入力されず、クライアント・
エディタまたはクライアント・マネージャのどちらか該
当する方に戻る。目標オブジェクト・ロック状況の決定
については、図23及び図24を参照して以下で説明す
る。
【0049】文書の目標オブジェクトを修正しないコマ
ンドには、カーソル移動を制御するコマンド、及びロッ
クまたはその他の関連状況に関して目標オブジェクトの
領域の選択及び選択解除を必要とするコマンドが含まれ
る。また、このようなコマンドには、目標オブジェクト
のセーブ・コマンド及びクイット・コマンドも含まれ
る。ただし、ここでは第1のグループのコマンドが主に
重要である。判断ブロック260からNO分岐をとる場
合、判断ブロック266で、コマンドがカーソルを移動
させるものであったか否かを判定する。YESの場合、
ブロック268で、カーソル移動を実行する、すなわち
そのカーソルのカーソル・レコード160または164
を更新する。次に、プロセスがクライアント・エディタ
上で動作している場合、新しいカーソル位置を反映する
ように表示が更新される(図21及び図22参照)。次
に、ブロック272で、カーソル・ロックが更新される
(詳細については図25及び図26参照)。以下に説明
するように、カーソル・ロックは、カーソルの新しい位
置に応じて、戻されることも戻されないこともある。次
に、適切なクライアント・エディタまたはクライアント
・マネージャのどちらか該当する方に戻る。
【0050】コマンドがカーソル移動コマンドでなかっ
た場合は、判断ブロック266からNO分岐をとって判
断ブロック274に進む。ブロック274で、コマンド
が選択コマンドであるか否かを判定する。このコマンド
は、ユーザとの関連の形について共用データ・オブジェ
クトの一部分を識別するために利用される。YESの場
合、ブロック276で、選択操作を実行する(以下の図
27及び図28参照)。
【0051】コマンドが選択コマンドでなかった場合
は、判断ブロック274からNO分岐をとって判断ブロ
ック278に進む。ブロック278で、コマンドがロッ
ク・コマンドであるか否かを判定する。このコマンド
は、共用データ・オブジェクト内で選択領域をユーザ選
択ロック領域に変換する。YESの場合、ブロック28
0で、ロック操作を実行する(以下の図29参照)。
【0052】コマンドがロック・コマンドでなかった場
合は、判断ブロック278からNO分岐をとって判断ブ
ロック282に進む。ブロック282で、コマンドがロ
ック解除コマンドであるか否かを判定する。このコマン
ドは、共用データ・オブジェクト内のユーザ選択ロック
領域を削除するために利用される。YESの場合、ブロ
ック284で、ロック解除操作を実行する(以下の図3
1参照)。
【0053】コマンドがロック解除コマンドでなかった
場合、判断ブロック282からNO分岐をとって判断ブ
ロック286に進む。ブロック286で、コマンドが関
連づけコマンドであるか否かを判定する。このコマンド
は、共用データ・オブジェクト内で選択領域をユーザ関
連領域に変換するために利用される。YESの場合、ブ
ロック288で、セーブ・コマンドと編集コマンドを含
む、ブロック264に関して上で説明した機能と類似の
機能を実行する(以下の図30参照)。
【0054】残りの可能性のあるコマンドの実行は、ロ
ック領域との衝突を意味せず、ブロック288で、その
コマンドを実行する。このプロセスのすべての操作が終
わり、クライアント・エディタまたはクライアント・マ
ネージャのどちらか該当する方に戻る。
【0055】図21及び図22は、ローカル端末上の表
示を更新するプロセスに関するものである。一般に、サ
ーバでは表示は行われない。表示の更新は、文書の修正
の後、カーソル移動コマンドの後、及びユーザ関連領域
に関する操作の後に行われる。図21及び図22の流れ
図は、後者の2つのケースに関し、ブロック276、2
80、284、または290で企図される操作の後に実
行されると想定できる。
【0056】表示更新プロセスは、判断ブロック292
で始まり、受け取った編集コマンドの性質を識別するプ
ロセスを開始する。判断ブロック292で、コマンドが
カーソル移動コマンドであったか否かを判定する。YE
Sの場合、ブロック294でカーソルの所有者を識別
し、ブロック296で所有者のカラーを決定し、ブロッ
ク298でカーソルの新しい位置を決定し、ブロック3
00で古いカーソルを削除し、ブロック302で指定さ
れたカラーでカーソルをその新しい位置に表示する。
【0057】表示更新プロセスは判断ブロック304に
進む。判断ブロック304で、コマンドが領域を選択す
るものか否かを判定する。YESの場合、一連のブロッ
ク306、308、310、312及び314で、その
領域を、選択されたものとして識別するように修正し、
選択ユーザを識別する。具体的には、これらのブロック
では、選択領域の所有者を識別し、所有者のカラーを回
復し、SELECT表示スタイルを回復し、外観の修正
が必要なディスプレイ内の領域を決定し、最後に、所有
者のカラー及びSELECT表示スタイルを使って領域
をペイントする。
【0058】表示更新プロセスは、判断ブロック326
に進む。判断ブロック326で、コマンドが領域をロッ
クするコマンドであるか否かを判定する。YESの場
合、一連のブロック328、330、332、334、
336及び338で、その領域を、ロックされたものと
して識別するように修正し、所有者を識別する。具体的
には、これらのブロックでは、ロック領域の所有者を識
別し、所有者のカラーを回復し、LOCK表示スタイル
を回復し、外観の修正が必要なディスプレイ内の領域を
決定し、最後に、所有者のカラー及びLOCK表示スタ
イルを使って領域をペイントする。
【0059】表示更新プロセスは、判断ブロック340
に進む。判断ブロック340で、コマンドが領域を選択
解除またはロック解除するコマンドであるか否かを判定
する。YESの場合、一連のブロック342、344、
346及び348で、その領域を「通常」の外観に回復
する。具体的には、これらのブロックでは、通常の表示
カラーを回復し、通常の表示スタイルを回復し、外観の
修正が必要なディスプレイ内の領域を決定し、最後に、
通常のカラー及び表示スタイルを使って領域をペイント
する。
【0060】図22を参照すると、表示更新プロセス
は、判断ブロック350に進む。判断ブロック350
で、ビュー内でONである関連が他にあるか否かを判定
する。YESの場合、一連のブロック352、354、
356及び358で、その領域を、その関連を識別する
ように修正し、その所有者を識別する。具体的には、こ
れらのブロックでは、所有者の表示カラーを回復し、適
切な表示スタイルを回復し、外観の修正が必要なディス
プレイ内の領域を決定し、最後に、所有者のカラー及び
適切な関連表示スタイルを使用して領域をペイントす
る。
【0061】表示更新プロセスは、判断ブロック360
に進む。判断ブロック360で、ビュー内の領域に関し
て関連がOFFであるか否かを判定する。YESの場
合、一連のブロック362、364、366及び368
で、それらの領域を「通常」の外観で表示する。具体的
には、これらのブロックでは、通常の表示カラーを回復
し、通常の表示スタイルを回復し、ディスプレイ内の領
域を決定し、通常のカラー及び表示スタイルを使ってそ
の領域をペイントする。表示更新の完了後、ローカル・
エディタ内の適切な位置に戻る。
【0062】図23及び図24は、カーソルがその現位
置で編集できないようにロックされているか否かの判定
に関する流れ図である。これらの図は、それぞれ、本発
明の第1及び第2の実施例、すなわちテキスト・エディ
タ状況及び図形または絵画エディタ状況に関するもので
ある。テキスト・エディタに関する図23を参照する
と、プロセスは判断ブロック370から始まり、カーソ
ル・ロック・レコードを含む、まだ検査されていない関
連/ロック・レコードが存在するか否かを判定する。N
Oの場合、どのロックもこの判定を要求している操作を
阻止せず、元に戻る。しかし、レコードが存在する場合
は、それらのレコードを検査しなければならない。次
に、ブロック372で、次のレコードが回復される。判
断ブロック374で、このレコードがユーザ・ロック、
選択ロック、またはカーソル・ロックを含むロック・タ
イプであるか否かを判定する。NOの場合、このレコー
ドは無関係のものであり、ブロック370に戻る。レコ
ードがロック・タイプである場合は、判断ブロック37
5で、そのユーザが所有者であるか否かを決定する。Y
ESの場合、そのレコードは無関係のものであり、ブロ
ック370に戻る。最後に、判断ブロック376で、カ
ーソルの位置を、ロック・レコードの起点及び終点と比
較する。カーソルが起点と終点の間にある場合、文書を
修正するためにまたは選択点を確立するためにカーソル
を使用することがロックによって阻止される。ロック済
みの指示が、ホスト・プロセスに戻される。カーソルが
厳密にレコードの起点と終点の外側にある場合、ロック
はそのカーソル位置で有効でない。ブロック370に戻
って、次のレコードを評価する。すべてのレコードをク
リアしたときだけ、非ロックの指示が戻される。
【0063】図形エディタに関する図24を参照する
と、プロセスは判断ブロック378から始まり、カーソ
ル・ロック・レコードを含む、まだ検査されていない関
連/ロック・レコードが存在するか否かを判定する。N
Oの場合、どのロックもこの判定を要求している操作を
阻止せず、元に戻る。しかし、レコードが存在する場合
は、それらのレコードを検査しなければならない。次
に、ブロック380で、次のレコードが回復される。判
断ブロック382で、このレコードがユーザ・ロック、
選択ロック、またはカーソル・ロックを含むロック・タ
イプであるか否かを判定する。NOの場合、このレコー
ドは無関係のものであり、ブロック378に戻る。レコ
ードがロック・タイプである場合は、判断ブロック38
3で、そのユーザが所有者であるか否かを判定する。Y
ESの場合、そのレコードは無関係のものであり、ブロ
ック378に戻る。最後に、判断ブロック384で、カ
ーソルの位置を、ロック・レコードの境界点によって形
成される多角形の境界と比較する。カーソルが多角形の
内部にある場合、文書を修正するためにまたは選択点を
確立するためにカーソルを使用することが、ロックによ
って阻止される。ロック済みの指示が戻される。カーソ
ルが厳密に多角形の外側にある場合、ロックはそのカー
ソル位置で有効でない。ブロック378に戻って、次の
レコードを評価する。すべてのレコードをクリアしたと
きだけ、非ロックの指示が戻される。
【0064】図25及び図26は、カーソルを移動する
際の共用データ・オブジェクト内のカーソル・ロック領
域の更新に関する流れ図である。図25を参照すると、
テキスト目標オブジェクト内のロックの更新プロセス
は、判断ブロック386から始まり、現カーソル・ロッ
ク・レコードがないか否かを判定する。YESの場合、
機能ブロック388で、新しいカーソル・ロック・レコ
ードを生成し、機能ブロック390で、そのカーソル・
レコード内のポインタを新しいカーソル・ロック・レコ
ードにセットする。カーソル・ロック・レコードが得ら
れると、判断ブロック392で、そのカーソル・ロック
のロック・モードが文字位置であるか否かを判定する。
YESの場合、ブロック394で、カーソル・ロック・
レコード内の開始フィールド及び終了フィールドをカー
ソルの現在位置に等しくなるように変更する。ロック・
モードが文字でない場合、ブロック392からNO分岐
を取って判断ブロック396に進む。判断ブロック39
6で、ロック・モードがワードに等しいか否かを判定す
る。YESの場合、ブロック396からYES分岐を取
ってブロック398に進む。ブロック398で、目標オ
ブジェクトから現在行を取り出す。次に、ブロック40
0で、現在ワードの先頭と末尾のオフセットを決定す
る。次に、ブロック402で、カーソル・ロック・レコ
ード内の開始フィールド及び終了フィールドを現在の語
の先頭及び末尾に等しくセットする。ブロック396で
ロック・モードが語に等しくなかったと判定された場合
は、ロック・モードは行に等しいと仮定される。ブロッ
ク396からのNO分岐に沿ってブロック404に進
み、目標オブジェクトから現在行を取り出す。次に、ブ
ロック406で、先頭及び末尾びのカーソル・ロック・
レコード・フィールドが、現在行の先頭及び末尾に等し
くセットされる。
【0065】いずれかのモードでロック・レコードの開
始フィールド及び終了フィールドをセットした後、判断
ブロック408で、新しいカーソル・ロック・レコード
がその他のロックと衝突するか否かを判定する(この解
析の詳細については図32参照)。衝突する場合、ブロ
ック410で、新しいカーソル・ロック・レコードが文
書データ構造から除去され、ブロック412で、そのポ
インタのカーソル・レコードがゼロにセットされる。次
に、ブロック413で表示が更新される。次には編集プ
ロセス内の適切な点に戻る。ブロック408で衝突が検
出されなかった場合は、エディタ内の適切な点に直接戻
る。
【0066】図形編集環境におけるカーソル・ロックの
更新は、これよりいくぶん複雑である。図26を参照す
ると、最初に操作ブロック414で新しい仮のカーソル
・ロック・レコードを作成する。このカーソル・レコー
ド内のポインタ・フィールドは、この時点では変更され
ない。次に、判断ブロック416で、ロック・モードが
正方形に等しいか否かを判定する。YESの場合、ブロ
ック424で、ビューの平面内の現カーソル位置で中心
合せされた正方形の4つの絶対座標を生成する。カーソ
ル・ロック領域の形状が正方形でない場合、判断ブロッ
ク418で、形状モードが円に等しいか否かを判定す
る。YESの場合、ブロック426で、円を近似する多
角形の座標の集合、すなわちビューの平面内のカーソル
から等距離の1組の点を決定する。N個の点が選択され
るが、使用される特定のマシンの解像度が与えられてい
るものとして、これはユーザには円のように見える。
【0067】ブロック418で形状モードが円でないと
決定された場合は、判断ブロック420で、そのモード
がユーザの定義した多角形であるか否かを判定する。Y
ESの場合、ブロック432で、カーソル位置に関する
点のユーザ定義をロック・レコードに関する絶対点に変
換する。
【0068】図形編集環境では、カーソル・ロック・モ
ードが、カーソルが位置する現在のオブジェクトに等し
い場合も可能である。ブロック420でこのモードが多
角形モードでないと判定された場合、ブロック422
で、オブジェクト・モードが使用中であるか否かを判定
する。YESの場合、ブロック430で、表示画像に照
会してカーソルがオブジェクトの上にあるか否かを判定
する。YESの場合、ブロック432で、オブジェクト
にその絶対境界点を照会する。これらの絶対境界点は、
多角形のカーソル・ロック・レコードの定義点として使
用される。
【0069】ブロック424、426、428及び43
2の、カーソル・ロックの境界点の定義の後に、判断ブ
ロック434で、新しいロック・レコードを他のロック
・レコードと比較して、衝突があるか調べる(詳細につ
いては図33参照)。衝突が発見されなかった場合、ブ
ロック444で、古いロック・レコードが削除され、ブ
ロック446で、カーソル・レコード内のポインタ・フ
ィールドがリセットされ、新しいロック・レコードに更
新される。ブロック447で、表示が更新される。編集
プロセス内の適切な点に戻る。しかし、判断ブロック4
34で衝突が発見された場合、またはブロック430で
カーソルの下にオブジェクトが発見されない場合、また
はブロック422でロック・モードがオブジェクト・モ
ードにないことが分かり、ロックとカーソルの自動的関
連づけがオフであることを暗示する場合は、ブロック4
36で、新しく作成されたロック・レコードを削除す
る。次に、ブロック438で、現カーソル位置がそれ自
体の古いロック・レコード内にあるか否かを判定する。
YESの場合、視覚的にカーソルはそのロック領域内で
もはや中心合せされないが、古いロック・レコードはそ
のまま残ることを許される。カーソルがその古いカーソ
ル・ロックの外側にある場合、ブロック440で、カー
ソル・レコード内のカーソル・ロック・ポインタが指す
ロック・レコードの削除によって古いカーソル・ロック
が除去され、そのポインタがゼロにリセットされる。次
に、ブロック447で表示が更新される。
【0070】ユーザ選択領域の確立は、関連タイプまた
はユーザ選択ロック・タイプ領域をユーザが確立するた
めの予備段階である。図27を参照すると、流れ図は、
テキスト文書における選択領域の確立を示す。編集プロ
セスで選択点を選択することによって、選択実行プロセ
スが始まる。判断ブロック448で、プロセスを続行す
るために必要な第2の選択点が入力されたか否かを判定
する。第2の選択点を受け取っていない場合、編集プロ
セス内の適切な点に戻る。ユーザは、第1の選択点とし
て識別された点と同じ点を第2の点として選択すること
もでき、その場合は単一文字の選択領域が作成される。
【0071】ブロック450で第2の選択点を受け取っ
た後、ブロック452で、第1選択点及び第2選択点を
適切な順序でその先頭及び末尾とする、関連/ロック・
レコードを作成する。レコード・タイプは“SELEC
T LOCK”にセットされる。次に、ブロック454
で、新しい選択領域がいずれかのロック領域と衝突する
か否かを判定する(この場合も図32のプロセスを利用
する)。衝突する場合は、ブロック456で、選択が失
敗したことをユーザに警告し、そのレコードを削除す
る。次に、エディタ内の適切な点に戻る。ブロック45
4で衝突が発見されなかった場合は、ブロック458
で、カーソル・レコード内の選択フィールドをONにセ
ットし、ブロック460でそのレコードを選択ロック・
フィールドに追加し、ブロック462で表示を更新して
から、エディタ内の適切な点に戻る。
【0072】図28を参照すると、流れ図は図形文書内
での選択領域の確立を示している。編集中に選択点の選
択によって選択実行プロセスが始まる。プロセスは流れ
図に入り、ブロック464で、選択タイプの関連/ロッ
ク・レコードを作成する。それは多角形として示された
形状を有し、その最初の点は初期選択点である。次に、
判断ブロック466で、ユーザが選択領域に正方形(ま
たは長方形)の形状を選択したか否かを判定する。YE
Sの場合、ブロック468で、その領域を定義するため
にユーザが第2の点を供給するようにとのプロンプトが
出る。ユーザは、第1の選択点として識別された点と同
じ点を第2の点として選択することもでき、その場合
は、単一画素の選択領域が作成される。
【0073】正方形の形状が選択されない場合、ブロッ
ク470で、ユーザが円形を選択したか否かを判定す
る。YESの場合、ブロック472で、ユーザが半径を
供給するようにとのプロンプトが出る。この半径から次
のN個の選択点を生成して、実質的に円形に見える多角
形を完成することができる。
【0074】ブロック470で円形であると決定されな
かった場合、判断ブロック474で、一般の多角形がユ
ーザによって選択されたか否かを判定する。YESの場
合、ブロック476で、ユーザが一連の点を供給するよ
うにとのプロンプトが出る。ユーザは、追加の点を選択
する代わりに、すべての点がすでに供給されているとマ
シンに通知してもよい。このことは判断ブロック478
で検出される。選択が実行されたと判定した後、多角形
は閉じられ、判断ブロック478からYES分岐に沿っ
てループから出る。ユーザが完了を通知しない限り、ま
たはユーザが許容される最大数の点を選択し終えるま
で、ブロック478からNO分岐に沿ってブロック48
0に進み、そこで最近の選択を関連/ロック・レコード
内の点のリストに追加して、ブロック476に戻る。
【0075】判断ブロック474からNO分岐をとる
と、ユーザがユーザ選択領域の形状を選択しなかったこ
とを示し、ブロック482で、ユーザにエラーを指摘
し、ブロック464で作成されたレコードを削除した
後、編集プロセス内の適切な点に戻る。
【0076】ユーザ選択領域の境界点が完成すると、判
断ブロック484で、新しいレコードが別のロック・レ
コードと衝突するか否かを判定する(図33参照)。Y
ESの場合、ブロック492でユーザに警告が出る。次
に、ブロック494で、ブロック464で作成されたレ
コードを削除する。次に、エディタ内の適切な点に戻
る。
【0077】判断ブロック484で衝突が検出されなか
った場合、NO分岐をとって機能ブロック486に進
み、そこでカーソル・レコード内の選択フィールドをO
Nにセットする。次に、ブロック488で、カーソル・
レコードの関連レコード・リスト内のポインタ・フィー
ルドに記入する。次に、操作がクライアント内で行われ
る場合、ブロック490で、領域の選択を示すように表
示を更新する。次に、エディタ内の適切な点に戻る。
【0078】選択領域をユーザ選択ロック領域に変換す
るためのロック・セット操作は、どちらの実施例でも同
じである。図29には、ユーザによる選択領域からのロ
ック領域の確立に関する流れ図が示されている。ロック
をセットする要求に応じて、ブロック496で、そのユ
ーザ用のカーソル・レコード内のSELECT_ONフ
ィールドがONであるか否かを判定する。否の場合、要
求は無効であり、実質的な処置を必要とせずにエディタ
内の適切な点に戻る。SELECT_ONフィールドが
ONの場合、かつクライアント内の場合、ブロック49
8で、カーソル・レコード内で指し示された領域から選
択標識を除去するように表示を更新する。ブロック50
0で、選択ロック・フィールドからそのレコードを除去
し、それをユーザ・ロック・リスト内に置く(このよう
な区別がカーソル・レコード内で維持されている場
合)。次に、ブロック502で、ロック・レコード内の
タイプ・フィールドをUser lockにリセットす
る。次に、ブロック504で、カーソル・レコード内及
びロック・レコード内のSELECT_ONフィールド
をオフにリセットする。最後に、ブロック506で、新
しいロック領域を反映するように表示を更新してからエ
ディタに戻る。
【0079】図30は、ユーザが選択領域を関連領域と
して指定する操作に関する流れ図である。関連操作の実
行要求に応じて、ブロック508で、ユーザ用のカーソ
ル・レコード内のSELECT_ONフィールドがON
であるか否かを決定する。否の場合、その要求は無効で
あり、プロセスは実質的な活動を必要とせずにエディタ
内の適切な点に戻される。SELECT_ONフィール
ドがONの場合、かつプロセスがクライアントにある場
合、ブロック510で、表示を更新しカーソル・レコー
ド内で指し示された領域から選択標識を除去する。ブロ
ック512で、選択ロック・フィールドからその領域を
除去し、それを関連リスト内に置く(このような区別が
カーソル・レコード内で維持されている場合)。次に、
ブロック514で、ロック・レコード内のタイプ・フィ
ールドをUser associationにリセット
する。次に、ブロック516で、カーソル・レコード内
及び関連/ロック・レコード内のSELECT_ONフ
ィールドをOFFにリセットする。最後に、ブロック5
18で、新しい関連領域を反映するように表示を更新し
てからエディタに戻る。
【0080】ロック領域及び関連領域のユーザによる解
放について、次に説明する。図31には、領域のロック
解除または関連づけ解除に関する流れ図が示されてい
る。プロセスはブロック520から始まり、ロック解除
または関連づけ解除操作が実行されつつあるか否かを示
すフラグをセットする。カーソル・ロック及び関連リス
ト内の各レコードを、そのカーソルが位置するレコード
が1つ見つかるまで調べる。このプロセスは判断ブロッ
ク522で行われる。ブロック522で、除去できるレ
コードがユーザ選択ロック・リストまたは関連リスト内
に存在するか否かを判定する。このようなレコードが存
在する場合、ブロック524で、それらのレコードをそ
のリストの順序で回復し、判断ブロック526で、カー
ソルがそのレコードの範囲内にあるか否かを判定する。
NOの場合、プロセスはブロック522に戻る。カーソ
ルがあるレコードが見つかった場合、ブロック527
で、現ユーザがそのレコードの所有者であるか否か判定
する。NOの場合、ブロック522に戻る。YESの場
合、そのレコードを指すポインタがカーソル・レコード
内の適切なリストから除去される。次に、ブロック53
0で、そのレコード自体が解放される。最後に、ブロッ
ク532で、(この場合もクライアント端末においてだ
け)表示を更新する。次に、エディタ内の適切な点に戻
る。
【0081】図32及び図33は、領域を選択しようと
するユーザが試みる際、またはカーソル・ロックを移動
しようと試みる際に生ずるロック衝突を検出するため
の、本発明の第1及び第2の実施例に関する流れ図であ
る。図32には、テキスト編集環境でのそのような比較
が示されている。このプロセスはユーザ選択ロック・レ
コードまたはカーソル・ロック・レコードが存在するか
どうかの照会から始まる。存在しないまたは残っていな
い場合、照会は完了し、ブロック534からNO分岐を
とって要求側ルーチンに戻り、衝突が存在しないことを
要求側ルーチンに知らせる。レコードが残っている場
合、ブロック536で、次のそのようなレコードが取り
出される。判断ブロック538で、現カーソルがそのレ
コードの所有者であるか否かを判定する。イエスの場
合、そのレコードは無視でき、ブロック538からYE
S分岐をとってブロック534に戻る。NO分岐をとる
場合、判断ブロック540で、レコードがどちらかのタ
イプのロックであるか否を判定する。NOの場合、その
レコードは無視され、ブロック534に戻る。YESの
場合、要求された選択領域またはロック領域がロック・
レコードと共通な点をもつか否か判定する。判断ブロッ
ク542で、ロック(選択)領域入力開始が、回復され
たロック・レコードの先頭と同時にまたはその後に起こ
るか否かを判定する。YESの場合、ブロック546
で、入力レコード開始が、回復されたロック・レコード
の末尾より前にまたはそれと同時に起こるか否かを判定
する。そうである場合、衝突が存在し、その旨の通知が
要求プロセスに戻される。そうでない場合は、ブロック
534に戻り、次のレコードを調べる。判断ブロック5
42からNO分岐をとって、判断ブロック544で、入
力レコードの末尾がロック・レコードの開始の後または
それと同時に起こるか否かを判定する。NOの場合、衝
突は存在せず、ブロック534に戻る。YESの場合、
衝突が存在し、衝突を指示して要求側プロセスに戻る。
【0082】図33には、図形編集環境でのこのような
比較が示されている。このプロセスはユーザ選択ロック
・レコードまたはカーソル・ロック・レコードが存在す
るかどうかの照会から始まる。存在しないまたは残って
いない場合、照会は完了し、ブロック548からのNO
分岐をとって要求側ルーチンに戻り、衝突が存在しない
ことを要求側ルーチンに知らせる。レコードが残ってい
る場合、ブロック550で、次のそのようなレコードが
取り出される。次に、判断ブロック552で、現カーソ
ルがそのレコードの所有者であるか否かを判定する。Y
ESの場合、そのレコードは無視でき、ブロック552
からYES分岐をとってブロック548に戻る。NO分
岐をとる場合、判断ブロック554で、レコードがどち
らかのタイプのロックであるか否かを判定する。否の場
合、そのレコードは無視され、ブロック548に戻る。
YESの場合、そのレコードと入力領域をオーバーラッ
プするかどうか比較しなければならない。判断ブロック
556で、そのようなオーバーラップがあるか判定す
る。この試験は、入力領域の多角形がブロック550で
回復されたロック・レコードから戻された多角形とオー
バーラップするか否かを判定するためのものである。Y
ESの場合、衝突の指示が要求側プロセスに戻される。
オーバーラップが見つからなかった場合は、ブロック5
48に戻り、次のレコードを調べる。
【0083】
【発明の効果】本発明は、協働的コンピュータ・ベース
・システムにおいて共用データ・オブジェクトのユーザ
が選択可能なブロックを複数のユーザによる同時操作か
ら保護する方法を提供する。
【図面の簡単な説明】
【図1】本発明が有利に使用できるローカル・エリア・
ネットワークの絵画図である。
【図2】コンピュータ・グラフィックス・システムによ
って生成される、本発明のユーザ・インターフェースを
サポートするためのウィンドウの絵画図である。
【図3】編集用に目標テキスト・オブジェクトに開かれ
たウィンドウの絵画図である。
【図4】目標図形オブジェクトに開かれたウィンドウの
ウィンドウ編集時の絵画図である。
【図5】目標図形オブジェクトに開かれたウィンドウの
ウィンドウ編集時の絵画図である。
【図6】目標図形オブジェクトに開かれたウィンドウの
ウィンドウ編集時の絵画図である。
【図7】目標図形オブジェクトに開かれたウィンドウの
ウィンドウ編集時の絵画図である。
【図8】本発明のシステム及び方法と一緒に使用され
る、選択ロック・モード及びユーザ選択可能領域に開か
れたウィンドウの絵画図である。
【図9】本発明のシステム及び方法と一緒に使用され
る、選択ロック・モード及びユーザ選択可能領域に開か
れたウィンドウの絵画図である。
【図10】本発明のシステム及び方法と一緒に使用され
る、選択ロック・モード及びユーザ選択可能領域に開か
れたウィンドウの絵画図である。
【図11】本発明の制御機能に関するユーザ・インター
フェース用のウィンドウの絵画図である。
【図12】本発明の制御機能に関するユーザ・インター
フェース用のウィンドウの絵画図である。
【図13】本発明のシステム及び方法をサポートするデ
ータ・オブジェクトの配布を示すローカル・エリア・ネ
ットワークのブロック・ダイアグラムである。
【図14】本発明のシステム及び方法をサポートするデ
ータ・オブジェクトの配布を示すローカル・エリア・ネ
ットワークのブロック・ダイアグラムである。
【図15】本発明の第1の実施例を実施する際に使用さ
れるデータ・レコードを示す図である。
【図16】本発明の第2の実施例を実施する際に使用さ
れるデータ・レコードを示す図である。
【図17】協働的データ処理システムへのクライアント
によるアクセスを示す高水準の流れ図である。
【図18】本発明の方法及びシステムを組み込んだクラ
イアント端末における協働的エディタの動作を示す高水
準の流れ図である。
【図19】本発明の方法及びシステムを組み込んだサー
バにおける協働的エディタの動作を示す高水準の流れ図
である。
【図20】本システムのユーザから受け取ったコマンド
に対する応答に関する図18及び図19の協働的エディ
タの動作を示す流れ図である。
【図21】本発明によって提供されるグループ編集シス
テムにおけるクライアント表示の更新に関する流れ図で
ある。
【図22】本発明によって提供されるグループ編集シス
テムにおけるクライアント表示の更新に関する流れ図で
ある。
【図23】本発明の第1の実施例においてカーソル位置
がカーソルによる編集が行えないようにロックされてい
るか否かの決定に関する流れ図である。
【図24】本発明の第2の実施例においてカーソル位置
がカーソルによる編集が行えないようにロックされてい
るか否かの決定に関する流れ図である。
【図25】共用データ・オブジェクト内のカーソル関連
ロック領域の更新を提供する、本発明の第1の実施例に
関する流れ図である。
【図26】共用データ・オブジェクト内のカーソル関連
ロック領域の更新を提供する、本発明の第2の実施例に
関する流れ図である。
【図27】共用データ・オブジェクト内の領域のユーザ
選択を提供する、本発明の第1の実施例に関する流れ図
である。
【図28】共用データ・オブジェクト内の領域のユーザ
選択を提供する、本発明の第2の実施例に関する流れ図
である。
【図29】選択領域からのロック領域のユーザ確立に関
する流れ図である。
【図30】選択領域の関連領域としてのユーザ指定に関
する流れ図である。
【図31】領域からのロックまたは関連指定の除去に関
する流れ図である。
【図32】領域を選択しようとの試みに関して行われる
ロック衝突決定の検出を提供する、本発明の第1の実施
例に関する流れ図である。
【図33】領域を選択しようとの試みに関して行われる
ロック衝突決定の検出を提供する、本発明の第2の実施
例に関する流れ図である。
【符号の説明】
12a ネットワーク・アダプタ 12c ネットワーク・アダプタ 56 ハード・ドライブ装置 58 データ・バス 62 ネットワーク・アダプタ 66 オペレーティング・システム及びLANサーバ 68 エディタ1 70 ロック・レコード1 70 ネットワーク・アダプタ 72 カーソル・リスト/カーソル・ロック・レコード 74 編集オブジェクト1 編集オブジェクト2 80 入力周辺装置 83 データ・バス 84 ディスプレイ・アダプタ 86 表示装置 90 ハード・ドライブ 94 メモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェフリー・エム・ライアン アメリカ合衆国55920、ミネソタ州バイロ ン、セカンド・ストリート、ノースウエス ト 6

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】各端末が出力表示装置とユーザ入力装置を
    有し、システムの複数のユーザによって同時にアクセス
    可能な共用データ・オブジェクトがある、複数の端末を
    通信できるように接続するネットワークを含む、マルチ
    メディア協働的コンピュータ・ベース・システムにおい
    て、ロック領域を確立することにより、共用データ・オ
    ブジェクトの諸領域を複数のユーザによる操作から保護
    する方法であって、 ユーザが共用データ・オブジェクトに対するアクセス権
    を得るのに応答して、そのユーザに、活動状態のすべて
    の出力表示装置上で表示するために使用できるカーソル
    を割り当てる段階と、 確立ユーザによる選択に応答して、共用データ・オブジ
    ェクト内のあるブロックの位置を決定する段階と、 前記ブロックが以前に確立されたロック領域の一部分を
    含まない場合に、確立ユーザに割り当てられたカーソル
    を除き、共用データ・オブジェクト内の前記ブロックか
    ら操作できないようにロックされたロック領域を確立す
    る段階と、 いうコンピュータによって実行される諸段階を含む方
    法。
  2. 【請求項2】さらにロック領域の確立に応答して、識別
    する視覚的属性を用いて出力表示装置に対するロック領
    域をペイントすることにより、前記ロック領域をその確
    立ユーザによって識別する、コンピュータによって実行
    される段階を含む、 請求項1に記載の、共用データ・オブジェクトの諸領域
    を複数のユーザによる操作から保護する方法。
  3. 【請求項3】さらに、ある活動が、カーソルを介して共
    用データ・オブジェクトの修正を要求するかどうか判定
    する段階と、 その活動が前記の修正を要求する場合、その修正が、ロ
    ック領域内で、前記ロック領域の確立ユーザに割り当て
    られたカーソル以外のカーソルを介して行われるかどう
    か判定する段階と、 そうである場合、前記修正を阻止し、現ユーザに警告を
    出す段階と、 そうでない場合、前記修正を実行する段階というコンピ
    ュータによって実行される諸段階を含む、請求項2に記
    載の、共用データ・オブジェクトの諸領域を複数のユー
    ザによる同時操作から保護するための方法。
  4. 【請求項4】共用データ・オブジェクトのユーザが選択
    したロック領域を2人以上のユーザによる同時操作から
    保護するための、マルチメディア協働的コンピュータ・
    ベース・システムであって、 それぞれ出力表示装置とユーザ入力装置を有する複数の
    端末と、 少くとも第1のコンピュータと、 前記端末と前記の少なくとも第1のコンピュータを通信
    できるように接続するネットワークと、 前記の少くとも第1のコンピュータの制御下で、複数の
    ユーザによる共用データ・オブジェクトの同時アクセス
    を実施するためのメモリ手段と、 ユーザが共用データ・オブジェクトに対するアクセス権
    を得るのに応答して、そのユーザに、すべての出力表示
    装置上で表示するのに使用できるカーソルを割り当てる
    手段と、 ユーザの選択に応答して、共用データ・オブジェクト内
    でカーソルを移動させる手段と、 確立ユーザによる選択に応答して、共用データ・オブジ
    ェクト内のあるブロックの位置を決定する手段と、 前記ブロックの位置が以前に確立されたロック領域のど
    の部分も含まないことに応答して、その位置にあるブロ
    ックからロック領域を確立する手段とを含む、マルチメ
    ディア協働的コンピュータ・ベース・システム。
  5. 【請求項5】さらに、ロック領域の確立ユーザに割り当
    てられたカーソルを介してロック領域を解放する手段を
    含む、 請求項4に記載の、共用データ・オブジェクト内のユー
    ザが選択したロック領域を保護するためのマルチメディ
    ア協働的コンピュータ・ベース・システム。
  6. 【請求項6】さらに、ユーザ入力装置を介して入力され
    たユーザ要求を直列化する手段を含む、 請求項4に記載の、共用データ・オブジェクト内のユー
    ザが選択したロック領域を保護するためのマルチメディ
    ア協働的コンピュータ・ベース・システム。
  7. 【請求項7】さらに、ロック領域を共用データ・オブジ
    ェクトの残りの部分から区別し、そのロック領域の確立
    ユーザを識別するために各ロック領域の視覚属性を変更
    する手段を含む、 請求項5に記載の、共用データ・オブジェクト内のユー
    ザが選択したロック領域を2人以上のユーザによる操作
    から保護するためのマルチメディア協働的コンピュータ
    ・ベース・システム。
  8. 【請求項8】さらに、現ユーザの要求が、共用データ・
    オブジェクトの修正を開始するかどうか決定する第1の
    手段と、 前記第1決定手段による肯定の判定に応答して、前記修
    正が、現ユーザ以外のユーザによって確立されたロック
    領域内で行われるかどうか決定する第2の手段と、 前記第2決定手段による肯定の判定に応答して、前記修
    正を阻止し、現ユーザに警告を出す手段と、 前記第2決定手段による否定の判定に応答して、前記修
    正を入力する手段とを含む、 請求項6に記載の、共用データ・オブジェクト内のユー
    ザが選択したロック領域を2人以上のユーザによる操作
    から保護するためのマルチメディア協働的コンピュータ
    ・ベース・システム。
  9. 【請求項9】各端末が出力表示装置とユーザ入力装置を
    有し、共用データ・オブジェクトがシステムの複数のユ
    ーザによりコンピュータを介して同時にアクセス可能で
    ある、コンピュータと複数の端末を通信できるように接
    続するネットワークを含む、協働的コンピュータ・ベー
    ス・システムにおいて、共用データ・オブジェクトのユ
    ーザが選択したブロックを2人以上のユーザによる同時
    操作から保護するためのデータ処理プログラム・プロダ
    クトであって、 ユーザが共用データ・オブジェクトに対するアクセス権
    を得るのに応答して、そのユーザに、出力装置決定上に
    表示するのに使用できるカーソルを割り当てる命令手段
    と、 確立ユーザによる選択に応答して、共用データ・オブジ
    ェクト内のあるブロックの位置を決定する命令手段と、 前記ブロックの位置が以前に確立されたロック領域のど
    の部分も含まないことに応答して、確立ユーザに関連す
    るロック領域を確立する命令手段とを記憶する媒体を含
    む、データ処理プログラム・プロダクト。
  10. 【請求項10】ロック領域の確立に応答して、出力表示
    装置に対するロック領域を視覚的に区別できる属性でペ
    イントする命令手段を記憶する媒体を含む、 請求項9に記載の、共用データ・オブジェクトのユーザ
    が選択したブロックを2人以上のユーザによる同時操作
    から保護するための複数媒体データ処理プログラム・プ
    ロダクト。
  11. 【請求項11】さらにユーザ・コマンドを直列化する命
    令手段を記憶する媒体を含む、 請求項10に記載の、共用データ・オブジェクトのユー
    ザが選択したブロックを2人以上のユーザによる同時操
    作から保護するための複数媒体データ処理プログラム・
    プロダクト。
  12. 【請求項12】さらに、現ユーザからのコマンドが共用
    データ・オブジェクトの修正を指示するかどうか決定す
    る第1命令手段と、 前記コマンドに応答して、指示された修正が現ユーザ以
    外のユーザに関連するロック領域内で行われるかどうか
    決定する第2命令手段と、 第2命令手段による肯定の判定に応答して、前記修正を
    阻止し現ユーザに警告を出す第3命令手段と、 前記第2命令手段による否定の判定に応答して、前記修
    正を入力する第4命令手段とを記憶する媒体を含む、請
    求項11に記載の、共用データ・オブジェクトのユーザ
    が選択したブロックを2人以上のユーザによる同時操作
    から保護するための複数媒体データ処理プログラム・プ
    ロダクト。
JP4325333A 1991-12-31 1992-12-04 共用データ・オブジェクトの領域を複数のユーザによる操作から保護する方法および編集システム Expired - Lifetime JPH0816872B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/816,459 US5339389A (en) 1991-12-31 1991-12-31 User selectable lock regions
US816459 1991-12-31

Publications (2)

Publication Number Publication Date
JPH05324359A true JPH05324359A (ja) 1993-12-07
JPH0816872B2 JPH0816872B2 (ja) 1996-02-21

Family

ID=25220685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4325333A Expired - Lifetime JPH0816872B2 (ja) 1991-12-31 1992-12-04 共用データ・オブジェクトの領域を複数のユーザによる操作から保護する方法および編集システム

Country Status (5)

Country Link
US (1) US5339389A (ja)
EP (1) EP0550374A3 (ja)
JP (1) JPH0816872B2 (ja)
CA (1) CA2076603C (ja)
SG (1) SG43711A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991228A (ja) * 1995-09-22 1997-04-04 Nec Corp アプリケーション共有システム
JP2007179396A (ja) * 2005-12-28 2007-07-12 Hitachi Information & Communication Engineering Ltd 電子会議システム及びドキュメント共有方法
JP2013543190A (ja) * 2010-11-04 2013-11-28 マイクロソフト コーポレーション ドキュメント編集コマンドのシリアル化
EP2741203A2 (en) 2012-12-06 2014-06-11 Konica Minolta, Inc. Object operation apparatus and non-transitory computer-readable storage medium

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3006730B2 (ja) * 1991-08-13 2000-02-07 富士ゼロックス株式会社 共同作業用情報処理装置及び共同作業用情報処理方法
US5519606A (en) * 1992-01-21 1996-05-21 Starfish Software, Inc. System and methods for appointment reconciliation
US5588100A (en) * 1992-05-18 1996-12-24 Microsoft Corporation Method and system for creating a freeform drawing object
CA2145675C (en) 1993-02-26 2002-11-26 Arnold Schaeffer Collaborative work system
EP0622930A3 (en) * 1993-03-19 1996-06-05 At & T Global Inf Solution Division of applications for computer arrangement with collaboration.
US5608872A (en) * 1993-03-19 1997-03-04 Ncr Corporation System for allowing all remote computers to perform annotation on an image and replicating the annotated image on the respective displays of other comuters
JPH07105191A (ja) * 1993-09-30 1995-04-21 Fujitsu Ltd 共有文書表示システム
US5581702A (en) * 1993-12-20 1996-12-03 Intel Corporation Computer conferencing system for selectively linking and unlinking private page with public page by selectively activating linked mode and non-linked mode for each participant
US6049334A (en) * 1993-12-20 2000-04-11 International Business Machines Corporation Method and system for graphically indicating the activity of a plurality of users within a shared data collection
US5583993A (en) * 1994-01-31 1996-12-10 Apple Computer, Inc. Method and apparatus for synchronously sharing data among computer
US5530795A (en) * 1994-02-15 1996-06-25 Wan; Hong K. Computer conferencing
JPH0816514A (ja) * 1994-07-01 1996-01-19 Hitachi Ltd 共同作業支援システム
US5615323A (en) * 1994-11-04 1997-03-25 Concord Communications, Inc. Displaying resource performance and utilization information
US5913920A (en) * 1994-12-13 1999-06-22 International Business Machines Corporation Indicating updates from a remote display
GB2303946A (en) * 1995-07-29 1997-03-05 Ibm Data conferencing system
US5734909A (en) * 1995-09-01 1998-03-31 International Business Machines Corporation Method for controlling the locking and unlocking of system resources in a shared resource distributed computing environment
US5867156A (en) * 1995-11-08 1999-02-02 Intel Corporation Automatic viewport display synchronization during application sharing
DE19548397C1 (de) * 1995-12-22 1997-01-23 Siemens Ag Verfahren zur Zugriffskontrolle auf rechnerkontrollierte Programme, die von mehreren Benutzereinheiten gleichzeitig genutzt werden können
US5890177A (en) * 1996-04-24 1999-03-30 International Business Machines Corporation Method and apparatus for consolidating edits made by multiple editors working on multiple document copies
US6023715A (en) * 1996-04-24 2000-02-08 International Business Machines Corporation Method and apparatus for creating and organizing a document from a plurality of local or external documents represented as objects in a hierarchical tree
US5890176A (en) * 1996-04-24 1999-03-30 International Business Machines Corp. Object-oriented document version tracking method and apparatus
US5844555A (en) * 1996-06-20 1998-12-01 Mathsoft, Inc. Locking mechanism for live mathematical documents
US6240444B1 (en) 1996-09-27 2001-05-29 International Business Machines Corporation Internet web page sharing
US6662210B1 (en) 1997-03-31 2003-12-09 Ncr Corporation Method of remote collaboration system
US5966512A (en) * 1997-06-05 1999-10-12 International Business Machines Corporation Groupware save operation
US5960426A (en) * 1997-06-30 1999-09-28 International Business Machines Corporation Database system and method for supporting current of cursor updates and deletes from a select query from one or more updatable tables in single node and mpp environments
US7315386B1 (en) 1997-06-30 2008-01-01 Fujifilm Corporation Image communication system and method
US5987376A (en) * 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
US7447712B2 (en) 1997-09-28 2008-11-04 Global 360, Inc. Structured workfolder
US6240414B1 (en) 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US6356924B2 (en) 1997-11-26 2002-03-12 International Business Machines Corporation Configurable disablement of display objects in a browser
US6324553B1 (en) * 1997-11-26 2001-11-27 International Business Machines Corporation Apparatus and method for the manual selective blocking of images
US6088702A (en) * 1998-02-25 2000-07-11 Plantz; Scott H. Group publishing system
JP3697064B2 (ja) * 1998-05-29 2005-09-21 キヤノン株式会社 画像編集装置、記録装置、画像編集方法及びコンピュータ読み取り可能な記録媒体
US7124375B1 (en) * 1999-05-11 2006-10-17 California Institute Of Technology Color monitoring and analysis for color vision deficient individuals
US6516348B1 (en) 1999-05-21 2003-02-04 Macfarlane Druce Ian Craig Rattray Collecting and predicting capacity information for composite network resource formed by combining ports of an access server and/or links of wide arear network
JP3892626B2 (ja) * 1999-08-25 2007-03-14 富士通株式会社 文書処理装置及び記憶媒体
US20030061349A1 (en) * 2001-09-24 2003-03-27 George Lo Method and system for collaboratively developing programming code for programmable controllers
US20030179230A1 (en) * 2002-03-25 2003-09-25 Gerry Seidman Method and apparatus for providing remote peer-to-peer collaborative user interfaces
US7849401B2 (en) * 2003-05-16 2010-12-07 Justsystems Canada Inc. Method and system for enabling collaborative authoring of hierarchical documents with locking
US7672997B2 (en) * 2003-11-12 2010-03-02 International Business Machines Corporation Speaker annotation objects in a presentation graphics application
US20050099432A1 (en) * 2003-11-12 2005-05-12 International Business Machines Corporation Multi-value hidden object properties in a presentation graphics application
US20050216856A1 (en) * 2004-03-23 2005-09-29 Matti Michael C System and method for displaying information on an interface device
US7948448B2 (en) 2004-04-01 2011-05-24 Polyvision Corporation Portable presentation system and methods for use therewith
US7834819B2 (en) 2004-04-01 2010-11-16 Polyvision Corporation Virtual flip chart method and apparatus
US7603357B1 (en) 2004-06-01 2009-10-13 Adobe Systems Incorporated Collaborative asset management
US7516132B1 (en) * 2004-11-12 2009-04-07 Sun Microsystems, Inc. Mechanism for enabling distributed file sharing among a plurality of nodes in a network
CN1300691C (zh) * 2005-01-10 2007-02-14 浙江大学 图案协同设计中的系统锁的预测方法
CN100346341C (zh) * 2005-09-16 2007-10-31 浙江大学 一种图案协同设计中的复杂加锁方法
US20070101190A1 (en) * 2005-10-27 2007-05-03 International Business Machines Corporation Systems, methods, and media for sharing input device movement information in an instant messaging system
US20070100952A1 (en) 2005-10-27 2007-05-03 Yen-Fu Chen Systems, methods, and media for playback of instant messaging session histrory
US20070124370A1 (en) * 2005-11-29 2007-05-31 Microsoft Corporation Interactive table based platform to facilitate collaborative activities
US9710508B2 (en) * 2006-03-09 2017-07-18 Quickbase, Inc. Method and system for managing data in a workflow process
US20070273695A1 (en) * 2006-05-26 2007-11-29 Stevens Matthew J Mechanism for collaboratively exchanging navigation information in distributed document review
US7889210B2 (en) * 2007-07-31 2011-02-15 International Business Machines Corporation Visual integration hub
US8595202B2 (en) * 2007-10-03 2013-11-26 Siemens Aktiengesellschaft Method and system for intra-document object locking in collaborative authoring
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8028229B2 (en) * 2007-12-06 2011-09-27 Microsoft Corporation Document merge
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US8301588B2 (en) * 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8429753B2 (en) 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US7949633B1 (en) 2008-05-12 2011-05-24 Adobe Systems Incorporated Shared edit access of electronic content
US9418054B2 (en) 2008-05-12 2016-08-16 Adobe Systems Incorporated Document comment management
US7945595B1 (en) 2008-05-12 2011-05-17 Adobe Systems Incorporated System and method for generating an item list in electronic content
US9329744B2 (en) 2008-05-12 2016-05-03 Adobe Systems Incorporated Segmented scroll bar
US8996621B2 (en) 2008-05-12 2015-03-31 Adobe Systems Incorporated Asynchronous comment updates
US10055392B2 (en) 2008-05-12 2018-08-21 Adobe Systems Incorporated History-based archive management
US9176943B2 (en) 2008-05-12 2015-11-03 Adobe Systems Incorporated Comment presentation in electronic documents
US8893017B2 (en) 2008-05-29 2014-11-18 Adobe Systems Incorporated Tracking changes in a database tool
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US8924863B2 (en) * 2008-09-30 2014-12-30 Lenovo (Singapore) Pte. Ltd. Collaborative web navigation using document object model (DOM) based document references
US9152644B2 (en) * 2008-12-30 2015-10-06 Novell, Inc. Systems and methods for providing collaborative editing
US8346768B2 (en) 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US9436380B2 (en) * 2009-05-19 2016-09-06 International Business Machines Corporation Radial menus with variable selectable item areas
US8977972B2 (en) * 2009-12-31 2015-03-10 Intel Corporation Using multi-modal input to control multiple objects on a display
US9383888B2 (en) * 2010-12-15 2016-07-05 Microsoft Technology Licensing, Llc Optimized joint document review
US9118612B2 (en) 2010-12-15 2015-08-25 Microsoft Technology Licensing, Llc Meeting-specific state indicators
US9864612B2 (en) 2010-12-23 2018-01-09 Microsoft Technology Licensing, Llc Techniques to customize a user interface for different displays
US20120278366A1 (en) * 2011-04-29 2012-11-01 Siemens Product Lifecycle Management Software Inc. Creation and use of orphan objects
US8682973B2 (en) 2011-10-05 2014-03-25 Microsoft Corporation Multi-user and multi-device collaboration
US9142182B2 (en) * 2011-10-07 2015-09-22 Lg Electronics Inc. Device and control method thereof
JP2013114396A (ja) * 2011-11-28 2013-06-10 Canon Inc 情報処理装置、情報処理方法及びプログラム
US9158746B2 (en) * 2012-06-13 2015-10-13 International Business Machines Corporation Managing concurrent editing in a collaborative editing environment using cursor proximity and a delay
US9244694B2 (en) 2012-12-27 2016-01-26 Intel Corporation Executing a command within a transport mechanism based on a get and set architecture
US20150120834A1 (en) * 2013-10-28 2015-04-30 Samsung Electronics Co., Ltd. Method and system for real time collaboration on a canvas
US9946428B2 (en) * 2015-01-15 2018-04-17 International Business Machines Corporation Managing a web-based application's display
US9667676B1 (en) * 2016-01-29 2017-05-30 Dropbox, Inc. Real time collaboration and document editing by multiple participants in a content management system
US10264213B1 (en) 2016-12-15 2019-04-16 Steelcase Inc. Content amplification system and method
US20230297208A1 (en) * 2022-03-16 2023-09-21 Figma, Inc. Collaborative widget state synchronization

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63143652A (ja) * 1986-12-08 1988-06-15 Hitachi Ltd デ−タ処理装置
JPH02257252A (ja) * 1989-02-07 1990-10-18 Fujitsu Ltd 文書作成方式

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4698752A (en) * 1982-11-15 1987-10-06 American Telephone And Telegraph Company At&T Bell Laboratories Data base locking
US4651299A (en) * 1983-04-27 1987-03-17 Canon Kabushiki Kaisha Data processing apparatus
DE3483025D1 (de) * 1983-06-28 1990-09-27 Fujitsu Ltd Elektronisches konferenzsystem.
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US4635189A (en) * 1984-03-01 1987-01-06 Measurex Corporation Real-time distributed data-base management system
JPS61109093A (ja) * 1984-11-02 1986-05-27 日本電信電話株式会社 画像表示装置
JPS61275795A (ja) * 1985-05-31 1986-12-05 キヤノン株式会社 文書処理装置
GB2191917A (en) * 1986-06-16 1987-12-23 Ibm A multiple window display system
US5001628A (en) * 1987-02-13 1991-03-19 International Business Machines Corporation Single system image uniquely defining an environment for each user in a data processing system
US4890098A (en) * 1987-10-20 1989-12-26 International Business Machines Corporation Flexible window management on a computer display
US4974173A (en) * 1987-12-02 1990-11-27 Xerox Corporation Small-scale workspace representations indicating activities by other users
US5008853A (en) * 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
JPH01248187A (ja) * 1988-03-30 1989-10-03 Toshiba Corp ディスプレイシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63143652A (ja) * 1986-12-08 1988-06-15 Hitachi Ltd デ−タ処理装置
JPH02257252A (ja) * 1989-02-07 1990-10-18 Fujitsu Ltd 文書作成方式

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991228A (ja) * 1995-09-22 1997-04-04 Nec Corp アプリケーション共有システム
JP2007179396A (ja) * 2005-12-28 2007-07-12 Hitachi Information & Communication Engineering Ltd 電子会議システム及びドキュメント共有方法
JP2013543190A (ja) * 2010-11-04 2013-11-28 マイクロソフト コーポレーション ドキュメント編集コマンドのシリアル化
EP2741203A2 (en) 2012-12-06 2014-06-11 Konica Minolta, Inc. Object operation apparatus and non-transitory computer-readable storage medium

Also Published As

Publication number Publication date
EP0550374A2 (en) 1993-07-07
US5339389A (en) 1994-08-16
CA2076603C (en) 1996-10-01
EP0550374A3 (en) 1993-08-18
SG43711A1 (en) 1997-11-14
CA2076603A1 (en) 1993-07-01
JPH0816872B2 (ja) 1996-02-21

Similar Documents

Publication Publication Date Title
JP2741826B2 (ja) 協働的コンピュータ・ベース・システムおよび操作する方法
JPH05324359A (ja) 選択可能ロック領域
JPH05324360A (ja) カーソル・ロック領域
US5515491A (en) Method and system for managing communications within a collaborative data processing system
US6226652B1 (en) Method and system for automatically detecting collision and selecting updated versions of a set of files
JP4076239B2 (ja) 情報表示方法及びウィンドウ管理装置
US5107443A (en) Private regions within a shared workspace
US5897635A (en) Single access to common user/application information
US5577188A (en) Method to provide for virtual screen overlay
US7023452B2 (en) Image generation system, image generating method, and storage medium storing image generation program
JPH11143883A (ja) データアイテム表示方法及び表示装置、データアイテムの表示を制御するプログラムを格納した記憶媒体
GB2273797A (en) Distributed data processing system
JP3006730B2 (ja) 共同作業用情報処理装置及び共同作業用情報処理方法
AU739850B2 (en) Method and system for facilitating navigation among software applications and improved screen viewing
JPH0785020A (ja) 文書管理方法
US5881285A (en) Associating a physical driver object with its logical contents
US6392662B1 (en) Draw order preservation in a computer-implemented graphics system
JP2004078535A (ja) 排他制御装置、方法及びプログラム
US6353441B1 (en) Visual annotative clipping in a computer-implemented graphics system
JPH0876953A (ja) データ処理システム
JPH0762842B2 (ja) 文書管理装置
JPH03250215A (ja) 階層メニュー編集画面表示方法及び階層メニュー編集装置
JPH0628026B2 (ja) マルチウインドウにおける入力管理方法
JPH04251326A (ja) データ処理方法及びデータ処理装置
JPH0883244A (ja) 描画通信装置