国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于JBoss實(shí)現(xiàn)Web服務(wù)與通信業(yè)務(wù)整合

2011-08-04 06:37
通信技術(shù) 2011年12期
關(guān)鍵詞:消息客戶端組件

倪 奕

(中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)

0 引言

傳統(tǒng)的通信業(yè)務(wù)通常是由諸如SIP消息之類的信令消息觸發(fā)。而通信類的 Web服務(wù)則通常是一般電信功能的 Web服務(wù)接口,由SOAP消息進(jìn)行觸發(fā),它們能利用電信域的各種網(wǎng)絡(luò)資源,并在互聯(lián)網(wǎng)上發(fā)布和使用。

以下就是一些電信業(yè)務(wù)暴露為通信Web服務(wù)的例子:

第三方呼叫:提供由第三方發(fā)起和管理的、在兩個用戶間建立會話的能力。

多媒體會議:提供在一個會話中發(fā)起兩個或多個用戶的音/視頻會議的能力。

消息:提供發(fā)送即時消息、SMS和MMS能力的一系列Web服務(wù)。

呈現(xiàn):提供獲取用戶在網(wǎng)絡(luò)中的可達(dá)信息的能力。

使用標(biāo)準(zhǔn)的Web服務(wù)來抽象電信網(wǎng)絡(luò)能力,業(yè)務(wù)提供者能為電信領(lǐng)域之外的 IT開發(fā)人員提供創(chuàng)建創(chuàng)新型業(yè)務(wù)的新的可能性。

Web服務(wù)標(biāo)準(zhǔn)也使得電信運(yùn)營商能為第三方提供可控、可靠的電信網(wǎng)絡(luò)能力,如狀態(tài)呈現(xiàn)和呼叫控制等能力。

多個國際組織對如何在電信領(lǐng)域使用 Web服務(wù)提交了各自的標(biāo)準(zhǔn):

ParlayX標(biāo)準(zhǔn):該標(biāo)準(zhǔn)是基于Web Services的簡化版本的電信API集,已經(jīng)標(biāo)準(zhǔn)化了一些最常見的信令業(yè)務(wù),如第三方呼叫控制、呼叫通知、SMS、MMS等[1]。

OMA建議了一些OMA Web Services引擎,并且它規(guī)范了移動終端與Web Services的交互方式。

W3C提供了 WS-Addressing 規(guī)范,該規(guī)范提供了描述Web Services和消息的機(jī)制。

OASIS論壇定義了一系列規(guī)范,如 WS-Notification及WS-ResourceFramework等,這些規(guī)范是開發(fā)通信 Web Services的重要基礎(chǔ)。

1 技術(shù)背景

1.1 JBoss相關(guān)

JBoss是一個用純Java編寫、開源、遵循J2EE規(guī)范、得到廣泛使用的應(yīng)用服務(wù)器軟件。JBoss起初只是一個 EJB容器,后來逐步發(fā)展成為一個具有復(fù)雜功能的應(yīng)用服務(wù)器,包含內(nèi)置的Web服務(wù)器Tomcat、EJB容器、內(nèi)置的Java關(guān)系型數(shù)據(jù)庫Hypersonic、Java消息服務(wù)(JMS)、Java事務(wù)接口/Java事務(wù)服務(wù)等功能[2]。

另外,JBoss還支持通信業(yè)務(wù)服務(wù)器 Mobicents。“Mobicents是目前第一個也是唯一一個被JSLEE1.1規(guī)范認(rèn)證的開源VoIP平臺,Mobicents為電信應(yīng)用提供了強(qiáng)有力的組件模型和執(zhí)行環(huán)境,通過支持 J2EE促進(jìn)語音、視頻、數(shù)據(jù)在下一代智能應(yīng)用中的融合”[3]。JSLEE包含諸如業(yè)務(wù)構(gòu)建塊(SBB),資源適配器(RA)、業(yè)務(wù)(Service)以及事件(Event)等組件。SBB是可重用的組件,并對特定事件敏感,它們接收這些事件并處理它們。RA是連接SLEE平臺到特定協(xié)議棧的連接器,如SIP RA和HTTP RA。事件定義了在JSLEE組件之間交互的消息。

1.2 Web服務(wù)

