專利名稱:隊列管理系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用來將需要不同服務(wù)類型的客戶隊列配置到提供有所需服務(wù)的服務(wù)程序的方法和手段。另一方面更特別地涉及用來管理所記錄的電話信息的隊列并允許各組信息向所期望的終端傳送。
這種將服務(wù)賦予具有不同處理要求的客戶隊列管理系統(tǒng)取決于客戶的類型。對于諸如A、B、C等的每一客戶類型,它們提供一類諸如A、B、C等可對該客戶服務(wù)的服務(wù)程序。它們可以替代所供給的可將它們本身傳送至如該客戶所需的例如A、B、C等不同服務(wù)程序的通用服務(wù)程序。
多數(shù)隊列管理系統(tǒng)以一預(yù)置的順序服務(wù)于客戶,例如在一先入先出的基礎(chǔ)上服務(wù)于客戶。它們利用兩種排除方案中的一種來實現(xiàn)服務(wù),即利用一種單一的隊列策略或一種多重的隊列策略實現(xiàn)服務(wù)。
在單一隊列策略中,所有客戶以它們到達的順序在該同一隊列中等待并隨后一次對一個客戶進行服務(wù)。如果在該隊列中的該頂端客戶是作為一個與當(dāng)前被服務(wù)客戶同一類型的客戶,例如類型A,那么處理類型A的服務(wù)程序可以立即處理下一個類型A客戶。否則,該系統(tǒng)必須改變?yōu)檫m合于下一個客戶的一類服務(wù)程序,例如類型B,或者查詢使用第一類型(類型A)的隊列中的下一個客戶。
在一現(xiàn)行的電話語音郵政系統(tǒng)的環(huán)境中,客戶具有對各種終端編碼的記錄信息的形式,該單一隊列策略的工作如下所述。在同一隊列中的所有信息以它們到達的順序等待并且一服務(wù)程序隨后一次一個地對每個信息進行服務(wù)和傳送。如果幾個傳送方向為同一終端的信息相互跟隨,那么該系統(tǒng)可將它們作為一組而傳送。否則,該系統(tǒng)將該終端變?yōu)橄乱粋€信息的終端,或者查詢用于該同一終端的以一個所期望信息作為第一信息的隊列并抽出幾個共同到該同一終端的信息作為一組來傳送。
這樣的單一隊列系統(tǒng)很顯然是一種低效率的系統(tǒng)。它們不可能容易地適應(yīng)于同時對不同客戶或信息的服務(wù)。
該多重隊列策略利用多個隊列并把每個隊列與客戶類型和相應(yīng)的服務(wù)程序類型聯(lián)系起來。在同一隊列中的同一類型的客戶以它們到達的順序等待。在一具有多重隊列方案的電話語音郵政系統(tǒng)的環(huán)境情況下,該客戶是對各種終端編碼的記錄信息。該多重隊列的每一個包括有用于一特定終端的信息。用于同一終端的信息在同一隊列中以它們到達的順序等待。這種多重隊列需要配置的多個隊列的數(shù)目等于其數(shù)量可以很大或未知的終端的最大數(shù)。每個信息通過該終端的特定隊列。
本發(fā)明的目的是要改善隊列管理系統(tǒng),特別是改善使用語音郵政的電話系統(tǒng)。
本發(fā)明的另一目的是要克服上面所提及的缺點。
本發(fā)明包括將所有各種類型客戶以一預(yù)置的順序安置在一控制隊列中,周期地空出少于客戶類型數(shù)的多個處理隊列的每一個,并且將來自該控制隊列的一客戶類型的每個連續(xù)客戶僅僅傳送到一個沒有其它客戶類型的處理隊列中。這就將每個處理隊列分配給一種客戶類型直至該處理隊列被空出并將每個空出的處理隊列重新分配為下一個被傳送的客戶類型。
由于該隊列管理程序總是將處理隊列已經(jīng)包含的同一客戶類型增補到每個處理隊列,該隊列管理程序?qū)⒚總€處理隊列分配給該隊列管理程序首先安置的該處理隊列的客戶類型。這種分配連續(xù)進行直到該服務(wù)程序使該處理隊列空出為止。如果該隊列管理程序現(xiàn)在在該空出的處理隊列中安置一新的客戶類型,那么該隊列管理程序?qū)⒔獬幚黻犃袑η懊娴目蛻纛愋偷姆峙洳⑺俜峙浣o最新的類型。解除分配和再分配容許一有限的處理隊列數(shù)目(例如50)去處理任何數(shù)量的客戶類型(例如1000或更多)。
根據(jù)本發(fā)明的一特殊方面,即在一電話環(huán)境中的條件下,所謂客戶是為傳送到多個終端而編碼的記錄語音郵政信息。對于所有終端的所有信息以一預(yù)置的順序出現(xiàn)在該控制隊列中,例如以一先入先出為基礎(chǔ)。在比其終端數(shù)目要少的多個處理隊列之間,隊列管理程序通過將控制隊列中的每個相繼的第一信息安置到其終端與該第一信息的終端相適應(yīng)的處理隊列中的方法,一個接一個地分配該控制隊列中的信息。如果不存在有相適應(yīng)的處理隊列,但存在一空出的處理隊列時,則該隊列管理程序?qū)⒃摰谝恍畔⒅萌朐摽粘龅奶幚黻犃?。如果不存在空出的處理隊列,則該隊列管理程序在控制隊列中保持該信息直至所有的處理隊列的信息傳送而使一處理隊列空出為止。該隊列管理程序這時將該處理隊列再分配僅用來傳送到新的終端的信息并將下一個信息安置到該空出的處理隊列。
本發(fā)明使用了有限數(shù)量的隊列來提供同時對大量的客戶或終端的服務(wù)。實際上對不同客戶類型或終端并設(shè)有限制。用于同一終端的同一類型的客戶或信息是在同一隊列中等待的。在同一隊列中等待的客戶或信息,雖然可能有不同的排序,但在正常狀態(tài)下是以年月日順序排列的。對不同客戶類型或信息終端的同時處理可容易實現(xiàn)。該系統(tǒng)動態(tài)地將隊列分配給每個客戶類型或終端,并當(dāng)它們變?yōu)榭粘鲆约靶栌眯陆K端的新的客戶類型或信息到來時將它們重新分配。為了處理容易起見,本發(fā)明將與一給定客戶類型或終端相關(guān)的處理與相應(yīng)的隊列關(guān)聯(lián)起來。
對于多個客戶類型或用于多個終端的信息的處理比用于一單一隊列方案及對上述多個隊列系統(tǒng)的處理變得更為有效。本發(fā)明考慮到在處理中有大的適應(yīng)性。
本發(fā)明的這些和其它的特征在構(gòu)成本說明書的一部分的權(quán)利要求中指出。本發(fā)明的其它目的和優(yōu)點為借助于附圖閱讀時對本領(lǐng)域的技術(shù)人員來說將變得顯然。
圖1是一說明體現(xiàn)本發(fā)明特征的隊列管理系統(tǒng)的方框圖;
圖2是說明在圖1中所示的并體現(xiàn)了本發(fā)明的隊列管理系統(tǒng)的操作流程圖;
圖3是一說明在圖1中所示的并體現(xiàn)了本發(fā)明的隊列管理系統(tǒng)的操作的另一種方法的流程圖;
圖4是一說明當(dāng)它們開始圖1所示的處理隊列的服務(wù)時該服務(wù)程序的操作的流程圖;
圖5是說明當(dāng)它們進行在該隊列中的操作時在圖1中所示的服務(wù)程序的操作的另外的流程圖;
圖6是一體現(xiàn)本發(fā)明的一實施例的一電話系統(tǒng)的方框圖;
圖7是在圖6所示的電話系統(tǒng)的環(huán)境中體現(xiàn)本發(fā)明的一隊列管理系統(tǒng)的一方框圖;
圖8是一說明在圖6和圖7中所示的以及體現(xiàn)本發(fā)明的隊列管理系統(tǒng)的操作步驟的流程圖;
圖9是一說明在圖6和圖7中所示的以及體現(xiàn)本發(fā)明的該系統(tǒng)的操作方法中的進一步的步驟的流程圖;
圖10是一說明在圖6和圖7中所示的及體現(xiàn)本發(fā)明的該系統(tǒng)的操作的進一步的步驟的流程圖;
圖11是說明在圖6和圖7所示的以及體現(xiàn)本發(fā)明的隊列處理控制程序的另外操作的流程圖。
在圖1所示的隊列管理系統(tǒng)QMS的方框圖中,一隊列管理程序QM管理一隊列源,即一控制隊列QC和若干處理隊列QP1,QP2,……,QP(n-1),QPn??刂脐犃邪ㄒ恍蛄行枰儞Q處理類別或類型的不同客戶類型TC1至TCt的客戶CL1至CLm。處理隊列QP1至QPn的數(shù)目n小于客戶類型TC1至TCt的數(shù)目t。處理隊列的數(shù)目n例如可以是50,客戶類型的數(shù)目t例如可以是1000。
控制隊列QC接收所有客戶類型TC1至TCt的所有客戶,并按照它們到達的順序保持它們。隊列管理程序QM以同樣的順序移動來自控制隊列QC的客戶。因而,控制隊列QC是一先入先出(FIFO)隊列。但這僅僅是一個例子,而該控制隊列可隨意地以其它的順序?qū)蛻襞判颉?br>
隊列管理程序QM將控制隊列QC中的每個頂端客戶安置到處理隊列QP1至QPn中與這個客戶類型相關(guān)的一處理隊列中。根據(jù)該隊列管理程序安置QP1至QPn中一空出的處理隊列的最初客戶的客戶類型,該隊列管理程序建立與該客戶的聯(lián)系。這種情況如下所述。
假定一開始所有的處理隊列QP1至QPn都是空的,并且在該控制隊列QC中的最先客戶是一個TC10類型客戶,隊列管理程序?qū)⒃摽蛻舭仓迷谔幚黻犃蠶P1中。這個步驟分配該處理隊列QP1為客戶類型TC10或該處理隊列QP1是用于客戶類型TC10的隊列。該隊列管理程序隨后僅僅安置TC10類型客戶進入處理隊列QP1直至服務(wù)程序SE中的一個程序步驟使該處理隊列QP1空出為止。如果在控制隊列QC中的下一個頂端客戶是類型TC143的客戶,那么該隊列管理程序QM將類型TC143的客戶安置到處理隊列QP2中,因而處理隊列QP2用于客戶類型TC143或分配該處理隊列QP2給客戶類型TC143。
如果在該控制隊列QC中的下一個頂端客戶是類型TC10,那么該隊列管理程序?qū)⑦@個頂端客戶與其它TC10類型的客戶一起安置到處理隊列QP1中而不是安置到空著的一個處理隊列中。之后,該隊列管理程序QM仍保持將頂端客戶安置到該隊列管理程序指定用于該客戶類型的處理隊列之中,如果沒有這種專用的處理隊列存在時,則該隊列管理程序?qū)⑾乱粋€客戶安置到一空的處理隊列之中。每次有一個空出的處理隊列接收一個客戶類型,該隊列管理程序指定該處理隊列用于該客戶類型。
當(dāng)該隊列管理程序占用或分配了所有處理隊列,并且下一個被服務(wù)的客戶類型不是被專用或分配的處理隊列的類型的客戶時,該隊列管理程序停止對來自控制隊列QC的客戶的分配并等待服務(wù)程序SE使得處理隊列QP1至QPn中的一個空出來。該服務(wù)程序SE或者以一個接一個的方式或者以成組的方式移動客戶來服務(wù)于處理隊列QP1至QPn。例如,這種服務(wù)可以空出一處理隊列并允許隊列管理程序解除對該處理隊列的分配并將該處理隊列分配給位于控制隊列QC的頂端的客戶類型。
在另一其中客戶是被以最大可能尺寸成批處理的實施例中,如果隊列管理程序已占用或分配了所有的處理隊列并且下一個被服務(wù)的客戶是一未被分配給處理隊列的類型的客戶時,該隊列管理程序檢查該控制隊列,將在該控制隊列中與一處理隊列相適應(yīng)的在后面的客戶傳送給它的處理隊列,如果該傳送不會產(chǎn)生新的成批客戶需被處理。
該隊列管理程序聯(lián)系或保持每個處理隊列的隊列信息。該隊列信息包括當(dāng)前的客戶類型并可包含其它方面的信息。
本發(fā)明是其于這樣的認識,即既使客戶類型TC1至TCt的最大數(shù)可以很大,但在任何一時間里通常僅存在一有限的實際等待服務(wù)的客戶數(shù)量。因此,估算在這個實際等待服務(wù)的子集中存在有多少客戶類型,它就可能配置足夠的處理隊列QP1至QPn去保持它們。
該隊列管理程序不能永久地指定任何處理隊列給一個固定的客戶類型,而僅僅在一時間里指定處理隊列給一種客戶類型。當(dāng)隊列管理程序QM指定它給一種客戶類型時,一處理隊列QP1至QPn才被使用。反之,該處理隊列是空出的和可使用的。只有當(dāng)在該處理隊列中沒有客戶時,該處理隊列才可用來分配或再分配。
圖2是說明圖1中所示的隊列管理系統(tǒng)QMS工作的流程圖。在步驟100,隊列管理程序執(zhí)行一等待操作以允許通過一個或多個源處對控制隊列QC增補客戶。我們的過程由一等待節(jié)始。這看來似乎是低效率,而實際并非如此。該過程是周期的,因而在該初始等待之后,所進行的處理如像該等待是在末尾。在大多數(shù)情況下,當(dāng)該系統(tǒng)啟動時,不存在有客戶,因而如果該過程不是由一等待而開始,則該過程總是進行等待而不做任何事情。因而,具有一等待的起始通常更為有效。其它的執(zhí)行過程可能不同。在步驟104,該隊列管理程序確定該控制隊列是否是空的。如果是空的,則該隊列管理程序QM返回到步驟100的等待。如果控制隊列QC不是空的而裝有客戶,則該隊列管理程序前進到步驟107并讀出第一個客戶的客戶類型。在步驟110,該隊列管理程序確定該第一個客戶的客戶類型是否和處理隊列的任何客戶類型相適應(yīng)。也就是,該隊列管理程序根據(jù)它所保持的數(shù)據(jù)來確定是否已將某一處理隊列分配給由在步驟107中所查尋到的客戶類型。在某種意義上來說,該隊列管理程序QM確定是否任何的處理隊列QP1至QPn已經(jīng)包含了在步驟107中的該類型的客戶類型。
如果在步驟107中的客戶類型與一個處理隊列QP1至QPn相適應(yīng),那么隊列管理程序前進到步驟114并從控制隊列移動該頂端(第一)客戶并將它增補到被分配有相同客戶類型的處理隊列QP1至PQn。如果在步驟107中的第一個客戶的類型在步驟110中與任何處理隊列中的該客戶類型不相適應(yīng),則管理程序進行到步驟117并詢問是否還存在有任何可利用的處理隊列,即詢問一處理隊列QPP1至QPn是否是空的。如果處理隊列QP1至QPn中的一個隊列是可利用的(即空的),則在步驟120中該隊列管理程序?qū)⒃摽衫玫男碌奶幚黻犃邪仓媒o該客戶類型并且移動在步驟107中的該第一個客戶并將其增補到處理隊列中。然后返回到步驟104并詢問該控制隊列是否是空的。
如果沒有處理隊列QP1至QPn是空的,則該處理隊列可能實際上已被充滿。在步驟124中,該隊列管理程序QM確定服務(wù)程序SE是否服務(wù)于一個處理隊列的客戶,或者相反地確定是否某物充滿或阻塞了所有隊列。如果那里對于客戶的服務(wù)的并不完全阻塞或充滿,也就是說,至少有一個處理隊列的服務(wù)是成功地進行的,則該隊列管理程序使客戶返回到步驟100去等待,并且暫停整個過程的執(zhí)行以提供一時間使該處理隊列空出,從而使它變得可利用。
如果該服務(wù)程序沒有成功地服務(wù)于在任何處理隊列中的客戶,也就是說,如果某物阻塞或充滿所有處理隊列的服務(wù)時,則隊列管理程序進入步驟127。在步驟127,該隊列管理程序QM通過使該隊列空出而清除所有處理隊列QP1至QPn,并將它們所包含的客戶送回到它們各自的源處。在這一點上,盡管該源處可將該客戶送回控制隊列,但這些客戶不再是該過程的部分。為了校正導(dǎo)致?lián)頂D的問題可執(zhí)行另外的動作。一旦該隊列管理程序QM清除了處理隊列QP1至QPn中的一個隊列,那么它可以分配該頂端客戶的客戶類型的處理隊列并將在該控制隊列QC中的頂端客戶傳送到空出的處理隊列中。
根據(jù)本發(fā)明的一個實施例,在步驟127中該隊列管理程序QM僅清除處理隊列QP1至QPn中的一個或多個。根據(jù)本發(fā)明的另一實施例,在步驟127中,該隊列管理程序還檢驗該控制隊列,并將所分配類型的任何客戶送回到被清除的處理隊列中的一個隊列。還根據(jù)本發(fā)明的另一實施例,在步驟127中,該隊列管理程序?qū)⒖蛻舴祷氐娇刂脐犃卸皇欠祷氐剿鼈兊脑刺?。為了使這種實施例正常地工作,必須滿足二個關(guān)系。首先,為了將一客戶類型安置到一處理隊列而在該控制隊列上的任何輸入(即還未在該處理隊列中)必須在該輸入從該處理隊列返回到該控制隊列之后結(jié)束,以保持這種類型的客戶按年月日順序所排列的次序。其次,如果存在一永久的問題而為了避免一無限循環(huán),每個從該處理隊列返回的客戶必須具有一與其相關(guān)的返回計數(shù)。指定一最大返回計數(shù),并且如果與該客戶相關(guān)的該返回計數(shù)達到這個最大值時,該客戶將返回到它的源處而不是返回到該控制隊列。
本發(fā)明的另一個如圖3流程圖所示的實施例是圖2所示實施例的變型。在圖3中,如果步驟124中的回答為“否”,則該處理隊列未被全部充滿,該隊列管理程序啟動步驟130中的等待。這個等待類似于步驟100中的等待。其后,該隊列管理程序直接返回到步驟117。如果該控制隊列QC是嚴格地按FIFO排序,則在圖3中的操作比在圖2中返回到步驟100更為有效。即使那樣,也無法對不能和任何處理隊列QP1至QPN的客戶相適應(yīng)的頂端輸入進行轉(zhuǎn)換。因此,處理將總是通過步驟104、107和110進行到步驟117。在圖3的實施例中,該隊列管理程序直接進行到步驟117。根據(jù)本發(fā)明的另一個實施例,如果該客戶的處理失敗了時,則由該服務(wù)程序SE通知一客戶的源處。
根據(jù)本發(fā)明的另一實施例,該隊列管理程序在該控制隊列QC或QP1至QPn中引入另外的隊列排序,即一種不是按年月日順序排列的排序。在一實施例中,該排序是基于優(yōu)先級而排列的。在另一個實施例中,該順序是基于優(yōu)先級和年月日順序的。所有的標量場都是基于優(yōu)先級的。也就是說,該隊列管理程序QM建立一在該標量場中的數(shù)值或增大或減小的順序。
在一般情況下,一處理隊列QP1至QPn可以包括有許多具有在一給定時間里有若干不同優(yōu)先級的客戶。由于所有處理隊列的所有客戶都是通過控制隊列首先來傳送的,因而相同情況可發(fā)生在該控制隊列QC中。根據(jù)一個實施例,該隊列管理程序使用了大量的連接表。根據(jù)另一個實施例,它使用了一帶有一用來識別在該隊列中存在的當(dāng)前最高優(yōu)先級數(shù)值的輔助變量的FIFO隊列。這些實施例在準備時間和在過程中查找下一個客戶的效率之間作折衷選擇。
服務(wù)程序SE對該處理隊列QP1至QPn的服務(wù)如圖4和5的流程圖所示。
圖4表明了該處理的起始和圖5表明了該實際的處理。將該處理的起始和該處理分別地產(chǎn)生,這樣可使該服務(wù)程序同時地處理多個隊列。這些步驟中包括一“處理開始”的校驗步驟以確保對于同一隊列不會產(chǎn)生多次處理。
與該隊列管理程序QM的同步無關(guān),該服務(wù)程序SE在步驟200中的第一次等待以一預(yù)置的順序開始對處理隊列QP1至QPn的樣驗。我們的過程隨著一等待而開始。這看來似乎是低效率的,然而實際上并非如此。該處理是周期性的,這樣該初始等待之后,所進行的處理好像該等待是在其未尾。在大多數(shù)情況下,當(dāng)該系統(tǒng)開始工作時,并沒有客戶,這樣如果該過程不由一等待開始,那么它將陷入始終處于等待而不做任何事情。因而,由一等待開始通常更為有效。另外的執(zhí)行過程可能不一樣。在步驟204中,該服務(wù)程序檢驗用來準備處理的客戶的下一個隊列,并且在步驟207中詢問該處理隊列是否有任何客戶。如果回答為“否”,則服務(wù)程序到達步驟210,并且清除或移動涉及在該隊列中以前的客戶的任何隊列信息并重新分配該隊列。在步驟214中該服務(wù)程序然后去檢驗下一個隊列并返回到步驟200。
如果在步驟207中的回答為“是”,那么所討論的該處理隊列包括有客戶,則該服務(wù)程序到達步驟220以確定該處理隊列是否已經(jīng)啟動并是否接受服務(wù)。如果“是”,則服務(wù)程序進行到步驟214去檢驗下一個隊列。如果回答為“否”,則服務(wù)程序進行到步驟224去標記該隊列所處理的對象并啟動在該處理隊列中該客戶的服務(wù)。在步驟227,該服務(wù)程序SE然后確定該服務(wù)是否成功地開始。如果不是,則服務(wù)程序SE返回到步驟200。如果是,則服務(wù)程序在步驟234中標記該隊列已被處理并在返回到步驟200之前到達步驟214。
啟動之后的處理步驟示于圖5。在圖5中,在步驟260的等待之后,服務(wù)程序執(zhí)行步驟264的過程。步驟267詢問該過程是否成功。如果成功,則服務(wù)程序在步驟270中從該隊列移動客戶。在步驟274中,服務(wù)程序確定在該處理的隊列中是否存在有更多的客戶。如果沒有,則服務(wù)程序繼續(xù)進入步驟287,在該步驟中服務(wù)程序標記該隊列為不再處理并中止該隊列的處理。如果有更多的客戶,則在步驟227中,服務(wù)程序確定是否該客戶的最大數(shù)被處理。某些服務(wù)程序成批處理的客戶可能有也可能沒有一最大數(shù)。如果一服務(wù)程序成批地處理客戶,并且該服務(wù)程序處理在一批中的客戶的最大數(shù),那么該服務(wù)程序暫停處理直到它的下一個通過為止。如果在步驟277,回答為是,則該服務(wù)程序處理了該最大值。如果不是,則該服務(wù)程序SE在步驟280得到下一個客戶并返回到步驟264。在步驟267,如果回答為“否”,則服務(wù)程序到達步驟284進行誤差處理。根據(jù)本發(fā)明的一個實施例,誤差處理包括標記該處理隊列用于“復(fù)算”和規(guī)定一個復(fù)算時間。當(dāng)啟動處理時(圖4),該隊列過程控制程序跳過所檢驗的用于復(fù)算的被標記隊列直至該所規(guī)定的復(fù)算時間為止。根據(jù)本發(fā)明的一個實施例,該服務(wù)程序可省略該誤差處理。
圖6的方框圖表明了在一電話系統(tǒng)環(huán)境條件下本發(fā)明的一個實施例。在圖6中,圖2的客戶CL1至CLm是其類型隨著它們的終端而變化的語音郵政消息。在圖6的該電話系統(tǒng)中,在用戶位置L1上的一電話支線交換機BE1將若干個電話T1,T2,……,TK連接到一公共或私人電話網(wǎng)TN并連接到一相關(guān)的語音郵政系統(tǒng)VM1。該電話網(wǎng)TN將該支線交換機BE1連接到其所有位置LC1至LCh均可能遠離這位置L1的若干其它的支線交換機BE2.....BEq。每個支線交換機BE2至BEq將多個電話TL連接到電話網(wǎng)TN并與各自相關(guān)的語音郵政系統(tǒng)VM2至VMq相連接。每個語音郵政系統(tǒng)VM1至VMq是一已知類型的系統(tǒng),它記錄來自任何電話T1-TK和TL并到達它相關(guān)的支線交換機BE1至BEq的信息。
圖6所示的位置LC1至LCn可大大地擴展。例如該支線交換機BE1和語音郵政系統(tǒng)VM1可以位于加利福尼亞州的圣克萊拉;同時其它的位置可以位于例如紐約州的紐約;馬薩諸塞州的波士頓;和英格蘭的諾丁漢等。
該語音郵政系統(tǒng)VM1包括一在圖7中詳細表明的隊列管理系統(tǒng)QMT。該語音郵政系統(tǒng)VM1接收并存貯所有來自支線交換機BE1的或來自本地位置L1的電話T1至TK或來自這距離位置LC1至LCn的電話TL的信息。這些信息包括由電話T1至TK取回的信息和用來傳送到遠處電話TL的信息。每個信息含有一用于特定終端或終端的特定數(shù)目的終端代碼。典型情況下,一終端是另一語音郵政系統(tǒng),諸如VM2至VMq中的任一個。當(dāng)它收集若干信息以一組的形式傳送到諸如一語音郵政系統(tǒng)的一單個終端時,該隊列管理系統(tǒng)QMT實現(xiàn)了它的最大效率。每個編碼信息包括目標語音郵政系統(tǒng)數(shù)目和該目標語音郵政系統(tǒng)內(nèi)該特定終端的郵政信箱號。例如終端數(shù)可以是1000。
在該語音郵政系統(tǒng)VM1中,一選擇程序(未示出)分離來自本地電話T1至TK的預(yù)期記錄信息的用來傳送到遠處的電話TL(即,位于語音郵政VM1的支線交換機BE1范圍以外的LC1至LCn位置上)的記錄信息。該語音郵政系統(tǒng)VM1允許每個本地電話T1至TK去訪問以這些本地電話為目標的信息。作為客戶,在圖7中的該隊列管理系統(tǒng)QMT僅僅接收用來傳送到在遠處電話TL的終端DE1至DET和位于支線交換機BE1以外的位置LC1至LCn的編碼信息ME1至MEm。
圖7詳細地表明了該隊列管理系統(tǒng)QMT。由圖1所示的系統(tǒng)QMS與一電話系統(tǒng)特別是與一圖6所示的語音信息系統(tǒng)相聯(lián)系而構(gòu)成了圖7。除了圖7中該客戶CL1至CLm具有信息DE1至DEt的特定形式和該服務(wù)程序SE具有對遠處終端拔號并傳送信息的一隊列過程控制程序PC之外,圖7和圖1是相同的。相同的標號符在圖1和圖7中表示相同的部分。
在圖7中,該控制隊列QC接收用于所有終端DE1至DEt的信息ME1至MEM,并且以它們到達的順序來保持它們。該隊列管理程序QM以同樣的順序移動來自該控制隊列QC的信息。在這里,該控制隊列是一先入先出(FIFO)隊列。然而,這僅僅是一個例子而該控制隊列可以其它所希望的順序來安置這些信息。
在圖7中,該隊列管理程序QM將該管理隊列QC的每個頂端信息安置到一與某個終端相關(guān)的處理隊列QP1至QPn之中。該隊列管理程序QM根據(jù)該隊列管理程序QM將該第一個信息置入一空的處理隊列的終端而建立與該終端的聯(lián)系。這種情況將在下面描述。
假設(shè)一開始所有的處理隊列QP1至QPn是空的,并且在該控制隊列QC中的第一個或頂端信息的終端為DE10,隊列管理程序QM在處理隊列QP1中安置該信息。這個步驟暫時地將該處理隊列QP1分配至或用于該終端DE10。隊列管理程序QM隨后僅將具有目標終端DE10的信息安置到處理隊列QP1直至隊列處理控制程序PC使處理隊列QP1空出來為止。如果在控制隊列QC中的下一個頂端信息具有一終端DE143,那么隊列管理程序QM將具有終端DE143的信息安置到處理隊列QP2之中并因此而將處理隊列QP2分配至或用于終端DE143。
如果在控制隊列QC中的下一個頂端信息具有一終端DE10,那么該隊列管理程序?qū)⒃诰哂性摻K端DE10的另外的信息之后將該信息安置到處理隊列QP1之中而不是安置到一個空出的處理隊列之中。其后,該隊列管理程序QM將具有一特定終端的頂端信息安置到該隊列管理程序QM已分配給該終端的處理隊列之中。如果不存在這樣的已指定的處理隊列,則該隊列管理程序?qū)⑾乱粋€頂端客戶安置到一空出的處理隊列之中。每次一個空出的處理隊列接收一個具有一特定終端的信息,該隊列管理程序?qū)⑦@個處理隊列分配為該終端。
該隊列過程控制程序PC周期地通過該處理隊列有時與由該隊列管理程序QM的操作無關(guān)。在每個處理隊列中,該隊列過程控制程序PC拔通該被專用的處理隊列的終端的編號。如果該呼叫被接通,則該隊列過程控制程序PC通過該支線交換機傳送一組在該隊列過程程序中的信息。在一組中信息的最大數(shù)取決于任何時間該系統(tǒng)可傳送的信息數(shù)以及管理信息傳送的通訊協(xié)議。
如果在該處理隊列中的信息數(shù)小于批組的最大數(shù)。這樣的操作將使該處理隊列空出。這就允許隊列管理程序QM重新分配這個處理隊列并再分配在該控制隊列QC頂端信息的終端。但是,如果在該處理隊列中的信息數(shù)超過了批組的最大數(shù)時,這個過程暫停工作直至該隊列過程控制程序的下一個周期為止。后者總是去檢驗下一個隊列是否成功地發(fā)送一消息還是發(fā)送未成功。
當(dāng)該隊列管理程序使用或分配了所有的處理隊列,并且在該控制隊列的下一個信息的終端是未被專用或未被分配的處理隊列時,該隊列管理程序中止分配來自于該控制隊列QC的信息并等待該隊列過程控制程序PC和該支線交換機BE1空出的操作并傳送在一個處理隊列QP1至QPn中的信息。
隊列管理程序QM和過程控制程序PC聯(lián)系或維持每個處理隊列的隊列信息。該隊列信息包括當(dāng)前被分配的終端代碼并可包括其它方面情況,即,是否該當(dāng)前所處理的處理隊列是空的、在重算中處理隊列的重算數(shù)、下一個重算時間等。
本發(fā)明是基于這樣一種認識,即既使終端DE1至DEt的最大數(shù)可以很大例如1000或更多,但在任何一時間里通常僅存在有一有限的實際等待服務(wù)的信息數(shù)和僅僅一有限的資源數(shù)。因此,通過估算在這個實際等待用來傳送的信息的子集中存在有多少終端,它就可以分配足夠的處理隊列QP1至QPn(例如50個)去保持它們。
隊列管理程序不能永久地使任何處理隊列使用于一固定的終端,而僅僅給該處理隊列分配一個終端直至該處理隊列變?yōu)榭粘鰹橹?。該隊列管理程序然后重新分配該空出的隊列。?dāng)該隊列管理程序QM分配一終端時給一個處理隊列QP1至QPn時,該處理隊列方被利用。否則,該處理隊列是空的并可供再分配。僅當(dāng)在這個處理隊列中沒有信息時該處理隊列才可用來分配或重新分配。
圖8是說明在圖6和圖7中所示的隊列管理系統(tǒng)QMT的操作的流程圖。該操作類似于圖2的情況,但圖8是工作在電話和語音信息的環(huán)境中的。在步驟300,隊列管理程序QM執(zhí)行一等待以允許另外的信息加入該控制隊列QC。我們的過程由一等待而開始。但該處理是周期性的,這樣在初始等待之后,該處理過程好像該等待是在未尾。在多數(shù)情況下,當(dāng)該系統(tǒng)啟動時并沒有客戶存在,這樣如果該處理不是由一等待開始,它將自始至終陷入等待而不做任何事情。因此,由一等待開始通常更為有效。其它的執(zhí)行過程可能不同。在步驟304,隊列管理程序確定該控制隊列QC是否是空的。如果是,則隊列管理程序QC返回到步驟300。如果該控制隊列QC不是空的而包含有信息,那么隊列管理程序QM前進到步驟307并讀出第一個信息的終端代碼。在步驟310,隊列管理程序確定該第一個終端代碼是否適應(yīng)于處理隊列QP1至QPn的任何終端代碼。也就是,隊列管理程序QM檢驗其存有的與該處理隊列有關(guān)的數(shù)據(jù)以確定是否已經(jīng)分配了任何處理隊列給在步驟307中所查詢的終端。在某種意義上來說,該隊列管理程序QM確定是否任何處理隊列QP1至QPn已經(jīng)包括了步驟307中的終端的信息。
如果步驟307中的終端與一處理隊列QP1至QPn相適應(yīng),則隊列管理程序QM進入步驟314并傳送該頂端(或第一個)信息到被分配為該相同終端的處理隊列QP1至QPn中。如果步驟307中的第一個信息的終端在步驟310中與任何處理隊列中的終端不相適應(yīng),則隊列管理程序進入步驟317并詢問那里是否存在有任何空的處理隊列QP1至QPn。如果有一個處理隊列QP1至QPn是空的,那么在步驟320中,該隊列管理程序QM分配該空的處理隊列給這個信息的終端并將在步驟307中的該頂端信息傳送至這個處理隊列。然后它返回到步驟304去詢問是否控制隊列QC是空的。
由于沒有相適應(yīng)的或空的處理隊列QP1至QPn,可以假定處理隊列已被充滿。在步驟324,該隊列管理程序由檢驗該隊列過程控制程序PC的結(jié)果來確定是否某物充滿或阻塞了來自所有處理隊列的信息的傳送。如果不是整個部分的傳送被堵塞,即,至少來自一個隊列的傳送被成功的進行,則隊列管理程序QM將該信息留在該控制隊列而在步驟300中進行等待,并暫停整個過程的執(zhí)行以提供用于一處理隊列空出的時間。如果某物阻塞了來自所有處理隊列的信息的傳送,則該隊列管理程序QM到達步驟327。該隊列管理程序QM通過空出該隊列和將信息返回源處來清除該處理隊列QP1至QPn中的一個或多個。還可執(zhí)行其它動作以校正由于擁擠而引起的問題。
這個清除處理將該信息返回到它們的發(fā)送程序。一旦該隊列管理程序清除了一個處理隊列QP1至QPn,它就可將來自控制隊列的頂端信息傳送到被空出的處理隊列,并因此將該處理隊列分配為該信息的終端,根據(jù)本發(fā)明的另一個實施例,該隊列管理程序QM清除所有處理隊列QP1至QPn。
在圖8中,該隊列管理程序QM還可引入在該控制隊列QC或QP1至QPn中的其它的排列順序,即除按年月日排列之外的順序。任何標量場可利用優(yōu)先級進行排序。也就是說,該隊列管理程序QM利用在該標量場中或增加或減小的數(shù)值量來建立一排列順序。
在通常情況下,在一給定時間里一處理隊列QP1至QPn可以包括許多具有很多不同優(yōu)先級的信息。由于所有處理隊列的所有信息首先通過控制隊列,因而該同樣的情況也可出現(xiàn)在控制隊列QC之中。
如同在圖9和圖10中的流程圖所示的那樣,該隊列過程控制程序控制該支線交換機BE1而將來自處理隊列QP1至QPn的信息傳送到它們各自的終端。如同在圖4和圖5中一樣,在圖9和圖10中,該隊列過程控制程序PC將該信息的處理分為兩個單獨的工作部分以便使它可能同時使用多個隊列。圖9表明了該傳送的初始方式,圖10則表明了傳送圖9的信息的方式。
圖9所示的各個步驟與隊列管理程序QM的操作的同步無關(guān)。在圖9中,該隊列過程控制程序以一預(yù)置的順序每次一個地啟動對處理隊列QP1至QPn的檢驗,并在兩個隊列檢驗之間進行如步驟400所示的等待。我們的過程由一等待開始。這看來似乎是低效率的,但實際并非如此。該過程是周期性的,因而在初始等待之后,該過程進程好像該等待是在末尾。在許多情況中,當(dāng)該系統(tǒng)啟動時,并不存在有客戶,如果該過程不隨一等待而開始,它就會始終陷入等待而不做其它事情。因而由一等待開始通常更為有效。其它的執(zhí)行過程可能不同。在步驟404,該隊列過程控制程序PC檢驗下一個已準備傳送信息的隊列,并在步驟407中詢問該處理隊列是否有任何信息。如果回答是“否”,則該隊列過程控制程序PC進入步驟410,清除或移去與以前在該隊列中的信息相關(guān)的任何隊列資料并重新分配該隊列。該隊列過程控制程序PC然后在步驟414中檢驗下一個隊列并返回步驟400。
如果在步驟407中該回答為“是”,則表明在上述所討論的處理隊列中存在有信息,則隊列過程控制程序PC進入步驟420去確定該支線交換機BE1是否已經(jīng)傳送了來自該處理隊列的信息。如果“是”,則該隊列過程控制程序PC進入步驟414去檢驗下一個隊列。在一用于對誤差處理重算的實施例中,步驟414可以越過在重算中其重算時間還未到達的任何隊列。如果回答為“否”,則該隊列過程控制程序PC前進到步驟424去啟動由標記該隊列作為傳送對象的處理并請求該支線交換機BE1以得到一用來傳送信息的信道。在步驟427中,該隊列過程控制程序PC確定該信道是否成功得到。如果沒有成功,則該隊列過程控制程序PC返回到步驟400。如果成功,則在步驟434中該隊列過程控制程序PC標記該用于處理的隊列并返回步驟414并隨后返回步驟400。
該處理步驟出現(xiàn)在圖10中。在圖10中,當(dāng)步驟460的等待之后,在步驟464中該隊列過程控制程序PC控制該支線交換機BE1以撥通在該處理隊列中該信息終端的編號并通過該可利用的信道去傳送該處理隊列的第一個信息。我們的過程由一等待而開始。這看來似乎是低效率的,但實際上并非如此。該過程是周期性的,因而在初始等待之后,該過程的進行好像該等待是在未尾。在大多數(shù)情況中,當(dāng)該系統(tǒng)開始工作時,并不存在客戶,因而如果該過程不是一等待開始,它將始終陷入等待而不做任何事情。因此,由一等待開始通常更為有效。其它的執(zhí)行過程有所不同。在步驟467,該隊列過程控制程序PC詢問該傳送是否成功。如果“是”,則在步驟470中隊列過程控制程序PC從該隊列中移去該信息。在步驟474中,該隊列過程控制程序PC檢驗在該處理隊列中是否存在有任何更多的信息。如果回答為“是”,則在步驟477中,該隊列過程控制程序詢問該支線交換機BE1是否傳送了每個被傳送信息的最大數(shù)。如果沒有,則在步驟480中,該隊列過程控制程序PC得到下一個信息并在步驟464中重新開始該過程。
步驟484是可任意選擇和可以去除的。如果在步驟467中該支線交換機BE1未完成呼叫,即該過程未成功,則執(zhí)行步驟484的操作。該隊列過程控制程序PC更新與反映情況的隊列相關(guān)的隊列信息。
如果在步驟467中信息傳送沒有成功,本發(fā)明的幾個另外的實施例在步驟484中執(zhí)行誤差處理。在一個實施例中,該隊列過程控制程序移動來自該隊列的信息將它返回到其源處,并終止該處理隊列的服務(wù)直至該隊列過程控制程序的下一個周期。在另一實施例中,該隊列過程控制程序移動來自該隊列的所有信息并將它們返回到它們的源處。
在另一實施例中,該隊列過程控制程序留下在該隊列中的信息而設(shè)置一再試的時間。下一個傳送來自該隊列的信息的試圖被認為是一次重算。該隊列過程控制程序PC保持重算數(shù)的軌跡。當(dāng)在圖8中的步驟324中檢驗隊列是否滿時,該隊列管理程序記下該隊列是在重算中并監(jiān)視確實不是所有的隊列是在重算。
如果進行重算之后該信息仍然沒有通過,則該隊列過程控制程序PC將該信息(也許所有其它的到該終端的信息)返回到它的源處。
當(dāng)周期地通過該隊列而開始一過程時,該隊列過程控制程序越過被標記為重算的隊列直至該處理時間已滿為止。
在步驟484中完成了誤差處理之后,該隊列過程控制程序PC然后前進到步驟487標記作為不處理的隊列并中止該隊列的進程。然后按圖9的步驟等待開始下一個隊列的處理。
如果在步驟474中該隊列過程控制程序PC確定在該隊列中不存在更多的信息,或者在步驟477中確定該交換機BE1處理了信息的最大數(shù),則該隊列過程控制程序PC進入步驟487。
如果呼叫成功,則該隊列過程控制程序PC傳送一組預(yù)置最大數(shù)的信息并且中止該傳送。在該組中的最大數(shù)可能不允許傳送在一處理隊列中的所有信息。但是,在它的下一個檢驗該處理隊列的周期期間,隊列過程控制程序PC可以更多的傳送。
圖11中所示的過程是圖9和圖10中所示過程的一被簡化的變型。在該實施例中,一個隊列的處理必須是在另一隊列的處理之前完成。這里再次說明,圖11的各步驟與該隊列管理程序QM的操作的同步無關(guān)。圖11中,隊列過程控制程序PC以一預(yù)置順序在一時間里一次啟動一對處理隊列QP1至QPn的檢驗,并在兩個隊列的檢驗之間,出現(xiàn)如步驟500所示的等待。我們的過程由一等待開始。這看來似乎是低效率的,但實際并非如此。該過程是周期性的,這樣在起始等待之后,好像該過程進行的等待是在未尾。在大多數(shù)情況下,當(dāng)該系統(tǒng)開始時,沒有客戶存在,因而如果該過程不是從一等待而開始,那么它將始終陷入等待而不做任何事情。因此,用一等待開始通常更為有效。其它的執(zhí)行過程可以不同。在步驟504,該隊列過程控制程序PC檢驗下一個準備用于傳送信息的隊列,并在步驟507中詢問該處理隊列是否有任何信息。如果回答為“否”,則該隊列過程控制程序PC到達步驟510并清除或移動在該隊列中與以前的信息有關(guān)的任何隊列資料并重新分配該隊列。然后該隊列過程控制程序PC在步驟514中對下一個隊列進行檢驗并返回到步驟500。
如果在步驟507中該回答為“是”,則表明在該處理隊列中存在有信息,該隊列過程控制程序指向支線交換機BE1以撥通在該處理隊列中的信息的終端的編號并通過它的可利用的信道去傳送該處理隊列的第一個信息。在步驟567中,該隊列過程控制程序PC詢問該傳送是否成功。如果成功,則在步驟570中,該隊列過程控制程序PC從該隊列中移去該信息。在步驟574中,該隊列過程控制程序PC檢驗在該處理隊列中是否存在有更多的信息。如果回答為“是”,則在步驟577中該隊列過程控制程序詢問該交換機BE1的每次傳送是否傳送了信息的最大數(shù)。如果沒有,則在步驟580中,該隊列過程控制程序PC給出下一個信息并在步驟520中重新開始該過程。
如果步驟574確定在該隊列中沒有更多的信息,或者步驟577表明該交換機BE1已處理了最大數(shù)的信息,則該隊列過程控制程序前進到步驟514。
步驟584是可任意選擇的并且可以略去。如果在步驟567,該支線交換機BE1未完成呼叫,也就是說,該過程未成功,則步驟584建立反映該狀態(tài)的資料。在步驟584,信息傳送中的下一個企圖是一重算。如果在進行了重算之后該信息仍未通過,那么該隊列過程控制程序PC將該信息和所有可能的其它信息返回到該終端。
如果該呼叫成功,則該隊列過程控制程序PC傳送一組被預(yù)置的最大數(shù)的信息并中止該傳送。在該組中所預(yù)置的數(shù)可能不允許傳送在一處理隊列中的所有信息。但是,隊列過程控制程序PC在它的下一個檢驗該處理隊列的周期期間可以傳送更多的信息。
本發(fā)明具有既使終端的最大數(shù)可以很大例如為1000時也可提供高效率服務(wù)的優(yōu)點。本發(fā)明基于這樣一種認識,即在任何一時間里,通常僅僅存在有一有限數(shù)量的實際等待服務(wù)的終端。因此,僅僅一小數(shù)量的處理隊列QP1至QPn例如50個隊列就可以服務(wù)于一大量的終端。如果該處理隊列的數(shù)量不足,則該控制隊列作為上溢隊列。
本發(fā)明提供了阻止來自壟斷該處理隊列的用于最忙的終端的信息的優(yōu)點。由于在該控制隊列QC中每個信息必須等待它的返回,所以出現(xiàn)這種情況。
根據(jù)本發(fā)明,該隊列管理程序并不是將處理隊列QP1至QPn永久地用于固定的終端而是暫時地將它們用于一指定的終端。當(dāng)指定一個終端時,處理隊列QP1至QPn中的一個被使用。一旦該隊列被空出,對于另一個終點而言,該處理隊列變?yōu)槭强赡芾玫?。另外,?dāng)處理發(fā)生時,該隊列管理程序可將信息加到一處理隊列中。
根據(jù)本發(fā)明的另外的特征,隊列過程控制程序PC接受另外的信息資料以確定何時去觸發(fā)一處理隊列的操作。例如,傳送時間和傳送計數(shù)確定何時以及是否傳送過程試圖將一信息傳送到一終端,進行了多少次嘗試以及是否還有其他的重算是未決的。
根據(jù)本發(fā)明的另外的實施例,控制隊列在隊列中除了使用年月日排序之外還使用其它的排序方法。在一個例子中,該控制隊列QC將該信息安置在一優(yōu)先級基底中或安置在一優(yōu)先級和先入先出組合基底中。該控制隊列QC可使用任何標量場作為一優(yōu)先級以及在該場中的增加值或減少值為順序的過程信息。還根據(jù)本發(fā)明的另外的實施例,在一給定的時間在一處理隊列QP1至QPn中該控制隊列QC安置有若干不同的優(yōu)先級。為了提高效率,大量的連接表可置換該先入先出隊列。另外的方案使用了具有一識別當(dāng)前在該隊列中的最高優(yōu)先級數(shù)值的輔助變量的先入先出隊列。其結(jié)果是在建立時間和查詢下一個處理的信息的效率之間折衷。根據(jù)本發(fā)明的另外的實施例,控制隊列管理程序QM使用了用于其同一類型但不同優(yōu)先級客戶的不同處理隊列。
根據(jù)本發(fā)明的一實施例,該隊列管理程序QM如下所述地處理在該處理隊列QP1至QPn中的信息擁擠問題。該隊列管理程序QM暫停任何信息移動出該控制隊列QC之外,直至處理隊列QP1至QPn的至少一個變?yōu)榭衫脼橹埂A硪环矫?,該隊列管理程序QM在與每個處理隊列相關(guān)的隊列信息資料的基礎(chǔ)上清除任何具有處理問題的處理隊列QP1至QPn。這就使得在堵塞期間某些處理隊列QP1至QPn可被利用和加快所有的處理進程。
還有另外的處理擁擠問題的方法包括等待直到所有的處理隊列都具有處理問題并同時清除所有處理隊列QP1至QPn。這就使得所有的處理隊列QP1至QPn可利用。
在電話或語音信息環(huán)境中,本發(fā)明僅僅將信息賦予對其余終端的信息是自由的處理隊列。因此即使那里可以存在一個實際上為無限數(shù)目的終端和僅僅一有限數(shù)目的隊列,用于同一終端的信息送到同一處理隊列中。信號源首先將信息放置到控制隊列QC中,隊列管理程序QM再將它們移至用來進一步處理的一個處理隊列中。這就隔離了該處理隊列QP1至QPn到該隊列管理程序QM和過程控制程序PC的認識。將信息傳送到控制隊列的外部過程僅僅知道控制隊列。
本發(fā)明允許同時發(fā)生對具有不同終端的信息和對于具有同一信息終端的這些信息保持一按年月日排序進行的處理。本發(fā)明動態(tài)的使用一用來處理同一信息類型(即,終端)的信息隊列。處理隊列QP1至QPn中的一個可以在一時間里保持用于一終端的信息和在另一時間里保持用于另外終端的信息。該隊列管理程序QM知道該處理隊列是使用在一重算狀態(tài)或者是空出和可使用的。
本發(fā)明允許除了用按年月日排序信息之外還可由優(yōu)先級來排序的信息。本發(fā)明使用一有限數(shù)目的隊列而允許對大量的終端進行服務(wù)。事實上在不同的終端中不存在限制。用于同一終端的信息是在同一處理隊列中等待。在同一處理隊列中的信息通常是以年月日來排序的,除非期望另外的排序方案。同時地對不同信息進行處理是可容易達到的。本系統(tǒng)動態(tài)地將處理隊列QP1至QPn分配給每個終端,然后重新對它們進行分配。為了便于處理起見,本發(fā)明相對于具有相應(yīng)隊列的一給定信息的處理而相聯(lián)系有共同的特征。
用于對同一終端的多個信息的處理比用于對一單個隊列系統(tǒng)以及用于對上述多個隊列系統(tǒng)的處理更為有效。本發(fā)明允許在處理中有更大的適應(yīng)性。
如果信息傳送沒有成功,則本發(fā)明的幾個另外的實施例將執(zhí)行誤差處理。在一個實施例中,該隊列過程控制程序或該隊列管理程序?qū)脑撽犃兄幸苿釉撔畔⑺祷氐皆撛刺?,并中止該處理服?wù)直至該處理控制程序的下一個周期為止。在另一實施例中,該隊列過程控制程序或該隊列管理程序移動所有的信息。在另一實施例中,該隊列過程控制程序或該隊列管理程序?qū)⒃撔畔⒈A粼谠撽犃兄卸O(shè)置一再試的時間。當(dāng)周期的通過該隊列去啟動一過程時,該隊列過程控制程序越過該隊列直至該時間被處理為止。
雖然詳細地介紹了本發(fā)明的實施例,但很明顯本領(lǐng)域的技術(shù)人員在不違背本發(fā)明的精神和范圍的前提下可對本發(fā)明作其它的具體化處理。例如,雖然該隊列管理程序通過一語音郵政信息系統(tǒng)的形式給予了說明,但本領(lǐng)域的這些或普通技術(shù)人員能夠容易的了解到上述方法和裝置還可應(yīng)用到所有其它的存貯和傳送信息的類型的系統(tǒng)中。例如,本發(fā)明的實施例可應(yīng)用到使用諸如傳真信息(FAX)、電子郵政信息(E-mail)、語音信息以及所有種類的多媒體信息的存貯和傳送信息系統(tǒng)。
權(quán)利要求
1.一種用于在一系統(tǒng)中的多個客戶的隊列管理系統(tǒng),這些客戶具有多種用戶類型,其特征在于,該隊列管理系統(tǒng)包括一用來對客戶排隊的控制隊列;多個少于客戶類型數(shù)量的用于接收客戶的處理隊列,并且每個處理隊列用來周期地排空客戶;和一用來將一種客戶類型的客戶傳送到一沒有其它客戶類型的客戶的空閑的處理隊列之中的隊列管理程序,該處理隊列被分配有一種客戶類型直至該處理隊列空出為止。
2.如權(quán)利要求1中所述的一種系統(tǒng),其中該隊列管理程序進一步包括有當(dāng)如果不存在有空的處理隊列和如果不存在有一個或多個具有該客戶類型的客戶的處理隊列時用來在該控制隊列中保留一具有一種客戶類型的客戶的手段。
3.如權(quán)利要求1中所述的一種系統(tǒng),其中所述隊列管理程序包括用來確定在該控制隊列中一客戶的客戶類型的手段;用來確定是否存在一具有該客戶類型的一客戶的處理隊列的手段;和用來將一客戶傳送到一相適應(yīng)的處理隊列,也就是傳送到一包括一具有該客戶類型的客戶的處理隊列的手段。
4.如權(quán)利要求3中所述的一種系統(tǒng),其中所述的隊列管理程序進一步包括如果不存在相適應(yīng)的處理隊列時用來查找一空出的處理隊列的手段;和如果存在一空的處理隊列時用來將該客戶傳送到一空的處理隊列的手段。
5.如權(quán)利要求4中所述的一種系統(tǒng),其中所述隊列管理程序進一步包括當(dāng)不存在有空出的處理隊列時,用來確定哪一個處理隊列正在空出的手段;和如果沒有空出的處理隊列時,用來空出至少一個處理隊列并將一客戶從該控制隊列傳送到一個空出的處理隊列的手段。
6.如權(quán)利要求5中所述的一種系統(tǒng),其中所述隊列管理程序進一步包括如果所有的處理隊列均被分配并且所有的處理隊列均正被空出時,用來暫停從該控制隊列移動客戶的過程的手段。
7.如權(quán)利要求1中所述的一種系統(tǒng),進一步包括用來成批處理在每個所述處理隊列中的客戶的處理手段;用來確定在一組(批)中所允許的客戶的最大數(shù)的手段;和用來確定何時達到該最大數(shù)的手段。
8.如權(quán)利要求7中所述的一種系統(tǒng),其中所述處理手段包括用來檢驗一個用于客戶處理的處理隊列的手段;如果在該被檢驗的處理隊列中不存在客戶時用來檢驗下一個處理隊列的手段;用來檢查該被檢驗的處理隊列以查看該處理隊列是否已被處理的手段;和如果該處理隊列未被處理而用來啟動該處理的手段。
9.一種用來對在一系統(tǒng)中的多個客戶服務(wù)的隊列管理方法,這些客戶具有多種客戶類型,該隊列管理方法包括步驟將該用戶傳送到一控制隊列;周期地空出少于客戶類型數(shù)的多個處理隊列的每一個;和從所述控制隊列中將一種客戶類型的客戶傳送到一沒有其它客戶類型的空的處理隊列,從而將該處理隊列分配給該種客戶類型直至該處理隊列被空出為止。
10.如權(quán)利要求9所述的一種系統(tǒng),進一步包括有如果沒有空出的處理隊列和如果沒有帶有一個或多個具有該客戶類型的客戶的處理隊列時在該控制隊列中保留一具有一種客戶類型的客戶的步驟。
11.如權(quán)利要求9中所述的一種方法,其中所述傳送步驟包括確定在該控制隊列中一客戶的客戶類型;確定是否存在一個具有該客戶類型的客戶的處理隊列;和將一客戶傳送到一相適應(yīng)的處理隊列,也就是,傳送到一包括有具有該客戶類型的一客戶的處理隊列中。
12.如權(quán)利要求11中所述的一種方法,其中所述的傳送步驟進一步包括有步驟如果不存在相適應(yīng)的處理隊列時,查找一空出的處理隊列;和如果存在一空出的處理隊列時,將該客戶傳送到一空出的處理隊列。
13.如權(quán)利要求12中所述的一種方法,其中所述的傳送步驟進一步包括有步驟如果不存在空出的處理隊列時,確定是否還有處理隊列正在空出;和如果沒有空出的處理隊列,則空出至少一個處理隊列并從該控制隊列中將一客戶傳送到被空出的處理隊列。
14.如權(quán)利要求13中所述的一種方法,其中所述傳送步驟進一步包括如果所有的處理隊列均被分配和沒有處理隊列被空出,則暫停從該控制隊列移動客戶的過程。
15.如權(quán)利要求9中所述的一種方法,進一步包括有步驟成批處理在每個所述處理隊列中的客戶;確定在一批(組)中所允許的客戶的最大數(shù);和確定何時達到該最大數(shù)。
16.如權(quán)利要求15中所述的一種方法,其中所述的處理步驟包括檢驗一用于客戶的處理隊列;如果在該被檢驗的處理隊列中不存在客戶時檢驗下一個用于客戶的處理隊列;檢查該被檢驗的處理隊列以查看是否該處理隊列是否正在處理;和如果該處理隊列未被處理則啟動該處理。
17.一存貯-和-傳送信息系統(tǒng)包括用來接收具有終端代碼用于傳送到多個目標終端中的一個終端的信息的手段;用來對該信息排列的一控制隊列;少于該目標終端的多個處理隊列;和用來將一個用于來自所述控制隊列的一個終端代碼的信息傳送到一沒有其它終端代碼的信息空閑的處理隊列中的一隊列管理程序,將該終端代碼分配給該處理隊列直至該處理隊列被空出為止。
18.如權(quán)利要求17中所述的一種系統(tǒng),其中所述隊列管理程序進一步包括如果不存在空出的處理隊列和如果沒有具有該終端代碼的一個或多個客戶的處理隊列時用來在該控制隊列中保留一個具有終端代碼的信息的手段。
19.如權(quán)利要求17中所述的一種系統(tǒng),其中所述隊列管理程序包括用來確定在該控制隊列中一信息的終端代碼的手段;用來確定是否存在一具有該終端代碼的信息的處理隊列的手段;和用來將一信息傳送給一相適應(yīng)的隊列,也就是,傳送給一包括有該終端代碼的信息的處理隊列的手段。
20.如權(quán)利要求19中所述的一種系統(tǒng),其中所述隊列管理程序進一步包括如果不存在相適應(yīng)的處理隊列時,用來查找一空的處理隊列的手段;和如果存在一空的處理隊列時,用來將信息傳送到該突出的處理隊列的手段。
21.如權(quán)利要求20中所述的一種系統(tǒng),其中所述隊列管理程序進一步包括當(dāng)不存在空出的處理隊列時,用來確定是否有處理隊列正在空出的手段;和如果沒有處理隊列正在空出時,用來空出至少一個處理隊列并用來將一信息從控制隊列傳送到該空出的處理隊列的手段。
22.如權(quán)利要求21中所述的一種系統(tǒng),其中所述隊列管理程序進一步包括如果所有的處理隊列已被分配并且所有的處理隊列已空出時,暫停從該控制隊列移動信息的過程的手段。
23.如權(quán)利要求17中所述的一種系統(tǒng),進一步包括有用來成批(組)依次處理在每個所述處理隊列中的信息的處理手段;用來確定一批(組)中所允許的最大信息數(shù)的手段;和用來確定何時達到該最大數(shù)的手段。
24.如權(quán)利要求23中所述的一種系統(tǒng),其中所述處理手段包括用來檢驗用于信息的一處理隊列的手段;如果在該被檢驗的處理隊列中不存在有信息時用來檢驗下一個用于信息的處理隊列的手段;用來檢查該被檢驗的處理隊列以查看是否該處理隊列是否正被處理的手段;和如果該處理隊列未被處理則用來啟動該處理的手段。
25.一種用來將具有終端代碼的信息傳送到多個特定目標終端中的一個終端的排隊方法,該方法包括有步驟將該信息送到一控制隊列;周期地空出少于終端數(shù)的多個處理隊列的一個;和將用于一終端的信息從所述控制隊列傳送到一沒有其它終端的空閑的處理隊列中,因而該處理隊列被分配為這一終端直至該處理隊列被空出為止。
26.如權(quán)利要求25中所述的一種方法,進一步包括如果沒有空出的處理隊列和如果沒有具有一個或多個具有一終端的信息時則在該控制隊列中保留一個具有該終端的信息的步驟。
27.如權(quán)利要求5中所述的系統(tǒng),其中用來空出至少一個該處理隊列的手段進一步包括用來將一客戶從一空出的處理隊列中返回到該控制隊列的手段。
28.如權(quán)利要求4所述的系統(tǒng),其中該隊列管理程序進一步包括當(dāng)不存在空出的處理隊列時,用來確定是否還有任何正被空出的處理隊列的手段;和如果沒有正被空出的處理隊列時,用來空出至少一個處理隊列并從控制隊列移動具有在一被空出的處理隊列中的客戶的類型的客戶。
全文摘要
對多個具有不同客戶類型的客戶服務(wù)的隊列管理系統(tǒng),控制隊列以預(yù)置順序?qū)蛻暨M行排列。隊列管理程序分配和再分配少于客戶類型數(shù)的多個處理隊列,以與各種客戶類型相適應(yīng)。如果有一相適應(yīng)的處理隊列時該隊列管理程序連續(xù)地將客戶安置該處理隊列中,如果不存在相適應(yīng)的處理隊列但有一空的處理隊列時該隊列管理程序分配或再分配該空的或被空出的處理隊列給該客戶類型。上述方法可用于語音郵政電話系統(tǒng)的環(huán)境中。
文檔編號H04M3/42GK1099923SQ9410222
公開日1995年3月8日 申請日期1994年3月3日 優(yōu)先權(quán)日1993年3月3日
發(fā)明者馬克·卡明斯基, 羅伯特·佩雷爾曼, 彼平·佩特爾, 珍妮·伊卡諾斯基, 克里斯·袁 申請人:羅姆公司