欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

業(yè)務數(shù)據(jù)庫系統(tǒng)中的事件記錄的制作方法

文檔序號:7575354閱讀:217來源:國知局
專利名稱:業(yè)務數(shù)據(jù)庫系統(tǒng)中的事件記錄的制作方法
技術領域
本發(fā)明一般涉及業(yè)務數(shù)據(jù)庫系統(tǒng),尤其涉及一種能用來完成各種事件記錄的方法。智能網(wǎng)的這些業(yè)務數(shù)據(jù)庫系統(tǒng)構成一種更好的應用環(huán)境。
電信業(yè)的快速發(fā)展使得運營者可向用戶提供大量的各種業(yè)務。提供高級業(yè)務的網(wǎng)絡體系結構稱為智能網(wǎng)。智能網(wǎng)的通用縮寫是IN。
智能網(wǎng)的功能結構如

圖1中所示,圖中,橢圓形代表該網(wǎng)絡的功能實體。下面將簡要描述這一結構,因為后面將要參照該智能網(wǎng)環(huán)境來描述本發(fā)明。
終端使用者(用戶)接入該網(wǎng)絡由CCAF(呼叫控制代理功能)來控制。對現(xiàn)有數(shù)字交換機添加功能之后,可實現(xiàn)接入IN業(yè)務。這采用基本呼叫狀態(tài)模型BCSM來完成,BCSM描述了用來對兩個用戶間的呼叫進行處理的現(xiàn)有功能。BCSM是建立和保持用戶間的連接路由所需要的呼叫控制功能CCF的一個高層狀態(tài)自動機描述。利用業(yè)務交換功能SSF(參見圖1中的實體CCF和SSF的部分重疊)將功能加入這一狀態(tài)模型,從而可以確定何時必須調(diào)用智能網(wǎng)的業(yè)務(IN業(yè)務)。調(diào)用了IN業(yè)務后,含有智能網(wǎng)的業(yè)務邏輯的業(yè)務控制功能SCF控制與業(yè)務有關的(呼叫嘗試)處理。業(yè)務交換功能SSF于是將呼叫控制功能CCF連接到業(yè)務控制功能SCF,并使得業(yè)務控制功能SCF可控制呼叫控制功能CCF。例如,SCF可請求SSF/CCF執(zhí)行特定呼叫或連接功能,如計費或路由選擇操作。SCF還可向業(yè)務數(shù)據(jù)功能SDF發(fā)送請求,SDF控制對智能網(wǎng)的與業(yè)務有關的數(shù)據(jù)和網(wǎng)絡數(shù)據(jù)的訪問。SCF于是例如可請求SDF檢索特定的與業(yè)務有關的數(shù)據(jù)或更新這一數(shù)據(jù)。
特殊資源功能SRF還對上述功能進行補充,SRF提供一些實現(xiàn)智能網(wǎng)提供的某些業(yè)務所需要的特殊功能。這些業(yè)務的例子有協(xié)議轉(zhuǎn)換、語音識別和話音郵件。SCF例如可請求SSF/CCF功能首先建立終端用戶和SRF之間的連接,然后它可請求SRF向終端用戶發(fā)出話音消息。
智能網(wǎng)的其他功能實體是一些與控制有關的各種功能,如SCEF(業(yè)務生成環(huán)境功能)、SMF(業(yè)務管理功能)和SMAF(業(yè)務管理接入功能)。其中,SMF包括業(yè)務控制,SMAF提供與SMF的連接,而SCEF使得可定義、開發(fā)、測試和經(jīng)SMF饋送IN業(yè)務到SCF。由于這些功能只與網(wǎng)絡運營者的操作有關,因而未在圖1中示出。
圖1中所示的與IN業(yè)務有關的這些功能實體的作用簡述如下。CCAF接收主叫方發(fā)出的業(yè)務請求。該業(yè)務請求通常包括起動接收機和/或主叫方所撥出的一串數(shù)字。CCAF再向CCF/SSF發(fā)送該業(yè)務請求以進行處理。呼叫控制功能CCF沒有業(yè)務數(shù)據(jù)但它已被編程可以識別業(yè)務請求的要求。CCF將呼叫建立過程中斷片刻并將該呼叫的狀態(tài)通知給業(yè)務交換功能SSF。SSF的任務是,利用預定條件解釋該業(yè)務請求,并由此判斷該請求是否是一個與IN業(yè)務有關的業(yè)務請求。如果是,則SSF形成一個標準的IN業(yè)務請求并將該請求連同有關業(yè)務請求的狀態(tài)的信息一同發(fā)送到SCF。SCF接收該請求并將其解碼。然后,它與SSF/CCF、SRF和SDF相配合,將所需業(yè)務提供給該終端用戶。
智能網(wǎng)的物理級結構描述了上述功能實體如何配置于該網(wǎng)絡的物理實體中。智能網(wǎng)的物理結構如圖2所示,圖中,矩形或圓形代表物理實體,橢圓形代表功能實體。信令連接用虛線和實際傳遞表示,該實際傳遞比如是連線表示的語音。可選功能實體用虛線標出。圖中所示的信今網(wǎng)是一個根據(jù)SS7(七號信令系統(tǒng)是一個眾所周知的“CCITT(現(xiàn)稱為ITU-T)籃皮書《SpecificationsofSignallingSystemNo.7》,墨爾本,1988”中所述的信令系統(tǒng))的網(wǎng)絡。
可包括例如電話、計算機或傳真機的用戶設備SE,可以直接連接到業(yè)務交換點SSP也可以連接到網(wǎng)絡接入點MAP。
業(yè)務交換點SSP向用戶提供網(wǎng)絡接入,并控制所有必要的選擇功能。SSP還可檢測任何IN業(yè)務請求。就其功能而言,SSP包括呼叫控制和業(yè)務選擇功能。
網(wǎng)絡接入點NAP是一個包括呼叫控制功能CCF的普通電話交換機,如DX220交換機,它能區(qū)分需要IN業(yè)務的呼叫和普通的呼叫,并將需要IN業(yè)務的呼叫接到適當?shù)腟SP。
業(yè)務控制點SCP包含用來產(chǎn)生IN業(yè)務的業(yè)務程序。
業(yè)務數(shù)據(jù)點SDP是一個包含用戶和網(wǎng)絡數(shù)據(jù)的數(shù)據(jù)庫,該數(shù)據(jù)庫可被SCP的業(yè)務程序用以產(chǎn)生定制業(yè)務。SCP可直接或通過信令網(wǎng)使用SDP業(yè)務。
智能外設IP提供特殊業(yè)務,如語音通知和話音及多選擇識別。
業(yè)務交換和控制點SSCP包括位于同一節(jié)點上的SCP和SSP(換言之,如果圖中所示的SSP節(jié)點既包括一個SCF實體又包括一個SSF實體,則該節(jié)點是一個SSCP)。
業(yè)務管理點SMP的任務包括數(shù)據(jù)庫(SDP)的管理、網(wǎng)絡的監(jiān)控和測試以及收集網(wǎng)絡數(shù)據(jù)。它可與所有其他物理實體連接。
業(yè)務生成環(huán)境點SCEP用來定義、開發(fā)和測試IN業(yè)務,和將業(yè)務輸入SMP。
業(yè)務輔助控制點AD功能上與業(yè)務控制點SCP等同,但AD用快速數(shù)據(jù)連接(例如,用ISDN30B+D連接)直接連接到SSP,而不通過公共信道信令網(wǎng)SS7。
業(yè)務節(jié)點SN可控制IN業(yè)務并完成用戶的數(shù)據(jù)傳遞。它直接與一個或多個SSP通信。
業(yè)務管理接入點SMAP是一個向特定用戶提供與SMP連接的物理實體。
以上是智能網(wǎng)的簡要描述,它將作為根據(jù)本發(fā)明的方法的描述的背景。感興趣的讀者例如可在ITU-T規(guī)范Q.121X中或在Bellcore的AIN規(guī)范中得到更詳細的IN描述。
如上所述,SSF在呼叫建立的特定階段向SCF發(fā)送標準的IN業(yè)務請求。由于業(yè)務控制點SCP(或業(yè)務輔助控制點AD)一般是為多個交換機服務的網(wǎng)絡的一個集中式節(jié)點,因此在這種集中式業(yè)務點的數(shù)據(jù)庫中連續(xù)進行各種負載測量也是重要的。例如,為了這些測量,該SCP(或AD)可分為一些如圖3所示的功能部分。最底層用所謂的平臺層31構成,該平臺層包括硬件和基本操作系統(tǒng)(如Unix)。平臺層的上面是專用應用層32,該專用應用層可分為以下三個部分業(yè)務數(shù)據(jù)庫(SDB)32a,業(yè)務邏輯程序塊(SLP)32b,和測量程序塊(MP)32c。業(yè)務邏輯程序是一些可被到達該節(jié)點的業(yè)務請求所觸發(fā)的并可提供實際IN業(yè)務的程序。這些程序于是完成基于逐個呼叫的處理任務。另一方面,測量程序塊是執(zhí)行與SCP負載有關的處理的實體。因此,該測量程序塊雖然不完成基于逐個呼叫的處理任務,但它卻例如通過記錄間隔或在某些情況如過載情況下,完成它的操作。
業(yè)務數(shù)據(jù)庫通常包括數(shù)據(jù)表(DT),表中,每個用戶都有自己的一行Ri(i=1,2,...n)。用戶標識符OI作為關鍵詞包含在每一行的起始處。對本發(fā)明而言,與上述測量有關的數(shù)據(jù)表是必不可少的。一個這樣的測量表對應于叫作(測量)模塊的一組測量對象。若干測量模塊的測量表可置于同一數(shù)據(jù)表,或者每個測量模塊的測量表可形成一個單獨的數(shù)據(jù)表。因此,一個測量表是指這樣一個與特定模塊相關的數(shù)據(jù)集合,該數(shù)據(jù)集合可以是系統(tǒng)中數(shù)據(jù)表的一部分,或是整個數(shù)據(jù)表。測量模塊也可以稱作測量組。
本系統(tǒng)中,每個用戶都有專用的一組計數(shù)器,這些計數(shù)器其值隨著與該用戶有關的各種事件的增加而遞增;例如,呼叫計數(shù)器的值隨每一呼叫而遞增。這些計數(shù)器的值通過記錄間隔來收集。
圖3仍用智能網(wǎng)的業(yè)務控制點SCP作為例子,示出了本方法的應用環(huán)境。一般來說,可以認為本方法能適用于任何業(yè)務數(shù)據(jù)庫系統(tǒng),該業(yè)務數(shù)據(jù)庫系統(tǒng)隨機接收業(yè)務請求,由系統(tǒng)作出應答。下面對這種系統(tǒng)作總體層次上的描述,而不局限于智能網(wǎng)的SCP節(jié)點的描述。
為了呼入的業(yè)務請求可被應答,接到數(shù)據(jù)庫的處理器必須進行與特定業(yè)務相關的處理。與這些業(yè)務請求有關的(測量)對象用數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)表中的各個行來表示,這些行由該處理器來管理。系統(tǒng)在特定長度的記錄間隔期間記錄這些請求和特定事件的數(shù)量。
這些對象可分類成一些對象類別,使得一個類別中的所有對象具有同一類型(如用戶),如果從正被記錄的這些事件角度檢查到這種情況的話。同一類型的對象可組成一個測量組,并可在每個對象類別中定義一個以上的測量組。在每個測量組中,各對象有一些用來記錄這些事件的相應的計數(shù)器。計數(shù)器值可以隨對象的不同而變化,但每個對象對特定事件的解釋是相同的;例如,某些事件對各用戶而言(即對各對象而言)可能表示一個號碼翻譯請求。
與測量有關的功能包括以下一些與業(yè)務數(shù)據(jù)庫系統(tǒng)所處的環(huán)境無關的記錄功能。
當接收到各個請求時,生成一個業(yè)務邏輯過程的專用實例,從數(shù)據(jù)表中檢索所需對象的數(shù)據(jù)行,并執(zhí)行所請求業(yè)務邏輯處理。在一個測量組中,每一單獨的數(shù)據(jù)行都有一個相應的計數(shù)器組,用來記錄各事件的出現(xiàn)。在業(yè)務邏輯處理期間,根據(jù)被記錄的所需事件的出現(xiàn),增加計數(shù)器值。
再者,對于多個不同的測量組,最好用同一處理器來管理業(yè)務處理、與記錄事件(增加計數(shù)器值)有關的功能和計數(shù)器值的記錄。計數(shù)器值的記錄是指這樣的操作,在該操作中,以固定間隔檢索計數(shù)器值,使得這些計數(shù)器值可被寫入到存儲器(記錄文件)或被發(fā)送到一個用于處理的外部系統(tǒng)。實際上,使用一個處理器可能是唯一的選擇。其原因是,這些業(yè)務請求往往有嚴格的響應時間要求,這樣,該數(shù)據(jù)庫必須在RAM存儲器中(而不是在磁盤上)實現(xiàn)。甚至在所有商用計算機系統(tǒng)中,都不可能具有一個以上的處理器對單個RAM存儲器進行存取。若干處理器共亨RAM存儲器實現(xiàn)起來也是困難的,因為必須避免重疊存儲操作。
這種業(yè)務數(shù)據(jù)庫系統(tǒng)包括大量的測量組,其中的每一測量組可能是激活的(對所討論的組進行測量)或惰性的(對所討論的組不進行測量),而一個激活組中的單個測量對象可能是激活的(對所討論的對象進行測量)或惰性的(對所討論的對象不進行測量)。每個對象,在管理系統(tǒng)激活/去激活該對象時,也可能有時激活有時去激活。
這種環(huán)境中的問題是,如何進行各對象的激活/去激活以及如何刪去/增加各對象,使得,一個對象的激活/去激活或刪去/增加對測量的干擾盡可能小(一個對象的激活/去激活或增加/刪去不中斷其他對象相應的測量)。
在常規(guī)系統(tǒng)中,例如,一個對象的激活已這樣被實現(xiàn),即當用戶發(fā)出激活命令后,數(shù)據(jù)庫管理系統(tǒng)就發(fā)出與特定行相關的置零命令。然而,在這種情況下,沒必要使解決方案復雜化,好象忽視例如在第一短記錄間隔期間所得到的計數(shù)器值,該管理系統(tǒng)必須注意處理計數(shù)器增值的過程不是增加第一短記錄間隔期間所討論的對象的計數(shù)器值,而是迫使這些計數(shù)器處于置零。另一方面,如果要考慮第一短記錄間隔期間的計數(shù)器值,則該測量組的各測量對象得到不同長度的記錄間隔,這使結果的管理復雜化。
本發(fā)明的目的是為了解決上述問題,并提供一種系統(tǒng),在該系統(tǒng)中,可在任何時候改變各對象的激活狀態(tài)或增加/刪去各個對象,使得系統(tǒng)盡可能簡單并使對測量的干擾盡可能小。
利用根據(jù)本發(fā)明的一種方法可達到這一目的,這種方法在獨立權利要求中闡述。
首先,本發(fā)明的思想是在一種數(shù)據(jù)庫系統(tǒng)中(其中,測量表的與具體對象相關的行用來保存一些拷貝的計數(shù)器,這些計數(shù)器循環(huán)使用,一方面增加計數(shù)器值,另一方面記錄和置零計數(shù)器值),逐行(即逐個對象)地執(zhí)行計數(shù)器值的記錄和置零,使得,當單一一行被處理時,連續(xù)執(zhí)行記錄和置零。再者,該思想還在于將指示對象的激活狀態(tài)的參數(shù)存儲在數(shù)據(jù)表的與具體對象相關的行中,并在記錄和置零階段執(zhí)行計數(shù)器組的置零,使得,該測量對象激活后,迫使所討論的對象的每個計數(shù)器組的第一處理以這樣一種方式出現(xiàn),即阻止計數(shù)器組的記錄而允許計數(shù)器組的置零。這樣,記錄和置零過程可以自動考慮在對象激活狀態(tài)中的任何變化。另外,這些對象在去激活后可在數(shù)據(jù)表中存儲一段不確定時間,或這些對象在任何時間被增加到數(shù)據(jù)表中,但在測量中還不包含它們。(應當注意,盡管這一描述談到了記錄和置零過程,但這指的是計數(shù)器值的記錄及其置零的處理過程。計數(shù)器值不必立刻寫入記錄文件,而可以例如將計數(shù)器值發(fā)送到一個外部系統(tǒng)。該過程在測量對象的單一處理期間未必進行記錄和置零,而能跳過這兩者或只進行置零。)根據(jù)本發(fā)明的一個優(yōu)選實施方式,在一個記錄間隔期間,對每一行只進行一次記錄和置零的處理過程。
根據(jù)本發(fā)明的另一優(yōu)選實施方式,由于激活,測量對象的激活參數(shù)被賦予某一值,該值指示激活剛發(fā)生,并在下一行處理期間,將所述值變更為另一個值,該值還指示對象處于激活狀態(tài)。這樣,容易區(qū)別必須為該測量而將對象初始化的情況。為了該初始化,最好在系統(tǒng)中存儲與特定測量組相關的關于以前的記錄間隔的變化時刻的信息,和與特定測量對象相關的關于以前的行的處理時刻的信息,據(jù)此,在行的處理期間,通過將行的處理時刻與記錄間隔的變化時刻進行比較,檢測計數(shù)器值是否有效,可否被記錄。然后,以一種簡單的方式可以實現(xiàn)緊隨測量對象激活之后的計數(shù)器的置零。這樣,使得,在緊隨該激活之后的第一處理中,根據(jù)該激活參數(shù)值跳過該記錄階段,并在該激活后的第二處理前(在第一處理期間),將與特定測量對象相關的時間標記初始化,使得將被執(zhí)行的檢測阻止該記錄。
下面,參照根據(jù)附圖中圖4至7d的例子來詳述本發(fā)明及其優(yōu)選實施方式,在附圖中圖1示出了智能網(wǎng)的功能結構,圖2示出了智能網(wǎng)的物理結構,圖3說明了事件記錄必不可少的SCP節(jié)點的各部分,圖4說明了根據(jù)本發(fā)明的業(yè)務數(shù)據(jù)庫系統(tǒng),圖5a示出了說明圖4的系統(tǒng)中所采用的基本循環(huán)規(guī)則的時間軸,圖5b示出了說明圖4的系統(tǒng)中所采用的一般性循環(huán)規(guī)則的時間軸,圖6是說明系統(tǒng)從空閑狀態(tài)轉(zhuǎn)變到正常工作狀態(tài)的流程圖,和圖7a至7d構成了描述記錄和置零過程的進程的流程圖。
圖4說明了根據(jù)本發(fā)明的數(shù)據(jù)庫系統(tǒng)DBS,該系統(tǒng)可以處于例如智能網(wǎng)的SCP節(jié)點中。該數(shù)據(jù)庫包括至少一個基本數(shù)據(jù)表BT和至少一個包含很多連續(xù)的行的測量表MT。本圖示出了一個基本表和三個測量表。
基本表中的一行對應于一個單獨的測量對象(例如,一個用戶)。對象標識符OI位于行的起始處。一個基本表中的這些對象屬于同一測量對象類別;換言之,一個基本表中的這些對象是同一類型的。該基本表中的一個對象可包括在幾個不同的測量表MT中,例如,同一用戶可包括在一個記錄間隔例如為5分鐘的呼叫計數(shù)測量中,和包括在一個記錄間隔例如為24小時的呼叫計數(shù)測量中。另外,基本表中的每一行都包括這樣一些參數(shù),這些參數(shù)表示所討論的對象作為一個激活對象包括在哪些測量組中。以后,這些參數(shù)的標識符用ObjActj(j=1...測量組的個數(shù))表示。這些參數(shù)值可由用戶設定。
單個測量表由標題行HR和連續(xù)的行Ri(i=1...n)構成。測量表的單一一行Ri包括與具體對象相關的參數(shù)和專用的一組與具體測量組相關的計數(shù)器。每個測量表都構成一個如前面所述的特定測量組。因此,每個測量表都包括一些為其進行同樣測量的對象。例如,圖中的一個測量表可能包括一些正為其進行呼叫計數(shù)記錄的用戶,第二個表可能包括一些正為其進行事件計數(shù)器記錄的用戶,而第三個表可能包括一些正為其進行呼叫長度記錄的用戶。正如前面所述,即使一個類型的測量(例如,呼叫計數(shù)記錄)也可以有幾個不同的測量表。
整個測量組的公共參數(shù)位于測量表的標題行HR中。這些參數(shù)將在后面進行描述。
業(yè)務邏輯程序?qū)嵗齋LPi要讀出基本表BT中的行,所以基本表的行也包括用于產(chǎn)生該業(yè)務的參數(shù)。不過,由于它們不屬于本發(fā)明的范圍,因此這里不對它們作詳細描述。
SSP所發(fā)送的業(yè)務請求SR含有用戶(對象)標識符。當SCP接收到這種業(yè)務請求時,便生成一個業(yè)務邏輯程序的業(yè)務邏輯程序?qū)嵗齋LPi,然后這一實例開始為這一業(yè)務請求服務。這可用一種已知的方法來實現(xiàn),使得,包括在本系統(tǒng)中的業(yè)務邏輯執(zhí)行塊SLE通過拷貝存儲在塊SLPT中的業(yè)務邏輯程序模板,生成一個業(yè)務邏輯實例SLPi。這一拷貝(即SLPi)被應用于所接收的業(yè)務請求。業(yè)務邏輯執(zhí)行塊SLE從存儲呼入業(yè)務請求的緩沖器BF中檢索業(yè)務請求。
SLPi讀出業(yè)務請求中的用戶標識符,然后,從基本表中讀出與該標識符對應的行。從該行中,SLPi找出參數(shù)ObjActj(j=1,2...)的值。如果該對象是激活的,則SLPi根據(jù)包括所討論對象的測量表的標題行辨別該測量組是否也是激活的。這用包括在該測量表的標題行中的參數(shù)來指示,這一參數(shù)以后將用名稱ActNew表示。如果該對象和測量組均是激活的,則SLPi增加位于測量表的所討論對象的行中的一個或多個計數(shù)器的值。正如圖4所示,用戶通過管理系統(tǒng)(SMP)給出參數(shù)ObjActj和ActNew的值。由于參數(shù)ObjActj以后將被認為是一個與特定測量組相關的參數(shù),因此指示測量組的下標j將被省略。
位于測量表的行中的計數(shù)器最好是成對的,使得,在該行中形成用標記CG1和CG2表示的兩個計數(shù)器組。這些組包括相同的計數(shù)器(在一個組中的一個或多個計數(shù)器),這意味著,一個組中的每個計數(shù)器,在其他組中都有一個相應的計數(shù)器。這些計數(shù)器依次被增值,使得,時間軸被分為連續(xù)的記錄間隔TP,其中每隔一個用標記F表示,而中間的一個用標記T表示,如圖5a所示。在記錄間隔F期間,例如計數(shù)器組CG1中的計數(shù)器被增值,而在記錄間隔T期間,計數(shù)器組CG2中的計數(shù)器被增值,(反之亦然)。依次在每一時刻的間隔由保存在測量表的標題行中的奇偶性參數(shù)來確定。當SLPi讀出測量表中的標題行時,它也讀出奇偶性參數(shù)的值,并因此識別出它必須增加位于測量表的行中的哪個計數(shù)器的值。奇偶性參數(shù)是一個可以具有值T(真)或F(假)的布爾變量,這就是為何圖中每隔一個時間間隔用標記T表示,而中間的時間間隔用標記F表示的原因。
上述循環(huán)規(guī)則對應于計數(shù)器成對的本發(fā)明的優(yōu)選實施方式。不過,這種循環(huán)規(guī)則也可應用到每個計數(shù)器有兩個以上拷貝的情況。這種一般性規(guī)則如圖5b所示,其中每個計數(shù)器有N個拷貝,這樣,與測量對象對應的測量表的行包括與特定測量組相關的N組計數(shù)器(其中,每個組包括一個或多個計數(shù)器)。當有兩個以上的拷貝計數(shù)器時,時間軸也可分為連續(xù)的記錄間隔(TP),使得,在每個記錄間隔中,只有某個計數(shù)器組的值被增加,并且將需要增值的計數(shù)器組從一個記錄間隔切換到另一個記錄間隔。由于有N個計數(shù)器組,因此,每N個記錄間隔有一個選定的計數(shù)器組被增值。單個計數(shù)器組中的計數(shù)器值的記錄和置零在這樣一些記錄間隔期間被執(zhí)行,這些記錄間隔介于所討論的計數(shù)器組中的計數(shù)器被增值的記錄間隔之間。記錄和置零被分配于所討論的記錄間隔中的這種方法也可以變化。某個計數(shù)器組的記錄和置零例如往往可以在一個記錄間隔期間進行。如果記錄和置零不能完成,則可在另一個記錄間隔中繼續(xù)進行,前提是與該特定記錄間隔對應的計數(shù)器組的記錄和置零已經(jīng)完成。這樣,能夠有效地利用可用時間,但運行邏輯變得更復雜了。
不過,計數(shù)器的成對是優(yōu)選實施方式的一種,因為,它保證了最簡單的可能的實現(xiàn)方法并可使惰性計數(shù)器組立刻置零(在對象激活后的第一處理期間的記錄間隔當中)。因此,以下將以成對的計數(shù)器作為本發(fā)明的優(yōu)選實施方式的例子。
業(yè)務邏輯程序?qū)嵗齋LPi獨立地執(zhí)行一些事件計數(shù)器的增值,這意味著,即使它檢測到所討論的測量組和測量對象是激活的,它也盲目地增加這些計數(shù)器值。另一方面,測量程序塊執(zhí)行這些行中的計數(shù)器的記錄和置零。測量程序塊可以包括用于對每個測量組中的計數(shù)器進行記錄和置零的子塊CRj。另外,該測量程序塊(或子塊CRj)在每個記錄間隔TP的起點處,通過轉(zhuǎn)換奇偶性值來控制計數(shù)器的變化時刻。在SLPi增加計數(shù)器組CG1中的計數(shù)器值的記錄間隔中,測量程序塊對計數(shù)器組CG2中的計數(shù)器進行處理,而在SLPi增加計數(shù)器組CG2中的計數(shù)器值的記錄間隔中,測量程序塊對計數(shù)器組CG1中的計數(shù)器進行處理。因此,計數(shù)器增值(或者說,記錄事件)用與計數(shù)器記錄和置零過程分開的一個過程來進行,所述分開的過程只需利用奇偶性參數(shù)的值而無需知道有關計數(shù)器記錄過程進行階段的其他事情。以后,這些其值正被增加的計數(shù)器被稱為激活計數(shù)器,而那些其值正被記錄和置零的計數(shù)器被稱為惰態(tài)計數(shù)器。在某一記錄間隔期間被增加的計數(shù)器值于是在緊隨所討論記錄間隔的記錄間隔期間被處理。另一方面,在該隨后的記錄間隔期間,上一記錄間隔期間被處理的計數(shù)器組被增值。
該系統(tǒng)的另一個必不可少的部件是喚醒定時器TM,該定時器用于使處理器PR以短間隔WP(圖5a和5b)啟動測量程序塊(對計數(shù)器進行記錄和置零)。喚醒間隔的長度可以是例如10秒,這意味著該喚醒間隔相對于記錄間隔TP而言是非常短的??赡苡幸粋€或多個喚醒定時器,而且它們可能是與特定測量組相關的或幾個測量組公用的。
利用一個用戶指定的參數(shù),可逐個測量組地確定最大對象數(shù),測量程序塊可在一個執(zhí)行期間(即在一個喚醒期間)來處理這些對象的計數(shù)器。以后,這一參數(shù)將被稱為Batch。如果在記錄間隔期間(或者說,在檢測到記錄間隔的新的變化時刻之前)有足夠的時間對所有對象的惰態(tài)計數(shù)器組進行處理,則為該測量組設置一個標志,作為在所討論的記錄間隔期間不再需要對測量對象進行處理的一個標記。即便利用喚醒定時器仍會以短間隔喚醒計數(shù)器的記錄和置零過程,在所討論的間隔期間也不再對測量對象進行處理。
正如前面所述,最好使同一處理器既執(zhí)行測量程序又執(zhí)行業(yè)務邏輯程序SLPi。圖4中,這一公共處理器用標記PR表示。測量程序的執(zhí)行總是在該間隔WP已過去時由定時器TM來啟動。
具有其數(shù)據(jù)表的數(shù)據(jù)庫以及測量程序和業(yè)務邏輯程序可以都置于同一RAM存儲器中,而該系統(tǒng)還可以使具有其數(shù)據(jù)表的數(shù)據(jù)庫置于磁盤上。這樣,系統(tǒng)包括了兩個處理器,使得,其中一個處理器執(zhí)行業(yè)務邏輯程序,而另一個處理器處理保存在磁盤上的計數(shù)器值??傊承┐鎯^(qū)MA1...MA3與配置了測量程序塊、業(yè)務邏輯程序塊和具有其數(shù)據(jù)表的數(shù)據(jù)庫的處理器相關聯(lián)。業(yè)務執(zhí)行塊的存儲區(qū)用標記MA4表示,而業(yè)務邏輯模板存儲區(qū)用標記MA5表示。然而,正如以上所述,對于響應時間而言,最好是使用RAM存儲器和一個處理器。
如果在所分配的記錄間隔TP中沒有足夠的時間對所有對象(用戶)的惰態(tài)計數(shù)器組進行處理,例如由于處理器過載,則還剩下一些對象未被處理。原則上,未完成的任務不能堆積。不過,記錄和置零過程利用與特定行相關的時間標記來標記所處理過的那些行。(如果有未被處理的行,則不可能被寫入記錄文件并且計數(shù)器不被置零。)
業(yè)務邏輯程序?qū)嵗つ康卦黾影ㄎ刺幚淼男猩系挠嫈?shù)器在內(nèi)的所有計數(shù)器的值。然而,這些行以后不能被處理,因為它們的值不再來自長度為記錄間隔的一個間隔,例如5分鐘的間隔。當測量程序開始處理這些行時,分別檢查計數(shù)器值是否能寫入記錄文件。因此,雖然這些計數(shù)器值盲目地被增加,但在隨后的處理間隔期間,檢查其值是否有效,可否寫入記錄文件。
利用快速重復的喚醒,可以處理不同測量組的變化的記錄間隔。因此,對于不同測量組所具有的不同長度的每個記錄間隔,系統(tǒng)不包含各自的計數(shù)器(定時器),但系統(tǒng)卻有唯一一個以短間隔例如每10秒鐘喚醒測量程序的計數(shù)器。在每一喚醒期間,測量程序檢查它是否必須開始對與具體對象相關的計數(shù)器進行處理(記錄和置零)。于是,例如在處理器過載的情況下,可以確信,在過載減輕的某點處,該定時器將計滿而該定時器所觸發(fā)的記錄和置零過程知道在每一情況下它必須做什么。因此,利用一種比使用一些單獨的定時器更容易的方法,來解決處理器滯后問題。如果使用單獨的定時器,由于定時器總是被置為同一間隔值,因此,由超負荷的處理器負載所造成的滯后會引起一些問題。這樣的話,則應當用某種方法來處理該時間和觸發(fā)時刻之間的同步。
下面是根據(jù)本發(fā)明的一種系統(tǒng)中必不可少的參數(shù)的描述。下列參數(shù)是測量對象組的公共參數(shù),這些參數(shù)包括在每個測量表MT的標題行中
參數(shù)類型為整數(shù)變量Ⅰ、布爾變量B和實時標記D(日、時、分、秒)。記錄間隔的長度以分鐘數(shù)給出。
用戶可以定義測量組激活參數(shù)ActNew、記錄間隔長度IntervNew和某段時間所處理的最多行數(shù)Batch的值。表中所列的其他參數(shù)是系統(tǒng)內(nèi)部參數(shù),它們不能被用戶定義。指示最新記錄間隔的變化時刻(LatInterTime)、第二最新記錄間隔的變化時刻(SecondInterTime)、再以前的記錄間隔的變化時刻(ThirdInterTime)和下一記錄間隔的變化時刻(FollInterTime)的時間標記最好是分鐘指示值,使得它們?yōu)檎麛?shù)變量類型,因為系統(tǒng)中所用的時間是離散的。
最新奇偶性的變化時刻(LatParityTime)和此前的奇偶性的變化時刻(PreParityTime)也必須被保留,因為它們通常不是精確地與所確定的記錄間隔的變化時刻一樣。其原因是,如果測量程序例如每10秒啟動,則奇偶性的變化時刻一般比所確定的記錄間隔的變化時刻遲幾秒鐘。因此,需要這些參數(shù),以便可以確定由其得到計數(shù)器值的準確的間隔的長度。參數(shù)LatFinished指示在當前記錄間隔期間一個測量表中的所有行的處理是否已完成(計數(shù)器值是否已被記錄和置零)。
測量表中的單一一行至少包括下列與特定測量對象相關的參數(shù)
>與特定行相關的時間標記(LatMade和PreMade)是分鐘指示值,類似于指示記錄間隔的變化時刻的參數(shù)。以后,這些與特定行相關的時間標記用標記P(PreMade)和標記L(LatMade)來表示。
圖4示出了位于測量組的對象行和標題行中的這些參數(shù)。
圖6示出了系統(tǒng)從空閑狀態(tài)600轉(zhuǎn)換到正常工作狀態(tài)即所謂熱啟動狀態(tài)700的流程圖。當系統(tǒng)接收到所謂冷啟動信號時(階段601),與特定模塊相關的標志(參數(shù)Alive)被置為零,以指示所討論的激活是一個冷啟動(階段602)。接著,在階段603使喚醒定時器(TM,如圖4)在短喚醒間隔(WP,如圖5a)后計滿,然后系統(tǒng)轉(zhuǎn)變到所謂熱啟動狀態(tài)700。
圖7a至7d示出了測量程序塊所執(zhí)行的記錄和置零過程的進程的流程圖。當該過程處于熱啟動狀態(tài)并且定時器TM計滿(階段701)時,計數(shù)器的記錄和置零過程開始。在最終階段,使定時器又在預定時間WP后計滿(階段745,如圖7d)。當定時器又計滿時,便又執(zhí)行一遍記錄過程,然后象前面階段中那樣,使定時器又計滿。正如以上所述,計滿之間的間隔可以是例如10秒鐘。實際上,測量表的一行的一個執(zhí)行過程所用的時間可能是約50μs,因此,如果在10個不同的模塊中在某段時間有例如100行要處理時,則一個執(zhí)行所用的時間約50ms。
當定時器已計滿時,系統(tǒng)進到階段702,在此,從模塊的標題行中檢索當前時間的值和模塊(或者說,測量組)參數(shù)。該當前時間的值等同于定時器計滿的時刻,并且這一值在由計滿(喚醒)引起的一個執(zhí)行所占用的整個時間段內(nèi)保持相同。這一時間值用來確定當前分鐘指示值(例如,以某年的起始點來計)。正如前面所述,本系統(tǒng)中所用的時間是離散的。優(yōu)選離散間隔是一分鐘,同時,這是最短的可能的記錄間隔。
該程序從測量表的標題行中檢索用戶可指定的參數(shù)ActNew、IntervNew和Batch的值。接著,程序在階段703a中檢測所討論的激活是否是冷啟動信號后記錄過程的第一次激活。這通過檢測與上述模塊相關的標志的值是否為零來實現(xiàn)。如果為零,則程序在階段703b中檢測與用戶指定的模塊相關的激活參數(shù)ActNew的值是否大于零(或者說,模塊是否已被激活)。如果大于零,則將上述參數(shù)的值置為ActNew=1,它表示該用戶所完成的最新的模塊激活,而冷啟動標志被關掉,或者說,將參數(shù)Alive的值置為1(階段704)。據(jù)此,只有通過冷啟動并當模塊激活時,才進到階段704。在任何其他情況下,程序從階段703a或703b進到階段705,在此,程序檢測所討論的模塊是否連續(xù)為惰態(tài)(測量是否還未被激活)。這通過檢測使用中的激活參數(shù)Act是否小于或等于零以及用戶指定的激活參數(shù)ActNew是否也小于或等于零(或者說,是不是模塊激活參數(shù)的原值為零而新值也為零)來實現(xiàn)。如果是(或者說,模塊連續(xù)為惰態(tài)),則程序直接進到階段745,在此,使喚醒定時器TM又計滿。
如果不是這樣,則程序進到階段706,在此,檢測在計數(shù)器記錄和置零過程的最新喚醒后(測量已被終止)模塊是否已切換到惰態(tài)。這通過檢測使用中的激活參數(shù)Act是否大于零以及用戶指定的激活參數(shù)ActNew是否小于或等于零來實現(xiàn)。如果是,則將使用中的激活參數(shù)置為零。這在階段708中被實現(xiàn),但是只有在該時刻適合計數(shù)器值的記錄和置零過程進行所討論的變化時,程序才能進到這一階段。該時刻的合適與否在階段707中被檢測,在此,程序檢測所有的行是否已被處理完或者記錄間隔的下一變化時刻是否已過去。這通過檢測參數(shù)LatFinished的值是否為1或者激活時所確定的參數(shù)CurrentMinute的值是否大于或等于指示下一個預期的間隔的變化時刻的參數(shù)FollInterTime的值來實現(xiàn)。
當在階段708中通過將使用中的激活參數(shù)置為零而終止測量模塊時,程序直接到終點,在此,使定時器又計滿。
如果變化時刻還不合適或模塊尚未被終止(或者說,如果模塊是激活的),則程序在階段709中檢測在前一執(zhí)行后模塊是否被切換到激活狀態(tài),或者說,在前一執(zhí)行后模塊是否被起動。這通過檢測用戶指定的激活參數(shù)ActNew的值是否小于100(用戶的激活對應于值1,表示模塊正被激活)來實現(xiàn)。如果是,即,如果在前一喚醒后模塊已被起動,則程序進到初始化階段710。在任何其他情況下,程序進到階段711,在此,檢測記錄間隔的長度是否已改變。
在上述的階段704中,用戶指定的激活參數(shù)ActNew的值因此被人為地置為1,使得,在所有必要的情況下,程序可從階段709進到初始化階段710。這種情況可以是例如在備份式計算機系統(tǒng)中出現(xiàn)的切換。當后備方啟動(冷啟動)時,這可以確保,即使在切換出現(xiàn)時與用戶指定的模塊相關的激活參數(shù)具有一個指示激活狀態(tài)的值(本例中,值為1或101),記錄過程也將進到初始化階段710。因此該切換不需要任何附加操作,而即使在測量組已激活的情況下系統(tǒng)也按照用戶剛激活了測量組的情況運行。
在初始化階段710中,使用中的激活參數(shù)Act被賦予用戶指定的參數(shù)ActNew的值,指示使用中的記錄間隔的長度的參數(shù)Interv被賦予用戶定義的參數(shù)IntervNew的值,而用戶指定的激活參數(shù)的值增加了100,使得,此后在階段709中可以檢測到模塊此刻尚未被激活。另外,將時間標記LatInterTime、SecondInterTime、ThirdInterTime和FollInterTime置為上舍入到下一整分鐘的當前時間(CurrentMinute)的值。
與特定模塊相關的參數(shù)于是必須初始化到一個遲于激活時間的時間。這種恰當?shù)某跏蓟绕浯_保了所有與原行相關的時間標記早于或等于間隔的變化時刻,這樣,判斷程序是否寫記錄文件的不等式(以后描述)也就是真或假,而與例如與具體對象相關的測量被起動的時間無關。
在初始化階段,將奇偶性變量Parity的值置為零,而將參數(shù)LatFinished的值置為1,使得,在模塊起動后的第一不足分鐘期間,不對測量表的行進行處理。另外,系統(tǒng)保存關于兩個最新的奇偶性的變化時刻的信息。在初始化階段,將這些參數(shù)(LatParityTime和PreParityTime)置為一個指示當前確切時間的時間標記(日、時、分、秒)。
在階段711中,如上所述,程序檢測記錄間隔的長度是否已改變。這通過檢測新值(IntervNew)是否等于原值(Interv)來實現(xiàn)。如果是(或者說,沒有改變),則程序直接進到階段716,在此檢測預期的記錄間隔的變化時刻是否已經(jīng)到來或已過去。
如果用戶已經(jīng)改變了記錄間隔的值,則在階段713中將該值更新為新的記錄間隔的值,并在階段715中計算下一記錄間隔的變化時刻。不過,這些操作只有在當前時刻合適時才被執(zhí)行。該時刻的合適與否在階段712中通過執(zhí)行與階段707中相同的檢測來檢測。于是,只有當在當前記錄間隔期間有足夠的時間來處理所有的行,或者當下一記錄間隔的變化時刻(它根據(jù)記錄間隔的原長度來計算,或在模塊激活情況下在階段710中被初始化到下一整分鐘)已經(jīng)到來或已過去,才執(zhí)行這些操作(階段713中的更新)。如果這兩個條件有一個被滿足,則在階段713中將記錄間隔的長度更新為其新值。在下一記錄間隔的變化時刻的更新(階段715)可被執(zhí)行之前,有一個附加條件必須被滿足并在階段714中被檢測。在這一階段中,程序檢測自模塊激活以后第一整分鐘的變化是否已過去。這通過檢測FollInterTime的值是否等于參數(shù)LatInterTime的值(這些值直到第一整分鐘后第一喚醒出現(xiàn)時才相等;當?shù)谝徽昼娨堰^去后,參數(shù)FollInterTime立刻被更新,如后面所述)來實現(xiàn)。如果這些值不相等,則該第一分鐘已過去而程序可執(zhí)行下一變化時刻的更新。因此,模塊的激活時刻后的第一間隔的變化時刻(FollInterTime)總是被置為第一整分鐘,只有在此以后,才被置為例如數(shù)小時,如果新的記錄間隔的長度為一小時的話。因此,這一第一間隔的變化時刻(第一整分鐘)是指示間隔的變化時刻的時間標記在階段710中所初始化的時刻。所期望的是,程序在模塊激活后的第一不足分鐘期間并不對行進行處理。為此,在階段710中將參數(shù)LatFinished的值置為1。這是因為,與特定行相關的處理標記無論如何都將被置為下一分鐘,這樣,在第一不足分鐘期間所做的任何行的處理不被利用(因為在這種情況下,與特定行相關的標記沒有指示它是原標記還是新標記,或者說,它出現(xiàn)在激活前的時間還是在激活后的時間)。因此,僅在第一整分鐘后才進行模塊激活后的行處理(記錄和置零計數(shù)器值)。
為下一間隔的變化時刻計算一個新的估算(階段715),使得,首先將當前分鐘(CurrentMinute)的值除以記錄間隔的長度并保存余數(shù)。通過將當前分鐘減去所得到的余數(shù)來得到這一新的估算,并將記錄間隔的長度與該差值相加(即,F(xiàn)ollInterTime:=CurrentMinute-mod(CurrentMinute/Interv)+Interv)。于是,根據(jù)該當前時間和記錄間隔的長度來確定下一變化時刻。因此,該計算不用考慮參數(shù)LatInterTime的值,因為,例如在過載情況下,處理器可能已滯后,這樣,相應的滯后會出現(xiàn)在下一變化時刻的值中。
然后,程序在階段716中檢測下一記錄間隔的變化時刻是否已經(jīng)到來。這通過檢測參數(shù)CurrentMinute的值(或者說,忽略秒數(shù)時從時鐘時間得到的分鐘數(shù))是否大于或等于參數(shù)FollInterTime的值來實現(xiàn)。如果不是,則程序直接進到階段720。在任何其他情況下,程序轉(zhuǎn)向階段718,在此,向前推進與間隔的變化時刻有關的時間標記。這樣,指示最新的記錄間隔的變化時刻的參數(shù)LatInterTime被賦予值CurrentMinute-mod(CurrentMinute/Interv),指示此前的記錄間隔的變化時刻的參數(shù)SecondInterTime被賦予參數(shù)LatInterTime的原值,而指示第三最新的記錄間隔的變化時刻的參數(shù)ThirdInterTime被賦予參數(shù)SecondInterTime的原值。此時,程序于是不象參數(shù)LatInterTime的值那樣給出參數(shù)FollInterTime的值(即,已經(jīng)過去的變化時刻的值),而是根據(jù)當前分鐘的值以上述方法來計算參數(shù)LatInterTime的值,使得,任何可能的處理器滯后都不會影響該參數(shù)的值。參數(shù)LatInterTime的值于是更新為等于下舍入到一個整分鐘的當前時間減去上述余數(shù)的值,該余數(shù)用以補償任何滯后,其值一般為零。
然而,如果階段716中所檢測到的間隔的變化時刻是模塊激活后的第一整分鐘,那么時間標記不向前推進。這一事實可在階段717中通過利用與階段714中類似的檢測(即,如果此時參數(shù)Foll-InterTime的值不等于參數(shù)LatInterTime的值,則模塊激活后的第一整分鐘已經(jīng)過去)來檢測。在階段718中時間標記推進后,程序在階段719中為下一間隔的變化時刻計算一個新的值(或者說,F(xiàn)ollIn-terTime=CurrentMinute-mod(CurrentMinute/Interv)+Interv)。這也可以這樣來執(zhí)行,即在階段717中檢測間隔的變化時刻究竟是不是模塊激活后的第一整分鐘。在階段719中,程序還變換奇偶性值,并向前推進最新和第二最新的奇偶性的變化時刻,使得,將參數(shù)LatParityTime置為當前實際時間標記的值,和將參數(shù)PreParity-Time置為參數(shù)LatParityTime的原值。另外,由于正進行該行的處理,因此,此時將參數(shù)LatFinished置為零,使得,系統(tǒng)知道該行的處理還未結束。還應注意,即便該行的處理未完成而程序檢測到間隔的變化時刻已經(jīng)過去,參數(shù)LatFinished仍被重置為零。
然后,程序在階段720(程序可能已直接從階段716到達該階段)中檢測該行的處理過程是否已結束,或者說,所有的行是否已經(jīng)被處理完(參數(shù)LatFinished的值是否為1)。如果是,則程序直接進到階段745,在此將定時器復位。如果該行的處理未結束或如果還未開始(即,參數(shù)LatFinished的值為零),則程序進到階段721,在此將該行的計數(shù)器初始化。接著,程序在模塊的測量表中讀下一行。如果順利讀出了新的行,則程序進到階段725。在任何其他情況下,程序?qū)⑺行袠擞洖橐炎x(將參數(shù)LatFinished置為值1,階段724),并且程序直接進到階段745,在此使定時器又計滿。
在階段725中,程序從行中檢索對象的參數(shù),如用戶標識符(OI)、與具體對象相關的激活參數(shù)(ObjAct)、最新行的處理的時間標記(LatMade)和第二最新的行的處理的時間標記(PreMade)。然后,將該行的計數(shù)器的值加1(階段726)。當計數(shù)器值被增加后,程序進到階段727,在此,檢測所討論的對象是否連續(xù)處于惰態(tài)。這通過檢測與具體對象相關的激活參數(shù)ObjAct的值是否為100(它被選定為檢測中所要用的值)來實現(xiàn)。如果是,則程序經(jīng)階段744進到階段722,以便讀下一行(它是根據(jù)該行的計數(shù)器的值到達的),或者進到階段745以設置定時器。在任何其他情況下,程序在階段728中檢測該對象在最新喚醒后是否可能被切換到惰態(tài)。這通過檢測與具體對象相關的激活參數(shù)ObjAct是否小于或等于零來實現(xiàn)。如果是,則與具體對象相關的激活參數(shù)的值被置為100,從現(xiàn)在開始它將表示該對象連續(xù)為惰態(tài)。這在階段729中實現(xiàn),程序由此直接進到階段741。如果在階段728所進行的檢測結果為否(或者說,對象是激活的),則程序進到階段730,在此,檢測該對象在最新執(zhí)行后是否被切換到激活狀態(tài),或者說,與該對象有關的測量是否正好已被啟動。這通過檢測與具體對象相關的激活參數(shù)ObjAct的值是否小于100而大于零(或者說,該值是否為1)來實現(xiàn)。如果是,即如果該對象正好已被激活,則程序進到對象初始化階段732,在此,程序?qū)⑽挥谠撔兄械臅r間標記LatMade和PreMade初始化為緊隨當前分鐘的下一分鐘,并將該對象的激活參數(shù)置為該參數(shù)的上一個值(1)加100(ObjAct:=ObjAct+100)。然后,程序直接進到階段741,在此檢查奇偶性值,隨后將一個或另一個計數(shù)器組置零(階段742或階段743)。將被復位的計數(shù)器組取決于奇偶性值。程序從這些階段進到階段744,在此檢測該行的計數(shù)器是否已達到用戶指定的某段時間所處理的行數(shù)(Batch)。如果已達到,則程序進到階段745,在此使定時器又計滿,而如果未達到,則程序返回到階段722,以便讀下一行。
如果程序在階段730中檢測到所討論的事件不是對象從惰態(tài)轉(zhuǎn)換到激活狀態(tài)的事件,則程序進到階段734,在此檢測上述關于時間標記P的不等式[ThirdInterTime]<P≤[SecondInterTime]是否成立(其中,中括號代表時間標記的值)。如果成立,則程序直接跳到階段736,在此檢查奇偶性值,隨后根據(jù)奇偶性值,轉(zhuǎn)向讀出第一或第二計數(shù)器組的值(階段737或階段738)。然后,程序在階段739中寫記錄文件。如果與時間標記P相關的不等式不成立,則程序在階段735中檢測與時間標記L(LatMade)相關的不等式[ThirdInterTime]<L≤[SecondInterTime]是否成立,如果成立,則程序進到階段736,以檢查奇偶性變量的值,程序由此按上述方式繼續(xù)進行,直至寫記錄文件。除了將位于行中的模塊和對象標識符以及與具體對象相關的計數(shù)器值寫入記錄文件之外,程序還將上述參數(shù)的值寫入記錄文件。
寫完以后,或如果與時間標記L相關的不等式不成立而離開階段735后,程序進到階段740,在此更新位于行中的這些時間標記(標記P和L)。標記P被賦予標記L的原值,而標記L被賦予等于上舍入的當前分鐘的值。時間標記更新后,程序進到階段741,以檢查奇偶性,過程由此按上述方式繼續(xù)進行。因此,當行已被處理完后,與特定行相關的時間標記被更新。
因此,利用圖5a(或5b)所示的循環(huán)規(guī)則,以短間隔完成了上述計數(shù)器值的記錄和置零過程,其中,(奇偶性)參數(shù)的值在每一間隔中確定計數(shù)器組,該計數(shù)器組的值在每一行記錄的。
另外,應當注意,上述記錄和置零過程是處理一個測量表的描述。為了補充以上描述,可以認為,當記錄和置零過程檢測到模塊剛被激活時(階段709),時間標記LatInterTime、Second-InterTime和ThirdInterTime被初始化(階段710)到最近的下一整分鐘,或者說,初始化到與時間標記FollInterTime相同的時刻。在第一整分鐘后的喚醒期間,程序檢測到間隔的變化時刻FollInterTime已經(jīng)過去(階段716),但不必更新間隔的變化時刻LatInterTime、SecondInterTime和ThirdInterTime,因為它們已經(jīng)被初始化。換言之,程序直接從階段717進到階段719,以更新下一預期的間隔的變化時刻FollInterTime。記錄和置零過程需要變化時刻LatInterTime、SecondInterTime和ThirdInterTime的上述初始化值,使得,這些時間標記沒有一個會比其間程序檢測到模塊已被激活的喚醒的時間早。這使得例如僅在幾秒鐘后,就可啟動模塊的去激活和其再激活。
正如上述表明,記錄和置零過程已被實現(xiàn),使得,對于測量對象的兩個計數(shù)器組,迫使所討論的測量對象激活后的第一處理這樣進行,即阻止計數(shù)器組的記錄而允許計數(shù)器組的置零。這樣處理,使得,在該測量對象激活后的第一處理期間,根據(jù)激活參數(shù)值跳過該記錄階段,而在該測量對象激活后的第二處理期間,通過利用時間標記,使得,在該第二處理前將與特定測量對象相關的時間標記初始化,從而將被執(zhí)行的檢測(階段734和735)阻止該記錄。拷貝因子N越大,置零所有所激活對象的計數(shù)器組所占時間越長。不過該延時無關緊要,因為計數(shù)器組的置零在事件記錄需要時才發(fā)生(根據(jù)交替規(guī)則)。
當用戶通過將一個特定對象的激活參數(shù)置為零來去激活它時,SLPi立刻停止增加所討論對象的計數(shù)器的值。在所討論的記錄間隔期間,記錄和置零過程可能沒有對所討論的行進行處理(因為在所討論的間隔期間它可能已被處理完,或因為在所討論的間隔期間由于處理器過載而沒有時間處理所有的行)。然而,在隨后的間隔之一期間,處理器到達所討論的行并檢測到所討論的對象已被去激活(除非用戶其間已重激活該對象)。不過,該延時不會導致錯誤的計數(shù)器值,因為在測量對象剛一去激活后,記錄就已被阻止。該阻止的原因是,當SLPi立刻停止增加計數(shù)器值時,由于不知道去激活發(fā)生的確切時刻,因此上一記錄間隔的長度是不確定的。
如果用戶去激活測量對象,并又在記錄和置零過程到達所討論的行之前重激活該對象,則記錄和置零過程根據(jù)對象的激活參數(shù)包括一個指示該激活剛發(fā)生的值(本例中,值為1)這一事實來識別該情況。當該激活已被檢測到時,如上所述記錄又被阻止。
盡管參照根據(jù)附圖的例子對本發(fā)明進行了以上描述,顯然,本發(fā)明并不局限于本例子,而可以在以上和附屬權利要求書中所述的本發(fā)明的思想的范圍內(nèi)變化。盡管以上描述了通過初始化時間標記來阻止測量對象激活后的記錄的一種實施方式,這還可以用其他方法來實現(xiàn)。不過,由于在本系統(tǒng)中,這些用于作出記錄決定的時間標記是現(xiàn)存的,并且如果計數(shù)器的拷貝因子大于2,它們還可以為兩個目的所用,從這個意義上講,利用時間標記是最好的。
權利要求
1.一種業(yè)務數(shù)據(jù)庫系統(tǒng)中的用于完成事件記錄的方法,該數(shù)據(jù)庫包括一些含有連續(xù)行(Ri)的測量表(MT),據(jù)此,單一一行包括有關單個測量對象的數(shù)據(jù),并且一個測量表中的測量對象屬于同一類型,使得,它們可構成一個測量組,這種方法包括以下步驟-接收業(yè)務請求(SR)進入到該系統(tǒng),在其處理期間,必須對每一測量對象的事件發(fā)生數(shù)進行計數(shù),-作為該業(yè)務請求的響應,激活業(yè)務的提供,-在由某一預定的記錄間隔所確定的一段時間內(nèi),對于業(yè)務請求處理期間的每一不同事件,通過增加與特定測量對象相關的計數(shù)器的值來完成事件記錄,和-通過存儲每一記錄間隔后的與特定測量對象相關的計數(shù)器值,來完成計數(shù)器值的記錄,-通過去激活所討論的對象,從測量組的測量中刪去單個測量對象,和通過激活所討論的對象,在測量中增加單個測量對象,據(jù)此,將指示去激活或激活的值賦給與特定測量對象相關的激活參數(shù),該參數(shù)的值根據(jù)用戶所提供的與特定測量對象相關的激活/去激活信息來更新,其特征在于,該方法還包括以下步驟-將拷貝了N個拷貝的單個測量計數(shù)器保存于與每個測量對象對應的測量表的行中,使得,N個計數(shù)器中的每一個屬于一個不同的計數(shù)器組,從而有N個計數(shù)器組位于該行中,-將時域劃分為連續(xù)的記錄間隔(TP),使得,每一記錄間隔期間只增加位于該行中的一個選定的計數(shù)器組的值,并且要被增值的計數(shù)器組隨不同的記錄間隔變化,-在一個記錄間隔期間,通過一次一行地處理測量表的行,來一次一個測量對象地處理計數(shù)器值的記錄和置零,使得,位于該行中的單個計數(shù)器組中的計數(shù)器值的記錄和置零在這樣一些記錄間隔期間被執(zhí)行,這些記錄間隔介于所討論的計數(shù)器組中的計數(shù)器被增值的記錄間隔之間,-存儲與測量對象對應的行中的測量對象的激活參數(shù)的值,并在記錄和置零階段之前的行處理期間檢查所述值,據(jù)此,如果所檢查參數(shù)的值指示該測量對象是激活的,則完成記錄和置零階段,-執(zhí)行測量對象的計數(shù)器組的置零,使得,對于各測量對象的計數(shù)器組,迫使所討論的測量對象激活之后的第一處理這樣進行,即阻止計數(shù)器組的記錄而允許計數(shù)器組的置零。
2.如權利要求1所述的方法,其特征在于,與測量對象對應的測量表的行中的各計數(shù)器被成對地保存,據(jù)此,第一計數(shù)器屬于第一計數(shù)器組(CG1)而第二計數(shù)器屬于第二計數(shù)器組(CG2),以及時域被劃分為連續(xù)的記錄間隔(TP),使得,在每隔一個的記錄間隔中,第一計數(shù)器組中的計數(shù)器值被增加而第二計數(shù)器組中的計數(shù)器值被記錄和置零,又在每隔一個的記錄間隔中,第二計數(shù)器組中的計數(shù)器值被增加而第一計數(shù)器組中的計數(shù)器值被記錄和置零。
3.如權利要求2所述的方法,其特征在于,系統(tǒng)存儲與特定測量組相關的關于以前的記錄間隔的變化時刻的信息和與特定測量對象相關的關于以前的行處理時刻的信息,并在行處理期間,通過將行處理時刻與記錄間隔的變化時刻進行比較,檢測計數(shù)器值是否有效,可否被記錄。
4.如權利要求3所述的方法,其特征在于,在測量對象激活之后的第一處理期間,根據(jù)該測量對象的激活參數(shù)的值跳過所選定計數(shù)器組的記錄階段,而在測量對象激活后的后續(xù)處理期間,根據(jù)比較中所用的時間標記值使所執(zhí)行的檢測阻止該記錄,跳過每個計數(shù)器組的記錄階段。
5.如權利要求1所述的方法,其特征在于,在每一記錄間隔期間,每一行至多被處理一次。
6.如權利要求4所述的方法,其特征在于,由于測量對象的激活,測量對象的激活參數(shù)被賦予某一值,該值指示激活剛發(fā)生,并在下一行處理期間,將所述值變更為另一個值,該值指示對象處于激活狀態(tài)。
全文摘要
本發(fā)明涉及業(yè)務數(shù)據(jù)庫系統(tǒng)中一種處理事件記錄的方法。該數(shù)據(jù)庫包括一些含有連續(xù)行(Ri)的測量表( MT)。因此,各個對象的激活值可被改變,或者可在任何時候增加/刪去各個對象,從而使得對測量的干擾盡可能小,測量對象的激活參數(shù)的值被存儲在行中,并在計數(shù)器的記錄和置零階段執(zhí)行測量對象的計數(shù)器組的置零,使得,對于各測量對象的計數(shù)器組,迫使所討論的測量對象激活之后的第一處理這樣進行,即阻止計數(shù)器組的記錄而允許計數(shù)器組的置零。
文檔編號H04Q3/545GK1231748SQ97198254
公開日1999年10月13日 申請日期1997年8月29日 優(yōu)先權日1996年8月29日
發(fā)明者皮卡·萊迪寧 申請人:諾基亞電信公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
孟连| 牡丹江市| 金沙县| 手游| 拜泉县| 荔波县| 昭通市| 江孜县| 渝中区| 榆社县| 格尔木市| 温泉县| 鄂尔多斯市| 民权县| 宁晋县| 安化县| 安徽省| 肇东市| 阜新市| 武城县| 蒲江县| 紫阳县| 卓尼县| 汝州市| 丰都县| 北碚区| 霍州市| 托里县| 蓬莱市| 应用必备| 泸定县| 汝州市| 岐山县| 绍兴县| 广西| 资溪县| 东阳市| SHOW| 博客| 桓仁| 白玉县|