两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

遠(yuǎn)程通信系統(tǒng)、編譯控制程序的設(shè)備和代碼產(chǎn)生方法

文檔序號:6613335閱讀:210來源:國知局
專利名稱:遠(yuǎn)程通信系統(tǒng)、編譯控制程序的設(shè)備和代碼產(chǎn)生方法
技術(shù)領(lǐng)域
本發(fā)明涉及分布式處理,特別是但不僅僅是涉及用于遠(yuǎn)程通信網(wǎng)絡(luò) 控制的分布式處理。更具體地,本發(fā)明涉及在分布式處理器上實(shí)現(xiàn)的 控制系統(tǒng)的開發(fā)與升級,其最好(但不是必要的)面向?qū)ο蠓绞降倪^ 程。
背景技術(shù)
遠(yuǎn)程通信網(wǎng)絡(luò)日益需要支持高帶寬、低延遲信息流。所需帶寬迅速 從Kb i t /秒增至Mb i t /秒,對某些應(yīng)用來說甚至需要Gb it /秒(具體例如點(diǎn)播視頻、動態(tài)共享仿真和分布式計(jì)算)。為提供"智能網(wǎng)絡(luò)"功能,如呼叫重定向到特定號碼,計(jì)算機(jī)程序 要運(yùn)行在與交換中心連接的很多(例如至多l(xiāng) 0 0臺)主計(jì)算機(jī)上。 為特定用戶提供服務(wù)的路徑(例如某個客戶的呼叫被尋路由的號碼) 依賴于存儲于與用戶有關(guān)的主計(jì)算機(jī)中的數(shù)據(jù)。這樣在幾十到幾百臺 主計(jì)算機(jī)中就有數(shù)百萬的用戶記錄。在"Twenty-twenty vision國software architectures for intelligence in the 21st century", P.A. Martin, BT Technology Journal, Vol 13 No. 2, April 1995中,本發(fā)明者已經(jīng)提出了用面向?qū)ο蠹夹g(shù)來實(shí)現(xiàn)需要的分布 式處理。面向?qū)ο蠹夹g(shù)的描述可在BT Technology Journal, Vol 11 , No. 3, July, 1993, "Object oriented technology"中找到,它由E丄.Cusack和E.S. Cordingley編寫。盡管這個術(shù)語未總被準(zhǔn)確使用,在此面向?qū)ο蟮挠?jì)算指 的是這樣的計(jì)算技術(shù),在其中數(shù)據(jù)被以"封裝"的形式存儲,在該形式
中,數(shù)據(jù)不能被呼叫程序或例程直接訪問,僅能被一個相關(guān)的程序訪問, 該程序能讀、寫和編輯該數(shù)據(jù)。數(shù)據(jù)的記錄和其相關(guān)程序被稱為一個 "對象"。來自于和發(fā)送到一個對象的通信主要由"消息傳遞"來實(shí)現(xiàn), 即對這個對象的呼叫傳遞數(shù)據(jù)值并激活包含在此對象當(dāng)中的某個程序的 操作,然后返回?cái)?shù)據(jù)值。對于希望利用面向?qū)ο蠓椒ǖ母鞣N編程者來說很多語言都可以使用, 目前最常用的是〔++。分布式處理在幾個方面上與單處理器操作不同。首先,根據(jù)其它程序 或數(shù)據(jù)與調(diào)用程序是位于同一臺主計(jì)算機(jī)上還是位于不同的主計(jì)算機(jī) 上,可能需要不同的訪問技術(shù)。程序或數(shù)據(jù)的位置也將影響其從其他程 序到達(dá)的速度。同時, 一臺或多臺主計(jì)算機(jī)可能失效,而此時其他計(jì)算 機(jī)還在運(yùn)行中。分布式計(jì)算通常以"客戶-服務(wù)器"的方式執(zhí)行,其中某臺計(jì)算機(jī)上 "客戶"程序請求位于另一臺計(jì)算機(jī)上的"服務(wù)器"程序,此后服務(wù)器 程序執(zhí)行此功能或?qū)⒖蛻舫绦蛘埱蟮臄?shù)據(jù)返回。面向?qū)ο蠹夹g(shù)尚未廣泛應(yīng)用到分布式處理中。這方面最新現(xiàn)狀的概要情況在"Object oriented programming systems" Blair G., Pitman Publishing, London, 1991 (ISBN 0-273-03132-5)尤其是從223-243頁的第9章中和 "Distributed systems and objects", David Hutchison and Jonathan Walpole中也可找到。先前的努力主要是為一種己存在的計(jì)算機(jī)語言添加新的語 法,或生成一種新的計(jì)算機(jī)語言將常規(guī)的面向?qū)ο蟮某绦蛟O(shè)計(jì)擴(kuò)展以處 理分布式處理。發(fā)明內(nèi)容在第一方面,本發(fā)明提供一種遠(yuǎn)程通信系統(tǒng),包括一個分布式控制 系統(tǒng),該分布式控制系統(tǒng)包括多個互連的計(jì)算機(jī)和用于編譯計(jì)算機(jī)控制 程序的編譯設(shè)備,該編譯設(shè)備包括系統(tǒng)數(shù)據(jù)存儲器,用于存儲系統(tǒng)數(shù) 據(jù);預(yù)編譯器;編譯器;源代碼存儲器,用于存儲源程序;以及可執(zhí)行 代碼存儲器,用于存儲由該編譯器產(chǎn)生的可執(zhí)行代碼;該預(yù)編譯器可操作用以對在該源代碼存儲器中存儲的初始源程序中 的注釋進(jìn)行檢査,以找到一個或多個所要求的系統(tǒng)操作的具體規(guī)范,以 及對于這樣找到的具體規(guī)范或每一個具體規(guī)范,訪問該系統(tǒng)數(shù)據(jù)存儲器 中當(dāng)前存儲的相應(yīng)的系統(tǒng)數(shù)據(jù),評估所要求的系統(tǒng)操作能否被初始源程 序滿足,且在得到負(fù)面評估結(jié)果時,產(chǎn)生適當(dāng)?shù)母郊釉闯绦蛘Z句和編譯 器指令,并通過在其中合并所述附加源程序語句和編譯器指令來修改該 源程序,以及該編譯器在該預(yù)編譯器的操作之后可操作用以響應(yīng)在該源 代碼存儲器中當(dāng)前存儲的該源程序中的可執(zhí)行語句,產(chǎn)生可執(zhí)行代碼以 及將這樣產(chǎn)生的可執(zhí)行代碼存儲在該可執(zhí)行代碼存儲器中。方便起見,本發(fā)明的第一方面的編譯器包含一個預(yù)編譯器及一個常規(guī) 編譯器,但認(rèn)為本發(fā)明的這個功能可被直接合并到一個重新書寫的編譯 器中。這樣,根據(jù)本發(fā)明的這個第一方面,在被本發(fā)明的此第一方面的編譯 器編譯并在多處理器系統(tǒng)上運(yùn)行之前,源代碼可以被程序員利用常規(guī)的 編譯器進(jìn)行編譯和測試以便在單處理器上執(zhí)行,多處理器環(huán)境專用的語 句被單機(jī)編譯器忽略。這使得程序員在無需進(jìn)行實(shí)時測試的情況下可以 確認(rèn)程序的基本操作。第二方面,本發(fā)明提供了一種用于編譯分布式控制系統(tǒng)的程序的設(shè) 備,該設(shè)備包括系統(tǒng)數(shù)據(jù)存儲器,用于存儲系統(tǒng)數(shù)據(jù);預(yù)編譯器;編 譯器;源代碼存儲器,用于存儲源程序;以及可執(zhí)行代碼存儲器,用于 存儲由該編譯器產(chǎn)生的可執(zhí)行代碼;該預(yù)編譯器可操作用以對在該源代碼存儲器中存儲的初始源程序中 的注釋進(jìn)行檢查,以找到一個或多個所要求的系統(tǒng)操作的具體規(guī)范,以 及對于這樣找到的具體規(guī)范或每一個具體規(guī)范,訪問該系統(tǒng)數(shù)據(jù)存儲器 中當(dāng)前存儲的相應(yīng)的系統(tǒng)數(shù)據(jù),評估所要求的系統(tǒng)操作能否被初始源程 序滿足,且在得到負(fù)面評估結(jié)果時,產(chǎn)生適當(dāng)?shù)母郊釉闯绦蛘Z句和編譯 器指令,并通過在其中合并所述附加源程序語句和編譯器指令來修改該 源程序,和該編譯器在該預(yù)編譯器的操作之后可操作用以響應(yīng)在該源代 碼存儲器中當(dāng)前存儲的該源程序中的可執(zhí)行語句,產(chǎn)生可執(zhí)行代碼以及 將這樣產(chǎn)生的可執(zhí)行代碼存儲在該可執(zhí)行代碼存儲器中。第三方面,本發(fā)明提供一種用于產(chǎn)生在分布式計(jì)算系統(tǒng)上執(zhí)行的代碼 的方法,該方法包括產(chǎn)生初始源代碼程序,它包括定義上述代碼結(jié)構(gòu)的可執(zhí)行語句,和包 含所需系統(tǒng)操作的具體規(guī)范的注釋;訪問來自于該分布式計(jì)算系統(tǒng)存儲器的適當(dāng)?shù)南到y(tǒng)操作參數(shù),該存儲器包含有當(dāng)前系統(tǒng)操作參數(shù);評估所需的系統(tǒng)操作是否能被該初始源程序滿足;在得到負(fù)面評估結(jié)果時,產(chǎn)生適當(dāng)?shù)母郊釉闯绦蛘Z句和編譯器指令, 并通過將該附加源程序語句和編譯器指令合并到該初始源程序中來產(chǎn)生 修改后的源程序;和響應(yīng)該初始源程序中的可執(zhí)行語句,或在上述得到負(fù)面評估結(jié)果時對 該修改后的源程序進(jìn)行響應(yīng),以產(chǎn)生用于在上述分布式計(jì)算系統(tǒng)上執(zhí)行 的可執(zhí)行代碼。第四方面,本發(fā)明提供一種用于產(chǎn)生在分布式計(jì)算系統(tǒng)上執(zhí)行的代碼 的方法,該方法包括檢查初始源程序中的注釋,該初始源程序包括定義上述代碼結(jié)構(gòu)的可 執(zhí)行語句和包含所需系統(tǒng)操作的具體規(guī)范的注釋,以便找到所述具體規(guī) 范;對于這樣找到的每一個具體規(guī)范,訪問來自于該分布式計(jì)算系統(tǒng)的存 儲器的相應(yīng)的系統(tǒng)數(shù)據(jù);基于該具體規(guī)范和該相應(yīng)的系統(tǒng)數(shù)據(jù),評估所需的系統(tǒng)操作是否能被 該初始源程序滿足;在得到負(fù)面評估結(jié)果時,產(chǎn)生適當(dāng)?shù)母郊釉闯绦蛘Z句和編譯器指令, 并通過將該附加源程序語句和編譯器指令合并到該初始源程序中來產(chǎn)生 修改后的源程序;和響應(yīng)該初始源程序中的可執(zhí)行語句,或在上述得到負(fù)面評估結(jié)果時, 對該修改后的源程序進(jìn)行響應(yīng),以產(chǎn)生用于在上述分布式計(jì)算系統(tǒng)上執(zhí) 行的可執(zhí)行代碼。第五方面,本發(fā)明提供一種用于產(chǎn)生在分布式計(jì)算系統(tǒng)上執(zhí)行的代碼 的產(chǎn)品,包括-產(chǎn)生初始源代碼程序的裝置,該初始源代碼程序包括定義上述代碼結(jié) 構(gòu)的可執(zhí)行語句,和包含所需系統(tǒng)操作的具體規(guī)范的注釋;訪問來自于該分布式計(jì)算系統(tǒng)存儲器的適當(dāng)?shù)南到y(tǒng)操作參數(shù)的裝置, 該存儲器包含有當(dāng)前系統(tǒng)操作參數(shù);評估所需的系統(tǒng)操作是否能被該初始源程序滿足的裝置;在得到負(fù)面評估結(jié)果時、產(chǎn)生適當(dāng)?shù)母郊釉闯绦蛘Z句和編譯器指令, 并通過將該附加源程序語句和編譯器指令合并到該初始源程序中來產(chǎn)生 修改后的源程序的裝置;和響應(yīng)該初始源程序中的可執(zhí)行語句,或在上述得到負(fù)面評估結(jié)果時, 對該修改后的源程序進(jìn)行響應(yīng),以產(chǎn)生用于在上述分布式計(jì)算系統(tǒng)上執(zhí) 行的可執(zhí)行代碼的裝置。第六方面,本發(fā)明提供一種用于產(chǎn)生在分布式計(jì)算系統(tǒng)上執(zhí)行的代碼 的產(chǎn)品,包括檢查包括定義上述代碼結(jié)構(gòu)的可執(zhí)行語句和包含所需系統(tǒng)操作的具 體規(guī)范的注釋的初始源程序中的注釋,以便找到所述具體規(guī)范的裝置;
對于這樣找到的每一個具體規(guī)范,訪問來自于該分布式計(jì)算系統(tǒng)的存 儲器的相應(yīng)的系統(tǒng)數(shù)據(jù)的裝置;
基于該具體規(guī)范和該相應(yīng)的系統(tǒng)數(shù)據(jù),評估所需的系統(tǒng)操作是否能被 該初始源程序滿足的裝置;
在得到負(fù)面評估結(jié)果時,產(chǎn)生適當(dāng)?shù)母郊釉闯绦蛘Z句和編譯器指令, 并通過將該附加源程序語句和編譯器指令合并到該初始源程序中來產(chǎn)生 修改后的源程序的裝置;和
響應(yīng)該初始源程序中的可執(zhí)行語句,或在上述得到負(fù)面評估結(jié)果時, 對該修改后的源程序進(jìn)行響應(yīng),以產(chǎn)生用于在上述分布式計(jì)算系統(tǒng)上執(zhí) 行的可執(zhí)行代碼的裝置。
其他方面和本發(fā)明的實(shí)施例在以后被描述和聲明。
參考附圖,本發(fā)明的實(shí)施例僅通過示例的方式來描述。