Web服務(wù)是一種建立分布式應(yīng)用的平臺,其主要目標(biāo)是在已經(jīng)存在的不同平臺和系統(tǒng)的基礎(chǔ)上建立一個與平臺和開發(fā)語言無關(guān)的統(tǒng)一平臺,其他各種應(yīng)用通過該平臺實(shí)現(xiàn)相互連接和集成[4]。通過Web Services技術(shù),可以使由不同廠商開發(fā)、運(yùn)行在不同操作系統(tǒng)上、部署在不同的設(shè)備之上、采用不同的編程語言的所部署的軟件和系統(tǒng)都能夠通過Web Services構(gòu)筑的通用平臺實(shí)現(xiàn)交互,實(shí)現(xiàn)分布式計算和處理。其體系結(jié)構(gòu)如圖1所示。

圖1 Web Services體系結(jié)構(gòu)

Web Services體系結(jié)構(gòu)是3種角色之間進(jìn)行的交互,即服務(wù)提供者、服務(wù)請求者、服務(wù)注冊中心,交互包括發(fā)布、發(fā)現(xiàn)、綁定這3個動作。

XML是Web Services中表示數(shù)據(jù)的基本格式,它解決了數(shù)據(jù)表示的問題。

SOAP描述了數(shù)據(jù)類型的消息格式和一套串行化規(guī)則,包括結(jié)構(gòu)化類型和數(shù)組。

WSDL是描述 Web Services功能的協(xié)議,描述了Web Services所采用的協(xié)議和格式。

UDDI的核心是UDDI服務(wù)注冊中心,它使用XML文檔描述企業(yè)及其提供的Web Services。

2 體系架構(gòu)

2.1 體系架構(gòu)研究

Web服務(wù)通常都被認(rèn)為是通過同步的請求-響應(yīng)機(jī)制來進(jìn)行訪問的,這樣使得Web服務(wù)的實(shí)現(xiàn)與使用都很簡單。與之相反,通信業(yè)務(wù)從本質(zhì)上來說是異步的和事件驅(qū)動的,是通過一系列的消息發(fā)送和接收來實(shí)現(xiàn)業(yè)務(wù)的交付過程。比如說,如搜索這樣的Web服務(wù)可以通過簡單的搜索請求來訪問,但對第三方呼叫這樣的通信業(yè)務(wù)來說就需要完成一系列的事件傳遞(發(fā)送makeCall事件,接收處理中、等待中以及響應(yīng)事件并交換媒體能力)。所以,把通信業(yè)務(wù)作為同步的Web服務(wù)進(jìn)行付就會遇到一些問題。

研究的體系架構(gòu)以同步Web服務(wù)的方式交付通信業(yè)務(wù),并簡化通信業(yè)務(wù)與普通Web服務(wù)和web應(yīng)用的整合過程。體系主要包含通信業(yè)務(wù)服務(wù)器(采用 Mobicents,用于部署通信業(yè)務(wù)),Web服務(wù)器(采用Tomcat,用于部署Web服務(wù)及應(yīng)用),企業(yè)服務(wù)總線 ESB[5]使用 JBoss ESB,并采用OpenIMS構(gòu)建 IMS核心網(wǎng)。提出的體系的部署架構(gòu)如圖 2所示。

圖2 體系部署架構(gòu)

首先,Web服務(wù)作為通信業(yè)務(wù)(如第三方呼叫控制業(yè)務(wù))的代理先向服務(wù)注冊中心進(jìn)行注冊。業(yè)務(wù)流程從 http客戶端開始??蛻舳讼騑eb服務(wù)器上部署的Web應(yīng)用發(fā)送請求以執(zhí)行某個服務(wù)。Web應(yīng)用通過UDDI協(xié)議查詢適合的Web服務(wù)并與之綁定,并請求特定的Web服務(wù)的執(zhí)行。Web服務(wù)是同步服務(wù),但它以異步的方式與通信業(yè)務(wù)進(jìn)行交互以觸發(fā)通信業(yè)務(wù)。這樣通信業(yè)務(wù)開始執(zhí)行,并在兩個IMS UA之間發(fā)起呼叫。呼叫的狀態(tài)輸出給Web服務(wù)客戶端以及HTTP客戶端,這樣它們就能控制、檢測、改變呼叫,并最終結(jié)束呼叫。

通信業(yè)務(wù)器采用 Mobicents。從技術(shù)背景中知道 JSLEE包含多種組件。在建議的體系架構(gòu)中,需要實(shí)現(xiàn)這些組件的新類型。Web服務(wù)接收到某個請求以觸發(fā)服務(wù),它必須要先發(fā)送一個事件來啟動該服務(wù)。所以需要定義一些事件(如makeCall、endCall等),這些事件被Web服務(wù)用于與JSLEE平臺和通信業(yè)務(wù)進(jìn)行交互。因此,就需要研究Web服務(wù)與通信業(yè)務(wù)間消息傳遞方式,即 Web服務(wù)如何發(fā)送事件,Mobicents如何接收這些事件并把它們傳遞給SBB。

