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

使用協(xié)議無關(guān)控制模塊引導(dǎo)和管理應(yīng)用程序及業(yè)務(wù)服務(wù)器的媒體對話構(gòu)架的制作方法

文檔序號:7717518閱讀:344來源:國知局
專利名稱:使用協(xié)議無關(guān)控制模塊引導(dǎo)和管理應(yīng)用程序及業(yè)務(wù)服務(wù)器的媒體對話構(gòu)架的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及利用控制模塊引導(dǎo)、管理和訪問應(yīng)用程序和業(yè)務(wù)服務(wù)器,提供管理、動態(tài)資源分配和負(fù)載平衡,更特別是本發(fā)明涉及利用協(xié)議無關(guān)的業(yè)務(wù)控制器作為媒體對話構(gòu)架的一部分,動態(tài)地訪問和利用居留在一個或多個處理單元或服務(wù)器中并維護(hù)處理單元或服務(wù)器之間滿意的負(fù)載平衡的應(yīng)用程序和呼叫業(yè)務(wù)。
背景技術(shù)
常規(guī)的軟件程序包經(jīng)常要求訪問存儲器、數(shù)據(jù)庫或其他應(yīng)用程序執(zhí)行它們設(shè)計的功能。例如,用戶可以訪問要求特定類型的數(shù)據(jù)轉(zhuǎn)換的軟件包。使軟件包能夠執(zhí)行轉(zhuǎn)換的一種方式是直接編程該轉(zhuǎn)換為軟件包。但是,近來存在這樣的趨勢,用戶訪問軟件包(稱為應(yīng)用程序),當(dāng)應(yīng)用程序需要復(fù)雜的功能時,軟件包又訪問另一個軟件包(稱為業(yè)務(wù)程序)。不是編程執(zhí)行復(fù)雜的功能本身的應(yīng)用程序,而是編程應(yīng)用程序來訪問特別設(shè)計執(zhí)行要求功能的其他業(yè)務(wù)程序。
圖1和2表示分配應(yīng)用程序的常規(guī)系統(tǒng)100,該應(yīng)用程序需要聲音識別業(yè)務(wù),聲音識別服務(wù)器可以處理這些請求。本領(lǐng)域技術(shù)人員可以看出圖1和2中的現(xiàn)有技術(shù)系統(tǒng)具有廣范圍的應(yīng)用程序,除了簡單的語音識別業(yè)務(wù)之外,用于訪問其他復(fù)雜的功能。但是,語音識別業(yè)務(wù)是公用的應(yīng)用程序。而且,圖2中的現(xiàn)有技術(shù)系統(tǒng)專門用于語音識別應(yīng)用程序,這些語音識別應(yīng)用程序組成一個公用類型的應(yīng)用程序,這種應(yīng)用程序要求多個的業(yè)務(wù)程序。
更詳細(xì)的說,圖1表示常規(guī)系統(tǒng)100。常規(guī)系統(tǒng)100包括多個話音處理模塊102和分配給每個話音處理模塊102的多條電話線104。話音處理模塊102進(jìn)一步包括多個客戶106和話音處理服務(wù)器108。系統(tǒng)100利用“循環(huán)賽”的策略將語音識別請求分配給語音識別服務(wù)器。在這個結(jié)構(gòu)中,話音處理模塊102中的一個客戶106經(jīng)一條輸入的電話線104接收發(fā)出的語音。接收語音發(fā)出的客戶106預(yù)先分配給話音處理服務(wù)器108。
系統(tǒng)100實(shí)行“循環(huán)賽”策略,因?yàn)橄到y(tǒng)100分配呼叫,由于呼叫到達(dá)線路上的下一個話音處理模塊102與話音處理模塊當(dāng)前的負(fù)荷無關(guān)。現(xiàn)有技術(shù)系統(tǒng)100不考慮所用系統(tǒng)負(fù)荷或消息類型的變化。由于無效的工作流分配,這種系統(tǒng)可導(dǎo)致效率降低。現(xiàn)有技術(shù)系統(tǒng)也不考慮特定服務(wù)器能力的差別。
認(rèn)識到圖1所述簡單循環(huán)賽系統(tǒng)的不足,圖2表示用于復(fù)用語音識別應(yīng)用程序中的業(yè)務(wù)程序的另一種現(xiàn)有方案,該方案試圖彌補(bǔ)此缺點(diǎn)。在這種結(jié)構(gòu)200中,至少一個應(yīng)用程序210需要多個語音識別服務(wù)器218之一的業(yè)務(wù)(即,業(yè)務(wù)程序)。為了能夠訪問這個服務(wù)器218,應(yīng)用程序210需要服務(wù)器218通過總線240與中間調(diào)解器206交互作用。中間調(diào)解器206控制應(yīng)用程序的各種標(biāo)準(zhǔn)電話方面,例如檢測呼叫和識別語音中的斷點(diǎn)(“終點(diǎn)”)。中間調(diào)解器206還通過總線242與資源管理器214交互作用。資源管理器214的主要任務(wù)是對給定的應(yīng)用程序請求識別語音識別服務(wù)器218的適當(dāng)?shù)那闆r。換句話說,中間調(diào)解器206接收來自請求訪問中的一個服務(wù)器218的應(yīng)用程序210的請求。中間調(diào)解器206將此請求傳送到資源管理器214,資源管理器214提供一個服務(wù)器218的訪問。
根據(jù)消息類型和需要實(shí)現(xiàn)該請求的具體的資源以及結(jié)構(gòu)200中服務(wù)器218的當(dāng)前負(fù)荷,資源管理器214確定哪種情況的語音識別服務(wù)器218是最合適的。當(dāng)檢驗(yàn)消息類型時,資源管理器214可以估計需要處理發(fā)音的語法、每個語音識別服務(wù)器218對討論的語法的處理能力和每個語音識別服務(wù)器218的自由處理能力的量。一旦語音識別服務(wù)器218分配給給定呼叫,資源管理器214經(jīng)總線246與服務(wù)器218通信,應(yīng)用程序210利用總線240與中間調(diào)解器206通信,中間調(diào)解器206利用總線244與服務(wù)器218通信。
除了相同類型的多個業(yè)務(wù),即語音識別服務(wù)器218之外,這個現(xiàn)有技術(shù)結(jié)構(gòu)不考慮多個業(yè)務(wù)。語音識別服務(wù)器218是復(fù)用的唯一資源。換句話說,這個現(xiàn)有技術(shù)系統(tǒng)不嘗試為單個應(yīng)用程序復(fù)用多個不同的業(yè)務(wù)。在這個例子中,現(xiàn)有技術(shù)系統(tǒng)復(fù)用多個語音識別服務(wù)器218,但不試圖復(fù)用多個語音識別服務(wù)器218與例如多個圖像服務(wù)器、與語音應(yīng)用程序有關(guān)的其他服務(wù)器或其他非語音應(yīng)用服務(wù)器。
另外,系統(tǒng)子單元之間的連接是固定的。這些連接包括應(yīng)用程序210和中間調(diào)解器206之間的總線240、中間調(diào)解器206和資源管理器214之間的總線242、中間調(diào)解器206和語音識別服務(wù)器218之間的總線244以及資源管理器214和語音識別服務(wù)器218之間的總線246。這些連接與大型應(yīng)用程序空間不相稱并且通過分布式、非局域網(wǎng)是不切實(shí)際的。
而且,要分配的資源不是動態(tài)的,在初始配置中定義固定組的資源。固定連接需要低的系統(tǒng)通過量或者高帶寬。此外,現(xiàn)有技術(shù)系統(tǒng),特別是語音識別系統(tǒng)不考慮負(fù)載平衡或動態(tài)地分配應(yīng)用程序210。
這個現(xiàn)有技術(shù)系統(tǒng)除了語法類型、具有具體語法的語音識別服務(wù)器能力和當(dāng)前處理容量之外,也不考慮資源類型。根據(jù)應(yīng)用程序和它運(yùn)行的環(huán)境,有多種其他的資源可能對負(fù)載平衡和動態(tài)系統(tǒng)結(jié)構(gòu)是重要的。
常規(guī)的電話正在從基于電路交換的網(wǎng)絡(luò)轉(zhuǎn)變成基于分組的網(wǎng)絡(luò)。開放系統(tǒng)互連(“OSI”)是特別有用的數(shù)字?jǐn)?shù)據(jù)通信協(xié)議,它支持不同主機(jī)上共同運(yùn)行的應(yīng)用程序之間的“主機(jī)到主機(jī)”數(shù)據(jù)傳送。(注意雖然該協(xié)議在單獨(dú)的主機(jī)之間定義,共同運(yùn)行的應(yīng)用程序可以保存在同一臺主機(jī)上)。但是,按常規(guī),通過互聯(lián)網(wǎng)協(xié)議傳送話音(VoIP)的基于分組的網(wǎng)絡(luò)設(shè)計成利用傳統(tǒng)的傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(“TCP/IP”)工作。TCP/IP沒有映射到OSI系統(tǒng)。特別是,基于分組的傳統(tǒng)的TCP/IP不足以定義對話(呼叫控制)或呈現(xiàn)需要傳送的多媒體的實(shí)時傳送。
另外,現(xiàn)有技術(shù)的連接性傾向于與協(xié)議相關(guān),不論是用戶數(shù)據(jù)報協(xié)議(UDP)、傳輸控制協(xié)議(TCP)等等。因此,例如利用UDP的應(yīng)用程序或業(yè)務(wù)不能利用TCP傳送的請求程序操作。
因此,希望開發(fā)這樣一種結(jié)構(gòu),即能夠在協(xié)議無關(guān)的基礎(chǔ)上復(fù)用多個服務(wù)器,和解決現(xiàn)有技術(shù)所述的這些和其他問題。

發(fā)明內(nèi)容
本發(fā)明的上述和其他特征、實(shí)用性和優(yōu)點(diǎn)將從下文結(jié)合


的本發(fā)明優(yōu)選實(shí)施的更具體描述中變得更加明顯。
為了獲得本發(fā)明的優(yōu)點(diǎn)和根據(jù)本發(fā)明的目的,提供用于復(fù)用應(yīng)用程序的方法。特別是,提供至少一個訪問服務(wù)器能訪問至少一個應(yīng)用程序。訪問服務(wù)器從至少一個用戶接收請求以訪問至少一個應(yīng)用程序。根據(jù)接收的請求,在至少一個訪問服務(wù)器和至少一個用戶之間建立通信鏈路,其中接收的請求保存在輸入請求隊(duì)列中。校驗(yàn)所請求的應(yīng)用程序是否有可用的通信路徑,當(dāng)通信路徑可用時,建立輸入請求隊(duì)列和至少一個應(yīng)用程序之間的通信路徑,移出和發(fā)送存儲的請求到請求的應(yīng)用程序。
本發(fā)明進(jìn)一步提供用于業(yè)務(wù)復(fù)用的裝置。該裝置包括能夠訪問至少一個應(yīng)用程序的至少一個訪問服務(wù)器。至少一個訪問服務(wù)器包括至少一個代理器和至少一個業(yè)務(wù)濃縮器。業(yè)務(wù)濃縮器包括至少一個應(yīng)用程序處理器、至少一個輸入業(yè)務(wù)隊(duì)列和至少一個請求處理器。至少一個訪問服務(wù)器適于接收多個請求來訪問至少一個請求,以訪問至少一個應(yīng)用程序。
本發(fā)明還提供具有計算機(jī)可用介質(zhì)的一種計算機(jī)程序產(chǎn)品,包括在其中記錄的計算機(jī)可讀代碼,用于處理控制訪問至少一個應(yīng)用程序的至少一個請求的數(shù)據(jù)。計算機(jī)可用介質(zhì)包括請求接收模塊,配置成接收訪問至少一個應(yīng)用程序的至少一個請求。該請求在通信建立模塊接收,該通信建立模塊配置成與請求訪問至少一個應(yīng)用程序的至少一個客戶建立通信鏈路。存儲模塊配置成存儲至少一個已接收請求,檢驗(yàn)?zāi)K配置成檢驗(yàn)通信路徑是否是否能夠允許訪問至少一個應(yīng)用程序。通信建立模塊還配置成與至少一個應(yīng)用程序建立通信鏈路。
附圖簡要說明并入和組成本說明書一部分的

