慕立俊 杜尋社 袁 林 鄧紅梅 吳彥鵬
摘要:RlA技術(shù)是集快速、低成本部署、實(shí)時(shí)多媒體通信為一體的新一代互聯(lián)網(wǎng)應(yīng)用技術(shù)。本文設(shè)計(jì)并實(shí)現(xiàn)的交互式信息實(shí)時(shí)共享系統(tǒng)基于RlA架構(gòu),結(jié)合了多種流行的多媒體開發(fā)技術(shù),為客戶提供了統(tǒng)一完整可擴(kuò)展的網(wǎng)絡(luò)會(huì)議信息處理平臺(tái),滿足了工作中對(duì)同步信息交互式咨詢及資料實(shí)時(shí)共享等方面需求,加快了傳統(tǒng)企業(yè)信息化建設(shè)。
關(guān)鍵字:富互聯(lián)網(wǎng)應(yīng)用技術(shù);LiveCycleDataService;RFB協(xié)議;通道;消息服務(wù)
1引言
伴隨著Internet日益成為應(yīng)用程序開發(fā)的默認(rèn)平臺(tái),計(jì)算機(jī)應(yīng)用系統(tǒng)的架構(gòu)在由C/S架構(gòu)到B/S架構(gòu)轉(zhuǎn)變,基于瀏覽器的各種web程序應(yīng)運(yùn)而生。傳統(tǒng)網(wǎng)絡(luò)程序的開發(fā)是基于頁面的、服務(wù)器端數(shù)據(jù)傳遞的模式,把網(wǎng)絡(luò)程序的表示層建立于HTML頁面之上。這種傳統(tǒng)的基于頁面的系統(tǒng)已經(jīng)漸漸不能滿足網(wǎng)絡(luò)瀏覽者的更高的、全方位的體驗(yàn)要求了。為了解決這個(gè)問題,富互聯(lián)網(wǎng)應(yīng)用程序(Rich InternetApplications,縮寫為RIA)脫穎而出。
本文基于RIA設(shè)計(jì)模式,結(jié)合Flex,Java,JSP,C++,數(shù)據(jù)庫等技術(shù)實(shí)現(xiàn)了交互式實(shí)時(shí)信息共享系統(tǒng)一網(wǎng)絡(luò)會(huì)議信息處理系統(tǒng)。該系統(tǒng)通過數(shù)字化交互的方式,實(shí)現(xiàn)了協(xié)作會(huì)議的即時(shí)訪問,提供了生動(dòng)的無縫交流方式。加強(qiáng)溝通效果,構(gòu)建異地遠(yuǎn)程辦公的信息化平臺(tái),能夠減少差旅費(fèi)用,提高工作效率。2系統(tǒng)架構(gòu)2.1RIA系統(tǒng)架構(gòu)簡介RIA是集桌面應(yīng)用程序的最佳用戶界面功能與Web應(yīng)用程序的快速、低成本布署。以及互動(dòng)多媒體通信的實(shí)時(shí)快捷于一體的新一代網(wǎng)絡(luò)應(yīng)用程序。RlA中的富客戶端(Rich Client)提供可承載已編譯客戶端應(yīng)用程序(以文件形式,用HTTP傳遞)的運(yùn)行環(huán)境,客戶端應(yīng)用程序使用異步客戶,服務(wù)器架構(gòu)連接現(xiàn)有的后端應(yīng)用服務(wù)器。這是一種安全、可升級(jí)、具有良好適應(yīng)性的新的面向服務(wù)模型,這種模型由采用的Web服務(wù)所驅(qū)動(dòng),使客戶機(jī)的能力復(fù)原到與桌面型計(jì)算機(jī)軟件應(yīng)用或傳統(tǒng)的C/S系統(tǒng)中的客戶機(jī)能力。它適合傳統(tǒng)的N層開發(fā)過程。同時(shí)也能夠在現(xiàn)有Web應(yīng)用程序和環(huán)境內(nèi)逐步添加新功能以充分利用現(xiàn)有網(wǎng)絡(luò)應(yīng)用投資。它也可以作為基礎(chǔ)網(wǎng)絡(luò)服務(wù)的互動(dòng)表現(xiàn)層,允許用戶在線和離線工作。RIA有能力解決各種復(fù)雜性,使需要復(fù)雜性的應(yīng)用得以開發(fā)并且減少開發(fā)成本,為演進(jìn)中的Web Service為主的網(wǎng)絡(luò)提供動(dòng)態(tài)高效的前端應(yīng)用。結(jié)合了聲音、視頻和實(shí)時(shí)對(duì)話的綜合通信技術(shù)使RIA具有前所未有的網(wǎng)上用戶體驗(yàn)。圖1是RlA的應(yīng)用程序模型。
本系統(tǒng)參考RlA架構(gòu),采用以事件驅(qū)動(dòng)及消息服務(wù)為中心的思想,運(yùn)用RIA的解決方案一基于Flash的Flex技術(shù)及Java、C++技術(shù)開發(fā),使用HTTPService和WebService進(jìn)行數(shù)據(jù)訪問,通過遠(yuǎn)程過程(RPC)調(diào)用組件,使客戶端程序與遠(yuǎn)程服務(wù)器進(jìn)行交互。系統(tǒng)的架構(gòu)按照Flex的執(zhí)行結(jié)構(gòu)劃分為3層:資源層、服務(wù)器的交互層及客戶端的邏輯層??蛻舳说倪壿媽邮褂糜蒐iveCycle Data Services ES(以下簡稱LCDS)提供的基于消息框架與服務(wù)器交互,該基于消息的框架在客戶端是通道(channels),通道封裝了Flex客戶端和LCDS服務(wù)端之間的連接行為。通道被分組并組成通道集,達(dá)到通道搜索和通道容錯(cuò)的目的。服務(wù)器的交互層是一個(gè)J2EE的web容器,F(xiàn)lex客戶端通過channel發(fā)送一個(gè)請(qǐng)求,請(qǐng)求在服務(wù)端會(huì)到一個(gè)endpoint,從endpoint開始請(qǐng)求會(huì)通過一條Java對(duì)象處理鏈,到達(dá)服務(wù)器端的Java程序進(jìn)行數(shù)據(jù)傳輸及后處理。資源層是以數(shù)據(jù)庫為中心的資源管理模塊,進(jìn)行數(shù)據(jù)的存儲(chǔ)及轉(zhuǎn)換。這種層次的劃分使得對(duì)任何事件及消息的響應(yīng)都必須經(jīng)過LCDS中轉(zhuǎn),不但有效地劃分了功能層次,增強(qiáng)了易管理性,而且系統(tǒng)的層次明顯、結(jié)構(gòu)清晰、易于擴(kuò)展。
2.3交互式實(shí)時(shí)信息共享系統(tǒng)模塊分析
基于上述的交互式實(shí)時(shí)信息共享系統(tǒng)架構(gòu),為了滿足各企事業(yè)單位在同步信息咨詢服務(wù)、資料共享、會(huì)議管理及交互式溝通等方面的需求,在功能上該系統(tǒng)分系統(tǒng)管理、視音頻控制管理、數(shù)據(jù)服務(wù)管理、信息處理、數(shù)據(jù)庫管理及遠(yuǎn)程桌面共享控制等幾大核心模塊,系統(tǒng)功能框架請(qǐng)參照?qǐng)D2。下面將對(duì)各個(gè)模塊做詳細(xì)介紹。
2.3.1系統(tǒng)管理模塊系統(tǒng)管理部分包括用戶和角色管理,會(huì)議和會(huì)議室管理及信道管理。用戶和角色管理負(fù)責(zé)管理用戶權(quán)限。本系統(tǒng)包括兩種角色:管理員和普通用戶。管理員可以查看所有的用戶信息,創(chuàng)建新用戶、用戶信息更新及刪除,對(duì)系統(tǒng)進(jìn)行常規(guī)維護(hù)。會(huì)議和會(huì)議室管理負(fù)責(zé)虛擬會(huì)議室的新建、維護(hù)及各會(huì)議室會(huì)議的預(yù)約。信道管理是指單個(gè)會(huì)議室中多個(gè)通訊通道建立、管理及分配。本系統(tǒng)中每個(gè)會(huì)議室最多可有三個(gè)獨(dú)立的通道分別進(jìn)行獨(dú)立或交互的實(shí)時(shí)信息共享。2.3.2視音頻控制管理模塊視音頻控制管理部分采用Polycom提供的MCU多點(diǎn)控制模塊作為標(biāo)準(zhǔn)視頻會(huì)議核心管理音視頻交換、遠(yuǎn)程指揮和調(diào)度核心音視頻交換設(shè)備,通過H.264視頻壓縮協(xié)議,Serin14語音壓縮協(xié)議和H.239(P+C)數(shù)據(jù)協(xié)議,為用戶提供高質(zhì)量的音頻、視頻和數(shù)據(jù)通信功能。2.3.3數(shù)據(jù)服務(wù)管理模塊●提供RPC服務(wù),即遠(yuǎn)程過程調(diào)用服務(wù):基于HTTP或SOAP協(xié)議獲取服務(wù)器端數(shù)據(jù),或者基于AMF格式,通過調(diào)用遠(yuǎn)程對(duì)象獲取數(shù)據(jù)和觸發(fā)服務(wù)器端邏輯:
●提供數(shù)據(jù)管理能力:管理客戶端和服務(wù)器端的數(shù)據(jù)同步、大規(guī)模數(shù)據(jù)的數(shù)據(jù)分頁以及數(shù)據(jù)沖突等;
●提供消息服務(wù):Web層客戶端應(yīng)用同服務(wù)端的消息發(fā)布和訂閱,基于每個(gè)客戶端的服務(wù)質(zhì)量服務(wù)(QOS)、RTMP通道支持;
●提供支持離線應(yīng)用的能力:例如離線數(shù)據(jù)緩存及本地消息隊(duì)列等;
●提供企業(yè)Flex應(yīng)用集成所需的代理服務(wù)、Web層編譯Flex應(yīng)用能力、支持WSRP接口的門戶部署、集群部署、支持Ajax的數(shù)據(jù)服務(wù)、實(shí)現(xiàn)Flex RIA應(yīng)用和Aiax程序交互的Flex-Aiax Bridge、多種服務(wù)適配器、服務(wù)器端PDF生成等其他各種服務(wù)。2.3.4信息處理模塊信息處理部分使用基于消息的框架完成客戶端與服務(wù)器的交互,該框架基于Flex組件使用通道與LCDS服務(wù)端通信。利用HTTP服務(wù)或WEB服務(wù)調(diào)用遠(yuǎn)程服務(wù),使用諸如確認(rèn)消息(Acknowl-edegMessaget)和命令消息(CommandMessage)等類型與LCDS中對(duì)應(yīng)的服務(wù)通信,實(shí)現(xiàn)了多點(diǎn)會(huì)議狀態(tài)同步,資料實(shí)時(shí)共享,數(shù)字白板數(shù)據(jù)同步、遠(yuǎn)程過程調(diào)用等功能。
2.3.5數(shù)據(jù)庫管理模塊數(shù)據(jù)庫管理部分提供了會(huì)議記錄,檢索及下載等功能。會(huì)議記錄功能支持將會(huì)議的信息,與會(huì)人名單,會(huì)議過程中討論的資料及相應(yīng)標(biāo)注,以及在電子白板上記錄的內(nèi)容自動(dòng)保存到服務(wù)器上以便會(huì)后下
載和查閱。會(huì)議檢索及下載功能提供會(huì)議歷史記錄的查詢,與會(huì)人會(huì)后可通過搜索找到相應(yīng)會(huì)議,下載會(huì)議過程中的資料及會(huì)議記錄。2.3.6遠(yuǎn)程桌面共享控制模塊針對(duì)與會(huì)者需要在會(huì)議期間查詢一些數(shù)據(jù)或者查看一些專業(yè)軟件的操作結(jié)果,并且能夠在與會(huì)者之間實(shí)時(shí)共享這些查詢結(jié)果和操作結(jié)果的需求,遠(yuǎn)程桌面共享及控制模塊基于網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程主機(jī)的一對(duì)一及多對(duì)一連接,實(shí)現(xiàn)了連接后一方或多方可以看到另一方的計(jì)算機(jī)屏幕,對(duì)方在計(jì)算機(jī)上的任意操作都可以被共享,達(dá)到隨時(shí)從桌面共享文檔和進(jìn)行演示的效果。參與會(huì)議的用戶可以共享桌面、應(yīng)用程序、文件以及企業(yè)專業(yè)軟件等各類內(nèi)容。使各地的客戶、合作伙伴以及同事能夠演示實(shí)時(shí)信息、共享應(yīng)用程序以及開展專案協(xié)作。
3關(guān)鍵技術(shù)研究
3.1Adobe Flex以Flash Player 9和Action Script 3.0提供的豐富的類庫為基礎(chǔ),F(xiàn)lex框架作為Flex的核心部分提供了一個(gè)豐富的可擴(kuò)展用戶界面組件設(shè)置,一個(gè)用于控制布局和用戶互動(dòng)的靈活模型,和從遠(yuǎn)程服務(wù)訪問數(shù)據(jù)的健壯底層構(gòu)造。Flex組件庫包含超過100種組件和容器。開發(fā)者可以使用這些內(nèi)建組件構(gòu)造程序的用戶界面,把它們作為子類以修改其行為,或是使用組件的API生成全新的組件。和其它用戶界面開發(fā)環(huán)境一樣,F(xiàn)lex允許開發(fā)者利用預(yù)定義互動(dòng),比如數(shù)據(jù)網(wǎng)格中可拖拽的列,或?qū)⒁恍┟鞔_定義的事件定義為有特殊用途的行為。Flex應(yīng)用程序通過一組內(nèi)置的服務(wù)組件訪問數(shù)據(jù)和服務(wù)。開發(fā)者可通過HTi-P和網(wǎng)絡(luò)服務(wù)訪問XML數(shù)據(jù),同樣,也可訪問利用FlexData Services提供的額外服務(wù),包括連接的遠(yuǎn)程Java對(duì)象,發(fā)布/訂閱的信息。和新的Flex Data Services。為了促進(jìn)數(shù)據(jù)處理。Flex提供了豐富的數(shù)據(jù)粘合底層構(gòu)造,當(dāng)數(shù)據(jù)返回時(shí)它會(huì)自動(dòng)更新用戶界面,當(dāng)?shù)却?wù)器返回結(jié)果時(shí)它允許程序保持響應(yīng)。3.2LiveCycIe Data ServiceLiveCycle是Adobe企業(yè)解決方案平臺(tái),包含業(yè)務(wù)流程管理系統(tǒng)(UveCycle Process Management)、企業(yè)版權(quán)管理系統(tǒng)(LjveCycleRlghts Management)、表單服務(wù)(LjveCycle Forms)等12個(gè)解決方案組件。LiveCycle Data Servlce是其中的一個(gè)整合RIA應(yīng)用和J2EE等企業(yè)應(yīng)用的解決方案組件。
LiveCycle Data Services是Adobe公司提供的用于開發(fā)使用Flex作為前端,JAVA作為后端的中間組件。它提供一組基于信息的服務(wù),支持聯(lián)接企業(yè)架構(gòu)和不同層間透明同步數(shù)據(jù)的能力,展示了在客戶端和服務(wù)器間轉(zhuǎn)移數(shù)據(jù)的健壯的消息基礎(chǔ)架構(gòu)。LCDS客戶端使用由LCDS提供的基于消息的(message-based)框架與服務(wù)器交互。LCDS服務(wù)端是一個(gè)J2EE web服務(wù)器和高度可擴(kuò)展的網(wǎng)絡(luò)socket服務(wù)器的結(jié)合。Flex客戶端通過通道(ohanneI)發(fā)送請(qǐng)求,該請(qǐng)求接著被路由到LCDS服務(wù)端上的端點(diǎn)(endpoInt)。從端點(diǎn),請(qǐng)求又被路由到j(luò)ava對(duì)象鏈,該鏈包括MessageBroker對(duì)象,一個(gè)服務(wù)對(duì)象,一個(gè)終點(diǎn)對(duì)象和最后的適配器對(duì)象。適配器可以通過調(diào)用本地或后端系統(tǒng)或像JMS服務(wù)這樣的遠(yuǎn)程服務(wù)完成該請(qǐng)求。
3.3RFB協(xié)議遠(yuǎn)程控制因?yàn)檫M(jìn)一步克服了由于地域性差異而帶來的不便性,所以在網(wǎng)絡(luò)管理、遠(yuǎn)程技術(shù)支持、遠(yuǎn)程交流、遠(yuǎn)程辦公等領(lǐng)域有著非常廣泛的應(yīng)用。RFB(遠(yuǎn)程幀緩沖)是一個(gè)用于遠(yuǎn)程訪問圖形用戶接口的簡單協(xié)議,它工作在幀緩沖層,主要涉及顯示協(xié)議、輸入?yún)f(xié)議、像數(shù)數(shù)據(jù)表示、協(xié)議擴(kuò)展、協(xié)議消息幾部分。RFB是一個(gè)真正意義上的“瘦客戶端”協(xié)議。在RFB協(xié)議的設(shè)計(jì)中重點(diǎn)強(qiáng)調(diào)客戶端的盡少需求。這樣一來,客戶端能運(yùn)行在更廣范圍的硬件環(huán)境上,并且客戶端的實(shí)現(xiàn)也盡可能簡單。
RFB協(xié)議對(duì)于客戶端是“無狀態(tài)”的。如果一個(gè)客戶端和服務(wù)器斷開了連接,稍后再一次連接到這臺(tái)服務(wù)器上,用戶的會(huì)話不會(huì)被關(guān)閉,狀態(tài)會(huì)一直保持著。不同的客戶端可以連接到同一個(gè)服務(wù)器上,在新的客戶端上用戶看到的是和原來的客戶端上相同的圖形用戶接口,這樣能夠高效的利用網(wǎng)絡(luò)帶寬,達(dá)到高質(zhì)量的共享和控制效果。
4交互式實(shí)時(shí)信息共享系統(tǒng)的實(shí)現(xiàn)與應(yīng)用
4.1系統(tǒng)實(shí)現(xiàn)
整個(gè)系統(tǒng)基于RIA模式開發(fā),由服務(wù)器統(tǒng)一進(jìn)行后臺(tái)管理,以避免在客戶端進(jìn)行復(fù)雜的安裝及配置??蛻舳酥恍鑇eb瀏覽器通過LCDS通道與Java服務(wù)器端的appliication通信,完成信息交互、數(shù)據(jù)同步、遠(yuǎn)程控制等交互式實(shí)時(shí)信息共享系統(tǒng)的核心功能。圖3是整個(gè)系統(tǒng)實(shí)現(xiàn)的總體架構(gòu)。4.1.1客戶端信息交互部分實(shí)現(xiàn)客戶端信息交互部分由三個(gè)主要的界面接口組成,數(shù)字白板頁、資料共享頁及桌面共享頁??蛻舭凑招枰袚Q不同的頁面進(jìn)行遠(yuǎn)程通訊。通過數(shù)字白板,用戶可以與各遠(yuǎn)程客戶端分享手寫筆記、草圖及其他討論的信息;通過資料共享頁,用戶可以上傳圖片、PPT等資料與遠(yuǎn)程客戶端實(shí)時(shí)共享,并可共享資料上的實(shí)時(shí)批注。通過桌面共享頁面,用戶可以共享桌面、應(yīng)用程序、文件以及企業(yè)專業(yè)軟件等各類內(nèi)容。使各地的客戶、臺(tái)作伙伴以及同事演示信息、共享應(yīng)用程序以及開展專案協(xié)作。圖4是客戶端信息交互部分的頁面設(shè)計(jì)圖。
4.1.2交互式實(shí)時(shí)信息共享系統(tǒng)數(shù)據(jù)流實(shí)現(xiàn)
客戶端與服務(wù)器端的數(shù)據(jù)流的交互主要有以下幾個(gè)方面:1用戶登錄時(shí),用戶權(quán)限認(rèn)證及根據(jù)用戶信息配置相應(yīng)的環(huán)境,并提取與其相關(guān)的會(huì)議信息;若會(huì)議已經(jīng)開始,則自動(dòng)切換到該會(huì)議正在進(jìn)行的狀態(tài);2任一用戶切換模式(白板、資料、桌面)時(shí),其他用戶采集數(shù)據(jù)進(jìn)行處理;3任一用戶共享資料、筆跡、桌面,其他用戶獲取相應(yīng)數(shù)據(jù)更新頁面;4用戶關(guān)閉會(huì)議,其他用戶收到消息,自動(dòng)退出,并清空緩存中所有會(huì)議有關(guān)的記錄。圖5是客戶端與服務(wù)器端的數(shù)據(jù)流圖。
4.2交互式實(shí)時(shí)信息共享系統(tǒng)的應(yīng)用
本系統(tǒng)是針對(duì)現(xiàn)代企業(yè)對(duì)信息交互和資料共享的高要求開發(fā)的交互式實(shí)時(shí)信息共享系統(tǒng),可以提高遠(yuǎn)程會(huì)議質(zhì)量,使異地多點(diǎn)會(huì)議達(dá)到所有與會(huì)人員在同一會(huì)議室開會(huì)的效果。適合方案討論、技術(shù)交流、資料學(xué)習(xí)、網(wǎng)絡(luò)培訓(xùn)和緊急會(huì)議等。尤其適合大型企業(yè)多地點(diǎn)辦公的情況。圖6是真實(shí)系統(tǒng)會(huì)議中的用戶界面。
5總結(jié)
本文通過對(duì)為客戶帶來卓越桌面體驗(yàn)的RlA技術(shù)的基本論述,及對(duì)為企業(yè)提供富互聯(lián)網(wǎng)應(yīng)用程序的表示層解決方案的Flex技術(shù)的分析,基于目前傳統(tǒng)企業(yè)信息化數(shù)字化建設(shè)的需求,設(shè)計(jì)并實(shí)現(xiàn)了統(tǒng)一、完整、可擴(kuò)展的的交互式實(shí)時(shí)信息共享系統(tǒng)。該系統(tǒng)是富因特網(wǎng)應(yīng)用程序的一個(gè)典型應(yīng)用,F(xiàn)tex客戶端通過HTTP、SOAP或AMF(Flash RemotIng二進(jìn)制協(xié)議)與服務(wù)器端進(jìn)行通信,并應(yīng)用了Java serviet技術(shù)實(shí)現(xiàn)了文檔格式轉(zhuǎn)換和上傳,客戶端遠(yuǎn)程下載等功能。為客戶提供了使用簡單、具有良好體驗(yàn)的用戶界面,并降低了網(wǎng)絡(luò)和服務(wù)器的開銷。
該系統(tǒng)已在企業(yè)中成功運(yùn)作,滿足了工作中對(duì)同步信息咨詢服務(wù)、資料實(shí)時(shí)共享、會(huì)議管理及交互式溝通等方面需求。通過數(shù)字化交互平臺(tái),提供生動(dòng)的無縫交流方式,實(shí)現(xiàn)了協(xié)作會(huì)議的即時(shí)訪問。有助于企業(yè)構(gòu)建異地遠(yuǎn)程辦公的信息化平臺(tái),加強(qiáng)溝通效果,提高工作效率并減少差旅費(fèi)用。