2.2 服務(wù)與業(yè)務(wù)間消息傳遞方式

2.2.1 業(yè)務(wù)/服務(wù)單機(jī)部署

如果通信業(yè)務(wù)與 Web服務(wù)是部署在同一 JBoss服務(wù)器上,即通信業(yè)務(wù)執(zhí)行環(huán)境由部署在JBoss上的Mobicents提供,Web服務(wù)執(zhí)行環(huán)境由JBoss內(nèi)部的Tomcat提供,兩者之間可以采用遠(yuǎn)程方法調(diào)用(RMI)來實(shí)現(xiàn)通信,這里采用JSLEE提供的SLEE Connection接口[3],如圖3所示。Web服務(wù)器負(fù)責(zé)將用戶請求封裝成Mobicents中自定義的事件,并通過SLEE Connection接口來完成與Mobicents的交互。該接口允許Web服務(wù)組件創(chuàng)建一個與特定JAIN SLEE中的業(yè)務(wù)實(shí)例的連接,并使用它來向業(yè)務(wù)實(shí)例發(fā)送事件,從而觸發(fā)通信業(yè)務(wù)邏輯的執(zhí)行。

圖3 業(yè)務(wù)/服務(wù)單機(jī)部署

2.2.2 業(yè)務(wù)/服務(wù)分離部署

如果Web服務(wù)和通信業(yè)務(wù)部署在不同JBoss服務(wù)器上,有兩種通信機(jī)制,如圖4所示。

圖4 業(yè)務(wù)/服務(wù)分離部署

SLEE Connection方式:Mobicents JSLEE同樣提供一個遠(yuǎn)程的SLEE Connection(使用方式同本地方式相同),從而實(shí)現(xiàn)Web服務(wù)組件與通信業(yè)務(wù)組件之間的跨主機(jī)通信。

SOAP RA方式:可以直接通過在Mobicents上部署SOAP RA來實(shí)現(xiàn)Web服務(wù)組件與通信業(yè)務(wù)組件之間的通信消息適配。SOAP請求從SOAP客戶端通過Web服務(wù)實(shí)現(xiàn)獲取,并被SOAP RA以SOAP事件的方式,通過JSLEE的事件路由器傳遞給注冊這些事件的通信業(yè)務(wù)組件(SBB)處理。

2.3 Web服務(wù)結(jié)構(gòu)

為了把通信業(yè)務(wù)封裝為Web服務(wù),需要把它的相關(guān)功能描述到WSDL文檔中,給出將對它的客戶端提供的操作。以第三方呼叫控制為例,以下是對其 Web服務(wù)進(jìn)行描述的WSDL文件片段:

可以看到,makeCall操作有兩個類型為string的參數(shù),即兩個UA 的SIP URI,并有一個string類型的返回值,它是呼叫的引用id。

3 實(shí)現(xiàn)

為了實(shí)現(xiàn)第三方呼叫控制業(yè)務(wù)的Web服務(wù)化,業(yè)務(wù)需要三個SBB:RecvSoapSBB為業(yè)務(wù)的根SBB,處理呼叫控制SOAP事件;CallControlSbb處理 SIP消息;SendSoapSBB發(fā)送業(yè)務(wù)響應(yīng)。當(dāng) MakeCall事件被傳遞給 SLEE后,RecvSoapSBB進(jìn)行初始化,接收MakeCall事件,根據(jù)事件構(gòu)建INVITE消息并發(fā)送給被叫IMS UA以發(fā)起呼叫,并創(chuàng)建及初始化CallControlSbb。接著CallControlSbb就會處理后續(xù)SIP消息以在兩個IMS UA之間建立呼叫。

Web服務(wù)將通過向 SOAP RA發(fā)送諸如 CancelCall,EndCall此類的事件來控制呼叫,這些事件也會傳遞給RecvSoapSBB,處理這些事件需要進(jìn)行一些SIP消息的傳遞,而這是CallControlSbb的處理范圍。因此RecvSoapSBB就通過調(diào)用CallControlSbb的輸出方法來委托CallControlSbb處理這些事件,CallControlSbb通過發(fā)送適當(dāng)?shù)?SIP消息來建立、中止或者取消呼叫。在CallControlSbb完成呼叫信令過程后調(diào)用SendSoapSBB返回相應(yīng)的業(yè)務(wù)響應(yīng)。

