專利名稱:光標(biāo)鎖定區(qū)域的制作方法
本申請包含與共同未決申請(序號816,623),題為在一種合作計算機系統(tǒng)中辯認用戶的方法和系統(tǒng),代理人參考號R09-91-661以及序號為816,459,題為用戶可選擇鎖定區(qū)域,代理人參考號為R09-91-062有關(guān)的主題,并且此二份申請在同一天提交,并轉(zhuǎn)讓給受讓人,并且這二份文件在此作為參考。
該發(fā)明屬于與基于系統(tǒng)的合作計算機領(lǐng)域,具體說是改進的“你看到的與我看到的一樣”的合作編輯器的多用戶接口。再具體地說,該發(fā)明涉及到的是一種保護方法,即在基于系統(tǒng)的合作計算機中,當(dāng)有兩個或多個用戶同時進行操作時,能夠保護與編輯光標(biāo)關(guān)聯(lián)的浮動文本塊或共享數(shù)據(jù)對象的其它部分。
一個合作系統(tǒng)可以定義為協(xié)調(diào)多人共同努力完成一項任務(wù)的實時計算機環(huán)境。任務(wù)可以是一個文件,一個生產(chǎn)流程規(guī)范,一個計算機程序,一種產(chǎn)品設(shè)計,或任何其它項目以及由有關(guān)信息的有機組合表達而表示的一種解決方案,這種任務(wù)假定是由多個人努力,特別是同時努力而完成的。
計算機網(wǎng)絡(luò)就是一個典型的合作工作的工具。這項工作的內(nèi)容的典型結(jié)構(gòu)是存貯在網(wǎng)絡(luò)上可以訪問的存貯器中的一個或多個共享數(shù)據(jù)對象。建立數(shù)據(jù)對象的手段是軟件工具,如文本編輯程序或數(shù)據(jù)庫管理程序。用戶通過由網(wǎng)絡(luò)支持的多用戶接口裝置來訪問共享數(shù)據(jù)對象。
共享數(shù)據(jù)對象是指可由網(wǎng)絡(luò)上多個用戶可以同時訪問的數(shù)據(jù)對象。這種數(shù)據(jù)對象可以包括諸如電子制表和字處理文件。一個共享數(shù)據(jù)對象就是一個允許多個用戶在同一時間進行某種存取操作的數(shù)據(jù)對象。
這樣,合作系統(tǒng)的設(shè)計者們面臨的一個共同問題是允許多個用戶中的每一個并發(fā)訪問。這個核心問題又有許多附加問題。用戶對數(shù)據(jù)體的訪問可以被限制為只讀,但更通常的情況是某些用戶有權(quán)力對數(shù)據(jù)對象進行操作或更改。這樣,在眾多的用戶中,誰有資格被允許更新數(shù)據(jù)對象呢?一個數(shù)據(jù)對象在顯示給各個用戶時,其表達方式都一樣嗎?用戶們對共享數(shù)據(jù)對象的修改有多大的自由度?用戶借助于一個多用戶接口來訪問共享數(shù)據(jù)對象。該接口典型地包括一個在用戶的本地工作站控制下的視頻監(jiān)視器,通過它顯示共享數(shù)據(jù)對象。該接口通過軟件的支持,允許多個用戶對一個數(shù)據(jù)對象同時進行多重訪問,并有權(quán)對該數(shù)據(jù)對象的內(nèi)容進行正確操作。一種普通的多用戶接口的一般特點可以描述為“你看到的就是我看到的”(WYSIWIS)。嚴格地說,每個用戶從同樣的角度看到的內(nèi)容完全一樣,并且每個用戶被直接給予操作該共享數(shù)據(jù)對象的權(quán)力。所有用戶的光標(biāo)都同時顯示。更新的內(nèi)容送給每個用戶的顯示屏幕,使每個用戶都能看到正在做的就象已經(jīng)做過的修改。實際上,WYSIWIS的概念是不十分嚴格的。例如,用戶一般被允許有自己的觀點,用戶的觀點是對共公對象的個人意見。在一個字處理文件中,一個用戶選擇的感興趣的部分,對該用戶來說,就是個人意見。
雖然WYSIWIS概念為了方便起見而不太嚴格,但它限于技術(shù)上作為一種特許也是不嚴格的。我們來看一下對一個字處理文件的文本內(nèi)容進行合作工作的例子。每個對該文件正在進行訪問的用戶,都有一個由其本地工作站在視頻監(jiān)視器上產(chǎn)生的窗口,從該文件取出的文本內(nèi)容就復(fù)制在該窗口上。每個用戶都有一個文本光標(biāo),用于指示用戶在文件的何處可以做修改。按照嚴格的WYSIWIS概念,所有文本光標(biāo)都應(yīng)顯示出來。實際上,由于不能區(qū)分每個光標(biāo)的所有權(quán),在視覺上造成混亂,于是,在每個用戶的視頻顯示器上,除了該用戶自己的文本光標(biāo),有必要消除或隱去其它用戶的文本光標(biāo)。
用戶操作中的沖突或爭用,如在一個字處理文件中同時要更改同一個字,也是一個問題。按照嚴格的WYSIWIS概念,沖突是允許發(fā)生的。每個用戶都被給予自己能隨時訪問的印象。在所有工作站都在同一個房間的情況下,或者在一個電話會議的情況下,發(fā)生這種沖突是允許的,因為在場的用戶們可以很方便地解決這個沖突。但是用戶之間通常的通信一般是隱含、默許在對共享文件的更改內(nèi)容中時,沖突就不能容忍了。
本項發(fā)明有五個目標(biāo)1.為合作計算機系統(tǒng)提供加強協(xié)調(diào)工作的方法。
2.為共享數(shù)據(jù)對象提供一個合作編輯系統(tǒng)。
3.提供一種改進的(你看到的就是我看到的)(WYSIWIS)接口。
4.提供一種在合作編輯系統(tǒng)中解決光標(biāo)之間的沖突的方法。
5.當(dāng)保護一個共享數(shù)據(jù)對象內(nèi)與光標(biāo)有關(guān)聯(lián)的浮動數(shù)據(jù)塊免受兩個以上的用戶同時操作,而提供一種保護方法。
上述目標(biāo)與方法正如所描述的,均已達到。該項發(fā)明可用于保護共享數(shù)據(jù)對象內(nèi)的文本、圖形或圖象的浮動數(shù)據(jù)塊免于兩個以上用戶同時操作?;谙到y(tǒng)的合作計算機包括一個網(wǎng)絡(luò),它連有許多可進行通信的終端。每個終端又包含一臺輸出顯示設(shè)備和一臺用戶輸入設(shè)備。基于系統(tǒng)的合作計算機還包括一個可由該系統(tǒng)中的多個用戶同時訪問的共享數(shù)據(jù)對象。當(dāng)一個用戶獲得對該共享數(shù)據(jù)對象的訪問許可時,作為響應(yīng),系統(tǒng)在當(dāng)前所有用戶的視頻顯示設(shè)備上,為該用戶指派一個可用光標(biāo)。當(dāng)一個用戶移動其光標(biāo)時,系統(tǒng)就在與光標(biāo)相關(guān)的共享數(shù)據(jù)對象內(nèi)建立一個鎖定區(qū)域。如果所要建立的鎖定區(qū)域沒有位于以前建立的鎖定區(qū)域內(nèi),則可建立與該光標(biāo)位置相關(guān)的鎖定區(qū)域。新鎖定區(qū)域的建立,或者光標(biāo)在一個舊鎖定區(qū)域外邊的移動,將釋放任何與該光標(biāo)有關(guān)的舊的鎖定區(qū)域。這樣,就有許多暫時的、浮動的鎖定區(qū)域建立起來,當(dāng)前沒有鎖定區(qū)域的光標(biāo)和滿足用戶需要的任意其它選擇合格規(guī)則的光標(biāo)可到達一個光標(biāo)的下面的每個位置及無論何時出現(xiàn)的區(qū)域。
在下面各部分的詳細描述中,本項發(fā)明的以上特點及補充特性與優(yōu)點,都將明顯展示出來。
該項發(fā)明的新穎性能特點將在附加專利權(quán)利范圍中陳述。而本發(fā)明及其最佳使用方式和優(yōu)點,將在下面結(jié)合各圖的內(nèi)容說明中得到充分體現(xiàn)和詳細描述。其中
圖1是一個局域網(wǎng)框圖,是該項發(fā)明得以方便應(yīng)用的用武之地。
圖2是由計算機圖表系統(tǒng)產(chǎn)生的一個窗口,它支持該項發(fā)明的用戶接口。
圖3是一個對于目標(biāo)文本對象打開的用于編輯的窗口。
圖4到圖7是當(dāng)對窗口編輯時,對于目標(biāo)圖形對象是打開的窗口。
圖8A至圖8C是幾個利用該發(fā)明提供的系統(tǒng)和方法,并對于選擇鎖定方式和用戶可選擇的區(qū)域是打開的窗口。
圖9是一個與該項發(fā)明的控制功能有關(guān)的用戶接口窗口。
圖10是一個與該項發(fā)明的控制功能有關(guān)的用戶接口窗口。
圖11是一個局域網(wǎng)框圖,表示該系統(tǒng)及本項發(fā)明提供的方法所支持的數(shù)據(jù)對象分布。
圖12A和圖12B是描述用于實踐該項發(fā)明相應(yīng)的第一和第二項實施例的數(shù)據(jù)記錄。
圖13的描述客戶對合作數(shù)據(jù)處理系統(tǒng)進行訪問的高級流程圖。
圖14是描述在一個客戶終端上對合作編輯程序操作的高級流程圖,該終端是該項發(fā)明提供的方法和系統(tǒng)的組成部分。
圖15是描述在由該項發(fā)明提供的方法和系統(tǒng)上的服務(wù)器上,對合作編輯程序進行操作的高級流程圖。
圖16是描述響應(yīng)收到一個系統(tǒng)的用戶送來的命令后,對圖14和圖15的合作編輯進程進行操作的流程圖。
圖17A和圖17B是在一個該項發(fā)明提供的成組編輯系統(tǒng)中更新一個客戶屏幕顯示內(nèi)容的流程圖。
圖18A和圖18B是決定對于本發(fā)明的第一和第二項實施例中光標(biāo)編輯中一個光標(biāo)位置是否鎖定的流程圖。
圖19A和圖19B的流程與該項發(fā)明相應(yīng)的第一、二項實施例有關(guān),并提供了更新共享數(shù)據(jù)對象內(nèi)的光標(biāo)關(guān)聯(lián)的鎖定區(qū)域。
圖20A和圖20B的流程圖與該項發(fā)明相應(yīng)的第一、二項實施例有關(guān),給用戶在共享數(shù)據(jù)對象內(nèi)提供可選區(qū)域。
圖21的流程圖使用戶在可選區(qū)域內(nèi)建立一個鎖定區(qū)域。
圖22的流程圖把用戶指定的可選區(qū)域作為一關(guān)聯(lián)區(qū)域。
圖23的流程圖是從一個區(qū)域移去一指定的鎖定區(qū)域或關(guān)聯(lián)區(qū)域。
圖24A和圖24B的流程圖與該項發(fā)明的第一、二項實施例有關(guān),根據(jù)對一個區(qū)域的選擇提供檢測鎖定區(qū)域沖突的決定。
前面介紹了與該項發(fā)明有關(guān)的圖,其中圖1描述了一個局域網(wǎng),該網(wǎng)絡(luò)能夠按照該項發(fā)明所提供的方法使用,局域網(wǎng)8支持一個基于編輯系統(tǒng)的合作計算機,被編輯的數(shù)據(jù)對象有放在服務(wù)器中。局域網(wǎng)8的作用是通過傳輸通道10在多個個人計算機12之間進行數(shù)據(jù)通信,圖示系統(tǒng)中的計算機12最好是使用IBMPC機或IBMPS/2機,或者也可以是其它類似的系統(tǒng)。熟悉計算機系統(tǒng)的人都知道,計算機12通常包括一個鍵盤,用于接收用戶輸入,還包括一個視頻顯示設(shè)備,用于給局域網(wǎng)用戶送出網(wǎng)絡(luò)信息。其中的一臺計算機12作為網(wǎng)絡(luò)8的服務(wù)器。服務(wù)器也可以是一臺較大的計算機系統(tǒng),例如IBM的AS/400。
圖2所示的窗口體現(xiàn)了該項發(fā)明所提供的多用戶接口的特點。窗口18是一個在計算機12的屏幕上顯示的一般常見的窗口。一個本地產(chǎn)生的鼠標(biāo)器指針22用作該窗口內(nèi)的操作控制。窗口18含有一個標(biāo)題欄24,用于標(biāo)識用戶對共享數(shù)據(jù)對象的訪問。顯示字段27展示的是共享數(shù)據(jù)對象中的專有視圖28。光標(biāo)20和26也出現(xiàn)在顯示字段27中。光標(biāo)20是指定給專有視圖27的用戶光標(biāo)。光標(biāo)26是指定給另外一個用戶的光標(biāo),該用戶也對同一個共享數(shù)據(jù)對象進行訪問或者至少對共享數(shù)據(jù)對象的一部分進行訪問,該部分涉及到專有視圖28。光標(biāo)20隨著其用戶發(fā)出的移動命令而移動其位置,光標(biāo)26圍繞屏幕移動,并根據(jù)收到的來自遠程站的命令而可能移出顯示字段27。共享數(shù)據(jù)對象既可以是顯示字段27例示的一行行文本所組成的一個字處理文件,也可以是一個圖形映象文件或其它類型的文件。
光標(biāo)20和26都有自己的顯示屬性,便于我們視覺上的分別。圖中實心陰影的是光標(biāo)20,而有交叉陰影的是光標(biāo)26。在優(yōu)選的實施例中,還可以用不同的色彩表示各個光標(biāo)。
圖3所示窗口102是在一臺用戶顯示設(shè)備上產(chǎn)生的。文本編輯器的功能與窗口102有關(guān)在顯示字段104對象中是目標(biāo)文本的專有視圖,用戶可以用是指派給自己的光標(biāo)108定位想要修改、刪增的地方而對該段目標(biāo)文本對象進行編輯。圖中光標(biāo)108嵌入在浮動的暫時鎖定區(qū)域106中。該區(qū)域擴充至現(xiàn)行光標(biāo)所處的字或等效于字的對象中在一個彩色監(jiān)視器上,光標(biāo)108和鎖定區(qū)域106以一塊彩色區(qū)域的面目出現(xiàn),利用不同的色彩代表光標(biāo)、鎖定區(qū)域和鎖定區(qū)域的背景顏色,就可以表示出光標(biāo)與鎖定區(qū)域的不同擁有者以及鎖定區(qū)域類型。區(qū)域110用對應(yīng)某個特定用戶的色彩作標(biāo)記,表示該區(qū)域與該用戶有關(guān)。區(qū)域110也可以識別所有權(quán),或者說可以被鎖定,以防其它用戶進行編輯。顯示字段104里的第二個用戶光標(biāo)114嵌在浮動的鎖定區(qū)域112中,光標(biāo)114和鎖定區(qū)域112也有自己獨特的色彩,代表該光標(biāo)114的擁有者。區(qū)域110可以與光標(biāo)108、104的擁有者有關(guān),也可以與該合作編輯器的其它當(dāng)前或過去的客戶有關(guān)。
圖4所示窗口116是由合作圖形編輯器正在編輯的對共享圖形對象開放的窗口。出現(xiàn)在顯示區(qū)域117中的共享圖形對象的視圖中有三個用戶出現(xiàn),分別用光標(biāo)130、138和140表示。圖中包括了多個子對象,包括一段文本118,畫火車120的線,另一段文本122,圍繞宇宙飛船124的輪廓線123,月球125,太空旅行者126,行星127以及第三段文本128。每個區(qū)域或其邊界的視頻屬性,表征了該區(qū)域與某個用戶之間關(guān)聯(lián)的狀態(tài)。區(qū)域142、134和123是用戶的可選區(qū)域,并且可以分別由建立它們的用戶們隨時取消。這些用戶可選區(qū)域可以被鎖定以防止其它用戶對其操作,也可以只用來表示所有權(quán)。
各個用戶光標(biāo)130、138和140都分別有自己獨特的色彩以便區(qū)分。三個光標(biāo)分別位于光標(biāo)鎖定區(qū)域132、136和144中,這些光標(biāo)鎖定區(qū)域也有自己可分辨的唯一色彩的視頻屬性。另外,這些光標(biāo)鎖定區(qū)域都是浮動的和暫時的,當(dāng)光標(biāo)離開用戶可選區(qū)域或另一個光標(biāo)鎖定區(qū)域時,就出現(xiàn)一個新的光標(biāo)鎖定區(qū)域。光標(biāo)鎖定區(qū)域的形狀和大小可由用戶選定。例如,光標(biāo)138的擁有者選擇了園形光標(biāo)鎖定區(qū)域136;而光標(biāo)140的擁有者選擇了方形光標(biāo)鎖定區(qū)域144;光標(biāo)130的擁有者選擇了一個對象鎖定區(qū)域132,其形狀是下面對象125的形狀。
圖5表示顯示區(qū)域117中進入了第四個用戶,用光標(biāo)146表示。光標(biāo)146的用戶通過產(chǎn)生選擇點145(在顯示字段117中用“X”表示),而初始化選定一個新的區(qū)域。光標(biāo)146也象其它光標(biāo)一樣,用其自己獨特的色彩同其用戶相區(qū)分,該光標(biāo)位于方形光標(biāo)鎖定區(qū)域148中,該區(qū)域也用自己特定的色彩代表自己的擁有者。
圖6所示為光標(biāo)146的用戶完成了可選區(qū)域的定位。通過選擇第二個選擇點147并要求矩形形狀,選擇區(qū)域150在顯示區(qū)117中誕生了。在圖中,選擇區(qū)域150用密集陰影表示,同其它用戶相關(guān)的區(qū)域一樣,該區(qū)域也有自己的視頻屬性,以便同其它用戶及區(qū)域類型有區(qū)別。為明確表示,最好使用一定的顯示格式。
圖7所示為關(guān)聯(lián)類型的光標(biāo)146的用戶選擇區(qū)域150的描述。此類型可以簡單地只是“所有權(quán)”,也可以是建立的一個用戶鎖定區(qū)域,其相應(yīng)的變化由區(qū)域的視頻屬性或顯示格式的變化來表示,此處的區(qū)域是建立用戶選擇的鎖定區(qū)域151。不同的類型也可以用不同的視頻特性來表示,如用不同的形式如交叉線或彩色陰影。
圖8A到8C是控制性能開放的兩種窗口,即兩個窗口152和方式選擇窗口154,用于選擇光標(biāo)鎖定方式參數(shù)。其中圖8A在顯示區(qū)153利用鼠標(biāo)指針22,通過選擇ON按鈕或OFF按鈕,在一個文本文件中隨著分配給該用戶的光標(biāo)而自動生成一個鎖定區(qū)。通過自動結(jié)合的選擇,用戶選定一種鎖定方式。對文本編輯來說,通常有字符鎖定、單詞鎖定、一行文本鎖定等。當(dāng)然,一個熟練的操作員也可以選擇其它鎖定方式,如句鎖定,段落額定或頁鎖定。圖8B是對一個圖形或圖象文件選擇鎖定區(qū)。例如選擇“多邊形(POLYGON)”按鈕是圖形或圖象文件編輯中常見的方式。“用戶定義”方式是指用戶通過確定各個頂點可以定義一個不規(guī)則形狀的鎖定區(qū)域。另外,含有圖形或文本信息的物體形狀也可以選擇作為鎖定區(qū)域,只要按下“物體形”按鈕即可。同樣,用戶也可以選擇“方形”或“圓形”按鈕而選擇這些形狀的鎖定區(qū)。
圖8C是給用戶示范如何為一個選擇區(qū)域確定各種形狀。在窗口154中的顯示區(qū)域155中,包括三個可由鼠標(biāo)器選擇的按鈕,即一個“方形”按鈕,一個“園形”按鈕和一個“多邊形”按鈕。選擇其中任意一種都需要先確定相應(yīng)參數(shù),如對于園形要確定半徑,對一個有多個邊角的區(qū)域需選擇“多邊形”方式。在確定了選擇方式之后,用戶接下來的操作就是通過選取選擇方式而確定形狀。
網(wǎng)絡(luò)服務(wù)器對指派給每個用戶的光標(biāo)色彩的缺少設(shè)置是依照系統(tǒng)的注冊登記而定的。但是,系統(tǒng)可以賦予某個用戶以各種方式在本地修改接口的權(quán)力。這種修改是通過圖9的窗口34和圖19的窗口40來支持的。如圖9所示,窗口34是由其命名欄36為“本地顯示任選項”而標(biāo)記的。色彩方式38有四種選擇,“全部”即每個用戶都指定有一種可相互區(qū)分的色彩,“兩色”即為該用戶擁有的光標(biāo)提供一種色彩,而為其它所有用戶光標(biāo)都提供另一種色彩;“灰度級”即在單色顯示屏上為每個用戶的光標(biāo)安排不同亮度的顯示;第四種選擇是“填充格式”,即使用不同的背景如剖面線、平行線或閃爍屬性來區(qū)分各用戶光標(biāo)。選擇了色彩方式擴充到用戶選擇和定義的鎖定區(qū)域關(guān)聯(lián)因為它們發(fā)生在共享數(shù)據(jù)對象中并且也擴展到指定用戶的光標(biāo)中。
調(diào)色板選擇39與“全部”色彩方式中的彩色選擇有關(guān)?!叭笔≡O(shè)置”按鈕31用系統(tǒng)已設(shè)定好的顏色;“用戶調(diào)色板”按鈕產(chǎn)生圖10所示的窗口40。在窗口40中一個用戶可為每個用戶選擇新的色彩。色彩選擇的設(shè)置,使那些患有部分色盲的用戶也能選定一個可以分辨的調(diào)色板。窗口40的顯示區(qū)中有一個用戶/色彩表44,對于特定的用戶,可以從色彩盤46中為其選擇一種特定顏色。顏色的亮度可以通過卷動條50來調(diào)節(jié)。用更改按鈕48中的某個按鈕來完成選擇過程。更改按鈕48包括一個“取消”按鈕、和“缺省選擇”按鈕,后者可以對特定用戶恢復(fù)以前設(shè)定的色彩。
圖11A所示是用于支持基于優(yōu)選的實施例的編輯系統(tǒng)6的合作計算機的局域網(wǎng)8的一個典型框圖。服務(wù)器12與計算機12a~12n通過通信通道10進行通信。局域網(wǎng)8是用環(huán)形標(biāo)記形狀,也可用其它結(jié)構(gòu)形式。服務(wù)器12是用于該項發(fā)明的一臺常用計算機系統(tǒng)PS/2或AS/400,它包括一個中央處理器60,存貯器64和用于編碼輸出信息和解碼輸出信息用的網(wǎng)絡(luò)適配卡62。服務(wù)器14還包括一個硬盤驅(qū)動器56,它存貯著可由一個或多個用戶進行請求訪問的大量的共享數(shù)據(jù)對象。用戶請求的結(jié)果是數(shù)據(jù)對象通過數(shù)據(jù)總線58傳送到計算機存貯器64,在存貯器64中有很多數(shù)據(jù)對象。操作系統(tǒng)和局域網(wǎng)服務(wù)器66就是代表性的數(shù)據(jù)對象。編輯程序68,關(guān)聯(lián)/鎖定列表70和光標(biāo)列表72。這些列表與一特定的編輯數(shù)據(jù)對象相關(guān)(這里開始編輯對象74),其作用是為共享數(shù)據(jù)對象的產(chǎn)生與修改提供一個合作工具。同時還會有一些其它的編輯對象。
用戶通過計算機12a~12n來訪問共享數(shù)據(jù)對象。以計算機12b為典型例子,它作為一臺個人工作站與計算機12進行通信。個人工作站12b與計算機12的組成基本相似,它包括一個網(wǎng)絡(luò)適配卡78,一個顯示適配卡84,一臺硬盤驅(qū)動器90,中央處理器82和可尋址的存貯器88,它們把該個人工作站12b在數(shù)據(jù)總線83上傳送信息。中央處理器(CPU)82直接控制著輸入設(shè)備80,該設(shè)備可以包括一個鍵盤和一個鼠標(biāo)器。顯示適配卡84用于驅(qū)動顯示設(shè)備86,并在其上生成窗口。存貯器88中含有該個人工作站12b的用戶可以存取的文件71的拷貝92,對拷貝92進行存取就可以改變共享數(shù)據(jù)對象中某個用戶的視圖,而不必麻煩網(wǎng)絡(luò)10來傳送支持專有視圖的數(shù)據(jù)。另外,還有一個命令集94,在網(wǎng)絡(luò)8中建立通信會話時使用。
能有效地修改第一個編輯對象74的工具是編輯程序68,關(guān)聯(lián)/鎖定列表70和光標(biāo)列表72。文件71是由關(guān)聯(lián)/鎖定列表70和光標(biāo)列表72以及一個目標(biāo)編輯對象74構(gòu)成。光標(biāo)列表72是由每個當(dāng)前用戶對第一個編輯對象74訪問的記錄組成的。關(guān)聯(lián)/鎖定列表70包括三部分,即光標(biāo)進入編輯對象74的非鎖定區(qū)域時所產(chǎn)生的鎖定區(qū),用戶已經(jīng)建立的鎖定區(qū)和與用戶有關(guān)的其它區(qū)域。光標(biāo)列表72在每次某個新用戶訪問編輯對象74時或某個用戶注銷一個編輯對象時,就更新一次。關(guān)聯(lián)/鎖定列表70中的入口記錄隨著光標(biāo)的移動以及用戶的選擇和不選擇操作而改變。每項關(guān)聯(lián)/鎖定記錄包括起始點、終點、相關(guān)類型及用戶標(biāo)識符。
圖11B所示是支持基于系統(tǒng)的合作計算機6的另一實施例的框圖。它與圖11A相似,不同的是給機器12A~12C的客戶文件71的拷貝92包含在存貯器64中,但在服務(wù)器12上運行。輸入/輸出處理器64可與眾多非可編程工作站(NWS)85通信。在這個實施例中,服務(wù)器12就變成了一個運行多個進程的單個計算機系統(tǒng),例如一臺IBMAS/400系統(tǒng)與多個非可編程工作站相連。在存貯器64中,每個非可編程工作站85都有相應(yīng)的一份拷貝92。
圖12A和圖12B所示,是在實現(xiàn)該項發(fā)明實施例的第一項和第二項內(nèi)容時所分別用到的數(shù)據(jù)記錄160、162、164和166。它們與合作文本編輯及合作圖表或圖象編輯有關(guān)。
合作文本編輯程序的當(dāng)前用戶列表包括光標(biāo)記錄160的指針列表。對應(yīng)每個當(dāng)前用戶有一個光標(biāo)記錄。每個記錄160包括一個識別該光標(biāo)的唯一標(biāo)識符。表示光標(biāo)所在的文本的行和在行內(nèi)偏移的當(dāng)前位置記錄,隨著每次位置改變的命令執(zhí)行而更新。記錄160包含兩個相關(guān)區(qū)域,在選擇一個新區(qū)域為鎖定狀態(tài)或其它用途中使用。選擇一個區(qū)域是表示該選擇或被激活的標(biāo)志。選擇域是一個其標(biāo)識經(jīng)常更新的區(qū)域,與相關(guān)類型不能等同。選擇鎖定域是選擇域記錄的一個指針。
用戶鎖定列表是對其它用戶鎖定區(qū)中鎖定記錄的指針列表。光標(biāo)鎖定是含有一個指針的區(qū)域,該指針指向與此光標(biāo)關(guān)聯(lián)的浮動鎖定區(qū)域中的鎖定記錄。一個指針的是否存在是無關(guān)緊要的。最后,再講一下關(guān)聯(lián)區(qū)域列表的概念,它是一個區(qū)域集合,含有“關(guān)聯(lián)/鎖定”記錄指針,這些記錄以某種方式與一個用戶關(guān)聯(lián),并不是由其它用戶鎖定操作的。
記錄162就是這種關(guān)聯(lián)/鎖定記錄的典型例子。該記錄包含光標(biāo)所有者的識別號碼在內(nèi)。相關(guān)類型有“選擇鎖定”、“用戶鎖定”、“光標(biāo)鎖定”、“所有權(quán)”以及其它等等。還給出了區(qū)域的起始位置和終點位置,用行和偏移兩個術(shù)語描述。
圖12B所示是一個合作圖形編輯程序所使用的數(shù)據(jù)結(jié)構(gòu)記錄。合作圖形編輯程序的當(dāng)前用戶列表是一個指向光標(biāo)記錄164的指針列表?,F(xiàn)在詳細描述其中之一。對于每個當(dāng)前用戶都有一個相應(yīng)的光標(biāo)記錄。記錄164包括一個識別該光標(biāo)的唯一標(biāo)識符,要維護記錄的當(dāng)前位置,它是用光標(biāo)在圖形或圖象中的X軸和Y軸座標(biāo)值表示,它隨著改變位置的命令執(zhí)行而不斷更新。記錄164包含兩個關(guān)聯(lián)區(qū)域,在選擇一個新區(qū)域為鎖定狀態(tài)或其它用途中使用。選擇一個區(qū)表示該選擇區(qū)被激活,選擇域是一個其標(biāo)識經(jīng)常更新的區(qū)域,與相關(guān)類型不同。選擇鎖定域是選擇域中記錄的一個指針。
用戶鎖定列表是對鎖定其它用戶區(qū)域中鎖定記錄的列表。光標(biāo)鎖定是含有一個指針的區(qū)域,該指針指向與此光標(biāo)關(guān)聯(lián)的浮動鎖定區(qū)域中的鎖定記錄。指針是否存在是無關(guān)緊要的。最后,再講一下關(guān)聯(lián)區(qū)域列表的概念,它是一個區(qū)域集合,含有“關(guān)聯(lián)/鎖定”記錄指針,這些記錄以某種方式與一個用戶關(guān)聯(lián),而不是由其它用戶鎖定操作。
記錄116就是合作圖形編輯程序的關(guān)聯(lián)/鎖定記錄的一個典型例子。該記錄包含光標(biāo)所有者的識別號碼在內(nèi),關(guān)聯(lián)類型有“選擇鎖定”、“用戶鎖定”、“光標(biāo)鎖定”、“所有權(quán)”以及其它等等。區(qū)域的形狀包括方形、園形和用戶定義的多邊形。定義點即頂點的次序列表用于維護該區(qū)域,該列表用來識別多邊形的頂點序列。
圖13所示的高級流程圖說明了客戶訪問文本類型或圖像圖形的合作編輯系統(tǒng)的過程。系統(tǒng)的初始狀態(tài)是服務(wù)器等待客戶來速接(方框200)。服務(wù)器在通常情況下是關(guān)閉的,并只需要主機計算資源的很小部分。一旦來了用戶請求,連接就建立起來了。判別框202判斷來的是否是假用戶,設(shè)置終端標(biāo)志用于將終端命令傳送給服務(wù)器。方框202的YES分支表示連接標(biāo)志設(shè)置好,常見的是連接一個實際用戶,這時方框204開始運行,即為正在發(fā)出請求的客戶建立一個異步客戶管理程序。崗下面的圖15中說明。
圖14所示為客戶上的對文本或圖形文件的合作編輯程序操作的高級流程圖,這一流程從方框206開始,有一個需要編輯的共享文件標(biāo)識,接著在方框208客戶與服務(wù)器連接,并請求方框206標(biāo)識的文件。請求信息的傳輸用字母“A”表示。服務(wù)器對該傳送來的信息接收也用字母“A”表示,同時在前面的圖13的方框200處給出。在方框210,客戶從服務(wù)器上接收該文件的拷貝,并用字母“B”表示。該文件包括有要編輯的目標(biāo)對象、光標(biāo)列表、光標(biāo)記錄和并聯(lián)/鎖定光標(biāo)。該文件存放在客戶的存貯器中。最后,方框212初始化本地編輯程序,編輯過程就開始了。
接下來,判別框214決定來自用戶的輸入信息是否已經(jīng)收到,如果是,則判別框216再決定接收來的命令是否有效。如果命令無效,就在方框218向用戶提出警告,然后返回到方框214,繼續(xù)分析下一個用戶輸入。如果命令有效,方框220就把編輯命令發(fā)送給服務(wù)器。本地編輯程序與服務(wù)器編輯程序之間的傳送接點用字母“C”表示。
接下來詳細描述本地編輯程序?qū)τ行畹捻憫?yīng)過程。首先方框215判定是否從服務(wù)器上收到新光標(biāo),其傳送接點用字母“F”表示。如果收到了新光標(biāo),就把該光標(biāo)加到本地文件上,如方框217所示。若沒有收到新光標(biāo),則過程跳到222,來判別來自服務(wù)器的編輯命令是否已經(jīng)收到。編輯命令既可以在本地產(chǎn)生,也可以來自另一個用戶。但是,一直到客戶從服務(wù)器收到命令為止,編輯命令才起作用。因此,為了識別發(fā)送給服務(wù)器和接收來自服務(wù)器的命令,方框214和222不斷地重復(fù)執(zhí)行。
根據(jù)服務(wù)器上的編輯程序返回來的編輯命令(傳送接收點用字母“D”表示),方框224用來在本地文件上執(zhí)行該命令。從下面的討論中可以清楚地看到,這類命令可以來自其它用戶的客戶管理程序。方框224的操作過程將在下面的圖16到圖24中詳述,這些操作包括編輯操作,區(qū)域相關(guān)操作,光標(biāo)移動及其它步驟。判別框226判定該命令是否是退出命令,如果是,該過程就跳到方框227,在這一步刪去擁有者的光標(biāo),然后在方框229判定所刪除的光標(biāo)是否是該客戶的光標(biāo),如果不是,過程就返回到方框214,等待下一個命令。如果所刪除的光標(biāo)是該客戶的光標(biāo),在方框228中就關(guān)閉本地文件,并執(zhí)行其它的本地清除功能,之后這本地過程就結(jié)束了。方框226的NO分支返回到方框214中,過程等待下一個命令。
圖15是在服務(wù)器上運行的一個客戶管理程序和合作編輯程序的高級流程圖。該過程從方框230開始,它判別所請求的目標(biāo)對象或文件當(dāng)前是否正在被其它用戶編輯。如果沒有,方框232用來打開該文件并初始化適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),以便于支持合作編輯。一旦獲得了打開的文件,或者該文件已存在,方框234就為該新用戶產(chǎn)生一個光標(biāo)記錄。包含更新的光標(biāo)記錄和鎖定記錄在內(nèi)的該文件的拷貝,如果這樣的拷貝存在的話,就被下載到該用戶終端上,用傳送接點“B”表示。該新光標(biāo)分配給其它客戶,用扇形擴散點“F”表示。方框236把該新客戶增加到訪問該文件的客戶列表上。
客戶對文件中目標(biāo)對象訪問的管理從方框238開始,根據(jù)接收從客戶送來的編輯命令(用接點“C”表示),該過程使用框240程序得到該文件在服務(wù)器上的版本標(biāo)記。根據(jù)得到的標(biāo)記,客戶管理程序獨占訪問該文檔文件。于是,客戶們對該文件的訪問得以連續(xù),保持一致。接著使用方框242到來執(zhí)行在該文件的服務(wù)器版本上的編輯操作。這些編輯操作將在下面的圖16-24作詳細解釋。然后方框246把編輯命令傳送給當(dāng)前所有訪問該文件的客戶,進行對該文件本地版本的并行操作(用扇形擴展點“D”表示)。現(xiàn)在可以清楚地看到,圖14所示的客戶編輯程序可以接受來自多個客戶管理程序的編輯命令。方框248判斷最后一個編輯命令是否是該客戶管理程序的客戶發(fā)出的退出命令。如果不是,流程就跳到方框250,釋放該文件的版本標(biāo)記。
如果客戶命令是退出命令,則使用方框252,把該客戶從訪問該文件的用戶列表中刪除,并清除該客戶的光標(biāo)記錄。方框254用來判別該客戶是否是訪問該文件的唯一剩下的一員;如果是,方框256關(guān)閉該文件并完成所需的清除工作,接著方框257釋放該文件的版本標(biāo)記。對退出客戶的客戶管理程序也隨之關(guān)閉。
圖16所示說明了在本地終端運行的客戶編輯程序(方框224)和在服務(wù)器上運行的客戶管理程序(方框242)的操作流程。這些操作基本上是類似的,不同之處將給出說明。圖16是合作編輯程序的一個流程圖,根據(jù)接收到的命令和執(zhí)行該命令的光標(biāo)指示,該流程在方框258被初始化。方框260判別接收到的命令是不是以某種方式修改文件中目標(biāo)對象的修改命令。
如果是,再用方框262判斷光標(biāo)是否處于鎖定那個光標(biāo)的目標(biāo)對象某部分。如果不是鎖定的,方框264就執(zhí)行修改該目標(biāo)對象的應(yīng)用命令。這類修改命令與圖形編輯程序中的修改命令類似,比如加拿大安大略省·渥太華Carlihb大街1600號的CorelsystemsCorp公司的CorelDraw圖形編輯程序。任何一個文本編輯程序都包括保存和編輯命令。如果操作是在客戶編輯程序的視圖中,則要對該顯示作適當(dāng)修改。如果目標(biāo)對象是鎖定的,則修改操作就不能進行,并且過程返回到客戶編輯程序或客戶管理程序。目標(biāo)對象的鎖定狀態(tài)的確定,將在下面的圖18A和18B說明。
不修改文件目標(biāo)對象命令包括控制光標(biāo)移動的命令和選擇及排除目標(biāo)對象的鎖定區(qū)域或其它相關(guān)狀態(tài)的命令。這些命令中也包括目標(biāo)對象的保存命令和退出命令。不過第一組命令是本文涉及的最基本命令?,F(xiàn)在看判別方框260的NO支路流程,判別方框266用來判斷命令是否是一個移動光標(biāo)的命令,如果是,方框268就執(zhí)行光標(biāo)移動命令,即更新該光標(biāo)的光標(biāo)記錄160或164。接下來,如果該流程是一個客戶編輯程序的操作,屏幕上就給出新的光標(biāo)位置更新的顯示(詳見圖17A和17B)。然后,在方框272更新光標(biāo)鎖定(詳見圖19A和19B)。下面將說明一個光標(biāo)鎖定根據(jù)光標(biāo)的新位置既可以返回也可以不返回。最后該流程返回到客戶編輯程序或客戶管理程序。
如果接收的命令不是光標(biāo)移動命令,判別框266的NO分支流向判別框274。在框274判斷是否為選擇命令,選擇命令的功能是為用戶識別與其有關(guān)的某種格式的共享數(shù)據(jù)對象的某一部分。如果是選擇命令,框276用來執(zhí)行選擇操作(見下面的圖20A和20B的說明)。
如果接收的命令不是選擇命令,判別框274的NO分支流向判別框278。框278判定是不是鎖定命令。鎖定命令的功能是在共享數(shù)據(jù)對象中將一選定區(qū)域轉(zhuǎn)換為某個用戶的選擇鎖定區(qū)域。如果是鎖定命令,就在框280執(zhí)行鎖定操作(見圖21說明)。
如果接收的命令不是鎖定命令,判別框278的NO分支流向判別框282。判別框282判定是否是解鎖命令。解鎖命令的功能是在共享數(shù)據(jù)對象內(nèi)消除用戶選擇鎖定區(qū)域。如果是解鎖命令,框284就執(zhí)行解鎖操作(見圖23說明)。
如果接收的命令也不是解鎖命令,判別框282的NO分支流向判別框286???86判定該命令是否是一個關(guān)聯(lián)命令,關(guān)聯(lián)命令的功能是在共享數(shù)據(jù)對象內(nèi)將一選定區(qū)域轉(zhuǎn)換成某個用戶的關(guān)聯(lián)區(qū)域。或者是關(guān)聯(lián)命令,在框290執(zhí)行關(guān)聯(lián)操作,關(guān)聯(lián)操作類似于上述框264描述的操作,包括保存和退出命令(見圖22說明)。
其余剩下的可能的合理化建議與鎖定區(qū)域無關(guān),將在框288執(zhí)行。到此整個流程的操作結(jié)束,并返回到客戶編輯程序或客戶管理程序。
圖17A和17B說明了本地終端顯示的更新流程。通常服務(wù)器上不配備顯示器。對文件修改之后或執(zhí)行光標(biāo)移動命令之后以及執(zhí)行有關(guān)用戶關(guān)聯(lián)區(qū)的操作之后,屏幕顯示隨之更新。圖17A和17B的流程就是針對這后兩種顯示更新情況的,它們可能在框276、280、284或290所期待的操作完成后執(zhí)行。
顯示更新流程從判別框292處開始,該起點也是識別接收到的編輯命令的類型過程的開始。判別框292判別接收到的命令是否為光標(biāo)移動命令。如果是,就開始框294、296、298、300和302的系列操作,其操作內(nèi)容分別是識別該光標(biāo)的用戶,決定分派給該用戶的色彩,決定光標(biāo)的新位置,消除舊位置的光標(biāo)顯示,以指定色彩在新位置顯示該光標(biāo)。
更新顯示的流程在判別框304處繼續(xù),在框304判別該命令是不是選擇一個區(qū)域。如果是,就開始框306、308、310、312和314系列操作。其操作內(nèi)容修改標(biāo)識它被選定區(qū)域和修改標(biāo)識選擇用戶的區(qū)域,具體說就是識別選擇區(qū)域的用戶,給該用戶恢復(fù)色彩,恢復(fù)“選擇”顯示格式?jīng)Q定其外觀需改變的顯示區(qū)域,最后,使用指定的色彩和“選擇”顯示格式填充這個區(qū)域。
更新顯示的流程在判別框326處繼續(xù)。在框326判定該命令是否為鎖定一個區(qū)域的命令。如是,就開始框328,330,332,334,336和338的系列操作,操作內(nèi)容是修改標(biāo)識它被鎖定區(qū)域并修改標(biāo)識用戶的區(qū)域,即分別是標(biāo)識鎖定區(qū)域的用戶,給該用戶恢復(fù)色彩,恢復(fù)“鎖定”顯示格式,決定其外觀需改變的顯示區(qū)域,最后,使用該用戶的色彩和“鎖定”顯示格式來填充顯示區(qū)域。
更新顯示的流程在判別框340處繼續(xù)。判別框340判別所接收的命令是否是排除一個區(qū)域或解鎖一個區(qū)域的命令。如果是,就開始框342、344、346和348的系列操作,把該區(qū)域復(fù)原為“正?!憋@示,其操作內(nèi)容是復(fù)原通常的顯示解彩和顯示格式,決定其外觀需改變的顯示區(qū)域,最后,用通常的色彩和顯示格式填充顯示區(qū)域。
圖17B所示是從判別框350繼續(xù)進行顯示更新的流程。判別框350判別是否有任何其它關(guān)聯(lián)區(qū)域允許查看。如有則執(zhí)行框352、354、356和358的系列操作,操作內(nèi)容是修改標(biāo)識關(guān)聯(lián)區(qū)及標(biāo)識其用戶的區(qū)域。具體說就是為該用戶恢復(fù)色彩和適當(dāng)?shù)娘@示格式,決定其外觀需修改的顯示區(qū)域,最后,用用戶的色彩和適當(dāng)?shù)年P(guān)聯(lián)顯示格式填充該顯示區(qū)。
更新顯示的流程在判斷框360處繼續(xù)。判別框360判別是否有任何其它禁止關(guān)聯(lián)的區(qū)域。如果是,將執(zhí)行方框362、364、366和368的系列操作,其內(nèi)容是用“正?!蓖庥^顯示該區(qū)域,即先恢復(fù)“正?!鄙屎突謴?fù)“正?!憋@示格式,確定顯示區(qū)域,然后用“正?!鄙屎汀罢!憋@示格式填充該顯示區(qū)。最后在顯示更新完成之后,流程返回到本地編輯程序的適當(dāng)?shù)胤健?br>
圖18A和18B的流程圖判定一個光標(biāo)在其當(dāng)前位置是否鎖定,以防被編輯。這兩個流程圖分別與該項發(fā)明的第一、二項實施例有關(guān),即與文本編輯程序上下文和圖形或圖象編輯程序上下文有關(guān)。圖18A的文本編輯程序流程從判別框370開始,在框370判別是否存在包含光標(biāo)鎖定記錄的關(guān)聯(lián)/鎖定記錄,這些記錄還未經(jīng)過檢查。如果不存在,說明沒有鎖來阻止請求決定的操作,流程返回。然而如果記錄存在,首先對這些記錄必須進行檢查,然后在方框372恢復(fù)下一個記錄。判別框374判定該記錄類型是否是鎖定的,即是否是用戶鎖定、選擇鎖定或光標(biāo)鎖定。如果不是鎖定類型記錄,說明該記錄對操作是不相干的記錄,流程返回到方框370。如果是鎖定記錄類型,就在判別框375判定該用戶是否是該記錄的擁有者。如果是,該記錄對操作也是不相干的,流程返回到方框370。最后判別框376將光標(biāo)的位置與該鎖定記錄的起始、終點位置比較,如果比較結(jié)果是光標(biāo)的位置處于該記錄的起始、終點之間,說明鎖阻止使用該光標(biāo)去修改文件或建立一選擇點,并向主程序返回一鎖定標(biāo)記。如果光標(biāo)的位置位于記錄的起始、終點位置之外,則該鎖對于該光標(biāo)位置是無效的,流程返回到方框370,以待對下一記錄進行判別。只有在清理檢查過所有記錄之后才可以返回一個無鎖定標(biāo)志。
圖18B的圖形編輯程序流程從判別框378開始,在框378判別是否存在包含光標(biāo)鎖定記錄在內(nèi)的關(guān)聯(lián)/鎖定記錄,這些記錄還沒有經(jīng)過檢查。如果不存在,說明沒有鎖阻止請求決定的操作,流程返回。然而如果存在記錄,首先必須對這些記錄進行檢查,接著在方框380恢復(fù)下一個記錄,判別框382判定該記錄類型是否是鎖定的,即是否是用戶鎖定、選擇鎖定或光標(biāo)鎖定。如果不是鎖定記錄,說明該記錄對操作是不相干的,流程返回到框378。如果該記錄是鎖定類型,就在判別框383判定該用戶是否是該記錄的擁有者。如果是,該記錄對操作也是不相干的,流程返回到框378。最后,判別框384將光標(biāo)位置與該鎖定記錄的邊界點組成的多邊形邊界進行比較。如果光標(biāo)位于此多邊形內(nèi),說明鎖阻止使用該光標(biāo)去修改文件或建立一選擇點,并返回一鎖定標(biāo)記。如果光標(biāo)位于此鎖定區(qū)域的邊界以外,則該鎖對于該光標(biāo)位置是無效的,流程返回到方框378,以待對下一記錄進行判別。只有在清理檢查過所有記錄之后,才返回一個無鎖定標(biāo)志。
圖19A和19B所示為共享數(shù)據(jù)對象內(nèi)的光標(biāo)鎖定區(qū)域隨著光標(biāo)的移動而更新的流程圖。圖19A是文本目錄對象內(nèi)鎖的更新流程圖,流程從判別框386開始,框386判別當(dāng)前的光標(biāo)鎖定記錄是否是空的,如是,則在框388和390產(chǎn)生一個新的光標(biāo)鎖定記錄,并在該光標(biāo)記錄中設(shè)置一個指針指向這個新的光標(biāo)鎖定記錄。一旦存在一個光標(biāo)鎖定記錄,就開始框392的操作,在判別框392判定該光標(biāo)鎖定的鎖定方式是否是一個字符位置。如是,框394就修改該光標(biāo)鎖定記錄區(qū)的起始位置與終點位置,使這等于光標(biāo)的當(dāng)前位置。如果鎖定方式不是一個字符,即框392的NO分支流向判別框396。在框396判別鎖定方式是否是一個字,如是,則該流程采用Yes分支從框396進行到框398處???98用來檢索目標(biāo)對象的當(dāng)前行,再在框400確定這個現(xiàn)行字的起始、終止偏移位置,然后在框402設(shè)置該光標(biāo)鎖定記錄區(qū)域的起始、終止位置,使其等于現(xiàn)行字的起始、終止位置。如果鎖定方式不是一個字,就認為鎖定方式是一行,沿著框396的NO分支前進,流程流回框404,在目標(biāo)對象中檢索當(dāng)前行。下一步,并在框406設(shè)置該光標(biāo)鎖定記錄區(qū)域的起點和終點,使它們分別等于當(dāng)前行的起點和終點。
在以任何方式設(shè)置了該鎖定記錄的起始位置和終止位置后,在判別框408判別新的光標(biāo)鎖定記錄是否與其它已有鎖定記錄發(fā)生沖突(詳見圖24A分析)。如果確實發(fā)生了沖突,就在該文件數(shù)據(jù)結(jié)構(gòu)中刪除這個新鎖定記錄(框410),并將光標(biāo)記錄指針置為“空”(框412),然后在框413更新顯示內(nèi)容,流程返回編輯程序的適當(dāng)?shù)胤?。如果在?08處沒有檢測到?jīng)_突,流程就直接返回編輯程序的適當(dāng)?shù)胤健?br>
在圖形編輯環(huán)境中的光標(biāo)鎖定更新就要稍復(fù)雜一些。參見圖19B,在框414執(zhí)行初始化操作,產(chǎn)生一個新的暫時光標(biāo)鎖定記錄。在這里,光標(biāo)記錄中的指針字段此時不再改變。接著在框416判別鎖定方式是否是一個方形的。如果是,框424就產(chǎn)生以當(dāng)前光標(biāo)位置為中心的方形的四個絕對座標(biāo)。如果不是方形,在判別框418判別鎖定方式是否是一個園形的,如果是,框426就產(chǎn)生一個近似為園的多邊形的一系列座標(biāo)值,即產(chǎn)生與當(dāng)前光標(biāo)位置等距離的一組點,假設(shè)選擇了N個點,就可以達到機器所采用的分辨率。這時對用戶來說,看起來就是個園。
如果框418的判定結(jié)果不是園,就在框420判別鎖定形狀是否是用戶定義的多邊形方式。如果是,框432就把用戶定義的相對于當(dāng)前光標(biāo)位置的一系列點座標(biāo)轉(zhuǎn)換成該鎖定記錄區(qū)的絕對點座標(biāo)。
圖形編輯環(huán)境還允許光標(biāo)鎖定方式/形狀是光標(biāo)位置處當(dāng)前對象的外形。如果框420的判別結(jié)果不是用戶定義的多邊形,則流程流向框422,判別框422判定是否使用對象方式,如果是,判別框430用來查詢顯示映象以決定光標(biāo)是否在對象上。如果是,方框432查詢該對象的絕對座標(biāo)的邊界點,用這些點來定義多邊形光標(biāo)鎖定記錄。
從框424、426、428和432,即從任意光標(biāo)鎖定的邊界定義起,都流向判別框434,在判別框434把新光標(biāo)鎖定記錄與其它已有鎖定記錄進行比較,看是否可能發(fā)生沖突(詳見圖24B說明),如果沒有沖突,就在框444刪除舊鎖定記錄,并在框446重新調(diào)整光標(biāo)記錄中的指針字段,使之更新并指向新的鎖定記錄。然后在框447更新顯示內(nèi)容,流程返回到編輯程序的適當(dāng)?shù)胤?,但是,如果在判斷?34處有沖突,或者在光標(biāo)下面沒有對象(框430),或者鎖定方式的判斷結(jié)果不是對象方式(框422,說明光標(biāo)鎖定的自動關(guān)聯(lián)是禁止的),則流程均走到436。在框436刪除新建立的鎖定記錄,接著在框438判別當(dāng)前光標(biāo)位置是否在它自己原來的舊鎖定記錄上,如果是,舊的鎖定記錄被允許有效,盡管在顯示效果上該光標(biāo)不再處于其鎖定區(qū)域的中心位置。如果該光標(biāo)是在其舊的光標(biāo)鎖定區(qū)域之外,則在框440,通過刪除光標(biāo)記錄中光標(biāo)鎖定指針指向的鎖定記錄,舊的光標(biāo)鎖定也隨之被刪除,光標(biāo)鎖定指針也被復(fù)位指向“空”,最后流程走到框447更新顯示。
用戶在建立一個聯(lián)想類型區(qū)域或用戶選擇鎖定類型的區(qū)域時,建立一個用戶選擇區(qū)是最初始的步驟。圖20A所示為在一個文本文件上建立一個選擇區(qū)的流程圖。執(zhí)行選擇流程的起點是在編輯流程中先選取一個選擇點,判別框448判斷是否已經(jīng)輸入了選擇域的第二個選擇點,該點是用于繼續(xù)該流程的。如果程序沒有收到第二個選擇點,流程就返回到編輯程序的適當(dāng)?shù)胤?。假如建立的選擇區(qū)域允許是一個字符時,用戶可以選取同第一個一樣的第二個選擇點。
由方框450表示接收到第二個選擇點,就在框452產(chǎn)生一個以第一、二選擇點分別為起點和終點的關(guān)聯(lián)/鎖定記錄區(qū)域。記錄類型被設(shè)置成“選擇鎖定”。接著在框454判別這個新的選擇區(qū)域是否與其它已有鎖定區(qū)域沖突(詳見圖24A說明)。如果確實有沖突,就在框456警告用戶選擇失敗并刪除新記錄,然后流程返回到編輯程序中適當(dāng)?shù)牡胤健H绻诳?54處沒有沖突,就在框458將光標(biāo)記錄中的選擇域設(shè)置成“ON”狀態(tài),接著框460把該記錄加到選擇鎖定區(qū)域上并更新顯示內(nèi)容(框462),然后流程返回到編輯程序的適當(dāng)?shù)胤健?br>
圖20B所示是在一個圖形文件中建立選擇域的流程圖。流程的起點是在編輯期間選取一個選擇點,在框464產(chǎn)生一個類型是選擇鎖定的關(guān)聯(lián)/鎖定記錄。其形狀確定為一個多邊形,并且以第一個選擇點作為多邊形的起始頂點。接著判斷框466用來決定對于選擇區(qū)域用戶是否已經(jīng)選擇了方(或矩形)形。如是,框468就提示用戶輸入第二個選擇點以定義該方形區(qū)域。如果允許建立選擇單個象素選擇域,用戶選取同第一個一樣的第二個選擇點。
如果選擇的不是方形區(qū)域,框470就判別用戶是否選擇了園形區(qū)域。如果是,框472就提示用戶輸入一個半徑值,依此半徑,就可以產(chǎn)生N個選擇點組成一個近似園的多邊形。
如果框470的判別結(jié)果不是園形,則繼續(xù)在判別框474判別用戶是否選擇了一般的多邊形作選擇域。若是,由框476提示用戶提供一系列的頂點。代之以選擇附加點辦法,用戶可以向機器發(fā)出已經(jīng)提供所有點的信號,可用判別框478來加以檢測。在判定用戶完成之后,多邊形關(guān)閉,流程由判別框478的YES分支退出循環(huán)。只要用戶沒有信號完成或直到用戶已選擇允許的最多的點數(shù)為止,流程仍從框478的NO分支到框480中,將最近選擇加到關(guān)聯(lián)/鎖定記錄中的頂點表中,并返回到框476。
判別框474的NO分支表示用戶沒有選擇多邊形作為選擇區(qū)域形狀,于是流程在框482提示用戶出錯信息并刪除在框464(框482)產(chǎn)生的記錄之后,返回到編輯程序的適當(dāng)?shù)胤健?br>
在用戶完成了選擇區(qū)域的邊界點之后,流程到判別框484。判別框484判斷新的記錄區(qū)域是否與其它鎖定區(qū)域沖突(見圖24B)。如有沖突,框492就警告用戶,然后框494刪除在框464建立的記錄,流程返回到編輯程序的適當(dāng)?shù)胤健?br>
如果在判別框484沒有沖突,流程就執(zhí)行框486的NO分支操作,設(shè)置光標(biāo)記錄中的該選擇域為“ON”狀態(tài),接著框488在光標(biāo)記錄的關(guān)聯(lián)記錄到表上增加一指針字段。然后,若是操作是在用戶中進行的話,就在框490更新顯示屏幕,給出選擇區(qū)域顯示,最后流程返回到編輯程序的適當(dāng)?shù)胤健?br>
置鎖定操作為轉(zhuǎn)換選擇域到用戶選擇鎖定域二者的實施例相同。圖21描述了用戶從選擇域確定鎖定域的流程。按照設(shè)置鎖定的請求,流程在框496判別光標(biāo)記錄上的選擇域?qū)τ谠撚脩羰欠駷椤癘N”。如果不是,請求就無效,程序不作任何操作而返回到編輯程序的適當(dāng)?shù)胤?。如果選擇域是“ON”,并且如果在用戶方面框498執(zhí)行更新顯示屏幕操作,從光標(biāo)記錄中所指向的域中刪除選擇標(biāo)識???00,如果上述在光標(biāo)記錄中保存的有差別,則從選擇鎖定域中把該記錄轉(zhuǎn)移到用戶鎖定列表上。接著在框502把鎖定記錄中類型字段恢復(fù)置成“用戶鎖定”。接著框504把光標(biāo)記錄中選擇域和鎖定記錄恢復(fù)置成“OFF”。最后,框506執(zhí)行完更新用戶屏幕、顯示新的鎖定域的操作后,流程返回到編輯程序的適當(dāng)?shù)胤健?br>
圖22所示為用戶將一個選擇域轉(zhuǎn)換為一個關(guān)聯(lián)域的操作流程,根據(jù)建立一個關(guān)聯(lián)域的請求,流程在框508判別光標(biāo)記錄上的選擇域?qū)υ撚脩羰欠駷椤癘N”。如果不是,請求就無效,程序不作任何操作而返回到編輯程序的適當(dāng)?shù)胤?。如果選擇域是“ON”,且流程處于用戶中框510執(zhí)行更新顯示屏操作,刪除光標(biāo)記錄上的指向區(qū)域的選擇標(biāo)識???12,如果上述在光標(biāo)記錄上保存的有判別,就從選擇鎖定域把該記錄轉(zhuǎn)移到用戶關(guān)聯(lián)列表上,如在光標(biāo)記錄中維護這樣的判別的話。接著在框514把該鎖定記錄類型恢復(fù)置成“用戶關(guān)聯(lián)”,再在框516把光標(biāo)記錄中的選擇域和關(guān)聯(lián)/鎖定記錄恢復(fù)置成“OFF”。最后,在框518執(zhí)行完更新用戶屏幕、顯示新的關(guān)聯(lián)區(qū)域的操作后,流程返回到編輯程序的適當(dāng)?shù)胤健?br>
下面要說明的是用戶釋放鎖定和關(guān)聯(lián)域。圖23所示是用戶對區(qū)域的解鎖或去掉關(guān)聯(lián)的工作流程的有關(guān)說明。該流程在框520先初始化,設(shè)置標(biāo)志以指示釋放鎖定或釋放關(guān)聯(lián)的操作是否正在進行。然后對光標(biāo)鎖定和光標(biāo)關(guān)聯(lián)列表的每一項記錄進行檢查,一直檢查到該記錄位于該光標(biāo)位置為止。在框522判別用戶選擇鎖定列表或關(guān)聯(lián)列表中是否存在記錄可供排除。如果存在記錄,就在框524按照列表次序?qū)λ鼈冞M行恢復(fù),再在框526判別光標(biāo)是否在記錄域之內(nèi)。如果不在,則返回框522。如果在光標(biāo)位置上有記錄就在框527判定當(dāng)前用戶是否是該記錄的主人。如果不是,流程就返回到框522,如果當(dāng)前用戶是記錄的主人,指向該記錄的指針就被從光標(biāo)記錄的有關(guān)列表上刪除,然后在框530記錄本身被釋放。然后在框532(再強調(diào)一下,只是在用戶終端中)操作后,流程返回到編輯程序的適當(dāng)?shù)胤健?br>
圖24A和24B所示,是關(guān)于該項發(fā)明第一、二項提供的檢查鎖定區(qū)沖突的操作流程圖,在用戶選擇一個區(qū)域或移動一個光標(biāo)鎖定區(qū)域時,常常會發(fā)生鎖定區(qū)域的沖突問題。圖24A給出了文本編輯環(huán)境下的比較。該流程從詢問是否有用戶選擇鎖定記錄或光標(biāo)鎖定記錄的存在而開始。如沒有存在或保留的話,則查詢完成,且再看框534的NO分支,去請求指示無沖突存在的請求程序。如果存在這樣的記錄,就在框536對下一個這樣記錄進行檢索。然后在判別框538判定當(dāng)前光標(biāo)用戶是否是該記錄的擁有者。如果是,該記錄就被忽略通過,流程返回到從框538的YES分支過來的框534。如果不是,就在框540判定該記錄是否是兩種鎖定類型即用戶選擇鎖定和光標(biāo)鎖定之一種。如果不是鎖定記錄,該記錄也被忽略通過,流程返回到框534。如果是鎖定記錄,就再判定所請求的選擇或鎖定區(qū)域是否與該鎖定記錄有公共部分,即利用框542判斷所請求的鎖定(選擇)區(qū)域的輸入起始點是否正好是或者在所恢復(fù)的鎖定區(qū)域起始點之后,如果是,再在判別框546判斷所請求的區(qū)域輸入起始點是否與所恢復(fù)到的鎖定區(qū)域的終點重復(fù)或在其之前,如果是這種情況,說明存在沖突,并經(jīng)詢問子程序返回沖突存在的信息。如果不是這種情況,即不存在沖突,流程再返回到框534,繼續(xù)對下項記錄進行檢查。對于判別框542的NO分支,流程走向框544,在框544判定所請求的區(qū)域輸入終點是否與所檢索到的鎖定區(qū)域的起始點重復(fù)或在其之后,如果不是,說明不存在沖突,流程返回到框534。如果是,說明存在沖突流程帶著存在沖突的標(biāo)志返回到請求流程。
在圖24B給出了圖形編輯環(huán)境下的鎖定沖突判別流程。該流程從詢問是否有用戶選擇鎖定記錄或光標(biāo)鎖定記錄的存在而開始,為無記錄存在或保持,則查詢完成,且從框548的NO分支返回到指示無沖突存在的請求例行程序。如果存在這樣的記錄,就在框550對記錄進行檢索,然后在判別框552判定當(dāng)前光標(biāo)用戶是否是該記錄的擁有者。如果是,該記錄就被忽略通過,流程從框552的YES分支返回到框548。如果不是,就在框544判定該記錄是否是上述兩種鎖定類型之一。如果不是鎖定記錄,該記錄也被忽略通過,流程返回到框548。如果是鎖定記錄,就再判別該記錄區(qū)域是否與所請求的輸入?yún)^(qū)域有重疊部分,即利用框556判斷所請求的區(qū)域的多邊形是否與在框550檢索到的鎖定區(qū)域多邊形有重疊。如有重疊,說明存在沖突,流程帶著有沖突標(biāo)志返回到請求的流程。如果沒有重疊,說明沒有沖突,流程返回到框548,繼續(xù)對下一項記錄進行檢查。
以上通過各專門的實施例描述了該項發(fā)明,但對該項發(fā)明的論述并沒有結(jié)束。對已經(jīng)給出的本發(fā)明的各項實施例的改進以及可進行比較的實施方案,,根據(jù)本發(fā)明的描述對熟悉掌握了該發(fā)明同行將是很明顯的。因此,可以預(yù)期以下附加的權(quán)利要求、條款將把任何該權(quán)利要求范圍內(nèi)的改進方案或?qū)嵤├ㄟM來。
權(quán)利要求
1.在一個以系統(tǒng)為基礎(chǔ)的多媒體合作計算機中,包含有一個連接多個終端進行通信的網(wǎng)絡(luò)。其中每個終端都配有一臺輸出顯示設(shè)備和一臺用戶輸入設(shè)備,在系統(tǒng)中還存在一個共享數(shù)據(jù)對象,可以被系統(tǒng)中的多個用戶同時訪問。因而該項發(fā)明提供了一種方法,可以保護共享數(shù)據(jù)對象中的暫時的浮動數(shù)據(jù)塊不受一個以上用戶同時操作時的影響。該方法的特征如下對要訪問共享數(shù)據(jù)對象的用戶進行響應(yīng),為該用戶指派一個在輸出顯示設(shè)備上顯示的可用光標(biāo);對一個光標(biāo)位置的改變給出響應(yīng),當(dāng)一個光標(biāo)關(guān)聯(lián)的鎖定區(qū)域確定一個位置,該鎖定區(qū)域與光標(biāo)在共享數(shù)據(jù)對象內(nèi)的位置有關(guān);如果該鎖定區(qū)域的位置沒有包含以前建立的鎖定區(qū)域的一部分在內(nèi),則允許建立與該光標(biāo)有關(guān)的光標(biāo)關(guān)聯(lián)鎖定區(qū)域,且對建立的鎖定區(qū)域作出響應(yīng),釋放任何與該光標(biāo)有關(guān)的以前的光標(biāo)關(guān)聯(lián)鎖定區(qū)域。
2.在權(quán)利要求1中,為保護共享數(shù)據(jù)對象中暫時的浮動數(shù)據(jù)塊不受一個以上用戶同時操作的影響而提供的方法,其特征還包括下列內(nèi)容判別用戶為建立一個鎖定區(qū)域而選擇的條件是否存在。如果這種條件存在,再判別這些條件是否可被滿足。如果這些條件被滿足,則建立該光標(biāo)的關(guān)聯(lián)鎖定區(qū)域。
3.在前述專利要求2中提供了保護共享數(shù)據(jù)對象中暫時的流動數(shù)據(jù)塊不受一個以上用戶同時操作的影響的方法,其中顯示手段包括圖形和圖象,其特點在于響應(yīng)用戶選擇,為光標(biāo)的關(guān)聯(lián)的鎖定區(qū)域建立一個對象方式,其中建立一個光標(biāo)關(guān)聯(lián)鎖定區(qū)域的條件就是在光標(biāo)下面存在一個對象。
4.在前述專利要求1中,為保護共享數(shù)據(jù)對象中暫時的浮動數(shù)據(jù)塊不受一個以上用戶同時操作的影響而提供的方法,其特征還在于當(dāng)光標(biāo)移動到以前建立的光標(biāo)關(guān)聯(lián)鎖定區(qū)域之外時,釋放該鎖定區(qū)域。
5.在前述權(quán)利要求1中,為保護共享數(shù)據(jù)對象中暫時的浮動數(shù)據(jù)塊不受一個以上用戶同時操作的影響而提供的方法,其特征還在于判別一個當(dāng)前用戶是否要更改共享數(shù)據(jù)對象中的內(nèi)容;如果該當(dāng)前用戶要進行更改操作,則再判別所要更改的內(nèi)容是否在一個鎖定區(qū)域內(nèi);且如果所要修改的內(nèi)容是在一個鎖定區(qū)域內(nèi),則判別修改操作是否領(lǐng)先另一個不同于與該鎖定區(qū)域有關(guān)的光標(biāo)而進行。
6.在前述權(quán)利要求1中,為保護共享數(shù)據(jù)對象中暫時的浮動數(shù)據(jù)塊不受一個以上用戶同時操作的影響而提供的方法,其特征還在于其顯示手段是文本。
7.在前述權(quán)利要求1中,為保護共享數(shù)據(jù)對象中暫時的浮動數(shù)據(jù)塊不受一個以上用戶同時操作的影響而提供的方法,其特征還在于允許每個用戶有多種方式控制光標(biāo)關(guān)聯(lián)的鎖定區(qū)域的形狀和大小。
8.多媒體合作計算機系統(tǒng),為了保護共享數(shù)據(jù)對象中的暫時的浮動數(shù)據(jù)塊不受一個以上用戶同時操作的影響,該合作計算機系統(tǒng)具有如下特點多臺終端,每臺終端配有一臺輸出顯示設(shè)備和一臺用戶輸入設(shè)備;一臺計算機;連接上述多臺終端和計算機進行通信的網(wǎng)絡(luò);可由多個用戶同時訪問的共享數(shù)據(jù)對象;對要訪問共享數(shù)據(jù)對象的用戶進行響應(yīng),為該用戶分配一個在輸出顯示設(shè)備上可用的光標(biāo)的裝置;為響應(yīng)用戶選擇,在共享數(shù)據(jù)對象內(nèi)移動分配給該用戶的光標(biāo)的裝置;為響應(yīng)光標(biāo)位置的改變,給一個與共享數(shù)據(jù)對象內(nèi)的光標(biāo)有關(guān)的新的鎖定區(qū)域決定一個位置的裝置;決定一個與以前建立的鎖定區(qū)域沒有重疊部分的位置,建立新的鎖定區(qū)域的裝置;響應(yīng)新建立的鎖定區(qū)域,釋放一某光標(biāo)有關(guān)聯(lián)的以前的鎖定區(qū)域的裝置。
9.在前述權(quán)利要求8中的合作計算機系統(tǒng)為保護共享數(shù)據(jù)對象中的暫時浮動數(shù)據(jù)塊,用于建立新的鎖定區(qū)域裝置,其特征進一步包括為建立光標(biāo)的鎖定方式而指定光標(biāo)關(guān)聯(lián)鎖定區(qū)域的范圍的裝置;響應(yīng)用戶作出的特定鎖定方式的選擇,用以指定生成關(guān)聯(lián)鎖定區(qū)域光標(biāo)的條件的裝置。
10.前述權(quán)利要求9中的合作計算機系統(tǒng)為保護共享數(shù)據(jù)對象中的暫時浮動數(shù)據(jù)塊,其特征還包括一個光標(biāo)鎖定方式可以是一個對象方式,使得光標(biāo)關(guān)聯(lián)鎖定區(qū)域可擴展成共享數(shù)據(jù)對象內(nèi)的一個定義的子對象,其條件是該光標(biāo)位于該子對象上。
11.前述權(quán)利要求8中的合作計算機系統(tǒng)為保護共享數(shù)據(jù)對象中的暫時浮動數(shù)據(jù)塊,其特征還包括顯示手段包括文本編輯程序。
12.前述權(quán)利要求9中描述的合作計算機系統(tǒng),為保護共享數(shù)據(jù)對象中的暫時浮動數(shù)據(jù)塊,其特征還包括為使用戶命令串行化的裝置。
13.前面專利范圍12中描述的合作計算機系統(tǒng),為保護共享數(shù)據(jù)對象中暫時的浮動數(shù)據(jù)塊,該系統(tǒng)特點還在于如下為檢查當(dāng)前用戶送來的命令是否要修改共享數(shù)據(jù)對象的裝置;響應(yīng)該命令,用于判別所要修改是否發(fā)生在與光標(biāo)有關(guān)聯(lián)的鎖定區(qū)域,該光標(biāo)不是分配給現(xiàn)行用戶的光標(biāo)的裝置;響應(yīng)肯定判別結(jié)果,用于阻止修改操作的進行的裝置;且響應(yīng)否定判別結(jié)果,用于進入修改操作的裝置。
14.在前述權(quán)利要求1中,為保護共享數(shù)據(jù)對象中暫時的浮動數(shù)據(jù)塊不受一個以上用戶同時操作的影響而提供的方法,其特征在于允許的步驟包括;指派的光標(biāo)包括視頻屬性,以便于區(qū)分光標(biāo)和它的擁有者。
15.前述權(quán)利要求8中所描述的合作計算機系統(tǒng),為保護共享數(shù)據(jù)對象中暫時的浮動數(shù)據(jù)塊,在建立新的鎖定區(qū)域的裝置,其特征還包括指派的光標(biāo)包括視頻屬性,以便于區(qū)分光標(biāo)和它的擁有者。
全文摘要
本合作計算機系統(tǒng)包括一個連有多個終端進行通信的網(wǎng)絡(luò),每個終端包括一臺輸出顯示設(shè)備和一臺用戶輸入設(shè)備。共享數(shù)據(jù)對象可以同時被系統(tǒng)中的多個用戶訪問;為了響應(yīng)用戶對共享數(shù)據(jù)對象的訪問要求,系統(tǒng)指派給該用戶一個可用光標(biāo),并在所有當(dāng)前用戶的視頻顯示設(shè)備上顯示。為了響應(yīng)用戶對其光標(biāo)的移動,需要在共享數(shù)據(jù)對象內(nèi)通過確定位置坐標(biāo)而建立一個鎖定區(qū)域。
文檔編號G06F13/00GK1074300SQ9211371
公開日1993年7月14日 申請日期1992年12月9日 優(yōu)先權(quán)日1991年12月31日
發(fā)明者卡里·L·貝茨, 杰弗里·M·瑞安 申請人:國際商業(yè)機器公司