由于消費(fèi)興趣不斷推陳出新,運(yùn)營商不得不考慮提高自身的提供豐富個(gè)性化業(yè)務(wù)的能力,而不是在某項(xiàng)具體業(yè)務(wù)過多投資。因此,高效的新業(yè)務(wù)開發(fā)成為實(shí)現(xiàn)個(gè)性化通信消費(fèi)產(chǎn)品的系統(tǒng)集成項(xiàng)目的關(guān)鍵要素。而新業(yè)務(wù)的上市時(shí)間(TTM)的重要性也日益突出。
作為下一代融合網(wǎng)絡(luò)的核心,IMS標(biāo)準(zhǔn)和IMS技術(shù)一直廣受業(yè)界關(guān)注。關(guān)于IMS技術(shù)的優(yōu)點(diǎn)有很多,其中對(duì)應(yīng)用層開放而靈活的標(biāo)準(zhǔn)接口一直是其中的亮點(diǎn)之一。下面,我們一起來看一下,基于IMS 機(jī)制和開放接口,如何靈活地組合出各種多媒體新業(yè)務(wù),愛立信研究人員又做過哪些技術(shù)開發(fā)。
IMS中的SIP Servlet容器
讓我們先假想一個(gè)實(shí)際的應(yīng)用例子,把基于IMS的IPTV與呈現(xiàn)(Presence)驅(qū)動(dòng)的聊天應(yīng)用組合在一起。一個(gè)名叫Shelley的用戶在家中想讓她的朋友通過呈現(xiàn)業(yè)務(wù)(Presence)知道自己正在看一檔選秀節(jié)目,從而可以一邊看節(jié)目,一邊跟同時(shí)在看此節(jié)目的朋友聊天評(píng)論這些選秀明星。
實(shí)現(xiàn)此功能的傳統(tǒng)方法必須修改IPTV設(shè)備(例如:機(jī)頂盒),使其能夠向呈現(xiàn)服務(wù)器發(fā)送SIP PUBLISH消息,然后由該服務(wù)器通知Shelley的朋友。修改IPTV設(shè)備所需要的工作會(huì)嚴(yán)重影響該業(yè)務(wù)的上市時(shí)間,從而影響對(duì)消費(fèi)興趣的吸引,最終影響到商業(yè)機(jī)遇。不僅僅如此,更改接收選臺(tái)信息的IPTV控制器還會(huì)提高實(shí)體的復(fù)雜性。
那么,有沒有一種辦法,能夠僅僅通過修改IMS 網(wǎng)絡(luò)端的配置來將這兩種已有業(yè)務(wù)組合起來呢?
JSR 289草案中定義的SIP Servlet容器可以容納和管理SIP應(yīng)用程序,同時(shí)通過Java API提供對(duì)會(huì)話發(fā)起協(xié)議(SIP)機(jī)制的訪問。
Java EE是電信業(yè)使用的可擴(kuò)展中間件平臺(tái)。Java EE應(yīng)用服務(wù)器(AS)是用于部署SIP Servlet容器的平臺(tái)。AS提供收發(fā)SIP請(qǐng)求與響應(yīng)的網(wǎng)絡(luò)服務(wù)。
IMS中的AS通過IMS服務(wù)器控件接口(ISC)連接到提供服務(wù)的呼叫會(huì)話控制功能模塊(CSCF)。CSCF發(fā)起的SIP請(qǐng)求被轉(zhuǎn)發(fā)到容器,容器通過查詢稱為應(yīng)用路由器(AR)的實(shí)體來識(shí)別相關(guān)SIP應(yīng)用,然后把請(qǐng)求分配到所選擇的SIP應(yīng)用服務(wù)器。只要SIP應(yīng)用不終止請(qǐng)求,則容器會(huì)再次向AR查詢下一個(gè)調(diào)用的SIP應(yīng)用。
通過在SIP路由報(bào)頭加入路由信息(與到IMS應(yīng)用服務(wù)器的CSCF路由大同小異),應(yīng)用路由器也可以指示容器把請(qǐng)求路由到部署在另一臺(tái)服務(wù)器上的SIP應(yīng)用。
IMS業(yè)務(wù)組合引擎
愛立信的研究人員定義并且實(shí)現(xiàn)了一種業(yè)務(wù)組合引擎,其采用AR接口在運(yùn)行時(shí)間為容器提供SIP路由決策——?jiǎng)討B(tài)SIP路由。該引擎根據(jù)以下幾方面的數(shù)據(jù)來算出路由決策:
- 組合引擎的狀態(tài);
所實(shí)現(xiàn)的算法是基于事件,并且由數(shù)據(jù)驅(qū)動(dòng)的,而并非采用WS-BPEL中面向進(jìn)程的方法。在WS-BPEL中,進(jìn)程活動(dòng)是其核心關(guān)注點(diǎn),而并不明確對(duì)事件的支持。支持會(huì)話、基于事件的模式與呼叫控制中的信令能方便進(jìn)行直接關(guān)聯(lián),在組合實(shí)時(shí)通信方面更加自然、更加靈活。因此,現(xiàn)有面向進(jìn)程、與Web服務(wù)相關(guān)的技術(shù)(如:WS-BPEL)不適用于組合SIP業(yè)務(wù)。
該算法以業(yè)務(wù)屬性以及控制業(yè)務(wù)屬性的約束條件為中心,根據(jù)事件和執(zhí)行環(huán)境的狀態(tài),動(dòng)態(tài)建立和路由SIP會(huì)話。上面提到的約束條件,一般是指業(yè)務(wù)交互方式和它們的相關(guān)性。
對(duì)組成業(yè)務(wù)的描述都保存在業(yè)務(wù)數(shù)據(jù)庫中,業(yè)務(wù)數(shù)據(jù)庫將其提供給SIP業(yè)務(wù)組合引擎。利用組合模板和約束條件,組合算法可以在數(shù)據(jù)庫中搜索需要添加到組合業(yè)務(wù)中的下一個(gè)組成業(yè)務(wù)。這種在運(yùn)行中動(dòng)態(tài)選擇具體組成業(yè)務(wù)的方法稱為后期綁定。此方法支持松散耦合,從而大大提高組合業(yè)務(wù)里各種組成業(yè)務(wù)構(gòu)建的靈活性。
該算法能夠通過在建立的會(huì)話中逐個(gè)添加組成業(yè)務(wù)(每個(gè)業(yè)務(wù)都滿足全部約束條件)而構(gòu)建組合業(yè)務(wù)。只要在業(yè)務(wù)模型中預(yù)先定義了它們的相關(guān)性,這種方式還可以實(shí)現(xiàn)對(duì)互動(dòng)業(yè)務(wù)的管理。
核心組合邏輯適用于多種技術(shù)和協(xié)議。因此,組合引擎并不僅限于SIP業(yè)務(wù)。例如,Web服務(wù)調(diào)用就可以用于查詢外部實(shí)體,以便做出路由決策或者執(zhí)行SDP(Service Delivery Platform)業(yè)務(wù)流程,如:計(jì)費(fèi)或用戶統(tǒng)計(jì)信息收集。
此外,提供SIP業(yè)務(wù)的SIP應(yīng)用也可以部署在不同的應(yīng)用服務(wù)器上。此情況下,組合引嬋梢圓捎肁R接口添加指向另一臺(tái)應(yīng)用服務(wù)器的SIP路由。如果組合引擎需要在另一臺(tái)應(yīng)用服務(wù)器完成處理之后把SIP請(qǐng)求返回到當(dāng)前應(yīng)用服務(wù)器,則可以添加指向自身的SIP消息。當(dāng)然,另一臺(tái)應(yīng)用服務(wù)器也可以保留在標(biāo)準(zhǔn)SIP路由路徑中。
在該SIP業(yè)務(wù)組合引擎中,用于業(yè)務(wù)組合的業(yè)務(wù)創(chuàng)建環(huán)境是基于Eclipse的圖形化業(yè)務(wù)創(chuàng)建環(huán)境。此環(huán)境通過提供用于定義業(yè)務(wù)描述與約束條件的視圖來支持業(yè)務(wù)組合,同時(shí)支持把組成業(yè)務(wù)組合到組合模板上的圖形化編輯器。在圖形化編輯器上完成相應(yīng)組合后,組合引擎就開始部署和執(zhí)行了。
該圖形化界面還允許用戶監(jiān)控正在運(yùn)行的組合業(yè)務(wù)以及檢查保存在組合引擎中的所有狀態(tài)信息。此外,用戶也可以通過設(shè)置斷點(diǎn)以及在調(diào)試模式下執(zhí)行自定義的組合業(yè)務(wù),來驗(yàn)證和糾錯(cuò)。
這種圖形化表現(xiàn)形式和模塊化方法,能夠大大縮短組合業(yè)務(wù)的定制時(shí)間,讓用戶把精力集中在應(yīng)用邏輯上,而非源代碼的細(xì)節(jié)上。另一方面,功能的模塊化整潔封裝,還可以簡(jiǎn)化開發(fā)組成業(yè)務(wù)的應(yīng)用設(shè)計(jì)人員的工作,實(shí)現(xiàn)任務(wù)與能力的分離(設(shè)計(jì)SIP應(yīng)用是一項(xiàng)任務(wù),而組合SIP業(yè)務(wù)是另一項(xiàng)任務(wù))。
部署示例
讓我們接著前面提到過的應(yīng)用實(shí)例,看看通過該業(yè)務(wù)組合引擎,如何把IMS IPTV和呈現(xiàn)業(yè)務(wù)(Presence)驅(qū)動(dòng)的聊天應(yīng)用組合起來。
通過正確匹配iFC,CSCF將把部署業(yè)務(wù)組合引擎的AS連接到IPTV SIP會(huì)話中。隨后,CSCF再連接到IPTV控制器。在Shelley選臺(tái)時(shí),組合引擎會(huì)截取攜帶選臺(tái)信息的SIP消息。組合引擎(根據(jù)相應(yīng)策略)決定是否在IPTV SIP會(huì)話中包含狀態(tài)呈現(xiàn)網(wǎng)絡(luò)代理(PNA)。如果包含PNA,則組合引擎執(zhí)行該P(yáng)NA,后者把含有選臺(tái)信息的SIP PUBLISH消息發(fā)送到呈現(xiàn)服務(wù)器。
組合引擎能夠以逐個(gè)會(huì)話為基礎(chǔ),做出有關(guān)組成業(yè)務(wù)的、詳細(xì)的、與上下文相關(guān)的決策。示例表明,我們可以根據(jù)業(yè)務(wù)組合,定制和擴(kuò)展IMS應(yīng)用的業(yè)務(wù)邏輯,而無需實(shí)際更改產(chǎn)品及其源代碼。
針對(duì)狀態(tài)呈現(xiàn)信息的發(fā)布這個(gè)例子,其實(shí)是可以定義不同類型的策略(如:基于位置的策略)。這些策略并非硬編碼,而是在IPTV會(huì)話建立過程中由組合引擎動(dòng)態(tài)評(píng)估的,每個(gè)用戶都可以有不同的配置組合策略。更新現(xiàn)有策略或者定義新策略,也無需修改呈現(xiàn)擴(kuò)展組合模板。用戶(Shelley)甚至可以通過訪問web門戶,來修改自己的業(yè)務(wù)組合策略,在建立下一個(gè)會(huì)話時(shí),這些策略修改將會(huì)自動(dòng)被組合引擎執(zhí)行。
只有當(dāng)用戶位于家中時(shí),該策略才會(huì)被選中執(zhí)行。在成功評(píng)估相關(guān)策略之后,呈現(xiàn)擴(kuò)展組合模板即把PNAHandler成分添加到SIP業(yè)務(wù)鏈中。
總結(jié)
愛立信是JSR 289標(biāo)準(zhǔn)組織中的重要成員,該組織一直在致力于應(yīng)用路由器(AR)與Java EE SIP Servlet容器間接口的標(biāo)準(zhǔn)化,而此Java EE SIP Servlet容器正是負(fù)責(zé)控制SIP實(shí)體按順序加入SIP會(huì)話的應(yīng)用服務(wù)器。
愛立信研究人員通過實(shí)際的開發(fā)已經(jīng)證明,可擴(kuò)展的組合引擎能夠?yàn)镮MS提供靈活的定制業(yè)務(wù)實(shí)現(xiàn)方式。
組合引擎利用數(shù)據(jù)驅(qū)動(dòng)的算法,根據(jù)事件動(dòng)態(tài)控制SIP會(huì)話建立。除了SIP信令中包含的信息,組合引擎還可以通過狀態(tài)、約束、外部數(shù)據(jù)(如:Web服務(wù))以及SIP業(yè)務(wù)的形式化描述來做出有關(guān)SIP請(qǐng)求路由的上下文相關(guān)的決策。文中所介紹的機(jī)制支持松耦合,從而使組合業(yè)務(wù)具有比傳統(tǒng)方法開發(fā)的業(yè)務(wù)更高的適應(yīng)性。
該業(yè)務(wù)組合機(jī)理,實(shí)現(xiàn)了任務(wù)與角色的分離:設(shè)計(jì)IMS應(yīng)用是一項(xiàng)任務(wù),而組合IMS業(yè)務(wù)又是另一項(xiàng)任務(wù)。通過讓用戶使用業(yè)務(wù)組合引擎的圖形化業(yè)務(wù)創(chuàng)建環(huán)境,將顯著縮短組合業(yè)務(wù)的開發(fā)時(shí)間,推動(dòng)新業(yè)務(wù)盡快進(jìn)入市場(chǎng)。
要想在此領(lǐng)域取得商業(yè)上的成功,業(yè)界在通用IMS應(yīng)用框架(例如:API、SIP消息擴(kuò)展、SIP業(yè)務(wù)形式化描述)的持續(xù)合作和共同遵守,是至關(guān)重要的因素。