圖1是描述實(shí)施本發(fā)明的遠(yuǎn)程通信系統(tǒng)各元素的框圖; 圖2是描述圖1系統(tǒng)中另外實(shí)施例的框圖3是描述組成圖1和圖2系統(tǒng)的一部分的主計(jì)算機(jī)的各元素的框
圖4是描述組成圖1和圖2系統(tǒng)的一部分的編譯器裝置的各元素的框
圖5是描述圖4的編譯裝置操作的流程圖6是圖5執(zhí)行的各個處理階段的示意圖7 a是描述圖1中智能域部分所有的數(shù)據(jù)結(jié)構(gòu)圖7b是描述圖1中傳輸域部分所有的數(shù)據(jù)結(jié)構(gòu)圖8描述了圖7 a中一個組成成分的存儲器中的數(shù)據(jù)結(jié)構(gòu);
圖9描述了適合于圖4中的編譯裝置的源代碼;
圖1 0是描述組成圖1 0到1 4的預(yù)編譯過程的一部分的流程圖1 1是該過程的其他部分;
圖1 2是該過程的其他部分; 圖l3是該過程的其他部分;
圖l4是該過程的其他部分。
具體實(shí)施例方式
參考圖1,根據(jù)本發(fā)明組建的遠(yuǎn)程通信系統(tǒng)包括多個由通信頻道4(如:
微波連接、光纜、同軸電纜或基于上述任何介質(zhì)之上實(shí)現(xiàn)的虛電路)互
連的交換中心或交換機(jī)2a、 2b,它們構(gòu)成了傳輸域6。連接到傳輸域6 的智能域8包括多臺主計(jì)算機(jī)10a、 10b,它們通過信號鏈路12a、 12b以 及互連主計(jì)算機(jī)10a、 10b的12c與交換中心2a、 2b進(jìn)行信號通信。例如, 二者可以通過協(xié)議如信號系統(tǒng)7 (SS7)被互連。
最終用戶的終端裝置或設(shè)備如電話14a、 14b和寬帶通信設(shè)備如視頻 播放機(jī)16聯(lián)合組成了最終用戶域18,它通過局域環(huán)連接20a、 20b、 20c (例如光纖、蜂窩式無線電或雙絞銅電纜線)連接到傳輸域6上。
另外被提供的是一個服務(wù)提供者域22,它包括提供服務(wù)(例如視頻服 務(wù))的設(shè)備,如視頻播放機(jī)24和計(jì)算機(jī)終端26,通過局域環(huán)連接28a、 28b、 28c (如ISDN通道或其他一些高帶寬鏈路)連接到傳輸域6上。
如眾所周知的模式,通過傳輸域6,最終用戶的終端裝置14或16被 用來向服務(wù)提供者域22傳送請求。結(jié)果是一條通道通過傳輸域6被建立 起來且服務(wù)提供者域22通過這條通道向終端用戶域18傳送服務(wù)(例如 傳送實(shí)時電影資料、或電子版的數(shù)據(jù)文件)。
在常規(guī)的普通電話服務(wù)中,傳輸域6只是簡單地被最終用戶域產(chǎn)生的 撥號所控制來建立傳輸通路。然而,當(dāng)前傳輸域中的"智能網(wǎng)絡(luò)"控制 由智能域8提供。智能域8從傳輸域6中接收已撥號碼和/或正在撥的號
碼,并執(zhí)行與這些號碼相符合的呼叫處理。智能域最典型的是提供號碼 翻譯服務(wù),即已撥號碼被翻譯以向另一個號碼提供前向呼叫服務(wù)。在這
種情況下,已撥號碼與主計(jì)算機(jī)10中的某一臺中存儲的一條記錄相對應(yīng), 作為線路12中某一條上信號的響應(yīng)它被訪問,以產(chǎn)生相應(yīng)的重定向號碼。
一般來說,作為傳輸域6中某一事件的響應(yīng)(如來自于最終用戶域18 的呼叫初始化),智能域提供控制信息來控制傳輸域6。
其他數(shù)據(jù)也被存放到智能域中。在本實(shí)施例中,每次呼叫的記帳數(shù)據(jù) 被存放到智能域中,以對每個用戶進(jìn)行周期性地記帳。
參考圖2,智能域8進(jìn)一步包含一個編譯裝置30,它由一臺編程的工 作站組成,通過網(wǎng)絡(luò)服務(wù)器lla-llc和廣域網(wǎng)(WAN)連接到主計(jì)算機(jī) IO上,WAN在編譯裝置30、主計(jì)算機(jī)IO和服務(wù)器11間運(yùn)行。
服務(wù)器也可以連接到Internet 32中的一個或多個廣域網(wǎng)(WWW)服 務(wù)器上,從而編輯連接到Internet上(例如通過局域包交換節(jié)點(diǎn))的終端 15a畫15d。
參考圖3,每一主計(jì)算機(jī)10包括一個框架或包含通信硬件100的服 務(wù)器,通過廣域網(wǎng)連接到服務(wù)器ll上;處理器102;存儲器104,它包 括隨機(jī)訪問存儲器式的快速訪問存儲器和磁或光盤驅(qū)動式的脫機(jī)存儲 器。
存儲于存儲裝置104中的是一個操作系統(tǒng)106 (例如UNIX (TM)); 一個對象管理程序108;和一個由類代碼110和對象數(shù)據(jù)組成的對象模型, 所有這些都將在下面被詳細(xì)討論。
每個編輯終端15包括一臺個人計(jì)算機(jī),并可能利用用戶家中的相應(yīng) 電話14通過調(diào)制解調(diào)器連接到公共電話插座上。
每個編輯終端15因此包括一個處理器、 一臺屏幕輸出設(shè)備、 一個輸 入設(shè)備(例如鍵盤和(或光標(biāo)控制設(shè)備如鼠標(biāo))存儲裝置ROM、 RAM和 硬盤),該輸入設(shè)備包含一圖形用戶環(huán)境(例如Windows (TM))、 一
個通信程序和一個對象瀏覽程序。
參考圖4,編譯裝置包括連接到WAN服務(wù)器11上的通信接口電路板 300;處理器302;和存儲裝置304 (沒有單獨(dú)標(biāo)出),此存儲裝置304 中含有快速訪問存儲器(RAM)和高容量存儲器(例如硬盤驅(qū)動器), 存放著操作系統(tǒng)(如UNIX (TM) ) 、 0++編譯程序312 (如來自Sun微 系統(tǒng)公司的SunPRO)、 一個下面將要詳細(xì)描述的預(yù)編譯器316、和存放 可合并到新程序中的標(biāo)準(zhǔn)函數(shù)和定義(描述子程序和子例程)的庫314。
如常規(guī)那樣,0++編譯器包含一個編譯可重薪定位二進(jìn)制代碼的編譯 器和一個連接程序312b,此連接程序可將二進(jìn)制代碼與存儲在庫314中 的二進(jìn)制代碼例程相連接并將連接好的代碼在內(nèi)存地址空間定位以便運(yùn) 行。這些編譯器一般包含一個可以解釋如"include"語句的編譯指令以在 編譯過程中讀人附加的代碼或執(zhí)行其他的操作的編譯器。
提供的還有存儲定義0++程序輸入代碼的存儲區(qū)308 (例如通過輸 入設(shè)備320輸入,或通過通信電路300下載,或通過存儲裝置204中包 含的磁盤驅(qū)動器裝載), 和存儲由0++編譯器312產(chǎn)生的可執(zhí)行代碼的 存儲區(qū)310 (例如在編譯程序的控制下由處理器302完成)。還包括存儲 區(qū)318,它存放與分布式處理器10數(shù)目有關(guān)的系統(tǒng)數(shù)據(jù)、處理器10中每 一個可用存儲器的容量、處理器10的操作速度等等。
處理器102被安排有選擇地運(yùn)行0++編譯器312來編譯存放在源存儲 器308中的源代碼,或在0++編譯器312處理完源存儲器308中的源代 碼后運(yùn)行預(yù)編譯器316,以在可執(zhí)行代碼存儲器310中產(chǎn)生可執(zhí)行代碼。
在第一種情況下,產(chǎn)生的代碼將在任意合適的單處理器上運(yùn)行。在本 實(shí)施例中,處理器302本身被安排執(zhí)行直接由€++編譯器以此方式產(chǎn)生 的代碼,以使用戶可以立即測試是否程序按預(yù)想的方式執(zhí)行。
在后一種情況下,預(yù)編譯器316首先處理存放在源存儲器308中的源 代碼(考慮到與組成運(yùn)行代碼的主機(jī)10的分布式系統(tǒng)有關(guān)的任何系統(tǒng)數(shù)
據(jù)),并在源存儲器308中產(chǎn)生增補(bǔ)的源代碼,以使編譯器312在可執(zhí) 行代碼區(qū)310中編譯產(chǎn)生可執(zhí)行代碼。然而,這個可執(zhí)行代碼并不需要 在編譯裝置30上是可運(yùn)行的,因?yàn)樗窃诙喾植际街鳈C(jī)10上運(yùn)行的。 參考圖5,在監(jiān)控程序307的控制下編譯器30的一般操作如下 在202步,源代碼被輸入到源代碼存儲器308中(如通過輸入設(shè)備 320)。在204步中,操作員可以決定編輯源存儲器308中的源代碼,其 中,被編輯的文本被輸入到源存儲器308中(例如使用常規(guī)的文本處理 程序)。
一旦任一上述的編輯完成,在206步中,用戶可以選擇是否對源代碼 進(jìn)行局部測試。如果用戶進(jìn)行局部測試,在第208步,處理器運(yùn)行C+十 編譯器312以將存放在源存儲器308中的源代碼編譯成可執(zhí)行代碼并存 放到可執(zhí)行代碼存儲器310中,且在210步中,處理器302執(zhí)行此可執(zhí) 行代碼。 一個仿真程序可以被提供來監(jiān)聽無意義的操作并替代諸如顯示 到輸出屏幕322上的操作,以使用戶可以了解到底發(fā)生了什么。
如果在執(zhí)行過程中發(fā)生錯誤,在第212步,用戶可以決定返回到第204 步來編輯源代碼存儲器308中的源代碼。如果此源代碼滿足要求,則在 第214步中,預(yù)編譯器316被應(yīng)用到源代碼存儲器308中的源代碼上以 產(chǎn)生增補(bǔ)代碼,后者進(jìn)一步在第216步中被0++編譯器編譯以將可執(zhí)行 代碼產(chǎn)生到可執(zhí)行代碼存儲器310中。接下來在218步中通過WAN服務(wù) 器它被傳送到分布式的主計(jì)算機(jī)10中。這個過程在圖6中以圖形化的方 式被描述。
現(xiàn)在對智能域中采用的數(shù)據(jù)模型進(jìn)行簡要介紹。下面,每個"對象" 是一個數(shù)據(jù)記錄,包括多個數(shù)據(jù)域,只能被與此對象對應(yīng)的代碼來訪問 (在一對多的關(guān)系中,與一對象類有關(guān)的同一代碼實(shí)際上可以訪問此類 的所有對象)。
通常,對象被分成類,同一個類的對象包含不同的數(shù)據(jù)但具有同樣的
格式。每個對象與一個或多個操作這些數(shù)據(jù)的子例程(一般命名為"方 法"或"功能")相關(guān),它們一般只包括執(zhí)行該操作的裝置。
與同一類的不同對象相關(guān)的子例程接收和返回相應(yīng)數(shù)據(jù)的格式是相 同的(即同一類的所有對象都有一個公共的接口)。事實(shí)上,在〔++中, 對于同一類的所有對象這些子例程僅出現(xiàn)一次(即子例程的代碼僅存儲 一次),所以代碼和這些對象之間是一對多的關(guān)系。因此代碼是與這些 對象的類相關(guān)而不是與每個對象相關(guān)。
每個對象類可能是一個更通用類的子類,即如通常的面向?qū)ο蟮某绦?設(shè)計(jì)那樣。在此情況中,此代碼可被存儲而與更通用的類("超類")
相關(guān)。對象管理器108包含一個構(gòu)成每個對象的數(shù)據(jù)的位置的列表,且 對一個對象的每次調(diào)用中,對象管理器訪問類代碼存儲區(qū)110中的相關(guān) 子例程代碼并為對象存儲區(qū)112中相關(guān)對象的代碼提供數(shù)據(jù)地址。
參考圖7,在此實(shí)施例中,智能域中的主機(jī)IO提供的對象包含多個客 戶對象500 (每個都擁有與成百上千個用戶中任何一個相關(guān)的數(shù)據(jù)),它 們在與一個新客戶進(jìn)行會話過程中生成;當(dāng)客戶自愿離開或從網(wǎng)絡(luò)脫離 時消亡;當(dāng)一個客戶的需求發(fā)生改變時被編輯 一組在呼叫開始時被生 成,在呼叫結(jié)束后被中止的呼叫對象600a-600c; —組與客戶終端設(shè)備上 的每一條目相關(guān)且在客戶終端設(shè)備與網(wǎng)絡(luò)的第一次連接中生成的通信設(shè) 備對象700a-700c。
參考圖7b,在此實(shí)施例中,傳輸域6的交換中心2a、 2b…進(jìn)一步包 括主計(jì)算機(jī),它們存儲對象800a-800b、 900a-900f,這些對象分別代表交 換中心的交換機(jī)和這些交換機(jī)的端口。這樣,每個交換機(jī)對象800包括 一個任何時刻相應(yīng)交換機(jī)狀態(tài)的記錄;這些對象永久存儲于內(nèi)存中并與
交換中心2中所示的物理設(shè)備是一一對應(yīng)的,這樣對端口或交換對象的 寫操作改變相應(yīng)端口或交換機(jī)的狀態(tài),且對端口或交換機(jī)對象的讀操作 給出相應(yīng)物理設(shè)備實(shí)際情況的真實(shí)反映。
作為例子,客戶對象里的數(shù)據(jù)結(jié)構(gòu)在圖8中被描述。
由對象500維護(hù)的屬性數(shù)據(jù)包括一個客戶類型域502 (可能指示此客 戶是一個雇員或一些其他非平常狀態(tài),或是一個正??蛻?; 一個用戶 ID域504; —個指示對象500被生成的主機(jī)10的主機(jī)域506 (方便起見 以http/TCP/IP的格式表示)。
另外還存放的是與提供給客戶服務(wù)相關(guān)的數(shù)據(jù),例如,客戶的通常電 話號碼(域508);在一天特定時間內(nèi)客戶的呼叫被轉(zhuǎn)向的電話號碼(域 510);和呼叫被轉(zhuǎn)向的時間(域512)。
最后,對客戶的記帳信息以呼叫域514的存儲格式被存儲,對于每一 次呼叫存儲被叫(和/或呼叫)電話號碼、呼叫的日期和時間、和本次呼 叫的花費(fèi)(域514)。
此信息的不同部分需要被不同的人所訪問。例如,定義提供給客戶的 服務(wù)的域508-512可以被客戶服務(wù)人員或由客戶自己通過一個用戶終端 15所編輯,而記帳數(shù)據(jù)(域514)應(yīng)當(dāng)只能由操作網(wǎng)絡(luò)的記帳和會計(jì)人 員所寫。當(dāng)然,客戶不應(yīng)該通過用戶終端15對他的記帳記錄進(jìn)行重寫。
在操作時,傳輸域中發(fā)生的事件(如在終端用戶域中監(jiān)視用戶的"摘 機(jī)"狀態(tài))產(chǎn)生智能域中與此對象相關(guān)聯(lián)的代碼的操作。例如,當(dāng)用戶 終端域中電話摘機(jī)時,生成一個新"呼叫"對象600的代碼被產(chǎn)生。當(dāng) 被呼叫的號碼被檢測到時,它通過信號鏈路12被傳輸?shù)街悄苡?中;呼 叫一方的客戶對象500被激活來增補(bǔ)記帳記錄域;且被呼叫一方的客戶 對象500被訪問以決定此呼叫應(yīng)被轉(zhuǎn)發(fā)的號碼,接下來信息被傳送到傳 輸域中的交換機(jī)對象800來建立一條通路,以在此通路之上運(yùn)載呼叫。
在呼叫傳送過程中,智能域的作用通常是有限的。當(dāng)檢測到掛機(jī)事 件而清除呼叫時,與客戶對象500相關(guān)聯(lián)的記帳功能代碼對記帳數(shù)據(jù)域 進(jìn)行更新,同時呼叫對象被對象管理器108刪除。
圖9描述了聲明與圖8中數(shù)據(jù)相對應(yīng)的類類型(客戶)的0++源代碼 100。它包含部分1000a和部分lOOOb,部分1000a包括0++編譯器312 所作用的語句,部分1000b包括C+十編譯器312忽略的注釋語句。然而,根據(jù)本實(shí)施例,注釋語句部分1000b由預(yù)編譯器316所作用。 每一注釋語句1002b-1012b由符號"〃"開頭,以使編譯器312忽略其后 的內(nèi)容。注釋域中的內(nèi)容完全是作為編程者的文檔因而完全被C十+編譯器312 所忽略。在本實(shí)施例中,預(yù)編譯器316被安排來解釋這些注釋語句。在本實(shí)施例中,注釋域中的內(nèi)容包含與構(gòu)成分布式系統(tǒng)對象有關(guān)的功 能(或性能)說明數(shù)據(jù)。特別是,這些說明數(shù)據(jù)包括下列說明性數(shù)據(jù)(a)給定類中所期望的對象數(shù)目(或是內(nèi)存空間的全部相應(yīng)容量), .(b)利用度,即對象在訪問時可用的訪問時刻百分比,(c)可訪問性,即對象(或是它可能被調(diào)用的特定數(shù)據(jù))可被訪問的不 同訪問點(diǎn)的數(shù)目(如需要訪問此對象的終端或主機(jī)的數(shù)目),(d皮全性,不同用戶對不同數(shù)據(jù)的訪問權(quán)限(即是否他們真正可以訪 問,如果可以,是可讀、可寫或兩者皆可),(e) 并發(fā)性,即可能同時激活一個給定對象或進(jìn)程的其他進(jìn)程數(shù)目,(f) 時間性,即一個進(jìn)程必須被完成的最大、平均和/或最小時間, 對于不同的應(yīng)用,這些功能規(guī)范的典型值如下一些可能的應(yīng)用及它們的功能尺度智能電話網(wǎng)絡(luò)大小 Cmb) 1000可用性 (%) 99.999訪問 (點(diǎn)) 100M并發(fā)性 (應(yīng)用) 10000完整性 CY/N) Y時間性 CMin/Ave/Max) 0/1/100遠(yuǎn)程表示1090102N0/0/0共享虛擬現(xiàn)實(shí)100卯10010N0/1/2企業(yè)計(jì)算10000099.99醒1000Y0/1/10
返回圖9,語句1002a定義了一個叫做"客戶"的對象類,語句1002b 說明了此類的對象必需在99.99%的時間內(nèi)可用。語句1004a定義了一個叫做"name"的32字節(jié)的陣列,語句1004b 說明客戶支持服務(wù)(CSS)進(jìn)程必須對此內(nèi)容有讀和寫的訪問權(quán)限,而其 他進(jìn)程必須僅有讀權(quán)限(以使僅客戶支持服務(wù)人員可以更改存放在與單 一客戶有關(guān)的類客戶對象中的用戶名)。語句1008a定義了一個功能"客戶",語句1008b說明了客戶支持服 務(wù)有訪問權(quán)。語句1006b說明了功能"客戶"的最小、平均和最大操作 時間(以毫秒為單位)。語句1010a聲明了一個void型函數(shù)(即無返回值)printBill,它打印 客戶對象的金額,語句1010b說明了相應(yīng)最小、平均和最大響應(yīng)時間。最后語句1012a聲明了一個void型函數(shù)callDelivered,當(dāng)一個呼叫必 須被處理時它被激活,語句1012b說明了此函數(shù)的最小、平均和最大響 應(yīng)時間。因此就象所表示的那樣,圖9中的代碼包括可執(zhí)行的C十+語句1000a 和注釋語句1000b,且它可被當(dāng)作0++程序進(jìn)行編譯并正常運(yùn)行,編譯器 312并不關(guān)注由注釋語句1000b所定義的功能說明。另一方面,當(dāng)由預(yù)編譯器316處理時,功能規(guī)范1000b會對生成新的 可編譯0++代碼和對編譯器生成指令產(chǎn)生影響,下面將詳細(xì)描述。對象的尺寸/數(shù)目每個對象類可以與一條尺寸語句相關(guān)聯(lián),以指明所期望的那個類的對 象數(shù)目或所需的存儲空間的相應(yīng)容量。 一般來說,本發(fā)明的更優(yōu)實(shí)施例 被安排來解釋與所期望的對象數(shù)目相關(guān)的語句(因?yàn)閷τ诰幊陶邅碚f這 更自然),并通過將這個聲明的對象數(shù)目和這個類所聲明的數(shù)據(jù)類型的 尺度之和相乘來把它轉(zhuǎn)換成所期望的存儲容量。
參考圖10,預(yù)編譯器在2002步被安排來讀取與類相關(guān)聯(lián)的任何尺寸 語句并將每一個轉(zhuǎn)換成內(nèi)存空間尺寸(以M字節(jié)為單位),還形成所有 這樣內(nèi)存尺寸的和。如果這樣計(jì)算的對象模型的整個尺寸足夠小以適合單個1M字節(jié) UNIX進(jìn)程的要求,預(yù)編譯器則向編譯器寫一條指令來將此代碼編譯成一 個單一進(jìn)程(2006步)。這簡化了可能使用的尋址,編譯器可以允許對 象通過引用傳送數(shù)據(jù),因?yàn)樗械膶ο蠖荚谕坏刂房臻g中。否則在2008步中,預(yù)編譯器316向編譯器寫一條指令來將此代碼編 譯到多個UNIX進(jìn)程中。在2010步,預(yù)編譯器316可以選擇代碼被編譯 到的目標(biāo)主機(jī)的最小數(shù)目。選擇步驟2004和2010根據(jù)存放在系統(tǒng)數(shù)據(jù)存儲器318中的數(shù)據(jù)被執(zhí) 行,這些數(shù)據(jù)指明每一臺主機(jī)10中有多少內(nèi)存空間可用。在其他實(shí)施例中,這樣計(jì)算的對象模型的尺寸也可以被用來以另外方 法控制尋址;例如,對象模型的尺寸可以用來指示編譯器選擇使用內(nèi)存 尋址(所有對象都可在同一內(nèi)存空間中被定位)、文件尋址(對于數(shù)目 巨大的對象)或?qū)ο骍ID;或使用虛擬內(nèi)存指針。利用度一種確保特定對象具有高利用度的特定方法是生成一個對象的多個 拷貝(當(dāng)然在可能情況下需要更新所有拷貝中的數(shù)據(jù)使其都是一樣的)。 一個給定對象的利用度粗略來說與此對象響應(yīng)時所用的時間成反比例關(guān) 系。這樣, 一個對象所期望的拷貝數(shù)目基本上與此對象的利用度和平均 響應(yīng)時間成比例。相應(yīng)地,參考圖ll,在3002步中,預(yù)編譯器316被安排讀取對象類 所需的利用度,且在3004步中讀取指示類對象的平均操作時間。接下來,在3006步中,預(yù)編譯器并行地選擇已存在的對象拷貝數(shù)目
并給出需要的可利用度,并在3008步中,預(yù)編譯器擴(kuò)充那個類的構(gòu)造函 數(shù)代碼(實(shí)例化這個類的新對象)以使所需要的拷貝數(shù)在運(yùn)行時中并發(fā) 地被生成(在不同的主機(jī)10上)。為了保證數(shù)據(jù)完整性,在3006步中選擇的數(shù)目一般來說是1 (在這種 情況下預(yù)編譯器在3008步中不寫入附加代碼),除非在需要高利用度的 地方,根據(jù)類響應(yīng)時間和所要求的利用度,象上面所述的那樣2份或更 多份拷貝被選擇。在其他實(shí)施例中,不是參考目標(biāo)訪問時間并相應(yīng)地生成一個重復(fù)對象 的期望數(shù)目,重復(fù)對象的一個預(yù)定數(shù)目可被選擇(例如2)且對象的訪問 時間可被修改(在下面詳細(xì)描述的事先確定的最小和最大值之間)以適 應(yīng)它??稍L問性因?yàn)椴煌闹饔?jì)算機(jī)10被連接到WAN11、 12的不同點(diǎn)上, 一些特 定的主計(jì)算機(jī)10與其他的計(jì)算機(jī)相比到特定終端15或主機(jī)10之間有較 短的通信鏈路。這些數(shù)據(jù)被存放到系統(tǒng)數(shù)據(jù)存儲器318中。因此將對象 存放到那些將訪問它們的終端的主計(jì)算機(jī)10上是有好處的。參考圖12,在4002步對于每一個數(shù)據(jù)聲明,預(yù)編譯器316讀取將訪 問那個類的對象的終端15的標(biāo)識(例如用戶,客戶支持,服務(wù)提供者, 記帳和規(guī)則)和編號,且在4004步利用存放在系統(tǒng)數(shù)據(jù)存儲器318中的 數(shù)據(jù),確定此類的新對象應(yīng)該存放的主計(jì)算機(jī)10以為這些終端提供最好 的訪問。在4006步,預(yù)編譯器316可能加入一些新的源代碼以使編譯器更改 這個為不同主計(jì)算機(jī)10編譯的對象管理器108,以使它們傳送所有的請 求來生成與4004步選擇的特定主機(jī)10相關(guān)的類的新對象。 安全性
在4008步預(yù)編譯器316加入新的源代碼來測試正在激活一個函數(shù)來 更改數(shù)據(jù)的特定條目的對象或進(jìn)程的標(biāo)識,并僅在此標(biāo)識與所期望的用 戶類別相一致的地方允許訪問。這樣,個人的數(shù)據(jù)僅可由個人的終端進(jìn) 行讀或?qū)?。并發(fā)性當(dāng)對一個對象數(shù)據(jù)進(jìn)行多次并發(fā)訪問是可能的,且第一個對象訪問另 一個也被并發(fā)訪問的對象時,不一致的現(xiàn)象可能發(fā)生。相應(yīng)地,在更優(yōu) 實(shí)施例中,用于避免不一致的裝置被提供。參見圖13,對于每一個類, 在5002步預(yù)編譯器316讀取可能訪問那個類的對象的并發(fā)進(jìn)程個數(shù);如 果沒包含并發(fā)信息,或并發(fā)進(jìn)程數(shù)目明確地為1,則在5004步中無需采 取進(jìn)一步的措施。如果對一個給定的對象類來說,并發(fā)進(jìn)程的數(shù)目超出 了 5004步預(yù)定的數(shù)目(可以是2或更大的數(shù)),則在5006步對那個類 的并發(fā)控制方法被選擇,在此實(shí)施例中它可能是一個簡單的加鎖進(jìn)程, 當(dāng)一個對象被訪問后,在第一次訪問終止之前不可能有別的訪問。在5008步,附加源代碼被加入到初始源代碼中,以使編譯器對相關(guān) 的類的代碼增加一個加鎖步驟。時間性使用多任務(wù)操作系統(tǒng)106,每臺主機(jī)IO將并行地處理不同對象的多個 進(jìn)程。參見圖14,在6002步預(yù)編譯器讀取與每個類相關(guān)聯(lián)的操作時間。取 決于所有平均操作時間的總和,在6004步預(yù)編譯器包含一條編譯指令來 為每一臺主計(jì)算機(jī)10建立一個高速緩存大小,它與每臺主計(jì)算機(jī)10的 系統(tǒng)數(shù)據(jù)存儲器318中記錄的存儲容量相符合,以在可用內(nèi)存中提供與 所需訪問時間的總和成反比例的高速緩存大小。 在6006步,對每個類定義測試是否小于平均或最大的操作時間被指 明,且如果是這樣,在6008步對那個類選擇一個和平均操作時間成反比 例的優(yōu)先權(quán),在6010步源代碼被加入到定義此類的代碼中,以實(shí)現(xiàn)一個 測試自從類(或類中的特定函數(shù)和操作)被激活后預(yù)定的時間是否超時 的定時器,如果是,則退出此操作。所選擇的權(quán)值被寫入到一個權(quán)值的列表,它由編譯器編譯并由對象管 理器108針對每臺主機(jī)IO來使用,根據(jù)該權(quán)值每個對象運(yùn)行的優(yōu)先級被 設(shè)置,以使得具有相對較長平均響應(yīng)時間的對象被操作系統(tǒng)106賦予一 個相對低的優(yōu)先級的等待并被認(rèn)為是"后臺"任務(wù)。概述這樣,當(dāng)預(yù)編譯器316的操作完成以后,存入到源代碼存儲器308中 的擴(kuò)展源代碼包括附加源代碼和通過下列方法實(shí)現(xiàn)功能或性能規(guī)范的編 譯器指令(a) 將附加代碼或數(shù)據(jù)加入到類代碼110中,或(b) 對于所有主計(jì)算機(jī)10修改對象管理器代碼108,或(c) 指示編譯器根據(jù)不同的主計(jì)算機(jī)10產(chǎn)生獨(dú)立版本的對象管理器。 根據(jù)此擴(kuò)展源代碼,對于輸入源代碼中的每一個聲明類編譯器接下來生成一個包含類代碼110的可執(zhí)行代碼文件,并對每一主計(jì)算機(jī)10也可 以包括對象管理器108。不是對于每一主計(jì)算機(jī)10編譯對象管理器108的代碼,最好對于每 一主計(jì)算機(jī)10提供一個被對象管理器108所采用的數(shù)據(jù)文件,以修改相 應(yīng)的操作。這樣,當(dāng)遠(yuǎn)程通信系統(tǒng)被改動時,例如可用系統(tǒng)信息的改變,如增加 一臺新的主計(jì)算機(jī)或擴(kuò)充主計(jì)算機(jī)上的內(nèi)存,或是因?yàn)橐粋€或多個對象 類的功能被改變,在上述的本地測試以后,預(yù)編譯和編譯過程被重復(fù)且
新的可執(zhí)行文件通過廣域網(wǎng)絡(luò)被傳送給每一臺主機(jī)10,就象上面描述的那樣。如果一臺新的主計(jì)算機(jī)被簡單地加入到系統(tǒng)而沒有做其他改動,原來 編譯的可執(zhí)行代碼的一份拷貝可能簡單地通過廣域網(wǎng)絡(luò)提供給新的主計(jì) 算機(jī),使它和已存在的主計(jì)算機(jī)一樣的方式運(yùn)行。可以看到,被第一種編譯器所忽略的語句(例如注釋語句)中的系統(tǒng) 特殊要求的規(guī)范使得可以在系統(tǒng)釋放前對其基本功能進(jìn)行簡單的本地測試,這樣當(dāng)系統(tǒng)運(yùn)行期間被改動時能盡量減小主計(jì)算機(jī)10的停機(jī)時間。其他改動的實(shí)施例及修改從上文看很顯然,很多修改和替換都是可以的。例如,盡管由于以上原因,還是可以很方便地將本發(fā)明作為一個預(yù)編譯器和常規(guī)的0++編譯器合作,同樣也可以將本發(fā)明集成到一個非常規(guī)的編譯器中(事實(shí)上預(yù) 編譯器和編譯器結(jié)合很明確地包含這一點(diǎn))。自然地,本發(fā)明不僅僅對于0++可用,對于其他為分布式環(huán)境提供的 面向?qū)ο蟮恼Z言如Smalltalk (TM)同樣適用。更一般地講,也可以將相關(guān)的技術(shù)應(yīng)用到非面向?qū)ο蟮恼Z言和非分布式系統(tǒng)中。雖然本發(fā)明被描述成遠(yuǎn)程通信系統(tǒng)中包含的編譯裝置時,事實(shí)上編譯器裝置可以處于不同的權(quán)限中且通過國際遠(yuǎn)程通信網(wǎng)絡(luò)可連接到主計(jì)算機(jī)上;相應(yīng)地,在權(quán)利要求中要求保護(hù)與其使用的遠(yuǎn)程通信網(wǎng)絡(luò)結(jié)合及脫離的編譯器裝置。自然地,遠(yuǎn)程通信以外的應(yīng)用是可能的,例如共享的分布式計(jì)算。 許多其他的改動和修改對于有經(jīng)驗(yàn)的人來說是很顯然的。因此本發(fā)明旨在包含任何和所有本文所涉及的主題,而不論其是否被其后的權(quán)利要求所覆蓋。我們其它的英國專利申請9600823.0,在同一日以同樣的標(biāo)題提交, 對本發(fā)明是可用的,且結(jié)合在此作為參考。尤其是,本文所描述的生成一個類型模型的機(jī)制最好擴(kuò)展成包含每一 個對象的附加數(shù)據(jù)域,這些域說明根據(jù)本發(fā)明識別的功能操作數(shù)據(jù),然后它們被作為編譯好的可執(zhí)行代碼部分提供以便每個對象管理器108使 用。根據(jù)此方式,同樣的可執(zhí)行程序可以被提供給每一臺主計(jì)算機(jī)10且 使用存放在存儲器318中的系統(tǒng)信息的需求被避免。
權(quán)利要求
1.一種遠(yuǎn)程通信系統(tǒng),包括一個分布式控制系統(tǒng),該分布式控制系統(tǒng)包括多個互連的計(jì)算機(jī)和用于編譯計(jì)算機(jī)控制程序的編譯設(shè)備,該編譯設(shè)備包括系統(tǒng)數(shù)據(jù)存儲器,用于存儲系統(tǒng)數(shù)據(jù);預(yù)編譯器;編譯器;源代碼存儲器,用于存儲源程序;以及可執(zhí)行代碼存儲器,用于存儲由該編譯器產(chǎn)生的可執(zhí)行代碼;該預(yù)編譯器可操作用以對在該源代碼存儲器中存儲的初始源程序中的注釋進(jìn)行檢查,以找到一個或多個所要求的系統(tǒng)操作的具體規(guī)范,以及對于這樣找到的具體規(guī)范或每一個具體規(guī)范,訪問該系統(tǒng)數(shù)據(jù)存儲器中當(dāng)前存儲的相應(yīng)的系統(tǒng)數(shù)據(jù),評估所要求的系統(tǒng)操作能否被初始源程序滿足,且在得到負(fù)面評估結(jié)果時,產(chǎn)生適當(dāng)?shù)母郊釉闯绦蛘Z句和編譯器指令,并通過在其中合并所述附加源程序語句和編譯器指令來修改該源程序,以及該編譯器在該預(yù)編譯器的操作之后可操作用以響應(yīng)在該源代碼存儲器中當(dāng)前存儲的該源程序中的可執(zhí)行語句,產(chǎn)生可執(zhí)行代碼以及將這樣產(chǎn)生的可執(zhí)行代碼存儲在該可執(zhí)行代碼存儲器中。
2. 根據(jù)權(quán)利要求1的系統(tǒng),其中該編譯器是獨(dú)立于該預(yù)編譯器 的常規(guī)編譯器。
3. 根據(jù)權(quán)利要求l的系統(tǒng),其中該預(yù)編譯器和該編譯器被集成 在一起。
4. 根據(jù)權(quán)利要求1至3中任一項(xiàng)的系統(tǒng),其中所需系統(tǒng)操作的 所述一個或多個具體規(guī)范與由所述控制程序?qū)崿F(xiàn)的操作時間有關(guān)。
5. 根據(jù)權(quán)利要求4的系統(tǒng),其中所述操作時間包含一個或多個 最小操作時間、 一個平均操作時間和一個最大操作時間。
6. 根據(jù)權(quán)利要求1至3中任一項(xiàng)的系統(tǒng),其中所需系統(tǒng)操作的 所述一個或多個具體規(guī)范與所述系統(tǒng)中預(yù)期的等效記錄個數(shù)有關(guān)。
7. 根據(jù)權(quán)利要求1至3中任一項(xiàng)的系統(tǒng),其中所需系統(tǒng)操作的 所述一個或多個具體規(guī)范與該系統(tǒng)中可能被訪問的上述數(shù)據(jù)記錄的 訪問點(diǎn)的數(shù)目有關(guān)。
8. 根據(jù)權(quán)利要求1至3中任一項(xiàng)的系統(tǒng),其中所需系統(tǒng)操作的 所述一個或多個具體規(guī)范與被允許訪問上述數(shù)據(jù)記錄或其一部分的 用戶類別有關(guān)。
9. 根據(jù)權(quán)利要求1至3中任一項(xiàng)的系統(tǒng),其中所需系統(tǒng)操作的 所述一個或多個具體規(guī)范與上述數(shù)據(jù)必須立即可用的程度有關(guān)。
10. —種用于編譯分布式控制系統(tǒng)的程序的設(shè)備,該設(shè)備包括 系統(tǒng)數(shù)據(jù)存儲器,用于存儲系統(tǒng)數(shù)據(jù);預(yù)編譯器; 編譯器;源代碼存儲器,用于存儲源程序;以及可執(zhí)行代碼存儲器,用于存儲由該編譯器產(chǎn)生的可執(zhí)行代碼; 該預(yù)編譯器可操作用以對在該源代碼存儲器中存儲的初始源程序中的注釋進(jìn)行檢查,以找到一個或多個所要求的系統(tǒng)操作的具體規(guī) 范,以及對于這樣找到的具體規(guī)范或每一個具體規(guī)范,訪問該系統(tǒng)數(shù) 據(jù)存儲器中當(dāng)前存儲的相應(yīng)的系統(tǒng)數(shù)據(jù),評估所要求的系統(tǒng)操作能否 被初始源程序滿足,且在得到負(fù)面評估結(jié)果時,產(chǎn)生適當(dāng)?shù)母郊釉闯?序語句和編譯器指令,并通過在其中合并所述附加源程序語句和編譯 器指令來修改該源程序,和該編譯器在該預(yù)編譯器的操作之后可操作用以響應(yīng)在該源代碼 存儲器中當(dāng)前存儲的該源程序中的可執(zhí)行語句,產(chǎn)生可執(zhí)行代碼以及 將這樣產(chǎn)生的可執(zhí)行代碼存儲在該可執(zhí)行代碼存儲器中。
11. 根據(jù)權(quán)利要求io的設(shè)備,其中該編譯器是獨(dú)立于該預(yù)編譯器的常規(guī)編譯器。
12. 根據(jù)權(quán)利要求10的設(shè)備,其中該預(yù)編譯器和該編譯器被集 成在一起。
13. —種用于產(chǎn)生在分布式計(jì)算系統(tǒng)上執(zhí)行的代碼的方法,該方法包括產(chǎn)生初始源代碼程序,它包括定義上述代碼結(jié)構(gòu)的可執(zhí)行語句, 和包含所需系統(tǒng)操作的具體規(guī)范的注釋;訪問來自于該分布式計(jì)算系統(tǒng)存儲器的適當(dāng)?shù)南到y(tǒng)操作參數(shù),該 存儲器包含有當(dāng)前系統(tǒng)操作參數(shù);評估所需的系統(tǒng)操作是否能被該初始源程序滿足;在得到負(fù)面評估結(jié)果時,產(chǎn)生適當(dāng)?shù)母郊釉闯绦蛘Z句和編譯器指 令,并通過將該附加源程序語句和編譯器指令合并到該初始源程序中 來產(chǎn)生修改后的源程序;和響應(yīng)該初始源程序中的可執(zhí)行語句,或在上述得到負(fù)面評估結(jié)果時對該修改后的源程序進(jìn)行響應(yīng),以產(chǎn)生用于在上述分布式計(jì)算系統(tǒng) 上執(zhí)行的可執(zhí)行代碼。
14. 根據(jù)權(quán)利要求13的方法,其中上述分布式系統(tǒng)是遠(yuǎn)程通信 系統(tǒng)。
15. —種用于產(chǎn)生在分布式計(jì)算系統(tǒng)上執(zhí)行的代碼的方法,該方 法包括檢查初始源程序中的注釋,該初始源程序包括定義上述代碼結(jié)構(gòu) 的可執(zhí)行語句和包含所需系統(tǒng)操作的具體規(guī)范的注釋,以便找到所述 具體規(guī)范;對于這樣找到的每一個具體規(guī)范,訪問來自于該分布式計(jì)算系統(tǒng) 的存儲器的相應(yīng)的系統(tǒng)數(shù)據(jù);基于該具體規(guī)范和該相應(yīng)的系統(tǒng)數(shù)據(jù),評估所需的系統(tǒng)操作是否 能被該初始源程序滿足;在得到負(fù)面評估結(jié)果時,產(chǎn)生適當(dāng)?shù)母郊釉闯绦蛘Z句和編譯器指 令,并通過將該附加源程序語句和編譯器指令合并到該初始源程序中 來產(chǎn)生修改后的源程序;和響應(yīng)該初始源程序中的可執(zhí)行語句,或在上述得到負(fù)面評估結(jié)果 時,對該修改后的源程序進(jìn)行響應(yīng),以產(chǎn)生用于在上述分布式計(jì)算系 統(tǒng)上執(zhí)行的可執(zhí)行代碼。
16. —種用于產(chǎn)生在分布式計(jì)算系統(tǒng)上執(zhí)行的代碼的產(chǎn)品,包括 產(chǎn)生初始源代碼程序的裝置,該初始源代碼程序包括定義上述代碼結(jié)構(gòu)的可執(zhí)行語句,和包含所需系統(tǒng)操作的具體規(guī)范的注釋;訪問來自于該分布式計(jì)算系統(tǒng)存儲器的適當(dāng)?shù)南到y(tǒng)操作參數(shù)的 裝置,該存儲器包含有當(dāng)前系統(tǒng)操作參數(shù);評估所需的系統(tǒng)操作是否能被該初始源程序滿足的裝置; 在得到負(fù)面評估結(jié)果時、產(chǎn)生適當(dāng)?shù)母郊釉闯绦蛘Z句和編譯器指令,并通過將該附加源程序語句和編譯器指令合并到該初始源程序中來產(chǎn)生修改后的源程序的裝置;和響應(yīng)該初始源程序中的可執(zhí)行語句,或在上述得到負(fù)面評估結(jié)果時,對該修改后的源程序進(jìn)行響應(yīng),以產(chǎn)生用于在上述分布式計(jì)算系統(tǒng)上執(zhí)行的可執(zhí)行代碼的裝置。
17. —種用于產(chǎn)生在分布式計(jì)算系統(tǒng)上執(zhí)行的代碼的產(chǎn)品,包括: 檢査包括定義上述代碼結(jié)構(gòu)的可執(zhí)行語句和包含所需系統(tǒng)操作的具體規(guī)范的注釋的初始源程序中的注釋,以便找到所述具體規(guī)范的裝置;對于這樣找到的每一個具體規(guī)范,訪問來自于該分布式計(jì)算系統(tǒng) 的存儲器的相應(yīng)的系統(tǒng)數(shù)據(jù)的裝置;基于該具體規(guī)范和該相應(yīng)的系統(tǒng)數(shù)據(jù),評估所需的系統(tǒng)操作是否 能被該初始源程序滿足的裝置;在得到負(fù)面評估結(jié)果時,產(chǎn)生適當(dāng)?shù)母郊釉闯绦蛘Z句和編譯器指 令,并通過將該附加源程序語句和編譯器指令合并到該初始源程序中 來產(chǎn)生修改后的源程序的裝置;和響應(yīng)該初始源程序中的可執(zhí)行語句,或在上述得到負(fù)面評估結(jié)果 時,對該修改后的源程序進(jìn)行響應(yīng),以產(chǎn)生用于在上述分布式計(jì)算系 統(tǒng)上執(zhí)行的可執(zhí)行代碼的裝置。
全文摘要
一種遠(yuǎn)程通信系統(tǒng),包括分布式控制系統(tǒng),該分布式控制系統(tǒng)包括多個互連的計(jì)算機(jī)和用于編譯計(jì)算機(jī)控制程序的編譯設(shè)備,該編譯設(shè)備包括系統(tǒng)數(shù)據(jù)存儲器,用于存儲系統(tǒng)數(shù)據(jù);預(yù)編譯器;編譯器;源代碼存儲器,用于存儲源程序;以及可執(zhí)行代碼存儲器,用于存儲由該編譯器產(chǎn)生的可執(zhí)行代碼;該預(yù)編譯器可操作用以對在該源代碼存儲器中存儲的初始源程序中的注釋進(jìn)行檢查,該編譯器在該預(yù)編譯器的操作之后可操作用以響應(yīng)在該源代碼存儲器中當(dāng)前存儲的該源程序中的可執(zhí)行語句,產(chǎn)生可執(zhí)行代碼以及將這樣產(chǎn)生的可執(zhí)行代碼存儲在該可執(zhí)行代碼存儲器中。
文檔編號G06F9/46GK101154165SQ20071016986
公開日2008年4月2日 申請日期1997年1月7日 優(yōu)先權(quán)日1996年1月16日
發(fā)明者保羅·安冬尼·馬丁 申請人:英國電訊有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
新营市| 达尔| 北安市| 茶陵县| 庄浪县| 泾川县| 浮梁县| 滕州市| 手游| 普陀区| 漠河县| 西和县| 宁城县| 江津市| 合山市| 敦化市| 庆安县| 留坝县| 原平市| 鄯善县| 兴文县| 安阳县| 宁武县| 安义县| 平利县| 阳东县| 尼木县| 韶山市| 阳泉市| 浑源县| 伊金霍洛旗| 德兴市| 上高县| 兴安盟| 乌兰浩特市| 望谟县| 礼泉县| 宜城市| 隆林| 灵宝市| 永善县|