專利名稱:用于策略使能編程的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大致涉及通信、信息和娛樂服務(wù)的編程。
背景技術(shù):
以傳統(tǒng)形式編寫的軟件應(yīng)用程序具有在應(yīng)用程序代碼內(nèi)定義的所有功能。一旦部 署了這樣的應(yīng)用程序,提供該應(yīng)用程序的提供商便沒有影響應(yīng)用程序的行為的余地。應(yīng)用 程序具有少數(shù)可以調(diào)節(jié)的參數(shù),然而通常除非修改了應(yīng)用程序代碼,否則應(yīng)用程序的行為 是固定的。希望專注于動態(tài)市場的服務(wù)提供商需要快速提供新服務(wù)的靈活性。與修改應(yīng)用程 序代碼相關(guān)的周期令人不可接受地延緩了該過程。從而,對于應(yīng)用程序代碼,需要在不等待 軟件發(fā)布的情況下便可以對應(yīng)用程序行為進(jìn)行修改。在用于構(gòu)建智能電話網(wǎng)絡(luò)服務(wù)的智能網(wǎng)和高級智能網(wǎng)概念的開發(fā)中,涉及到類似 的動機(jī)。通過改變在電話交換機(jī)內(nèi)的代碼來構(gòu)造新的服務(wù)是可能的,然而這相當(dāng)?shù)穆吐?煩。所選方式是精確地定義呼叫模型,該呼叫模型指定了在建立雙方之間的連接時(shí)電話交 換軟件的狀態(tài)。在呼叫模型中的各個(gè)點(diǎn)處,可配置電話交換機(jī)向外部服務(wù)控制點(diǎn)查詢關(guān)于 怎樣進(jìn)行處理的指令。通過改變服務(wù)控制點(diǎn)中邏輯的行為而不對交換系統(tǒng)內(nèi)的軟件自身做 出改變,便可以產(chǎn)生新的服務(wù)功能。該方式極大地依賴于對交換系統(tǒng)的狀態(tài)進(jìn)行指定的公共呼叫模型和所期望的行 為。因?yàn)閺囊粋€(gè)系統(tǒng)到另一個(gè)系統(tǒng),建立呼叫的處理是一致的,因此可以定義這樣的呼叫模 型。呼叫模型的定義和商定花費(fèi)相當(dāng)多的時(shí)間,這是可以容忍的,因?yàn)殡娫捄艚械奶幚碓跁r(shí) 間上是相對靜態(tài)的。在提供商頻繁地提供新的并且變化的服務(wù)的環(huán)境中,為服務(wù)邏輯的內(nèi) 部狀態(tài)定義如此詳細(xì)的模型將是不可能的。雖然該公共呼叫模型技術(shù)具有所期望的特性, 然而不能將其直接應(yīng)用于對緊急的、新的并且變化的服務(wù)所進(jìn)行的處理。電信設(shè)備廠商和運(yùn)營商通過向呼叫處理系統(tǒng)增加附加特征來解決類似的問題。該 商定的解決方案(高級智能網(wǎng)(AIN)的基礎(chǔ))定義了另一公共呼叫模型,作為對電話呼 叫的建立進(jìn)行處理的基礎(chǔ)。該公共呼叫模型提供了事件的預(yù)定義集合,其中,可以向外部 系統(tǒng)查詢決策。例如,美國專利 5,940,487,"Programmable call processing systemand method",Bunch等人示意了在與AIN耦合的分布式電信交換系統(tǒng)上的這種方式。這種處理 呼叫的服務(wù)交換點(diǎn)(交換機(jī))與處理服務(wù)邏輯的服務(wù)控制點(diǎn)的分離允許在不對交換機(jī)內(nèi)的 軟件進(jìn)行改變的情況下對新的呼叫服務(wù)進(jìn)行了定義。這種方式對于控制電路交換網(wǎng)內(nèi)的電 話呼叫起到很好的作用,并通過諸如Parlay組織規(guī)范和Java社區(qū)處理JAIN規(guī)范等工業(yè)論 壇的結(jié)果擴(kuò)展到下一代分組交換網(wǎng)絡(luò)中。需要這樣的標(biāo)準(zhǔn)化的事實(shí)指示了該方式的局限在 于,其處理特定的功能(呼叫控制)并要求事先協(xié)定和/或?qū)δ艿臉?biāo)準(zhǔn)化。從而,該方式 適于在時(shí)間上靜態(tài)的應(yīng)用程序功能。i^H^^J 6, 970, 901, "Device and method for swapping out a partof a service logic program”中,Moritz教導(dǎo)了用于在多個(gè)實(shí)體上分布服務(wù)邏輯的機(jī)制。Moritz特別地專注于使用作為客戶端的智能終端的日益增加的能力,這是通過將服務(wù)邏輯 的一部分分布到客戶端來實(shí)現(xiàn)的。Moritz公開了用于使用這種分布式的方式來確定與計(jì)費(fèi) 相關(guān)的信息的方法。對客戶設(shè)備的分布可以實(shí)現(xiàn)個(gè)性化,然而并未易于實(shí)現(xiàn)對整個(gè)服務(wù)的 行為的修改,因?yàn)楸仨殞⒏淖儌鞑サ剿械目蛻舳嗽O(shè)備。因?yàn)榭梢允孪葘νㄐ艡C(jī)制(Moritz 中的“計(jì)費(fèi)票”)進(jìn)行定義和編碼,簡化了對單個(gè)主題(如,計(jì)費(fèi))的分布的實(shí)現(xiàn)。從而, Moritz解決了靈活的業(yè)務(wù)邏輯編程的需求,然而是在非常有限的領(lǐng)域中解決的。在美國專利6, 967, 957, "Architecture for the rapid creation oftelephony services in a next generation network”巾,Anjum ·入了胃 (寸|白勺Hf 口L]|1M,. 呼叫模型“向應(yīng)用程序隱瞞了基本的呼叫狀態(tài)管理協(xié)議和硬件”。特別地,Anjum等描述了 新的呼叫模型,該呼叫模型被設(shè)計(jì)為抽象得足以表示在電路交換和分組交換電話網(wǎng)絡(luò)中的 呼叫控制。這種呼叫模型比其所基于的Java電話應(yīng)用程序接口(JTAPI)模型更加靈活,然 而仍然表示單個(gè)功能。從而,該模型不能夠應(yīng)用于更一般的情況中,在更一般的情況中,事 先沒有很好地定義行為或?qū)π袨橛星宄亓私?。開放移動聯(lián)盟(OMA)內(nèi)的策略評估執(zhí)行管理(PEEM)研究描述了用于策略評 估和執(zhí)行的架構(gòu)來作為OMA的服務(wù)使能器(enabler)的支持,在草案需求文檔“Policy Evaluation, Enforcement andManagement Architecture" (OMA-AD-Po 1 icy_Evaluation_ Enforcement_Management-Vl_0-200600625-D)中對此進(jìn)行了指定。這些使能器包括諸如群 列表管理、消息收發(fā)和位置等功能。該架構(gòu)被設(shè)計(jì)提供針對這些使能器的公共框架,以查詢 策略決策。雖然不要求,但作為用于在此描述的策略使能編程的構(gòu)造塊,這種能力將是有用 的,因?yàn)檫@種能力可以簡化系統(tǒng)間映射接口的處理。然而,OMA的工作沒有指定使能器將如 何確定何時(shí)查詢策略引擎(PEEM使能器)或者查詢哪個(gè)策略引擎。另一種方式為工作流系統(tǒng)所支持。在這些常常應(yīng)用于復(fù)雜的命令處理的系統(tǒng)中, 處理步驟的集合是以在運(yùn)行時(shí)進(jìn)行翻譯的文本的形式定義的,而不是以軟件代碼的形式編 譯的。這提供了靈活性,因?yàn)榭梢栽诓桓淖児ぷ髁饕娴拇a的情況下修改工作流。然而, 翻譯工作效率低下,導(dǎo)致性能足以用于命令處理,然而對于實(shí)際業(yè)務(wù)的執(zhí)行來說通常是不 足的。數(shù)據(jù)庫系統(tǒng)還提供了另一種機(jī)制,在該機(jī)制中,可以調(diào)用觸發(fā)器和所存儲的流程 來執(zhí)行邏輯,該機(jī)制提供了大量的靈活性。然而,僅存在針對于對數(shù)據(jù)庫中數(shù)據(jù)的插入、刪 除、更新和選擇的數(shù)據(jù)庫操作的,可以執(zhí)行所存儲的流程的操作。該方式的問題在于對數(shù)據(jù) 庫操作的限制;整個(gè)規(guī)范在數(shù)據(jù)庫系統(tǒng)內(nèi),并且除非巡覽過數(shù)據(jù)和相關(guān)聯(lián)的觸發(fā)器和所存 儲的流程,否則不是能夠輕易對照或修改的。因此,當(dāng)前的處理被限制于特定的軟件應(yīng)用程序類型(如,呼叫處理),并且在應(yīng) 用程序處理模型可以使用之前,具有該應(yīng)用程序處理模型所需的高級協(xié)定和/或標(biāo)準(zhǔn)化。 其它當(dāng)前的處理僅存在于諸如數(shù)據(jù)庫和工作流系統(tǒng)等中間件內(nèi),這限制了這些其它的當(dāng)前 處理的范圍,并且不滿足對于服務(wù)執(zhí)行的性能需求。從而,需要能夠動態(tài)地確定何時(shí)以及在何 處查詢諸如策略引擎等外部決策點(diǎn)的系 統(tǒng)。還需要結(jié)構(gòu)化和高效的、用于配置這種動態(tài)查詢的機(jī)制,其特征在于,可以被配置為受 控的選項(xiàng)集合的中斷點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明有利地提供了用于構(gòu)造和部署應(yīng)用程序軟件的設(shè)計(jì)架構(gòu)和方法學(xué),該設(shè)計(jì) 架構(gòu)和方法學(xué)允許在執(zhí)行期間,在不改變應(yīng)用程序的代碼的情況下,適配或配置應(yīng)用程序 的行為。提供了通過應(yīng)用程序的配置或適配,針對不同的目的對單個(gè)軟件應(yīng)用程序的多次 重用。此外,本發(fā)明的系統(tǒng)和方法實(shí)現(xiàn)了新的業(yè)務(wù)行為的快速部署,這是因?yàn)榭梢栽跊]有與 軟件開發(fā)周期相關(guān)聯(lián)的延遲的情況下傳遞這些新的業(yè)務(wù)行為。一種系統(tǒng)和方法,用于允許在電信系統(tǒng)中對應(yīng)用程序的應(yīng)用程序行為進(jìn)行外部執(zhí) 行時(shí)適配,所述系統(tǒng)包括具有至少一個(gè)中斷點(diǎn)并駐留在應(yīng)用程序服務(wù)器上的應(yīng)用程序; 至少一個(gè)可識別的決策引擎;以及針對每一個(gè)中斷點(diǎn),具有決策引擎的至少一個(gè)標(biāo)識符的 中斷點(diǎn)列表,使得在中斷點(diǎn)中的一個(gè)處,應(yīng)用程序訪問中斷點(diǎn)列表,調(diào)用與中斷點(diǎn)相對應(yīng)的 決策引擎的所列實(shí)例,并基于該決策引擎對應(yīng)用程序的行為進(jìn)行適配。中斷點(diǎn)列表可以是應(yīng)用程序外部的文件,并可以包含針對每一個(gè)標(biāo)識符和針對每 一 個(gè)標(biāo)識符的動作類型的屬性映射,此外,中斷點(diǎn)列表可以動態(tài)地將中斷點(diǎn)映射到?jīng)Q策引 擎。
通過以非限制地示出的本發(fā)明的實(shí)施例的方式來參考所提到的圖,對隨后的詳細(xì) 描述進(jìn)行了進(jìn)一步的描述,在圖中,相同的附圖標(biāo)記表示所有圖中類似的部分。然而,應(yīng)該 理解的是,本發(fā)明不限于所示出的精確的布置和手段。在圖中圖1是用于策略使能的程序執(zhí)行的架構(gòu);以及圖2是中斷點(diǎn)配置的示例性的表;以及圖3是示出在處理中斷點(diǎn)配置表中的條目時(shí),應(yīng)用程序的行為的流程圖。
具體實(shí)施例方式提出了允許應(yīng)用程序行為的外部執(zhí)行時(shí)間適配的系統(tǒng)和方法。該方式的關(guān)鍵特征 是,向應(yīng)用程序開發(fā)員提供了與所編譯的代碼相關(guān)聯(lián)的性能以及對應(yīng)用程序流內(nèi)的決策點(diǎn) 和可能的動作進(jìn)行定義的靈活性的,允許將這些決策點(diǎn)動態(tài)地映射到外部的評估引擎,以 及使得當(dāng)部署應(yīng)用程序時(shí)或甚至在執(zhí)行應(yīng)用程序時(shí)能夠?qū)⒈慌渲玫膽?yīng)用程序的行為,而不 是僅在應(yīng)用程序的設(shè)計(jì)和開發(fā)期間能夠配置應(yīng)用程序的行為。有兩種支持這種系統(tǒng)和方法的特定機(jī)制。第一種是外部表,如中斷點(diǎn)配置表。應(yīng) 用程序在其執(zhí)行期間到達(dá)中斷點(diǎn)時(shí)讀取該表,以確定采取什么動作?;趯υ诮o定的中斷 點(diǎn)處應(yīng)用程序已定義了什么屬性或變量的了解,可以與應(yīng)用程序分離地定義該表中的條 目,并且甚至可以在應(yīng)用程序運(yùn)行時(shí)改變該表中的條目。第二種適配方法包含在外部系統(tǒng) 中。這些系統(tǒng)內(nèi)的邏輯、策略和/或規(guī)則將創(chuàng)建將要影響到應(yīng)用程序的后續(xù)流程和行為的 響應(yīng)。采用這兩種機(jī)制,可以在不必重寫或修改應(yīng)用程序代碼的情況下對應(yīng)用程序的行為 進(jìn)行重大的修改。圖1示出了本發(fā)明系統(tǒng)的一個(gè)實(shí)施例。策略使能的應(yīng)用程序10駐留在電信系統(tǒng) (未示出)的應(yīng)用程序服務(wù)器12中。策略使能的應(yīng)用程序10是以應(yīng)用程序邏輯的流程內(nèi) 的可配置中斷點(diǎn)14的指定集合來構(gòu)建的。當(dāng)應(yīng)用程序代碼的執(zhí)行到達(dá)這些中斷點(diǎn)14中的一個(gè)時(shí),應(yīng)用程序代碼查看中斷點(diǎn)配置的列表或外部表16 (如,中斷點(diǎn)配置表),所述中斷 點(diǎn)配置的列表或外部表16包含包括動作類型18在內(nèi)的數(shù)據(jù)。通過評估該數(shù)據(jù),應(yīng)用程序 10可以確定在中斷點(diǎn)14處將要采取的動作。為了管理表的復(fù)雜度,可以限制可能的動作 類型的數(shù)目。對于應(yīng)用程序,一般的動作可以是向外部系統(tǒng)20發(fā)送數(shù)據(jù),并使用所產(chǎn)生的 響應(yīng)來確定應(yīng)用程序的后續(xù)動作。如在其已編譯的代碼內(nèi)所定義的那樣,執(zhí)行這些后續(xù)動 作,作為具有相關(guān)聯(lián)的性能的應(yīng)用程序10的一部分。外部系統(tǒng)20可以是決策引擎、策略引 擎或從應(yīng)用程序10接收輸入、應(yīng)用所定義的一個(gè)或多個(gè)策略的集合以及提供響應(yīng)的策略 決策點(diǎn)。通過修改該策略中的一個(gè)或多個(gè),而不是通過改變應(yīng)用程序的代碼來改變應(yīng)用程 序的行為。在備選的實(shí)施例中,可以在應(yīng)用程序10中實(shí)現(xiàn)跳轉(zhuǎn)表(未示出)。在這種情況 下,可以通過修改外部決策點(diǎn)或通過修改和重新編譯應(yīng)用程序10來改變應(yīng)用程序的行為。注意,外部系統(tǒng)20還可以是工作流系統(tǒng)、數(shù)據(jù)庫系統(tǒng)或甚至另外的軟件應(yīng)用程 序。甚至在將決策點(diǎn)硬編碼于策略使能應(yīng)用程序10中的情況下,可將映射改變?yōu)橹赶虿煌?的軟件應(yīng)用程序的事實(shí)也提供了靈活性。策略使能應(yīng)用程序10可以對其從外部策略引擎20接收到的響應(yīng)做出反應(yīng)的方式 有很多。構(gòu)造在確定其后續(xù)行為時(shí)給予外部系統(tǒng)20完全的靈活性的應(yīng)用程序10可能是極 端困難和容易出錯的。然而,通過對動作類型或選項(xiàng)18的范圍進(jìn)行了適當(dāng)?shù)南拗?,可以?復(fù)雜度保持在可管理的水平。特別地,可以基于外部系統(tǒng)20提供的響應(yīng)來設(shè)計(jì)應(yīng)用程序, 以支持?jǐn)?shù)目有限的動作類型18。這些動作類型18的示例可以包括分支或雙路的決策點(diǎn)動 作、空動作和變量替換動作。在雙路決策點(diǎn)動作18中,應(yīng)用程序10向外部系統(tǒng)20發(fā)送消息,并且外部系統(tǒng)提 供二進(jìn)制(即,“是/否”或“真/假”)響應(yīng)。如果響應(yīng)是“是”,那么應(yīng)用程序10沿著一條 預(yù)定義的路徑前進(jìn),如果響應(yīng)是“否”,應(yīng)用程序10沿著另一條路徑前進(jìn)。當(dāng)應(yīng)用程序10在 該決策點(diǎn)動作18中僅執(zhí)行兩個(gè)選項(xiàng)中的一個(gè)時(shí),基于外部系統(tǒng)20用來進(jìn)行決策的策略或 處理,整個(gè)行為可以發(fā)生極大的改變??梢詫⒋藬U(kuò)展到可能存在多條路徑的多路決策動作。作為示例,被設(shè)計(jì)為向用戶傳遞或發(fā)送數(shù)字內(nèi)容項(xiàng)的應(yīng)用程序10可以包括剛好 在內(nèi)容發(fā)送之前的中斷點(diǎn)14。響應(yīng)于該中斷點(diǎn)14,應(yīng)用程序10在向外部策略引擎20的查 詢中提供識別用戶以及內(nèi)容項(xiàng)列表的信息。如果響應(yīng)是“是”,應(yīng)用程序被編程為繼續(xù)進(jìn)行 內(nèi)容的傳輸,如果響應(yīng)是“否”,取消傳輸。在一種情況下,外部系統(tǒng)20可以是確定用戶是否 有充足的結(jié)余來支付該項(xiàng)的實(shí)時(shí)計(jì)費(fèi)引擎。如果用戶的結(jié)余充足,外部系統(tǒng)20將用戶的賬 戶計(jì)入借方并返回“是”,如果結(jié)余不足,外部系統(tǒng)20返回“否”。在另一種情況中,外部系 統(tǒng)20可以是授權(quán)系統(tǒng),該授權(quán)系統(tǒng)僅允許將內(nèi)容下載到特定物理位置內(nèi)的用戶,以例如作 為公司的安全措施或作為餐館吸引游客的手段。如果用戶位于針對該內(nèi)容項(xiàng)指定的區(qū)域范 圍內(nèi),外部系統(tǒng)20返回“是”,如果沒有,系統(tǒng)20返回“否”。從而,兩種使用截然不同的外 部系統(tǒng)20的完全不同的服務(wù)使用同一個(gè)內(nèi)容傳遞策略使能的應(yīng)用程序10。在空動作18的情況下,應(yīng)用程序10只是執(zhí)行中斷點(diǎn)14并繼續(xù)操作??談幼鬟m于 應(yīng)用程序只是需要告知外部系統(tǒng)20某些事件的情況。在上述的內(nèi)容下載服務(wù)示例中,可以 指示應(yīng)用程序10剛好在內(nèi)容發(fā)送之前執(zhí)行包括空動作在內(nèi)的中斷點(diǎn)14。執(zhí)行該中斷點(diǎn)14 可以使得外部系統(tǒng)記錄包括內(nèi)容項(xiàng)列表在內(nèi)的下載事件,以使得在下一個(gè)記賬周期期間針 對該內(nèi)容向具有后付費(fèi)賬戶的用戶收費(fèi)。
在變量替換動作18的情況下,應(yīng)用程序10使用來自外部系統(tǒng)20的響應(yīng)來改變應(yīng) 用程序10正在處理的變量的值。在以上的內(nèi)容下載服務(wù)示例中,可以指示應(yīng)用程序10剛好 在內(nèi)容發(fā)送之前執(zhí)行包括變量替換動作在內(nèi)的中斷點(diǎn)14。執(zhí)行該中斷點(diǎn)14可以使得外部 系統(tǒng)20過濾內(nèi)容項(xiàng)的列表,移除其評定信息指示其不能被用戶所接受的那些內(nèi)容項(xiàng),這可 能是基于所識別的用戶的年紀(jì)或偏好來進(jìn)行的。然后,外部系統(tǒng)20向應(yīng)用程序10返回經(jīng) 過濾的列表,應(yīng)用程序10使用經(jīng)過濾的列表來替換初始的內(nèi)容項(xiàng)列表,并繼續(xù)進(jìn)行下載??梢韵薅ㄆ渌膭幼黝愋?8,在對應(yīng)用程序流的控制中提供更大的靈活性。注意, 期望限制動作類型或選項(xiàng)18的數(shù)目,以避免在應(yīng)用程序10的構(gòu)建中不適當(dāng)?shù)膹?fù)雜度。 策略使能的應(yīng)用程序10可以在應(yīng)用程序服務(wù)器12或服務(wù)傳遞平臺內(nèi)執(zhí)行,并可 以本地訪問中斷點(diǎn)配置表16,該中斷點(diǎn)配置表16可以指定與每一個(gè)中斷點(diǎn)14相關(guān)聯(lián)的應(yīng) 用程序的行為。圖2示出了可由負(fù)責(zé)產(chǎn)品/服務(wù)部署的供應(yīng)系統(tǒng)填充的示例性的表16。表 16不僅包括以上討論的動作類型18,還包括下面將要更詳細(xì)地描述的隨后的字段策略引 擎或外部系統(tǒng)20的地址、序列號24和屬性映射26。策略使能的應(yīng)用程序10可以與一個(gè)或 多個(gè)外部策略決策點(diǎn)交互。配置表16將程序流內(nèi)的點(diǎn)與交互的方式(如,發(fā)送的屬性)相 鏈接,在所述程序流中,可以以與其交互的特定決策點(diǎn)來執(zhí)行交互。雖然在此的討論描述了策略決策點(diǎn),在此處定義的機(jī)制中,沒有將外部系統(tǒng)20限 制為策略評估器。任何具有所定義的調(diào)用接口的外部系統(tǒng)20都可以被用來替換策略決策 點(diǎn)ο表1中示出了簡化的抽樣配置表16。在這種情況下,存在與中斷點(diǎn)14相關(guān)聯(lián)的兩 個(gè)中斷點(diǎn)條目。針對第一個(gè)條目,應(yīng)用程序10必須通過經(jīng)由表16中的系統(tǒng)地址22向策略 引擎1發(fā)送屬性A、B和C來執(zhí)行屬性映射,并使用響應(yīng)來替換屬性C的值。針對第二個(gè)條 目,應(yīng)用程序10必須經(jīng)由表16中的系統(tǒng)地址22向策略引擎1發(fā)送屬性26A、C和D,并基 于“是/否”響應(yīng)來執(zhí)行決策點(diǎn)動作18。序列欄中的序列號24指示了與單個(gè)中斷點(diǎn)14相 關(guān)聯(lián)的調(diào)用的執(zhí)行順序??梢圆⑿械貓?zhí)行共享序列號24的調(diào)用。在沒有使用序列號24的 情況下,應(yīng)用程序10可以以在文件中找到的順序來執(zhí)行查詢。表1中斷點(diǎn)配置表 圖3包含示出了圖1所示的應(yīng)用程序10的行為的流程圖。參考該圖的左側(cè),在步 驟S 1處發(fā)起時(shí),應(yīng)用程序10通過階段1執(zhí)行所設(shè)計(jì)的活動。在步驟S2,應(yīng)用程序到達(dá)中 斷點(diǎn)114。在該點(diǎn)處,應(yīng)用程序查看中斷點(diǎn)配置表16,看是否有任何與中斷點(diǎn)114相關(guān)聯(lián)的 條目。圖3的右側(cè)示出了在中斷點(diǎn)1模塊內(nèi)用于處理這些條目的流程。一旦在步驟S3處進(jìn)入,應(yīng)用程序10在步驟S4處調(diào)用外部系統(tǒng)20,使用表16中定義的屬性映射26。當(dāng)外 部系統(tǒng)20響應(yīng)時(shí),應(yīng)用程序10在步驟S5處確定正在處理的中斷點(diǎn)的類型或動作類型18。 如果中斷點(diǎn)類型18是變量替換,應(yīng)用程序10在步驟S6處執(zhí)行配置表16中定義的替換,并 前進(jìn)至步驟S7檢驗(yàn)是否有更多的中斷點(diǎn)14要處理。如果中斷點(diǎn)類型18是空,應(yīng)用程序10 不需要等待響應(yīng),并直接前進(jìn)至步驟S7以檢驗(yàn)是否有更多的中斷點(diǎn)14需要處理。如果中 斷點(diǎn)類型18是分支,應(yīng)用程序10在步驟S8處檢驗(yàn)來自外部系統(tǒng)20的響應(yīng)。如果外部系 統(tǒng)20的響應(yīng)是“是”,應(yīng)用程序10前進(jìn)至在步驟S7處的檢驗(yàn)更多的中斷點(diǎn)14。如果外部 系統(tǒng)響應(yīng)是“否”,應(yīng)用程序在步驟S9處以“否”的退出條件從對任何其它中斷點(diǎn)條目14的 處理中斷,并返回主應(yīng)用程序流程。當(dāng)沒有更多的終端點(diǎn)條目14要處理時(shí),應(yīng)用程序10在 步驟SlO處以“是”的退出條件返回主應(yīng)用程序流。沒有示出在與外部系統(tǒng)20的交互中對異常和錯誤條件的處理。應(yīng)用程序10可以 被編程為具有各種異常處理行為,以處理返回的錯誤和無響應(yīng)的超時(shí)。備選地,可以對表進(jìn) 行擴(kuò)展以指示在特定的處理異常的情況下所采取的動作。對于本機(jī)制來說,應(yīng)用程序10處 理這些情況的方式不是關(guān)鍵的。該動態(tài)編程方式的關(guān)鍵方面是,可以將應(yīng)用程序中斷點(diǎn)14動態(tài)地映射到?jīng)Q策點(diǎn) 系統(tǒng)20以及決策點(diǎn)系統(tǒng)20內(nèi)特定的策略。有無數(shù)的可以執(zhí)行該映射的方法??赡茏钪苯?的方法是人工方式,在人工方式中,人類分析者創(chuàng)建中斷點(diǎn)配置表16、定義與每一個(gè)中斷點(diǎn) 14相對應(yīng)的策略、將配置表16加載到應(yīng)用程序服務(wù)器12中以及將策略加載到?jīng)Q策點(diǎn)中。 如果可以以結(jié)構(gòu)化的方式使應(yīng)用程序中斷點(diǎn)14和策略可見, 映射處理中更大的自動化和 有效程度是可能的。
設(shè)計(jì)環(huán)境可以將所有中斷點(diǎn)14的結(jié)構(gòu)化表示導(dǎo)入到用戶所選的應(yīng)用程序10中。 設(shè)計(jì)環(huán)境可以從其所知的決策點(diǎn)取得策略。當(dāng)人類用戶選擇中斷點(diǎn)14(表2中示出了中 斷點(diǎn)14的簡要表示)時(shí),設(shè)計(jì)環(huán)境可以取得并呈現(xiàn)那些有效的策略。例如,如果中斷點(diǎn)14 僅允許分支操作或兩路決策動作18,只有那些返回是/否或真/假值的那些策略才是適合 的。在選擇策略后,用戶可以將在所選中斷點(diǎn)14處從軟件應(yīng)用程序20可用的變量映射到 在如表3所示的策略的接口中指定的變量。然后,設(shè)計(jì)環(huán)境可以使該映射生效,例如確保諸 如串、整數(shù)等的類型匹配。在以這種方式成功定義所有的映射后,設(shè)計(jì)環(huán)境可以創(chuàng)建對應(yīng)的 中斷點(diǎn)配置表16并將其安裝在應(yīng)用程序服務(wù)器12上。表2簡化的中斷點(diǎn)表示結(jié)構(gòu) 表3簡化的策略調(diào)用接口結(jié)構(gòu) 雖然已在具體的實(shí)施例中對本發(fā)明進(jìn)行了描述,然而應(yīng)該意識到的是,不應(yīng)將本 發(fā)明解釋為被這些實(shí)施例所限制,而是應(yīng)該根據(jù)下面的權(quán)利要求來進(jìn)行解釋。
權(quán)利要求
一種系統(tǒng),用于允許在電信系統(tǒng)中對應(yīng)用程序的應(yīng)用程序行為進(jìn)行外部執(zhí)行時(shí)適配,所述系統(tǒng)包括駐留在應(yīng)用程序服務(wù)器上的應(yīng)用程序,所述應(yīng)用程序具有至少一個(gè)中斷點(diǎn);至少一個(gè)可識別的決策引擎;以及中斷點(diǎn)配置列表,針對每一個(gè)中斷點(diǎn),包括所述決策引擎的至少一個(gè)標(biāo)識符,其中,在所述中斷點(diǎn)中的至少一個(gè)處,所述應(yīng)用程序訪問所述中斷點(diǎn)配置列表,調(diào)用針對所述一個(gè)中斷點(diǎn)的所述決策引擎的所列實(shí)例,并基于所述至少一個(gè)決策引擎對應(yīng)用程序的行為進(jìn)行適配。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述中斷點(diǎn)配置列表在所述應(yīng)用程序外部。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述中斷點(diǎn)配置列表還包括針對每一個(gè)標(biāo)識符 的屬性映射以及針對每一個(gè)標(biāo)識符的動作類型。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述中斷點(diǎn)配置列表還包括與所述列表中的每 個(gè)條目相關(guān)聯(lián)的序列號。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述中斷點(diǎn)配置列表動態(tài)地將所述中斷點(diǎn)映射 到所述決策引擎。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,如果針對所述一個(gè)中斷點(diǎn)的每一個(gè)條目的所述 序列號是相等的,則并行地進(jìn)行調(diào)用。
7.一種用于允許在電信系統(tǒng)中對應(yīng)用程序的應(yīng)用程序行為進(jìn)行外部執(zhí)行時(shí)適配的方 法,所述方法包括在應(yīng)用程序中的至少一個(gè)中斷點(diǎn)的每一個(gè)處,訪問中斷點(diǎn)配置列表,針對所述至少一 個(gè)中斷點(diǎn)中的每一個(gè),所述列表具有決策引擎的至少一個(gè)標(biāo)識符;調(diào)用與所述中斷點(diǎn)相對應(yīng)的所有決策引擎,以及基于決策引擎對應(yīng)用程序的行為進(jìn)行適配。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述中斷點(diǎn)配置列表在所述應(yīng)用程序外部。
9.根據(jù)權(quán)利要求7所述的方法,其中,所述中斷點(diǎn)配置列表還包括針對每一個(gè)標(biāo)識符 的屬性映射以及針對每一個(gè)標(biāo)識符的動作類型。
10.根據(jù)權(quán)利要求7所述的方法,其中,所述中斷點(diǎn)配置列表還包括與所述列表中的 每個(gè)條目相關(guān)聯(lián)的序列號。
11.根據(jù)權(quán)利要求7所述的方法,其中,所述中斷點(diǎn)配置列表動態(tài)地將所述中斷點(diǎn)映射 到所述決策引擎。
12.根據(jù)權(quán)利要求7所述的方法,其中,如果針對所述一個(gè)中斷點(diǎn)的每一個(gè)條目的所述 序列號是相等的,則并行地進(jìn)行調(diào)用。
全文摘要
在不對應(yīng)用程序代碼進(jìn)行修改的情況下允許在電信系統(tǒng)中對應(yīng)用程序的應(yīng)用程序行為進(jìn)行外部執(zhí)行時(shí)適配的系統(tǒng)和方法包括具有至少一個(gè)中斷點(diǎn)并駐留在應(yīng)用程序服務(wù)器上的應(yīng)用程序;至少一個(gè)可識別的決策引擎;以及針對每一個(gè)中斷點(diǎn),具有決策引擎的至少一個(gè)標(biāo)識符的中斷點(diǎn)列表,使得在中斷點(diǎn)中的一個(gè)處,應(yīng)用程序訪問中斷點(diǎn)列表,調(diào)用與一個(gè)中斷點(diǎn)相對應(yīng)的決策引擎的所列實(shí)例,并基于該決策引擎對應(yīng)用程序的行為進(jìn)行適配。此外,中斷點(diǎn)列表中的每一個(gè)條目可以具有序列號,使得如果針對同一個(gè)中斷點(diǎn)的兩個(gè)條目具有相等的序列號,可以并行地調(diào)用在這些條目中識別出的決策引擎。
文檔編號G06F15/177GK101842781SQ200880113955
公開日2010年9月22日 申請日期2008年11月3日 優(yōu)先權(quán)日2007年11月2日
發(fā)明者穆尼爾·科欽瓦拉, 約瑟芬·米卡勒夫, 約翰·R·烏爾特Ii 申請人:特爾科迪亞許可公司有限公司