本發(fā)明的一些優(yōu)選實(shí)施方式,并且與說明書一起說明本發(fā)明的目標(biāo)、優(yōu)點(diǎn)和原理。在附圖中,圖1是用于分配業(yè)務(wù)程序的常規(guī)系統(tǒng)的示意圖;
圖2是傳統(tǒng)語音識別系統(tǒng)的示意圖;圖3是符合本發(fā)明的網(wǎng)絡(luò)結(jié)構(gòu)的示意圖;圖4是符合本發(fā)明的網(wǎng)絡(luò)結(jié)構(gòu)的示意圖,圖5是圖3所示媒體服務(wù)器308的示意圖;圖6是圖3所示媒體服務(wù)器308的另一個示意圖;圖7是說明符合本發(fā)明的呼叫建立過程的流程圖;圖8是說明符合本發(fā)明的確立SIP信令的流程圖;圖9是說明符合本發(fā)明通過媒體服務(wù)器308開始輸出過程和輸入過程的流程圖;圖10是圖3所示控制模塊310的示意圖;圖11是說明符合本發(fā)明給應(yīng)用程序動態(tài)分配業(yè)務(wù)程序的工作流程圖;圖12是符合本發(fā)明的過程監(jiān)視業(yè)務(wù)的示意圖;圖13是圖12所示的過程監(jiān)視和盒(box)監(jiān)視之間交互作用的示意圖;圖14是符合本發(fā)明的跟蹤記錄和運(yùn)算操作的示意圖;圖15是舉例說明“OSI”和“TCP/IP”體系的方框圖;圖16是說明根據(jù)本發(fā)明的一種可能的媒體對話構(gòu)架的方框圖;圖17表示根據(jù)本發(fā)明構(gòu)成媒體對話構(gòu)架的處理器1700;圖18更詳細(xì)地表示業(yè)務(wù)濃縮器1712;圖19表示根據(jù)本發(fā)明的協(xié)議無關(guān)的控制模塊的功能方框圖;圖20更詳細(xì)地表示對話層信令協(xié)議1906;圖21更詳細(xì)地表示對話消息處理器1908;圖22表示根據(jù)本發(fā)明利用協(xié)議無關(guān)的控制模塊的系統(tǒng)功能方框圖;圖23是與本發(fā)明有關(guān)的一種可能方法的示范性的流程圖2300;和圖24是根據(jù)本發(fā)明的功能方框圖。
具體敘述現(xiàn)在詳細(xì)參考本發(fā)明的優(yōu)選實(shí)施方式,其中的例子在附圖中說明。希望下文的說明所包含和附圖所示的所有內(nèi)容應(yīng)當(dāng)說明為說明性的,而不具有限制意義。
圖3表示本發(fā)明的實(shí)施方式。特別是,圖3表示根據(jù)本發(fā)明一種實(shí)施方式的網(wǎng)絡(luò)結(jié)構(gòu)300。結(jié)構(gòu)300包括電話板306,它提供公用交換電話網(wǎng)(PSTN)304和媒體服務(wù)器308之間的接口。換句話說,圖3說明根據(jù)本發(fā)明通過標(biāo)準(zhǔn)公用交換電話網(wǎng)(PSTN 304)發(fā)出呼叫給位于服務(wù)器內(nèi)的應(yīng)用程序。除了電話板306和媒體服務(wù)器308之外,結(jié)構(gòu)300還包括控制模塊310、至少一個應(yīng)用程序312和至少一個業(yè)務(wù)程序314。雖然每塊結(jié)構(gòu)300表示成單獨(dú)的和不同的,各個塊可以包含在一個處理單元中,例如單個服務(wù)器中,或者由于設(shè)計選擇的原因在許多處理單元中。另外,各塊可以位于一個中心地點(diǎn)或遍布在遠(yuǎn)處的多個地方。還要注意附圖和隨后的討論描述了可以由軟交換替代的媒體服務(wù)器。軟交換是一種軟件程序,它本質(zhì)上起到與傳統(tǒng)的硬件通信交換相同的作用。軟交換還執(zhí)行媒體服務(wù)器308的作用,但是軟交換通常構(gòu)造成和定價用于大規(guī)模、高容量載體級環(huán)境。媒體服務(wù)器或媒體網(wǎng)關(guān)通常更適合于小規(guī)模、低容量、低成本環(huán)境。
操作中,用戶從標(biāo)準(zhǔn)電話機(jī)302呼叫標(biāo)準(zhǔn)電話號碼,該號碼被分配注冊到電話板306。PTSN 304以傳統(tǒng)的方式將呼叫從電話機(jī)302發(fā)送到電話板306(它配置成接收該電話號碼),通常作為T-1、DS3或類似中繼線的一部分,為了傳送的目的復(fù)用許多電話線。最好,電話板306以常規(guī)的方式在硬件級處理標(biāo)準(zhǔn)呼叫管理(例如,檢測和終止呼叫),盡管電話板306可以使用軟件或軟件與硬件的某種組合。在操作中,當(dāng)電話板306收到呼叫時,它通知媒體服務(wù)器308。媒體服務(wù)器308接收該通知并給電話板306提供接收該呼叫的可用端口的地址(沒有在圖3中具體地示出)。然后,電話板306將連接的呼叫傳送到媒體服務(wù)器308的可用端口。
媒體服務(wù)器308接收來自電話板306的呼叫,電話板306可能已對呼叫數(shù)據(jù)進(jìn)行某種處理,最好媒體服務(wù)器對呼叫數(shù)據(jù)執(zhí)行某種處理。首先建立呼叫信令,然后媒體連接。
首先,利用標(biāo)準(zhǔn)PSTN信令協(xié)議例如PRI-ISDN信令協(xié)議,或利用由電話板306以常規(guī)方式操縱的一個版本的這些信令協(xié)議,電話板306通過通信信道322發(fā)送呼叫數(shù)據(jù)到媒體服務(wù)器308的輸入端口。媒體服務(wù)器308的輸入端口(未示出)格式化成接收標(biāo)準(zhǔn)的PSTN信號協(xié)議,正如由電話板306處理的,如果適當(dāng)?shù)脑?。最好,媒體服務(wù)器308將PRI-ISDN信令數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)互聯(lián)網(wǎng)協(xié)議,最好為對話啟動協(xié)議(SIP)協(xié)議。從標(biāo)準(zhǔn)PSTN信號協(xié)議到SIP協(xié)議的轉(zhuǎn)換在圖5-9中更詳細(xì)地說明。
第二,作為此協(xié)議轉(zhuǎn)換的一部分,媒體服務(wù)器308通過通信信道324產(chǎn)生和發(fā)送SIP應(yīng)用程序INVITE到控制模塊310。最好,由媒體服務(wù)器308產(chǎn)生的SIP應(yīng)用程序INVITE相應(yīng)于呼叫的電話號碼,并可以映射到一個應(yīng)用程序312。此外,SIP應(yīng)用程序INVITE包含應(yīng)用程序312最終連接的媒體服務(wù)器308的端口地址信息。
控制模塊310檢驗(yàn)通過通信信道324接收的SIP應(yīng)用程序INVITE,確定哪個應(yīng)用程序312相應(yīng)于呼叫的電話號碼,例如,在這種情況下,呼叫預(yù)定給應(yīng)用程序312類型B。因?yàn)楠?dú)特的建立結(jié)構(gòu)300,多個應(yīng)用程序312類型B是可訪問的。此外,應(yīng)用程序312類型B可用于多個不同的處理單元,它可以位于多個不同的本地或遠(yuǎn)處的位置。因此,控制模塊310遵循常規(guī)的IP協(xié)議來定位硬件平臺上運(yùn)行的應(yīng)用程序312類型B的適當(dāng)情況,該硬件平臺能夠運(yùn)行應(yīng)用程序312類型B和可通過結(jié)構(gòu)300訪問。一旦控制模塊310識別IP網(wǎng)中可用應(yīng)用程序312類型B的地址或位置,控制模塊310通過通信信道326將SIP應(yīng)用程序INVITE發(fā)送到應(yīng)用程序312類型B的情況。
利用SIP應(yīng)用程序INVITE中的信息,例如與呼叫有關(guān)的媒體服務(wù)器308端口的地址,該呼叫正請求應(yīng)用程序312類型B,應(yīng)用程序312類型B接受通過通信信道326發(fā)送的SIP應(yīng)用程序INVITE和通過通信信道328建立媒體連接回到媒體服務(wù)器308的正確的端口。應(yīng)用程序312類型B現(xiàn)在可以在通信信道328上通過媒體服務(wù)器308(利用執(zhí)行必要協(xié)議轉(zhuǎn)換的媒體服務(wù)器308)發(fā)送和接收往返于主叫302的數(shù)據(jù),然后通過通信信道322到達(dá)電話板306和最終通過通信信道320到達(dá)主叫302。從媒體服務(wù)器308到控制模塊310的通信信道324和從控制模塊310到應(yīng)用程序312類型B的通信信道326保持激活以提供控制功能,正如下文更詳細(xì)說明的。
正如下文更詳細(xì)說明的,控制模塊310利用它當(dāng)時具有的最好信息選擇特定情況的應(yīng)用程序312類型B。到應(yīng)用程序312類型B實(shí)際接收SIP應(yīng)用程序INVITE時,它的情形也許已改變成不再可用。在這種情況下,應(yīng)用程序312類型B拒絕SIP應(yīng)用程序INVITE。如果第一識別的應(yīng)用程序312類型B否定或拒絕SIP應(yīng)用程序INVITE,控制模塊310通過將SIP應(yīng)用程序INVITE發(fā)送到下一個最好可用的應(yīng)用程序312類型B繼續(xù)查找可用的資源。如果控制模塊310不能識別應(yīng)用程序312類型B的可用情況,控制模塊310可以產(chǎn)生標(biāo)準(zhǔn)響應(yīng),通知用戶稍后呼叫或保持。
在與主叫交互作用期間的某一點(diǎn),應(yīng)用程序312類型B可以確定它需要一個可用的附屬業(yè)務(wù)程序314,例如業(yè)務(wù)程序X、Y和Z,它也可以位于與應(yīng)用程序312類型B同一個處理單元中或在單獨(dú)的處理單元中,不論在本地或遠(yuǎn)處位置。為了能夠訪問請求的業(yè)務(wù)程序314,應(yīng)用程序312類型B通過通信信道326發(fā)送SIP業(yè)務(wù)INVITE到控制模塊310,用于訪問一個可用的業(yè)務(wù)程序314,例如業(yè)務(wù)程序314類型Y。如同SIP應(yīng)用程序INVITE一樣,控制模塊310接收SIP業(yè)務(wù)INVITE和定位硬件平臺上運(yùn)行的業(yè)務(wù)314類型Y,該硬件平臺能夠運(yùn)行通過結(jié)構(gòu)300可訪問的業(yè)務(wù)程序314類型Y,它遵循常規(guī)的IP協(xié)議。一旦控制模塊310識別IP網(wǎng)中可用業(yè)務(wù)程序314類型Y的地址或位置,它通過通信信道330傳送SIP業(yè)務(wù)INVITE到業(yè)務(wù)程序314類型Y的情況。業(yè)務(wù)程序314類型Y可以位于本地或遠(yuǎn)方位置。
利用SIP業(yè)務(wù)INVITE中的信息,例如正呼叫業(yè)務(wù)程序314類型Y的應(yīng)用程序312類型B的地址和訪問應(yīng)用程序312類型B的媒體服務(wù)器308的端口地址,業(yè)務(wù)程序314類型Y接受通過通信信道330發(fā)送的SIP業(yè)務(wù)INVITE和通過通信信道332及通信信道334建立媒體連接,通信信道332回到應(yīng)用程序312類型B,通信信道334回到媒體服務(wù)器308上適當(dāng)?shù)亩丝?。?yīng)用程序312類型B現(xiàn)在可以與業(yè)務(wù)程序314類型Y通信,業(yè)務(wù)程序314類型Y可以與主叫302通信。例如,業(yè)務(wù)程序314類型Y可以是文本到語音業(yè)務(wù),應(yīng)用程序312類型B可以是話音應(yīng)用程序。在這個例子中,應(yīng)用程序312類型B可以通過通信信道332發(fā)送文本到業(yè)務(wù)程序314類型Y以轉(zhuǎn)換文本為語音。業(yè)務(wù)程序314類型Y可以處理請求和發(fā)送語音或轉(zhuǎn)換的音頻結(jié)果到主叫302,通過媒體服務(wù)器308在通信信道334上發(fā)送。
下面(圖11)說明在業(yè)務(wù)程序314類型Y和應(yīng)用程序312類型B之間建立對話。注意,業(yè)務(wù)程序和應(yīng)用程序之間的互連是示范性的,本發(fā)明的對話格式適用于建立任何媒體服務(wù)器308、控制模塊310、應(yīng)用程序312、和業(yè)務(wù)程序314之間互連的任何組合。
圖4表示根據(jù)本發(fā)明一個實(shí)施方式的網(wǎng)絡(luò)結(jié)構(gòu)400。圖4說明根據(jù)本發(fā)明通過標(biāo)準(zhǔn)互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)404將呼叫發(fā)送到位于服務(wù)器內(nèi)的應(yīng)用程序。在圖3中,利用標(biāo)準(zhǔn)PSTN信令協(xié)議(PRI-1SDN)和傳輸協(xié)議(它是脈沖編碼調(diào)制-PCM)通過常規(guī)的PSTN發(fā)出呼叫,標(biāo)準(zhǔn)PSTN信令協(xié)議和傳輸協(xié)議必須分別翻譯成SIP和實(shí)時傳輸協(xié)議(RTP)。媒體服務(wù)器308執(zhí)行這兩個轉(zhuǎn)換和代表在電話機(jī)302發(fā)出呼叫的主叫和控制模塊310、應(yīng)用程序312與業(yè)務(wù)程序314之間的中間人或接口,它們都利用SIP信令和RPT傳輸協(xié)議通信。但是,在圖4中,主叫利用SIP啟動的計算裝置402通過IP網(wǎng)404發(fā)出呼叫(或請求)。這個計算裝置402可以是計算機(jī),SIP啟動的電話機(jī)或其他SIP啟動的計算裝置。因此,裝置402已經(jīng)將SIP用于信令,RTP用于媒體傳送,因此呼叫不需要通過媒體服務(wù)器和其他接口發(fā)送以執(zhí)行信令轉(zhuǎn)換。在其他方面,圖4中呼叫的操作與圖3相同。注意,如果裝置402是能夠撥打IP電話而不是配置用于SIP,媒體服務(wù)器可用于將IP電話啟動裝置轉(zhuǎn)換成SIP信號。
但是為了清楚,結(jié)構(gòu)400的操作將完整地說明。結(jié)構(gòu)400包括控制模塊310、至少一個應(yīng)用程序312和至少一個業(yè)務(wù)程序314。在操作中,用戶從呼叫裝置402進(jìn)行呼叫,它可以是基于計算機(jī)的電話機(jī)或利用標(biāo)準(zhǔn)SIP信令協(xié)議的電話機(jī)或其他計算裝置。因?yàn)檠b置402產(chǎn)生SIP格式信號,媒體傳送已經(jīng)是RTF,對于協(xié)議和傳送翻譯呼叫不需要通過媒體服務(wù)器308發(fā)送。因此,呼叫裝置402將SIP應(yīng)用程序INVITE發(fā)送到公知的SIP地址,它與特定類型的應(yīng)用程序有關(guān)。呼叫通過IP網(wǎng)404發(fā)送,它包括連接呼叫裝置402與控制模塊310的通信信道422。當(dāng)然,為了方便和容易參考起見示出通信信道422,因?yàn)楸绢I(lǐng)域技術(shù)人員閱讀本說明書可以認(rèn)識到標(biāo)準(zhǔn)互聯(lián)網(wǎng)協(xié)議使用分組傳輸,來自呼叫裝置402的數(shù)據(jù)通過多條路由或信道到達(dá)控制模塊310的IP連接。控制模塊310發(fā)送該呼叫,如圖3所示控制模塊310檢驗(yàn)通過通信信道422接收的SIP應(yīng)用程序INVITE和確定哪個應(yīng)用程序312相應(yīng)于SIP應(yīng)用程序INVITE的SIP地址,例如在這種情況下,該呼叫預(yù)定給應(yīng)用程序312類型B。
控制模塊310定位硬件平臺上運(yùn)行的適當(dāng)情況的應(yīng)用程序312類型B,該硬件平臺能夠運(yùn)行通過結(jié)構(gòu)400可訪問的應(yīng)用程序312類型B,它遵循常規(guī)的IP協(xié)議。一旦控制模塊310識別IP網(wǎng)中可用應(yīng)用程序312類型B的地址或位置,不論在本地或在遠(yuǎn)方,控制模塊310通過通信信道326將SIP應(yīng)用程序INVITE發(fā)送到應(yīng)用程序312類型B的情況。
利用SIP應(yīng)用程序INVITE中的信息,例如呼叫裝置402的URL地址,它正呼叫使用應(yīng)用程序312類型B,應(yīng)用程序312類型B接受通過通信信道326發(fā)送的SIP應(yīng)用程序INVITE,通過通信信道426建立媒體連接回到呼叫裝置402(能夠撥打IP的裝置之間的通信典型地也利用可以通過多個不同路徑發(fā)送的分組傳輸)。應(yīng)用程序312類型B現(xiàn)在可以通過通信信道426發(fā)送和接收往返于主叫402的數(shù)據(jù)。從呼叫裝置402到控制模塊310的通信信道422和從控制模塊310到應(yīng)用程序312類型B的通信信道326保持激活以提供控制功能,正如下文所更詳細(xì)說明的。
正如在圖3中,控制模塊310利用它當(dāng)時具有的最好信息選擇特定情況的應(yīng)用程序312類型B。(此選擇在下文結(jié)合圖10、12和13詳細(xì)描述)。到應(yīng)用程序312類型B接收SIP應(yīng)用程序INVITE時,它的情形也許已變成不再可用。在這種情況下,它拒絕SIP應(yīng)用程序INVITE。如果第一識別的應(yīng)用程序312類型B否定或拒絕SIP應(yīng)用程序INVITE,控制模塊310通過將SIP應(yīng)用程序INVITE發(fā)送到下一個最好可用的應(yīng)用程序312類型B繼續(xù)查找可用的資源。如果沒有應(yīng)用程序312類型B可用,可以產(chǎn)生標(biāo)準(zhǔn)響應(yīng),通知用戶稍后呼叫或保持。
在與主叫402交互作用期間的某點(diǎn),應(yīng)用程序312類型B可以確定它需要一個可用的附屬業(yè)務(wù)程序314,例如業(yè)務(wù)程序X、Y和Z。如上結(jié)合圖3所述的,應(yīng)用程序312類別B訪問附屬業(yè)務(wù)程序;但是,當(dāng)業(yè)務(wù)程序314接受SIP業(yè)務(wù)INVITE,業(yè)務(wù)程序314將利用呼叫裝置402的URL地址以便利用通信路徑432直接連接到呼叫裝置402,而不是通過中間人,例如媒體服務(wù)器308發(fā)送。因此,應(yīng)用程序312類型B可以與業(yè)務(wù)程序314類型Y通信,業(yè)務(wù)程序314類型Y可以與呼叫裝置402通信。例如,業(yè)務(wù)程序314類型Y可以是文本到語音業(yè)務(wù),應(yīng)用程序312類型B可以是話音應(yīng)用程序。在這個例子中,應(yīng)用程序312類型B可以通過通信信道430發(fā)送文本到業(yè)務(wù)程序314類型Y以轉(zhuǎn)換文本為語音。業(yè)務(wù)程序314類型Y可以通過432發(fā)送語音或轉(zhuǎn)換的音頻結(jié)果給主叫402。
圖5和圖6表示根據(jù)本發(fā)明的一種實(shí)施方式的媒體服務(wù)器308的內(nèi)部結(jié)構(gòu)500。如上所述,媒體服務(wù)器308的一個功能是執(zhí)行協(xié)議轉(zhuǎn)換。因此媒體服務(wù)器308具有脈沖編碼調(diào)制(PCM)到實(shí)時傳輸協(xié)議(RTF)轉(zhuǎn)換部分308A和PRI-ISDN到SIP轉(zhuǎn)換部分308B。參照圖6,這些轉(zhuǎn)換將進(jìn)一步詳細(xì)說明。
同樣如圖6所示,PCM到RTP轉(zhuǎn)換部分308A包括端點(diǎn)管理器504和至少一個翻譯處理器506,但如圖6所示,媒體服務(wù)器308中的一個翻譯處理器最好存在用于電話板306的每個端口,其中電話板306的每個端口相應(yīng)于電話線。因此,支持24個端口電話板306的媒體服務(wù)器308具有翻譯處理器5061至50624。每個翻譯處理器506進(jìn)一步包括G.711發(fā)射機(jī)510和G.711接收機(jī)508。利用G.711標(biāo)準(zhǔn)是示范性的,同樣可以使用其他的標(biāo)準(zhǔn)。媒體服務(wù)器308也包括板控制器502。板控制器502表示為與媒體服務(wù)器308獨(dú)立的實(shí)體;但是,由于設(shè)計選擇的原因它可以位于媒體服務(wù)器308內(nèi)部。注意雖然翻譯處理器506表示為組件,最好根據(jù)需要利用軟件開發(fā)處理器。
正如圖6中更好地所示的,PRI-ISDN到SIP轉(zhuǎn)換部分308B包括板呼叫控制事件處理器512、SIP管理器514、SIP用戶代理516和PRI-ISDN到SIP翻譯器518。
圖7說明表示呼叫建立過程的流程圖700,“媒體服務(wù)器中的呼叫建立”。當(dāng)電話板306接收呼叫時,它傳送呼叫信令到板控制器(步驟702)。正如本領(lǐng)域普通技術(shù)人員閱讀本說明書可以認(rèn)識到,板控制器502的實(shí)質(zhì)隨電話板306的硬件變化。對于目前的板的許多情況下,它將是C動態(tài)鏈接庫,但這只是一個例子。
板控制器502接收呼叫,將事件發(fā)送到板呼叫控制事件處理器512(步驟704),例如表示在電話線1上有呼叫。板呼叫控制事件處理器512發(fā)信號到SIP管理器514(步驟706),SIP管理器514負(fù)責(zé)協(xié)調(diào)呼叫建立、呼叫拆卸和其他方面的呼叫控制。SIP管理器514要求端點(diǎn)管理器創(chuàng)建G.711接收機(jī)508(步驟708)。
從SIP管理器514接收請求時,終點(diǎn)管理504創(chuàng)建翻譯處理器5061(步驟710),翻譯處理器5061創(chuàng)建G.711接收機(jī)508,它位于翻譯處理器5061內(nèi)部(步驟712)。翻譯處理器5061創(chuàng)建G.711接收機(jī)508(步驟712),但是直到SIP信令正確建立和翻譯處理器5061本身開始,翻譯處理器5061才啟動G.711接收機(jī)508。端點(diǎn)管理器504創(chuàng)建翻譯處理器506(步驟710),翻譯處理器506利用常規(guī)的方法創(chuàng)建G.711接收機(jī)508。G.711接收機(jī)508從應(yīng)用程序312“接收”數(shù)據(jù),將它發(fā)送到主叫302,這稱為輸出操作。同樣,在此尚未創(chuàng)建的G.711發(fā)射機(jī)510(參見下文)將接收來自主叫302的數(shù)據(jù)并“傳送”它到應(yīng)用程序312,這稱為輸入操作。
作為創(chuàng)建G.711接收機(jī)508的一部分,但在它啟動之前,G.711接收機(jī)508開放媒體服務(wù)器308中RTP和RTCP的端口。這些是在建立輸出操作的連接時應(yīng)用程序312使用的端口,即用于發(fā)送數(shù)據(jù)到主叫。這些端口動態(tài)分配給每個呼叫。當(dāng)任何平臺正在建立或分配端口時,最好這些端口從可用端口庫中得到,但是作為設(shè)計決策它們可以重新創(chuàng)建。
在G.711接收機(jī)508創(chuàng)建以后,建立SIP信令(步驟716),正如參照圖8的流程圖800詳細(xì)描述的。
在SIP信令建立以后,如下面圖8的流程圖800所述的,SIP管理器514要求端點(diǎn)管理器啟動翻譯處理器5061(步驟716)。翻譯處理器5061首先啟動G.711接收機(jī)508(步驟718),它的端口現(xiàn)在連接到應(yīng)用程序312。G.711接收機(jī)508開始偵聽RTP端口從應(yīng)用程序312到達(dá)呼叫裝置302的數(shù)據(jù)分組。
然后翻譯處理器5061創(chuàng)建G.711發(fā)射機(jī)510(步驟720)。G.711發(fā)射機(jī)510從主叫302發(fā)送數(shù)據(jù)到應(yīng)用程序312。在建立SIP信令的最終SIP消息(正如下文圖8所說明的)中,應(yīng)用程序312指示它將從主叫接收數(shù)據(jù)的端口。G.711發(fā)射機(jī)510建立它的端口以發(fā)送數(shù)據(jù)到應(yīng)用程序312已建立用于從主叫302接收數(shù)據(jù)的端口(步驟712),正如應(yīng)用程序312在SIP消息中所示。
然后翻譯處理器5061啟動G.711發(fā)射機(jī)510(也是步驟720),等待需要從主叫302發(fā)送到應(yīng)用程序312的數(shù)據(jù)。在啟動G.711接收機(jī)508和G.711發(fā)射機(jī)510以后,翻譯處理器506啟動輸出操作(步驟722)和輸入操作(步驟724),如流程圖900A和900B所示。
流程圖800,圖8描述建立呼叫的SIP信令。這遵循建立SIP信令的標(biāo)準(zhǔn)過程。作為第一步,對于呼叫裝置302正呼叫的應(yīng)用程序312,媒體服務(wù)器308利用SIP用戶代理516向控制模塊310的SIP用戶代理520發(fā)送SIP應(yīng)用程序INVITE(步驟802)。媒體服務(wù)器308在該SIP應(yīng)用程序INVITE中包括由G.711接收機(jī)508打開的RTP/RTCP端口的IP地址和端口號,用于將應(yīng)用程序312接收的數(shù)據(jù)發(fā)送到主叫302(步驟802)。這將使應(yīng)用程序312能夠建立它發(fā)送媒體數(shù)據(jù)到主叫302的連接。
控制模塊310的SIP用戶代理520接收SIP應(yīng)用程序INVITE(步驟804),控制模塊310識別呼叫裝置302正呼叫的適當(dāng)情況的應(yīng)用程序312(步驟806),例如如圖3和4所示的應(yīng)用程序312類型B??刂颇K310利用SIP用戶代理520傳送SIP應(yīng)用程序INVITE到希望應(yīng)用程序312的識別的情況(步驟808)。容納應(yīng)用程序112類型B的情況的硬件盒的SIP用戶代理522接收SIP應(yīng)用程序INVITE(步驟810),確定它是否可以接受呼叫(步驟812)。(注意在圖6中,應(yīng)用程序312類型A、應(yīng)用程序312類型B和應(yīng)用程序312類型C描述成它們都運(yùn)行在單獨(dú)的硬件盒上,每個盒具有它自己的SIP用戶代理522(SUA)。實(shí)際上,在同一硬件盒上容納的任何應(yīng)用程序312將利用相同的SIP用戶代理522。)為了確定它是否可以接受SIP應(yīng)用程序INVITE,容納應(yīng)用程序312的硬件盒的SIP用戶代理522檢驗(yàn)有可用情況的希望應(yīng)用程序312和有適當(dāng)?shù)囊唤M可用端口與媒體服務(wù)器308通信。
如果呼叫不能接受,硬件盒的SIP用戶代理522拒絕SIP應(yīng)用程序INVITE(步驟812的“否”分支),控制模塊310的SIP用戶代理520再次嘗試識別呼叫裝置302正呼叫的下一個最好情況的應(yīng)用程序312(循環(huán)返回到步驟806)。如果呼叫可以接受(步驟812的’是“分支”),硬件盒的SIP用戶代理522與適當(dāng)?shù)膬?nèi)部模塊(未示出)查閱,建立應(yīng)用程序312的端口,發(fā)送數(shù)據(jù)到主叫302(步驟814)。發(fā)送數(shù)據(jù)到主叫的端口通過建立這些端口具體連接到作為SIP應(yīng)用程序INVITE的一部分的發(fā)送的端口建立(步驟802),也就是說,連接到G.711接收機(jī)508從應(yīng)用程序312接收數(shù)據(jù)和發(fā)送到呼叫裝置302創(chuàng)建的端口(步驟712)。
硬件盒的SIP用戶代理522也與適當(dāng)?shù)膬?nèi)部模塊(未示出)查閱,以建立應(yīng)用程序312從主叫302接收數(shù)據(jù)的端口(步驟816)。
一旦應(yīng)用程序312完成所有必要的建立,與選定應(yīng)用程序312有關(guān)的硬件盒的SIP用戶代理522發(fā)送200 OK消息到控制模塊310的SIP用戶代理520(步驟818),SIP用戶代理520傳送接受到媒體服務(wù)器308的SIP用戶代理516(步驟820)。(SIP200 OK消息是與SIP標(biāo)準(zhǔn)有關(guān)的常規(guī)的確認(rèn)信號,但本領(lǐng)域技術(shù)人員認(rèn)識到其他協(xié)議的實(shí)用性和它們的查閱和握手策略。)來自應(yīng)用程序312的200 OK消息包括媒體端口的IP/端口信息,應(yīng)用程序312已建立用于該媒體端口從呼叫裝置302接收數(shù)據(jù)(步驟816)。這告訴媒體服務(wù)器308上的翻譯處理器5061與應(yīng)用程序312有關(guān)的那個端口將從呼叫裝置302接收數(shù)據(jù)。翻譯處理器5061創(chuàng)建將利用這個端口信息的G.711發(fā)射機(jī)510G.711發(fā)射機(jī)510建立它的端口以便連接到應(yīng)用程序312已經(jīng)建立從呼叫裝置302接收數(shù)據(jù)的端口(步驟822和步驟720)。
輸出操作從應(yīng)用程序312在RTP連接上通過G.711接收機(jī)508發(fā)送數(shù)據(jù)到呼叫裝置302,正如以上的討論。輸出操作的本質(zhì)將根據(jù)安裝在電話板306中的硬件和板控制器502而變化,但實(shí)質(zhì)上涉及從媒體服務(wù)器308上的G.711接收機(jī)508的RTP端口讀出數(shù)據(jù)和寫入電話板306。
典型地和最好翻譯處理器506呼叫板控制器502以啟動輸出操作。對于某些電流板,此過程中的一個步驟將緩沖G.711接收機(jī)508和電話板306之間的數(shù)據(jù)。雖然這隨硬件板變化,一種方式是使電話板306讀出數(shù)據(jù)的緩沖器和將緩沖器讀出的數(shù)據(jù)發(fā)送到呼叫裝置302。
圖9A的流程圖900A表示緩沖某些電流板的輸出過程的一種示范方法。當(dāng)電話板306需要新的緩存器(步驟902)時,它請求端點(diǎn)管理器504(步驟904),它從翻譯處理器5061請求下一部分的數(shù)據(jù)(步驟906)。翻譯處理器5061從連接到應(yīng)用程序312的G.711接收機(jī)508的RTP端口讀出得到數(shù)據(jù)(步驟908)。此數(shù)據(jù)適當(dāng)?shù)卮虬魉偷诫娫挵?06(步驟910)。
翻譯處理器5061還啟動輸入操作(流程圖700的步驟711)。輸入操作通過上面對G.711發(fā)射機(jī)510所討論的RTP連接從呼叫裝置30發(fā)送數(shù)據(jù)到應(yīng)用程序312。該流程與輸出操作過程互逆并且由流程圖900B,圖9B描述,但不會說明。
服務(wù)器(根據(jù)本發(fā)明一個實(shí)施方式創(chuàng)建)與公共交換電話網(wǎng)(PSTN)304之間操作需要兩個協(xié)議翻譯PRI-ISDN到SIf和PCM到RTP。
參見圖6,從PRI-ISDN到SIP的轉(zhuǎn)換最好從電話板306分析ISDN數(shù)據(jù)和發(fā)送標(biāo)題信息段到SIP管理器514開始。這些數(shù)據(jù)包括主叫的電話號碼、被叫的電話號碼、實(shí)際電話線的號碼(例如,T-1中24線的號碼6)和事件等。事件包括“新的呼叫”、“用戶掛斷呼叫”和表示呼叫狀態(tài)改變的其他事件。
SIP管理器514將此信息用于各種目的。例如,對于新的呼叫,它要求端點(diǎn)管理器504創(chuàng)建G.711接收機(jī)508,告訴端點(diǎn)管理器504呼叫在什么電話線上(例如在T-1中繼線)。當(dāng)發(fā)送SIP消息時SIP管理器514也使用這個信息。根據(jù)該事件,SIP管理器504要求PRI-ISDN到SIP翻譯器518創(chuàng)建適合于事件的SIP消息。例如“新的呼叫”事件導(dǎo)致SIP INVITE消息,同時“用戶掛斷呼叫”事件導(dǎo)致SIP BYE消息。
典型的SIP消息具有各種字段,正如在標(biāo)準(zhǔn)文件RFC 2543所述的,由互聯(lián)網(wǎng)工程任務(wù)組內(nèi)的互聯(lián)網(wǎng)工程指導(dǎo)小組管理,這里引入它作為參考。當(dāng)PRI-ISDN到SIP翻譯器518創(chuàng)建新的消息時,它典型地包括這樣的字段,用于識別(1)預(yù)定接收方的SIP地址、(2)要傳送的媒體類型、(3)發(fā)送方接收媒體類型的端口和(4)呼叫id。從標(biāo)準(zhǔn)PSTN電話號碼翻譯到SIP地址通常是直接的“sip”是預(yù)先待定給該電話號碼。作為假想的例子,在Acme公司的電話號碼202-555-4567將翻譯成sip2025554567@acme.com。要傳送的媒體類型通常是發(fā)送方已知的和提供的。要接收數(shù)據(jù)的端口的例子在上面給出G.711接收機(jī)分配這些端口。最后,呼叫id是用于唯一識別每個呼叫的內(nèi)部結(jié)構(gòu)。對于通過PSTN打來的呼叫,呼叫id直接映射到由電話板管理的電話線。
從SIP回到ISDN的翻譯是互逆的。SIP管理器514將發(fā)送方和接收方的SIP地址轉(zhuǎn)換成標(biāo)準(zhǔn)電話號碼。SIP管理器將實(shí)際電話線的呼叫id映射到電話板306。SIP管理器514利用SIP消息類型確定電話板306的適當(dāng)事件,例如SIP BYE消息將導(dǎo)致電話板306的“掛斷”事件。
從PCM轉(zhuǎn)換到RTP發(fā)生如下對于輸入的媒體流,電話板306接收包含復(fù)用成多個信道的G.711數(shù)據(jù)的PCM數(shù)據(jù)。最好電話板306從描述該復(fù)用的格式化中分離出與特定電話線有關(guān)的G.711數(shù)據(jù)。電話板306傳送數(shù)據(jù)到端點(diǎn)管理器504,端點(diǎn)管理器將G.711數(shù)據(jù)打包成利用RTP傳送的分組。然后打包的數(shù)據(jù)通過G.711發(fā)射機(jī)510發(fā)送到應(yīng)用程序312。
對于輸出的媒體流,該過程是互逆的。端點(diǎn)管理器504移出RTP結(jié)構(gòu)和發(fā)送G.711數(shù)據(jù)到打包該數(shù)據(jù)通過標(biāo)準(zhǔn)電話線復(fù)用的電話板。
圖10表示根據(jù)本發(fā)明一個實(shí)施方式的控制模塊310的內(nèi)部結(jié)構(gòu)1000。圖10在所有的方面與圖3相同,具有控制模塊310的擴(kuò)展圖。雖然使用SIP啟動的呼叫裝置402參照圖4表示結(jié)構(gòu)1000,但是控制模塊310操作大致相似,因此內(nèi)部結(jié)構(gòu)1000只使用標(biāo)準(zhǔn)電話機(jī)302相對于訪問應(yīng)用程序312進(jìn)行說明。
圖10包括與圖3所示的結(jié)構(gòu)300相同的組件主叫302、電話板306(提供PSTN 304和媒體服務(wù)器308之間的接口)、媒體服務(wù)器308、控制模塊310、應(yīng)用程序312和業(yè)務(wù)314??刂颇K310的擴(kuò)展圖描述它的子組件路由選擇管理器1002和位置業(yè)務(wù)1004與資源管理器1006之間的交互作用。換句話說,圖10說明根據(jù)本發(fā)明通過標(biāo)準(zhǔn)PSTN發(fā)送呼叫到位于服務(wù)器內(nèi)的應(yīng)用程序,細(xì)節(jié)集中在控制模塊310的內(nèi)部路由選擇功能。
在操作中,應(yīng)用程序312和業(yè)務(wù)程序314都由過程監(jiān)視系統(tǒng)1200(下面結(jié)合圖12和13更詳細(xì)說明)根據(jù)下面討論的常規(guī)系統(tǒng)配置規(guī)范啟動。在應(yīng)用程序312和業(yè)務(wù)程序314啟動以后,應(yīng)用程序312通過通信信道1024發(fā)送信號寄存位置業(yè)務(wù)1004,業(yè)務(wù)程序314通過通信信道1026發(fā)送信號寄存位置業(yè)務(wù)1004。最好,位置業(yè)務(wù)1004利用這些信號更新和維護(hù)包含查找格式表中的多個信息字段的數(shù)據(jù)庫。最好,位置業(yè)務(wù)1004中的兩個字段是應(yīng)用類型的字段和URL地址字段。因此,正如下面更詳細(xì)說明的,路由選擇管理器1002可以訪問位置業(yè)務(wù)1004確定應(yīng)用程序312和業(yè)務(wù)程序314的IP地址。
由于使用應(yīng)用程序312(例如應(yīng)用程序312類型A、B或C)和業(yè)務(wù)程序314(例如業(yè)務(wù)程序314類型X、Y或Z)的具體情況,活動信息傳送到過程監(jiān)視業(yè)務(wù)1200(結(jié)合圖12和13更詳細(xì)說明)。過程監(jiān)視業(yè)務(wù)1200將此信息用于多個目的。一個這樣的目的是將硬件和軟件利用信息可用于(經(jīng)資源管理器1006接口)路由選擇管理器1002,因此路由選擇管理器可以分配資源以優(yōu)化系統(tǒng)如何利用資源。
如圖10所示,當(dāng)主叫利用電話機(jī)302訪問應(yīng)用程序312時,PSTN 304通過電話板306將呼叫發(fā)送到媒體服務(wù)器308,正如結(jié)合圖5-9論述的媒體服務(wù)器308執(zhí)行協(xié)議翻譯,和傳送SIP應(yīng)用程序INVITE到控制模塊310??刂颇K310執(zhí)行協(xié)議處理(即,信號交換),路由選擇管理器1002接收SIP應(yīng)用程序INVITE請求。
注意,路由選擇管理器1002和位置業(yè)務(wù)1004在圖10中描述成控制模塊310的子組件,但實(shí)際上它們的關(guān)系是設(shè)計的問題,它們可以不同的方式在控制模塊310內(nèi)部或外部提供。同樣,資源管理器1006表示成在控制模塊310以外,但由于設(shè)計選擇的原因可以在控制模塊310內(nèi)部。
還要注意,路由選擇管理器作為單一的實(shí)體在圖10表示。事實(shí)上,路由選擇管理器1002規(guī)定應(yīng)用編程接口(API)可用于實(shí)現(xiàn)具有不同能力的不同類型的路由選擇管理器1002。這些路由選擇管理器可以采取多種形式。
一個類型的路由選擇管理器1002可以實(shí)現(xiàn)用于應(yīng)用程序312和業(yè)務(wù)程序314的資源分配的簡單的循環(huán)算法,類似于圖1現(xiàn)有技術(shù)系統(tǒng)的負(fù)載平衡。另一類型的路由選擇管理器可以使用路由選擇算法,專門用于類似于圖2的現(xiàn)有技術(shù)系統(tǒng)的語音應(yīng)用程序。這可以合并關(guān)于處理發(fā)言所需的語法、對該語法的不同語音識別服務(wù)器的處理能力和每個語音識別服務(wù)器的有效容量的信息。注意,利用圖2所述策略的路由選擇管理器1002只能夠發(fā)送業(yè)務(wù)程序314請求,不能夠發(fā)送應(yīng)用程序312請求,如同本發(fā)明。
可以利用路由選擇管理器API實(shí)現(xiàn)的另一類型路由選擇管理器1002可以利用圖12和13所述的過程監(jiān)視系統(tǒng)1200累積的信息,下文將更詳細(xì)說明。圖10說明與資源管理器1006交互作用的這類路由選擇管理器1002,資源管理器1006是過程管理系統(tǒng)1200收集信息的接口。但是,閱讀本發(fā)明的說明書后,本領(lǐng)域技術(shù)人員發(fā)現(xiàn)有可能創(chuàng)建許多不同的路由選擇算法,用于平衡應(yīng)用程序312和業(yè)務(wù)程序314。
在控制模塊310執(zhí)行協(xié)議處理以后,路由選擇管理器1002接收請求和確定例如主叫302請求應(yīng)用程序312類型B的情況。路由選擇管理器1002利用它的路由選擇算法和從下面說明的過程監(jiān)視系統(tǒng)1200產(chǎn)生的信息確定注冊到位置業(yè)務(wù)1004的什么情況的應(yīng)用程序312類型B,以便發(fā)送呼叫。一旦路由選擇管理器1002確定特定的應(yīng)用程序312類型B,路由選擇管理器1002利用包含在位置業(yè)務(wù)1004的IP地址信息將SIP應(yīng)用程序INVITE通過通信信道326發(fā)送到特定的應(yīng)用程序312類型B。如上所述,根據(jù)路由選擇管理器API開發(fā)的路由選擇管理器1002的不同版本利用不同的策略作出此確定。
通過通信鏈路1028查閱資源管理器1006,路由選擇管理器1002使用由過程監(jiān)視業(yè)務(wù)1200累積的詳細(xì)的硬件和軟件利用信息。在由路由選擇管理器1002查閱后,資源管理器1006打包用于監(jiān)視的應(yīng)用程序312類型B情況的硬件和軟件利用信息和發(fā)送該信息到路由選擇管理器1002。路由選擇管理器1002根據(jù)資源管理器1006發(fā)送的信息確定應(yīng)用程序312類型B的具體情況以傳送請求。最好利用硬件和軟件利用信息分配資源。特定情況的應(yīng)用程序312類型B例如是可用的,但是它可以駐留在硬件盒中,它被過度利用,因此具有最小的存儲器、CPU周期和其他硬件資源。第二情況的應(yīng)用程序312類型B是可用的,它可以駐留在硬件盒中,它只是輕微地利用。在這個例子中最好將請求發(fā)送到第二情況的應(yīng)用程序312類型B。當(dāng)路由選擇管理器1002確定適合于處理請求的具體情況的應(yīng)用程序312類型B,它通過鏈路1030咨詢位置業(yè)務(wù)1004以確定IP(互聯(lián)網(wǎng)協(xié)議)地址和具體應(yīng)用程序312類型B的端口號。一旦它具有IP地址和端口號,它返回地址和端口號到控制模塊310,控制模塊310傳送SIP應(yīng)用程序INVITE到識別的應(yīng)用程序312類型B。
當(dāng)一個應(yīng)用程序312請求訪問一個業(yè)務(wù)程序314時發(fā)生相似的處理。SIP業(yè)務(wù)INVITE沿通信信道326發(fā)送到控制模塊310,它處理協(xié)議翻譯,將請求發(fā)送到路由選擇管理器1002。路由選擇管理器1002建立請求的業(yè)務(wù)類型程序314,例如業(yè)務(wù)程序314類型Y。路由選擇管理器1002使用它的路由選擇算法以類似于與應(yīng)用程序312有關(guān)的上述過程的方式識別和發(fā)送SIP業(yè)務(wù)INVITE。
特別是,路由選擇管理器1002使用過程監(jiān)視業(yè)務(wù)1200累積的詳細(xì)的硬件和軟件利用信息。為了獲得硬件和軟件利用信息,路由選擇管理器1002通過通信鏈路1028查閱資源管理器1006識別具體情況的業(yè)務(wù)程序314類型Y,以傳送請求。查閱中,資源管理器1006將關(guān)于硬件和軟件利用信息的信息提供給路由選擇管理器1002,該信息涉及監(jiān)視情況的業(yè)務(wù)程序314類型Y,路由選擇管理器1002確定具體情況的業(yè)務(wù)程序314類型Y以傳送請求。
當(dāng)路由選擇管理器1002確定適合于處理請求的具體情況的業(yè)務(wù)程序314類型Y,路由選擇管理器1002通過鏈路1030查閱位置業(yè)務(wù)1004以找出特定業(yè)務(wù)程序314類型Y的IP(互聯(lián)網(wǎng)協(xié)議)地址。一旦路由選擇管理器1002具有IP地址,它返回控制模塊310,控制模塊310傳送SIP業(yè)務(wù)INVITE到這種情況的業(yè)務(wù)程序314類型Y。
本發(fā)明唯一的系統(tǒng)結(jié)構(gòu)(圖3、4和10所示)從大于或等于當(dāng)前實(shí)現(xiàn)的應(yīng)用程序312的數(shù)量允許更少的業(yè)務(wù)程序314給業(yè)務(wù)請求,特別是在語音識別領(lǐng)域。例如,業(yè)務(wù)程序314類型Y可以大致同時提供業(yè)務(wù)給多個應(yīng)用程序312類型B或不同類型的多個應(yīng)用程序312,例如提供業(yè)務(wù)給類型A和B。為了完成此特征,需要復(fù)用組件允許業(yè)務(wù)程序與多個應(yīng)用程序和呼叫裝置交互作用。
圖11表示一種可能的復(fù)用結(jié)構(gòu)1100,描述根據(jù)本發(fā)明一個實(shí)施方式的復(fù)用能力。最好,復(fù)用結(jié)構(gòu)1100在業(yè)務(wù)程序314中實(shí)現(xiàn),因此如上所述它們可以復(fù)用。結(jié)構(gòu)1100包括客戶1102和至少一個業(yè)務(wù)組件1124??蛻?102可以相應(yīng)于根據(jù)本發(fā)明一個實(shí)施方式的位于服務(wù)器內(nèi)的本地或遠(yuǎn)程應(yīng)用程序312或可以相應(yīng)于這種服務(wù)器以外的其他類型的本地或遠(yuǎn)程應(yīng)用程序。
業(yè)務(wù)組件1124相應(yīng)于圖3、4和10的業(yè)務(wù)程序314。業(yè)務(wù)組件1124包含SIP用戶代理1104、虛擬的端口管理器1106、進(jìn)程隊(duì)列管理器1112、業(yè)務(wù)平臺特定的API(應(yīng)用程序員接口)1120和業(yè)務(wù)平臺1122。業(yè)務(wù)平臺1122執(zhí)行實(shí)際的業(yè)務(wù),可以由任何適當(dāng)?shù)男旁刺峁?,包括位于通過互聯(lián)網(wǎng)訪問的系統(tǒng)的服務(wù)器。
就圖3而言,例如,圖11說明應(yīng)用程序312從業(yè)務(wù)程序314請求業(yè)務(wù)和實(shí)現(xiàn)該請求,二者都使用SIP協(xié)議和基于隊(duì)列的復(fù)用策略。該請求及其實(shí)現(xiàn)通常根據(jù)本發(fā)明在服務(wù)器背景下進(jìn)行??蛻?102可以是根據(jù)本發(fā)明駐留在服務(wù)器內(nèi)的應(yīng)用程序。但是,替代地,客戶1102可以是外部應(yīng)用程序,當(dāng)它請求業(yè)務(wù)時訪問業(yè)務(wù)組件1124駐留的服務(wù)器。
雖然每塊結(jié)構(gòu)1100表示成單獨(dú)的和不同的,各塊可以包含在一個處理單元中,例如單個服務(wù)器中,或者由于設(shè)計選擇的原因在許多處理單元中。另外,各塊可以位于一個中心地點(diǎn)或遍布在多個地方。典型的用途是使客戶處于一組硬件的一組位置,同時業(yè)務(wù)處于其他硬件上的其他位置。在操作中,業(yè)務(wù)組件1124具有多個端口(沒有具體地示出),每個端口按需要連接到多個客戶1102之一。業(yè)務(wù)組件1124同樣具有連接到業(yè)務(wù)平臺1122的單獨(dú)數(shù)目的通信信道。
業(yè)務(wù)組件1124在啟動時配置成管理客戶1102交互作用的一組端口和具有業(yè)務(wù)平臺1122的單獨(dú)一組通信信道。最好,業(yè)務(wù)組件1124具有比業(yè)務(wù)平臺1122的通信信道更多的客戶1102的端口。業(yè)務(wù)平臺1122利用單個通信信道每次處理一個請求。因此,業(yè)務(wù)組件1124排隊(duì)請求或從客戶1102輸入,直到業(yè)務(wù)平臺1122的通信信道變成可用。業(yè)務(wù)組件1124將客戶1102的輸入排隊(duì)在位于進(jìn)程隊(duì)列管理器1112中的超高速存儲器1114輸入隊(duì)列中。最好,存儲器是FIF0風(fēng)格的排隊(duì)系統(tǒng),但也可以是其他風(fēng)格,例如FIL0等等。類似地,業(yè)務(wù)平臺1122的輸出在送回端口管理器1106并發(fā)送到請求客戶1102之前排隊(duì)在位于進(jìn)程隊(duì)列管理器1112的超高速緩存1116輸出隊(duì)列中。
從具有業(yè)務(wù)平臺1122的通信信道分離具有多個客戶1102的通信端口允許業(yè)務(wù)組件1124處理超過業(yè)務(wù)平臺1122容量的多個輸入請求,即,客戶1102可以同時請求業(yè)務(wù)比業(yè)務(wù)平臺1122具有可用信道更多。大于業(yè)務(wù)平臺1122的通信信道數(shù)目的超過數(shù)量的客戶1102請求進(jìn)行排隊(duì),直到業(yè)務(wù)平臺1122完成一請求,從而釋放一個通信信道接受一個排隊(duì)的請求。
在操作中,多個客戶1102的一個客戶請求特定的業(yè)務(wù)程序,該程序駐留在業(yè)務(wù)平臺1122中。客戶1102通過組成和發(fā)送SIP業(yè)務(wù)INVITE到控制模塊310來發(fā)出請求。在適當(dāng)?shù)倪x擇路由以后(正如圖3、4和10所討論的),請求通過通信信道1140傳送到位于業(yè)務(wù)組件1124中的SIP用戶代理1104。本領(lǐng)域技術(shù)人員可以認(rèn)識到,SIP用戶代理1104的任務(wù)是協(xié)商請求客戶1102和業(yè)務(wù)組件1124之間的通信。為此,它首先確定是否有可用的端口過程1108。如果沒有,它拒絕SIP業(yè)務(wù)INVITE。
如果有可用的端口過程1108,SIP用戶代理1104通過通信信道1142發(fā)送消息到端口過程1108,告訴它建立回到請求客戶1102的通信信道1146和1144,客戶1102提供地址信息給SIP業(yè)務(wù)INVITE中的SIP用戶代理1104。在許多而不是所有的情況下,對于圖11所述的端口過程1108,為客戶1102和端口過程1108之間的每個連接建立兩組通信信道。這些通信信道包括用于媒體類型1(MT1)的信道1146和用于媒體類型2(MT2)的信道1144。典型地但不是必要地,這些通信信道之一用于從客戶1102輸入到業(yè)務(wù)組件1124。這在請求客戶1102和端口過程1108之間建立全面的雙向通信和媒體流。最好,媒體類型相應(yīng)于客戶1102請求的業(yè)務(wù)和業(yè)務(wù)平臺1122提供的業(yè)務(wù),但是如果媒體類型不相應(yīng)可以提供接口來適當(dāng)?shù)刈儞Q媒體類型。
在其他實(shí)施方式中,任意數(shù)目的通信信道可以在請求客戶1102和端口過程1108之間建立。兩組通信信道用于下面的例子中,如端口過程1108a所述根據(jù)本發(fā)明請求客戶1102是由主叫撥叫服務(wù)器啟動的與語音有關(guān)的應(yīng)用程序。業(yè)務(wù)平臺1122提供文本到語音業(yè)務(wù)(TSS)。通信信道1144a利用傳輸控制協(xié)議(TCP)發(fā)送文本到業(yè)務(wù)組件,同時另一組通信信道1246a利用RTF和實(shí)時傳輸控制協(xié)議(RTCP)將音頻送回請求客戶1102。
當(dāng)業(yè)務(wù)是語音識別服務(wù)器時兩組通信信道也是有用的。在這種情況下,沒有在圖11中說明,這對RTP/RTCP通信信道用于話音輸入業(yè)務(wù)組件1124,而TCP通信信道用于回到請求客戶1102的文本輸出。
還注意,用于給定端口過程的不同組的通信信道不必是必須連接請求客戶1102。在這個例子中,輸入的文本可能來自請求客戶1102(與語音有關(guān)的應(yīng)用程序),但是音頻輸出(從文本到語音產(chǎn)生業(yè)務(wù)1122)可能直接發(fā)送回到主叫(圖11未示出,但在圖3、4和10中表示成主叫302)。
一旦已經(jīng)建立通信信道,端口過程1108可能需要附加的輸入執(zhí)行該業(yè)務(wù)。如果是這樣的話,它等待直到通過輸入通信信道1144輸入。在業(yè)務(wù)平臺1122提供文本到語音業(yè)務(wù)的例子中,輸入是ASCII文本,它只在正確建立通信端口以后發(fā)送。在業(yè)務(wù)組件1124提供語音識別業(yè)務(wù)的例子中,輸入是音頻流,它只在正確建立通信端口以后發(fā)送。在其他例子例子中,輸入和輸出媒體類型將改變。
當(dāng)端口過程1108具有它需要請求的所有事物時,它以業(yè)務(wù)平臺1122實(shí)現(xiàn)該請求的足夠的信息創(chuàng)建請求目標(biāo)(未示出)和例如將結(jié)果發(fā)送回到適當(dāng)?shù)亩丝谶^程1108,以便發(fā)送到請求客戶1102或呼叫裝置302。
端口過程1108將請求目標(biāo)放入輸入隊(duì)列1114。工作線程(WorkerThread)(WT)1118負(fù)責(zé)與業(yè)務(wù)平臺1122的后端協(xié)調(diào)。當(dāng)工作線程1118空閑時,它檢驗(yàn)待處理請求目標(biāo)的輸入隊(duì)列1114。如果WT 1118發(fā)現(xiàn)請求目標(biāo),WT 1118從輸入隊(duì)列1114取出目標(biāo)并利用內(nèi)部信息將請求傳送到業(yè)務(wù)平臺1122。
在根據(jù)本發(fā)明的服務(wù)器的結(jié)構(gòu)內(nèi),業(yè)務(wù)平臺1122可以提供任何業(yè)務(wù)類型。對于語音應(yīng)用程序,這可以是語音識別業(yè)務(wù)、文本到語音業(yè)務(wù)、話音可擴(kuò)展標(biāo)記語言(VXML)腳本服務(wù)器、話音提示業(yè)務(wù)或其他業(yè)務(wù)。對于其他類型的應(yīng)用程序有可比較的一列業(yè)務(wù)。
復(fù)用結(jié)構(gòu)1100是通用的,幾乎任何類型的業(yè)務(wù)程序都可以使用結(jié)構(gòu)1100。因此,復(fù)用結(jié)構(gòu)1100的一個優(yōu)選實(shí)施方式包含業(yè)務(wù)平臺特定的API1120子組件。業(yè)務(wù)平臺特定的API 1120提供一般復(fù)用結(jié)構(gòu)1100的裝置,以便與任何特定業(yè)務(wù)平臺1122交互作用。業(yè)務(wù)平臺特定的API 1120執(zhí)行任何數(shù)據(jù)變換,通信或要求與業(yè)務(wù)平臺1122交互作用的其他操作。
WT 1118利用業(yè)務(wù)平臺特定的API 1120請求業(yè)務(wù)平臺1122。當(dāng)業(yè)務(wù)平臺1122完成請求處理時,它返回結(jié)果給WT 1118。雖然WT 1118可以使結(jié)果回到起始端口過程1108,WT 1118也可能適當(dāng)?shù)卮虬Y(jié)果和將結(jié)果放入輸出隊(duì)列1114。但是,輸出隊(duì)列不是必要的。在輸出隊(duì)列1116返回線程睡眠,當(dāng)某物放進(jìn)輸出隊(duì)列1116時喚醒,并從輸出隊(duì)列1116刪除結(jié)果和將結(jié)果給予初始端口過程1108。典型地不要求使用輸出隊(duì)列1116,因?yàn)檩斎胪ǔ1容敵龈?,?dǎo)致直接將輸出結(jié)果傳送到初始請求的端口過程1108的能力。
初始端口過程1108通過通信信道1146發(fā)送結(jié)果到輸出目的地。輸出目的地可以是圖11所示的請求客戶1102,或在電話背景中它可以是呼叫裝置302,或在IP背景中它可以是能支持SIP的裝置402,它首先聯(lián)系請求客戶1102。
圖12表示過程監(jiān)視業(yè)務(wù)1200。過程監(jiān)視業(yè)務(wù)1200是分布式功能,根據(jù)本發(fā)明它協(xié)調(diào)可用性和整個服務(wù)器資源的操作。過程監(jiān)視業(yè)務(wù)1200具有兩個主要組件,過程監(jiān)視器1202和最好控制其他組件的盒監(jiān)視器1204,過程監(jiān)視器1202駐留在控制模塊310中的相同的硬件盒或在緊鄰控制模塊310的硬件盒中,盒監(jiān)視器1204駐留在服務(wù)器的每個硬件盒。
過程監(jiān)視業(yè)務(wù)1200可以監(jiān)視在多個服務(wù)器上運(yùn)行的多個軟件進(jìn)程。它通過提供靜態(tài)和動態(tài)配置在哪個硬件盒運(yùn)行什么軟件進(jìn)程的裝置來協(xié)調(diào)資源的可用性。根據(jù)初始化信息,過程監(jiān)視器1202可以告訴特定硬件盒上的盒監(jiān)視器1204加載和啟動特定的軟件進(jìn)程。
此外,雖然監(jiān)視如何使用軟件進(jìn)程和服務(wù)器需要多少處理能力,如果有過量需求,過程監(jiān)視器1202可以命令盒監(jiān)視器1204加載和啟動新過程,或如果有過剩容量,關(guān)閉過程。開始和停止使用系統(tǒng)配置文件(未示出,但通常是本領(lǐng)域公知的)。關(guān)閉特定過程的能力可能是有用的,例如當(dāng)比當(dāng)前正使用更多情況的特定資源A已經(jīng)在給定的硬件盒上啟動,比當(dāng)前需要更少情況的不同資源B已經(jīng)在同一硬件盒上啟動。在這種情況下,過程監(jiān)視器1202將命令硬件盒的盒監(jiān)視器1204關(guān)閉某些情況的資源A和啟動某些附加情況的資源B。
過程監(jiān)視業(yè)務(wù)1200還通過監(jiān)視進(jìn)程狀態(tài)和提供過失敗(fail over)能力提高系統(tǒng)可靠性。當(dāng)過程失敗或操作不正確時,過程監(jiān)視業(yè)務(wù)120可以重新啟動它們。如下所述,它的分級群聚結(jié)構(gòu)使系統(tǒng)能夠與非常多的硬件和軟件資源相稱。
過程監(jiān)視業(yè)務(wù)1200自己監(jiān)視硬件盒的操作,因此啟動硬件管理。
過程監(jiān)視業(yè)務(wù)1200提供更新維護(hù)軟件的能力。如果特定的軟件包需要更新,例如過程監(jiān)視器1202可以命令所有的盒監(jiān)視器1204運(yùn)行這些情況的軟件包以關(guān)閉這些情況。這種關(guān)閉可以是直接的,或者通過使過程完成它們的當(dāng)前任務(wù)而不是任何新任務(wù)開始,它可能是適度的(graceful)。一旦所有情況的軟件進(jìn)程已經(jīng)在特定盒終止,添加版本的軟件包可以裝載在盒上,新版本的情況可以開始。
同樣,過程監(jiān)視業(yè)務(wù)1200提供更新和維護(hù)硬件的能力。特定的硬件盒可能需要停止使用,例如由更有能力的硬件盒替代或?yàn)榱耸勾鎯ζ骰蚱渌M件更新或補(bǔ)償。過程監(jiān)視器1202可以命令該硬件盒的盒監(jiān)視器1204立即或適度地(即,完成正在進(jìn)行的過程)關(guān)閉硬件盒上所有的軟件進(jìn)程。一旦硬件盒上所有的軟件進(jìn)程已經(jīng)關(guān)閉,硬件盒可以停止業(yè)務(wù),用于更新或修理。
過程監(jiān)視業(yè)務(wù)1200最好包括用于過失敗的備用過程監(jiān)視器,這導(dǎo)致非??煽康倪^程管理系統(tǒng)。每個過程監(jiān)視器1202具有相關(guān)的備用過程監(jiān)視器1208。另外,主過程監(jiān)視器1206還具有相關(guān)的備用過程監(jiān)視器1308。
過程監(jiān)視業(yè)務(wù)1200是分級結(jié)構(gòu)為群集。圖13中所示的每個群集如群集1301i至1301n最好包含監(jiān)視多個盒監(jiān)視器1204的至少一個過程監(jiān)視器1202。最好,每個過程監(jiān)視器1202和每個盒監(jiān)視器1204是單獨(dú)的處理單元。但是,這些過程監(jiān)視器1202和盒監(jiān)視器1204也可以在單獨(dú)的服務(wù)器上或合并成單個服務(wù)器。過程監(jiān)視器1202和盒監(jiān)視器1204提供監(jiān)視和訪問所管理資源的裝置。
管理的資源,圖12中表示為管理資源1、2…N和圖13中的盒1過程1,…盒1過程N(yùn)等等是軟件進(jìn)程,可以提供(1)用于監(jiān)視目的的狀態(tài)信息和(2)可引導(dǎo)管理資源執(zhí)行的動作。例如,硬件盒1(圖12)的監(jiān)視器1204能訪問硬件盒1(圖12)中的管理資源1、2、…N。根據(jù)本發(fā)明的一個實(shí)施方式管理資源可以包括由駐留在服務(wù)器中的應(yīng)用程序或業(yè)務(wù)程序使用的任何軟件或硬件資源。對于與語音有關(guān)的應(yīng)用程序,這些管理資源可以包括語音特定的資源,例如語音識別業(yè)務(wù)、文本到語音產(chǎn)生業(yè)務(wù)和提示業(yè)務(wù),以及平臺業(yè)務(wù)和頂級資源管理業(yè)務(wù),例如過程監(jiān)視器1202和盒監(jiān)視器1204它們自己。
最好,單個情況的盒監(jiān)視器1204在每個物理盒上配置,該物理盒裝備要管理的資源。盒監(jiān)視器1204本質(zhì)上是無源管理器。它響應(yīng)管理過程監(jiān)視器1202的請求。過程監(jiān)視器1202請求盒監(jiān)視器1204管理資源的狀態(tài)報告和指導(dǎo)盒監(jiān)視器1204采取行動管理資源、啟動資源、關(guān)閉資源、開發(fā)資源。最好,盒監(jiān)視器1204在短時間間隔內(nèi)報告過程監(jiān)視器1202,但是間隔長度主要是設(shè)計選擇的問題。
最好,一個過程監(jiān)視器1202安裝在與多個盒監(jiān)視器1204分開的服務(wù)器上(盡管可能分配過程監(jiān)視器1202的一些功能)。本領(lǐng)域技術(shù)人員可以認(rèn)識到,過程監(jiān)視器1202可以安裝在具有盒監(jiān)視器1204的服務(wù)器、安裝在它自己擁有的獨(dú)立的服務(wù)器、或編程入各個協(xié)同服務(wù)器。過程監(jiān)視器1202根據(jù)盒監(jiān)視器1204的類型、配置文件和盒監(jiān)視器1204報告的信息發(fā)出適當(dāng)?shù)闹噶畹胶斜O(jiān)視器1204。
為了開始定位盒監(jiān)視器1204,過程監(jiān)視器1202最好利用多播IP消息。最好,隨后過程監(jiān)視器1202和盒監(jiān)視器1204之間的通信利用HTTP和HTTPS協(xié)議;但是,其他的通信協(xié)議也可以使用。
正如以上討論的,過程監(jiān)視業(yè)務(wù)1200利用合并群集概念的分級報告模型。圖13說明群集的分級結(jié)構(gòu)。圍繞群集例如圍繞群集1302是多個群集13011至1301n的邏輯組。最好,邏輯組群集包括兩級等級過程監(jiān)視器1202和過程監(jiān)視器1202管理的盒監(jiān)視器1204。在本發(fā)明小規(guī)模的實(shí)施方式中,典型的群集可包括單個過程監(jiān)視器1202和它管理的盒監(jiān)視器1204。如圖13所示,圍繞群集1302包括主進(jìn)程監(jiān)視器1206、提供過失敗能力的備用主進(jìn)程監(jiān)視器1308、用于群集13011至1301n的多個過程監(jiān)視器12021至1202n和用于每個群集13011至1301n的每個硬件盒(沒有具體標(biāo)出)的多個盒監(jiān)視器1204。在群集13011,過程監(jiān)視器1(12021)監(jiān)視硬件盒1、硬件盒2、…、硬件盒N的盒監(jiān)視器1到N。
如圖13所示,根據(jù)本發(fā)明的一個實(shí)施方式單個主進(jìn)程監(jiān)視器1206存在用于網(wǎng)絡(luò)設(shè)計中的所有群集。當(dāng)然,本領(lǐng)域技術(shù)人員現(xiàn)在認(rèn)識到,多層的過程監(jiān)視器可以擴(kuò)展系統(tǒng)管理。例如,單個超主進(jìn)程監(jiān)視器可以作為在一組主進(jìn)程監(jiān)視器1206上的管理層存在。每個群集具有它自己的過程監(jiān)視器1202、備用過程監(jiān)視器(未示出)和多個盒監(jiān)視器1204。盒監(jiān)視器1204管理群集中的各個服務(wù)器。替代地,每個盒監(jiān)視器1204可以指定一個服務(wù)器的一部分監(jiān)視分配給服務(wù)器這部分該服務(wù)器的特定資源,或者盒監(jiān)視器1204監(jiān)視器可以通過幾個服務(wù)器分配管理的資源。在圍繞群集1302中的每個盒監(jiān)視器1204報告給它的過程監(jiān)視器1202,過程監(jiān)視器1202又報告給主進(jìn)程監(jiān)視器1206。由盒監(jiān)視器1204和過程監(jiān)視器1202報告的數(shù)據(jù)通過體系的每一級提供和向上傳送。這些集合數(shù)據(jù)可用于查看適當(dāng)?shù)挠脩艚涌诠ぞ呋驁D形用戶界面,如下面討論的。
正如上面結(jié)合圖12所說明的,根據(jù)本發(fā)明的一個實(shí)施方式盒監(jiān)視器1204管理平臺服務(wù)器組件的資源。管理資源是提供狀態(tài)信息的軟件進(jìn)程或它們可以執(zhí)行的有效行動。雖然盒監(jiān)視器1204可以設(shè)計成執(zhí)行一些信息處理,最好盒監(jiān)視器1204是被動的代理,不知道它們管理過程的細(xì)節(jié),而是報告和接收來自管理過程監(jiān)視器1202的指令。
過程監(jiān)視業(yè)務(wù)1200依賴盒監(jiān)視器1204并且引導(dǎo)在盒安裝時啟動的過程監(jiān)視器1202。例如,圖12的硬件盒1可以開始關(guān)閉。過程監(jiān)視器1202不會注冊硬件盒1,因此硬件盒1不會報告也不會啟動應(yīng)用程序或業(yè)務(wù)程序。當(dāng)硬件盒1啟動時,盒監(jiān)視器1204通知過程監(jiān)視器1202(它可以通知主進(jìn)程監(jiān)視器1206,如果結(jié)構(gòu)中存在的話,等等)。過程監(jiān)視器1202(或主進(jìn)程監(jiān)視器1206)注冊該信息到位置業(yè)務(wù)1004。類似地,利用盒監(jiān)視器1204監(jiān)視過程的使用信息,過程監(jiān)視器1202和主進(jìn)程監(jiān)視器1206可由資源管理器1006訪問和能由一個版本的路由選擇管理器1002使用,以確定特定請求應(yīng)該指向的應(yīng)用程序情況和業(yè)務(wù)。
類似地,如果全部群集故障,當(dāng)它啟動時,過程監(jiān)視器1202以類似于盒監(jiān)視器1204注冊過程監(jiān)視器1202的方式注冊到主進(jìn)程監(jiān)視器1206,如下所述。
為了在它啟動時執(zhí)行引導(dǎo)活動,盒監(jiān)視器1204利用初始化參數(shù)規(guī)定可用的通信端口、IP地址和它的代理類型。最好,盒監(jiān)視器1204利用缺省初始化值,除非運(yùn)行時在命令行上規(guī)定新數(shù)值。
啟動以后,盒監(jiān)視器1204傾聽“誰在這里?”,由群集的過程監(jiān)視器1202周期地廣播發(fā)現(xiàn)詢問。如上所述,最好此發(fā)現(xiàn)詢問作為多播IP消息發(fā)送。當(dāng)盒監(jiān)視器1204接收此消息時,它向過程監(jiān)視器1202發(fā)送發(fā)現(xiàn)響應(yīng)。過程監(jiān)視器1202利用盒監(jiān)視器1204的發(fā)現(xiàn)響應(yīng)消息中的信息注冊盒監(jiān)視器1204作為群集輸入使用中的,和裝載盒監(jiān)視器1204的報告類型特定的資源配置文件。注意注冊到過程監(jiān)視器1202只發(fā)生一次。然后盒監(jiān)視器1204等待來自管理過程監(jiān)視器1202的指令。
通常,盒監(jiān)視器1204執(zhí)行盒管理器的三個功能(1)它執(zhí)行管理資源的行為、(2)它報告管理資源的狀態(tài)、和(3)它處理管理資源發(fā)送的通知。
特定盒監(jiān)視器1204提供的監(jiān)視業(yè)務(wù)依賴它的盒上配置的操作系統(tǒng)和軟件組件。這樣,盒監(jiān)視器1204可以由它們的類型分類。每個盒監(jiān)視器1204類型具有相關(guān)的管理資源配置文件。
關(guān)于盒監(jiān)視器1204可以管理資源的信息存儲在配置文件中。管理資源配置文件典型地包含關(guān)于兩種資源的信息啟動腳本和監(jiān)視過程。盒監(jiān)視器1204不直接訪問配置文件中的信息。更確切的說,它的管理過程監(jiān)視器1202利用管理資源配置文件中的信息引導(dǎo)盒監(jiān)視器1204執(zhí)行特定順序的任務(wù)。這些任務(wù)包括執(zhí)行腳本和負(fù)載和啟動管理資源組件或描述符(未示出),它提供盒監(jiān)視器1204的管理資源的鏈路。
過程監(jiān)視器1202起到群集中網(wǎng)絡(luò)管理處理的焦點(diǎn)作用。正如以上討論的,通過周期地廣播“誰在這里?”詢問過程,監(jiān)視器1202動態(tài)地發(fā)現(xiàn)群集1301內(nèi)的盒監(jiān)視器1204,最好作為多播IP消息。從過程監(jiān)視器1202的角度來說,群集中的盒監(jiān)視器1204自己管理資源。類似盒監(jiān)視器1204,引導(dǎo)在硬件盒啟動時開始的過程監(jiān)視器1202。為了執(zhí)行引導(dǎo)活動,過程監(jiān)視器1202利用初始化參數(shù),它規(guī)定可用通信端口、IP地址、超時和其他行為。最好,過程監(jiān)視器1202利用缺省初始化值,除非運(yùn)行時在命令行上規(guī)定新數(shù)值。
啟動以后,過程監(jiān)視器1202讀取識別已知盒監(jiān)視器1204類型的主配置文件和定位它們相關(guān)的管理資源配置文件。與盒監(jiān)視器1204相反,過程監(jiān)視器1202是有效的實(shí)體,它從它管理盒監(jiān)視器1204請求狀態(tài)報告和發(fā)送指令到它管理的盒監(jiān)視器1204。當(dāng)盒監(jiān)視器1204響應(yīng)“誰在這里?”詢問時,過程監(jiān)視器1202注冊該盒監(jiān)視器1204為在它的群集中激活。盒監(jiān)視器1204的響應(yīng)識別它的通信信道(最好是IP地址和端口)和它的盒監(jiān)視器1204類型。為了過程監(jiān)視器1202了解盒監(jiān)視器1204可以管理的資源,它訪問與特定的盒監(jiān)視器1204類型有關(guān)的配置文件。過程監(jiān)視器1202利用注冊在配置文件上的資源發(fā)出由盒監(jiān)視器1204執(zhí)行的順序組的動作。
過程監(jiān)視器1202集合關(guān)于它管理的盒監(jiān)視器12的數(shù)據(jù)和它們各自管理的資源。數(shù)據(jù)集合器(未示出)業(yè)務(wù)提供盒監(jiān)視器1204管理的低層過程和高層管理實(shí)體例如主進(jìn)程監(jiān)視器1206和管理視圖應(yīng)用程序之間的接口。數(shù)據(jù)集合器(未示出)業(yè)務(wù)具有多個規(guī)模。關(guān)鍵因素是每次管理資源啟動時,創(chuàng)建管理資源控制器(未示出)和向上傳播到體系的每一層。這個管理資源控制器(未示出)是代理目標(biāo),它使高級管理實(shí)體能夠從管理資源獲得信息和發(fā)出指令改變它的操作。這個代理目標(biāo)最好允許這些方法在管理資源本身遠(yuǎn)程啟動。
過程監(jiān)視體系的每一層包含管理資源控制器,用于在該層和該層以下的每個管理資源。這使任何一層的管理實(shí)體能獲得該層和該層以下任何管理資源的狀態(tài)信息和控制。類似地,管理視圖應(yīng)用程序可以打開過程監(jiān)視體系的特定層的視圖。從該視圖中,管理視圖應(yīng)用程序可以獲得有關(guān)的狀態(tài)信息和控制該層和該層以下的任何管理資源。
過程監(jiān)視業(yè)務(wù)1200包括通知組件(未示出),它通知有關(guān)方該系統(tǒng)告警。根據(jù)系統(tǒng)經(jīng)營者建立的標(biāo)準(zhǔn),在有操作失敗或功能不正確的任何時候發(fā)出告警。通知組件(未示出)包括子組件,負(fù)責(zé)(1)確定應(yīng)當(dāng)發(fā)出告告警(根據(jù)用戶定義的標(biāo)準(zhǔn))、(2)注冊該告警、(3)確定有關(guān)告警應(yīng)該通知誰、和(4)發(fā)送通知到在步驟(3)識別的接受者。通知可以發(fā)送給監(jiān)視程序以采取補(bǔ)救行為或用于顯示的管理視圖應(yīng)用程序。通知還可以作為電子郵件或網(wǎng)頁發(fā)送給可以采取適當(dāng)行動的操作者。
過程監(jiān)視器1202過失敗組件(未示出)實(shí)現(xiàn)兩種過失敗機(jī)理。第一,它一直監(jiān)視盒監(jiān)視器1204通過發(fā)出“你存活嗎?”廣播給它管理的盒監(jiān)視器1204來保證它們處于操作順序中。第二,過程監(jiān)視器1202過失敗組件保證備用情況的過程監(jiān)視器1202(這種備用沒有具體地示出)總是存活的和包含最新的信息,因此如果過程監(jiān)視器1202失敗,備用情況的過程監(jiān)視器可以接管它。如果過程監(jiān)視器1202失敗,備用情況的接管為主要過程監(jiān)視器1202和啟動另一個過程監(jiān)視器1208作為備用。
本發(fā)明能夠創(chuàng)建可用于這種情形的服務(wù)器,即重要的是總體上跟蹤或記錄服務(wù)器的詳細(xì)操作、服務(wù)器內(nèi)運(yùn)行的各個應(yīng)用程序和業(yè)務(wù)程序以及服務(wù)器內(nèi)運(yùn)行的一組應(yīng)用程序和業(yè)務(wù)。此跟蹤信息可用于更好的理解服務(wù)器及其組成部分如何工作以便更好的分配硬件和軟件資源。跟蹤信息還可以用來確定哪個資源和多少資源由每個應(yīng)用程序和業(yè)務(wù)或每組應(yīng)用程序和業(yè)務(wù)使用。資源利用信息例如可用于向客戶和應(yīng)用程序及業(yè)務(wù)程序的提供商收費(fèi)。
此記錄能力具有兩個主要的規(guī)模將信息記錄到暫時存儲器和信息從暫時存儲器到持久存儲器的處理。
圖14說明能夠跟蹤或記錄服務(wù)器操作的一種可能的實(shí)施方式。圖14表示跟蹤系統(tǒng)1400,最好包括暫時存儲器1402、持久存儲器1404和多個后處理模塊1406。舉例來說,圖14說明跟蹤應(yīng)用程序312類型B和業(yè)務(wù)程序314類型Y的信息(參見圖3、4和10)。跟蹤或記錄關(guān)于資源利用的信息在本發(fā)明中以多種方式啟動。參見圖3,例如,呼叫裝置302訪問產(chǎn)生和發(fā)送SIP應(yīng)用程序INVITE到請求控制模塊310以定位適當(dāng)情況的應(yīng)用程序312類型B的媒體服務(wù)器308。正如上面說明的,控制模塊310執(zhí)行標(biāo)準(zhǔn)操作,例如根據(jù)當(dāng)前的資源利用和其他因素發(fā)現(xiàn)可用情況的應(yīng)用程序312類型B。這些標(biāo)準(zhǔn)操作記錄稍后用于單獨(dú)的后處理分析模塊1406,它可以包括第三方帳戶和其他模塊。
在應(yīng)用程序312或業(yè)務(wù)程序314內(nèi),有也記錄的一些操作。這時由一組軟件程序或包裝特定操作啟動的包裝器1408。當(dāng)應(yīng)用程序312類型B例如希望文本到語音業(yè)務(wù),例如業(yè)務(wù)程序314類型Y,它調(diào)用嵌入應(yīng)用程序312類型B模塊的方法以獲得業(yè)務(wù)程序314類型Y。嵌入的方法是包裝器代碼1408的一個例子,包裝器代碼1408首先記錄這樣的事實(shí),即應(yīng)用程序312類型B正請求位于暫時存儲器1402數(shù)據(jù)字段的業(yè)務(wù)程序314類型Y,然后照常傳送文本到語音業(yè)務(wù)程序314類型Y的請求。
經(jīng)常,根據(jù)本發(fā)明一個實(shí)施方式記帳定義服務(wù)器必須收集的該組數(shù)據(jù)。記錄是保持記帳數(shù)據(jù)的過程,因此它能用于隨后的計費(fèi)和分析后處理模塊1406。通常,記錄由所有支持SIP的組件執(zhí)行,包括但不局限于控制模塊310、應(yīng)用程序312和業(yè)務(wù)程序314。初始的記錄在暫時存儲器1402完成,單獨(dú)的過程集合記錄數(shù)據(jù)到持久存儲器1404,由決策支持工具1406使用。
記錄子系統(tǒng)最好使用用于記錄具有不同優(yōu)先級數(shù)據(jù)的構(gòu)架。記錄語句在應(yīng)當(dāng)收集數(shù)據(jù)的邏輯位置的包裝器代碼1408中執(zhí)行。給定的記錄語句可以是在多個優(yōu)先級之一。最好,記錄系統(tǒng)利用至少四個優(yōu)先級ERROR、WARN、INFO和DEBUG(以優(yōu)先級降序列出),但作為設(shè)計決策可以使用更多的優(yōu)先級。然后可設(shè)置確定實(shí)際上記錄哪個優(yōu)先級的參數(shù)。
最好記錄能力包括三個分開的維。第一維是先前討論的記錄包裝器代碼1408。如果執(zhí)行代碼段,包裝器代碼1408中的代碼級語句寫出描述事態(tài)的相應(yīng)數(shù)據(jù)。第二維是暫時存儲器1402。暫時存儲器機(jī)理1402提供暫時、高性能和最好不必局部存儲初始記錄的上述數(shù)據(jù)。
第三維是持久存儲器1404。持久存儲器機(jī)理1404將從暫時存儲器1402轉(zhuǎn)發(fā)記錄數(shù)據(jù)到長期、可靠的持久存儲器1404中。最好,由預(yù)編程包裝器代碼1408識別的記錄/跟蹤信息在暫時存儲器1402中時存儲在平面文件中,而在持久存儲器1404中時存儲在關(guān)系數(shù)據(jù)庫中,由于設(shè)計選擇問題該記錄/跟蹤信息在特定的事件執(zhí)行。后處理模塊1406根據(jù)需要通過各種傳統(tǒng)的計費(fèi)和分析程序訪問持久存儲器1404數(shù)據(jù)庫中的信息。后處理模塊1406可以是現(xiàn)有服務(wù)器網(wǎng)絡(luò)的一部分或訪問該系統(tǒng)的單獨(dú)的服務(wù)器。
最好使用用于計費(fèi)和分析的單獨(dú)的持久存儲器1404以及中間暫時存儲器1402,因?yàn)楫?dāng)計費(fèi)和分析程序訪問持久存儲器1404,它對運(yùn)行應(yīng)用程序具有最小的影響。另外,由包裝器代碼1408寫入暫時存儲器1402的跟蹤或記錄的數(shù)據(jù)可以快速寫出到暫時存儲器1402,對運(yùn)行應(yīng)用程序具有最小的性能影響。獨(dú)立過程在規(guī)則的基礎(chǔ)上從暫時存儲器1402移出所有的數(shù)據(jù)到持久性存儲器1404。
關(guān)鍵問題是減少同時記錄的多個過程之間的爭用。最好的解決方案是提供可由不同過程使用的一組多個記錄文件。因?yàn)闀簳r存儲器1402是持久性的,具有多個臨時記錄文件不產(chǎn)生不一致性當(dāng)數(shù)據(jù)傳送到持久儲存庫1404時正確地重新構(gòu)造暫時關(guān)系。
數(shù)據(jù)可以從多個分布式文件以多種方式傳送到持久儲存庫1404。一種方案是利用單個塊(single bulk)交易,在一個操作中從所有的文件傳送所有的數(shù)據(jù)。典型地,這將鎖定所有的記錄文件,直到每一個文件都處理和保證數(shù)據(jù)庫中的數(shù)據(jù)在給定時間標(biāo)記是當(dāng)前的。這種當(dāng)前值常常不是關(guān)鍵性的,但是,這個方案在大的安裝中會產(chǎn)生性能問題,因?yàn)橛捎谒械挠涗浳募绘i定,交易期間不能記錄數(shù)據(jù)。
最好一系列交易用來從暫時存儲器1402的多個分布式文件傳遞數(shù)據(jù)到持久存儲器1404相應(yīng)的文件或數(shù)據(jù)庫字段。此方案利用每個文件的一個交易。每個文件逐一處理和只鎖定足夠久以便傳送它的數(shù)據(jù)。這允許在系統(tǒng)傳遞它的數(shù)據(jù)之后立即繼續(xù)記錄到文件。這必然伴有應(yīng)用程序的小的中斷。
數(shù)據(jù)傳送到持久存儲器1404最好安排成在相對小的間隔內(nèi)自動發(fā)生,盡管自動或人工地開始,而如果自動地,以什么間隔傳遞是設(shè)計決策。
持久存儲器1404最好利用關(guān)系數(shù)據(jù)庫1404存入記錄數(shù)據(jù)。關(guān)系數(shù)據(jù)庫還提供分析程序的標(biāo)準(zhǔn)裝置檢索后處理的數(shù)據(jù)。
一旦數(shù)據(jù)已經(jīng)傳送到持久存儲器1404,后處理模塊1406使用后處理構(gòu)架(未示出)執(zhí)行隨后的計費(fèi)和分析程序。
如上所述,這里描述的結(jié)構(gòu)是基于修改為OSI協(xié)議的TCP/IP系統(tǒng)以更好的定義對話層和表示層,它們不是常規(guī)的TCP/IP的一部分。為了清楚起見,常規(guī)的TCP/IP系統(tǒng)修改為遵循上述OSI協(xié)議的TCP/IP系統(tǒng)將參照圖15-18再說明。
OSI協(xié)議通過建立一系列執(zhí)行特定功能的層定義“主機(jī)到主機(jī)”通信。如圖15所示,OSI協(xié)議定義七層多級系統(tǒng)1500。系統(tǒng)1500包括物理層1502、數(shù)據(jù)鏈路層1504、網(wǎng)絡(luò)層1506、傳輸層1508、對話層1510、表示層1512和應(yīng)用層1514。圖15還表示TCP/IP模型1550。TCP/IP模型1550通常以下面的方式映射到OSI系統(tǒng)1500。物理層1502和數(shù)據(jù)鏈路層1504組合成主機(jī)到網(wǎng)絡(luò)層1552。網(wǎng)絡(luò)層1506通常等同于互聯(lián)網(wǎng)協(xié)議(IP)層1554。傳輸層1508通常等同于傳輸控制協(xié)議或用戶數(shù)據(jù)報協(xié)議(TCP/UDP)層1556。TCP/IP模型1550通常不提供與對話層1510或表示層1512等同的層。應(yīng)用層1514相應(yīng)于應(yīng)用層1558。
OSI協(xié)議定義各層如下物理層1502定義通過通信信道傳輸“比特”或數(shù)據(jù)。典型地,電壓電平用來在比特1和0之間劃界。物理層1502直接與通信媒體通信,例如總線工作、同軸電纜、光纖、無線協(xié)議(例如,藍(lán)牙)。
數(shù)據(jù)鏈路層1504將一字節(jié)的信息編組成“幀”和無誤碼地傳送該數(shù)據(jù)幀。數(shù)據(jù)鏈路層1504可以用“開始幀”指示符附加幀。而且,數(shù)據(jù)鏈路層1504可以為每幀產(chǎn)生校驗(yàn)和,它可用于包括數(shù)據(jù)驗(yàn)證的多個功能。其他部分的數(shù)據(jù)幀可以包括地址(開始/源地址和目的地地址)、誤差檢驗(yàn)等等。
網(wǎng)絡(luò)層1506執(zhí)行從一個計算裝置到另一個計算裝置的幀的“分組路由選擇”。常規(guī)地這些裝置被認(rèn)為是單獨(dú)的,但是計算裝置可以共存。一種廣泛公知的網(wǎng)絡(luò)層協(xié)議是互聯(lián)網(wǎng)協(xié)議(IP),它由TCP/IP模型使用。
傳輸層1508允許傳輸和接收通過網(wǎng)絡(luò)層1506發(fā)送的多個數(shù)據(jù)幀(分組)。傳輸層的一個功能是重新組合傳送順序的數(shù)據(jù)幀。傳送數(shù)據(jù)的其他功能可以是數(shù)據(jù)驗(yàn)證和丟失數(shù)據(jù)幀的重發(fā)。TCP/IP模型通常使用傳輸控制協(xié)議(TCP)或用戶數(shù)據(jù)報協(xié)議(USP)。這些協(xié)議的重大差別在于TCP重新組裝無序分組和重發(fā)丟失的分組,而USP通常只傳送分組。
對話層1510允許相同或不同主機(jī)計算裝置中的應(yīng)用程序建立“對話”。對話在功能上與PSTN中的呼叫相似。TCP/IP模型不具有明確定義的會話層協(xié)議。通常,對話可以廣泛分類成單工、半雙工和全雙工。單工對話通常局限于單個主機(jī)傳送和一個或多個主機(jī)接收。半雙工包括多個發(fā)射主機(jī);但是,每次只有一個主機(jī)發(fā)送數(shù)據(jù)。全雙工包括并行主機(jī)傳送。作為建立對話的一部分,對話層1510例如包括關(guān)于建立對話的規(guī)則(即,越區(qū)切換過程)、關(guān)于識別通信數(shù)據(jù)的傳輸協(xié)議的規(guī)則和有關(guān)終止對話或釋放呼叫的規(guī)則。
表示層1512包括有關(guān)主機(jī)之間數(shù)據(jù)傳送的規(guī)則。作為傳遞的一部分,數(shù)據(jù)格式的協(xié)議必須在多個裝置建立。例如,數(shù)據(jù)可以格式化為ASCII表示。
應(yīng)用層1514通常包括應(yīng)用程序或業(yè)務(wù)應(yīng)用程序。例如,在文本到語音系統(tǒng),業(yè)務(wù)應(yīng)用程序可以從文本數(shù)據(jù)表示轉(zhuǎn)換到音頻數(shù)據(jù)表示。
當(dāng)前,VoIP將TCP/IP用于媒體傳送;但是,正如上文所說明的,常規(guī)的TCP/IP模型不具有呼叫控制的適當(dāng)方法和與OSI協(xié)議對話層及表示層有關(guān)的表示。將這些層插入到TCP/IP模型的一種可能的方式是設(shè)計媒體對話構(gòu)架,它包括用于呼叫控制的對話啟動協(xié)議,對話描述協(xié)議以便識別多媒體物理傳送模型和數(shù)據(jù)格式以及媒體傳輸協(xié)議。具有這些層的一種TCP/IP模型1600如圖16所示。TCP/IP模型1600包括TCP/IP模型1550所示的所有層并包括對話層1602。對話層1602包括媒體對話構(gòu)架1604,它包括用于對話啟動協(xié)議部分1606、對話描述協(xié)議1608和實(shí)時傳輸協(xié)議1610交互作用的規(guī)則。雖然圖16表示SIP、SDP和RTF,也可以使用上述定義的其他協(xié)議。
圖17表示對話層1600可以實(shí)現(xiàn)的處理器1700。處理器1700包括在SIP用戶代理1706從客戶1702的輸入1704??蛻?702可以是呼叫應(yīng)用程序的用戶,可以是單獨(dú)主處理機(jī)上的應(yīng)用程序或者可以是集成處理器上的應(yīng)用程序。開始,輸入1704是呼叫建立請求。呼叫建立請求典型地是包括通常如上所述的連接信息的SIP邀請以及其他描述符。SIP用戶代理1706與SDP代理1708交互作用以識別各種協(xié)議,例如多媒體傳輸協(xié)議和數(shù)據(jù)格式協(xié)議,與媒體傳輸協(xié)議代理1710交互作用以識別是否以及哪個端口支持識別的媒體傳輸協(xié)議。然后SIP用戶代理1706引導(dǎo)呼叫到業(yè)務(wù)濃縮器1712,業(yè)務(wù)濃縮器1712將請求傳送到業(yè)務(wù)應(yīng)用程序1714,業(yè)務(wù)應(yīng)用程序1714進(jìn)一步參照圖18描述。
圖18更詳細(xì)地表示業(yè)務(wù)濃縮器1712。業(yè)務(wù)濃縮器1712包括請求處理器1802、輸入隊(duì)列1804和應(yīng)用程序處理器1806,它具有連接到業(yè)務(wù)應(yīng)用程序平臺1810的工作線程1808。工作線程1808包括通信鏈路,例如無線連接、同軸電纜、光纖連接等等。業(yè)務(wù)濃縮器1712可以具有請求處理器1802,它在多個不同的協(xié)議下工作。因此,SE代理1708和MTP代理1710引導(dǎo)SIP代理1706將呼叫導(dǎo)向能夠支持識別協(xié)議的特定請求處理器1802。請求處理器1802遵守業(yè)務(wù)請求和將業(yè)務(wù)請求傳送到輸入隊(duì)列1804。輸入隊(duì)列1804保持業(yè)務(wù)請求直到應(yīng)用程序處理器1806表示工作線程1808可用于處理業(yè)務(wù)請求。因?yàn)榇罅康恼埱罂梢员4嬖谂抨?duì)中,可能比應(yīng)用程序處理器1806支持更多的請求處理器1802。當(dāng)應(yīng)用程序處理器1806表示空閑的工作線程1808時,移出和發(fā)送保存在隊(duì)列中的業(yè)務(wù)請求到業(yè)務(wù)應(yīng)用程序平臺1810進(jìn)行處理。一旦請求的業(yè)務(wù)預(yù)先形成,應(yīng)用程序處理器1806將結(jié)果送回到業(yè)務(wù)請求表示的地址(通常如上所述的它可以是用戶的請求應(yīng)用程序)。注意,應(yīng)用程序處理器1806可以將結(jié)果送回到輸出隊(duì)列,輸出隊(duì)列可以將請求送回到請求地址。
一旦請求被處理和應(yīng)用程序處理器1806將完成的業(yè)務(wù)請求送回到正確的地址,代理商1706終止呼叫連接,釋放請求處理器以產(chǎn)生下一個業(yè)務(wù)請求。注意,本領(lǐng)域技術(shù)人員閱讀本說明書后可以懂得,請求處理器可以在完成請求之前釋放。
雖然上述發(fā)明已經(jīng)利用傳輸通信協(xié)議/互連網(wǎng)協(xié)議(TCP/IP)通信標(biāo)準(zhǔn)和對話啟動協(xié)議(SIP)或?qū)崟r傳送信令協(xié)議(RTSP)進(jìn)行一般地敘述,本領(lǐng)域技術(shù)人員閱讀本說明書可以認(rèn)識到多路傳輸協(xié)議是可能的。因此,控制模塊例如控制模塊310可以是協(xié)議無關(guān)的。圖19說明一種可能的協(xié)議無關(guān)的控制模塊1900。根據(jù)上述媒體對話構(gòu)架,協(xié)議無關(guān)的控制模塊(PICM)1900表示各種設(shè)計程度。特別是,PICM 1900包括網(wǎng)絡(luò)層1902、傳輸層1904、對話層信令協(xié)議1906、對話消息處理器1908和應(yīng)用程序組件1910。類似于上述的媒體對話構(gòu)架,PICM 1900使用網(wǎng)絡(luò)層1902的任何常規(guī)的互聯(lián)網(wǎng)協(xié)議。傳輸層1904包括至少一個傳輸協(xié)議,但可以包括更多的傳輸協(xié)議。例如,圖19表示傳輸層1904,包括用戶數(shù)據(jù)報協(xié)議和傳輸控制協(xié)議。通常,傳輸層1904支持PICM 1900期望支持的每個協(xié)議。圖19還表示PICM 1900,支持智能的資源定位器應(yīng)用程序1912、業(yè)務(wù)管理器應(yīng)用程序1914、路由選擇管理器應(yīng)用程序1916、記帳管理器應(yīng)用程序1918和第三方呼叫控制應(yīng)用程序1920。這些應(yīng)用程序是示范性的,由于設(shè)計選擇的問題可以移出、刪除或添加。層1906、1908和1910參照圖20-24描述。
圖20表示對話層信令協(xié)議1906的組件設(shè)計,它類似于結(jié)合上面圖15-18所述的媒體對話架構(gòu)協(xié)議,為了便于參考在此重復(fù)。特別是,對話層信令協(xié)議1906包括網(wǎng)絡(luò)端點(diǎn)結(jié)合層2002、協(xié)議連接層2004、協(xié)議棧2006、對話協(xié)議組件應(yīng)用程序提供商接口(API)2008。
網(wǎng)絡(luò)端點(diǎn)結(jié)合層2002相應(yīng)于傳輸需要的數(shù)據(jù)流套接字。例如,網(wǎng)絡(luò)端點(diǎn)結(jié)合將創(chuàng)建SIP RTSP和UDP套接字的TCP套接字(或端口)。每個套接字或端口相應(yīng)于請求處理器。請求處理器可以設(shè)計成用指定的協(xié)議預(yù)先創(chuàng)建或按需創(chuàng)建,該需求包括指定的協(xié)議。協(xié)議連接層2004通常包括處理經(jīng)網(wǎng)絡(luò)端點(diǎn)接收或發(fā)送消息的功能。協(xié)議棧2006包括產(chǎn)生對話消息的功能,如下所述。對話協(xié)議組件API允許對話消息處理器訪問協(xié)議棧。通常,這些系統(tǒng)利用多線程復(fù)用功能(如上關(guān)于圖11和18所述的),但也可以其他串行或并行的結(jié)構(gòu)操作。
如上所述,協(xié)議棧2006為通過網(wǎng)絡(luò)發(fā)送到對話消息處理器1908的每個請求或響應(yīng)產(chǎn)生對話消息。對話消息處理器接收對話消息和確定應(yīng)用程序啟用以及數(shù)據(jù)協(xié)議。例如,如果對話消息處理器1908接收SIP注冊消息,則對話消息處理器1908啟用SIP協(xié)議和啟用智能資源定位器(或資源定位器)啟動SIP應(yīng)用程序和業(yè)務(wù)的SIP寄存器功能。該應(yīng)用程序具有接受拒絕啟用的能力。
圖21通常表示對話消息處理器1908組件設(shè)計。對話消息處理器1908包括多個協(xié)議組件2102,在這種情況下它包括SIP組件、RTSP組件和H.323組件、對話表2104,將在后面說明。
當(dāng)路由選擇請求時,對話消息處理器產(chǎn)生對話目標(biāo)或標(biāo)記以存入對話表2104中。對話目標(biāo)包括用于特定對話的唯一標(biāo)識符和對話的狀態(tài)。例如,SIP請求將利用呼叫標(biāo)識串作為唯一標(biāo)識符,對話目標(biāo)將包括與應(yīng)用程序或業(yè)務(wù)邀請有關(guān)的細(xì)節(jié)P1CM 1900包括至少一個應(yīng)用程序。例如,PICM 1900可以包括資源定位器1930(或智能資源定位器)、路由選擇管理器1940、業(yè)務(wù)管理器1950、記帳管理器1960和第三方呼叫控制(3PCC)1970。一些應(yīng)用程序部分地相應(yīng)于圖10所示和所描述的路由選擇管理器1002、位置業(yè)務(wù)1004和資源管理器1006。
資源定位器1930提供特定資源存儲在那里和如何存儲的功能或訪問應(yīng)用程序和業(yè)務(wù),例如應(yīng)用程序312或業(yè)務(wù)314(圖5)。雖然可以使用不同的位置協(xié)議,但在互聯(lián)網(wǎng)的環(huán)境中特定資源的位置通常是唯一通用資源定位符(URL)。該如何通常包括通信協(xié)議要求的指示或應(yīng)用程序,例如SIP、RTSP等等。
資源定位器1930可以利用各種資源位置。一種可能的資源位置方法涉及動態(tài)資源注冊。在這種情況下,各個資源發(fā)送注冊發(fā)送消息給資源定位器1930。這些消息通常包括該資源是什么,例如,文本到語音轉(zhuǎn)換器;信號協(xié)議或協(xié)議是什么,例如SIP協(xié)議,和位置是什么,例如URL地址。通常,每個資源向資源定位器1930發(fā)送刷新注冊以確保資源信息不到期或過期。資源還可以不注冊到資源定位器1930以移出該信息。其他類型的資源注冊可以是靜態(tài)的。在這種情況下,信息通過人工輸入或某種輪詢請求輸入到資源定位器1930,例如“誰在這里?”類型的消息發(fā)送給可用資源,誰愿意回答。典型地,注冊信息保存在持久存儲器,例如圖14的1404。
路由選擇管理器1940包括發(fā)送信號的規(guī)則。例如,路由選擇1940在應(yīng)用程序和業(yè)務(wù)之間傳送信號。路由選擇規(guī)則由業(yè)務(wù)管理器用于提供各種請求的路由選擇方案。許多不同的路由選擇規(guī)則可以使用,其中的一些例子是負(fù)載平衡路由選擇給定一組已知的注冊資源,該算法利用簡單的循環(huán)賽方案產(chǎn)生已知資源的負(fù)載平衡;最不忙路由選擇例如從過程監(jiān)視器(見圖12和13)給定一組已知的注冊資源和負(fù)荷狀態(tài)信息,該算法利用最不忙方案為請求選擇適當(dāng)?shù)馁Y源;或基于時間的路由選擇給定一組已知的注冊資源和基于時間的路由選擇規(guī)則,該算法選擇適當(dāng)?shù)馁Y源。
當(dāng)然其他的路由選擇規(guī)則也是可能的??梢韵胂?,存在一個以上的路由選擇管理器用于每個PICM,業(yè)務(wù)管理器(如下所述)將根據(jù)各個請求參數(shù)選擇適當(dāng)?shù)穆酚蛇x擇管理器。此外,路由選擇管理器可以配置成從輸出或輸入角度給出解決方案,換言之,路由選擇解決方案可以是基于起點(diǎn)或基于目的地的。此外,路由選擇管理器可以維護(hù)路由選擇解決方案的數(shù)據(jù)庫以幫助確定下一條路由。例如,利用加載平衡請求,其中100個注冊的資源能夠服務(wù)請求。第一請求例如通過路由1選擇路由。此信息將被存儲,下一個請求將利用有關(guān)路由1的信息確定路由2等等。
業(yè)務(wù)管理器1950確保實(shí)現(xiàn)應(yīng)用程序和業(yè)務(wù)的請求。圖22表示有關(guān)業(yè)務(wù)管理器1950操作的功能圖2200,圖23是描述業(yè)務(wù)管理器1950操作的流程圖2300。圖2200包括資源客戶2210,它相應(yīng)于主叫302(圖5)或應(yīng)用程序1102請求業(yè)務(wù)(圖11)、PICM 1900、資源存儲器2220,它相應(yīng)于位置業(yè)務(wù)(圖10)或持久存儲器1404(圖14)、一系列資源22301-n和可靠的消息列隊(duì),這將結(jié)合記帳管理器的描述說明。流程圖2300從PICM 1900的初始化開始,步驟2302。雖然PICM 1900可以支持多路傳輸協(xié)議,為簡單起見這個例子限于SIP。接下來,一系列資源初始化,包括資源22301-n,這個例子中為簡單起見限于是相同的,步驟2304。當(dāng)然多種資源是可用的,但為了簡單,用正在請求和提供單個資源說明操作。這些資源注冊PICM 1900,步驟2306。注冊在資源積存器中是動態(tài)的或在資源輪詢或人工輸入時是靜態(tài)的,該注冊包括協(xié)議信息,在這種情況下是SIP,和位置信息,在這種情況下是URL。PICM 1900將信息存入存儲器2220,步驟2308。注冊步驟可以包括設(shè)置期滿數(shù)據(jù),例如計時器或日期具體標(biāo)記的步驟,因此到這個日期或之后某個時間注冊到期,除非注冊更新,步驟2308a。在注冊成功保存在存儲器以后,PICM 1900發(fā)送注冊接受消息到資源,步驟2310。如果期滿數(shù)據(jù)包含在注冊數(shù)據(jù)中,PICM 1900可以發(fā)送信息表示何時它需要更新注冊的資源,步驟2310a。同時特別地示出注意,資源將重試在不久之后注冊,如果它沒有接收接受的消息。
一旦完成資源注冊,PICM 1900可以處理使用特定資源的請求??蛻敉ㄟ^發(fā)送資源請求到PICM 1900請求資源,步驟2312。在這種情況下,客戶發(fā)送SIP INVITE(邀請)消息。業(yè)務(wù)管理器1950確定PICM 1900接收SIP INVITE消息,步驟2314。然后業(yè)務(wù)管理器1950利用資源定位器訪問存儲器以識別至少一個發(fā)送請求的資源位置,步驟2316。一旦識別一個或多個可能的資源,業(yè)務(wù)管理器1950訪問路由選擇管理器1960以選擇適合于將請求發(fā)送到識別的資源的特定資源的路由,步驟2318a。路由選擇管理器根據(jù)特定的系統(tǒng)路由選擇協(xié)議選擇路由,這主要是設(shè)計選擇的問題。大致與選擇該路由同時,還產(chǎn)生回到業(yè)務(wù)管理器用于存儲到對話表的對話目標(biāo),步驟2318b。對話目標(biāo)不需要大致與路由選擇同時產(chǎn)生。然后業(yè)務(wù)請求發(fā)送到下一個目的地,直到請求到達(dá)適當(dāng)情況的資源,步驟2320。一旦收到,該情況的資源確定該請求應(yīng)該接受或拒絕,步驟2322。如果接受,請求接受響應(yīng)發(fā)送到PICM 1900,步驟2324。如果拒絕,控制回到步驟2316以識別下一個可用的資源。在收到請求接受響應(yīng)時,PICM 1900發(fā)送在URL表示的資源接受的請求到客戶,步驟2326。然后客戶直接連接到適當(dāng)?shù)馁Y源以處理請求,步驟2328。
記帳管理器1960根據(jù)PICM 1900執(zhí)行的功能產(chǎn)生記帳事件。一種可能的記帳事件是業(yè)務(wù)管理器1950產(chǎn)生的呼叫詳細(xì)記錄,表示PICM和資源請求操作的細(xì)節(jié)。另外,業(yè)務(wù)管理器可以產(chǎn)生呼叫詳細(xì)報告,表示相應(yīng)資源的細(xì)節(jié)。產(chǎn)生這些記錄給記帳管理器,記帳管理器根據(jù)呼叫詳細(xì)記錄產(chǎn)生記帳事件。記帳事件存儲在記帳存儲系統(tǒng)中,例如可靠的消息隊(duì)列2240或其他類型的文件結(jié)構(gòu)。通常,記帳事件將記錄計費(fèi)業(yè)務(wù)必須的信息,例如,客戶信息、事件類型信息、協(xié)議使用信息、資源使用信息等等。
一旦PICM 1900連接請求客戶與適當(dāng)情況的資源,3PCC應(yīng)用程序1970控制對話。越區(qū)切換協(xié)議、呼叫檢測和終止協(xié)議是本領(lǐng)域常規(guī)公知的,在這里不再進(jìn)一步說明。
圖24表示結(jié)構(gòu)2400,顯示上述系統(tǒng)的堅(jiān)固性。特別是,結(jié)構(gòu)2400包括客戶2410、PICM 2420(可以包括過失敗備用2422)、存儲器2430、代理PICM 2440、網(wǎng)絡(luò)2450和連接到網(wǎng)絡(luò)2450的資源2460。系統(tǒng)的可伸縮性通過加到系統(tǒng)的每個代理PICM而增加了。因此,雖然最初的客戶請求可以到達(dá)PICM 2420,PICM 2420可以重定向該請求到代理PICM,它以上述的方式實(shí)際服務(wù)請求。而且,因?yàn)镻ICM(或代理PICM)通過互聯(lián)網(wǎng)訪問資源,系統(tǒng)可用的數(shù)目或資源主要受PICM通過量的限制。因此,加到系統(tǒng)的每個代理增加整個系統(tǒng)的通過量,提高整個系統(tǒng)的能力。雖然本發(fā)明已經(jīng)參照優(yōu)選實(shí)施方式特別地表示和描述,本領(lǐng)域技術(shù)人員懂得,可以進(jìn)行形式和細(xì)節(jié)的各種其他的變化,而沒有背離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種在至少一個處理器上執(zhí)行復(fù)用應(yīng)用程序的方法,該方法包括步驟提供至少一個訪問服務(wù)器,訪問至少一個應(yīng)用程序;在訪問服務(wù)器從至少一個用戶接收請求,以訪問至少一個應(yīng)用程序;根據(jù)接收的請求,在至少一個訪問服務(wù)器和至少一個用戶之間建立通信鏈路;將接收的請求存儲在輸入請求隊(duì)列;檢驗(yàn)到所請求應(yīng)用程序的可用通信路徑;當(dāng)可用的通信路徑可用時,在輸入請求隊(duì)列和至少一個應(yīng)用程序之間建立通信路徑;移出存儲的請求;和向請求的應(yīng)用程序發(fā)送存儲的請求。
2.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括步驟根據(jù)接收的請求識別媒體傳輸協(xié)議,其中建立的通信鏈路能夠傳送識別的媒體傳輸協(xié)議。
3.根據(jù)權(quán)利要求2的方法,進(jìn)一步包括步驟檢驗(yàn)發(fā)送數(shù)據(jù)的精確度;和重發(fā)錯誤的數(shù)據(jù)。
4.根據(jù)權(quán)利要求1的方法,其中建立通信鏈路的步驟使用對話啟動協(xié)議、H.323協(xié)議、MGCP協(xié)議、MEGACO協(xié)議和H.248協(xié)議的至少一個協(xié)議。
5.根據(jù)權(quán)利要求2的方法,其中識別媒體傳輸協(xié)議使用對話描述協(xié)議。
6.根據(jù)權(quán)利要求2的方法,其中識別的媒體是實(shí)時傳輸協(xié)議。
7.根據(jù)權(quán)利要求1的方法,其中接收請求的步驟進(jìn)一步包括在請求處理器接受請求;產(chǎn)生業(yè)務(wù)請求;和將產(chǎn)生的業(yè)務(wù)請求傳送到輸入請求隊(duì)列用于存儲。
8.一種在至少一個處理器上執(zhí)行復(fù)用應(yīng)用程序的方法,該方法包括步驟初始化至少一個請求處理器和至少一個應(yīng)用程序處理器;從至少一個用戶接受至少一個請求以訪問至少一個應(yīng)用程序;傳送接受的請求到初始化請求處理器;根據(jù)傳送的接受請求完成業(yè)務(wù)請求;將完成的業(yè)務(wù)請求放入輸入隊(duì)列;利用應(yīng)用程序處理器使完成的業(yè)務(wù)請求放入輸入隊(duì)列;將得到的完成業(yè)務(wù)請求發(fā)送到至少一個應(yīng)用程序;執(zhí)行完成的業(yè)務(wù)請求;和返回完成的業(yè)務(wù)。
9.一種業(yè)務(wù)復(fù)用的裝置,該裝置包括至少一個訪問服務(wù)器能夠訪問至少一個應(yīng)用程序;至少一個訪問服務(wù)器包括至少一個代理器和至少一個業(yè)務(wù)濃縮器;和至少一個業(yè)務(wù)濃縮器包括至少一個應(yīng)用程序處理器、至少一個輸入業(yè)務(wù)隊(duì)列和至少一個請求處理器,至少一個訪問服務(wù)器適合于接收多個請求以便訪問至少一個應(yīng)用程序,至少一個業(yè)務(wù)濃縮器適合于復(fù)用多個請求以訪問至少一個應(yīng)用程序。
10.根據(jù)權(quán)利要求9的裝置,其中至少一個代理包括至少一個SIP用戶代理。
11.根據(jù)權(quán)利要求10的裝置,其中至少一個代理包括至少一個SDP代理。
12.根據(jù)權(quán)利要求11的裝置,其中至少一個代理商包括至少一個MTP代理。
13.根據(jù)權(quán)利要求12的裝置,其中至少一個MTP代理包括實(shí)時傳輸協(xié)議。
14.根據(jù)權(quán)利要求9的裝置,其中至少一個業(yè)務(wù)濃縮器進(jìn)一步包括至少一個業(yè)務(wù)輸出隊(duì)列。
15.根據(jù)權(quán)利要求9的裝置,進(jìn)一步包括傳送業(yè)務(wù)請求的至少一個傳送客戶;和接收處理請求的至少一個接收客戶。
16.一種計算機(jī)程序產(chǎn)品,包括計算機(jī)可用介質(zhì),包括其中記錄的計算機(jī)可讀代碼,用于處理數(shù)據(jù)來控制訪問至少一個應(yīng)用程序的至少一個請求,該計算機(jī)可用介質(zhì)包括請求接收模塊,配置成接收訪問至少一個應(yīng)用程序的至少一個請求;通信建立模塊,配置成與請求訪問至少一個應(yīng)用程序的至少一個客戶建立通信鏈路;存儲模塊,配置成存儲至少一個接收的請求;校驗(yàn)?zāi)K,配置成校驗(yàn)通信路徑是否能夠允許訪問至少一個應(yīng)用程序;和通信建立模塊還配置成與至少一個應(yīng)用程序建立通信鏈路。
17.根據(jù)權(quán)利要求16的計算機(jī)程序產(chǎn)品,進(jìn)一步包括業(yè)務(wù)濃度模塊,配置成包括至少一個請求處理器;該至少一個請求處理器產(chǎn)生存儲在存儲模塊的至少一個業(yè)務(wù)請求;和至少一個應(yīng)用程序處理器,使得至少一個應(yīng)用程序處理器移出存儲的請求和傳送存儲的請求到至少一個應(yīng)用程序進(jìn)行處理。
18.根據(jù)權(quán)利要求16的計算機(jī)程序產(chǎn)品,其中該通信模塊還配置成將至少一個處理的請求輸出到至少一個客戶表示的至少一個地址。
19.根據(jù)權(quán)利要求16的計算機(jī)程序產(chǎn)品,其中該存儲模塊還配置成在傳送之前存儲至少一個處理請求。
20.根據(jù)權(quán)利要求17的計算機(jī)程序產(chǎn)品,進(jìn)一步包括sip代理模塊,配置成提供呼叫控制。
21.根據(jù)權(quán)利要求20的計算機(jī)程序產(chǎn)品,進(jìn)一步包括sdp代理模塊,配置成提供對話描述,使得sip代理模塊引導(dǎo)至少一個請求到請求處理器模塊。
22.根據(jù)權(quán)利要求21的計算機(jī)程序產(chǎn)品,進(jìn)一步包括介質(zhì)傳輸協(xié)議代理,配置成提供傳輸協(xié)議。
23.一種計算機(jī)程序產(chǎn)品,包括計算機(jī)可用介質(zhì),在其中記錄的計算機(jī)可讀代碼,用于處理數(shù)據(jù)來控制訪問至少一個應(yīng)用程序的至少一個請求,該計算機(jī)可用媒體包括請求接收模塊,配置成接收訪問至少一個應(yīng)用程序的至少一個請求;第一通信建立模塊,配置成與請求訪問至少一個應(yīng)用程序的至少一個客戶建立通信鏈路。存儲模塊,配置成存儲至少一個接收的請求;校驗(yàn)?zāi)K,配置成校驗(yàn)通信路徑是否能夠允許訪問至少一個應(yīng)用程序;和第二通信建立模塊還配置成與至少一個應(yīng)用程序建立通信鏈路。
24.根據(jù)權(quán)利要求23的計算機(jī)程序產(chǎn)品,進(jìn)一步包括第三通信建立模塊,配置成與至少一個地址建立通信鏈路以接收至少一個處理的請求。
25.傳輸協(xié)議無關(guān)地將至少一個資源的至少一個請求連接到至少一個資源的至少一個提供商的方法,該方法在至少一個處理器執(zhí)行,包括步驟接收至少一個資源的至少一個請求;確定與至少一個請求有關(guān)的傳輸協(xié)議;識別能夠支持該確定的傳輸協(xié)議的至少一個請求資源的至少一個提供商;和將至少一個請求發(fā)送到至少一個提供商。
26.根據(jù)權(quán)利要求25的方法,其中接收步驟包括提供多個接收端口,使得每個端口能夠接收多個傳輸協(xié)議之一;將收到的至少一個請求傳送到至少一個協(xié)議處理器;和根據(jù)至少一個接收的請求產(chǎn)生至少一個對話消息。
27.根據(jù)權(quán)利要求26的方法,其中確定傳輸協(xié)議的步驟使用該至少一個產(chǎn)生的對話消息的至少一個對話消息確定傳輸協(xié)議。
28.根據(jù)權(quán)利要求25的方法,進(jìn)一步包括步驟保持有關(guān)至少一個請求的狀態(tài)信息。
29.根據(jù)權(quán)利要求28的方法,其中保護(hù)狀態(tài)信息的步驟包括創(chuàng)建包括至少有關(guān)對話的狀態(tài)信息的對話目標(biāo);和利用唯一標(biāo)識符存儲對話目標(biāo)。
30.根據(jù)權(quán)利要求25的方法,其中該識別步驟進(jìn)一步包括為至少一個資源的至少一個提供商注冊信息。
31.根據(jù)權(quán)利要求30的方法,其中該注冊信息步驟包括為每個該至少一個注冊提供商存儲至少一個唯一的位置;存儲每個該至少一個注冊提供商支持的傳輸協(xié)議;和存儲表示由每個該至少一個提供商提供的至少一個資源的信息。
32.根據(jù)權(quán)利要求30的方法,其中該注冊至少一個資源的至少一個提供商包括輪詢可用的資源。
33.根據(jù)權(quán)利要求30的方法,其中該識別步驟包括使用該注冊信息。
34.根據(jù)權(quán)利要求25的方法,其中該路由選擇步驟進(jìn)一步包括應(yīng)用路由選擇規(guī)則。
35.根據(jù)權(quán)利要求34的方法,其中該路由選擇規(guī)則包括該組路由選擇規(guī)則之一,這組路由選擇規(guī)則包括負(fù)載平衡規(guī)則、最不忙路由選擇規(guī)則或基于時間的路由選擇規(guī)則。
36.根據(jù)權(quán)利要求25的方法,進(jìn)一步包括步驟根據(jù)至少一個接收的請求產(chǎn)生記帳事件。
37.權(quán)利要求36的方法,其中產(chǎn)生該記帳事件還根據(jù)至少一個提供商。
38.根據(jù)權(quán)利要求25的方法,進(jìn)一步包括步驟建立到至少一個提供商的呼叫連接以實(shí)現(xiàn)該至少一個請求;和控制該呼叫。
39.根據(jù)權(quán)利要求25的方法,進(jìn)一步包括步驟將該至少一個接收的請求傳送到至少一個代理控制器以識別該至少一個提供商。
40.一種連接資源請求與資源提供商的裝置,包括控制器,能夠接收至少一個資源的至少一個請求;協(xié)議棧,能夠確定與該至少一個請求有關(guān)的至少一個傳輸協(xié)議;資源定位器,能夠識別該至少一個請求的資源的至少一個提供商,該至少一個提供商能夠支持確定的傳輸協(xié)議;和路由器,將該請求發(fā)送到該至少一個提供商。
41.根據(jù)權(quán)利要求40的裝置,其中該控制器包括至少一個協(xié)議處理器。
42.根據(jù)權(quán)利要求40的裝置,包括對話消息處理器,根據(jù)控制器收到的該至少一個請求產(chǎn)生至少一個對話消息;該對話消息處理器將該至少一個產(chǎn)生的對話消息傳送到該協(xié)議棧;和該協(xié)議棧使用該至少一個產(chǎn)生的對話消息確定該至少一個傳輸協(xié)議。
43.根據(jù)權(quán)利要求40的裝置,其中該資源定位器包括包含有關(guān)至少一個提供商的信息的數(shù)據(jù)庫。
44.根據(jù)權(quán)利要求43的裝置,其中包含在該數(shù)據(jù)庫中的信息包括用于每一個該至少一個提供商的唯一的位置;由每一個該至少一個提供商支持的至少一個傳輸協(xié)議;和由每一個該至少一個提供商支持的至少一個資源;
45.根據(jù)權(quán)利要求44的裝置,其中該資源定位器包括輪詢產(chǎn)生器,用于發(fā)送能夠從至少一個資源請求該信息的信號。
46.根據(jù)權(quán)利要求40的裝置,其中該路由器包括規(guī)則組件,使得該規(guī)則組件從識別至少一個提供商中選擇一個實(shí)際的提供商,將至少一個請求發(fā)送到這個提供商。
47.根據(jù)權(quán)利要求46的裝置,其中該規(guī)則組件使用負(fù)載平衡規(guī)則。
48.根據(jù)權(quán)利要求46的裝置,其中該規(guī)則組件使用最不忙規(guī)則。
49.根據(jù)權(quán)利要求46的裝置,其中該規(guī)則組件使用基于時間的路由選擇規(guī)則。
50.根據(jù)權(quán)利要求40的裝置,包括記帳事件產(chǎn)生器,根據(jù)該至少一個接收的請求產(chǎn)生至少一個記帳記錄。
51.根據(jù)權(quán)利要求50的裝置,其中該至少一個產(chǎn)生的記帳記錄還根據(jù)實(shí)際的提供商。
52.根據(jù)權(quán)利要求40的裝置,包括呼叫控制器,用于在實(shí)際的提供商和客戶之間建立呼叫連接;和該呼叫控制器控制該呼叫。
53.根據(jù)權(quán)利要求40的裝置,包括傳送控制器,將至該少一個請求傳送到代理控制器。
54.一種計算機(jī)程序產(chǎn)品,包括計算機(jī)可用介質(zhì),包括其中記錄的計算機(jī)可讀代碼,用于處理數(shù)據(jù)來控制訪問至少一個應(yīng)用程序的至少一個請求,該計算機(jī)可用介質(zhì)包括請求接收模塊,配置成接收至少一個資源的至少一個請求;協(xié)議確定模塊,配置成確定與該至少一個請求有關(guān)的至少一個傳輸協(xié)議;資源定位器模塊,配置成識別該至少一個請求資源的至少一個提供商,該至少一個提供商能夠支持確定的至少一個傳輸協(xié)議;和路由選擇模塊,配置成將該至少一個請求發(fā)送到該至少一個識別的提供商的實(shí)際提供商。
55.根據(jù)權(quán)利要求54的計算機(jī)程序產(chǎn)品,包括協(xié)議處理器模塊;對話傳送消息模塊;該請求接收模塊配置成傳送該至少一個接收的請求到該協(xié)議處理器模塊;和該協(xié)議處理器模塊配置成識別至少一個傳輸協(xié)議和傳送該識別的至少一個傳輸協(xié)議到該對話傳送消息模塊;該對話傳送消息模塊配置成根據(jù)該至少一個接收的請求產(chǎn)生對話消息。
56.根據(jù)權(quán)利要求54的計算機(jī)程序產(chǎn)品,包括存儲模塊,配置成存儲有關(guān)至少一個資源的該至少一個提供商的信息。
57.根據(jù)權(quán)利要求56的計算機(jī)程序產(chǎn)品,其中該存儲模塊配置成存儲有關(guān)該至少一個提供商的位置信息;由該至少一個提供商支持的傳輸協(xié)議信息;和與該至少一個提供商有關(guān)的至少一個資源。
58.根據(jù)權(quán)利要求54的計算機(jī)程序產(chǎn)品,包括規(guī)則模塊,配置成使用路由選擇規(guī)則將該至少一個請求發(fā)送到該實(shí)際提供商,該路由選擇規(guī)則包括負(fù)載平衡規(guī)則、最不忙規(guī)則和基于時間的規(guī)則。
59.根據(jù)權(quán)利要求54的計算機(jī)程序產(chǎn)品,包括記帳模塊,配置成根據(jù)該至少一個接收的請求產(chǎn)生至少一個記帳記錄。
60.根據(jù)權(quán)利要求59的計算機(jī)程序產(chǎn)品,其中該記帳模塊還配置成根據(jù)該至少一個提供商產(chǎn)生該至少一個記帳記錄。
全文摘要
本發(fā)明用于復(fù)用應(yīng)用程序。特別是,訪問服務(wù)器(308/310)從用戶(302、402、2410)接收請求訪問應(yīng)用程序(312)。根據(jù)接收的請求,訪問服務(wù)器(308/310)建立訪問服務(wù)器(308/310)和用戶(302、402、2410)之間的通信鏈路。當(dāng)所請求應(yīng)用程序(312)的可用通信路徑(1808)可用時,訪問請求保存在輸入請求隊(duì)列(1804)中。建立輸入請求隊(duì)列(1804)和應(yīng)用程序(312)之間的通信路徑(1808),移出和發(fā)送存儲的請求給應(yīng)用程序(312)。此外,本發(fā)明提供協(xié)議無關(guān)的控制模塊(1900),以多個協(xié)議格式向請求客戶(302、402、2410)提供應(yīng)用程序(312)。特別是,控制模塊能夠識別要求或請求的協(xié)議和選擇能夠支持所識別協(xié)議的應(yīng)用程序和業(yè)務(wù)提供商(312、314)。
文檔編號H04L12/24GK1460212SQ02801006
公開日2003年12月3日 申請日期2002年4月1日 優(yōu)先權(quán)日2001年3月30日
發(fā)明者布賴恩·馬凱特, 羅伯特·埃爾南德斯, 保羅·魏貝爾, 布雷特·B·布徹, 馬克·B·阿博特, 杰西·梅倫德斯 申請人:三德愜瑞公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
来凤县| 正宁县| 衡东县| 黄浦区| 二连浩特市| 仁布县| 武义县| 鹤岗市| 东乡| 金塔县| 安龙县| 田阳县| 安达市| 永靖县| 肇东市| 定南县| 乌兰县| 体育| 漯河市| 民乐县| 平罗县| 侯马市| 罗定市| 乌鲁木齐市| 廉江市| 嘉义市| 永德县| 柞水县| 新营市| 城口县| 云浮市| 五大连池市| 霸州市| 额尔古纳市| 抚宁县| 安多县| 开封县| 噶尔县| 水富县| 房山区| 葫芦岛市|