專利名稱::遠(yuǎn)程通信網(wǎng)絡(luò)中以鑰和鎖進(jìn)行跟蹤的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明文件所揭示內(nèi)容中部分包含受版權(quán)保護(hù)的材料。版權(quán)人對出現(xiàn)在專利商標(biāo)局中、專利文檔或記錄文件中由專利文件或?qū)@_所進(jìn)行的精確復(fù)制均不持異議,但其他場合均保留所有合法版權(quán)。本發(fā)明是關(guān)于遠(yuǎn)程通信網(wǎng),更具體說是關(guān)于借助鑰和鎖機(jī)制對遠(yuǎn)程通信網(wǎng)進(jìn)行跟蹤的軟件?,F(xiàn)今電話業(yè)務(wù)通過集中式交換設(shè)施為大量消費者、即電話用戶服務(wù)。如圖1所示,中心局10中的集中式交換機(jī)對發(fā)往和來自地區(qū)電話用戶12的呼叫進(jìn)行交換控制,并經(jīng)由局間中繼線路14與網(wǎng)絡(luò)中其他中心局10進(jìn)行通信。各中心局10及其服務(wù)的用戶12由長途局16通過長途連接中繼線路18連通到其他地區(qū),這是本行業(yè)中所公知的。中心局10還可以直接通過商用中繼線22或者間接地由(交換)機(jī)間中繼線24連接到客戶專用交換設(shè)備,例如私用自動交換分機(jī)(PABX)20。PABX20將其他地區(qū)電話用戶12連接到該網(wǎng)絡(luò),以及其他的用戶終端,例如計算機(jī)26和傳真機(jī)(圖中未作出)。這些用戶終端也能被連接到中心局10。圖1中以28總體標(biāo)明的整個網(wǎng)絡(luò),或者它的任一部分,均僅僅是作為一遠(yuǎn)程通信網(wǎng)的示例。中心局10和長途局16的各個轉(zhuǎn)換器以及各PABX一般均為包含有轉(zhuǎn)換設(shè)備32和控制此轉(zhuǎn)換設(shè)備32的處理器34的存貯程序控制(SPC)交換機(jī)30,如圖2中所示。SPC交換機(jī)30通過上述為用戶終端服務(wù)的轉(zhuǎn)換設(shè)備32連接到中繼線。各SPC交換機(jī)30必定在處理一簡單的電話呼叫中執(zhí)行一定的功能。例如,SPC交換機(jī)30必須監(jiān)視和檢測用戶電話機(jī)摘機(jī)發(fā)動呼叫時的用戶請求服務(wù)。一旦SPC交換機(jī)30意識到發(fā)生呼叫,亦即檢測到某一線路的摘機(jī)狀態(tài),SPC交換機(jī)30必須接通中繼線例如通過撥號音通知用戶,SPC交換機(jī)30已準(zhǔn)備就緒由用戶接收信息,以及用于接收這一信息的裝置。諸如呼叫號等的信息由用戶利用旋轉(zhuǎn)拔號盤或觸摸音頻鍵盤輸入,在SPC交換機(jī)30處被接收并記錄。而后這一信息必須由SPC交換機(jī)30加以解釋以識別被呼叫線路的地點。如果被呼叫方和呼叫方是同一中心局的用戶,例如經(jīng)由中心局10(a)的電話用戶12(a),則該呼叫即為局內(nèi)呼叫。在這種情況下,對被呼叫線路進(jìn)行記錄檢測,如果被呼線路空閑,就向呼叫方發(fā)出信號,例如利用可聞?wù)疋彯a(chǎn)生振鈴聲。在等待被呼叫方回答或呼叫方放棄期間被呼叫線路受到監(jiān)控。如果被呼叫方回答,就在雙方之間建立話音通道。此話音通道在對話期間被加以監(jiān)控,并在一方掛機(jī)和線路成為掛機(jī)狀態(tài)時被切斷。另一方面,如果被呼叫方是一不同中心局的用戶,例如中心局10(a)和10(b)的用戶12(a)和12(b),該呼叫即為局間呼叫。在這種情況下,搜索連接到操縱被呼叫方的中心局10(b)的、或連接到能促使該呼叫進(jìn)一步到達(dá)被呼叫方的中心局10(b)的遠(yuǎn)途局16的空閑局間中繼線14。有關(guān)被呼叫號的信息由起始中心局10(a)發(fā)出,由將該信息傳送給終到中心局10(b)的長途局16接收。如果被呼叫方的線路忙碌,或者此呼叫在網(wǎng)絡(luò)中某處受阻,或者所有必須的局間中繼線均忙碌,即利用可聞?wù)季€、快速占線或重拔忙音通知呼叫方。SPC交換機(jī)30要進(jìn)行的工作分成兩個主要類別(1)掃描用戶終端以檢測變化狀態(tài)的例行程序;和(2)需要很高計算能力和大量數(shù)據(jù)的復(fù)雜分析和診斷。第一類的示例是檢查用戶12是否由其電話提起電話聽筒。這一操作每秒鐘進(jìn)行數(shù)次。第二類工作的示例包括有前進(jìn)路由或不同業(yè)務(wù)量量度的選擇。如這些舉例所表明的,SPC交換機(jī)30被設(shè)計得應(yīng)能響應(yīng)一定的事件,它們或者可能是外部的,例如當(dāng)一用戶摘機(jī)提起話筒時,或者也可能是內(nèi)部的,例如處理器34的軟件中的指令步驟。處理器34的軟件執(zhí)行許多任務(wù),包括上面指出的那些,它們均由一軟件信號或軟件消息,亦即包含有專用于任務(wù)的相關(guān)數(shù)據(jù)的軟件指定啟動。軟件信號或軟件消息可被作為SPC交換機(jī)30所執(zhí)行的診斷的部分加以跟蹤。當(dāng)一個體命令跟蹤一軟件信號時,包含其數(shù)據(jù)的該信號在每次該信號被發(fā)送時均加以存貯以作稍后分析。顯然,必須避免長時間周期的信號跟蹤,特別是在遠(yuǎn)程通信網(wǎng)絡(luò)上業(yè)務(wù)量很大的期間,以免系統(tǒng)能力過負(fù)荷。因此,遠(yuǎn)程通信網(wǎng)通過在多個不同的處理機(jī)上,例如圖2中所示的處理器34,執(zhí)行數(shù)千條軟件指令來完成許多并發(fā)任務(wù)以響應(yīng)事件,并通過信號跟蹤來存貯上千個軟件信號以檢測軟件中的差錯或調(diào)試軟件。因為遠(yuǎn)程通信網(wǎng)的業(yè)務(wù)是持續(xù)的,所以需要“連續(xù)處理”的能力,亦即,處理器34不能因任何原因而被切斷。就此而言,這種連續(xù)處理系統(tǒng)需要專用的差錯檢測和糾錯技術(shù)。適用于其他系統(tǒng)的技術(shù)在一遠(yuǎn)程網(wǎng)絡(luò)中不起作用。例如美國專利No.4937864(1990.6.26授權(quán))揭示用于查找復(fù)印機(jī)中差錯的一種技術(shù)。但是,這一方法僅能在復(fù)印機(jī)被關(guān)斷時應(yīng)用,因而不能在遠(yuǎn)程通信網(wǎng)中運用。通常的差錯檢測和糾錯技術(shù)不適合用于遠(yuǎn)程通信網(wǎng)中。當(dāng)前的跟蹤系統(tǒng)對檢測某些類型的差錯也是無效的。當(dāng)前的系統(tǒng)的靈敏度不足以檢測在一處理器上執(zhí)行著的少量指令,因為跟蹤系統(tǒng)無法尋址信號間指令的某些短暫存在的線索。當(dāng)差錯使得在執(zhí)行大量指令后發(fā)生故障,此同一系統(tǒng)成為太靈敏,因為必須存貯超過SPC交換機(jī)能力的長時間存在的指令線索。本發(fā)明的方法和系統(tǒng)克服這些或其他缺點,并提供能檢驗短暫線索的增強的跟蹤能力,同時依靠有選擇地存貯信息來以很少的存貯容量消耗分析包含大量跟蹤信息的長時間的線索。一方面,本發(fā)明表明要丟棄無關(guān)緊要的跟蹤信息以減少所需的存貯量。因為存貯需求量降低,就有可能檢查跟蹤線索中所有消息以及表示高級應(yīng)用軟件與低級操作軟件之間的關(guān)系的一專用程序序列的執(zhí)行,來解決困難問題。這也克服了因許多用戶同時進(jìn)行跟蹤所引起的問題。許多用戶可通過許多不同的處理器進(jìn)行跟蹤而不互相干擾。本發(fā)明還可用來為源碼調(diào)試程序產(chǎn)生斷點。本發(fā)明還可從用于在綜合測試的最初階段對跟蹤線索進(jìn)行糾錯,或利用跟蹤機(jī)制檢測與某些故障相關(guān)的特定事件,或辨識處于高級和低級程序之間的差錯。在另一更具體的方面,本發(fā)明涉及用于檢測遠(yuǎn)程通信網(wǎng)絡(luò)中發(fā)生的事件的方法和裝置,此網(wǎng)絡(luò)由存貯程序控制(SPC)交換機(jī)構(gòu)成,各個SPC交換機(jī)包括一轉(zhuǎn)換機(jī)構(gòu)和執(zhí)行軟件程序控制該轉(zhuǎn)換機(jī)構(gòu)的處理器。代碼序列,即數(shù)據(jù)自適應(yīng)鑒定監(jiān)視程序(DAEMON),插入在軟件程序的被選擇部分中,各代碼序列包含一響應(yīng)某些事件的條件語句和至少一個由檢測某一滿足該條件語句的事件引起的活動。這些代碼序列的每一個均被指定一鎖值,各鎖值唯一地識別對應(yīng)的代碼序列并為執(zhí)行該代碼序列進(jìn)行操作以激活處理器。將一個鑰值與各鎖值加以比較,以便在當(dāng)該鑰值等于鎖值時有選擇地激活處理器來執(zhí)行代碼序列。如果被檢測的事件滿足條件語句,處理器即執(zhí)行該代碼序列中指定的活動,并繼續(xù)執(zhí)行軟件程序,由此來維持SPC交換機(jī)中的連續(xù)處理?,F(xiàn)在參照下面結(jié)合附圖所作的說明來較詳細(xì)地了解本發(fā)明及其另外的目的和優(yōu)點,所列附圖簡要說明如下圖1示意說明可實現(xiàn)本發(fā)明的、包含有專用和區(qū)域交換機(jī)的一遠(yuǎn)程通信網(wǎng)絡(luò);圖2示意說明被應(yīng)用于圖1的遠(yuǎn)程通信網(wǎng)絡(luò)中的包括一轉(zhuǎn)換機(jī)構(gòu)和處理器的SPC交換機(jī);圖2A為圖2中所示的SPC交換機(jī)的第一實施例的示意圖;圖2B為圖2中所示的SPC交換機(jī)的第二實施例的示意圖;圖3A為說明在圖2B中所示SPC交換機(jī)的處理器上執(zhí)行的軟件的方框圖;圖3B為在圖3A中所示處理器上執(zhí)行的包含有按照本發(fā)明的跟蹤工具的軟件的圖形表示;圖4為按照本發(fā)明作線索跟蹤由圖3B的跟蹤工具所采用的鎖和鑰技術(shù)的圖形表示;圖5為表明按照本發(fā)明用于一電話呼叫的處理的圖1的PABX交換機(jī)網(wǎng)絡(luò)的示意圖;圖6為貫穿在類似于圖2B中所揭示的一交換機(jī)上執(zhí)行的進(jìn)程的跟蹤線索的示意圖;圖7為貫穿在類似于圖2B中所揭示的一交換機(jī)上執(zhí)行的進(jìn)程的另一組跟蹤線索的示意圖;圖8為貫穿在類似于圖2B中所揭示的一交換機(jī)上執(zhí)行的進(jìn)程的又一組跟蹤線索的示意圖9為表明按照本發(fā)明用于電話呼叫的處理的圖1網(wǎng)絡(luò)的任一部分的示意圖;圖10為按照本發(fā)明處理二個電話呼叫時圖9的訪問、服務(wù)和控制處理的示意圖;圖11為按照本發(fā)明連接到一簡單裝置處理器的圖9的訪問處理的示意圖;圖12為說明按照本發(fā)明生成一運行前的數(shù)據(jù)自適應(yīng)鑒定監(jiān)視程序的處理的流程圖;圖13為說明按照本發(fā)明生成運行時數(shù)據(jù)自適應(yīng)鑒定監(jiān)視程序的處理的流程圖;圖14為說明圖13中所生成的運行時數(shù)據(jù)自適應(yīng)鑒定監(jiān)視程序的執(zhí)行的處理器中程序存貯器的圖形表示;圖15為用于單一跟蹤的字方法的圖形表示;圖16為用于多重跟蹤的字方法的圖形表示;圖17為說明用于圖15中所示字方法的鑰-鎖編碼的流程圖;圖18為說明用于圖16中所示字方法的鑰-鎖編碼的流程圖;圖19為用于單一跟蹤的位方法的圖形表示;圖20為用于多重跟蹤的位方法的圖象形表示;圖21為說明用于圖19中所示的位向量方法的鑰-鎖編碼的流程圖;和圖22為說明用于圖20中所示位向量方向的鑰-鎖編碼的流程圖。由圖2和圖2A總的看來,SPC交換機(jī)30可以是,例如說,TelefonaktiebolagetLMEricsson(以下稱“Ericsson”)所制造的被叫作AXE類型交換機(jī)。AXE的處理器34詳細(xì)情況如圖2A所示,包括有一連接到與轉(zhuǎn)換設(shè)備32相通信的多個區(qū)域處理器(RP)36的中央處理器(CP)35。各區(qū)域處理器(RP)36和中央處理器(CP)35均包含一中央處理單元(CPU)和存貯器(STR)。區(qū)域處理器(RP)36協(xié)助中央處理器(CP)35完成SPC交換機(jī)30中所發(fā)生的例行任務(wù)。但所有決定均由中央處理器(CP)35做出。這種層次結(jié)構(gòu)在本說明中引用作為參考的、由Ericsson出版的名為“AXE入門”(EN/LZT101548R2A)一書中有更詳細(xì)說明。不過,SPC交換機(jī)30也可以是一種具有分布式結(jié)構(gòu)、而不是層次結(jié)構(gòu)型式的多個處理器34的設(shè)置,例如象圖2B中以37總體表示的那樣,包括共用資源(common-pool)處理器(CPP)38和專用裝置處理器(DP)39,全都直接與轉(zhuǎn)換設(shè)備32聯(lián)系。每一共用資源處理器(CPP)38和裝置處理器(DP)39均具有其自身的CPU和STR,而且它們?nèi)纪ㄟ^轉(zhuǎn)換設(shè)備32相互通信。全部共用資源處理器(CPP)38在此遠(yuǎn)程通訊網(wǎng)絡(luò)中均具有同等的重要性。在這樣的分布式系統(tǒng)中,軟件應(yīng)用程序40-42(圖3A)被建立在一裝載于處理器37頂部的共用操作系統(tǒng)43上,它們?nèi)慷紝υ摬僮飨到y(tǒng)43顯現(xiàn)為具有同一存貯器核44。不同的應(yīng)用程序?qū)⑿枰煌奶幚砥?,但它們均將運行在同一操作系統(tǒng)43上。所有應(yīng)用程序40-42的執(zhí)行均在為在處理器37上運行所存貯的多個不同進(jìn)程(圖中未作出)內(nèi)進(jìn)行。這樣,一個進(jìn)程即為執(zhí)行一應(yīng)用程序的環(huán)境。例如,應(yīng)用程序40的執(zhí)行可能需要數(shù)個在功能上分布于多個處理器而協(xié)同操作的進(jìn)程。一般在每一處理器38、39上將同時運行數(shù)千個進(jìn)程。更具體地參看圖3B,在操作系統(tǒng)43上運行的應(yīng)用程序40當(dāng)在一進(jìn)程中執(zhí)行時與核心44的運行時期部分,亦即內(nèi)核45進(jìn)行通訊。這樣,內(nèi)核45即控制運行期間進(jìn)程的執(zhí)行。執(zhí)行-應(yīng)用程序期間所有相關(guān)的事件均由一跟蹤工具47監(jiān)視,后者是操作系統(tǒng)43和內(nèi)核45中的一個子程序。事件檢測是通過在軟件中任何級別插入代碼序列,亦即數(shù)據(jù)自適應(yīng)鑒定監(jiān)視程序(daemons)46來達(dá)到的,如通過應(yīng)用程序40、操作系統(tǒng)43和內(nèi)核45中分布的小圓圈所示。數(shù)據(jù)自適應(yīng)鑒定監(jiān)視程序46被分配在代碼中需要分析的某些地址上,并總包含有一組預(yù)先定義的過濾條件和對應(yīng)的動作。這樣的數(shù)據(jù)自適應(yīng)鑒定監(jiān)視程序的一個示例如下<prelisting-type="program-listing"><![CDATA[ if(ON) if(condition1=true) action1; if(condition2=true) action2;]]></pre>c1993TelefonaktiebolagetLMEricsson其中,例如說,condition1(條件1)為第一變量或狀態(tài),condition2(條件2)為第二變量或狀態(tài),而action1(動作1)可能為一事件記錄而action2(動作2)可能為另一跟蹤的起始。用于這些判定中的變量可以是由系統(tǒng)讀出的變量或者是屬于跟蹤工具47自身的變量。在后一情況下,這些變量可被用來對發(fā)生一特定事件的次數(shù)進(jìn)行計數(shù),然后僅在該計數(shù)超過某一預(yù)定數(shù)時執(zhí)行相應(yīng)的動作。當(dāng)應(yīng)用程序40-42開始執(zhí)行時,它們將所有被存貯的數(shù)據(jù)自適應(yīng)鑒定監(jiān)視程序46的標(biāo)識輸出給跟蹤工具47。跟蹤工具47驗明網(wǎng)絡(luò)中所存的數(shù)據(jù)自遠(yuǎn)應(yīng)鑒定監(jiān)視程序46,包括駐留在形成該遠(yuǎn)程通信網(wǎng)的其他處理器上的代碼中的那些,并輸出一數(shù)據(jù)自適應(yīng)鑒定監(jiān)視程序46的清單和說明給設(shè)計人員和證明人。一數(shù)據(jù)自適應(yīng)鑒定監(jiān)視程序46將如所存貯數(shù)據(jù)加以定義的可能處于激活狀態(tài)或不激活狀態(tài)。如果一數(shù)據(jù)自適應(yīng)鑒定監(jiān)視程序46為激活狀態(tài),就要在執(zhí)行期間加以檢驗。如果該數(shù)據(jù)自適應(yīng)鑒定監(jiān)視程序46為非激活態(tài),內(nèi)核45就越過此數(shù)據(jù)自適應(yīng)鑒定監(jiān)視程序46繼續(xù)執(zhí)行。按照本發(fā)明,跟蹤系統(tǒng)由利用與一種“鎖和鑰”“l(fā)ockandkey”技術(shù)相關(guān)的賦活狀態(tài)來加以激活或不激活。更詳細(xì)地參看圖4,以48表明的線索跟蹤在垂直箭頭處開始并以水平箭頭表示連續(xù)執(zhí)行。線索跟蹤48的這一部分包括代碼中形成的數(shù)個數(shù)據(jù)自適應(yīng)鑒定監(jiān)視程序(以下將簡稱為DAEMON),DAEMON1、2和3,并以小圓圈代表;而與各DAEMON相關(guān)的“鎖”(“LOCK”),分別為鎖1、2和3,被作為數(shù)據(jù)存貯。每一DAEMON46均有一個名稱、一簡短說明和存放在跟蹤工具47中的它的“鎖表”(“LOCK-table”)的地址,下面它們將被合稱為“DAEMON綜合信息”。當(dāng)線索跟蹤開始時,一鑰49被附加到在執(zhí)行期間所發(fā)送的所有軟件信號或消息。如果此鑰49與該鎖不符合,此DAEMON即不被激活而繼續(xù)執(zhí)地代碼。但如果鑰49與鎖相符,就打開該DAEMON,亦即被激活。較詳細(xì)地參看圖4,鑰49與鎖1不相符號,從而繼續(xù)執(zhí)行代碼而不激活DAEMON1,如空白圓圈所指明的。但,鑰49符合鎖2激活DAEMON2,如實心圓圈所指明的。在檢測完DAEMON2的預(yù)定的過濾條件和進(jìn)行相應(yīng)的動作之后,繼續(xù)執(zhí)行代碼。由于鑰49也與鎖3不相符,所以繼續(xù)執(zhí)行而不激活DAEMON3,如空白圓圈所指明的。在線索跟蹤操作期間所收集的信息首先被加以過濾,然后在提供給設(shè)計人員之前被存貯進(jìn)一跟蹤緩存器中。此跟蹤工具47與一調(diào)試程序之間的最重要的區(qū)別在于,在前者的情況下,在進(jìn)行某一或某些操作后總是繼續(xù)執(zhí)行代碼;而在一調(diào)試程序中由設(shè)計人員的干予不完全地停止執(zhí)行。這樣,調(diào)試程序停止軟件的執(zhí)行,而跟蹤工具47則因為連續(xù)處理系統(tǒng)的需要在完成動作后繼續(xù)執(zhí)行。因此,一DAEMON46控制對代碼的訪問而不完全停止代碼的執(zhí)行。當(dāng)在代碼中一特定地址插入一DAEMON46時,就可獨立地監(jiān)視哪一進(jìn)程或線索的點或目標(biāo)是激活的,亦即點跟蹤。參看圖4,例如,當(dāng)點跟蹤被設(shè)置成激活時每次通過DAEMON2的執(zhí)行均將被跟蹤。但當(dāng)操作系統(tǒng)43的設(shè)計人員激活或去激活鑰結(jié)構(gòu)以打開一特定進(jìn)程中的全部DAEMON46時,這就是進(jìn)程跟蹤。在進(jìn)程跟蹤時,設(shè)計人員具有調(diào)試該進(jìn)程的能力。但如果除進(jìn)程跟蹤外,鑰結(jié)構(gòu)被指定給由一進(jìn)程發(fā)送的所有軟件信號或消息的話,這就是線索跟蹤。為另外的進(jìn)程接收到這樣的消息時,此鑰結(jié)構(gòu)即被指令給該接收機(jī)構(gòu),并在接收進(jìn)程激活時被激活。這一接收進(jìn)程可被配置到遠(yuǎn)程通信網(wǎng)中不同的處理器37。因之,如果人們希望分析在許多分布于數(shù)個處理器37上的進(jìn)程中執(zhí)行的應(yīng)用程序40,點跟蹤就確定由一進(jìn)程傳播到另一進(jìn)程的跟蹤線索的起始。線索跟蹤可由另一個與電話呼叫有關(guān)的例子來說明,該電話呼叫是許多進(jìn)程的組合。總的參看圖1而較具體的參看圖5,在終端12(c)摘機(jī)試圖由始發(fā)PBX20(c)經(jīng)由中繼線24到終到PBX20(a)建立與終端12(d)的用戶B的語言通道時,用戶A啟動一跟蹤線索50的執(zhí)行。假定PBX20(c)和20(d)均為圖2B中所示的SPC交換機(jī)型式,兩者就均包含有連接到相應(yīng)終端12(c)和12(d)的共用資源處理器(CPP),CPP1至CPP4。各個PBX20(c)和20(d)包含有另外的處理器(圖中未作出),例如象連接到中繼線24的獨立的裝置處理器(DP)39。與呼叫啟動相關(guān)的應(yīng)用程序在多個不同的進(jìn)程中執(zhí)行,如以上所述,其中一些如圖5中截角方框51-55所示的,在指明的處理器上運行。跟蹤線索50借助軟件信號或消息56-59在進(jìn)程51-55之間傳播。用戶A和B二者分別由在CPP1和CPP4上運行的訪問進(jìn)程A和B進(jìn)行服務(wù)。當(dāng)進(jìn)行呼叫時,始發(fā)側(cè)A的訪問進(jìn)程51建立一控制始發(fā)側(cè)A在CPP2上的業(yè)務(wù)量處理的業(yè)務(wù)控制進(jìn)程52。當(dāng)在多個分析之后已確定該呼叫的終到側(cè)時,業(yè)務(wù)控制進(jìn)程52即請求建立一個用于控制終到側(cè)B的類似的進(jìn)程,亦即在CPP3上運行的業(yè)務(wù)控制進(jìn)程54。終到側(cè)B上的業(yè)務(wù)控制進(jìn)程54依靠在CPP4上運行的訪問進(jìn)程55檢測用戶B的可能性。構(gòu)成跟蹤線索50的進(jìn)程51-55由消息56-59鏈接。始發(fā)側(cè)A的訪問進(jìn)程51中的跟蹤線索50的部分包含三個以跟蹤線索50上小圓圈表示的DAEMON,它們是在訪問進(jìn)程51的代碼中的特殊地址上插入的。這里的線索跟蹤操作與上面圖4中關(guān)于DAEMON1、2和3所述的相同,除開這種情況中所有的DAEMON均被預(yù)先定義為用于一單個進(jìn)程(訪問進(jìn)程51),而不是分布在數(shù)個進(jìn)程上這一限制之外,對于按照不同數(shù)據(jù)被激活的其他進(jìn)程52、54、55,也適用于同樣的說明。例如,始發(fā)側(cè)A上不完全呼叫進(jìn)程中插入的DAEMON均未被激活,如空白圓圈所指明的,從而代碼經(jīng)過它們繼續(xù)執(zhí)行。然而終到側(cè)B不完全呼叫進(jìn)程54中的第一和第二DAEMON,如實心圓圈所指明的,已被發(fā)送到業(yè)務(wù)控制進(jìn)程54的消息上所攜帶的鑰激活。參看圖6,示出了多個進(jìn)程60、62、64和68,用于較詳細(xì)地說明線索跟蹤方法。進(jìn)程60-68內(nèi)圍成的矩形每一個表示一組含有數(shù)行以水平線代表的、為一處理器執(zhí)行的代碼。同一組代碼可由不同的進(jìn)程采用。例如進(jìn)程62和64中的代碼組可以是同樣的。一跟蹤線索的起始必定由一用于點跟蹤的DAEMON確定,此時所引起的動作之一將如上所述起動線索跟蹤。起努一跟蹤線索的DAEMON可檢測系統(tǒng)中的任何事件,不管是象如上述的“摘機(jī)”那樣的外部事件還是一內(nèi)部事件。一內(nèi)部事件也可確定另一跟蹤線索的開始。事實上,每一指令步驟或一行代碼均能是一跟蹤線索的開始。應(yīng)指出,雖然一些DAEMON的插入主要是用作線索跟蹤的起始點,而所有的DAEMON均可用于點跟蹤。通常,一跟蹤線索是一執(zhí)行分支樹,如圖6中所示。例如,在進(jìn)程60中代碼行60(1)插入的第一DAEMON,如暗行所表明的,開始線索跟蹤并指定一標(biāo)識給該跟蹤線索。此跟蹤線索貫穿其他進(jìn)程形成分支60a、60b、62a、62b和64a。二個分支可互相獨立地穿過同一進(jìn)程,象分支62a和64a那樣,兩者穿過并在進(jìn)程68結(jié)束。參看圖7中同一進(jìn)程的另一個舉例,進(jìn)程60中代碼行60(5)所插入的第二DAEMON和進(jìn)程64中代碼行64(2)所插入的第三DAEMON兩者起動線索跟蹤并將標(biāo)識分配給對應(yīng)的跟蹤線索。在這一示例中有二個獨立的跟蹤線索,一個包括分支60b、62a和62b,而第二個僅包括分支64a。第一DAEMON未在進(jìn)程60中代碼行60(1)插入一跟蹤線索因為它未激活,所以此跟蹤系統(tǒng)將不包括分支60a作為一跟蹤線索,因為無跟蹤標(biāo)識。但兩跟蹤線索仍然穿過并在進(jìn)程68結(jié)束?,F(xiàn)在參看圖8,有可能對一跟蹤線索分配變量(V),即線索定界變量。這些線索定界變量可被用于對發(fā)生一定事件的次數(shù)進(jìn)行計數(shù),或用于按照先前的事件改變跟蹤線索中的DAEMON的特性。這樣的DAEMON可根據(jù)上述的某種判定作為一動作更新任一變量。如果在一跟蹤線索中線索定界變量被更新,它僅僅在該跟蹤線索的這一特定分支中有效。這樣,雖然分支62b被更新了兩次(V=2),而分支62a則僅被更新一次(V=1)。與此同時,分支60a和64a則未受另外二分支的更新影響(V=0)。如上面指出的,與一呼叫有關(guān)的應(yīng)用程序在大量可在不同處理器上進(jìn)行的進(jìn)程中執(zhí)行。因而,可按類似于圖6-8中所示的方式不涉及處理器地描述一呼叫。一個呼叫所需的全部進(jìn)程可以更簡單地進(jìn)行說明而不必考慮處理器,如圖5中所示。一以進(jìn)程說明的完整的呼叫表明在圖9-11中。較具體地參看圖9,這里表示出一呼叫所需的較重要進(jìn)程的示意圖。這些進(jìn)程包括訪問進(jìn)程(AC)71和72,服務(wù)進(jìn)程(SE)73和74,業(yè)務(wù)控制進(jìn)程(TC)75和76,以及通信進(jìn)程(COM)77和78。一個進(jìn)程可以是靜態(tài)的也可以是動態(tài)的,這取決于進(jìn)程是否是整個時間均是必須的,亦即靜態(tài)進(jìn)程,或者是僅僅在執(zhí)行特定工作期間所需的,亦即動態(tài)進(jìn)程。靜態(tài)進(jìn)程在裝載軟件和一處理器開始執(zhí)行時由網(wǎng)絡(luò)的配置定義,并沒有限制地包含訪問和服務(wù)進(jìn)程。靜態(tài)進(jìn)程的另一例子是一呼叫的建立和監(jiān)控。業(yè)務(wù)控制和通信進(jìn)程為動態(tài)進(jìn)程的舉例。運行中靜態(tài)進(jìn)程與動態(tài)進(jìn)程之間沒有區(qū)別。雙方用戶均由訪問進(jìn)程(AP)71和72加以服務(wù)。當(dāng)始發(fā)用戶提起聽筒進(jìn)行呼叫時,即啟動如下的以箭頭81-96代表的消息序列。訪問進(jìn)程(AP)71以發(fā)送消息81安排一不完全呼叫,以生成業(yè)務(wù)控制進(jìn)程(TC)75(在不完全呼叫進(jìn)程中僅一步),后者再發(fā)送一消息82至服務(wù)進(jìn)程(SE)73以得到關(guān)于接收用戶的信息,例如,電話號分析,地址確定,路面分析,收費和其他服務(wù)。服務(wù)進(jìn)程(SE)73以發(fā)送消息83給始發(fā)業(yè)務(wù)控制進(jìn)程(TC)75作為響應(yīng),后者在線路中選擇一暢通的輸出(outgoing)路線并將其保留用作傳送消息84以生成終到業(yè)務(wù)控制進(jìn)程(TC)76。終到業(yè)務(wù)控制進(jìn)程(TC)76接收目的數(shù)據(jù),并利用服務(wù)進(jìn)程(SE)74通過消息85和86來分析該信息和檢查被呼叫用戶是否存在。如果該被呼叫用戶存在,終到業(yè)務(wù)控制進(jìn)程(TC)76即發(fā)送消息87給終到訪問進(jìn)程(AC)72以確定另一方是否能工作。如果該方能工作,訪問進(jìn)程(AC)72即由消息88通知業(yè)務(wù)控制進(jìn)程(TC)76,后者通過消息89將該信息傳送給始發(fā)業(yè)務(wù)控制進(jìn)程(TC)75。然后始發(fā)的業(yè)務(wù)控制進(jìn)程(TC)75經(jīng)由消息90指令通信進(jìn)程(COM)77確立一它原先保留的話音通道91。在此話音通道91被連接時,終到通信進(jìn)程(COM)78即以發(fā)送消息92向終到業(yè)務(wù)控制進(jìn)程(TC)76加以確認(rèn),后者返回消息93以確定返回話音通道94。當(dāng)話音通道94連接到始發(fā)通信進(jìn)程(COM)77時,消息95通知始發(fā)業(yè)務(wù)控制進(jìn)程(TC)75連接完成。最后,始發(fā)業(yè)務(wù)控制進(jìn)程(TC)75將消息96送回給始發(fā)訪問進(jìn)程(AC)71指出已完成了貫通連接。著眼于上述的進(jìn)程有利于對按照本發(fā)明的采用DAEMON進(jìn)行跟蹤的分析。更具體地參看圖10,可看到按照本發(fā)明用于處理二個電話呼叫(A和B)的圖9的訪問(AC)、服務(wù)(SE)和業(yè)務(wù)控制(TC)進(jìn)程的示意表示。此兩個呼叫均由采用具有一個所插入的DAEMOND1的代碼102的同一訪問進(jìn)程(AC)101進(jìn)行服務(wù)。此訪問進(jìn)程(AC)101以分別發(fā)送消息107A和107B確立不完全呼叫,以生成獨立的業(yè)務(wù)控制進(jìn)程(TC-A,TC-B)103A和103B。雖然業(yè)務(wù)控制進(jìn)程103A、103B是獨立的,它們雙方都利用含有兩個DAEMOND2和D3的同樣代碼104。此兩個業(yè)務(wù)控制進(jìn)程TC-A和TC-B與采用含有一第四DAEMOND4的代碼106的同一服務(wù)進(jìn)程(SE)105相通信。這一例子將被用來說明數(shù)個不同的跟蹤(T1、T2和T3)、線索和點跟蹤,以及這些跟蹤被怎樣分組成獨立的跟蹤集合(I、II和III)。第一跟蹤T1為一點跟蹤,此時如果滿足一定條件,例如象用戶1111正接入呼叫,第一DAEMOND1即啟動一第二跟蹤T2。點跟蹤T1將被用于呼叫A和B二者,而如果第一DAEMOND1被激活,即啟動二個貫穿其他進(jìn)程的線索跟蹤T2,以跟蹤線索107A/108A/109A和107B/108B/109B表示,后面總稱之為跟蹤線索107-109。應(yīng)當(dāng)指出,此二跟蹤線索107-109貫穿同一服務(wù)進(jìn)程(SE)105,如上面概括地說明的。線索跟蹤T2包括三個DAEMOND2、D3和D4,其中每一個如被激活即分別作為線索跟蹤活動的部分存貯獨立的數(shù)據(jù)X、Y和Z。這些數(shù)據(jù)可以是,例如,在該DAEMON被激活時所存貯的相應(yīng)的進(jìn)程相關(guān)數(shù)據(jù)和/或相應(yīng)的系統(tǒng)級數(shù)據(jù),例如象進(jìn)程自己的標(biāo)識號。第一跟蹤集合,跟蹤集合I,包括跟蹤T1和T2,因為二者同時開始。但是,一跟蹤集合可以僅由一個跟蹤組成。例如,第三跟蹤T3可以是一由以相應(yīng)的動作按一組預(yù)先定義的過濾條件判定的第二DAEMOND2啟動的獨立點跟蹤。此判定條件可能是,例如說,“如果呼叫用戶為1111、2222或3333中的任一個,即存貯數(shù)據(jù)XYZ”。第二跟蹤集合II僅由第三點跟蹤T3組成。這一例子說明,一個DAEMON可被用于一跟蹤集合中的數(shù)個獨立的跟蹤。這樣,第二DAEMOND2被用于第二和第三跟蹤T2和T3雙方,作為跟蹤集合I和II的部分。跟蹤T1-T3的全體可以被組合到一起成為一第三跟蹤集合III以收集一個對話期間的所有信息。由這一示例論證的這種線索跟蹤的一個重大優(yōu)點在于,DAEMON能夠存貯一連串事件的根源數(shù)據(jù)以便用作這些事件發(fā)生后重新審查。DAEMON也可在為一裝置處理器(DP)利用的代碼中建立,例如裝置處理器(DP)110,表明一進(jìn)程111的兩個例子,每一個均采用帶有在其中建立的DAEMOND5的相同代碼112。此裝置處理器(DP)110可以是,例如,一專用于特殊終端設(shè)備的。裝置處理器(DP)110經(jīng)由消息116A、117A和116B、117B與一正為共用資源處理器(CPP)114執(zhí)行的訪問進(jìn)程(AC)113進(jìn)行通信。訪問進(jìn)程(AC)113再通過消息115A、118A和115B、118B以同樣方式與其他進(jìn)程,例如,圖10中所示的訪問進(jìn)程(AC)101進(jìn)行通信。雖然DAEMOND5與呼叫A和B兩者共享跟蹤信息,它僅有在鑰與鎖相符時才被激活。呼叫A的第一結(jié)索跟蹤活動由跟蹤線索115A/116A/117A/118A表示。如果消息115A中所含的鑰值與DAEMOND5中存放的鎖相符合,線索跟蹤將成為如實箭頭所表示的跟蹤線索115A/116A/117A/118A并將存貯相應(yīng)的數(shù)據(jù)。但如果第二呼叫B的消息中所獲得的鑰值與DAEMOND5的鎖不符合,將不會產(chǎn)生線索跟蹤活動,如以虛箭頭表示的跟蹤線索115B/116B/117B/118B。DAEMON46可在代碼中不同的時間建立。它們可在運行時間之前的設(shè)計階段期間產(chǎn)生,亦即運行前DAEMON46;或者隨跟蹤對話本身產(chǎn)生,亦即運行時DAEMON46。一般的運行前的DAEMON46為消息DAEMON,用于時間片和用于進(jìn)程生成及刪除的DAEMON,或者捕捉應(yīng)用程序中的重要通用事件,例如“摘要”事件,的DAEMON。圖12中表示一說明運行時間前DAEMON的產(chǎn)生的流程圖,以121開始。設(shè)計人員首先定義DAEMON(122),然后將它們插入、即產(chǎn)生進(jìn)應(yīng)用程序代碼(123)。在對應(yīng)用程序進(jìn)行編譯時(124),它被鏈接到DAEMON(125),然后被裝載進(jìn)共用資源處理器(CPP)所用的主存貯器、即存貯裝置。運行時DAEMON46可被動態(tài)地指派到一定的代碼地址,并具有與預(yù)先定義的DAEMON同樣的特點。運行時DAEMON通常被用于較詳細(xì)地分析臨界區(qū)域。它們的能力包含讀取和判定運行時所定義變量和狀態(tài),以及登記這些變量和狀態(tài)。運行時所定義DAEMON也可被設(shè)計來包含它們被產(chǎn)生的地點的應(yīng)用程序的特殊環(huán)境。圖13中表示生成運行時DAEMON(131)的流程圖。設(shè)計人員首先定義DAEMON(132),而后編譯該DAEMON(133)并將它們直接裝載進(jìn)共用資用處理器(CPP)采用的主存貯器,即存貯機(jī)構(gòu),以便為應(yīng)用程序中隨后的應(yīng)用。操作系統(tǒng)和內(nèi)核中的跟蹤工具的函數(shù)性在應(yīng)用程序中插入俘獲。見圖14。運行時DAEMON和應(yīng)用程序二者均被存放在程序存貯器中,如以141表明的,它表明為15行代碼,其中DAEMON在行2-4產(chǎn)生,應(yīng)用程序被存放在行9-11。在按照本發(fā)明完成俘獲插入的進(jìn)程之后,程序存貯器141如箭頭142所指出的轉(zhuǎn)變成143所示的形式,其中執(zhí)行路徑由箭頭145-148表明。在應(yīng)用程序執(zhí)行前,命令“俘獲調(diào)用2”被插在行10以代替應(yīng)用程序的Y代碼,后者在運行時DAEMON之后被插于行5,后面跟隨一“俘獲返回11”命令。當(dāng)應(yīng)用程序被執(zhí)行時,如箭頭145所指明的由程序存貯器143的行10轉(zhuǎn)移到行2開始執(zhí)行DAEMON。然后處理器執(zhí)行DAEMON和由應(yīng)用程序移出的Y代碼,如箭頭146所指明的。而后如箭頭147所指明的由行6返回到行11使處理器繼續(xù)執(zhí)行,以便連續(xù)執(zhí)行應(yīng)用程序,如箭頭148所指出的。而且重要的是應(yīng)認(rèn)識到,按照本發(fā)明應(yīng)用程序的執(zhí)行是連續(xù)的。操作中,運行時DAEMON46的工作與運行前DAEMON46完全相同。因此,為使下述說明簡化,除非另作說明,DAEMON46將被作為運行前的DAEMON46加以引用。如上面指明的,各DAEMON均有一鎖表,DAEMON可通過其被激活或去激活。相應(yīng)地,利用不同的方法來將鎖結(jié)構(gòu)分配給一DAEMON。如果網(wǎng)絡(luò)很小而使得編譯時發(fā)生名稱沖突的危險最小,就可將每一DAEMON在編譯時分派一唯一的鎖結(jié)構(gòu)。但如果此軟件是在不同場合設(shè)計的,就存在較大的名稱沖突危險而需要采用更復(fù)雜的方法。一種可能性是在裝載時分配唯一的鎖。在這種情況下裝載程序必須注意名稱沖突并為不同的裝載模塊同樣的DAEMON指定不同的鎖結(jié)構(gòu)。如果跟蹤發(fā)生在一大處理器網(wǎng)中,裝載程序必須跟蹤專用鎖數(shù)據(jù)結(jié)構(gòu)的共用數(shù)據(jù)庫。另一種可能是在由跟蹤工具47準(zhǔn)備跟蹤時給DOEMON分派唯一的鎖。這使得同時活化的鎖數(shù)減到最小,因為僅有那些被用于跟蹤的鎖必須分派到DAEMON。當(dāng)一個跟蹤需要數(shù)個DAEMON時,通過指定一組中的所有DAEMON共同的鎖數(shù)據(jù)結(jié)構(gòu)而在組中將它們連接起來。這樣,一單個連接到一消息的鑰就將打開該組中所存的DAEMON。這種能將DAEMON連接一起成為一共同組的特點非常重要,因為這使得有可能跟蹤一單個跟蹤過程中的高級和低級事件,以同時確定相關(guān)事件的情況。下面將詳細(xì)地說明另一種技術(shù),它可與鎖和鑰方法相關(guān)連地用來鏈接一單個組中的DAEMON。各DAEMON都具有一名稱識別符,唯一地標(biāo)識SPC交換機(jī)30中的DAEMON。如果DAEMON為一運行前DAEMON,此名稱就必須是該遠(yuǎn)程通信網(wǎng)絡(luò)中唯一的。為了優(yōu)化跟蹤期間DAEMON標(biāo)識的讀取和檢查,DAEMON名稱被改換為一運行標(biāo)識。這種標(biāo)識由一易于為DAEMON判定邏輯讀出的字組成。此運行標(biāo)識可在編譯時間分配給DAEMON,如果在編譯期間可將名稱沖突的危險減至最小的話。但如果軟件是在不同場合設(shè)計的,就無法控制名稱沖突的危險。這樣,就必須在裝載時將運行標(biāo)識指定給DAEMON。另一種可能是在跟蹤工具47將準(zhǔn)備該跟蹤時將運行標(biāo)識分派給DAEMON。跟蹤工具47為跟蹤過程中各DAEMON46指定一個數(shù)來作為運行標(biāo)識。然后這些數(shù)字標(biāo)識就被用來為跟蹤中的各DAEMON46選擇所希望的判定和動作。選擇這些方法之一的機(jī)理與上述指定唯一鎖結(jié)構(gòu)是同樣的。唯一的區(qū)別是運行標(biāo)識沒有被優(yōu)化到與鎖相同的程度,因而可用的標(biāo)識數(shù)量較大。鑰和鎖方法也可被用于調(diào)試,這使得有可能在運行期間調(diào)試一獨立的活動或進(jìn)程而不致干擾網(wǎng)絡(luò)中的其他活動。借助將調(diào)試程序的斷點連接到一跟蹤線索,就可能調(diào)試數(shù)個進(jìn)程。在到達(dá)一斷點時,該部分或跟蹤線索的分支的執(zhí)行即停止,而其余部分繼續(xù)通過多個進(jìn)程。如上所述,按照本發(fā)明的連續(xù)執(zhí)行的特點又成為跟蹤與調(diào)試之間的差別。如果僅在達(dá)到斷點時停止,跟蹤線索的其他分支可以繼續(xù)完成它們的動作。參看圖7,例如,處理器62中的代碼行62(b)處建立的一斷點被激活就將終止跟蹤線索的分支62b的執(zhí)行,但分支62a的執(zhí)行則將繼續(xù)完成。在該調(diào)試程序發(fā)送“繼續(xù)”命令之前,跟蹤線索的分支62b將不可能繼續(xù)執(zhí)行。如果調(diào)度程序接收到有關(guān)所接收的斷點和相應(yīng)的跟蹤線索標(biāo)識的信息,而且如果這一信息被送往所有能執(zhí)行該跟蹤線索的處理器的話,就可能停止一跟蹤線索的全部動作。而且,跟蹤線索必須在系統(tǒng)中的任何常規(guī)消息之前被發(fā)送,這就是說,調(diào)試系統(tǒng)必須排它地訪問該通信設(shè)施中的最高優(yōu)先級。如果這些條件均滿足,調(diào)度程序就可以檢查欲被調(diào)度的每項任務(wù)的跟蹤線索標(biāo)識,并暫停該進(jìn)程直到接收到“繼續(xù)”命令。采用這些技術(shù),還能檢查和分析不常發(fā)生的故障。在這種情況下,自動重復(fù)跟蹤線索并在發(fā)生故障前的各個周期內(nèi)刪除所得的跟蹤信息。其中發(fā)生故障的跟蹤線索的跟蹤信息連同其它有關(guān)該故障情況的信息被加以存貯,以便能在較后時間加以分析。這些技術(shù)也可被用來確定一跟蹤線索的二個分支到達(dá)一特定進(jìn)程或斷點的時間。這可能是重要的信息,因為很少發(fā)生的不合適的到達(dá)次序?qū)a(chǎn)生難以檢測的故障。參看圖8,例如,如果分支62a和64a的到達(dá)次序失調(diào),在進(jìn)程68中代碼執(zhí)行期間就可能發(fā)生故障。為了檢測這些定時或路線,情況,采用代碼內(nèi)線索定界變量(V)與進(jìn)程嵌入變量的組合。線索定界變量表明跟蹤線索的哪一分支實際上在執(zhí)行中,而進(jìn)程嵌入變量則被用于記憶這些分支哪一個最先到達(dá)。此鑰與鎖方法被用來根據(jù)DAEMON的條件語句,例如上面引用的“if(ON)”語句,選擇或不選擇DAEMON。鑰與鎖的基本數(shù)據(jù)結(jié)構(gòu)可由二種不同方法之一來實現(xiàn)。圖15-18中說明的字方法或圖19-22中說明的位方法。更具體地參看圖15,字方法采用由一字組成的鑰151(“字-鑰”),它可能例如是與一消息152連接的16位長的字。將鑰151與由應(yīng)用程序在執(zhí)行期間俘獲的每一DAEMON153相關(guān)聯(lián)的鎖相比較,即“是否相符”。只要此字鑰與DAEMON152中的一個鎖相吻合,該DAEMON就被作為所滿足的條件語句154的結(jié)果加以激活。每一包括此單一跟蹤線索的DAEMON153均具有其自己的鎖表155,如對第一DAEMOND1所作出的那樣。表155含有一個對于各DAEMON是唯一的鎖,而在當(dāng)運行時間前或運行時間內(nèi)生成新的DAEMON時,按照設(shè)計人員的特定要求,表155將在每一跟蹤對話期間被更新。通常,生成一組DAEMON,如圖15中所示,其中所有的DAEMON153均具有同樣的鎖號,亦即組鎖號156,它使得連接到消息152的單個鑰151能打開單個跟蹤中的所有DAEMON153,如上面概括地說過的。另一方面,鎖表155可能是空的而僅僅在要求一定的DAEMON的跟蹤對話開始之前的運行期間被更新。在運行期間進(jìn)行更新具有保存跟蹤時的能力的優(yōu)點,因為未被選擇的鎖將不被讀出。DAEMON的直接插入部分(in-lineportion)按如下編程<prelisting-type="program-listing"><![CDATA[ if(key?。?){ for(i=0;locks[i]?。?;i++) if(key==locks[i]) daemon-on-call();c1993TelefonaktiebolagetLMEricsson]]></pre>更具體地參看圖17,說明利用字方法的單個跟蹤的鑰-鎖代碼的流程圖,以171開始。步驟1確定當(dāng)前是否利用字鑰151。這是將字鑰的值與零比較來實現(xiàn)的(172)。如果字鑰151的值等于零,即為不在使用中,因而終止該單個的跟蹤(178)。但如果字鑰151正在使用中(亦即其值不等于零),則將鎖表155中所包含的每一鎖與字鑰151進(jìn)行比較以確定字鑰151是否將打開鎖以激活DAEMON。第二步(173)將鎖變量(“LIV”)的值初始化為零。為訪問包含在一與被指定的DAEMON相關(guān)的鎖表中的各個別鎖必須一個LIV。第三步(174)訪問鎖表155和確定其中所含的鎖是否有一個可被字鑰151打開。這種訪問是通過利用該LIV的值來與鎖表155中所存放的單個鎖(“被訪問的鎖”)相對應(yīng)實現(xiàn)的。第四步是確定該被訪問的鎖是否在被應(yīng)用中。這通過將被訪問的鎖的值與零相比較來完成(174)。如果此被訪問鎖的值等于零,它當(dāng)前未在應(yīng)用中,因此,鎖表中所含有的其他鎖均沒有在應(yīng)用中。從而此單個的跟蹤即停止(178)。如果此被訪問鎖的值不等于零,則在第五步(175)確定字鑰151是否將打開該鎖。這通過將字鑰151的值與被訪問鎖的值相比較來實現(xiàn)。如果字鑰151的值等于被訪問鎖的值,就將激活相應(yīng)被指定的DAEMON(176),方法進(jìn)入第六步。如果字鑰151將不打開被訪問的鎖,此方法也將前進(jìn)到第六步。第六步(177)使LIV增1以便能訪問鎖表155中的不同鎖。重復(fù)進(jìn)行步驟三至六,直至被訪問鎖的值等于零,以使此單個跟蹤停止(178)。如上所述,可同時進(jìn)行多個獨立的跟蹤,或者可與另外的跟蹤對話同期地進(jìn)行跟蹤線索調(diào)試??傮w地參看圖16和18,這里示出了利用字方法的多重跟蹤鑰鎖代碼的圖形表示和相應(yīng)的流程圖。較具體說,需要有一字鑰表160來為進(jìn)行二個跟蹤存放鑰,原始字鑰151用于第一跟蹤而一新的字鑰161用于第二跟蹤。各字鑰151、161激活在其鎖表155中具有對應(yīng)鎖號的DAEMON。例如,字鑰151激活所有具有組鎖號的DAEMON153,而字鑰161則與一僅在二個DAEMON的鎖表中發(fā)現(xiàn)的不同鎖號相匹配。DAEMON的直接插入部分將按如下編程<prelisting-type="program-listing"><![CDATA[ for(j=0;keys[j]?。?;j++) for(i=0;lock[i]?。?;i++) if(keys[j]==locks[i]) daemon-on-call(); c1993TelefonaktiebolagetLMEricsson]]></pre>更具體地參看圖18,一說明多重跟蹤的鑰鎖代碼的流程圖于180處開始。步驟1將鑰下標(biāo)變量(“KIV”)的值初始化成為零(181)。因為進(jìn)行二個跟蹤的字鑰151、161均存放在一鑰表160中,所以需要一KIV。步驟二(182)比較由相應(yīng)的KIV值訪問的存放在該表中的字鑰(“被訪問字鑰”)查看其是否正被應(yīng)用中。如果此被訪問字鑰值等于零,則其不在應(yīng)用中而停止多重跟蹤(189)。但如果該字鑰是在應(yīng)用中(即其值不等于零),則將鎖表155中所含的每一鎖與此被訪問字鑰進(jìn)行比較以確定此字鑰151是否將打開鎖激活DAEMON。第二步(183)將一鎖下標(biāo)變量(“LIV”)的值初始化為零。為訪問與被指定的DAEMON相關(guān)的鎖表中所含的各個別鎖需要一LIV。第三步(184)訪問鎖表155以確定其中所包含的鎖是否有一個能為此字鑰151打開。進(jìn)行此訪問是通過利用LIV值與鎖表155中存放的單個鎖(“被訪問鎖”)相對應(yīng)來實現(xiàn)的。第四步確定此被訪問的鎖是否正被利用中。這是將被訪問鎖的值與零比較(184)來完成的。如果此被訪問鎖值等于零,當(dāng)前它不在應(yīng)用中,而因此鎖表中所含有的其他鎖沒有一個在應(yīng)用中。從而停止多重跟蹤(189)。如被訪問鎖的值不等于零,則在第五步(185)中確定此字鑰151是否將打開此鎖。這是由將字鑰151的值與被訪問鎖值相比較來實現(xiàn)的。如果字鑰151的值等于被訪問鎖值,則激活該有關(guān)的被指定的DAEMON(186)和該方法前進(jìn)到第六步驟。如果字鑰151不會打開被訪問的鎖,此方法也將前進(jìn)到第六步。第六步(187)中使LIV增1以使其能訪問鎖表155中不同的鎖。重復(fù)進(jìn)行步驟四至六直到此被訪問鎖的值等于零,使得鑰下標(biāo)變量被增1(188)并且此方法前進(jìn)到步驟2(182)。圖19和21給出了采用位方法的單個跟蹤的鑰-鎖代碼的圖形表示和流程圖,其中鑰191(“位鑰”)為一雙向量,它包括用于各個被生成的DAEMON的一位組合格式192和一組相應(yīng)的下標(biāo)號193。此位鑰191與一消息194連接,而那些未鎖住的DAEMON195在對應(yīng)于與DAEMON號相符的下標(biāo)號的位組合格式192中具有一邏輯1(“激活位”)。例如,位鑰191的下標(biāo)號組193按箭頭196所指出的與DAEMON組195進(jìn)行比較。每次匹配,條件語句197均按照位組合格式192中的對應(yīng)位的狀態(tài)激活或去激活該DAEMON。因此,作為位組合格式192中的激活位的結(jié)果,位鑰191激活與下標(biāo)號7相關(guān)的DAEMON7,而由于位組合格式195的相應(yīng)位中的邏輯結(jié)果(“去激活位”)其余DAEMON195則不被激活。位鑰191的這種雙向量性質(zhì)省略了字方法中所需采用的鎖表155。在當(dāng)DAEMON195被用于線索跟蹤加以分組時,此位鑰僅含有一用于該組上每一DAEMON的一個激活位。這一DAEMON的直接插入部分將按下述編程<prelisting-type="program-listing"><![CDATA[ strucklock { intoffset intmask }lock intkey[MaxNoOfDaemons/BitsPerInt]; if(key[lock.offset]&lock.mask) { daemonDoActivations(); } c1993TelefonaktiebolagetLMEricsson]]></pre>較具體地參看圖21,說明利用位方法的單個跟蹤的鑰-鎖代碼的流程圖于211處開始。一被指定的DAEMON由一位移和屏蔽變量組成。位移變量被用于訪問與該被指定DAEMON相關(guān)的對應(yīng)位鑰。屏蔽變量被用來確定該位鑰是否將激活此被指定的DAEMON。步驟1進(jìn)行與此被指定DAEMON相關(guān)的位鑰的比較(212)。這是通過將包含在位鑰中的一激活/去激活(a/d)位與包含在被指定的DAEMON的屏蔽變量中的一對應(yīng)屏位加以比較來實現(xiàn)的。如果此對應(yīng)于屏蔽位的a/d位被激活(等于1),一DAEMON就被激活(213)并停止單個跟蹤(214)。如果此時應(yīng)于屏蔽位的a/d位被去激活(等于零),則停止單個跟蹤(214)。如上所述,可能同時發(fā)生多個獨立的跟蹤,或者一跟蹤線索調(diào)試與另外的跟蹤對話同時間進(jìn)行??傮w來參看圖20和22,說明利用鑰方法的多重跟蹤的鑰-鎖代碼的圖形表示和相應(yīng)的流程圖。較具體地說,一個位鑰表200被用來存放數(shù)個跟蹤用的鑰,用于第一跟蹤的原始位鑰191和用于第二跟蹤的新的位鑰201。各個位鑰191、201均激活位組合格式192中具有相應(yīng)激活位的DAEMON。例如,如果在位組合格式192的下標(biāo)號1、2和7建立激活位,位鑰201就可能激活全部DAEMON195。在這種情況下,DAEMON的直接插入部分將按下述編程<prelisting-type="program-listing"><![CDATA[ structlock { intoffset intmask }lock intkeyTable[MaxNoOfTraces][MaxNoOfDaemons/ /BitsPerInt]; intindex; intusedIndex; for(index=0;index<=usedIndex;index++){ if(keyTable[index][lock.offset]&lock.mask) { daemonDoActivations(); } { c1993TeleronaktiebolagetLMEricsson]]></pre>較具體地參見圖22,說明采用位鑰方法的多重跟蹤的鑰-鎖代碼的流程圖,于221處開始。一被指定的DAEMON由一位移和屏蔽變量組成。位移變量用于訪問與被指定DAEMON相關(guān)的對應(yīng)位鑰。屏蔽變量被用于確定一被指定的位鑰是否將激活該被指定的DAEMON。步驟1(222)將下標(biāo)變量值初始化為零。步驟2(223)將下標(biāo)變量值與被采用的下標(biāo)變量值進(jìn)行比較。如果下標(biāo)變量值小于或等于被采用下標(biāo)變量的值,方法前進(jìn)到步驟3(224)。如果下標(biāo)變量值大于被采用下標(biāo)變量的值,停止多重跟蹤(227)。步驟3將一位鑰中所含的激活/去激活(a/d)位與一被指定DAEMON中所含的屏蔽變量相比較。這種比較是通過利用此下標(biāo)變量由一鑰表訪問與一特定跟蹤相關(guān)的位鑰(“被訪問的位鑰”)來實現(xiàn)的。然后利用被指定DAEMON的一位移變量訪問被訪問位鑰中的相關(guān)a/d位(“被訪問的a/d位)。如果此時應(yīng)于一被指定DAEMON中的屏蔽位的a/d位被激活(等于1),此被指定的DAEMON即被激活(225)并且此方法前進(jìn)到步驟4(226)。如果此對應(yīng)于一被指定DAEMON中的屏蔽位的a/d位被去激活(等于零),此方法仍然前進(jìn)到步驟4。步驟4將下標(biāo)變量增1并前進(jìn)到步驟2。在此二方法中,在將鑰結(jié)構(gòu)作簡單地擴(kuò)大時可以同時發(fā)生數(shù)個跟蹤。這使得數(shù)個獨立工作的設(shè)計人員能進(jìn)行跟蹤和甚至同時分享跟蹤線索的部分。二種方法均通過形成由一鑰即可打開組由全部DAEMON的DAEMON組來連接一跟蹤內(nèi)的DAEMON。將DAEMON連接成一公共組是剛才描述的鑰-鎖方法的最重要特點之一。這種分組使得有可能以分支46a和46b來跟蹤如圖3B中所示的同一跟蹤中的高級(應(yīng)用程序)事件和低級(操作軟件)事件以確定應(yīng)用程序級操作系統(tǒng)事件的先輩。字方法的主要優(yōu)點在于,如果DAEMON的數(shù)量大于所采用的處理器的正常的字長,DAEMON的直接插入部分執(zhí)行就較快。其原因是這樣的處理器通常被加以優(yōu)化成為以字而不是位進(jìn)行工作。另一方面,位方法的主要優(yōu)點則在于有關(guān)DAEMON組的信息在發(fā)生跟蹤前無需加以信號化。因而位方法最適合網(wǎng)絡(luò)中無處理器的中央管理機(jī)構(gòu)時的系統(tǒng),從而預(yù)先將不知道構(gòu)成跟蹤線索的部分的處理器。當(dāng)網(wǎng)絡(luò)太大以至無法知道或預(yù)見構(gòu)成跟蹤線索的部分的處理器的數(shù)量時,和欠缺廣播消息的通用方法的場合,鑰以及完全的判定和動作表(qualifications-and-actionslist)必須是由跟蹤線索推演得的每一個消息的一部分。這是一個嚴(yán)重的缺點,因為被跟蹤的消息需要較其他消息更多的空間,而由于這種原因被跟蹤的跟蹤線索的形為將與未被跟蹤的不同。但對于實現(xiàn)類型是必要的網(wǎng)絡(luò),就必須應(yīng)用位方法。另一方面,如果參與的處理器可被預(yù)先通知一定的跟蹤,也易于傳送組信息。在這種情況中,字方法利于保存能力。在說明了本發(fā)明的細(xì)節(jié)之后,現(xiàn)在對本發(fā)明的運行加以回顧,而由跟蹤對話起始,此對話如下開始(1)設(shè)計人員決定應(yīng)被用于跟蹤過程的DAEMON。在采用DAEMON組時,按照執(zhí)行是否需要,系統(tǒng)將一組鎖加給那些被定義為該組中的DAEMON。(2)設(shè)計人員利用點跟蹤定義跟蹤線索的起始點。(3)當(dāng)執(zhí)行通過起始點時由一DAEMON指定一跟蹤線索標(biāo)識并開始跟蹤。(4)在跟蹤結(jié)束時對設(shè)計人員顯示結(jié)果。應(yīng)看到,由前面的說明將能清楚了解本發(fā)明的操作和結(jié)構(gòu)。雖然所描述和說明的方法、設(shè)備和系統(tǒng)是被作為優(yōu)選的方案,但很顯然,在不偏離所列權(quán)利要求中規(guī)定的本發(fā)明的精神實質(zhì)和范疇的前提下可以進(jìn)行各種不同的改變和修正。權(quán)利要求1.一檢測遠(yuǎn)程通信網(wǎng)絡(luò)中發(fā)生的事件的方法,此通信網(wǎng)絡(luò)包括有存貯程序控制(SPC)交換機(jī),每一SPC交換機(jī)均包括有一轉(zhuǎn)換機(jī)構(gòu)和用于執(zhí)行軟件程序控制該轉(zhuǎn)換機(jī)構(gòu)的處理器,其特征是所述方法包括有步驟在該軟件程序的被選擇部分建立代碼序列,每一代碼序列包含一響應(yīng)一定事件的條件語句和至少一個檢測滿足該條件語句的某事件而引起的動作;對每一代碼序列指定一鎖值,各鎖值唯一地識別對應(yīng)的代碼序列并能用來激活處理器以執(zhí)行該代碼序列;將一鑰值與每一鎖值進(jìn)行比較以便有選擇地激活處理器,在當(dāng)鑰值等于鎖值時執(zhí)行代碼序列;如果被檢測事件滿足該條件語句,執(zhí)行該代碼序列中指定的操作;和在各動作被執(zhí)行后繼續(xù)執(zhí)行軟件程序,由此來維持SPC交換機(jī)中的連續(xù)處理。2.權(quán)利要求1所述方法,其特征是所述各處理器包括有一處理單元和存貯器,和所述代碼序列于SPC交換機(jī)的運行時間之前按下列步驟在軟件程序中產(chǎn)生和插入;定義該代碼序列以包含條件語句、所引起的動作、和對應(yīng)的鎖值;在軟件程序中所選定部分植入代碼序列;編譯軟件程序并將經(jīng)過編譯的軟件程序鏈接到該代碼序列;和將經(jīng)編譯的鏈接到代碼序列的軟件程序裝載進(jìn)處理器的存貯器中以便隨后由處理單元在SPC交換機(jī)的運行時間內(nèi)執(zhí)行。3.權(quán)利要求1所述方法,其特征是所述各處理器包括有一處理單元和存貯器,和所述代碼序列在SPC交換機(jī)的運行時間由按下列步驟在被存放在存貯器中的軟件程序中產(chǎn)生和插入;定義代碼序列以包含條件語句、所引起的動作和對應(yīng)的鎖值;編譯該代碼序列并將經(jīng)編譯的代碼序列裝載進(jìn)處理器的存貯器中;和在軟件程序中插入一俘獲調(diào)用和在該代碼序列中插入一俘獲返回,藉此使處理單元的執(zhí)行由軟件程序轉(zhuǎn)移到該代碼序列和返回到軟件程序。4.權(quán)利要求1所述方法,其特征是還包括有步驟對至少兩個代碼序列指定一第二鎖值以便在一組中唯一地識別它們,此第二鎖值可用于激活處理器執(zhí)行該組中的代碼序列;將鑰值與第二鎖值加以比較以便有選擇地在該鑰值等于該第二鎖值時激活處理器以執(zhí)行該組中的代碼序列;和如果被檢測的事件滿足相應(yīng)的條件語句即執(zhí)行該組的各代碼序列中所指定的動作;5,權(quán)利要求1所述方法,其特征是還包括步驟將各鎖值與一第二鑰值進(jìn)行比較以便在第二鑰值等于其鎖值時選擇激活處理器以執(zhí)行一第二代碼序列;和如果被檢測事件滿足該條件語句執(zhí)行該第二代碼序列中指定的動作。6.權(quán)利要求5所述方法,其特征是第一和第二代碼序列相同。7.權(quán)利要求1所述方法,其特征是所述鑰值包括一具有預(yù)定位數(shù)的連接到一消息的字。8.權(quán)利要求7所述方法,其特征是還包括有步驟指定一第二鎖值到至少二個代碼序列以便在一組中唯一地識別它們,此第二鎖值可用于激活處理器以執(zhí)行該組中的代碼序列;將該鑰值與第二鎖值進(jìn)行比較以便在鑰值等于第二鎖值時有選擇地激活處理器執(zhí)行該組中的代碼序列;和如果被檢測事件滿足相應(yīng)的條件語句執(zhí)行該組各代碼序列中指定的活動。9.如權(quán)利要求8所述方法,其特征是還包括步驟將各鎖值與一第二鑰值進(jìn)行比較,在當(dāng)此第二鑰值等于其鎖值時選擇激活處理器執(zhí)行一第二代碼序列;和如果被檢測事件滿足條件語句執(zhí)行該第二代碼序列中指定的動作。10.權(quán)利要求1所述方法,其特征是所述鑰值為一包括位組合格式和各代碼序列的對應(yīng)指針號組的雙向量,并且各代碼序列的所述鎖值為可根據(jù)位的狀態(tài)進(jìn)行激活的位組合格式中的對應(yīng)位。11.權(quán)利要求10所述方法,其特征是還包括有步驟將各鎖值與一第二鑰值進(jìn)行比較當(dāng)此第二鑰值等于其鎖值時選擇激活處理器執(zhí)行一第二代碼序列;和如果所檢測事件滿足條件語句執(zhí)行第二代碼序列中指定的動作。12.一檢測遠(yuǎn)程通信網(wǎng)絡(luò)中發(fā)生的事件的方法,此通信網(wǎng)絡(luò)包括有存貯程序控制(SPC)交換機(jī),各SPC交換機(jī)均包括有一轉(zhuǎn)換機(jī)構(gòu)和執(zhí)行軟件程序控制該轉(zhuǎn)換機(jī)構(gòu)的處理器,其特征是所述方法包括有步驟在該軟件程序的被選擇部分建立代碼序列,每一代碼序列均包含一響應(yīng)一定事件的條件語句和至少一個由檢測到滿足該條件語句的某一事件所引起的動作;對每一代碼序列指定一鎖值,各鎖值唯一地識別對應(yīng)的代碼序列并可用于或者激活處理器以執(zhí)行該代碼序列或者去激活處理器以便避開該代碼序列繼續(xù)執(zhí)行軟件程序;將一鑰值與各鎖值進(jìn)行比較當(dāng)鑰值等于鎖值時選擇激活處理器執(zhí)行代碼序列,或者在當(dāng)鑰值與鎖值不等時去激活處理器以便避開該代碼序列;如果所檢測事件滿足條件語句即執(zhí)行代碼序列中所指定的動作;和在各個活動被執(zhí)行后繼續(xù)執(zhí)行軟件程序由此來保持SPC交換機(jī)中的連續(xù)處理。13.權(quán)利要求12所述方法,其特征是所述各處理器均包括一處理單元和存貯器,和其中代碼序列于SPC交換機(jī)的運行時間前在軟件程序中按下列步驟產(chǎn)生和插入;定義代碼序列以包含條件語句、所引起的動作、和對應(yīng)的鎖值;在軟件程序的被選定部分建立代碼序列;編譯該軟件程序并將經(jīng)編譯的軟件程序鏈接到該代碼序列;和將鏈接到代碼序列的經(jīng)過編譯的軟件程序裝載進(jìn)處理器的存貯器以便隨后由處理單元在SPC交換機(jī)的運行期間執(zhí)行。14.權(quán)利要求12所述方法,其特征是各處理器均包括一處理單元和存貯器,其中代碼序列于SPC交換機(jī)的運行期間按照下列步驟在存貯于存貯器中的軟件程序中產(chǎn)生和插入定義代碼序列以包含條件語句、所引起的動作和對應(yīng)的鎖值;編譯該代碼序列并將經(jīng)編譯的代碼序列裝載進(jìn)處理器的存貯器;和在軟件程序中插入一俘獲調(diào)用和在代碼序列中插入一俘獲返回,藉此使處理單元的執(zhí)行由軟件程序轉(zhuǎn)移到代碼序列和返回到軟件程序。15.權(quán)利要求12所述方法,其特征是還包括步驟給至少兩個代碼序列指定一第二鎖值以便在一組中唯一地識別它們,此第二鎖值可用于或者激活處理器以執(zhí)行該組中的代碼序列,或者去激活處理器以避開該組中的代碼序列并繼續(xù)執(zhí)行軟件程序;將鑰值與第二鎖值進(jìn)行比較在當(dāng)鑰值等于第二鎖值時選擇激活處理器以執(zhí)行該組中的代碼序列,或者在當(dāng)鑰值與第二鎖值不相等時去激活處理器以避開該組中的代碼序列;和如果所檢測事件滿足相應(yīng)的條件語句即執(zhí)行該組各代碼序列中指定的動作。16.權(quán)利要求12所述方法,其特征是還包括有步驟將一第二鑰值與各鎖值進(jìn)行比較在當(dāng)?shù)诙€值等于其鎖值時選擇激活處理器以執(zhí)行一第二代碼序列,或者在當(dāng)?shù)诙€值不等于其鎖值時去激活處理器以避開該第二代碼序列;和如果所檢測事件滿足條件語句即執(zhí)行該第二代碼序列中指明的動作。17.權(quán)利要求16所述方法,其特征是所述第一和第二代碼序列是相同的。18.權(quán)利要求12所述方法,其特征是所述鑰值包括一具有預(yù)定位數(shù)的連接到一消息的字。19.權(quán)利要求18所述方法,其特征是還包括有步驟給至少兩個代碼序列指定一第二鎖值以在一組中唯一地識別它們,此第二鎖值可用于或者激活處理器執(zhí)行該組中的代碼序列或者去激活處理器以避開該組中的代碼序列和繼續(xù)執(zhí)行軟件程序;將鑰值與第二鎖值進(jìn)行比較,在當(dāng)鑰值等于第二鎖值時選擇激活處理器執(zhí)行該組中的代碼序列,或者在鑰值不等于第二鎖值時去激活處理器以避開該組中的代碼序列;和如果被檢測事件滿足對應(yīng)的條件語句即執(zhí)行該組各代碼序列中指定的活動。20.權(quán)利要求19所述方法,其特征是還包括有步驟將一第二鑰值與每一鎖值進(jìn)行比較在當(dāng)?shù)诙€值等于其鎖值時選擇激活處理器執(zhí)行一第二代碼序列,或在當(dāng)?shù)诙€值不等于其鎖值時去激活處理器以避開該第二代碼序列;和如果被檢測事件滿足條件語句即執(zhí)行該第二代碼序列中指明的活動。21.權(quán)利要求12所述方法,其特征是所述鑰值為一包括位組合格式和針對各代碼序列的一組對應(yīng)指針號的雙向量,而各代碼序列的所述鎖值為一能根據(jù)位狀態(tài)用來激活或去激活的該位組合格式中的對應(yīng)位。22.權(quán)利要求21所述方法,其特征是還包括有步驟將一第二鑰值與各鎖值進(jìn)行比較,在當(dāng)?shù)诙€值等于其鎖值時激活處理器執(zhí)行一第二代碼序列,或者在當(dāng)?shù)诙€值不等于其鎖值時去激活處理器以避開該第二代碼序列;和如果被檢測事件滿足條件語句即執(zhí)行該第二代碼序列中指明的動作。23.一檢測遠(yuǎn)程通信網(wǎng)絡(luò)中發(fā)生的事件的方法,此通信網(wǎng)絡(luò)包括有存貯程序控制(SPC)交換機(jī),每一SPC交換機(jī)均包括有一轉(zhuǎn)換機(jī)構(gòu)和一執(zhí)行控制該轉(zhuǎn)換機(jī)構(gòu)的軟件程序的處理器,其特征是所述方法包括有步驟在該軟件程序的被選擇部分產(chǎn)生代碼序列,各代碼序列包含有一響應(yīng)某一定事件的條件語句和至少一個因檢測到滿足該條件語句的某一事件所引起的動作;給至少兩個代碼序列指定一鎖值以在一組中唯一地識別它們,此鎖值可用于或者激活處理器以執(zhí)行該組中的代碼序列,或者去激活處理器避開該組中的代碼序列繼續(xù)執(zhí)行軟件程序;將一鑰值與該鎖值進(jìn)行比較,在當(dāng)鑰值等于鎖值時激活處理器以執(zhí)行該組中的代碼序列,或者在當(dāng)鑰值不等于鎖值時去激活處理器以避開該組中的代碼序列;如果所檢測事件滿足相應(yīng)的條件語句即執(zhí)行該組的各代碼序列中指明的動作;和在各個動作執(zhí)行之后繼續(xù)執(zhí)行軟件程序藉此來保持SPC交換機(jī)中的連續(xù)處理。24.權(quán)利要求23所述方法,其特征是還包括步驟將一第二鑰值與各鎖值進(jìn)行比較在當(dāng)此第二鑰值等于其鎖值時選擇激活其他的處理器以執(zhí)行一第二代碼序列,或者在當(dāng)?shù)诙€值不等于其鎖值時去激活該處理器以避開此第二代碼序列;和如果所檢測事件滿足條件語句即執(zhí)行該第二代碼序列中指明的動作。25.權(quán)利要求23所述方法,其特征是所述鑰值包括一具有預(yù)定位數(shù)的連接到一消息的字。26.權(quán)利要求25所述方法,其特征是還包括有步驟將一第二鑰值與各鎖值進(jìn)行比較在當(dāng)此第二鑰值等于其鎖值時選擇地激活另一處理器以執(zhí)行一第二代碼序列,或者在當(dāng)此第二鑰值不等于其鎖值時去激活該處理器以避開此第二代碼序列;和如果所檢測的事件滿足條件語句即執(zhí)行此第二代碼序列中指明的動作。27.一檢測遠(yuǎn)程通信網(wǎng)絡(luò)中發(fā)生的事件的設(shè)備,此通信網(wǎng)絡(luò)包括有存貯程序控制(SPC)交換機(jī),各SPC交換機(jī)均包括有一轉(zhuǎn)換機(jī)構(gòu)和執(zhí)行控制該轉(zhuǎn)換機(jī)構(gòu)的軟件程序的處理器,其特征是所述設(shè)備包括有用于在該軟件程序的被選擇部分中建立代碼序列的裝置,每一代碼序列均包含一響應(yīng)某些事件的條件語句和至少一個由檢測滿足條件語句的某一事件所引起的動作;用于對每一代碼序列指定一鎖值的裝置,各鎖值唯一地識別對應(yīng)的代碼序列并能用于激活執(zhí)行代碼序列的處理器;用于將一鑰值與各鎖值進(jìn)行比較的裝置,以便在鑰值等于鎖值時選擇激活執(zhí)行該代碼序列的處理器;用于在如果所檢測事件滿足條件語句時執(zhí)行該代碼序列中指明的動作的裝置;和用于在各個動作被執(zhí)行后繼續(xù)執(zhí)行軟件程序的裝置,藉此維持SPC交換機(jī)中的連續(xù)處理。28.權(quán)利要求27所述設(shè)備,其中各處理器均包括有一處理單元和存貯器,和其中代碼序列于SPC交換器的運行時間前在軟件程序中生成和植入,其特征是所述設(shè)備還包括有用于定義代碼序列以包含條件語句、所引起的動作、和相應(yīng)鎖值的裝置;用于在軟件程序的被選定部分產(chǎn)生代碼序列的裝置;用于編譯軟件程序和將經(jīng)編譯的軟件程序鏈接到代碼序列的裝置;和用于將鏈接到代碼序列的經(jīng)編譯的軟件程序裝載進(jìn)處理器的存貯器的裝置,以便隨后由處理單元在SPC交換機(jī)的運行期間執(zhí)行。29,權(quán)利要求27所述設(shè)備,其中每一處理器均包括一處理單元和存貯器,和其中代碼序列于SPC交換機(jī)的運行期間內(nèi)在存放在存貯器中的軟件程序中生成和植入,其特征是所述設(shè)備還包括有用于定義代碼序列以包含條件語句、所引起的動作和對應(yīng)鎖值的裝置;用于編譯代碼序列和將經(jīng)編譯的代碼序列裝載進(jìn)處理器的存貯器的裝置;和用于在軟件程序中插入一俘獲調(diào)用和在代碼序列中插入一俘獲返回的裝置,藉此使處理單元的執(zhí)行由軟件程序轉(zhuǎn)移到代碼序列和返回到軟件程序。30.權(quán)利要求27所述設(shè)備,其特征是還包括有用于將一第二鎖值指定給至少兩個代碼序列以便在一組中唯一地識別它們的裝置,此第二鎖值能用于激活處理器以執(zhí)行該組中的代碼序列;用于將第二鎖值與鑰值進(jìn)行比較的裝置,以便在當(dāng)鑰值等于第二鎖值時選擇激活處理器以執(zhí)行該組中的代碼序列;和用于在如果被檢測事件滿足相應(yīng)的條件語句時執(zhí)行該組各代碼序列中指明的動作的裝置。31.權(quán)利要求27所述設(shè)備,其特征是還包括用于將各鎖值與一第二鑰值進(jìn)行比較的裝置,以便在此第二鑰值等于其鎖值時選擇激活執(zhí)行一第二代碼序列的處理器;和用于在如果所檢測事件滿足條件語句時執(zhí)行此第二代碼序列中指明的動作的裝置。32.權(quán)利要求31所述設(shè)備,其特征是所述第一和第二代碼序列是相同的。33.權(quán)利要求27所述設(shè)備,其特征是所述鑰值為一具有預(yù)定位數(shù)的連接到一消息的字。34.權(quán)利要求33所述設(shè)備,其特征是還包括有用于將一第二鎖值指定給至少兩個代碼序列以便在一組中唯一地識別它們的裝置,此第二鎖值可用于激活為執(zhí)行該組中的代碼序列的處理機(jī);用于將第二鎖值與鑰值進(jìn)行比較的裝置,在當(dāng)鑰值等于第二鎖值時選擇激活為執(zhí)行該組中的代碼序列的處理器;和用于在如果所檢測事件滿足相應(yīng)的條件語句時執(zhí)行該組的各代碼序列中所指明的動作的裝置。35.權(quán)利要求34所述設(shè)備,其特征是還包括用于將各鎖值與一第二鑰值進(jìn)行比較的裝置,當(dāng)?shù)诙€值等于其鎖值時選擇激活執(zhí)行一第二代碼序列的處理器;和用于在如果所檢測事件滿足條件語句時執(zhí)行該第二代碼序列中指明的動作的裝置。36.權(quán)利要求27所述設(shè)備,其特征是所述鑰值為一包括一位組合格式和一組對應(yīng)于各代碼序列的相應(yīng)指針號的雙向量,和各代碼序列的鎖值為能根據(jù)位狀態(tài)激活的該位組合格式中的對應(yīng)位。37.權(quán)利要求36所述設(shè)備,其特征是還包括用于將每一鎖值與一第二鑰值進(jìn)行比較的裝置,當(dāng)此第二鑰值等于其鎖值時選擇激活執(zhí)行一第二代碼序列的處理器;和用于在如果所檢測的事件滿足條件語句時執(zhí)行該第二代碼序列中指明的動作。38.一檢測遠(yuǎn)程通信網(wǎng)絡(luò)中發(fā)生的事件的設(shè)備,該通信網(wǎng)絡(luò)包括有存貯程序控制(SPC)交換機(jī),每一交換機(jī)均包括有一轉(zhuǎn)換機(jī)構(gòu)和為執(zhí)行控制該轉(zhuǎn)換機(jī)構(gòu)的軟件程序的處理器,其特征是所述設(shè)備包括有用于在該軟件程序的被選定部分中建立代碼序列的裝置,各代碼序列包含一響應(yīng)某些事件的條件語句和至少一個由檢測滿足條件語句的某一事件所引起的動作;用于給每一代碼序列指定一鎖值的裝置,各鎖值唯一地識別相應(yīng)的代碼序列并可用于或者激活執(zhí)行代碼序列的處理器,或者去激活該處理器以避開代碼序列繼續(xù)執(zhí)行軟件程序;用于將一鑰值與各鎖值進(jìn)行比較的裝置,在當(dāng)鑰值等于鎖值時選擇激活執(zhí)行代碼序列的處理器,或者在當(dāng)鑰值不等于鎖值時去激活該處理器以避開該代碼序列;用于在如果所檢測事件滿足條件語句時執(zhí)行該代碼序列中指明的動作的裝置;和用于在各動作被執(zhí)行后繼續(xù)執(zhí)行軟件程序的裝置,藉此維持SPC交換機(jī)中的連續(xù)處理。39.權(quán)利要求38所述設(shè)備,其中各處理器均包括有一處理單元和存貯器,和所述代碼序列于SPC交換機(jī)的運行時間前在軟件程序中生成和植入,其特征是所述設(shè)備還包括有用于定義代碼序列以包含條件語句、所引起的動作、和對應(yīng)鎖值的裝置;用于在軟件程序的被選定部分產(chǎn)生代碼序列的裝置;用于編譯軟件程序并將經(jīng)編譯的軟件程序鏈接到該代碼序列的裝置;和用于將鏈接到代碼序列的經(jīng)編譯的軟件程序裝載進(jìn)處理器的存貯器中的裝置,以便由處理單元隨后在SPC交換機(jī)的運行期間執(zhí)行。40.權(quán)利要求38所述設(shè)備,其中各處理器均包括一處理單元和存貯器,而所述代碼序列在SPC交換機(jī)的相應(yīng)運行時間內(nèi)在被存放在存貯器中的軟件程序中生成和植入,其特征是所述設(shè)備還包括用于定義代碼序列以包含條件語句、所引起動作和對應(yīng)鎖值的裝置;用于編譯代碼序列和將經(jīng)編譯的代碼序列裝載進(jìn)處理器的存貯器的裝置;和用于在軟件程序中插入一俘獲調(diào)用和在代碼序列中插入一俘獲返回的裝置,藉此,處理單元的執(zhí)行由軟件程序轉(zhuǎn)移到代碼序列并返回到軟件程序。41.權(quán)利要求38所述設(shè)備,其特征是還包括有用于將一第二鎖值指定給至少兩個代碼序列的裝置,以便在一組中唯一地識別它們,此第二鎖值可用于或者激活處理器以執(zhí)行該組中的代碼序列或者去激活處理器以避開該組中的代碼序列并繼續(xù)執(zhí)行軟件程序;用于將鑰值與第二鎖值進(jìn)行比較的裝置,在當(dāng)鑰值等于第二鎖值時選擇激活執(zhí)行該組中的代碼序列的處理器,或者在當(dāng)鑰值不等于第二鎖值時去激活該處理器以避開該組中的代碼序列;和用于在如果所檢測的事件滿足相應(yīng)的條件語句時執(zhí)行該組的各代碼序列中指明的動作的裝置。42.權(quán)利要求38所述設(shè)備,其特征是還包括有用于將一第二鑰值與各鎖值進(jìn)行比較的裝置,在當(dāng)此第二鑰值等于其鎖值時選擇激活執(zhí)行一第二代碼序列的處理器,或在此第二鑰值不等于其鎖值時去激活該處理器以避開此第二代碼序列;和用于在如果所檢測事件滿足條件語句時執(zhí)行該第二代碼序列中指明的動作。43.權(quán)利要求42所述設(shè)備,其特征是所述第一和第二代碼序列是同樣的。44.權(quán)利要求38所述設(shè)備,其特征是所述鑰值為一預(yù)定位數(shù)的連接到一消息的字。45.權(quán)利要求44所述設(shè)備,其特征是還包括有用于對至少兩代碼序列指定一第二鎖值的裝置,以便在一組中唯一地識別它們,此第二鎖值可用于或者激活為執(zhí)行該組中的代碼序列的處理器或去激活該處理器以避開該組中的代碼序列并繼續(xù)執(zhí)行軟件程序;用于將該鑰值與第二鎖值比較的裝置,在當(dāng)鑰值等于第二鎖值時選擇激活處理器執(zhí)行該組中的代碼序列,或在當(dāng)鑰值不等于第二鎖值時去激活處理器以避開該組中的代碼序列;和用于在如果所檢測事件滿足相應(yīng)的條件語句時執(zhí)行該組的各代碼序列中指明的動作。46.權(quán)利要求45所述設(shè)備,其特征是還包括有用于將一第二鑰值與各鎖值相比較的裝置,在當(dāng)此第二鑰值等于其鎖值時選擇激活執(zhí)行一第二代碼序列的處理器,或在當(dāng)?shù)诙€值不等于其鎖值時去激活該處理器以避開此第二代碼序列;和在如果所測事件滿足條件語句時執(zhí)行此第二代碼序列中指明的動作的裝置。47.權(quán)利要求38所述設(shè)備,其特征是所述鑰值為一包括一位組合格式和一組對應(yīng)于各代碼序列的指針號,而所述各代碼序列的鎖值為可用于根據(jù)位狀態(tài)激活或去激活的該位組合格式中的對應(yīng)位。48.權(quán)利要求47所述設(shè)備,其特征是還包括有用于將一第二鑰值與各鎖值相比較的裝置,在當(dāng)此第二鑰值與其鎖值相等時激活執(zhí)行一第二代碼序列的處理器,或者在當(dāng)此第二鑰值不等于其鎖值時去激活該處理器以避開此第二代碼序列;和用于在如果所檢測事件滿足條件語句時執(zhí)行此第二代碼序列中指明的動作。49.一檢測遠(yuǎn)程通信網(wǎng)絡(luò)中發(fā)生的事件的設(shè)備,此通信網(wǎng)絡(luò)包括有存貯程序控制(SPC)交換機(jī),每一SPC交換機(jī)均包括一轉(zhuǎn)換機(jī)構(gòu)和執(zhí)行控制此轉(zhuǎn)換機(jī)構(gòu)的軟件程序的處理器,其特征是所述設(shè)備包括用于在軟件程序的被選定部分中建立代碼序列的裝置,各代碼序列均包含一響應(yīng)一定事件的條件語句和至少一個由檢測滿足條件語句的某一事件引起的動作;用于對至少兩個代碼序列指定一鎖值的裝置,用于在一組中唯一地識別它們,此鎖值可用來或者激活處理器以執(zhí)行該組中的代碼序列或者去激活處理器以避開該組中的代碼序列繼續(xù)執(zhí)行軟件程序;用于將一鑰值與鎖值相比較的裝置,在當(dāng)此鑰值等于鎖值時選擇激活處理器以執(zhí)行該組中的代碼序列,或者在當(dāng)此鑰值不等于鎖值時去激活處理器以避開該組中的代碼序列;用于在如果所檢測事件滿足相應(yīng)的條件語句時執(zhí)行該組各代碼序列中所指明的動作的裝置;和用于在各動作被執(zhí)行后繼續(xù)執(zhí)行軟件程序的裝置,藉此維持SPC交換機(jī)中的連續(xù)處理。50.權(quán)利要求49所述設(shè)備,其特征是還包括有用于將一第二鑰值與各鎖值相比較的裝置,在當(dāng)此第二鑰值等于其鎖值時選擇激活另一處理器執(zhí)行一第二代碼序列,或在當(dāng)此第二鑰值不等于其鎖值時去激活該處理器以避開此第二代碼序列;和用于在如果所檢測事件滿足條件語句時執(zhí)行該第二代碼序列中指明的動作。51.權(quán)利要求49所述設(shè)備,其特征是所述鑰值為一具有預(yù)定位數(shù)的連接到一消息的字。52.權(quán)利要求51所述設(shè)備,其特征是還包括有用于將一第二鑰值與各鎖值相比較的裝置,在當(dāng)此第二鑰值等于其鎖值時選擇激活另一處理器執(zhí)行一第二代碼序列,或在當(dāng)此第二鑰值不等于其鎖值時去激活該處理器以避開此第二代碼序列;和用于在如果所檢測事件滿足條件語句時執(zhí)行此第二代碼序列中指明的動作。全文摘要揭示了一種檢測在遠(yuǎn)程通信網(wǎng)絡(luò)中發(fā)生的事件的方法和設(shè)備,此遠(yuǎn)程通信網(wǎng)絡(luò)包括有多個存貯程序控制(SPC)交換機(jī)(30),每一交換機(jī)構(gòu)包括有一轉(zhuǎn)換機(jī)構(gòu)(32)和多個用于執(zhí)行軟件程序以控制該轉(zhuǎn)換機(jī)構(gòu)(32)的處理器(34)。在軟件程序(40、43、45)的選定部分中產(chǎn)生代碼序列,即數(shù)據(jù)自遠(yuǎn)應(yīng)鑒定監(jiān)視程序(DAEMON46),各代碼序列包含有響應(yīng)一定事件的條件語句和至少一個由檢測滿足該條件語句的某一事件所引起的動作,對每一代碼序列均指定一鎖值,各鎖值唯一地識別對應(yīng)的代碼序列并能用來激活執(zhí)行該代碼序列的處理器(34)。將一鑰值(49)與各鎖值進(jìn)行比較,在當(dāng)此鑰值(49)等于鎖值時選擇激活執(zhí)行該代碼序列的處理器(34)。如果所檢得的事件滿足條件語句,處理器(34)即執(zhí)行此代碼序列中指明的動作并繼續(xù)執(zhí)行軟件程序,藉此維持SPC交換機(jī)(30)中的連接處理。文檔編號H04Q3/545GK1142301SQ9519182公開日1997年2月5日申請日期1995年2月23日優(yōu)先權(quán)日1994年2月28日發(fā)明者尼爾斯·奧拉·阿克塞爾·林納馬克,昂諾·卡爾斯桑申請人:泰勒豐耐特伯格德·??诉d公司