專利名稱:用于計算機運行期間改變軟件的系統(tǒng)的制作方法
本專利文獻的公開的部分含有受版權(quán)保護的材料。該版權(quán)所有人不反對在專利文獻或?qū)@_(當其出現(xiàn)在專利和商標局中時)、專利存檔文件或記錄的任何一項中出現(xiàn)其摹真復(fù)制品,但在其它情況下保留所有的版權(quán)權(quán)利。
本發(fā)明涉及到軟件的修改,尤其是涉及到在一個運行中的計算機系統(tǒng)中軟件的替換。
計算機軟件的一項特征就在于,它必須用修改、增加和/或刪除的方式周期性地更新,以便持續(xù)地給用戶提供適當?shù)墓δ?、使軟件盡可能完善并糾正在軟件生命期中所產(chǎn)生的錯誤和差異。當一個新的性能附加給了軟件時,希望盡可能早和盡可能容易地替換舊軟件、以使用戶得到新軟件的性能。
在特定類型的計算系統(tǒng)中,如獨立或批處理系統(tǒng),將軟件從一個版本改為另一個版本面臨的障礙較少。典型的是,在一天中用機活動較少時維修人員就可以關(guān)機。然后將老的軟件就簡單地移去,代之以軟件的較新版本。此后,該計算系統(tǒng)重新啟動,所有將來的數(shù)據(jù)處理都由軟件新版本來完成。當然,這一過程假設(shè)了新軟件已在脫機系統(tǒng)上經(jīng)過適當?shù)臋z測和調(diào)試達到了這樣的程度,即軟件人員和運行管理部門確信該軟件將適當?shù)貙崿F(xiàn)為其設(shè)計的功能、而不會產(chǎn)生要求停機然后重新啟動整個計算系統(tǒng)的不適當?shù)闹袛唷?br>
在其它類型的計算系統(tǒng)中,例如現(xiàn)代的存儲程序控制(SPC)電信交換系統(tǒng)(在該產(chǎn)業(yè)中通常稱之為“交換機”),系統(tǒng)中軟件新版本的檢測和軟件的改變都不象在獨立批處理系統(tǒng)中那樣容易。例如,離開了實際的操作處理呼叫,軟件的新版本就不能得到有效的測試。軟件必須在操作過程中測試,以便確定它在實際的操作條件下是否將發(fā)揮適當?shù)墓δ?、確定它作為一個運行的SPC交換系統(tǒng)的一部分是否能與所有其它的軟件模塊適當銜接。此外,電信交換系統(tǒng)事實上永遠不會停止運行。理想情況下,這些系統(tǒng)將永遠不停地運轉(zhuǎn)而不中斷,因為在一個社區(qū)內(nèi)要求通信設(shè)施連續(xù)服務(wù)。即,通過該系統(tǒng)所處理的電信業(yè)務(wù)是一個連續(xù)流,即使在白天或晚間的空閑時間也是同樣,并且該交換操作中的任何中斷都將導(dǎo)致該電信業(yè)務(wù)的混亂。這樣一種混亂可能對該系統(tǒng)的運行及其有效性,以及系統(tǒng)在用戶或顧客中的接受程度造成極大的損害。
電信交換的這些實時要求在兩方面提出了嚴格的要求在含有新的或改進的功能的軟件提高版本或其若干部分的測試方面,以及在交換中包含錯誤糾正或“錯誤修改”而不影響由交換正在處理的電信業(yè)務(wù)的軟件的替換方面。然而,用傳統(tǒng)的“編輯-編譯-鏈接-裝入-運行”方式把軟件成分或單元的新版本集成并入該系統(tǒng)的方法并不是令人滿意的。人們寧愿選擇這樣一種方法,即在系統(tǒng)運行過程中修改或擴展軟件的能力,而不需要停機。
人們?yōu)榻鉀Q與把新軟件并入運行中的計算機系統(tǒng)有關(guān)的問題進行了嘗試。例如,當今使用的一些并不以獨立或批處理方式運行的先進的連機運行系統(tǒng)是用與獨立或批處理系統(tǒng)中顯著不同的方式解決替換舊軟件的問題。然而,盡管比獨立系統(tǒng)中的更透明,這些系統(tǒng)仍然是人工地替換軟件,即要求各個用戶或用戶組積極地選擇是否使用軟件的新版本或修改版本來進行處理。這一選擇可以由用戶通過修改在其各自的用戶標識符之下運行的過程所利用的軟件的相互聯(lián)系來實施。這一選擇在一段時間內(nèi)-通常以數(shù)周或數(shù)月來計算-保留給用戶,在這段時間里經(jīng)過在每一個先前的層次上的成功運行而沒有任何不一致之后軟件在相互聯(lián)系的結(jié)構(gòu)中向上遷移若干層次。到達該相互聯(lián)系的頂層時,就宣告該軟件是“可運行的”,同時該系統(tǒng)的用戶就不再使用較舊的版本。新軟件插入該系統(tǒng),以及在不同層次的遷移,是由一個配置管理過程控制的,該過程是一個報告、批準、跟蹤每一個層次上的軟件版本并且實施已批準的改變的人工過程。
正如采用在批處理或獨立系統(tǒng)上更新軟件的方法那樣,以這種方式使新的或修改的軟件并入系統(tǒng)具有人所共知的弊端。這在很大程度上是一個人工的、工作量大的系統(tǒng),復(fù)雜且費時。它把何時何種情況下系統(tǒng)應(yīng)使用某種新軟件運行的控制留給了用戶,而不是實施逐步的、限定的、聯(lián)機的使用新軟件,以至于造成錯誤迅速的擴散或直接影響所有后續(xù)的操作。對新的或已修改的軟件的訪問進行控制的方法是直接連接到并且限制在執(zhí)行該軟件的單個用戶。
用于解決至少某些與在運行的計算機系統(tǒng)中的軟件更新有關(guān)的問題的其它嘗試采用了一種不同的方式。如,在一項美國專利中,包含了AndersAbrahamsson和LarsHolmqvist發(fā)明并轉(zhuǎn)讓給L.M.埃利克遜電話股份有限公司(TelefonaktiebolagatLMErics-son)的技術(shù),其中透露了一個在運行期間動態(tài)連接軟件的系統(tǒng)。然而,該系統(tǒng)涉及到一個間接尋址的復(fù)雜系統(tǒng),它需要用到一個或是特殊的或是擴展的操作系統(tǒng),以及/或者一個特別的編譯程序。該系統(tǒng)也有若干弊端,包括需要一個非標準的操作系統(tǒng)。此外,該系統(tǒng)不能與標準應(yīng)用軟件一起工作。該系統(tǒng)的局限性還在于,它僅僅涉及全部問題的一個部分,而且對于現(xiàn)有的與修改的軟件模塊之間控制的漸進測試與改變方面并未提供幫助。
在當今使用的典型的電信系統(tǒng)中,改變軟件或軟件的若干部分的問題甚至更嚴峻。雖然這樣的系統(tǒng)不能恰當?shù)胤Q為批處理或獨立系統(tǒng),但無論何時只要進行了軟件的改變系統(tǒng)的操作就會受到影響。裝入新軟件,從屬于舊軟件的數(shù)據(jù)被轉(zhuǎn)移并傳送給新軟件。在傳送進行之中的這段時間,系統(tǒng)不能登記任何新的呼叫。失去功能的這一階段可以持續(xù)一小時或更長時間,這樣就必需在操作的非峰荷時間安排軟件的變更。即使這樣,在一個電信交換系統(tǒng)中一個小時的故障時間也是相當長和代價巨大的,因為在這段時間里不能處理任何新的呼叫,也不能為應(yīng)急通信的任何要求提供服務(wù)。
因此,在電信產(chǎn)業(yè)中,在電信交換系統(tǒng)的實際操作期間,在不影響通過該系統(tǒng)正在進行的電信業(yè)務(wù)的情況下,如果能夠測試和改變軟件將是極為有用的。如果有能力通過新軟件或軟件的新的組成部分指揮一個限定的和指定部分的通訊業(yè)務(wù),從而使該軟件能夠在一個運行環(huán)境中優(yōu)先于處理正在使用的數(shù)據(jù)而被測試,這樣對電信產(chǎn)業(yè)將更為有益。這樣,在不需要特別的編譯程序的系統(tǒng)運行期間改變軟件的一種平穩(wěn)的、透明的方法就是令人高度期待的。本發(fā)明的系統(tǒng)提供了這樣一種方法。
SPC電信交換系統(tǒng)這樣的計算系統(tǒng)的動態(tài)特征,從本質(zhì)上可以描述為一系列平行的、相對獨立的事務(wù)處理(也稱為“線索”或“事件鏈”),其中每一個事務(wù)處理由若干相關(guān)活動所組成。一個事務(wù)處理一般完成對系統(tǒng)的外部用戶來說是可見的和具有功能用途的一項工作。在電信交換系統(tǒng)中一個典型的事務(wù)處理可以是一次呼叫。
采用本發(fā)明的平穩(wěn)軟件改變技術(shù)的連機軟件替代利用了面向軟件的事務(wù)處理,以及在同一時間內(nèi)既能存貯老版本也能存貯新版本的存儲器。轉(zhuǎn)到軟件新版本的一個平穩(wěn)的改變是用軟件老版本使正在進行的事務(wù)處理,即“老業(yè)務(wù)”,運行結(jié)束來實現(xiàn)的。在軟件改變已經(jīng)開始之后啟動的事務(wù)處理,即“新業(yè)務(wù)”,將用軟件的新版本以一種漸進的和受控制的方式運行。
能為本發(fā)明的平穩(wěn)的軟件改變技術(shù)所滿足的首要需求包括使用戶的干擾最小或者消失以及高水平的系統(tǒng)可用性。本發(fā)明的首要特征包括下列事實(1)在一個事務(wù)處理(如,一次呼叫)期間系統(tǒng)的一個單獨的用戶所經(jīng)歷的干擾最小或者消失,因為一個并且只有一個軟件版本控制著每一個特定的事務(wù)處理,即,從事務(wù)處理的開始到結(jié)束,系統(tǒng)或者使用軟件的老版本或者使用軟件的新版本;(2)系統(tǒng)的一個單獨的用戶沒有系統(tǒng)不可用性的經(jīng)歷,因為作了軟件改變,在此項改變期間軟件的兩種版本是平行地使用的。如果后一特征沒有出現(xiàn),一個簡單的解決辦法就是對系統(tǒng)軟件作一個簡單的脫機改變。
將由系統(tǒng)處理的數(shù)據(jù)可以根據(jù)前后關(guān)系分成兩種不同的類別(1)動態(tài)數(shù)據(jù),它是在一個事務(wù)處理期間所產(chǎn)生和使用的并且在該事務(wù)處理結(jié)束后就被消除;(2)半永久性數(shù)據(jù),這是由若干個事務(wù)處理所使用的并且生存于若干事務(wù)處理期間,如在電信系統(tǒng)中,有關(guān)與該系統(tǒng)相聯(lián)的用戶數(shù)目的數(shù)據(jù)或由特定用戶們使用的短缺數(shù)目的數(shù)據(jù)。
與要求最小干擾的連機軟件替換相聯(lián)系的一個決定性的問題在于,軟件老版本的狀態(tài)必須轉(zhuǎn)移為軟件新版本。根據(jù)本發(fā)明,采用平穩(wěn)的軟件修改技術(shù),動態(tài)數(shù)據(jù)與半永久性數(shù)據(jù)的分離使這一問題變得簡單,因為只有半永久性數(shù)據(jù)-如果存在的話-需要從軟件老版本傳送到軟件的新版本。此外,半永久性數(shù)據(jù)一般是作為一個單獨的數(shù)據(jù)庫中的對象提供的,并且比一個電信軟件系統(tǒng)中的其它部分有更難得的改變。
本發(fā)明的系統(tǒng)為將新軟件裝入電信系統(tǒng)的存貯器中(與老軟件在一起,并且除了新軟件還有老軟件)作了準備。在本發(fā)明的系統(tǒng)中,系統(tǒng)中現(xiàn)存的業(yè)務(wù)開始是由老軟件處理,測試業(yè)務(wù)是通過開關(guān)按預(yù)定的路線由新軟件處理的。然后,如果測試業(yè)務(wù)由新軟件進行了成功的處理,實際正在進行的業(yè)務(wù)(或正常業(yè)務(wù))的一部分就有選擇地由新軟件按預(yù)定路線處理,同時該實際正在進行的業(yè)務(wù)的其余部分仍由老軟件進行處理。由新軟件處理的正在進行的取樣業(yè)務(wù)的百分比可以在零到百分之一百之間變化。該取樣業(yè)務(wù)應(yīng)當由新軟件適當?shù)貓?zhí)行,所有業(yè)務(wù)都被引向新軟件。一旦由老軟件所進行的所有呼叫的處理已經(jīng)結(jié)束,系統(tǒng)就不再用到老軟件,可以從系統(tǒng)中將其消去。
另一方面,本發(fā)明的系統(tǒng)包含了一個對新的或修改的軟件進行平穩(wěn)驗證的系統(tǒng)。本發(fā)明的系統(tǒng)允許按一種漸進的和受控制的方式使數(shù)據(jù)通過新軟件而流動,但是是作為實際運行的該系統(tǒng)的組成部分。該系統(tǒng)在對電信交換系統(tǒng)的實際運行只有很小的或沒有影響的情況下提供了錯誤和差異的早期探測,因為流向新軟件的初始數(shù)據(jù)僅僅是由該系統(tǒng)產(chǎn)生的測試數(shù)據(jù)。在處理測試數(shù)據(jù)時如果電信系統(tǒng)探測到一個錯誤,就沒有更多的業(yè)務(wù)引向新軟件,這樣,即使該新軟件已經(jīng)在處理實際的數(shù)據(jù)了,對系統(tǒng)整個業(yè)務(wù)的干擾也被最小化了。
本發(fā)明的系統(tǒng)的另一方面是,該系統(tǒng)以漸進的方式使業(yè)務(wù)從老軟件引向新軟件。本發(fā)明的系統(tǒng)包含了允許這樣進行事務(wù)處理的能力,即用老軟件開始處理,到結(jié)束處理時仍用老軟件。只有隨裝入新軟件后開始的事務(wù)處理將由新軟件進行處理。本發(fā)明的系統(tǒng)的這一特征使得在由給定的老軟件到用新軟件替代它或擴展它的這段過渡時期對用戶僅有很小的干擾。此外,這一特征使要求轉(zhuǎn)換到和/或傳送到不同的一組軟件的數(shù)據(jù)量比一開始所處理的數(shù)據(jù)量減到最小。
還有另一個特征,本發(fā)明的系統(tǒng)包含了軟件的平穩(wěn)修改,這是一個過程,它把軟件的操作模型看作是一系列可辨認的和可維護的事務(wù)處理。在本發(fā)明的系統(tǒng)中,這樣一個鏈在整個處理過程中始終被辨認并維護。此外,在這一特征方面,本發(fā)明的系統(tǒng)在軟件的新、老版本同時駐留在電信交換系統(tǒng)中的這段時間內(nèi),控制著將每個事務(wù)處理連接到老版本或者是新版本上。
本發(fā)明的系統(tǒng)的另一特征是,它具有這樣的機制,即把包含在老軟件中且由老軟件直接控制的可能存在的半永久性數(shù)據(jù)轉(zhuǎn)換并移動到新軟件中。
本發(fā)明的系統(tǒng)的另一特征是,它包含一系列的方向指針,可用于在運行著的系統(tǒng)內(nèi)將事務(wù)處理動態(tài)地引向系統(tǒng)的老版本或者是新版本。該系統(tǒng)通過許多途徑包括由函數(shù)名稱尋址的消息的分析和運行期間的動態(tài)連接實現(xiàn)軟件部件的動態(tài)定向。
本發(fā)明的系統(tǒng)的另一特征是,它包含一種即時修改方法。此方法用于軟件的兩種版本不可能同時存在的時候,并且提供從軟件的老版本到軟件新版本的瞬時改變。所有的業(yè)務(wù)都自動地被引向新版本,除非探測到在新版本中存在著使用它進行操作是不可能的或不實際的這樣一些錯誤。在這種關(guān)頭,系統(tǒng)如果停機就可以通過一個新的即時修改返回到采用軟件舊版本處理所有業(yè)務(wù)。在此特征下系統(tǒng)將老版本以被動狀態(tài)保留在系統(tǒng)內(nèi)。
本發(fā)明的系統(tǒng)還有另一個特征,它包括一個連接過程(調(diào)用)的機制,它包含了一個商人和一個核心使不同類別的軟件部件之間的接口能起作用。這一連接過程調(diào)用機制在運行期間也用于實現(xiàn)內(nèi)部連接和新舊軟件單元的匯集。在使用本發(fā)明的系統(tǒng)中的這一連接過程調(diào)用機制方面,利用本發(fā)明的系統(tǒng)的另一個特征建立所需要的接口說明,使用了一種特殊的面向目標的接口描述語言并稱為ELIN。該語言含有適于為本發(fā)明的系統(tǒng)的連接過程調(diào)用特征開發(fā)接口的一種特殊構(gòu)造。
本發(fā)明的系統(tǒng)還有另一個特征,它含有用一個函數(shù)名地址對消息尋址的機制,該函數(shù)名地址包含了一個商人,或者是使可被分布在該系統(tǒng)中的軟件單元之間的接口能起作用的消息路徑選擇機制。在運行期間這一機制也用來將消息引向舊軟件或新軟件。在使用本發(fā)明的系統(tǒng)的這一尋址機制方面,利用本發(fā)明的系統(tǒng)的另一個特征建立所需要的接口說明,這種特殊的語言如上所述稱為ELIN。該語言含有適于為本發(fā)明的系統(tǒng)的消息協(xié)議方面開發(fā)接口的一種特殊構(gòu)造。
如同很容易被具有此特殊技術(shù)中的普通技巧的人們所欣賞那樣,此項發(fā)明的原則和特征也可以在除了電信交換系統(tǒng)之外的各種計算機應(yīng)用中用來幫助進行軟件在運行期間的轉(zhuǎn)換。
為理解本發(fā)明并為了進一步了解本發(fā)明的目標及其優(yōu)點,現(xiàn)在可以提交如下的描述,連同相關(guān)的圖示,在這些圖示中
圖1A-1B是將新的或修改過的軟件引入一個運行的軟件系統(tǒng)的現(xiàn)有的技術(shù)系統(tǒng)的圖示說明;
圖2是一個框圖,說明在本發(fā)明的系統(tǒng)中將處理從一個老的軟件單元重新引向一個新的軟件單元的示例過程;
圖3A-3E是根據(jù)本發(fā)明的系統(tǒng)從老軟件改變到新軟件的處理的圖示說明;
圖4是一個流程圖,說明根據(jù)本發(fā)明的系統(tǒng)在運行期間改變軟件的處理;
圖5是一個框圖,說明在本發(fā)明的系統(tǒng)中對新老兩種軟件有選擇地尋址的方法;
圖6是一個框圖,說明在本發(fā)明的系統(tǒng)的軟件內(nèi)對目標尋址的方法;
圖7是一個框圖,說明在本發(fā)明的系統(tǒng)內(nèi)尋訪軟件的方法;
圖8是一個框圖,說明在本發(fā)明的系統(tǒng)中商人尋訪軟件的方法;
圖9是一個面向目標的接口描述語言用來實現(xiàn)本發(fā)明的系統(tǒng)的方法的示意圖;
圖10是本發(fā)明的系統(tǒng)的特定方面的示意圖;
圖11是使本發(fā)明的系統(tǒng)內(nèi)給定的協(xié)議容易接口的方法的示意圖。
本發(fā)明的系統(tǒng)在某些方面采用了面向目標程序設(shè)計的原則。面向目標程序設(shè)計實質(zhì)涉及四個元素-類,目標,實例變量(或象在C++中所實現(xiàn)的數(shù)據(jù)成員),以及方法(或在C++中的成員函數(shù))。一個類簡單說來就是用以定義目標的模板,這些目標就是它們從其中產(chǎn)生的那個類的實例。類有兩種類型的組成成份-實例變量和方法。實例變量用作數(shù)據(jù)元素而方法用作函數(shù),即它們定義了一個目標的性質(zhì)。其中每一個結(jié)合成運行中的模塊上的一個簡單普通的目標。因此,程序設(shè)計是圍繞各種目標完成的,而不是圍繞待完成的函數(shù)和任務(wù)而完成的。
在此項技術(shù)中眾所周知的、面向目標程序設(shè)計的給定技術(shù)已用程序設(shè)計語言C++,以所提出的本發(fā)明的系統(tǒng)的實現(xiàn)方式,在本發(fā)明的系統(tǒng)中得以具體化。這些技術(shù)包括繼承、同素異構(gòu)和封閉。繼承可以從一個現(xiàn)存的類中推出一個新類,從而使代碼可以重復(fù)使用,因而數(shù)據(jù)和代碼可以加到一個類中,或者可以在沒有改變現(xiàn)存類的情況下改變一個類的性質(zhì)。同素異構(gòu)是這樣一種特性,它提供改變由不同目標分享的一個成分的性質(zhì)的能力,允許成分或目標的不同實例有不同的表現(xiàn),盡管它們看來是完全相同的。最后,封閉是一種將數(shù)據(jù)與處理這些數(shù)據(jù)所必需的操作全都結(jié)合在一個“屋頂”下。此外它還允許能夠保護數(shù)據(jù)使之避免多余的或不必要的訪問并將數(shù)據(jù)組織的細節(jié)隱蔽起來。
首先參考圖1A,這里闡明了在先前的技術(shù)系統(tǒng)中采用的有關(guān)將新的或修改過的軟件引入一個運行著的軟件系統(tǒng)的管理的軟件控制方案。圖1A闡明了軟件的等級層次序列,其中每一層的內(nèi)容是由一個考察板(board)的成員所控制的。對軟件的所有改變在系統(tǒng)中實現(xiàn)之前必須由該板批準。在考察板作出一個正式的決定(即需要一個軟件,它已經(jīng)經(jīng)過適當?shù)臏y試并且它不象會引起危險或使系統(tǒng)中斷運行)之前,軟件是不會被并入該系統(tǒng)的。
該等級層次可由連接在一起的幾個單獨的等級所組成,由已經(jīng)訪問過或者需要這些層次或軟件的“庫”以實現(xiàn)他或她的功能的一個個別的用戶把這些等級連接在一起。在等級1的頂端是實時、運行的軟件,它們一般使用最廣泛且控制最嚴格(“AB.D”)。在該層次之下是一個改變庫2,在后綴中附加字母C來標示(“AB.DC”)。在該等級內(nèi)運行的軟件的較低層次可以從屬于系統(tǒng)內(nèi)用戶的不同群體,并將由這些層次上的考察板進行控制。得到批準之后,新的或修改的實時軟件進入系統(tǒng),到最低的適合于改變的層次,即象在2和3那樣的以字母C結(jié)尾的層次。
一旦新的或修改過的軟件進入系統(tǒng),它就保留在所進入的層次上,直到經(jīng)過一個特定階段并且軟件已不產(chǎn)生出可探測到的錯誤為止。然后它將遷移到下一個最高層次上。有些情況下,這將需要一個特定考察板的預(yù)先批準;另一些情況下,遷移將自動產(chǎn)生,作為系統(tǒng)活動的有規(guī)律安排中的一部分。遷移對用戶是透明的,遷移或進入該等級的軟件對于用戶將是立即有用的,這些用戶是已經(jīng)將其軟件與包含新的或改變的軟件的庫中的軟件的聯(lián)系結(jié)構(gòu)化的。
正如圖1A也闡明的,對于駐留在同一系統(tǒng)中的非實時工程型軟件而言,相同的處理可以重復(fù)并同時發(fā)生。這種情況下僅有的差別在于,控制處理是由不同的一批人進行管理的,而且該處理可以不象一般在整個系統(tǒng)所用的運行的軟件對緊要過程處理那樣精密。然而,就這種工程軟件來說軟件的并入是以與運行的軟件同樣的方式而發(fā)生的。新的或修改過的軟件進入以C作為后綴中的最后一個字母的最低的適于改變的層次的那個等級,如在4。然后它在取得必要的批準的情況下,經(jīng)過一段時間按向上方向遷移,直至到達該等級的其所在部分的頂端5。在或是工程軟件或是運行軟件的情況下,一旦它已經(jīng)遷移到下一個層次它就不再駐留在較低的層次上。
是否利用進入到系統(tǒng)的等級庫中的新的或修改過的軟件留給單個的用戶或用戶組來決定。用戶可以選擇系統(tǒng)將用來把軟件聯(lián)在一起以便使用的庫的層次。他們可以選擇繞過軟件的全部較低層次,或者他們可以簡單地選擇避免最低的改變層次,該層包含有最新的和地位最低的已測試的軟件。當然,等級中每一部分的最高層次含有大批的在使用的運行軟件。
圖1B闡明了把配置控制強加給圖1A中的軟件庫的等級上、以便維持對基準和根據(jù)日常根據(jù)引入該系統(tǒng)的新的或修改過的軟件的控制的人工處理過程。如上所述,新軟件根據(jù)考察板的批準而進入等級制度中最低的適于改變的層次。如果新軟件導(dǎo)致出錯和差異,該軟件就從等級體系中移走并且如6所示返回去進行額外的軟件維護工作。一旦問題已被糾正且軟件已被重新測試,就可以根據(jù)考察板的批準,再試一次,把該軟件并入系統(tǒng)的最低的適于改變的層次。如果在所允許的固定的階段內(nèi)沒有探測到問題,軟件將自動遷移到下一個層次,除非下一層需要如7所示的另一次考察板的批準。否則,在得到適當?shù)呐鷾手笏鼘⒏鶕?jù)一個確定的安排而遷移。這一過程將連續(xù)重復(fù),直到軟件到達等級體系的那一部分里的最高層次,此時它將完全被宣布為運行軟件。
下面參見圖2,這里闡明了本發(fā)明的一個方面,描述了可以對軟件進行一種平穩(wěn)的修改或改變的機制。這種平穩(wěn)的修改特性是這樣一種性質(zhì),即在一個特定的時間階段內(nèi),允許系統(tǒng)將軟件的老版本和新版本同時存儲在主存儲器內(nèi)。新業(yè)務(wù)然后就可以逐漸地引向軟件的新版本,隨著這種引導(dǎo)的進行,就使得老的事務(wù)處理由老的軟件版本執(zhí)行到結(jié)束,同時新的事務(wù)處理就由新的軟件版本執(zhí)行。在圖2中給出了一個未加改變的軟件單元11并通過一個稱為定向點的尋址機構(gòu)12與一個老的修改單元13和一個新的修改單元14結(jié)合起來。未加改變的接口15和16將老的修改單元13和新的修改單元14與尋址機構(gòu)12連在一起。
在本發(fā)明的系統(tǒng)中一次僅替換軟件的一個部分是完全可能的并且事實上是典型的情況。將被替換的軟件稱作為一個修改單元。圖2給出了這樣一個情況,有一個修改單元R,它既在軟件老版本即老的修改單元13中,也在軟件新版本即新的修改單元R’14中。新的修改單元R’通過定義選擇有了一個接口16,它是與連接未加改變的軟件11的現(xiàn)存接口相一致的。這意味著未加改變的軟件是能夠既與老版本軟件配合也能夠與新版本軟件(修改單元)配合。
本發(fā)明的這一特征,即提供了事務(wù)處理的動態(tài)定向或重新定向,通過定向點的引導(dǎo)和使用而變得容易。這些定向點由分布式系統(tǒng)中的這樣一些區(qū)段所組成,在這些區(qū)段事務(wù)處理可用一種特別的方式定向。如圖2中所示的尋址機構(gòu)12表示定向點的實現(xiàn)以及系統(tǒng)的事務(wù)處理被各自地引向軟件的新版本或老版本的途徑。這些定向點可以按三種方式運行。首先,可以通過分析由系統(tǒng)處理的業(yè)務(wù)相關(guān)聯(lián)的函數(shù)名來觸發(fā)。根據(jù)這一操作方法,業(yè)務(wù)可以被引導(dǎo)到要求完成必要處理的特定函數(shù)的軟件新版本或是老版本。其次,事務(wù)處理可以被引導(dǎo)去執(zhí)行一個程序的軟件新版本或老版本,該程序是以作為運行時間軟件連接的結(jié)果而提供的信息為基礎(chǔ)的。
一個軟件部分的多種版本在系統(tǒng)內(nèi)一段特定時間可以共存這樣一個事實具有一系列后果。例如,本發(fā)明的這種平穩(wěn)修改特征要求,萬一改變半永久性數(shù)據(jù)表示法,軟件的不論是新版本還是老版本都能夠訪問適當?shù)臄?shù)據(jù)表示法。
下一個參見圖3A-3E,這里闡明了一個修改單元在修改的一般情況下可以經(jīng)歷的各階段。在系統(tǒng)的實際運行中,一個特定的修改單元看起來將只經(jīng)歷圖示各階段的一個子集合。此外,在實際操作中,圖示各階段并不是將要完成的系列操作的一個精確的集合。更確切地說,一個或多個階段在修改的過程中可以重復(fù)。本發(fā)明這一方面的一個重要特征在于,修改過程各階段的控制對系統(tǒng)的用戶是透明的,對應(yīng)用軟件程序本身也幾乎是透明的。圖示的各階段是由一個在系統(tǒng)內(nèi)操作各種現(xiàn)存的定向點的協(xié)調(diào)裝置控制的。
圖3A表示系統(tǒng)21含有一個體現(xiàn)于其中的修改單元R22。這代表了在修改過程開始時系統(tǒng)的狀態(tài)。此時,系統(tǒng)將所有的常規(guī)業(yè)務(wù)引向軟件老版本。圖3B表示通過與數(shù)據(jù)修改信息24結(jié)合起來的新版本R’23對修改單元22的修改。圖3A闡明了修改開始的狀態(tài),而圖3B則代表了初始或裝入階段,此時新版本R’23、以及某些情況下在數(shù)據(jù)修改信息24中所包含的新數(shù)據(jù)方案被連同老的修改單元22一起裝入。數(shù)據(jù)修改信息24在軟件開發(fā)系統(tǒng)中已被說明,基于已知知道老版本和新版本的數(shù)據(jù)表示法這樣一個事實。
圖3C用圖描述了修改處理的數(shù)據(jù)階段的改變。這一階段的目標是,在適當?shù)臅r刻,移動可能存在的半永久性數(shù)據(jù)的相關(guān)部分,如上所述,這些由老的軟件部分包含并直接控制的數(shù)據(jù)移入新的軟件部分,即用來取代老的軟件部分,以避免不可接受的干擾。本發(fā)明這一特征的實現(xiàn)是通過完成幾個不同的活動來管理的。首先,活動集中在數(shù)據(jù)修改階段,包括(a)數(shù)據(jù)從舊表示法到新表示法的轉(zhuǎn)換,其結(jié)果是替換的新軟件部分中的數(shù)據(jù)表示法比在老軟件部分中所用的數(shù)據(jù)表示法已經(jīng)作了改變;(b)數(shù)據(jù)從老的軟件部分向新的軟件部分的傳送。其次,在測試階段和完成階段即新老軟件平行使用的這些階段延續(xù)的活動,包含對或者是新軟件部分或者是老軟件部分中的半永久性數(shù)據(jù)的每一次“初始的”更新,這里在另一個軟件部分中隨后就有一個相應(yīng)的半永久性數(shù)據(jù)的更新。即,如果初始的更新是對新軟件而進行的,那么隨后的更新就是在老軟件中進行的,反之亦然。這就意味著,一般情況下,每次的數(shù)據(jù)轉(zhuǎn)換和傳送,半永久性數(shù)據(jù)都是由新或老軟件更新的。數(shù)據(jù)轉(zhuǎn)換取決于數(shù)據(jù)修改信息,它們在軟件開發(fā)期間創(chuàng)建于支持系統(tǒng)中,在初始/裝入階段被裝入目標系統(tǒng),在圖3中稱為之“數(shù)據(jù)修改信息”。
關(guān)于數(shù)據(jù)轉(zhuǎn)換,系統(tǒng)的一種可供選擇的實現(xiàn)方案可以是僅僅把數(shù)據(jù)的表示法轉(zhuǎn)換為由新軟件在一種所需要的基礎(chǔ)上所使用的形式,然后,在老軟件從系統(tǒng)中移去之前,轉(zhuǎn)換到那時為止系統(tǒng)仍不需要的全體剩余數(shù)據(jù)。同樣地,所有這些數(shù)據(jù)開始就可以轉(zhuǎn)移成新軟件所使用的表示法,以便節(jié)省存儲空間,然后,可以用一個再轉(zhuǎn)移程序來將數(shù)據(jù)轉(zhuǎn)回到由老軟件在一種所需要的基礎(chǔ)上所使用的形式,直到它被移去。
圖3C也用圖描述了修改處理的第三階段,即測試階段。該階段打算允許軟件新版本裝入系統(tǒng),最初僅對測試數(shù)據(jù)進行操作以便在使用軟件與實際業(yè)務(wù)一同運行之前確定軟件的質(zhì)量水平。該測試階段可以被分為兩個子階段(a)用測試業(yè)務(wù)測試,即只有人工產(chǎn)生的事務(wù)處理將采用新版軟件;(b)用簡單業(yè)務(wù)測試,即,經(jīng)過選擇的實際業(yè)務(wù)的一定比例,大約在零到百分之百之間的新的事務(wù)處理將被引去用新版軟件運行之。到第二個子階段結(jié)束時,實際業(yè)務(wù)的大部分或全部將在新版軟件之下運行。
測試業(yè)務(wù)是由特殊軟件或利用特殊測試電話用戶所產(chǎn)生的。測試業(yè)務(wù)是受控制的,以便保證修改單元R’23被使用。通過給測試業(yè)務(wù)加注測試標志可以確保這一結(jié)果,該測試標志將自動地在所有的定向點上把測試業(yè)務(wù)引向新版軟件,在定向點上存在一個引向新版軟件還是現(xiàn)存的老版軟件的選擇問題。對于常規(guī)的實際業(yè)務(wù),究竟是使用新版還是使用老版的軟件,將在遇到的第一個定向點上作出決定,該定向點上有一個選擇。此后,該業(yè)務(wù)或事務(wù)處理僅由所選擇的軟件版本進行處理。在后面的某個定向點如要改變到另一個軟件版本,在系統(tǒng)中是被禁止的。在此階段期間,如果測試指出了因使用新版軟件而導(dǎo)致發(fā)生的問題或錯誤,就轉(zhuǎn)回去進行修改,所有新的事務(wù)處理都被引向老版軟件。
值得注意的是,在特定的實施情況下,在成功地處理了測試業(yè)務(wù)之后使用新版軟件的樣本業(yè)務(wù)量可以減少到零。這種情況下,一旦新版軟件已被測試業(yè)務(wù)檢驗過,滿載的所有新的事務(wù)處理都可以傳送給新版軟件,當所有的舊的事務(wù)處理已經(jīng)結(jié)束時就允許新版軟件完全取代舊版軟件。
圖3D中圖示了第四階段即結(jié)束階段。在此階段,已經(jīng)在使用舊版軟件的事務(wù)處理繼續(xù)使用老的修改單元R22,直到系統(tǒng)內(nèi)不再存在使用老的修改單元R22的事務(wù)處理為止。當新的事務(wù)處理使用新版軟件時前述情況將自然發(fā)生。在此階段,兩個版本的軟件留在系統(tǒng)存儲器內(nèi),新版軟件依然被認為是處在測試階段。
結(jié)束階段可以或者是持續(xù)下去、直到使用老版軟件的所有老的業(yè)務(wù)已經(jīng)結(jié)束,或者可以是在一個特定的時間將它置為結(jié)束。如果到結(jié)束階段的最后還有任何仍使用老版軟件的老業(yè)務(wù),那么它們將被終止,或者如果可能的話,傳送給新版軟件。此后,由老版軟件所擁有的半永久性數(shù)據(jù)將不再被更新,老的修改單元將被堵住,結(jié)束階段終止。應(yīng)當注意的是,在結(jié)束階段之前的測試階段可以已經(jīng)由一長段時間來結(jié)束,在此期間所有新業(yè)務(wù)已經(jīng)被分類成為樣本業(yè)務(wù),所有老業(yè)務(wù)已經(jīng)結(jié)束。在這種情況下,結(jié)束階段將非常短,并且僅僅意味著半永久性數(shù)據(jù)不再被更新和老的修改單元被堵住。
結(jié)束階段的終止意味著整個軟件修改過程已經(jīng)終結(jié)。圖3D表示了這一狀態(tài)。
老的修改單元R22及其修改信息不再受到維護,在此關(guān)頭,它不再可能轉(zhuǎn)回去在老版軟件之下運行。此時,如果新軟件有一個問題,就要求一個全新的修改。老版軟件現(xiàn)在也可以從系統(tǒng)中移去。圖3E圖示了這一狀態(tài)。
本發(fā)明的系統(tǒng)的另一特征,包含了瞬時修改法作為平穩(wěn)修改的補充。這一方法為處理所有業(yè)務(wù)的目的提供了從老版軟件到新版軟件的即時的或瞬間的轉(zhuǎn)換能力。當應(yīng)用過程禁止兩種不同版本的軟件在系統(tǒng)內(nèi)共存時就可使用這種類型的修改。利用瞬時修改法,如果需要就可以在轉(zhuǎn)換時立即把軟件狀態(tài)變換到新版本。在系統(tǒng)中這是可能的,因為應(yīng)用軟件有能力在新版軟件中再造其狀態(tài)。本發(fā)明的系統(tǒng)的這一方面的一個重要性質(zhì)就在于,盡管修改在內(nèi)部是相當突然的,對系統(tǒng)用戶以及正被處理的業(yè)務(wù)來說則是透明的??梢栽诓灰鹑魏慰梢钥吹靡姷闹袛嗵幚淼那闆r下將業(yè)務(wù)再引向新版軟件。本發(fā)明在這一方面的另一個優(yōu)點是,老版軟件留在系統(tǒng)內(nèi),雖然是以一種被動模式存在。因此,如果已經(jīng)顯示出新版軟件有問題或有錯,返回到老版軟件就仍然是可能的,這時的處理并不需要重大的或較長的中斷。
下面參看圖4,這里給出了從老版軟件轉(zhuǎn)換為新版軟件的平穩(wěn)修改方法的流程圖。特別是,系統(tǒng)預(yù)先假設(shè)現(xiàn)存軟件在系統(tǒng)中是有效地運行著的,并從101開始,此時將新版軟件裝入內(nèi)存。在102,系統(tǒng)對數(shù)據(jù)及其在新版軟件中的改變進行復(fù)制,并連接數(shù)據(jù)到新軟件上。在103,系統(tǒng)開始用新軟件運行測試事務(wù),正常的業(yè)務(wù)在系統(tǒng)內(nèi)繼續(xù)用老軟件和老數(shù)據(jù)運行。在104,系統(tǒng)詢問“新軟件是在進行測試業(yè)務(wù)工作嗎?”如果不是,系統(tǒng)轉(zhuǎn)到105,在此點新軟件和新數(shù)據(jù)從系統(tǒng)中移走,進程在106結(jié)束。在104點如果新軟件是在進行測試業(yè)務(wù)工作,系統(tǒng)轉(zhuǎn)到107,在該點系統(tǒng)用新軟件運行實際業(yè)務(wù)的樣本,同時對常規(guī)業(yè)務(wù)的其余部分與老軟件和老數(shù)據(jù)一起進行維護。通過新軟件運行的樣本業(yè)務(wù)的百分比可以在實際業(yè)務(wù)總量的零到百分之百之間有選擇地變化。此后,在108,系統(tǒng)再次詢問新軟件是否在對樣本業(yè)務(wù)進行工作。如果不是,系統(tǒng)轉(zhuǎn)到105,新軟件和新數(shù)據(jù)移出,處理結(jié)束。然而,如果在108點處新軟件正在成功地處理樣本業(yè)務(wù),系統(tǒng)就轉(zhuǎn)到109用新軟件和數(shù)據(jù)運行將來所有的呼叫。此后,在110,系統(tǒng)再次詢問新軟件是否在工作,如果不是,轉(zhuǎn)到105,移去新軟件,在106結(jié)束。如果在110處,系統(tǒng)中新軟件正在進行處理常規(guī)業(yè)務(wù)的工作,系統(tǒng)就詢問所有老的事務(wù)處理在系統(tǒng)內(nèi)是否已經(jīng)完成,這是在111處。如果在111處得到的回答為“不是”,就在113處詢問用于改變的時間期限是否已滿,如果期限未滿,就在109處繼續(xù)做(1)用新軟件執(zhí)行所有新的事務(wù)處理,(2)用老軟件執(zhí)行所有老的事務(wù)處理,直到在111處接收到一個“是”或者在113處時間期限已滿。如果在113處時間期限已滿,系統(tǒng)就終止或傳送所遺留的呼叫,并轉(zhuǎn)到112。如果在111處接收的是一個“是”,系統(tǒng)就移到112,老軟件與老數(shù)據(jù)一道被移走。系統(tǒng)在從老軟件轉(zhuǎn)到新軟件的運行期間,在沒有不適當?shù)厥宫F(xiàn)有業(yè)務(wù)遭受危險或延遲的情況下,在電訊交換系統(tǒng)內(nèi)完成了一次交換轉(zhuǎn)換。
下面看圖5,這里給出了表120,其中包含一個呼叫標識(ID)類目和一個ID指針類目。對于系統(tǒng)內(nèi)的每一個是測試的調(diào)用尋址,給出了一個指向新軟件121的指針,與此同時對于所有包含常規(guī)標識的呼叫標識(ID),給出了指向老軟件122的指針。圖5闡明了這樣一個方法,據(jù)此方法本發(fā)明的系統(tǒng)能夠?qū)⑵胀ǖ?、實際的業(yè)務(wù)和測試業(yè)務(wù)適當?shù)匾蚝线m的軟件版本。
盡管這是關(guān)于在本發(fā)明的系統(tǒng)內(nèi)對老軟件和新軟件的尋址方式的一種概括的過分簡單的解釋,事實上,詳細的連接過程調(diào)用機制被用來在分別裝入的程序單元之間創(chuàng)建動態(tài)的運行時間匯集。即,在替換一個程序單元時,軟件的新老版本要共存一段時間,直到新版本經(jīng)驗證是正確的并且由老版本所執(zhí)行的活動可以如上所述予以終止。一種合適的連接過程機制在同樣是未決的一項美國專利申請書中已被揭示,該專利申請書的名稱是“計算機系統(tǒng)中用于同時執(zhí)行軟件模塊的動態(tài)運行時間匯集的系統(tǒng)”,由K.Lundin等人發(fā)明并轉(zhuǎn)讓給L.M.埃利克遜電話股份有限公司(TelefonaktiebolagetLMEricsson),特在此引用使之具體化。本發(fā)明的系統(tǒng)將顧客作為借助于連接過程調(diào)用通過一個接口訪問軟件的一種途徑。在裝入期間,對連接過程調(diào)用可訪問的所有接口對核心中的一個商人函數(shù)都是公布的。每個接口是用其標識和地址公布的,這涉及到從接口創(chuàng)建一個目標的一種方法。在軟件版本間的匯集在運行時間內(nèi)完成,每當對一個特定的接口建立了一個目標,就向此后將被調(diào)用的創(chuàng)建方法的商人或地址發(fā)出一個請求,并向所創(chuàng)建的目標返還一個目標指針。
如圖6所示,類X131的每個目標由目標-數(shù)據(jù)133內(nèi)的表132通過一個目標指針134進行調(diào)用,這里目標指針134本身又指向目標131內(nèi)的一個操作表135,即其中包含該類目標所定義的操作定義的地址。服務(wù)員的程序單元內(nèi)的操作表所涉及的一些地址存貯在目標-數(shù)據(jù)中。操作表本身又含有屬于指定接口的操作的地址。因為在目標-數(shù)據(jù)內(nèi)的操作表地址的存儲單元和操作表中的地址所存貯的順序是固定的和已知的,就可以在不借助于商人的情況下調(diào)用操作。在接口中可以在沒有商人的情況下被調(diào)用的一種操作是刪除所創(chuàng)建的一個目標。
這些操作表的使用提供了達到同素異構(gòu)的能力,這里的同素異構(gòu)是可以通過使用例如程序設(shè)計語言C++及其關(guān)于虛擬表的構(gòu)造而實現(xiàn)的一個概念。同素異構(gòu),意味著“多形狀”,是一種可用以改變由不同目標所分享的一個組成成份的性質(zhì)的技術(shù)。換句話說,一個組成成份在各種情況下可以看起來是相同的,但是對于它所聯(lián)系的不同的目標可以用有點不同的方式去完成。同素異構(gòu)是有用的,它可允許創(chuàng)建相關(guān)聯(lián)的目標族,即,這樣的目標具有共同的來源或基礎(chǔ),但它們在不同的情況下以不同的方式去完成。這就允許一個目標族里用同樣的名稱的每個目標含有多種方法或功能,盡管對于每個目標的多種方法的實際代碼可以有很大的差別。本發(fā)明的系統(tǒng)使用同素異構(gòu),以及面向目標程序設(shè)計的其它原理。然而,本發(fā)明的系統(tǒng)以一種新的更有用的方式實現(xiàn)和擴展了這些原理,以達到執(zhí)行期間不同軟件版本的動態(tài)的、透明的內(nèi)部連接。
下面參看圖7,那里圖示了這樣一個事實,即連接過程調(diào)用技術(shù)體現(xiàn)在核心142中所包括的商人141的概念中,核心142使一對軟件單元143和144之間具有接口關(guān)系,143和144中分別含有目標的一個顧客類145和一個服務(wù)員類146。圖7詳細給出了為在也如圖6中所示的系統(tǒng)內(nèi)創(chuàng)建目標所要求的步驟。
目標是一種語言構(gòu)造,它將數(shù)據(jù)和代碼或函數(shù)包含在一個單個的程序包或單元之內(nèi)。因為它們可以包含數(shù)據(jù)和代碼,它們就作為微型的、獨立的程序。因此,在創(chuàng)建更復(fù)雜的程序時就可以把它們作為積木塊而不必重新為這些功能進行所需的編碼。因為它們可以被單獨地維護和修改,所以程序的維護和修改就簡化了。
類是用以定義目標的模板,而目標則是類的一個例子。一個類包含兩種類型成分,實例變量或數(shù)據(jù)成員和方法或成員函數(shù)。為支持計算機系統(tǒng)的顧客或非服務(wù)員節(jié)點,通過利用作為服務(wù)員類的一種媒介的接口說明自動產(chǎn)生出一種顧客類。系統(tǒng)的顧客節(jié)點從顧客類中調(diào)用操作,以確信調(diào)用被傳送給了服務(wù)員類中駐留的軟件工具。因此,所有與動態(tài)匯集功能相關(guān)的編碼都可以在顧客類中找到。
類說明控制著這樣一種方式,編譯程序?qū)催@種方式在目標-數(shù)據(jù)中存儲地址,操作表中的地址將依該方式的次序加以陳述。某些類說明是由系統(tǒng)自動產(chǎn)生的。當一個目標在系統(tǒng)中創(chuàng)建出來時,其“創(chuàng)建方法”部分函數(shù)就可以通過向定位在核心142內(nèi)的操作系統(tǒng)的商人141部分發(fā)出一項請求來加以定位。商人141含有由系統(tǒng)內(nèi)的連接過程調(diào)用可訪問的所有類的所有接口信息,即,它含有每個目標可被其它目標訪問或訪問其它目標的信息。
圖8闡明了程序單元的老軟件和新軟件在運行期間通過連接過程調(diào)用進行內(nèi)部連接和匯集所采用的方法。核心142內(nèi)的商人141可以將軟件單元151的執(zhí)行引向或者是老軟件單元152或者是新軟件單元153。在進行替換時,來自老版本和新版本的服務(wù)員類每種都有其在商人141中所公布的接口。商人141對每個項目都提供了兩個地址入口,一個是到老軟件單元152,另一個是到新軟件單元153。在替換之前所創(chuàng)建的事務(wù)處理將接收到一個指向老軟件單元152及其服務(wù)員類的地址,而另一個事務(wù)處理可以接收到指向服務(wù)員類的新版本的地址。
替換完成以后,采用舊軟件單元152的事務(wù)處理已經(jīng)結(jié)束以后,老軟件單元152可以從存儲器中移走,由老軟件單元152中的服務(wù)員類所公布的接口就可以撤銷。如果在老軟件單元內(nèi)所有的事務(wù)處理運行結(jié)束之前試圖從存儲器中撤銷這些服務(wù)員類,系統(tǒng)就從核心142中產(chǎn)生一個例外調(diào)用。然后系統(tǒng)內(nèi)的例外管理事務(wù)處理就允許未結(jié)束的處理有一個機會,將它自己重新定向并且使用新軟件單元153,或者否則就終止它。
本發(fā)明中使用連接過程調(diào)用技術(shù)時,接口說明是用一種稱為ELIN的面向目標的接口描述語言書寫的,該語言在一項美國專利申請中被揭示,該專利以K.Lundin的名義申請,并轉(zhuǎn)讓給L.M.埃利克遜電話股份有限公司(TelefonaktiebolagetLMEricsson),特在此引用使之具體化。在該語言中,有一個特別的構(gòu)造(類),它特別有助于連接過程調(diào)用接口的說明。ELIN語言中的類是特定類型的目標所提供的接口的一種說明。如果使用一種面向目標的程序設(shè)計語言,這些目標就尤其適合作為一個類的例子而加以實現(xiàn)。ELIN語言中連接過程調(diào)用接口的說明包括下列信息。
(a)說明的名稱;
(b)用作該名稱的基礎(chǔ)的其他接口;
(c)(用于創(chuàng)建示例的)一個或多個設(shè)計師;以及(d)零個或多個方法說明,其中每個包括一種方法名稱,主題,返回類型和例外。
如下所述,是一個代碼形式的接口說明的示例,它可以被用作為該連接過程調(diào)用技術(shù)的一部分,它描述了堆棧目標的一個接口。
CLASSStack;
BASECLASSTelecomObject;
ACCEPTSCONSTRUCTOR(INsizeInt);
METHODpush(INdataInt);
METHODpop()RETURNSInt;
DESTRUCTOR();
ENDCLASSStack;
1992L.M.埃利克遜電話股份有限公司這一接口說明定義了一類堆棧目標,其基礎(chǔ)類被稱為“電訊目標(TelecomObject)”。此類目標可以從列出的函數(shù)成員中接收消息呼叫。有了這一類所標示的基礎(chǔ),就表明,還有一個稱為“電訊目標”的類的這種說明。該基礎(chǔ)類也有特定的詳細說明的方法,作為該基礎(chǔ)類的一個示例的當前類將繼承這些方法。在上述類定義中所說明的函數(shù)成員或方法是在基礎(chǔ)類中所說明的函數(shù)成員或方法之外的。總之,上述代碼包含了一種類說明,它是在系統(tǒng)內(nèi)可創(chuàng)建的接口說明的類型之一。
一個接口可以由另一個接口推出,那么后一個接口就被稱為所推出接口的基礎(chǔ)接口。接口可以由一個以上的其它接口推出,所推出的接口繼承了作為其基礎(chǔ)的每一個接口的操作。此外,所推出的接口要說明它自己附加的操作,盡管它對從其基礎(chǔ)接口所繼承的那些同名操作可以不加定義。應(yīng)該明白,繼承僅僅影響類的接口層次,而不影響執(zhí)行層次。
如圖9所示,本發(fā)明的系統(tǒng)也包括存根-代碼生成工具162,它用來證明顧客與服務(wù)員之間的協(xié)調(diào),在運行期間顧客與服務(wù)員是通過一個接口動態(tài)地連接在一起的。該接口是用一種語言無關(guān)形式加以說明的,但是采用面向目標的示例說明。存根-代碼生成處理確保達到向幾種程序設(shè)計語言之一的變換,在以下的部分里,有關(guān)于如何實現(xiàn)C++中的變換的簡短說明。參看圖9,其中闡明了在本發(fā)明的系統(tǒng)中一個接口說明161采用存根生成工具162而和一組所生成的文件164相關(guān)的方法。圖9尤其是闡明了在該語言中完成變換的C++的整個結(jié)構(gòu)。接口說明在本發(fā)明的系統(tǒng)中使用時以面向目標的接口描述語言ELIN寫出,它類似于程序設(shè)計語言C++中所用的類定義。與此相似,通過目標的訪問操作技術(shù)類似于程序設(shè)計語言C++處理虛擬函數(shù)的方法。因此,圖9所示的關(guān)于C++的變換對于本發(fā)明的系統(tǒng)這一方面的操作是有指導(dǎo)性的。
存根生成工具162既為顧客一方也為服務(wù)員一方產(chǎn)生兩個文件,一個以“.h”(header的首字母)為后綴,一個以“.cc”(code的首字母)為后綴。對于顧客,“.h”或首標(header)文件包括兩個類定義。一類是服務(wù)員的“.h”或首標文件里的相應(yīng)類別的精確復(fù)制件。這就確保了顧客與服務(wù)員之間的協(xié)調(diào)一致,并且使顧客調(diào)用由服務(wù)員創(chuàng)建的目標成為可能。然而,這一類的設(shè)計師是專有的,從而使該類不能被用來在堆棧上創(chuàng)建自動的目標。第二類是將用于顧客的一個類,它用作一個媒介,通過它可以訪問由服務(wù)員創(chuàng)建的目標。
對于服務(wù)員,由存根生成工具162產(chǎn)生同樣的兩個文件-“.h”(header)文件和“.cc”(code)文件。“.h”文件的內(nèi)容包括一個類定義,它將確保與顧客的協(xié)調(diào)一致。就是這個類被用作工具的基礎(chǔ)。該工具可以直接以所產(chǎn)生的類為基礎(chǔ),或者說所產(chǎn)生的類可以用作推出其它類的基礎(chǔ)。“.cc”文件含有“創(chuàng)建方法”的一個輪廓以及實現(xiàn)創(chuàng)建方法地址的公開的代碼。創(chuàng)建方法的主體擔負著創(chuàng)建一個與所產(chǎn)生的類兼容的目標和返還一個指向也如圖6所示的新創(chuàng)建目標的指針的工作。
為顧客和服務(wù)員兩方面產(chǎn)生不同的然而是兼容的類定義而不是一個共享的類定義,這樣做有幾條理由。首先,它為顧客和服務(wù)員中的成員提供了不同層次的清晰度。例如,一個設(shè)計師在服務(wù)員中必須是公共的,但如果它是駐留在顧客中就并不需要是公共的。其次,如果使用不同的類,在為測試的目的把顧客和服務(wù)員程序連接在一起時就不會遇到名稱沖突的問題。下面參看圖10,這里給出了一個特定的框圖布局,闡明了給定的示例代碼模塊及在本發(fā)明的系統(tǒng)中它們的相互關(guān)系。圖10闡明了給定的所產(chǎn)生的文件和所書寫的說明的邏輯結(jié)構(gòu),它們在本發(fā)明的系統(tǒng)內(nèi)可被實現(xiàn)。在最高層次,公共接口說明171定義了一個類“X”以及該類將接受調(diào)用時采用的方法。該類的邏輯下屬,在定義的下一層次,是接口說明171的一個用戶單元172的說明書,和公共接口說明171的一個供應(yīng)者單元173的說明書。用戶單元說明書172定義了公共接口-類別X的一個顧客。供應(yīng)者單元說明書173定義了類X的一個服務(wù)員。
在單元說明書172和173之下的下一邏輯層次是為用戶和供應(yīng)者分別產(chǎn)生的類定義。為X用戶(XUser)所產(chǎn)生的類定義174闡明了既為公共用途也為個人用途所定義的特定的用戶類。為X供應(yīng)者(Xprovider)所產(chǎn)生的類定義175闡明了關(guān)于供應(yīng)者數(shù)據(jù)和函數(shù)的特定的公共定義和專有定義。
最后參看圖11,它闡明了一個協(xié)議說明是如何被用來產(chǎn)生存根-代碼的,這樣確保了使用消息的兩個通訊當事人之間完全的協(xié)調(diào)一致。存根-代碼的結(jié)構(gòu)如圖11所示,包括用戶書寫代碼181,生成代碼182和核心代碼183。在分布式和模塊的計算機系統(tǒng)中,它的一個例子是電訊系統(tǒng),使用許多應(yīng)用層次的協(xié)議以方便在系統(tǒng)各部分之內(nèi)及系統(tǒng)各部分之間的通訊。
協(xié)議可以看作是系統(tǒng)內(nèi)各對當事人之間契約的集合,這些當事人同意按照一種特定的方式和格式通訊。有的協(xié)議可以被描述為顧客-服務(wù)員協(xié)議,在那里僅有一方當事人是引發(fā)者。另外一些協(xié)議,稱為同等協(xié)議,允許兩方當事人引發(fā)通訊。與其它現(xiàn)存的系統(tǒng)不同,在本發(fā)明的系統(tǒng)中,當事人之間全部的協(xié)定或協(xié)議是用一個單獨的接口說明加以說明的,該接口說明是與當事人的具體的執(zhí)行過程相分離的。因此,這意味著該單獨的說明可以用作為一個普通的協(xié)議,它可以系統(tǒng)內(nèi)部任何一對當事人之間重新用作協(xié)議。
本發(fā)明的系統(tǒng)以一種有專利權(quán)的面向目標的接口描述語言ELIN來實現(xiàn)單獨的接口/協(xié)議說明。例如,同等類型的協(xié)議說明包含下列組成成份(1)操作形式上被分為協(xié)議,每個協(xié)議有兩方當事人;(2)相互作用的約束的說明書。同等協(xié)議說明的存在與使用協(xié)議執(zhí)行通訊的執(zhí)行過程相分離。同等協(xié)議說明根據(jù)下列格式而組成(1)協(xié)議名稱;(2)第一方當事人的名稱及其可接受的操作表;(3)第二方當事人的名稱及其可接受的操作表;(4)相互作用約束(可選的)。
以下為帶有相互作用約束的代碼形式的一個協(xié)議說明的示例。該協(xié)議說明中所包含的信息可以用于生成存根代碼PROTOCOLCommunicationService;
PARTYDataProducer;
ACCEPTSStartTransmission,TerminateTransmission,ReSendData;
ENDPARTYDataProducerPARTYDataConsumerACCEPTSStringData,IntegerData,NoMoreDataToSend;
ENDPARTYDataConsumer;
INTERACTIONSTATESTARTWHENStartTransmissionTHENStarted;
STATEStartedWHENTerminateTransmissionTHENSTART;
WHENIntegerDataTHENDataphase;
WHENStringDataTHENDataphase;
STATEDataphaseWHENIntegerDataTHENDataphase;
WHENStringDataTHENDataphase;
WHENResendDataTHENDataphase;
WHENNoMoreDataToSendTHENDataphaseEnded;
STATEDataphaseEndedWHENResendDataTHENResendOrdered;
WHENTerminateTransmissionTHENSTART;
STATEResendOrderedWHENStringDataTHENDataphaseEnded;
WHENIntegerDataTHENDataphaseEnded;
ENDPROTOCOLCommunicationService;
1992 L.M.埃利克遜電話股份有限公司在系統(tǒng)內(nèi)通訊的一方當事人的邏輯結(jié)構(gòu)也在圖11中給出。如圖11所示,ELIN語言被用于描述分布跨越該系統(tǒng)的目標之間的通訊,以及在該系統(tǒng)內(nèi)所使用的數(shù)據(jù)類型之間的通訊。在本發(fā)明的這一特征中使用的和定義的協(xié)議允許設(shè)備起相同作用,在任何一方當事人引發(fā)通訊的情況下。并不預(yù)先定義任何一方在通訊中是主方或是從方。本發(fā)明的系統(tǒng)的這一特征允許在不同的和遙遠的地方開發(fā)和操作的系統(tǒng)容易進行相互間的操作,只要每個系統(tǒng)是使用單獨加以說明的接口開發(fā)的。本發(fā)明的系統(tǒng)的這一方面的協(xié)議說明與該系統(tǒng)內(nèi)任何應(yīng)用工具是分離的和有區(qū)別的。
如圖11中所進一步闡明的,用戶書寫的代碼181作為通訊協(xié)議的一方當事人既可根據(jù)協(xié)議說明發(fā)送消息也可根據(jù)協(xié)議說明接收消息。數(shù)據(jù)接收過程184,185和186處理按協(xié)議到達的輸入消息。數(shù)據(jù)發(fā)送過程187,188,189包含由存根生成工具所自動生成的代碼,以便在用戶呼叫時根據(jù)協(xié)議說明建立并發(fā)送消息到系統(tǒng)中去。接收消息的活動190和發(fā)送消息的活動191都是通過一個接口媒介192引導(dǎo)的,192是生成代碼182的一部分。該接口說明192是生成代碼的命令部分,為了接口和協(xié)議適當?shù)匕l(fā)揮作用該部分必須給出。
調(diào)度程序193是一個函數(shù),它由存根生成工具產(chǎn)生并由協(xié)議說明中加以說明的每個輸入消息調(diào)用。調(diào)度程序193接收消息,對消息進行譯碼,從消息主體中分離出消息標識符,然后將其如圖中194所示分配給將以此工具書寫的過程。
協(xié)議警察195是生成代碼182的一個可選部分,用來監(jiān)督業(yè)務(wù)并確定在任一給定的瞬間通訊雙方當事人在發(fā)送或接收消息時是否遵守了接口規(guī)則。協(xié)議警察195在遵守協(xié)議規(guī)則的監(jiān)督方面象一臺狀態(tài)機器那樣運作。該狀態(tài)機器的邏輯在上面提供的示例代碼中已作表達。
在圖11所示的核心代碼183中駐留了一個通訊端口196。該通訊端口196由本發(fā)明的系統(tǒng)的尋址機制視為一個被動的支持工具。通訊端口196不知道通過它正在傳遞的協(xié)議,但是用以使通訊更加便利。通訊支持197是存在于操作系統(tǒng)中的總的通訊支持。它可以在同一處理器中的處理之間進行操作,也可以對定位在不同的處理器上的處理進行操作。如果它正在對分布在處理器之間的目標進行操作,通訊支持197就將組成一個硬件通訊鏈路。在圖11中包含的整個說明的鏡象將代表發(fā)生在該支持中的相應(yīng)活動以及在系統(tǒng)中第二個通訊當事人的操作。
如上所述,本發(fā)明的系統(tǒng)使得運行期間新軟件與舊軟件的蘊含或連接成為可能,這種蘊含或連接所采用的方式使得軟件既能被實時有效地測試,也能在遠程通訊網(wǎng)絡(luò)中平穩(wěn)地和透明地被替換,而該網(wǎng)絡(luò)中的電訊業(yè)務(wù)并不受干擾。
這樣,可以相信,本發(fā)明的操作和構(gòu)造從前面的描述中已經(jīng)顯而易見。圖示的和描述的方法、裝置和系統(tǒng)已經(jīng)按所愿意的方式來刻劃,人們將容易看到,在不離開以下的權(quán)利要求所定義的本發(fā)明的精神和范圍的情況下,是能夠進行各種改變和修改的。
權(quán)利要求
1.一種在對現(xiàn)有軟件處理現(xiàn)有數(shù)據(jù)沒有重大干擾的情況下將計算機裝置的數(shù)據(jù)處理控制自動傳遞給新軟件的方法,為與計算機裝置一起使用,同時它用現(xiàn)有軟件處理現(xiàn)有數(shù)據(jù)并且接收待處理的新數(shù)據(jù),其特征在于采用下列步驟在計算機裝置中裝入新軟件;模仿現(xiàn)有軟件處理實際的數(shù)據(jù),用新軟件處理測試數(shù)據(jù);在成功地處理了所述的模仿實際數(shù)據(jù)的測試數(shù)據(jù)之后,自動地將全部的數(shù)據(jù)處理控制傳遞給新軟件。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述的使用和自動傳遞步驟之間還采用下列步驟隨著新軟件成功地處理了測試數(shù)據(jù),允許新軟件對實際數(shù)據(jù)的一個樣本部分進行處理,否則這些數(shù)據(jù)將是由老軟件進行處理的;在新軟件成功地處理了所述的預(yù)先確定的實際數(shù)據(jù)的樣本部分之后,將所述的全部的數(shù)據(jù)處理控制自動傳遞給新軟件。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于在所述的允許和自動傳遞步驟之間還采用下列步驟用新軟件處理所有的新數(shù)據(jù),同時現(xiàn)有軟件處理現(xiàn)有數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于所述的自動傳遞步驟是在用現(xiàn)有軟件處理現(xiàn)有數(shù)據(jù)結(jié)束之后完成的。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于所述的自動傳遞步驟是為響應(yīng)新軟件對所有新數(shù)據(jù)的成功處理和現(xiàn)有軟件對現(xiàn)有數(shù)據(jù)處理的結(jié)束而執(zhí)行的。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于不但現(xiàn)有數(shù)據(jù)而且新數(shù)據(jù)都是在一系列事務(wù)處理中得到處理的,現(xiàn)有數(shù)據(jù)和新數(shù)據(jù)兩者都包括動態(tài)數(shù)據(jù)和半永久性數(shù)據(jù),動態(tài)數(shù)據(jù)是在每個事務(wù)處理的處理期間所建立和使用的并且在處理結(jié)束時消除的數(shù)據(jù),半永久性數(shù)據(jù)是由許多個事務(wù)處理的處理過程所使用并在許多個事務(wù)處理的處理過程中存在的數(shù)據(jù),所述的方法包括附加的步驟將數(shù)據(jù)從現(xiàn)存軟件傳遞到新軟件。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于只有半永久性數(shù)據(jù)從現(xiàn)存軟件傳遞到新軟件。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,新軟件中數(shù)據(jù)的表示法不同于現(xiàn)有軟件中數(shù)據(jù)的表示法,所述的將數(shù)據(jù)從現(xiàn)有軟件傳遞到新軟件的步驟包括這樣一個步驟將所述的數(shù)據(jù)從所述的現(xiàn)行表示法轉(zhuǎn)移為所述的新表示法。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于將所述的數(shù)據(jù)從所述的現(xiàn)行表示法轉(zhuǎn)換為所述的新表示法的所述的步驟是根據(jù)所述新軟件所需的基礎(chǔ)而完成的。
10.根據(jù)權(quán)利要求8所述的方法,其特征在于將所述的數(shù)據(jù)從所述的現(xiàn)行表示法轉(zhuǎn)換為所述的新表示法的所述的步驟包括隨著下述附加的步驟而將所有的所述數(shù)據(jù)一次轉(zhuǎn)換到新表示法根據(jù)所述老軟件所需的基礎(chǔ)將所述的數(shù)據(jù)從所述的新表示法再轉(zhuǎn)換為所述的現(xiàn)行表示法。
11.根據(jù)權(quán)利要求6所述的方法,其特征在于,接著所述的從現(xiàn)有軟件傳遞數(shù)據(jù)到新軟件的步驟,包含附加的步驟為響應(yīng)或者在現(xiàn)有軟件內(nèi)或者在新軟件內(nèi)對半永久性數(shù)據(jù)每次的初始更新,在另一種軟件內(nèi)更新半永久性數(shù)據(jù)。
12.根據(jù)權(quán)利要求8所述的方法,其特征在于,接著將所述數(shù)據(jù)從現(xiàn)行表示法轉(zhuǎn)換到新表示法的所述的步驟,包含附加的步驟為響應(yīng)或者在現(xiàn)有軟件內(nèi)或者在新軟件內(nèi)對半永久性數(shù)據(jù)每次的初始更新,在另一種軟件內(nèi)更新半永久性數(shù)據(jù)。
13.根據(jù)權(quán)利要求3所述的方法,其特征在于所述的自動傳遞步驟的完成是響應(yīng)一個預(yù)選時間階段的期滿,該時間階段是隨著在新軟件內(nèi)處理所有新數(shù)據(jù)所述步驟的開始而持續(xù)的,與此同時現(xiàn)有軟件處理現(xiàn)有數(shù)據(jù)。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于在所述的預(yù)選時間階段期滿后,仍由老軟件處理的所有事務(wù)處理都被強制終止。
15.根據(jù)權(quán)利要求13所述的方法,其特征在于在所述的預(yù)選時間階段期滿后,仍由老軟件處理的所有事務(wù)處理都被傳遞給新軟件以結(jié)束處理。
16.根據(jù)權(quán)利要求13所述的方法,其特征在于在所述的預(yù)選時間階段期滿后,能夠比作為結(jié)果而發(fā)生的干擾壽命更長的所有事務(wù)處理都將被試圖傳遞給新軟件進行處理,而所有其它的事務(wù)處理將被終止。
17.一種在電訊交換系統(tǒng)內(nèi),在免除系統(tǒng)干擾的重大風險的情況下,在系統(tǒng)連續(xù)運行期間,平穩(wěn)地和自動地從老的呼叫處理軟件改變到新的呼叫處理軟件的方法,其特征在于采用下列步驟在老軟件繼續(xù)處理呼叫的同時,有效地將新軟件裝入系統(tǒng)內(nèi);通過系統(tǒng)運行大量的測試呼叫并且將所有所述的測試呼叫經(jīng)路徑選擇到新軟件從而進行處理;為響應(yīng)新軟件對所述測試呼叫的成功處理,將系統(tǒng)所接收的所有新呼叫經(jīng)路徑選擇到新軟件;為響應(yīng)新軟件未能成功地處理所述的測試呼叫,將系統(tǒng)所接收的所有新呼叫經(jīng)路徑選擇到老軟件。
18.根據(jù)權(quán)利要求17所述的方法,其特征在于,在運行和對所有新呼叫進行路徑選擇之間完成的步驟包括為了響應(yīng)在用老軟件繼續(xù)處理實際呼叫的剩余部分的同時、新軟件對所述測試呼叫的成功處理,經(jīng)路徑選擇一批所選數(shù)量的實際呼叫到新軟件從而得到處理;以及其中為了響應(yīng)新軟件對所述測試呼叫及所述所選數(shù)量的實際呼叫的成功處理,完成將系統(tǒng)所接收的所有新呼叫都經(jīng)路徑選擇到新軟件的所述步驟。
19.根據(jù)權(quán)利要求17或18所述的方法,其特征在于,也包含下列步驟為響應(yīng)新軟件對所有新呼叫的成功處理,從系統(tǒng)中移去老軟件并終止老軟件處理的所有呼叫。
20.根據(jù)權(quán)利要求17所述的方法,其特征在于,不但是現(xiàn)有呼叫而且是新呼叫都是在一系列事務(wù)處理中得到處理的,現(xiàn)有呼叫和新呼叫兩者都既與動態(tài)數(shù)據(jù)相關(guān)又與半永久性數(shù)據(jù)相關(guān),動態(tài)數(shù)據(jù)是在每個事務(wù)處理的處理期間所建立和使用的并且在處理結(jié)束時消除的數(shù)據(jù),半永久性數(shù)據(jù)是由許多個事務(wù)處理的處理過程所使用并在許多個事務(wù)處理的處理過程中存在的數(shù)據(jù),所述的方法包括附加的步驟將數(shù)據(jù)從老軟件傳遞到新軟件。
21.根據(jù)權(quán)利要求20中所述的方法,其特征在于只有半永久性數(shù)據(jù)被從老軟件傳遞到新軟件。
22.根據(jù)權(quán)利要求20中所述的方法,其特征在于,新軟件中的數(shù)據(jù)表示法不同于老軟件中的數(shù)據(jù)表示法,數(shù)據(jù)從老軟件傳遞到新軟件的所述步驟中包含下述步驟所述數(shù)據(jù)從所述老的表示法轉(zhuǎn)換為所述新的表示法。
23.根據(jù)權(quán)利要求22中所述的方法,其特征在于,將所述數(shù)據(jù)從所述現(xiàn)行表示法轉(zhuǎn)換為所述新的表示法的所述步驟是根據(jù)所述新軟件所需的基礎(chǔ)而完成的。
24.根據(jù)權(quán)利要求22中所述的方法,其特征在于,將所述數(shù)據(jù)從所述現(xiàn)行表示法轉(zhuǎn)換為所述新的表示法的所述步驟包括隨著下述附加的步驟而將所有所述的數(shù)據(jù)一次轉(zhuǎn)換到所述的新表示法根據(jù)所述的老軟件所需的基礎(chǔ)將所述的數(shù)據(jù)從所述的新表示法再轉(zhuǎn)換為所述的現(xiàn)行表示法。
25.根據(jù)權(quán)利要求20中所述的方法,其特征在于,接著將數(shù)據(jù)從老軟件傳遞到新軟件的所述步驟,包含附加的步驟為響應(yīng)或者在老軟件內(nèi)或者在新軟件內(nèi)對半永久性數(shù)據(jù)的每次的初始更新,在另一種軟件內(nèi)更新半永久性數(shù)據(jù)。
26.根據(jù)權(quán)利要求22所述的方法,其特征在于,接著將所述數(shù)據(jù)從老的表示法轉(zhuǎn)換為新的表示法的所述步驟,包含附加的步驟為響應(yīng)或者在老軟件內(nèi)或者在新軟件內(nèi)對半永久性數(shù)據(jù)的每次的初始更新,在另一種軟件內(nèi)更新半永久性數(shù)據(jù)。
27.根據(jù)權(quán)利要求18所述的方法,其特征在于,在由系統(tǒng)接收的所有新呼叫經(jīng)路徑選擇到新軟件之后,所完成的步驟包括用新軟件處理所有的新呼叫,與此同時老軟件處理現(xiàn)有的呼叫。
28.根據(jù)權(quán)利要求27所述的方法,其特征在于,它包括附加的步驟將全部呼叫處理控制傳遞給新軟件,以響應(yīng)一個預(yù)選時間階段的期滿,該時間階段是隨著在新軟件內(nèi)處理所有新呼叫的所述步驟的開始而持續(xù)的,與此同時老軟件處理現(xiàn)有呼叫。
29.根據(jù)權(quán)利要求28所述的方法,其特征在于,在所述的預(yù)選時間階段期滿之后,仍由老軟件處理的所有呼叫將被強制終止。
30.根據(jù)權(quán)利要求28所述的方法,其特征在于,在所述的預(yù)選時間階段期滿之后,仍在被處理的所有呼叫被傳遞到新軟件以結(jié)束處理。
31.根據(jù)權(quán)利要求28所述的方法,其特征在于,在所述的預(yù)選時間階段期滿之后,能夠比作為結(jié)果而發(fā)生的干擾壽命更長的所有呼叫都將被試圖傳遞給新軟件進行處理,而所有其它的呼叫將被終止。
32.一種用于在計算機系統(tǒng)中將數(shù)據(jù)處理操作從先前裝入的第一個軟件自動轉(zhuǎn)換到新近裝入的第二個軟件的裝置,其中第一個軟件在處理現(xiàn)有數(shù)據(jù),與此同時由計算機系統(tǒng)接收新數(shù)據(jù),其特征在于,所述的裝置包括第一個裝置,用于傳送測試數(shù)據(jù)到所述的第二個軟件從而進行處理,所述的測試數(shù)據(jù)模仿待由所述第一個軟件處理的實際數(shù)據(jù);第二個裝置,為響應(yīng)所述的第二個軟件對所述的測試數(shù)據(jù)的成功處理,用于在所述的第一個軟件對所述的現(xiàn)有數(shù)據(jù)繼續(xù)處理期間傳送所有所述的新數(shù)據(jù)到所述的第二個軟件;第三個裝置,為響應(yīng)最先發(fā)生的由所述第一個軟件對所述現(xiàn)有數(shù)據(jù)處理的完成、或者為響應(yīng)隨著所有所述的新數(shù)據(jù)傳送到所述第二個軟件的開始而延續(xù)的一個預(yù)選的時間階段的期滿,用于停止所述第一個軟件在處理數(shù)據(jù)中的進一步應(yīng)用,由此從所述第一個軟件轉(zhuǎn)換到所述第二個軟件可以在計算機系統(tǒng)運行期間自動起作用,從而對數(shù)據(jù)處理操作的連續(xù)進行不會產(chǎn)生重大干擾。
33.根據(jù)權(quán)利要求32所述的裝置,其特征在于,它還包括第四個裝置,為響應(yīng)所述第二個軟件對所述測試數(shù)據(jù)的成功處理,用于將實際數(shù)據(jù)的預(yù)先確定的限定樣本傳送給所述的第二個軟件,否則這些樣本將由所述的第一個軟件處理;其中所述的用于將所述的所有新數(shù)據(jù)傳送到所述的第二個軟件的第二個裝置是為了響應(yīng)由所述的第二個軟件對不僅是所述的測試數(shù)據(jù)而且是所述的實際數(shù)據(jù)的樣本部分的成功處理。
34.根據(jù)權(quán)利要求32或33所述的裝置,其特征在于所述的計算機系統(tǒng)是一個電訊交換系統(tǒng);并且所述的現(xiàn)有數(shù)據(jù)和新數(shù)據(jù)是由所述的電訊交換系統(tǒng)所接收的呼叫。
35.一種自動實用裝置,為了與電訊交換系統(tǒng)一起使用,在該系統(tǒng)中現(xiàn)有呼叫由先前裝入的第一個軟件進行處理,同時該系統(tǒng)接收新的呼叫,在該交換系統(tǒng)運行期間將呼叫逐漸再引向隨后裝入的第二個軟件從而進行處理而對持續(xù)的呼叫處理并沒有重大干擾,其特征在于,所述的自動實用裝置包括第一個裝置,可實用于將模仿由所述第一個軟件處理的實際呼叫的測試呼叫傳送給所述的第二個軟件;第二個裝置,可實用于將電訊交換系統(tǒng)所接收的所有新呼叫傳遞給所述的第二個軟件;第三個裝置,用于順序地操作所述的第一個和第二個裝置并且使所述第二個軟件依次服從于(1)用從所述的第一個裝置傳送到所述的第二個軟件的測試呼叫進行第一次呼叫處理測試,并且(2)隨著所述的第二個軟件成功地完成所述的第一次呼叫處理測試,用從所述的第二個裝置傳送到所述的第二個軟件的新呼叫進行第二次呼叫處理測試;以及第四個裝置,隨著由所述第二個軟件成功地完成所述第二次呼叫處理測試,用來將所有的呼叫處理控制從所述的第一個軟件傳送到所述的第二個軟件。
36.根據(jù)權(quán)利要求35所述的裝置,其特征在于還包括第五個裝置,可實用于將實際呼叫的一批樣本傳送給所述的第二個軟件,這些樣本否則將由所述的第一個軟件處理;其中所述的第三個裝置順序地操作所述的第一個、第二個和第五個裝置以使所述的第二個軟件隨著所述的第二個軟件對所述第一次呼叫處理測試的成功結(jié)束繼續(xù)服從于一次附加的呼叫處理測試,該測試由所述的第五個裝置用傳送給所述的第二個軟件的所述的實際呼叫的一批樣本進行,其中所述的第二次呼叫處理測試是隨著由所述的第二個軟件對所述第一次和附加的呼叫處理測試的成功結(jié)束而進行的。
37.根據(jù)權(quán)利要求35或36所述的自動實用裝置,其特征在于所述的第四個裝置是為響應(yīng)下列情況而操作的(1)由所述的第二個軟件成功完成了所述的第二次呼叫處理測試;(2)由所述的第一個軟件對現(xiàn)有呼叫的處理已結(jié)束。
38.一種在對現(xiàn)有軟件處理現(xiàn)有數(shù)據(jù)沒有重大干擾的情況下將計算機裝置的數(shù)據(jù)處理控制自動傳遞給新軟件的系統(tǒng),為與計算機裝置一起使用,同時它用現(xiàn)有軟件處理現(xiàn)有數(shù)據(jù)并且接收待處理的新數(shù)據(jù),其特征在于包括用于在計算機裝置中裝入新軟件的裝置;采用新軟件處理模仿正由現(xiàn)有軟件在處理的實際數(shù)據(jù)的測試數(shù)據(jù)的裝置;在新軟件成功處理了所述測試數(shù)據(jù)之后將全部數(shù)據(jù)處理控制傳遞給新軟件的裝置。
39.根據(jù)權(quán)利要求38所述的系統(tǒng),其特征在于還包括為響應(yīng)新軟件對測試數(shù)據(jù)的成功測試,允許新軟件處理實際數(shù)據(jù)的一部分樣本的裝置,否則這些數(shù)據(jù)本來將由老軟件處理;所述的用于將全部數(shù)據(jù)處理控制傳遞給新軟件的裝置在成功處理了所述的測試數(shù)據(jù)和預(yù)定的實際數(shù)據(jù)的樣本部分之后起作用。
40.根據(jù)權(quán)利要求38或39所述的系統(tǒng),其特征在于還包括用新軟件處理所有新數(shù)據(jù)同時現(xiàn)有軟件處理現(xiàn)有數(shù)據(jù)的裝置。
41.根據(jù)權(quán)利要求40所述的系統(tǒng),其特征在于所述的自動傳遞裝置在現(xiàn)有軟件完成對現(xiàn)有數(shù)據(jù)的處理之后啟動。
42.根據(jù)權(quán)利要求41所述的系統(tǒng),其特征在于所述的自動傳遞裝置對新軟件的成功處理所有新數(shù)據(jù)和現(xiàn)有軟件結(jié)束處理現(xiàn)有數(shù)據(jù)作出反應(yīng)。
43.根據(jù)權(quán)利要求38所述的系統(tǒng),其特征在于,不但現(xiàn)有數(shù)據(jù)而且新數(shù)據(jù)都是在一系列事務(wù)處理中得到處理的,現(xiàn)有數(shù)據(jù)和新數(shù)據(jù)兩者都包括動態(tài)數(shù)據(jù)和半永久性數(shù)據(jù),動態(tài)數(shù)據(jù)是在每個事務(wù)處理的處理期間所建立和使用的并且在處理結(jié)束時消除的數(shù)據(jù),半永久性數(shù)據(jù)是由許多個事務(wù)處理的處理過程所使用的并在許多個事務(wù)處理的處理過程中存在的數(shù)據(jù),所述的系統(tǒng)也包括將數(shù)據(jù)從現(xiàn)有軟件傳遞到新軟件的裝置。
44.根據(jù)權(quán)利要求43所述的系統(tǒng),其特征在于只有半永久性數(shù)據(jù)從現(xiàn)有軟件被傳遞到新軟件。
45.根據(jù)權(quán)利要求43所述的系統(tǒng),其特征在于,新軟件中的數(shù)據(jù)表示法不同于現(xiàn)存軟件中的數(shù)據(jù)表示法,所述的將數(shù)據(jù)從現(xiàn)有軟件傳遞到新軟件的裝置包括將所述的數(shù)據(jù)從所述的現(xiàn)行表示法轉(zhuǎn)換為所述的新表示法的裝置。
46.根據(jù)權(quán)利要求45所述的系統(tǒng),其特征在于,所述的將所述數(shù)據(jù)從所述現(xiàn)行表示法轉(zhuǎn)換為所述新表示法的裝置包括根據(jù)所述老軟件所需的基礎(chǔ)轉(zhuǎn)換所述數(shù)據(jù)的裝置。
47.根據(jù)權(quán)利要求45所述的系統(tǒng),其特征在于,用來將所述數(shù)據(jù)從所述現(xiàn)行表示法轉(zhuǎn)換為所述新表示法的所述裝置包括一次將所有所述數(shù)據(jù)轉(zhuǎn)換為所述新表示法的裝置,以及根據(jù)所述現(xiàn)有軟件所需的基礎(chǔ)將所述數(shù)據(jù)從所述新表示法再轉(zhuǎn)換為所述現(xiàn)行表示法的裝置。
48.根據(jù)權(quán)利要求43所述的系統(tǒng),其特征在于,它還包括為響應(yīng)或者在現(xiàn)有軟件內(nèi)或者在新軟件內(nèi)對半永久性數(shù)據(jù)每次的初始更新,在另一種軟件內(nèi)更新半永久性數(shù)據(jù)的裝置。
49.根據(jù)權(quán)利要求45所述的系統(tǒng),其特征在于,它還包括為響應(yīng)或者在現(xiàn)有軟件內(nèi)或者在新軟件內(nèi)對半永久性數(shù)據(jù)每次的初始更新,在另一種軟件內(nèi)更新半永久性數(shù)據(jù)的裝置。
50.根據(jù)權(quán)利要求40所述的系統(tǒng),其特征在于所述的自動傳遞裝置是為了響應(yīng)隨著所述的用新軟件處理所有新數(shù)據(jù)同時現(xiàn)有軟件處理現(xiàn)有數(shù)據(jù)的開始而延續(xù)的一個預(yù)選時間階段的期滿。
51.根據(jù)權(quán)利要求50所述的系統(tǒng),其特征在于,在所述的預(yù)選時間階段期滿之后,仍由老軟件進行處理的所有事務(wù)處理都被強制終止。
52.根據(jù)權(quán)利要求50所述的系統(tǒng),其特征在于,在所述的預(yù)選時間階段期滿之后,仍由老軟件進行處理的所有事務(wù)處理都被傳送給新軟件以結(jié)束處理。
53.根據(jù)權(quán)利要求50所述的系統(tǒng),其特征在于,在所述的預(yù)選時間階段期滿之后,能夠比作為結(jié)果而發(fā)生的干擾壽命更長的所有事務(wù)處理都將被試圖傳遞給新軟件進行處理,而所有其它的事務(wù)處理都被終止。
54.一種在電訊交換系統(tǒng)中從老的呼叫處理軟件平穩(wěn)而自動地改變到新的呼叫處理軟件的系統(tǒng),在連續(xù)操作期間進行改變而可免除系統(tǒng)干擾的重大風險,其特征在于包括用于在老軟件繼續(xù)處理呼叫的同時,有效地將新軟件裝入系統(tǒng)內(nèi)的裝置;用于通過系統(tǒng)運行大量的測試呼叫并且將所有所述的測試呼叫經(jīng)路徑選擇到新軟件從而進行處理的裝置;用于為響應(yīng)新軟件對所述測試呼叫的成功處理,將系統(tǒng)所接收的所有新呼叫經(jīng)路徑選擇到新軟件的裝置;以及用于為響應(yīng)新軟件對所有新呼叫的成功處理,從系統(tǒng)中移去老軟件并終止由老軟件處理的所有呼叫的裝置。
55.根據(jù)權(quán)利要求54所述的系統(tǒng),其特征在于還包括用于為了響應(yīng)在用老軟件繼續(xù)處理實際呼叫的剩余部分的同時、新軟件對所述測試呼叫的成功處理,經(jīng)路徑選擇一批所選數(shù)量的實際呼叫到新軟件從而得到處理的裝置;以及其中所述的為了響應(yīng)新軟件對所述測試呼叫及所述所選數(shù)量的實際呼叫的成功處理,將系統(tǒng)所接收的所有新呼叫都經(jīng)路徑選擇到新軟件的裝置。
56.根據(jù)權(quán)利要求54所述的系統(tǒng),其特征在于,不但是現(xiàn)有呼叫而且是新呼叫都是在一系列事務(wù)處理中得到處理的,現(xiàn)有呼叫和新呼叫兩者都既與動態(tài)數(shù)據(jù)相關(guān)又與半永久性數(shù)據(jù)相關(guān),動態(tài)數(shù)據(jù)是在每個事務(wù)處理的處理期間所建立和使用的并且在處理結(jié)束時消除的數(shù)據(jù),半永久性數(shù)據(jù)是由許多個事務(wù)處理的處理過程所使用并在許多個事務(wù)處理的處理過程中存在的數(shù)據(jù),所述的系統(tǒng)也包括將數(shù)據(jù)從老軟件傳遞到新軟件的裝置。
57.根據(jù)權(quán)利要求56所述的系統(tǒng),其特征在于只有半永久性數(shù)據(jù)被從老軟件傳遞到新軟件中。
58.根據(jù)權(quán)利要求56所述的系統(tǒng),其特征在于,在新軟件中的數(shù)據(jù)表示法不同于在老軟件中的數(shù)據(jù)表示法,并且所述的用于將數(shù)據(jù)從老軟件傳遞到新軟件的裝置包括用來將所述數(shù)據(jù)從所述老的表示法轉(zhuǎn)換為新的表示法的裝置。
59.根據(jù)權(quán)利要求58所述的系統(tǒng),其特征在于,所述的用來將所述數(shù)據(jù)從所述老的表示法轉(zhuǎn)換為新的表示法的裝置包括用來根據(jù)所述新軟件所需的基礎(chǔ)將所述數(shù)據(jù)從所述老表示法轉(zhuǎn)換為所述新表示法的裝置。
60.根據(jù)權(quán)利要求58所述的系統(tǒng),其特征在于,用來將所述數(shù)據(jù)從所述老表示法轉(zhuǎn)換為所述新表示法的所述裝置包括用來一次將所有所述數(shù)據(jù)轉(zhuǎn)換為所述新表示法的裝置,也包括用來根據(jù)所述老軟件所需的基礎(chǔ)將所述數(shù)據(jù)從所述新表示法再轉(zhuǎn)換到所述老表示法的裝置。
61.根據(jù)權(quán)利要求56所述的系統(tǒng),其特征在于,還包括為響應(yīng)或者在老軟件內(nèi)或者在新軟件內(nèi)對半永久性數(shù)據(jù)每次的初始更新,在另一種軟件內(nèi)更新半永久性數(shù)據(jù)的裝置。
62.根據(jù)權(quán)利要求58所述的系統(tǒng),其特征在于,還包括為響應(yīng)或者在老軟件內(nèi)或者在新軟件內(nèi)對半永久性數(shù)據(jù)每次的初始更新,在另一種軟件內(nèi)更新半永久性數(shù)據(jù)的裝置。
63.一種在電訊交換系統(tǒng)中從老的呼叫處理軟件平穩(wěn)而自動地改變到新的呼叫處理軟件的方法,在連續(xù)操作期間進行改變,其特征在于包含下列步驟在老軟件連續(xù)處理呼叫的同時,有效地將新軟件裝入系統(tǒng)內(nèi);通過系統(tǒng)運行大量的測試呼叫并且將所有所述的測試呼叫經(jīng)路徑選擇到新軟件從而進行處理,而不停止到老軟件的所有實際的電訊業(yè)務(wù);為響應(yīng)新軟件對所述測試呼叫的成功處理,將系統(tǒng)所接收的所有新呼叫經(jīng)路徑選擇到新軟件;以及為響應(yīng)新軟件對所有新呼叫的成功處理,以及首先出現(xiàn)的由老軟件處理的所有呼叫的終止或隨著由系統(tǒng)所接收的所有新呼叫經(jīng)路徑選擇到新軟件而延續(xù)的一個預(yù)選時間階段的期滿,從系統(tǒng)中移去所有老軟件。
64.根據(jù)權(quán)利要求63所述的方法,其特征在于,所述的通過系統(tǒng)運行大量的測試呼叫并且將所有所述的測試呼叫經(jīng)路徑選擇到新軟件從而進行處理包含下列步驟僅將模仿的呼叫經(jīng)路徑選擇到新軟件以便處理;以及在所述的模仿的呼叫之外,將新呼叫的許多樣本經(jīng)路徑選擇到新軟件以便處理,以響應(yīng)新軟件對所述模仿呼叫的成功處理。
65.根據(jù)權(quán)利要求63所述的方法,其特征在于,不但是現(xiàn)有呼叫而且是新呼叫都是在一系列事務(wù)處理中得到處理的,現(xiàn)有呼叫和新呼叫兩者都既與動態(tài)數(shù)據(jù)有關(guān)又與半永久性數(shù)據(jù)有關(guān),動態(tài)數(shù)據(jù)是在每個事務(wù)處理的處理期間所建立和使用的并且在處理結(jié)束時消除的數(shù)據(jù),半永久性數(shù)據(jù)是由許多個事務(wù)處理的處理過程所使用并在許多個事務(wù)處理的處理中存在的數(shù)據(jù),所述的方法包括附加的步驟將數(shù)據(jù)從老軟件傳遞到新軟件。
66.根據(jù)權(quán)利要求65所述的方法,其特征在于只有半永久性數(shù)據(jù)被從老軟件傳遞到新軟件中。
67.根據(jù)權(quán)利要求65所述的方法,其特征在于,在新軟件中的數(shù)據(jù)表示法不同于在老軟件中的數(shù)據(jù)表示法,并且所述的將數(shù)據(jù)從老軟件傳遞到新軟件的步驟包括下述步驟將所述數(shù)據(jù)從所述老的表示法轉(zhuǎn)換為所述新的表示法。
68.根據(jù)權(quán)利要求67所述的方法,其特征在于,將所述數(shù)據(jù)從所述老表示法轉(zhuǎn)換為新表示法的所述步驟是根據(jù)所述新軟件所需的基礎(chǔ)來完成的。
69.根據(jù)權(quán)利要求67所述的方法,其特征在于,將所述數(shù)據(jù)從所述老表示法轉(zhuǎn)換為新表示法的所述步驟包括一次將所有所述的數(shù)據(jù)轉(zhuǎn)換為所述的新表示法,與附加的步驟同時進行根據(jù)所述老軟件所需的基礎(chǔ)將所述數(shù)據(jù)從所述新表示法再轉(zhuǎn)換到所述的現(xiàn)行表示法。
70.根據(jù)權(quán)利要求65所述的方法,其特征在于,遵循將數(shù)據(jù)從老軟件傳遞到新軟件的所述步驟,包括附加的步驟為響應(yīng)或者在老軟件內(nèi)或者在新軟件內(nèi)對半永久性數(shù)據(jù)每次的初始更新,在另一種軟件內(nèi)更新半永久性數(shù)據(jù)。
71.根據(jù)權(quán)利要求67所述的方法,其特征在于,遵循將所述數(shù)據(jù)從老表示法轉(zhuǎn)換到新表示法的所述步驟,包括附加的步驟為響應(yīng)或者在老軟件內(nèi)或者在新軟件內(nèi)對半永久性數(shù)據(jù)每次的初始更新,在另一種軟件內(nèi)更新半永久性數(shù)據(jù)。
72.根據(jù)權(quán)利要求63所述的方法,其特征在于,在所述的預(yù)選時間階段期滿之后,仍由老軟件處理的所有事務(wù)處理都被強制終止。
73.根據(jù)權(quán)利要求63所述的方法,其特征在于,在所述的預(yù)選時間階段期滿之后,仍由老軟件處理的所有事務(wù)處理都被傳送給新軟件以結(jié)束處理。
74.根據(jù)權(quán)利要求63所述的方法,其特征在于,在所述的預(yù)選時間階段期滿之后,能夠比作為結(jié)果而發(fā)生的干擾壽命更長的所有事務(wù)處理都將被試圖傳遞給新軟件進行處理,而所有其它的事務(wù)處理都被終止。
75.一種在電訊交換系統(tǒng)中從老的呼叫處理軟件平穩(wěn)而自動地改變到新的呼叫處理軟件的系統(tǒng),在連續(xù)操作期間進行改變,其特征在于包括用于在老軟件繼續(xù)處理呼叫的同時,有效地將新軟件裝入系統(tǒng)內(nèi)的裝置;用于通過系統(tǒng)運行大量的測試呼叫并且將所有所述的測試呼叫經(jīng)路徑選擇到新軟件從而進行處理,而不停止到老軟件的所有實際的電訊業(yè)務(wù)的裝置;用于為響應(yīng)新軟件對所述測試呼叫的成功處理,將系統(tǒng)所接收的所有新呼叫經(jīng)路徑選擇到新軟件的裝置;以及用于為響應(yīng)新軟件對所有新呼叫的成功處理,從系統(tǒng)中移去老軟件并終止或傳送由老軟件處理的所有呼叫的裝置。
76.根據(jù)權(quán)利要求75所述的系統(tǒng),其特征在于,所述用于通過系統(tǒng)運行大量的測試呼叫并且將所有所述的測試呼叫經(jīng)路徑選擇到新軟件從而進行處理,而不停止到老軟件的所有實際的電訊業(yè)務(wù)的裝置還包括用于僅將模仿的呼叫經(jīng)路徑選擇到新軟件以便進行處理,與此同時所有實際的呼叫繼續(xù)由老軟件進行處理的裝置;以及用于既將模仿的呼叫也將所選數(shù)目的新呼叫經(jīng)路徑選擇到新軟件以便進行處理的裝置,以響應(yīng)新軟件對所述模仿呼叫的成功處理,與此同時新呼叫的剩余部分繼續(xù)由老軟件進行處理。
77.一種用于在計算機系統(tǒng)中將數(shù)據(jù)處理操作從先前裝入的第一個自動轉(zhuǎn)換到新近裝入的第二個軟件的方法,其中第一個軟件在處理現(xiàn)有數(shù)據(jù),與此同時由計算機系統(tǒng)接收新數(shù)據(jù),其特征在于,所述的方法包含下列步驟傳送測試數(shù)據(jù)到所述的第二個軟件從而進行處理,所述的測試數(shù)據(jù)模仿待由所述第一個軟件處理的實際數(shù)據(jù);為響應(yīng)所述的第二個軟件對所述的測試數(shù)據(jù)的成功處理,在所述的第一個軟件對所述的現(xiàn)有數(shù)據(jù)繼續(xù)處理期間傳送所有所述的新數(shù)據(jù)到所述的第二個軟件;以及為響應(yīng)由所述第一個軟件對所述現(xiàn)有數(shù)據(jù)處理的完成,經(jīng)路徑選擇將所有其它數(shù)據(jù)引向所述第二個軟件以便處理,在計算機系統(tǒng)運行期間,在對數(shù)據(jù)處理的連續(xù)操作不會產(chǎn)生重大干擾的情況下,對從所述第一個軟件轉(zhuǎn)換到所述第二個軟件自動起作用。
78.根據(jù)權(quán)利要求77所述的方法,其特征在于,在所述的傳送測試數(shù)據(jù)和傳送所有的所述新數(shù)據(jù)的步驟之間,包括附加的步驟為響應(yīng)所述第二個軟件對所述測試數(shù)據(jù)的成功處理,將實際數(shù)據(jù)的預(yù)先確定的限定樣本傳遞給所述的第二個軟件,否則這些樣本將由所述的第一個軟件處理;以及其中在完成所述軟件對所述現(xiàn)有數(shù)據(jù)的連續(xù)處理期間,為響應(yīng)由所述的第二個軟件對不僅是所述的測試數(shù)據(jù)而且是所述的實際數(shù)據(jù)的限定樣本部分的成功處理,將所述的所有新數(shù)據(jù)傳送到所述的第二個軟件的所述步驟。
79.根據(jù)權(quán)利要求77或78所述的方法,其特征在于所述的計算機系統(tǒng)是一個電訊交換系統(tǒng);并且所述的現(xiàn)有數(shù)據(jù)和新數(shù)據(jù)是由所述電訊交換系統(tǒng)所接收的呼叫。
80.一種為了與電訊交換系統(tǒng)一起使用,在該系統(tǒng)中現(xiàn)有呼叫由先前裝入的第一個軟件進行處理,同時該系統(tǒng)接收新的呼叫,在該交換系統(tǒng)運行期間將呼叫逐漸再引向隨后裝入的第二個軟件從而進行處理而對持續(xù)的呼叫處理并沒有重大干擾的方法,其特征在于包括將模仿由第一個軟件處理的實際呼叫的測試呼叫傳送給所述的第二個軟件;將電訊交換系統(tǒng)所接收的所有新呼叫傳送給所述的第二個軟件;順序地完成所述的第一步和第二步并且使所述第二個軟件依次服從于(1)用在第一步中傳送到所述的第二個軟件的測試呼叫進行第一次呼叫處理測試,并且(2)隨著所述的第二個軟件成功地完成所述的第一次呼叫處理測試,在所述的第二步中用傳送到所述的第二個軟件的新呼叫進行第二次呼叫處理測試;以及隨著由所述的第二個軟件成功地完成所述的第二次呼叫處理測試,將所有的呼叫處理控制從所述的第一個軟件傳送到所述的第二個軟件。
81.根據(jù)權(quán)利要求80所述的方法,其特征在于還包括附加的步驟將實際呼叫的一批樣本送給所述的第二個軟件,這些樣本否則將由所述的第一個軟件處理;其中所述的第一步,第二步和附加的步驟依序完成,以使所述的第二個軟件隨著它對所述第一次呼叫處理測試的成功結(jié)束,并在所述的第二次呼叫處理測試之前繼續(xù)服從于一次附加的呼叫處理測試,該測試由所述的附加步驟用傳送給所述的第二個軟件的所述的實際呼叫的一批樣本進行,其中所述的第二次呼叫處理測試是隨著由所述的第二個軟件對所述的第一次和所述的附加呼叫處理測試的成功結(jié)束而進行的。
82.根據(jù)權(quán)利要求80或81所述的方法,其特征在于所述的將所有的呼叫處理控制從所述第一個軟件傳送到所述第二個軟件的步驟是隨著下列情況的出現(xiàn)而執(zhí)行的(1)由所述的第二個軟件成功完成了所述的第二次呼叫處理測試;以及(2)由所述的第一個軟件對現(xiàn)有呼叫的處理已結(jié)束。
83.根據(jù)權(quán)利要求80或81所述的方法,其特征在于所述的將所有的呼叫處理控制從所述第一個軟件傳送到所述第二個軟件的步驟是隨著下列情況的出現(xiàn)而執(zhí)行的(1)由所述的第二個軟件成功完成了所述的第二次呼叫處理測試;以及(2)隨著電訊交換系統(tǒng)所接收的所有新呼叫傳送給所述第二個軟件的一個預(yù)選時間階段的期滿。
84.根據(jù)權(quán)利要求83所述的方法,其特征在于,在所述的預(yù)選時間階段期滿之后,仍由所述第一個軟件處理的所有事務(wù)處理都被強制終止。
85.根據(jù)權(quán)利要求83所述的方法,其特征在于,在所述的預(yù)選時間階段期滿之后,仍由所述第一個軟件處理的所有事務(wù)處理都被傳送給第二個軟件以結(jié)束處理。
86.根據(jù)權(quán)利要求83所述的方法,其特征在于,在所述的預(yù)選時間階段期滿之后,能夠比作為結(jié)果而發(fā)生的干擾壽命更長的所有事務(wù)處理都將被試圖傳送給所述的第二個軟件進行處理,而所有其它的事務(wù)處理都被終止。
87.一種為了將運行著的軟件系統(tǒng)內(nèi)的一系列事件動態(tài)定向到所述的第一個或第二個應(yīng)用程序中的一個或另一個,通過提供一組定向點,將分別分布在第一個和第二個軟件應(yīng)用程序中的第一個和第二個模塊動態(tài)匯集的方法,其特征在于包括下列步驟分析由函數(shù)名尋址的消息;將這些消息引向在所述的第一個或第二個模塊的每一個中的進程;并用動態(tài)運行時間匯集將進程的執(zhí)行引向在所述的第一個或所述的第二個軟件模塊之一中的所述進程的有選擇地連續(xù)執(zhí)行。
88.一種為了將運行著的軟件系統(tǒng)內(nèi)的一系列事件動態(tài)定向到所述的第一個和第二個應(yīng)用程序中的一個或另一個,通過提供一組定向點,將分別分布在第一個和第二個軟件應(yīng)用程序中的第一個和第二個模塊動態(tài)匯集的系統(tǒng),其特征在于包括用于分析由函數(shù)名尋址的消息的裝置;用于將這些消息引向在所述的第一個或第二個模塊的每一個中的進程的裝置;以及用于用動態(tài)運行時間匯集將進程的執(zhí)行引向在所述的第一個或所述的第二個軟件模塊中的所述進程連續(xù)執(zhí)行的裝置。
全文摘要
在電訊交換系統(tǒng)中希望能在系統(tǒng)運行期間不停止系統(tǒng)運行而很快地進行軟件替換,本發(fā)明所揭示的系統(tǒng)能平穩(wěn)地進行這種修改,并使之對現(xiàn)行活動的影響最?。凰沂镜南到y(tǒng)把電訊系統(tǒng)的動態(tài)操作作為一組平行而獨立的事務(wù)處理來對待且每個事務(wù)處理由一系列相關(guān)活動組成,使得能在運行中改變軟件;這種事務(wù)處理一般是與系統(tǒng)的一個特定用戶如電話用戶或操作員相聯(lián)系的一個功能元素,如待系統(tǒng)處理的一個呼叫或待系統(tǒng)執(zhí)行的一個命令。
文檔編號G06F11/00GK1081010SQ9310766
公開日1994年1月19日 申請日期1993年6月28日 優(yōu)先權(quán)日1992年7月1日
發(fā)明者里卡德·尼爾松, 烏爾夫·馬克斯特倫, 萊夫·克勞夫佛 申請人:L·M·埃利克遜電話股份有限公司