專(zhuān)利名稱(chēng):維護(hù)計(jì)算機(jī)系統(tǒng)數(shù)據(jù)的目標(biāo)管理設(shè)施的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)管理。
造成計(jì)算機(jī)使用困難的一個(gè)問(wèn)題是效率差的文件管理系統(tǒng)。例如,在一個(gè)目錄中,不能存在同一名字的兩個(gè)文件。
還有,在來(lái)自不同計(jì)算機(jī)的應(yīng)用(Application)的數(shù)據(jù)文件之間的不兼容性。典型的情況是每一個(gè)計(jì)算機(jī)的應(yīng)用都獨(dú)立于其它計(jì)算機(jī)的應(yīng)用而運(yùn)行。一個(gè)計(jì)算機(jī)應(yīng)用的數(shù)據(jù)可以有效地合并入另一個(gè)計(jì)算機(jī)應(yīng)用的數(shù)據(jù)的情況是很少的。如果數(shù)據(jù)被合并,那末,要進(jìn)行修改如果不是不可能的,也是困難的。此外,一旦把數(shù)據(jù)從第一個(gè)應(yīng)用傳輸?shù)降诙€(gè)應(yīng)用,通常不可能把數(shù)據(jù)回送到被修改的第一個(gè)應(yīng)用。
有時(shí),所謂的集成軟件被開(kāi)發(fā),因此,在某些應(yīng)用之間,存在某些數(shù)據(jù)兼容性問(wèn)題。然而,這些集成軟件包不提供不是集成軟件包一部分的計(jì)算機(jī)應(yīng)用之間的數(shù)據(jù)兼容性。
按照本發(fā)明的優(yōu)先選用的實(shí)施方案,提出了一臺(tái)具有文件管理系統(tǒng)的計(jì)算機(jī)。該文件管理系統(tǒng)包括多個(gè)應(yīng)用程序,多個(gè)數(shù)據(jù)文件,多個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu)和多個(gè)目標(biāo)(object)數(shù)據(jù)結(jié)構(gòu)。每一類(lèi)別數(shù)據(jù)結(jié)構(gòu)包括對(duì)在多個(gè)應(yīng)用程序里的一個(gè)應(yīng)用程序的引用。每一目標(biāo)數(shù)據(jù)結(jié)構(gòu)包括對(duì)來(lái)自多個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu)的一個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu)的引用,以及對(duì)來(lái)自多個(gè)數(shù)據(jù)文件的至少一個(gè)數(shù)據(jù)文件的引用。
目標(biāo)數(shù)據(jù)結(jié)構(gòu)的使用,在計(jì)算機(jī)用戶(hù)和數(shù)據(jù)文件之間增加了一層。這就允許計(jì)算機(jī)引用一個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu),并通過(guò)使用用戶(hù)不可訪(fǎng)問(wèn)的標(biāo)記(tag),訪(fǎng)問(wèn)有關(guān)的一些文件。用戶(hù)引用一個(gè)以屏幕上的目標(biāo)的物理地址為基礎(chǔ)的目標(biāo)。用戶(hù)也可以給目標(biāo)數(shù)據(jù)結(jié)構(gòu)以命字,這完全與該標(biāo)記的值沒(méi)有聯(lián)系。例如,允許用戶(hù)給同一目錄中的二個(gè)目標(biāo)以同一名字。
另外,文件管理系統(tǒng)包括多個(gè)鏈接(LINK)數(shù)據(jù)結(jié)構(gòu),每一鏈接數(shù)據(jù)結(jié)構(gòu)包括對(duì)多個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)中的第一個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)的引用,它用作鏈接的父目標(biāo)并且包括對(duì)多個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)中的第二個(gè)目標(biāo)數(shù)據(jù)的引用,它用作鏈接的子目標(biāo)。對(duì)每一個(gè)鏈接數(shù)據(jù)結(jié)構(gòu)來(lái)說(shuō),子目標(biāo)和父目標(biāo)不必相同。
本發(fā)明的一個(gè)優(yōu)點(diǎn)是通過(guò)把一些地址(Location)鏈接到實(shí)際數(shù)據(jù)目標(biāo),它允許用戶(hù)以任意數(shù)量地址歸檔和使用他們的數(shù)據(jù)。例如,單個(gè)的展開(kāi)頁(yè)能夠被鏈接到幾個(gè)不同的文件夾,在字處理文檔中作為一個(gè)表格使用,并作為柱狀圖表的數(shù)據(jù)源使用。例如,從這些鏈接地址的任何一個(gè)開(kāi)始,用戶(hù)能夠很容易地到達(dá)展開(kāi)頁(yè),進(jìn)行較完整的檢查或?qū)λ薷?。?duì)展開(kāi)頁(yè)進(jìn)行任何改變,能自動(dòng)把反應(yīng)在展開(kāi)頁(yè)被鏈接的所有的地址中。
圖1是本發(fā)明的優(yōu)選實(shí)施方案的一臺(tái)計(jì)算機(jī)的方框圖。
圖2和2A是根據(jù)本發(fā)明的優(yōu)選實(shí)施方案,說(shuō)明目標(biāo)、應(yīng)用和數(shù)據(jù)文件之間關(guān)系的方框圖。
圖3表示本發(fā)明的優(yōu)選實(shí)施方案的多個(gè)鏈接的目標(biāo)。
圖4表示本發(fā)明的優(yōu)選的實(shí)施方案的一系列作為文件夾的目標(biāo),它們作為包含數(shù)據(jù)的目標(biāo)的父親。
圖5說(shuō)明本發(fā)明的優(yōu)選的實(shí)施方案的由鏈接不同的目標(biāo)引起的屏幕顯示。
圖6表示,為了建立圖5所示的屏幕顯示而鏈接的目標(biāo)。
附圖7表示本發(fā)明的優(yōu)選的實(shí)施方案,可以如何把三個(gè)目標(biāo)鏈接在一起。
圖8和圖9說(shuō)明本發(fā)明的優(yōu)選的實(shí)施方案,可以如何拷貝目標(biāo)。
圖10和11說(shuō)明,本發(fā)明的優(yōu)選的實(shí)施方案的公共目標(biāo)的拷貝。
圖12到圖71表示根據(jù)本發(fā)明的優(yōu)選的實(shí)施方案,在用戶(hù)操縱目標(biāo)中出現(xiàn)在會(huì)話(huà)屏幕上的信息。還給出一些方框圖,表示根據(jù)本發(fā)明的優(yōu)選實(shí)施方案,出現(xiàn)于用戶(hù)面前的目標(biāo)是如何鏈接的。
圖72是本發(fā)明的優(yōu)選實(shí)施方案的目標(biāo)管理設(shè)施(OMFObjectManagementFacility)方框圖。
圖73表示HPOMF.CAT的組織的方框圖,它是包含在OMF中的并在圖72中示出的一個(gè)系統(tǒng)文件。
圖74表示本發(fā)明的優(yōu)選實(shí)施方案的一個(gè)全局父親(globalparent)和多個(gè)全局目標(biāo)(globalobject)之間的關(guān)系。
圖75是一個(gè)方框圖,它表示在圖72中表示的OMF里面的系統(tǒng)文件,怎樣訪(fǎng)問(wèn)圖1所示的存儲(chǔ)器中的數(shù)據(jù)文件和應(yīng)用。
圖76是在圖75所示內(nèi)存儲(chǔ)器的組織的方框圖。
圖77和圖78表示本發(fā)明的優(yōu)選的實(shí)施方案的目標(biāo)和鏈接。
圖79是包含在OMF中的圖72所示的一個(gè)系統(tǒng)文件HPOMF.XRF的組織的方框圖。
圖80表示本發(fā)明的優(yōu)選實(shí)施方案的可視說(shuō)明記錄(viewspecifica-ationrecord)。
圖81表示本發(fā)明的優(yōu)選實(shí)施方案的快照的使用。
圖82表示本發(fā)明的優(yōu)選的實(shí)施方案中,沒(méi)有快照時(shí)的可見(jiàn)說(shuō)明的數(shù)據(jù)路徑。
圖83表示本發(fā)明的優(yōu)選實(shí)施方案中,具有快照時(shí)的可見(jiàn)說(shuō)明的數(shù)據(jù)路徑。
圖1表示一臺(tái)計(jì)算機(jī)18,它具有監(jiān)視器14,鍵盤(pán)19和鼠標(biāo)20。計(jì)算機(jī)主存儲(chǔ)器17的一個(gè)部分被箭頭9表示應(yīng)在計(jì)算機(jī)18里面。在計(jì)算機(jī)的主存儲(chǔ)器17里有目標(biāo)管理設(shè)施(OMF)100、應(yīng)用101、應(yīng)用102、應(yīng)用103、應(yīng)用104、應(yīng)用105和應(yīng)用106。
應(yīng)用101到106中的每一個(gè)都存儲(chǔ)著使用目標(biāo)的數(shù)據(jù)。例如,在圖2中,應(yīng)用101被表示成已存貯有使用了目標(biāo)202、目標(biāo)203、目標(biāo)204和目標(biāo)205的數(shù)據(jù)。同樣地,應(yīng)用106被表示成具有在目標(biāo)207、目標(biāo)208、目標(biāo)209和目標(biāo)210中存儲(chǔ)的數(shù)據(jù)。OMF100存儲(chǔ)有指示哪些目標(biāo)和哪些應(yīng)用相配合的信息。與一個(gè)應(yīng)用相關(guān)的目標(biāo)被認(rèn)為是相同類(lèi)型或相同類(lèi)別的目標(biāo)。例如,目標(biāo)202、203、204和205是相同類(lèi)別的,因?yàn)樗鼈冎械拿恳粋€(gè)與應(yīng)用101相關(guān)。同樣地,目標(biāo)207、208、209和210是相同類(lèi)別的,因?yàn)樗鼈冎械拿恳粋€(gè)與應(yīng)用106相關(guān)。所有相同類(lèi)別的目標(biāo)使用相同的應(yīng)用。當(dāng)一個(gè)應(yīng)用正由計(jì)算機(jī)18運(yùn)行時(shí),OMF100通知該應(yīng)用為了取得數(shù)據(jù),該應(yīng)用應(yīng)該訪(fǎng)問(wèn)哪一個(gè)目標(biāo)。然后,那個(gè)目標(biāo)被認(rèn)為是活動(dòng)的。當(dāng)與目標(biāo)相關(guān)聯(lián)的應(yīng)用不被計(jì)算機(jī)18運(yùn)行時(shí),或者當(dāng)與目標(biāo)相關(guān)聯(lián)的應(yīng)用正在運(yùn)行但是不運(yùn)行那個(gè)目標(biāo)的數(shù)據(jù)時(shí),那末,那個(gè)目標(biāo)是不活動(dòng)的。
利用消息,活動(dòng)的目標(biāo)可以相互通訊。例如,如果計(jì)算機(jī)18正在運(yùn)行應(yīng)用101的二個(gè)實(shí)例其一是用目標(biāo)202的數(shù)據(jù),而另一個(gè)實(shí)例是用目標(biāo)203的數(shù)據(jù),目標(biāo)202和目標(biāo)203都是活動(dòng)的。因此,目標(biāo)202可以把消息211發(fā)送到目標(biāo)203。同樣,如果計(jì)算機(jī)18正在以目標(biāo)202的數(shù)據(jù)運(yùn)行應(yīng)用101,并且正在以目標(biāo)207的數(shù)據(jù)運(yùn)行應(yīng)用106,那末,目標(biāo)202和目標(biāo)207都是活動(dòng)的。因此,目標(biāo)202可以發(fā)送消息212到目標(biāo)207。
消息,例如消息211和212,可以被格式化,并被所有類(lèi)型的目標(biāo)發(fā)送和接收。這就允許在所有的活動(dòng)目標(biāo)之間自由通訊。這也允許新的目標(biāo)類(lèi)型被定義并且加到系統(tǒng)中去,而不需要為了使用新的類(lèi)型而修改已有的目標(biāo)類(lèi)型。
每一個(gè)目標(biāo)都與一組數(shù)據(jù)文件相關(guān)聯(lián)。例如,目標(biāo)210被表示成已經(jīng)與數(shù)據(jù)文件221、數(shù)據(jù)文件222和數(shù)據(jù)文件223相關(guān)聯(lián)。在數(shù)據(jù)文件221、222和223中的數(shù)據(jù)具有能夠被應(yīng)用106解釋的格式。
每一個(gè)目標(biāo)都與一個(gè)特性表相關(guān)聯(lián)。每一個(gè)特性有一個(gè)名字和一個(gè)可通過(guò)指定名字進(jìn)行訪(fǎng)問(wèn)的值。另外,每類(lèi)目標(biāo)都與一個(gè)特性表相關(guān)聯(lián),該特性表中的特性是該類(lèi)別中所有目標(biāo)的共同特性。例如,在圖2A中,表示了目標(biāo)205和應(yīng)用101。目標(biāo)205與特性231、特性232和特性233相關(guān)聯(lián)。應(yīng)用101與特性131、特性132和特性133相關(guān)聯(lián)。
特性表能夠包含任何數(shù)量的特性。每一個(gè)特性值可以從0到32762個(gè)字節(jié)長(zhǎng)。特性被用于存儲(chǔ)有關(guān)目標(biāo)和類(lèi)別的說(shuō)明性信息,例如名字、注解等等。
目標(biāo)可以引用其它的目標(biāo)。這些引用被叫做鏈接(link)。鏈接是有方向的一個(gè)目標(biāo)被叫做父親,另一個(gè)目標(biāo)被叫做兒子。每一個(gè)鏈接具有一個(gè)引用名,它是一個(gè)由父目標(biāo)分配的數(shù),用來(lái)標(biāo)識(shí)它的每一個(gè)兒子。一個(gè)目標(biāo)的所有的兒子,它的兒子的兒子,如此等等,都被稱(chēng)做為那個(gè)目標(biāo)的子孫。同樣地,目標(biāo)的父親,它的父親的父親,如此等等,都被稱(chēng)作為那個(gè)目標(biāo)的祖先。在本發(fā)明的優(yōu)選實(shí)施方案中,可以由用戶(hù)操縱的一個(gè)目標(biāo)能夠具有零個(gè)或多個(gè)兒子以及一個(gè)或多個(gè)父親。一個(gè)目標(biāo)不允許成為它自己的子孫。
在圖3中,有目標(biāo)301、目標(biāo)302、目標(biāo)303、目標(biāo)304、目標(biāo)305、目標(biāo)306、目標(biāo)307、目標(biāo)308和目標(biāo)309。目標(biāo)301-309具有帶有引用名字的鏈接,這些引用名字都是數(shù)字,它們被表示在每一個(gè)鏈接旁的圓括號(hào)中。目標(biāo)301具有一個(gè)到目標(biāo)302的鏈接310,其引用名為“1”。目標(biāo)301具有一個(gè)到目標(biāo)303的鏈接311,其引用名字為“2”。目標(biāo)302有一個(gè)到目標(biāo)304的鏈接312,其引用名字為“7”。目標(biāo)302有一個(gè)到目標(biāo)305的鏈接313,其引用名字為“8”。目標(biāo)303具有一個(gè)到目標(biāo)306的鏈接314,其引用名為“1”。目標(biāo)303還有一個(gè)到目標(biāo)307的鏈接315,其引用名為“4”。目標(biāo)304具有一個(gè)到目標(biāo)308的鏈接316,其引用名字為“1”。目標(biāo)305具有一個(gè)到目標(biāo)308的鏈接317,其引用名為“7”。目標(biāo)306具有一個(gè)到目標(biāo)309的鏈接318,其引用名為“8”。目標(biāo)307具有一個(gè)到目標(biāo)306的鏈接319,其引用名為“9”。目標(biāo)307還有一個(gè)到目標(biāo)309的鏈接320,其引用名為“13”。目標(biāo)308具有一個(gè)到目標(biāo)309的鏈接321,其引用名為“1”。目標(biāo)308還有一個(gè)到目標(biāo)303的鏈接322,其引用名為“3”。
目標(biāo)301是302和303的父親。目標(biāo)303是目標(biāo)301和目標(biāo)308的兒子。目標(biāo)302-309中的每一個(gè)都是301的子孫。目標(biāo)303的子孫是目標(biāo)306、307、和309。目標(biāo)309有祖先目標(biāo)301-308。目標(biāo)303有祖先301、302、304、305和308。如此等等。
活動(dòng)目標(biāo)能夠動(dòng)態(tài)地制造和刪除與其它目標(biāo)的鏈接。當(dāng)與一個(gè)目標(biāo)的鏈接被刪除時(shí),OMF100檢查該目標(biāo)是否有任何其它的父親。如果沒(méi)有,那末,OMF100通過(guò)刪除該目標(biāo)的數(shù)據(jù)文件并回收與該目標(biāo)相關(guān)的其它存儲(chǔ)空間,使該目標(biāo)無(wú)效。
目標(biāo)鏈接可以被用于各種目的。例如,文件夾可以呈目標(biāo)的形式。用作為文件夾的目標(biāo)的兒子可以是包含有與各種應(yīng)用一起使用的數(shù)據(jù)的目標(biāo),或者該目標(biāo)可以是其它的文件夾。圖4表示作為文件夾使用的目標(biāo)的例子。目標(biāo)401(也稱(chēng)為文件夾401)、目標(biāo)402(也可稱(chēng)為文件夾402)、目標(biāo)403(也可稱(chēng)為文件夾403)和目標(biāo)404(也可稱(chēng)為文件夾404)都被用作文件夾。文件夾401包括用于包含數(shù)據(jù)的目標(biāo)405、用于包含數(shù)據(jù)的目標(biāo)406、用于包含數(shù)據(jù)的目標(biāo)407、和文件夾402。文件夾402包括用于包含數(shù)據(jù)的目標(biāo)408、文件夾403和文件夾404。文件夾403包括用于包含數(shù)據(jù)的目標(biāo)409和用于包含數(shù)據(jù)的目標(biāo)410。文件夾404包括用于包含數(shù)據(jù)的目標(biāo)411、用于包含數(shù)據(jù)的目標(biāo)412和用于包含數(shù)據(jù)的目標(biāo)413。
鏈接的更高級(jí)的用途是構(gòu)成復(fù)合目標(biāo)。例如在圖5中,文擋510包括數(shù)行正文511、數(shù)行正文512、圖形513、圖形514和展開(kāi)頁(yè)515。如在圖6中所示,正文和格式化的數(shù)據(jù)被存儲(chǔ)在目標(biāo)611、圖形513的圖形數(shù)據(jù)被存儲(chǔ)在目標(biāo)612、圖形514的圖形數(shù)據(jù)被存儲(chǔ)在目標(biāo)613,以及展開(kāi)頁(yè)數(shù)據(jù)515被存儲(chǔ)在目標(biāo)614。用于建立復(fù)合目標(biāo)的鏈接始終有一些與該鏈接相關(guān)的數(shù)據(jù)傳輸種類(lèi),因此,也被叫做數(shù)據(jù)鏈接。圖6中表示數(shù)據(jù)鏈接615、數(shù)據(jù)鏈接616和數(shù)據(jù)鏈接617。在文檔510中,來(lái)自目標(biāo)612、目標(biāo)613和目標(biāo)614的數(shù)據(jù)僅僅被顯示,因此,數(shù)據(jù)鏈接614、數(shù)據(jù)鏈接615和數(shù)據(jù)鏈接616是可見(jiàn)數(shù)據(jù)鏈接。在可見(jiàn)數(shù)據(jù)鏈接中,父親將發(fā)送請(qǐng)求到它的兒子,在父親的窗口中顯示數(shù)據(jù)。
在圖7中,包含有第一展開(kāi)頁(yè)數(shù)據(jù)的目標(biāo)701,通過(guò)數(shù)據(jù)鏈接704被鏈接到目標(biāo)702,目標(biāo)702包含有第二個(gè)展開(kāi)頁(yè)的數(shù)據(jù),目標(biāo)701通過(guò)數(shù)據(jù)鏈接705也被鏈接到目標(biāo)703,目標(biāo)703包含有第三個(gè)展開(kāi)頁(yè)的數(shù)據(jù)。第一個(gè)展開(kāi)頁(yè)使用第二個(gè)展開(kāi)頁(yè)和第三個(gè)展開(kāi)頁(yè)的數(shù)據(jù)。因?yàn)榈谝粋€(gè)展開(kāi)頁(yè)不僅僅顯示第二個(gè)和第三個(gè)展開(kāi)頁(yè)的數(shù)據(jù),所以,數(shù)據(jù)鏈接704和數(shù)據(jù)鏈接705被叫做傳遞數(shù)據(jù)的數(shù)據(jù)鏈接(data-passingdatalink)。
當(dāng)目標(biāo)被拷貝或被郵寄時(shí),OMF100就做“簿記”工作。當(dāng)一個(gè)目標(biāo)被拷貝時(shí),OMF100就制造與該目標(biāo)相關(guān)聯(lián)的數(shù)據(jù)文件的拷貝。如果被拷貝的目標(biāo)有兒子,那末OMF100還制造該目標(biāo)的子孫的拷貝,并且建立新目標(biāo)之間的鏈接,把與原來(lái)結(jié)構(gòu)相同的結(jié)構(gòu)給予新的復(fù)合目標(biāo)。
例如,圖8表示圖3中的目標(biāo)308,以及目標(biāo)308的子孫。當(dāng)OMF制造目標(biāo)308的拷貝時(shí),OMF就拷貝目標(biāo)308的每一個(gè)子孫,并且,這些鏈接如圖8中所示。圖9表示目標(biāo)308的拷貝。目標(biāo)308a是目標(biāo)308的拷貝。目標(biāo)303a是目標(biāo)303的拷貝。目標(biāo)306a是目標(biāo)306的拷貝。目標(biāo)307a是目標(biāo)307的拷貝。目標(biāo)309a是目標(biāo)309的拷貝。鏈接321a是鏈接321的拷貝。鏈接322a是鏈接322的拷貝。鏈接314a是鏈接314的拷貝。鏈接315a是鏈接315的拷貝。鏈接318a是鏈接318的拷貝。鏈接319a是鏈接319的拷貝。鏈接320a是鏈接320的拷貝。
在該優(yōu)選的實(shí)施方案中,當(dāng)父親被拷貝時(shí),默認(rèn)導(dǎo)致父親的兒子被拷貝。然而,當(dāng)兒子被指明為“公共的”時(shí),它就不被拷貝。相反地,父親的拷貝包括對(duì)兒子的一個(gè)鏈接。例如,在圖10中,父目標(biāo)161將被拷貝。通過(guò)鏈接163,父目標(biāo)161被鏈接到子目標(biāo)162。子目標(biāo)162是公共的目標(biāo)。如圖11所示,父目標(biāo)161的拷貝,導(dǎo)致新的目標(biāo)161a通過(guò)新的鏈接163a被鏈接到目標(biāo)162。目標(biāo)161a是目標(biāo)161的拷貝。鏈接163a是鏈接163的拷貝。
在圖12到圖71中,說(shuō)明目標(biāo)怎樣在監(jiān)視器14上顯示給用戶(hù)。在圖12中表示的是“NewWaveOffice”的臺(tái)式計(jì)算機(jī),它包括標(biāo)有下列名稱(chēng)的圖象“FileDrawer”(文件抽屜)、“WasteBasket”(廢物筐)、“Diagnostic”(診斷)、“Printers”(打印機(jī))、“Star”(五角星)、和“MyFolder”(我的文件夾)。用戶(hù)(沒(méi)有被指明)已使用鍵盤(pán)19或鼠標(biāo)20來(lái)操縱光標(biāo)781,以選擇“MyFolder”。
圖13說(shuō)明顯示在監(jiān)視器14上的目標(biāo)是怎樣鏈接的。NewWareOffice(被表示為目標(biāo)700)是鏈接711鏈接的“FileDrawer”(被稱(chēng)做為目標(biāo)701)、鏈接712鏈接的“WasteBasket”(被稱(chēng)作為目標(biāo)702)、鏈接713鏈接的“Diagnostic”(被稱(chēng)做目標(biāo)703)、鏈接714鏈接的“Printers”(被稱(chēng)做目標(biāo)704)、鏈接715鏈接的“MyFolder”(被稱(chēng)做目標(biāo)705)和鏈接716鏈接的“Star”(被稱(chēng)作目標(biāo)706)的父親。
在圖14中,用戶(hù)使用光標(biāo)781已經(jīng)在下拉菜單782中選擇了“CreateaNew…”。作為這一選擇的結(jié)果,對(duì)話(huà)框779出現(xiàn)了,如圖15所示。使用光標(biāo)781,用戶(hù)已經(jīng)使圖象“Layout”增輝,并且使用鍵盤(pán)19已經(jīng)鍵入了名字“PasteUp”,作為將要被建立的新的目標(biāo)的名字。光標(biāo)781現(xiàn)在指示到一個(gè)標(biāo)有“OK”的區(qū)域。一旦這一區(qū)域被選擇,標(biāo)明為“PasteUp”的新的目標(biāo)就被建立,如在圖16中所示的那樣。
在圖17中,“PasteUp”稱(chēng)作為目標(biāo)707,它通過(guò)鏈接717被鏈接為NewWareOffice的兒子。
基本的記錄夾(Clipbood)操作是Cut(剪下)、Copy(拷貝)和Paste(粘接)。用戶(hù)必須選擇好要被移動(dòng)和拷貝的數(shù)據(jù),然后,使用Cut命令或Copy命令。Cut把選擇的數(shù)據(jù)移動(dòng)到指定的記錄夾(同時(shí)把它從它的原來(lái)位置刪除掉)。Copy在指定記錄夾處形成所選擇的數(shù)據(jù)的拷貝。然后,用戶(hù)必須選擇他將要把該數(shù)據(jù)拷貝到或移動(dòng)到的地址,并且給出Paste(粘接)命令。這一條命令把記錄夾的這些內(nèi)容拷貝到選擇的地址處。
在圖18中,用戶(hù)已經(jīng)選擇了“PasteUp”。這是通過(guò)使用逆影象顯示“PasteUp”的圖象來(lái)表示這一選擇的。使用光標(biāo)781,用戶(hù)從下拉菜單783中選擇“Copy”。在圖18A中,Clipboard目標(biāo)720被表示成通過(guò)鏈接721鏈接的目標(biāo)708的父親。目標(biāo)708是目標(biāo)707(“PasteUp”)的拷貝。
如在圖19中所示,用戶(hù)下一次從下拉菜單783選擇“Paste”。結(jié)果(如圖20所示)增加了目標(biāo)708由光標(biāo)781指示出),它是原來(lái)的“PasteUp”目標(biāo)707的拷貝。
在圖21中,新的目標(biāo)被表示成目標(biāo)708,它通過(guò)鏈接718被鏈接為NewWaveOffice的兒子。
在圖22中,使用光標(biāo)781,通過(guò)對(duì)“MyFlder”圖象的二次“卡塔”聲,已經(jīng)打開(kāi)了“MyFolder”。結(jié)果,新的窗口755表示“MyFolder”。
在圖23中,使用光標(biāo)781,“PasteUp”(目標(biāo)708)被表示成正在移到窗口785。在圖24中,該過(guò)程結(jié)束,并且“PasetUp”(目標(biāo)708)現(xiàn)在是在窗口“Myfolder”中。在圖25中,“PasteUp”,稱(chēng)作為目標(biāo)708,它現(xiàn)在是通過(guò)鏈接728鏈接的“MyFolder”的兒子。
通過(guò)使用Share(共享)命令,用戶(hù)可以建立多個(gè)鏈接。這條命令是記錄夾隱喻(clipboardmetaphor)的擴(kuò)充,這在今天的軟件包中,在系統(tǒng)內(nèi)移動(dòng)和拷貝數(shù)據(jù)方面是通用的。該記錄夾是系統(tǒng)用來(lái)容納在傳送中的數(shù)據(jù)的專(zhuān)用緩沖區(qū)。
在一種情況下,Share命令的操作類(lèi)似于前述的Cut或Copy命令。即使用Share、Cut或者Copy,用戶(hù)首先選擇一些數(shù)據(jù),然后給出Share命令,這就導(dǎo)致這些數(shù)據(jù)被存放在記錄夾中。然而,在Share命令的情況下,放在記錄夾中的不是實(shí)際的數(shù)據(jù),也不是實(shí)際數(shù)據(jù)的拷貝。而是一個(gè)對(duì)所選擇的數(shù)據(jù)的鏈接。當(dāng)這一鏈接被粘接上時(shí),在原數(shù)據(jù)和該粘接地址之間就取得了永久連接。通過(guò)使用OMF100,這一鏈接由被涉及的各應(yīng)用所使用,使得對(duì)原來(lái)數(shù)據(jù)的訪(fǎng)問(wèn)容易(在它的全部應(yīng)用中),并在原數(shù)據(jù)被修改時(shí),它也自動(dòng)修改。
在圖26中,NewWaveOffice窗口已經(jīng)被激活?!癙asteUp”(目標(biāo)707)已經(jīng)被選擇,被表示為逆影象的“PasteUp”(目標(biāo)707),以便看起來(lái)明顯。使用光標(biāo)781,選擇菜單783中的“Share”。在圖26A中,Clipboard目標(biāo)720被表示為是通過(guò)鏈接722鏈接的“PasteUp”目標(biāo)707的父親。
在圖27中,窗口785已經(jīng)被激活。從菜單787,選擇“Paste”。其結(jié)果(如圖28中所示)是圖象707a出現(xiàn)在窗口785中,它表示“PasteUp”(目標(biāo)707)被窗口785以及NewWaveOffice窗口所共享。在圖28A中,作為該粘接的結(jié)果,“PasteUp”現(xiàn)被表示為既是由鏈接722鏈接的Clipboard720的兒子,又是由鏈接727鏈接的“MyFolder”705的兒子。在圖29中,表示的是用戶(hù)可見(jiàn)目標(biāo)的相互之間的連接,“PasteUp”(目標(biāo)707)被表示為是通過(guò)鏈接727鏈接的“MyFolder”705的兒子。因?yàn)椤癙asteUp”(目標(biāo)707)是共享的,所以沒(méi)有被拷貝,“PasteUp”(目標(biāo)707)仍然是通過(guò)鏈接717鏈接的NewWaveOffice的兒子。
數(shù)據(jù)鏈接的一個(gè)關(guān)鍵特征是自動(dòng)的數(shù)據(jù)傳輸。當(dāng)一個(gè)子目標(biāo)打開(kāi),并且用戶(hù)改變它“被共享”的一部分時(shí),它就調(diào)用OMF100。OMF100就檢查是否有任何的該目標(biāo)的父親“照管”這個(gè)特殊的改變。如果它們照管而且如果它們也是打開(kāi)的,那末,OMF100就發(fā)送給父親一條消息,通知它們新的數(shù)據(jù)是可用的。然后,父親能夠把消息發(fā)送給兒子,以產(chǎn)生或顯示該數(shù)據(jù)。這一特征允許用戶(hù)建立帶有復(fù)雜的數(shù)據(jù)相關(guān)性質(zhì)的復(fù)合目標(biāo),然后,對(duì)任何一個(gè)分部進(jìn)行的改變將被自動(dòng)地反映在其它部分中。例如,改變?cè)谡归_(kāi)頁(yè)中的一個(gè)數(shù)就能夠?qū)е轮匦庐?huà)圖,并且被修改成以文檔為依據(jù)的圖形。而且,因?yàn)橐粋€(gè)目標(biāo)能夠有許多父親,所以,單個(gè)的目標(biāo)能夠被用作任何數(shù)量的其它目標(biāo)的“鍋爐擋板(boilerPlate)”。在鍋爐擋板中的改變都將被反應(yīng)到所有與它鏈接的目標(biāo)中去。自動(dòng)數(shù)據(jù)傳輸將在后面討論。
在圖30中,“MyFolder”的窗口785已經(jīng)關(guān)閉。在圖31中,光標(biāo)781被用于從下拉菜單782中選擇“CreateaNew…”。作為這一選擇的結(jié)果,對(duì)話(huà)框779出現(xiàn),如圖32所示。使用光標(biāo)781,對(duì)圖象HPText增輝,使用鍵盤(pán)19鍵入名字“SampleText”,它作為將要建立的新目標(biāo)的名字?,F(xiàn)在光標(biāo)781指向標(biāo)有“OK”的區(qū)域。一旦這一區(qū)域被選擇,名字為“SampleText”的新目標(biāo)就被建立,如在圖33所示。
在圖34中,“SampleText”(目標(biāo)709)被表示成是通過(guò)鏈接719鏈接的NewWaveOffice的兒子。在圖34中,因?yàn)椤癕yfolder”已經(jīng)關(guān)閉,所以“PasteUp”(目標(biāo)708)、鏈接728和鏈接727沒(méi)有示出。然而,這些東西仍然存在,但是對(duì)用戶(hù)來(lái)說(shuō),當(dāng)時(shí)是看不見(jiàn)的。
在圖35中,光標(biāo)781放在圖象“SampleText”上,并且“卡嗒、卡嗒”二次按動(dòng)在鼠標(biāo)20上的按鈕,導(dǎo)致“SampleText”打開(kāi)。在圖36中,示出為“Sampletext”打開(kāi)一個(gè)窗口789。
在圖37中,“PasteUp”(目標(biāo)707)的窗口791已經(jīng)打開(kāi),這是通過(guò)在“PasteUp”圖象上二次按動(dòng)鼠標(biāo)按鈕實(shí)現(xiàn)的。在圖38中,使用光標(biāo)781,用鼠標(biāo)20控制,“SampleText”的正文的一部分790已經(jīng)被選擇。以逆圖像表達(dá)“NweWaveOfficeenvironment”的那一部分就是790部分。
在圖39中,使用光標(biāo)781,在下拉菜單792中選擇“Share”選擇項(xiàng)。在圖40中,使用光標(biāo)781,選擇在窗口791中的一個(gè)區(qū)域793。在圖41中,使用光標(biāo)781,從下拉菜單794中選擇“Paste”選擇項(xiàng)。在圖42中,“SampleText”被鏈接到“PasteUp”(目標(biāo)707),并且可顯示的正文790被顯示在“PasteUp”窗口791中。在圖43中,“Sampletext”(目標(biāo)709)被表示成是通過(guò)鏈接729鏈接的“PasteUp”(目標(biāo)707)的兒子。在圖42中,可顯示的正文790被顯示成灰色,這是因?yàn)椤癝tar”窗口789是打開(kāi)的。在圖44中,“Star”窗口被關(guān)閉,所以可顯示的正文790被清楚地顯示出來(lái)。
在圖45中,用光標(biāo)781選擇。窗口791的一個(gè)區(qū)域795。圖46表示用光標(biāo)781移動(dòng)圖象“Star”進(jìn)入窗口791的區(qū)域795。
在圖47中,來(lái)自“Star”(目標(biāo)706)的數(shù)據(jù)現(xiàn)在被顯示在窗口791的區(qū)域795中。如在圖48中所看到的“Star”(目標(biāo)706)現(xiàn)在是通過(guò)鏈接726鏈接的“PasteUp”(目標(biāo)707)的兒子。
在圖49中,用戶(hù)已經(jīng)把光標(biāo)781放在窗口791的區(qū)域795上,并且二次按動(dòng)鼠標(biāo)20的按鈕。其結(jié)果是在窗口796中打開(kāi)和顯示“Star”(目標(biāo)706)。圖50表示使用光標(biāo)781來(lái)選擇菜單窗口797中的“Ellipse”,它使得在“Star”(目標(biāo)706)里的數(shù)據(jù)從五角星(Star)改變成橢圓(ellipse)。如在圖51中所示,其結(jié)果是既改變了在窗口796中顯示的數(shù)據(jù),也改變了在窗口791的區(qū)域795中顯示的數(shù)據(jù)。
在圖52中,用光標(biāo)781定義窗口791中的一個(gè)區(qū)域797。在圖53中,光標(biāo)781被用于在下拉菜單798中選擇“CreateaNew…”選擇項(xiàng)。這一選擇的結(jié)果是對(duì)話(huà)框799出現(xiàn)在圖54中。對(duì)話(huà)框799包含可用的兩種類(lèi)別目標(biāo)的圖象,它們能夠在窗口791的區(qū)域797中顯示數(shù)據(jù)。使用光標(biāo)781,對(duì)圖象“HPShape”增輝。使用鍵19,名字“NewShape”被打入,它作為要建立的新目標(biāo)的名字,光標(biāo)781現(xiàn)在指向標(biāo)有“OK”的區(qū)域。一旦這個(gè)區(qū)域被選擇,以“NewShape”命名的新目標(biāo)就被建立?!癗ewShape”的數(shù)據(jù)顯示于窗口791的區(qū)域797中,如圖55所示。在圖56中,“NewShape”(目標(biāo)750)表示成是通過(guò)鏈接760鏈接的“PasteUp”(目標(biāo)707)的兒子。
在圖57中,把光標(biāo)781置于窗口791的區(qū)域797上,并且把鼠標(biāo)20的按鈕按動(dòng)二次,打開(kāi)了“NewShape”的窗口800。在圖58中,用光標(biāo)781從下拉菜單801中選擇“Triangle”選擇項(xiàng)。其結(jié)果,一個(gè)三角形現(xiàn)在既顯示在窗口800中,也顯示在窗口791的區(qū)域797中,如圖59所示。
在圖60中,窗口800已經(jīng)被關(guān)閉。在圖61中,把光標(biāo)781放在窗口796的區(qū)域797上,并且按動(dòng)鼠標(biāo)20的按鈕,就選擇了“NewShape”。在圖62中,用光標(biāo)781從下拉菜單794中選擇“Share”選擇項(xiàng)。在圖63中,用光標(biāo)781選擇窗口791的區(qū)域802。在圖64中,用光標(biāo)781從下拉菜單794選擇“Paste”選擇項(xiàng)。其結(jié)果是具有被顯示在窗口791的區(qū)域797和區(qū)域802的“NewShape”數(shù)據(jù)的“NewShape”的共享,如圖65所示。在圖66中,表示“NewShape”(目標(biāo)750)有一個(gè)附加的鏈接770,它來(lái)自它的父親“PasteUp”(目標(biāo)707)。
在圖67中,用光標(biāo)781選擇區(qū)域797。然后,光標(biāo)781用于從下拉菜單794選擇“Cut”選擇項(xiàng)。其結(jié)果是區(qū)域797已經(jīng)從窗口791移走,如圖68所示。在圖69中,光標(biāo)781用于從下拉菜單781中選擇“Paste”選擇項(xiàng)。其結(jié)果是光標(biāo)781指向到“NewShape”的圖象,如圖70所示。在圖71中,“NewShape”(目標(biāo)750)表示成是通過(guò)鏈接780的NewWaveOffice(目標(biāo)700)的兒子。
在圖72中,OMF100被表示成包含七個(gè)系統(tǒng)文件系統(tǒng)文件601、系統(tǒng)文件602、系統(tǒng)文件603、系統(tǒng)文件604、系統(tǒng)文件605、系統(tǒng)文件606和系統(tǒng)文件607。OMF接口599用作OMF與在計(jì)算機(jī)18上運(yùn)行的其他程序的接口。系統(tǒng)文件601-607用作提供各種不同信息的數(shù)據(jù)庫(kù)。它們提供有關(guān)目標(biāo)特性的信息,例如每一目標(biāo)的類(lèi)別、每一目標(biāo)的名字。系統(tǒng)文件601-607提供有關(guān)目標(biāo)的類(lèi)別信息,例如,與每類(lèi)目標(biāo)相關(guān)的應(yīng)用,表示特定類(lèi)別目標(biāo)的圖象,以及消息能夠被特定類(lèi)別目標(biāo)處理的消息表(如圖2所示)。系統(tǒng)文件601-607還包含在父和子目標(biāo)之間有關(guān)鏈接的信息,其中包括父親和來(lái)自每個(gè)目標(biāo)的父親的每一個(gè)鏈接的引用名字的列表;兒子和對(duì)每一個(gè)目標(biāo)的兒子的每一個(gè)鏈接的引用名字的列表;以及用來(lái)管理在數(shù)據(jù)鏈接間進(jìn)行數(shù)據(jù)交換的附加信息。另外,系統(tǒng)文件601-607包含通用的信息,例如,在操作系統(tǒng)中,對(duì)于已安裝的每一個(gè)類(lèi)別,安裝了什么文件,以及當(dāng)OMF100被重新啟動(dòng)時(shí),哪些目標(biāo)已經(jīng)請(qǐng)求自動(dòng)重新啟動(dòng)。
在本發(fā)明的優(yōu)選實(shí)施方案中,系統(tǒng)文件601被稱(chēng)做為HPOMF.CAT,系統(tǒng)文件602被稱(chēng)做為HPOMF.CLS,系統(tǒng)文件603被稱(chēng)做HPOMF.XRF,系統(tǒng)文件604被稱(chēng)作為HPOMF.PRP,系統(tǒng)文件605被稱(chēng)做HPOMF.INS,系統(tǒng)文件606被稱(chēng)做為HPOMF.SDF,系統(tǒng)文件607被稱(chēng)做為HPOMFICO.NWE。現(xiàn)在,我們對(duì)每一系統(tǒng)文件進(jìn)行描述系統(tǒng)文件601,即HPOMF.CAT,也叫做SYSCAT。HPOMF.CAT是系統(tǒng)中全部現(xiàn)存目標(biāo)的一個(gè)目錄。在圖73中,HPOMF.CAT被表示成是面向記錄的。HPOMF.CAT有多個(gè)文件記錄。在圖73里,只表示了文件記錄0到文件記錄8,盡管HPOMF.CAT可以包含比在圖73所示更多的文件記錄。文件記錄0是一個(gè)頭部,它包括各種特征,(Signature)用于管理空文件記錄的列表。特征是一些已知的值,如果存在,它指示該文件是沒(méi)有毛病的。文件記錄1到文件記錄8和附加的文件記錄(沒(méi)有表示出來(lái)),或者定義現(xiàn)存目標(biāo),或者是空的。在本優(yōu)選的實(shí)施方案中,當(dāng)需要更多的文件記錄時(shí),HPOMF.CAT能夠動(dòng)態(tài)地增長(zhǎng),但是,不能夠收縮。
文件記錄1定義了一個(gè)被叫做全局父親的特定目標(biāo)。全局父親具有不同于任何其它目標(biāo)的形式,可以認(rèn)為是一個(gè)“偽”目標(biāo)。圖74表示的該全局父親是通過(guò)鏈接260鏈接的全局目標(biāo)250的父親、通過(guò)鏈接261鏈接的全局目標(biāo)251的父親、通過(guò)鏈接262鏈接的全局目標(biāo)252的父親、通過(guò)鏈接263鏈接的全局目標(biāo)253的父親。通過(guò)鏈接264鏈接的全局目標(biāo)254的父親和通過(guò)鏈接265鏈接的全局目標(biāo)255的父親,如在圖所示。全局目標(biāo)250-255也在HPOMF.CAT內(nèi)。250-255中的每一個(gè)全局目標(biāo)可以是HPOMF.CAT內(nèi)的一個(gè)或多個(gè)目標(biāo)的父親。在HPOMFCAT內(nèi)的不是全局目標(biāo)的每個(gè)目標(biāo)都是全局目標(biāo)的子孫。雖然圖74只示出六個(gè)全局目標(biāo),但是,操作在系統(tǒng)中的全局目標(biāo)的數(shù)量是系統(tǒng)配置的問(wèn)題。利用全局父親鏈接全局目標(biāo)的鏈接的引用名字,系統(tǒng)中的任何一個(gè)目標(biāo)能夠引用該全局目標(biāo)。
如在圖73中所看到的,HPOMF.CAT中的文件記錄是連續(xù)編號(hào)的。這些編號(hào)稱(chēng)做標(biāo)記(tag),它們標(biāo)識(shí)每一個(gè)目標(biāo)。
在本發(fā)明的該優(yōu)選實(shí)施方案中,每一個(gè)記錄是128個(gè)字節(jié)長(zhǎng)。文件記錄0中的各個(gè)字段列于下面的表1中表11FirstFreeEntry包含在HPOMF.CAT中的第一個(gè)空記錄的記錄號(hào);
如果沒(méi)有空記錄,則為“0”。
Fileid包含空結(jié)束串(nullterminatedstring)“HPOMFCAT”。它用作特征(Signature)。
Version包含文件格式版本號(hào),它也用作特征。
1MaxRecordNumber包含來(lái)自“HPOMF.CAT”里面的從未分配的最高記錄號(hào)(這個(gè)最高記錄可以或不可以是空的)。
下面,表2包含了HPOMF.CAT中的文件記錄的字段,并且只用于與文件記錄0不同的文件記錄表21FirstFreeEntry如果這一記錄定義一個(gè)目標(biāo),那末就是“-1”,否則,這一記錄是空的,并且這一字段是下一個(gè)空記錄的記錄號(hào),或者,如果沒(méi)有另外的空記錄,則為“0”。如果該記錄是空的,那末記錄中的其它字段就沒(méi)有意義。
TypeInClass指定這一目標(biāo)的類(lèi)別。它是指明目標(biāo)屬于那一類(lèi)別的HPOMF.CLS中的記錄號(hào)(請(qǐng)參考前面有關(guān)類(lèi)別的討論)。
SysCatFlags如果在這個(gè)字節(jié)中,由數(shù)20(十六進(jìn)制)屏蔽的位被設(shè)置,那末,此字段指定該目標(biāo)是否是全局的。
在優(yōu)選的實(shí)施方案中,所有其它位的位置必須包含“0”并且不被使用。
Properties指明特性(Property)的數(shù)目、特性名字的長(zhǎng)度以及在目標(biāo)的特性的HPOMF.PRP中的地址。請(qǐng)參考下面對(duì)HPOMF.PRR的描述,它是對(duì)這一字段的結(jié)構(gòu)進(jìn)行的進(jìn)一步定義。
fastprops某些目標(biāo)特性,例如名字,因?yàn)橐?jīng)常地訪(fǎng)問(wèn)它,所以,它們就被直接存儲(chǔ)這個(gè)字段中,而不是間接地儲(chǔ)存在特性文件中。存儲(chǔ)在這一字段中的特性被叫做“快速特性”。
系統(tǒng)文件602,即HPOMF.CLS,也被叫做SYSCLASS。這個(gè)系統(tǒng)文件是在系統(tǒng)中所有安裝好的類(lèi)別的列表。它是面向記錄的。編號(hào)為0的第一個(gè)記錄是頭部,它包含各種特征(見(jiàn)前),并且被用于管理空記錄的列表。所有其它的記錄,或者定義安裝的類(lèi)別,或者是空的。在優(yōu)選的實(shí)施方案中,HPOMF.CLS能夠動(dòng)態(tài)地增長(zhǎng),但不能收縮。
在HPOMF.CLS中的每一個(gè)文件記錄是32字節(jié)長(zhǎng)。HPOMF.CLS文件記錄0(頭部)包含下面的表3所列出的字段表31FirstFreeEnntry包含HPOMF.CLS中的第一個(gè)空記錄的記錄號(hào),如果沒(méi)有空記錄,則為“0”。
FileId包含空結(jié)束串“HPOMF.CLS”。
Version包含文件格式的版本號(hào)。
1MaxRecordNumber包含來(lái)自HPOMF.CLS里的從未分配的最高記錄號(hào)(這一最高記錄可以是也可以不是空的)。
下面的表4包含了HPOMF.CLS中的文件記錄的字段,并且只用于與文件記錄0不同的文件記錄表41FirstFreeEntry如果這一記錄定義一個(gè)已安裝的類(lèi)別,那末是“-1”,否則,這一記錄是空的,并且這個(gè)字段是下一個(gè)空記錄的記錄號(hào)。或者為“0”,如果沒(méi)有更多的空記錄的話(huà)。若該記錄是空的,則該記錄中的其它字段就沒(méi)有意義。
ModuleFileName指定與這個(gè)類(lèi)別的目標(biāo)相關(guān)的應(yīng)用的名字為空結(jié)束串。
Properties指定特性個(gè)數(shù)、特性名字的長(zhǎng)度以及在目標(biāo)的特性的HPOMF.PRP中的地址。請(qǐng)參考下面對(duì)HPOMF.
PRP的描述,它是對(duì)這一字段的結(jié)構(gòu)的進(jìn)一步定義。
在圖75中,示出了HPOMF.CAT和HPOMF.CLS之間的關(guān)系。在HPOMF.CAT里面的每一目標(biāo)項(xiàng)(objectentry)中,作為目標(biāo)標(biāo)記的記錄號(hào),稱(chēng)作與該目標(biāo)相關(guān)的大容量存儲(chǔ)器170中的數(shù)據(jù)文件的標(biāo)識(shí)符650。字段“TypeInClass”稱(chēng)作在HPOMF.CLS中的類(lèi)別項(xiàng)(Classentry)的標(biāo)識(shí)符651,它標(biāo)識(shí)每一目標(biāo)的類(lèi)別。在HPOMF.CLS中的每一類(lèi)別項(xiàng)中,字段“ModuleFileName”用作與該類(lèi)別相關(guān)的大容量(海量)存儲(chǔ)器170中的應(yīng)用文件的標(biāo)識(shí)符652。
在圖76中,示出大容量存儲(chǔ)器170的部分組織。根目錄660包含指向HPNWDATA目錄661和HPNWPROG目錄668的指針。HPNWPROG目錄668是用箭頭669表示的應(yīng)用文件的存儲(chǔ)器地址。HPNWDATA包含著用目錄662、663、664、665和666表示的多個(gè)HPOMFddd目錄。在HPOMFddd目錄中存儲(chǔ)著與目標(biāo)相關(guān)的數(shù)據(jù)文件。HPOMFddd中的“ddd”代表三個(gè)數(shù)字(帶有引導(dǎo)零)的十六進(jìn)制數(shù)。每一個(gè)HPOMFddd目錄具有不同的“ddd”十六進(jìn)制數(shù)?!癲dd”編號(hào)指示出哪個(gè)HPOMFddd目錄為特定目標(biāo)存貯數(shù)據(jù)文件。特定目標(biāo)的數(shù)據(jù)文件被存貯在HPOMFddd目錄中,該目錄具有“ddd”編號(hào),“ddd”編號(hào)等于被一個(gè)整數(shù)(即54)除的目標(biāo)的標(biāo)記。在每一個(gè)HPOMFddd目錄里,按標(biāo)記數(shù)存儲(chǔ)文件,即數(shù)據(jù)文件名具有格式xxxxxxxx.lll,這里,“xxxxxxxx”是有引導(dǎo)零的八個(gè)數(shù)字的十六進(jìn)制數(shù)的標(biāo)記,而“l(fā)ll”是由應(yīng)用所選擇的引用。
系統(tǒng)文件603,即HPOMF.XRF也被稱(chēng)作為SYSXREF。這一文件是存在于系統(tǒng)中的所有鏈接的列表。它是面向記錄的,但是沒(méi)有頭部記錄。每一個(gè)記錄文件或者是空的,或者定義一個(gè)現(xiàn)存的鏈接,或者被用作為來(lái)自前面記錄的溢出記錄,用以指明附加的可視說(shuō)明信息。包含可視說(shuō)明信息的記錄被叫做可視說(shuō)明(viewspecifications)文件記錄??梢曊f(shuō)明文件記錄只能夠用規(guī)定了一個(gè)現(xiàn)存數(shù)據(jù)鏈接的前一記錄來(lái)標(biāo)識(shí);可視說(shuō)明文件記錄不能夠用可視說(shuō)明文件記錄的內(nèi)容來(lái)標(biāo)識(shí)。HPOMF.XRF的大小一次增加16K字節(jié)。HPOMF.XRF的新分配的部分用零填滿(mǎn)。HPOMF.XRF中空的或者定義了一個(gè)鏈接的文件記錄具有如下表5所列出的字段表5ParentTag包含這一鏈接的父目標(biāo)的標(biāo)記(HPOMF.CAT記錄號(hào))。
如果這個(gè)字段是0,則這個(gè)記錄沒(méi)定義鏈接,是空的。
ChildTag包含這一鏈接的子目標(biāo)的標(biāo)記。如果在這一記錄中的ParentTag是0,并且這個(gè)字段也是0,那末,在HPOMF.XRF中,在這一記錄以后,就沒(méi)有記錄定義鏈接。
RefName包含父親已經(jīng)分配給鏈接的引用名。如果ParentTag或ChildTag是零,那末這個(gè)字段沒(méi)有意義。否則,如果這一值的最前面的三位是110,則在該文件中的下一記錄就是可視說(shuō)明。
含有可視說(shuō)明文件記錄的HPOMF.XRF中的文件記錄具有下列表5A中列出的字段表5ADataId包含該兒子已經(jīng)賦給的值,用以標(biāo)識(shí)它它本身的部分,它通過(guò)該鏈接是可視的。
Snapshop包含可視說(shuō)明快照目標(biāo)的標(biāo)記(HPOMF.CAT的記錄號(hào)),或者,如果是零,那末可視說(shuō)明沒(méi)有快照。
關(guān)于快照的進(jìn)一步討論,請(qǐng)見(jiàn)下文。
Misc由下面所述的幾個(gè)位字段(bitfield)所組成VS_NEWDATASET如果兒子已經(jīng)告訴OMF新的數(shù)據(jù)是可用的,但是沒(méi)有通知其父親,則置1。十六進(jìn)制數(shù)80000000是指示哪些位被用于這些位字段的屏蔽。
VS_NEWDATAANNOUNCED如果兒子已經(jīng)告訴OMF新的數(shù)據(jù)已通知父親,但是,因?yàn)楦赣H是不活動(dòng)的,因而沒(méi)有通知到,那末就置1。十六進(jìn)制數(shù)40000000是指示哪些位被用于這一位字段的屏蔽。
VS_SNAPSHOTOLD如果兒子已經(jīng)告訴OMF,可視說(shuō)明的快照已經(jīng)過(guò)時(shí),那末就置1。十六進(jìn)制數(shù)20000000是指示哪些位被用于這一位字段的屏蔽。
VS_WANTMESSAGES如果兒子已經(jīng)告訴OMF,它要在快照過(guò)時(shí)的時(shí)候處理可視說(shuō)明消息,那末就置1。十六進(jìn)制數(shù)10000000是指示哪些位被用于這一位字段的屏蔽。
VS_TEXTDISKLOC在HPOMF.PRF中文件位置,可視說(shuō)明的32個(gè)字符的正文數(shù)據(jù)ID被放在那里。如果兒子設(shè)有定義正文數(shù)據(jù)ID,那末,它就含有零。文件位置的低位的五位總是零,所以就不存儲(chǔ)在Misc字段中。十六進(jìn)制數(shù)OFFFFFEO是指示哪些位被用于這一位字段的屏蔽。
VS_INITIALIZED如果可視說(shuō)明已經(jīng)被初始化,那末就置1。如果是干凈的,那末,在可視說(shuō)明中的所有信息都是零。十六進(jìn)制數(shù)00000010是指示哪些位被用于這一位字段的屏蔽。
VS_RESERVED為將來(lái)擴(kuò)充而保留。十六進(jìn)制數(shù)00000008是指示哪些位被用于這一位字段的屏蔽。
VS_VIEWCLASS指明兒子分配給該可視說(shuō)明的可視類(lèi)別。可視類(lèi)別定義什么樣的可視方法對(duì)父親是可用的。十六進(jìn)制數(shù)00000007是指示哪些位被用于這一位字段的屏蔽。
例如,在圖77中,目標(biāo)671是文件夾,其標(biāo)記為“6”。目標(biāo)671是鏈接674所鏈接的目標(biāo)672的父親,也是鏈接675所鏈接的目標(biāo)673的父親。目標(biāo)672的標(biāo)記是“12”。鏈接674的引用名為“1”。目標(biāo)673的標(biāo)記為“19”。鏈接675的引用名為“7”。引用名由父目標(biāo)選擇,并且,對(duì)特定的父目標(biāo)來(lái)說(shuō),必需是獨(dú)一的;然而,其它的父親可以有與此相同的引用名,假如每一個(gè)引用名對(duì)每一個(gè)父親來(lái)說(shuō)是獨(dú)一的話(huà)。
圖79表示HPOMF.XRF603的方框圖。HPOMF.XRF包含有父親和兒子之間每一鏈接的項(xiàng)。在HPOMF.XRF603中,欄目731包含每一個(gè)鏈接的父親的標(biāo)記。欄目732包含每一個(gè)鏈接的兒子的標(biāo)記。欄目733包含每一個(gè)鏈接的引用名。欄目733的頭三位處,如圖79所示,是子欄目734,它指明或者有可視說(shuō)明文件記錄存在(“110”),或者沒(méi)有可視說(shuō)明文件記錄跟隨(“000”),或者該鏈接是一個(gè)從全局父親到全局目標(biāo)的鏈接(“110”)。
如圖所示,項(xiàng)735是一個(gè)描述在圖77中所示的鏈接674的項(xiàng)。即在項(xiàng)735里的欄目731中有父親標(biāo)記“6”,在欄目732中有兒子標(biāo)記“12”,而在欄目733中有引用名“1”。因?yàn)槟繕?biāo)671是文件夾,所以沒(méi)有可視說(shuō)明,因此,在子欄目734里面的三位應(yīng)該是“000”。
同樣,項(xiàng)736是描述圖77中所示的鏈接675的項(xiàng)。即在項(xiàng)736里的欄目731中有父親標(biāo)記“6”,欄目732中有兒子標(biāo)記“19”,在欄目733中有引用名“7”。因?yàn)槟繕?biāo)671是文件夾,所以沒(méi)有可視說(shuō)明,因此,在子欄目734里面的三位將是“000”。
在圖78中,目標(biāo)676是文檔,標(biāo)記為“17”。目標(biāo)676是鏈接679鏈接的目標(biāo)677的父親,也是鏈接680鏈接的目標(biāo)678的父親。目標(biāo)677的標(biāo)記為“8”。鏈接679的引用名為“1”。目標(biāo)678的標(biāo)記為“21”。鏈接680的引用名為“3”。
在圖79中,項(xiàng)737描述圖78中所示的鏈接679。即在項(xiàng)737里的欄目731中有父親標(biāo)記“17”,欄目732中有兒子標(biāo)記“8”,欄目733中有引用名“1”。目標(biāo)676是文檔,假定有一個(gè)與鏈接679相關(guān)的可視說(shuō)明,那末,在子欄目734里的三位包含“110”,而且,項(xiàng)738是可視說(shuō)明記錄。
同樣,項(xiàng)739描述圖78中所示的鏈接680。即在項(xiàng)739里的欄目731中有父親標(biāo)記“17”,欄目732中有兒子標(biāo)記“21”,而在欄目733中有引用名“3”。假定有一個(gè)與鏈接680相關(guān)的可視說(shuō)明,那末子欄目734里的三位包含“110”,并且,項(xiàng)740是可視說(shuō)明記錄。
在圖80中,可視說(shuō)明記錄740被表示成包括包含可視說(shuō)明的數(shù)據(jù)標(biāo)識(shí)的字段741,指示是否有在可視說(shuō)明中使用的快照的字段742,以及包含關(guān)于該可視說(shuō)明的其它信息的字段743。該鏈接的子目標(biāo)使用,該數(shù)據(jù)標(biāo)識(shí)編號(hào),用以確定什么數(shù)據(jù)通過(guò)該鏈接發(fā)送。
圖37-43表示具有可視說(shuō)明的一個(gè)鏈接的建立過(guò)程。如前面已經(jīng)討論過(guò)的,在圖37中,“PasteUp”(目標(biāo)707)的窗口791已經(jīng)被打開(kāi),這是通過(guò)在“PasteUp”的圖象位置時(shí)的二次“卡嗒”打開(kāi)的。在圖38中,使用光標(biāo)781,通過(guò)鼠標(biāo)20控制,已經(jīng)選擇“SampleTest”的正文部分790逆圖象的“NewWaveOfficeevironment”部分就是部分790。
在圖39中,用光標(biāo)781在下拉菜單792中選擇“Share”選擇項(xiàng)。一旦“Share”被選擇,子目標(biāo)709(“SampleText”)建立一個(gè)數(shù)據(jù)標(biāo)識(shí)編號(hào),它標(biāo)識(shí)正文部分790到子目標(biāo)709。子目標(biāo)709也使得OMF100把一個(gè)鏈接放到記錄夾720上的子目標(biāo)709-子目標(biāo)709通過(guò)附錄B列出的命令與OMF100通訊,附帶說(shuō)到這里-。子目標(biāo)709還通知OMF100什么數(shù)據(jù)標(biāo)識(shí)編號(hào)是與在子目標(biāo)709和文件夾720之間的新的鏈接相結(jié)合的。如果有一個(gè)與該鏈接相關(guān)的快照,那末,兒子709也將通知OMF100是否有一個(gè)與該鏈接相關(guān)的快照??煺赵谙旅嬉^全面地討論。結(jié)果,OMF100將為文件夾720和子目標(biāo)709之間的鏈接在HPOMF.XRF603中制造一個(gè)項(xiàng)。該鏈接的可視說(shuō)明記錄將包括由兒子709給予OMF100的數(shù)據(jù)標(biāo)識(shí)編號(hào)。
在圖40中,用光標(biāo)781,選擇了窗口791中的區(qū)域793。在圖41中,使用光標(biāo)781從下拉菜單選擇“Paste”選擇項(xiàng)。這時(shí),父目標(biāo)707(“PasteUp”)向OMF100請(qǐng)求取得一個(gè)鏈接,使得父親的有關(guān)信息是在文件夾720上??截愇募A720和兒子709之間的可見(jiàn)說(shuō)明記錄,這是為了在父親707和兒子709之間的鏈接729。在圖43中,“SampleText”(目標(biāo)709)被表示成是鏈接709所鏈接的“PasteUp”(目標(biāo)707)的兒子。
在圖42中,可顯示的正文790顯示在“PasteUp”窗口791中。在這一過(guò)程中,父目標(biāo)707調(diào)用OMF100,請(qǐng)求把一條消息發(fā)送到由鏈接729的引用名所標(biāo)識(shí)的目標(biāo)。這一消息請(qǐng)求子目標(biāo)709把來(lái)自這一鏈接的數(shù)據(jù)顯示到由父目標(biāo)707所指明的地址。OMF100從父親707那里取得消息,加上來(lái)自鏈接729的可見(jiàn)說(shuō)明記錄的數(shù)據(jù)標(biāo)識(shí)編號(hào),并且把該消息傳遞到兒子709。兒子709把該數(shù)據(jù)顯示在指定地址處,在這里即是區(qū)域793。從父親707發(fā)送到OMF100和發(fā)送到兒子709的消息的名字是“D±SPLAY_VIEW”,有關(guān)的進(jìn)一步的說(shuō)明在附錄B中,附帶說(shuō)這一句。
在附錄B中還描述了另一條消息“PRINT_SLAVE”,當(dāng)需要在打印機(jī)上打印數(shù)據(jù),而不在終端屏蔽上顯示數(shù)據(jù)時(shí),可以使用它。
另外,父親707可以把“GET_SIZE”消息發(fā)送到子目標(biāo)709。在“GET_SIZE”消息中,父目標(biāo)707為鏈接729標(biāo)識(shí)一個(gè)引用名,并指出顯示的坐標(biāo)。OMF100從父親707那里取得GET_SIZE消息,加上數(shù)據(jù)標(biāo)識(shí)編號(hào)(它來(lái)自鏈接729的可見(jiàn)說(shuō)明記錄),并且把該消息傳送到兒子709。兒子709把它將用于顯示數(shù)據(jù)的指定區(qū)域部分的大小回送給父親707。當(dāng)兒子709不能夠換算該數(shù)據(jù)以適合由父親707指定的區(qū)域時(shí),這就允許父親707修改為顯示來(lái)自?xún)鹤?09的數(shù)據(jù)而保留的區(qū)域。
當(dāng)父目標(biāo)正在顯示來(lái)自子目標(biāo)的數(shù)據(jù)時(shí),以及子目標(biāo)改變?cè)擄@示數(shù)據(jù)時(shí),子目標(biāo)就通告OMF100,在數(shù)據(jù)目標(biāo)中已經(jīng)有過(guò)修改。例如,如前面所描述的,在圖47中,來(lái)自“star”(目標(biāo)706)的數(shù)據(jù)現(xiàn)在顯示于窗口791的區(qū)域795。并且,如圖48中所示,“star”(目標(biāo)706)是鏈接726所鏈接的“PasteUp”(目標(biāo)707)的兒子。因?yàn)閿?shù)據(jù)正在從子目標(biāo)706傳送到父目標(biāo)707,所以鏈接726是一個(gè)包括可視說(shuō)明的數(shù)據(jù)鏈接。
在圖49中,示出了改變子目標(biāo)706數(shù)據(jù)的方法。用戶(hù)把光標(biāo)781放在窗口791的區(qū)域795,并二次按動(dòng)鼠標(biāo)20的按鈕。結(jié)果是在窗口796中打開(kāi)和顯示“star”(目標(biāo)706)。用光標(biāo)781,在菜單窗口797中選擇“Ellipse”選擇項(xiàng),導(dǎo)致在“star”(目標(biāo)706)里的數(shù)據(jù),由五角星變成橢圓。如圖51所示,其結(jié)果是既改變了在窗口796中顯示的數(shù)據(jù),又改變了在窗口791的區(qū)域795中顯示的數(shù)據(jù)。
子目標(biāo)706通過(guò)調(diào)用OMF100,說(shuō)明與鏈接726相關(guān)的數(shù)據(jù)標(biāo)識(shí)編號(hào)相結(jié)合的數(shù)據(jù)被改變,來(lái)完成這一修改。OMF100檢查所有的使用該數(shù)據(jù)標(biāo)識(shí)編號(hào)的鏈接。如果任何鏈接的父目標(biāo)不活動(dòng),OMF100就把HPOMF.XRF中的那個(gè)鏈接的VS_NEWDATAANNOUNCED位設(shè)置1。當(dāng)該父目標(biāo)被激活時(shí),父目標(biāo)就能夠請(qǐng)求新的數(shù)據(jù)。
如果父目標(biāo)是活動(dòng)的,那末,OMF100交發(fā)送一條消息到父目標(biāo),說(shuō)明新的數(shù)據(jù)是可用的。OMF100將對(duì)該父目標(biāo)區(qū)分存在附加數(shù)據(jù)的鏈路的引用名。父目標(biāo)把一條消息發(fā)送給子目標(biāo),如果它要新的顯示數(shù)據(jù)的話(huà)。在現(xiàn)在的情況下,父目標(biāo)707是活動(dòng)的,并且已經(jīng)請(qǐng)求新的數(shù)據(jù)顯示于窗口791的區(qū)域795中。關(guān)于可視說(shuō)明的進(jìn)一步的描述,在附錄B、C和D中可以找到。
本發(fā)明的優(yōu)點(diǎn)是父目標(biāo)707能夠通過(guò)OMF100與子目標(biāo)706通訊,父目標(biāo)707或者子目標(biāo)706不用知道該標(biāo)識(shí)或任何其它的互相之間的詳細(xì)情況。父目標(biāo)僅使用了鏈接的引用名來(lái)區(qū)別鏈接。子目標(biāo)只使用鏈接的數(shù)據(jù)標(biāo)識(shí)編號(hào)來(lái)標(biāo)識(shí)鏈接。OMF100做所有的翻譯和標(biāo)識(shí)工作哪些鏈接以及哪些目標(biāo)被涉及到了。
系統(tǒng)文件604,即HPOMF.PRP,也被叫做SYSPROP。HPOMF.PRP包含所有的目標(biāo)和類(lèi)別特性,除了被包含在HPOMF.CAT中的快速目標(biāo)特性以外。在系統(tǒng)文件601(HPOMF.CAT)和系統(tǒng)文件602(HPOMF.CLS)中的每一個(gè)記錄都有特性字段,如前面所述。每一個(gè)特性字段包含有下面表6中說(shuō)明的字段表6DirDiskLoc包含在特性表目錄的HPOMF.PRP里面的位置(字節(jié)偏差)。
nProps包含在特性表中的特性的個(gè)數(shù)。這是在下面描述的目錄項(xiàng)數(shù)組中的項(xiàng)數(shù)。
PoolSize包含在特性表中的所有的特性的名字的組合長(zhǎng)度,包括每一個(gè)名字的空結(jié)束字節(jié)。這是在下面描述的目錄名字池(directorynamepool)的大小。
對(duì)每一個(gè)目標(biāo)和每一種類(lèi)別,在HPOMF.PRP文件中的DirDiskLoc位置處,是那個(gè)目標(biāo)或那種類(lèi)別的特性目錄。該目錄有二個(gè)主要的部分項(xiàng)數(shù)組,以及后面跟隨的各字池(namepool)。特性表中的每一個(gè)特性,項(xiàng)數(shù)組都具有一項(xiàng)。每一項(xiàng)都有在下面表7中表示的字段表7ValueLen規(guī)定相關(guān)特性的以字節(jié)計(jì)算的長(zhǎng)度,這可以是零。
ValueDiskLoe包含相關(guān)特性值在HPOMF.PRP中的位置。如果ValueLen是零,那末這也是零,并且在任何地方都沒(méi)有存儲(chǔ)值。
CacheOffset這一字段只用在運(yùn)行的時(shí)候,所以在該文件中是沒(méi)有意義的。
直接跟在項(xiàng)數(shù)組后面的是名字池。HPOMF.PRP的這個(gè)部分,包含特性表中的特性的空結(jié)束(nullterminated)的名字,并且與項(xiàng)數(shù)組的順序相同。特性可包括這樣一些內(nèi)容,如標(biāo)題、用戶(hù)注解、建立的日期和時(shí)間、建立該目標(biāo)的用戶(hù),等等。關(guān)于特性的更詳細(xì)的信息,請(qǐng)參見(jiàn)附錄D。
HPOMF.PRP按需要?jiǎng)討B(tài)地增長(zhǎng)。在HPOMF.PRP的開(kāi)始處,有128個(gè)字節(jié)的位圖(bitmap),它控制HPOMF.PRP的頭1024頁(yè)的分配。每一頁(yè)是32個(gè)字節(jié)長(zhǎng),這些頁(yè)直接跟在位圖的后面。位圖是一種字的陣列、首先使用的每個(gè)字的最有效位。因此,位圖的第一個(gè)字的位15到0分別控制該文件的頁(yè)0到15的分配。
當(dāng)頭1024頁(yè)中的存儲(chǔ)器不夠用時(shí),第二個(gè)位圖被加到文件的頁(yè)1023后面。這個(gè)位圖控制在第二個(gè)位圖后面的頁(yè)1024到2047的分配。當(dāng)需要時(shí),按相同的辦法增加附加位圖和頁(yè)。
每一目錄和特性值作為文件中的一個(gè)單獨(dú)的塊進(jìn)行存儲(chǔ),即作為連續(xù)運(yùn)行的頁(yè),這些頁(yè)全都被分配在相同的位圖中。這就導(dǎo)致這樣的限制目錄或者值都不能超過(guò)32K字節(jié)(1024×32)長(zhǎng)。
系統(tǒng)文件605,即HPOMF.INS又被稱(chēng)做為SYSINSTL。HPOMF.INS包含有當(dāng)每一類(lèi)別被安裝時(shí)拷貝到系統(tǒng)中的文件列表。這一信息被使用,以便當(dāng)該類(lèi)別被解除安裝時(shí)能夠刪除這些文件。
HPOMF.INS的最開(kāi)始處是用作為有效性/版本的標(biāo)識(shí)符的二個(gè)字的值。在本優(yōu)選的實(shí)施方案中,這二個(gè)字的值必須是0101ABCD(十六進(jìn)制),且是有效的。在表8中所示,這個(gè)數(shù)被存儲(chǔ),原因是由優(yōu)選的實(shí)施方案所使用的特定的處理機(jī)的存儲(chǔ)規(guī)程,即由英特爾公司(IntelCorporation)制造的80286微處理機(jī)的存儲(chǔ)規(guī)程。
在這二個(gè)字后面的是一系列的可變長(zhǎng)度的記錄。每個(gè)安裝的類(lèi)別都有一個(gè)記錄。每個(gè)記錄的第一個(gè)字是以字節(jié)計(jì)算的該記錄的剩余部分的長(zhǎng)度。其后跟隨安裝的類(lèi)別的空結(jié)束類(lèi)別名。然后,跟隨的是拷貝到IMF目錄的文件的文件名字。每一名字用空字節(jié)結(jié)束,并且由一個(gè)表示該文件名長(zhǎng)度的字節(jié)先導(dǎo),包括長(zhǎng)度字節(jié)和空結(jié)束符。如果文件名由專(zhuān)用字符“*”開(kāi)始,那末就假定該文件將被放在HPNWPROG目錄中。如果該文件名由專(zhuān)用字符“+”開(kāi)始,那末,就假定該文件將被放在HPNWDATA目錄中。
例如,假定安裝二種類(lèi)別類(lèi)別“AB”和類(lèi)別“CDE”。類(lèi)別“AB”導(dǎo)致安裝二個(gè)文件“Z”被放到HPNWPROG目錄668,而“YY”放到HPNWDATA目錄。類(lèi)別“CDE”導(dǎo)致安裝一個(gè)文件“XXX”放到HPNWPROG668。下面給出的表8表示這個(gè)例子的HPOMF.INS的內(nèi)容。
表8偏差內(nèi)容解釋0CDAB0101文件頭/版本檢查4oc00AB記錄的長(zhǎng)度(十進(jìn)制數(shù)12)6414200“AB”+Null904(長(zhǎng)度字節(jié)+“*Z”+Null)的長(zhǎng)度。
A2A5A00“*Z”+NullD05(長(zhǎng)度字節(jié)+“+YY”+Null)的長(zhǎng)度。
E2B595900“+YY”+Null。
120A00CDE記錄的長(zhǎng)度(十進(jìn)制數(shù)10)。
1443444500“CDE”+Null。
1806(長(zhǎng)度字節(jié)+“*XXX”+Null)的長(zhǎng)度。
192A585800“*XXX”+Null系統(tǒng)文件666,即HPOMF.SDF又叫做“關(guān)閉文件(shutdounfile)。HPOMF.SDF僅存在于系統(tǒng)已經(jīng)徹底地關(guān)閉的時(shí)候,當(dāng)系統(tǒng)啟動(dòng)時(shí),它被刪除,當(dāng)系統(tǒng)關(guān)閉時(shí)創(chuàng)建立。在啟動(dòng)時(shí),如果這個(gè)文件丟失了,那末OFM假定最后一次會(huì)話(huà)的結(jié)束是不正常,所以它就經(jīng)過(guò)它的垮臺(tái)恢復(fù)過(guò)程(erashrecoveryprocedure),盡可能地使得系統(tǒng)文件有效和修復(fù)系統(tǒng)文件。系統(tǒng)文件可能是有毛病然而是可以斷定的垮臺(tái)時(shí)的狀態(tài)。不要用戶(hù)干涉就能夠糾正這些錯(cuò)誤。某些其它類(lèi)型的文件相容性錯(cuò)誤可能被檢測(cè)到,但是,實(shí)際上不可能來(lái)自“原來(lái)的”系統(tǒng)垮臺(tái)。通常,這些錯(cuò)誤是不可能糾正的,而且OMF將不允許系統(tǒng)發(fā)生這種情況。
如果HPOMF.SDF出現(xiàn),它包含目標(biāo)的列表。當(dāng)系統(tǒng)在正常關(guān)閉時(shí),這時(shí)活動(dòng)的每一個(gè)目標(biāo)能夠請(qǐng)求OMF在系統(tǒng)被重新啟動(dòng)時(shí)再啟動(dòng)它們。該目標(biāo)的列表是已經(jīng)請(qǐng)求的目標(biāo)標(biāo)記的列表,當(dāng)系統(tǒng)被重新啟動(dòng)時(shí),它們被重新啟動(dòng)。
HPOMF.SDF中的第一個(gè)字是標(biāo)志字。如果這個(gè)字為非零,OMF將執(zhí)行它的垮臺(tái)恢復(fù)代碼,即使HPOMF.SDF存在也如此。如果一些嚴(yán)重的錯(cuò)誤發(fā)生在正在結(jié)束的會(huì)話(huà)中,那末當(dāng)產(chǎn)生該文件時(shí),正常關(guān)閉也將設(shè)置這一標(biāo)志。
在第一個(gè)字的后面,該文件的剩余部分是一個(gè)三字節(jié)記錄的序列。每個(gè)記錄的頭二個(gè)字節(jié)包含將要被恢復(fù)的目標(biāo)的標(biāo)記。第一個(gè)字節(jié)是最無(wú)意義的。在本優(yōu)選的實(shí)施方案中,第三個(gè)字節(jié)沒(méi)有被使用,所以是零。
例如,如果系統(tǒng)在最后一次會(huì)話(huà)時(shí)正常關(guān)機(jī),并且有二個(gè)目標(biāo)(它們分別具有標(biāo)記2和7),已經(jīng)請(qǐng)求啟動(dòng),HPOMF.SDF的內(nèi)容將被設(shè)置成如下所示的表9
表9偏差內(nèi)容注解00000表示不需要垮臺(tái)恢復(fù)。
20200要重新啟動(dòng)的第一個(gè)目標(biāo)的標(biāo)記。
400沒(méi)有被使用,保留。
50700要重新啟動(dòng)的第二個(gè)目標(biāo)的標(biāo)記。
700沒(méi)有被使用,保留。
系統(tǒng)文件7,即HPOMFICO.NWE是一個(gè)微軟件窗口的動(dòng)態(tài)庫(kù)的可執(zhí)行文件,它包含一個(gè)虛擬的入口點(diǎn),并且沒(méi)有數(shù)據(jù)。微軟件窗口是由軟件公司(MicrosoftCorporation)銷(xiāo)售的一種程序,其商業(yè)地址在16011NE36thWay,Redmond,WA98073-9717。HPOMFICO.NWE作為“資源”也包含每一個(gè)安裝的類(lèi)別的圖象。OMF在運(yùn)行期間直接修改HPOMFICO.NWE,并且裝入它和把它卸掉,以便從它那里獲得圖象資源。HPOMFICO.NWE的格式,由微軟件公司提供的微軟件窗口的文擋中定義。
帶有可視說(shuō)明(請(qǐng)參考前面的關(guān)于可視說(shuō)明的討論)的正常工作,導(dǎo)致調(diào)用兒子應(yīng)用。當(dāng)涉及大量的應(yīng)用時(shí),就能引起許多不必要的消耗。使用快照就消除了這種消耗。
快照是一個(gè)目標(biāo),它使用來(lái)自叫做動(dòng)態(tài)訪(fǎng)問(wèn)庫(kù)(或者叫DAL)的一個(gè)分開(kāi)的庫(kù)的可執(zhí)行代碼,而不是使用完全的應(yīng)用可執(zhí)行代碼。只有與快照相關(guān)的數(shù)據(jù)文件才包含將從子目標(biāo)發(fā)送到父目標(biāo)的數(shù)據(jù)。壓縮數(shù)據(jù)文件的代碼,雖然稱(chēng)做為動(dòng)態(tài)庫(kù),但仍然被存儲(chǔ)在目錄HPOMFPROG(目錄668)中。
例如,圖81表示父目標(biāo)501由鏈接504鏈接到子目標(biāo)502。與鏈接504相關(guān)的是快照503。一旦子目標(biāo)指向在鏈接504的可視說(shuō)明記錄中的快照503,快照503能夠從子目標(biāo)502提供數(shù)據(jù)到父目標(biāo)501,不必調(diào)用與子目標(biāo)502相關(guān)的應(yīng)用。
如圖82所示,當(dāng)沒(méi)有快照時(shí),為把可視數(shù)據(jù)522發(fā)送到父目標(biāo)501,為了父目標(biāo)501在顯示窗口521中顯示可視數(shù)據(jù)522子目標(biāo)502必須是活動(dòng)的。然而,在圖83中,快照503被表示成提供可視數(shù)據(jù)522到父目標(biāo)501,而子目標(biāo)不一定是活動(dòng)的??煺盏母敿?xì)的實(shí)現(xiàn)過(guò)程由附錄B、附錄C、附錄D中給出。
附錄A是在OMF100中主要的數(shù)據(jù)結(jié)構(gòu)的列表。
附錄B是本發(fā)明的優(yōu)選實(shí)施例方案中的OMF接口599識(shí)別的功能的描述。
附錄C(HPNewWave環(huán)境程序設(shè)計(jì)舉例)給出怎樣實(shí)現(xiàn)本發(fā)明的優(yōu)選實(shí)施方案的例子,包括OMF100怎樣讓數(shù)據(jù)能在監(jiān)視器14上的顯示窗口看到的詳細(xì)說(shuō)明。
附錄D(程序中指南的第2章)給出本發(fā)明的優(yōu)選實(shí)施方案的進(jìn)一步的綜述,關(guān)于本發(fā)明的優(yōu)選實(shí)施方案的操作的更進(jìn)一步的詳細(xì)說(shuō)明。
權(quán)利要求
1.一種具有文件管理系統(tǒng)的計(jì)算機(jī),該文件管理系統(tǒng)包括多個(gè)應(yīng)用程序,多個(gè)數(shù)據(jù)文件;多個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu),每一個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu)包括對(duì)多個(gè)應(yīng)用程序中的一個(gè)應(yīng)用程序的引用多個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu),每一個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)包含對(duì)多個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu)中的一個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu)的引用,對(duì)多個(gè)數(shù)據(jù)文件中至少一個(gè)數(shù)據(jù)文件的引用,一個(gè)正文字符串,它為用戶(hù)標(biāo)識(shí)目標(biāo),以及一個(gè)用戶(hù)不知道并且它是為計(jì)算機(jī)標(biāo)識(shí)目標(biāo)的標(biāo)記,其中,標(biāo)記的值是無(wú)法從正文字符串中獲得的。
2.一種具有文件管理系統(tǒng)的計(jì)算機(jī),該文件管理系統(tǒng)包括多個(gè)應(yīng)用程序;多個(gè)數(shù)據(jù)文件;多個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu),每一個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu)包括對(duì)多個(gè)應(yīng)用程序中的一個(gè)應(yīng)用程序的引用;多個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu),每一個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)包括對(duì)多個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu)中對(duì)的一個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu)的引用,以及對(duì)多個(gè)數(shù)據(jù)文件中至少一個(gè)數(shù)據(jù)文件的引用;和多個(gè)鏈接數(shù)據(jù)結(jié)構(gòu),每一個(gè)鏈接數(shù)據(jù)結(jié)構(gòu)包括對(duì)稱(chēng)做為鏈接的父目標(biāo)的多個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)中的第一個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)的引用,包括對(duì)稱(chēng)做為鏈接的子目標(biāo)的多個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)中的第二個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)的引用,其中,對(duì)于每一個(gè)鏈接數(shù)據(jù)結(jié)構(gòu),子目標(biāo)和父目標(biāo)是不相同的。
3.一種如權(quán)利要求2所述的計(jì)算機(jī),其特征在于,在多個(gè)鏈接數(shù)據(jù)結(jié)構(gòu)中的每一個(gè)鏈接數(shù)據(jù)結(jié)構(gòu)包括一個(gè)值,它標(biāo)識(shí)出子目標(biāo)的哪一部份被父鏈接看到。
4.一種如權(quán)利要求2所述的計(jì)算機(jī),其特征在于,來(lái)自多個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)的每一個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)另外還包括一個(gè)正文字符串,它為用戶(hù)標(biāo)識(shí)目標(biāo);以及一個(gè)用戶(hù)不知道的、為計(jì)算機(jī)標(biāo)識(shí)目標(biāo)的標(biāo)記,其中,標(biāo)記的值是無(wú)法從正文字符串中導(dǎo)出的。
5.一種具有文件管理系統(tǒng)的計(jì)算機(jī),該文件管理系統(tǒng)包括多個(gè)數(shù)據(jù)文件;多個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu),每一個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)包含對(duì)多個(gè)數(shù)據(jù)文件中至少一個(gè)數(shù)據(jù)文件的引用;和多個(gè)鏈接數(shù)據(jù)結(jié)構(gòu),每一個(gè)鏈接數(shù)據(jù)結(jié)構(gòu)包括對(duì)稱(chēng)做為鏈接的父目標(biāo)的多個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)中的第一個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)的引用,并且包括對(duì)稱(chēng)做為鏈接的子目標(biāo)的多個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)中的第二個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)的引用。
6.一種如權(quán)利要求5所述的計(jì)算機(jī),其特征在于,在多個(gè)鏈接數(shù)據(jù)結(jié)構(gòu)中的每一個(gè)鏈接數(shù)據(jù)結(jié)構(gòu)包括標(biāo)識(shí)子目標(biāo)的哪一部分對(duì)父目標(biāo)是可視的一個(gè)值。
7.一種如權(quán)利要求5所述的計(jì)算機(jī),其特征在于,多個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)中的每一個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)還包括一個(gè)為用戶(hù)標(biāo)識(shí)目標(biāo)的正文字符串;和用戶(hù)不知道的一個(gè)標(biāo)記,并且,標(biāo)記為計(jì)算機(jī)標(biāo)識(shí)目標(biāo),其中,該標(biāo)記的值是無(wú)法從正文字符串導(dǎo)出的。
8.一種如權(quán)利要求5所述的計(jì)算機(jī),另外還包括多個(gè)應(yīng)用程序;和多個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu),每一個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu)包括對(duì)多個(gè)應(yīng)用程序中的一個(gè)應(yīng)用程序的引用;其中,多個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)中的每一個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)包括對(duì)多個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu)中的一個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu)的引用。
9.一種具有文件管理系統(tǒng)的計(jì)算機(jī),該文件管理系統(tǒng)包括多個(gè)數(shù)據(jù)文件;和多個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu),每一個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)包含至少對(duì)多個(gè)數(shù)據(jù)文件中的一個(gè)數(shù)據(jù)文件的引用,為用戶(hù)標(biāo)識(shí)目標(biāo)的一個(gè)正文字符串,和用戶(hù)不知道的一個(gè)標(biāo)記,而該標(biāo)記為計(jì)算機(jī)標(biāo)識(shí)目標(biāo),其中,標(biāo)記的值是無(wú)法從正文字符串中導(dǎo)出的。
10.在一種具有文件管理系統(tǒng)的計(jì)算機(jī)中,文件管理系統(tǒng)允許鏈接二個(gè)目標(biāo),其中一個(gè)目標(biāo)稱(chēng)為父目標(biāo),另一個(gè)目標(biāo)稱(chēng)為子目標(biāo),一種拷貝父目標(biāo)的方法,該方法包括拷貝父目標(biāo)以建立父目標(biāo)的拷貝;拷貝子目標(biāo)以建立子目標(biāo)的拷貝;和建立父目標(biāo)的拷貝到子目標(biāo)的拷貝的鏈接。
11.在一種具有文件管理系統(tǒng)的計(jì)算機(jī)中,文件管理系統(tǒng)允許鏈接二個(gè)目標(biāo),其中一個(gè)目標(biāo)稱(chēng)為父目標(biāo),另一個(gè)目標(biāo)稱(chēng)為子目標(biāo),一種拷貝父目標(biāo)的方法,該方法包括拷貝父目標(biāo)以建立父目標(biāo)的拷貝;和建立父目標(biāo)的拷貝到子目標(biāo)的鏈接。
12.在一種顯示多個(gè)窗口的計(jì)算機(jī)中,多個(gè)窗口中的第一個(gè)窗口顯示來(lái)自第一個(gè)數(shù)據(jù)文件的數(shù)據(jù),多個(gè)窗口中的第二個(gè)窗口顯示來(lái)自第二個(gè)數(shù)據(jù)文件的數(shù)據(jù),一種在第二個(gè)窗口中顯示來(lái)自第一個(gè)文件的數(shù)據(jù)的方法,該方法包括建立引用第一個(gè)數(shù)據(jù)文件的第一個(gè)數(shù)據(jù)目標(biāo)結(jié)構(gòu);建立引用第二個(gè)數(shù)據(jù)文件的第二個(gè)數(shù)據(jù)目標(biāo)結(jié)構(gòu),建立一個(gè)鏈接結(jié)構(gòu),它包含對(duì)第一個(gè)數(shù)據(jù)目標(biāo)結(jié)構(gòu)和對(duì)第二個(gè)數(shù)據(jù)目標(biāo)結(jié)構(gòu)的引用,并且包含將要被顯示在第二個(gè)窗口中的來(lái)自第一個(gè)文件的數(shù)據(jù)的說(shuō)明。
13.在一種計(jì)算機(jī)系統(tǒng)中,一種建立在二個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)之間的鏈接的方法,其中,該鏈接指定被共享數(shù)據(jù)的第一個(gè)子集,該方法包括響應(yīng)于指定被共享數(shù)據(jù)的第一條用戶(hù)命令和作為被共享數(shù)據(jù)源的第一個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu),構(gòu)造鏈接的一個(gè)部分,它包括對(duì)被共享數(shù)據(jù)的引用,以及對(duì)第一個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)發(fā)源于此目標(biāo)數(shù)據(jù)結(jié)構(gòu))的引用;和響應(yīng)于指定第二個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)的第二條用戶(hù)命令(數(shù)據(jù)被第二個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)共享,通過(guò)向鏈接增加一個(gè)對(duì)第二個(gè)目標(biāo)數(shù)據(jù)結(jié)構(gòu)的引用,完成該鏈接的構(gòu)造。
14.一種如權(quán)利要求13所述的方法,其中,第一條用戶(hù)命令是到記錄夾的“Share”命令。
15.一種如權(quán)利要求14所述的方法,其中,第二條用戶(hù)命令是來(lái)自記錄夾的“Paste”命令。
全文摘要
一種具有文件管理系統(tǒng)的計(jì)算機(jī),它包括多個(gè)應(yīng)用程序、數(shù)據(jù)文件、類(lèi)別數(shù)據(jù)結(jié)構(gòu)和目標(biāo)數(shù)據(jù)結(jié)構(gòu)。每一類(lèi)別數(shù)據(jù)結(jié)構(gòu)引用多個(gè)應(yīng)用程序中的一個(gè)。每一目標(biāo)數(shù)據(jù)結(jié)構(gòu)引用多個(gè)類(lèi)別數(shù)據(jù)結(jié)構(gòu)中的一個(gè),并至少引用多個(gè)數(shù)據(jù)文件中的一個(gè)。目標(biāo)數(shù)據(jù)結(jié)構(gòu)的使用允許計(jì)算機(jī)引用目標(biāo)數(shù)據(jù)結(jié)構(gòu)并用標(biāo)記訪(fǎng)問(wèn)文件。用戶(hù)可給出目標(biāo)數(shù)據(jù)結(jié)構(gòu)名并在同一目錄中給二個(gè)目標(biāo)以相同的名字。文件管理系統(tǒng)包括多個(gè)鏈接數(shù)據(jù)結(jié)構(gòu)。對(duì)每一鍵接數(shù)據(jù)結(jié)構(gòu),子目標(biāo)和父目標(biāo)不必相同。
文檔編號(hào)G06F13/14GK1046807SQ8910266
公開(kāi)日1990年11月7日 申請(qǐng)日期1989年4月25日 優(yōu)先權(quán)日1989年4月25日
發(fā)明者約翰·安德魯·戴薩特, 彼得·斯圖爾特·肖曼, 威廉·M·克, 彼得·邁克爾·威廉斯, 布賴(lài)恩·萊特·麥克布賴(lài)德, 約翰·羅德尼·弗朗西斯·西尼爾, 查爾斯·H·惠蘭, 布賴(lài)恩·默多克 申請(qǐng)人:惠普公司