融合Web和通信應(yīng)用的另一個需求是在Web應(yīng)用中監(jiān)視通信業(yè)務(wù)的狀態(tài)。比如需要在Web應(yīng)用中顯示呼叫的狀態(tài)(如進(jìn)行中、取消、保持等),這樣用戶就能了解呼叫的情況,并對其進(jìn)行控制。對此的一個解決方法是在通信業(yè)務(wù)、Web服務(wù)和 Web應(yīng)用之間把呼叫狀態(tài)作為共享對象,實(shí)現(xiàn)HTTP和SIP會話之間的1對1的映射,這樣Web應(yīng)用就能檢測業(yè)務(wù)狀態(tài)。該項(xiàng)內(nèi)容非本次研究重點(diǎn)不作詳述。

本體系結(jié)構(gòu)總體的實(shí)現(xiàn)原理如圖5所示。

圖5 體系結(jié)構(gòu)的實(shí)現(xiàn)原理

第三方呼叫控制業(yè)務(wù)與服務(wù)整合的試驗(yàn)環(huán)境如圖 6所示。在該環(huán)境中,使用專用的Web服務(wù)測試工具SoapUI進(jìn)行了測試。SoapUI根據(jù)實(shí)現(xiàn)的Web服務(wù)的WSDL文件創(chuàng)建了呼叫請求,請求方法為makeCall,并帶有主被叫終端UA1和UA2的SIP地址。通過SoapUI發(fā)送該請求到第三方呼叫控制業(yè)務(wù)的 Web服務(wù)實(shí)現(xiàn) endpoint,最終實(shí)現(xiàn)兩個終端的通信。

圖6 試驗(yàn)環(huán)境示意

4 結(jié)語

文中研究根據(jù)NGN/IMS的通信業(yè)務(wù)與Web服務(wù)融合的概念,采用ParlayX標(biāo)準(zhǔn),基于JBoss,提出了兩者整合的體系架構(gòu),把Web服務(wù)作為通信業(yè)務(wù)的代理,以Web服務(wù)的同步的請求-響應(yīng)機(jī)制方式交付異步的事件驅(qū)動的通信業(yè)務(wù)。NGN 架構(gòu)對 Web 服務(wù)的引入將充分利用 Web 服務(wù)的優(yōu)勢,使 NGN 應(yīng)用業(yè)務(wù)平臺具備更好的開放性和互操作性, 從而使下一代網(wǎng)絡(luò)融合業(yè)務(wù)的開發(fā)和部署更加快速和便捷[6]。

[1] 陳霄,汪學(xué)明.下一代網(wǎng)絡(luò)開放業(yè)務(wù)接口的研究[J].通信技術(shù),2010,43(12):109-111.

[2] 楊成剛.午餐免費(fèi) 服務(wù)增值——談 JBoss的技術(shù)架構(gòu)與服務(wù)[J].中國計算機(jī)用戶, 2004(13):56-57.

[3] ALEXANDRE M, AMIT B, BARTOSZ B. Mobicents JAIN SLEE User Guide.[EB/OL].(2010-10-09)[2011-06-09].http://www.mobicents.org/slee/docs.html.

[4] 趙謹(jǐn)謹(jǐn).用WebServices實(shí)施企業(yè)應(yīng)用集成的方法研究[D].武漢:華中科技大學(xué),2009:6-9.

[5] 金碧芳,薛質(zhì),宋濤.基于SOA的信息比對系統(tǒng)的研究與實(shí)現(xiàn)[J]. 信息安全與通信保密,2010 (06):43-44.

[6] 趙慧玲,徐向輝. 基于Web服務(wù)的下一代網(wǎng)絡(luò)融合業(yè)務(wù)模型[J].郵電設(shè)計技術(shù),2008 (07):1-5.

猜你喜歡
消息客戶端組件
無人機(jī)智能巡檢在光伏電站組件診斷中的應(yīng)用
新型碎邊剪刀盤組件
一張圖看5G消息
U盾外殼組件注塑模具設(shè)計
如何看待傳統(tǒng)媒體新聞客戶端的“斷舍離”?
縣級臺在突發(fā)事件報道中如何應(yīng)用手機(jī)客戶端
孵化垂直頻道:新聞客戶端新策略
大樞紐 云平臺 客戶端——中央人民廣播電臺的探索之路
風(fēng)起新一代光伏組件膜層:SSG納米自清潔膜層
消息