劉革汪洋夏猛丁慧霞
(1四川省電力公司四川成都610041)
(2中國電力科學(xué)研究院北京100192)
(3河北遠(yuǎn)東哈里斯通信有限公司河北石家莊050200)
即時(shí)通信系統(tǒng)是指能夠即時(shí)發(fā)送和接收互聯(lián)網(wǎng)消息,允許通信雙方即時(shí)地傳送文字、語音和視頻等信息,能夠跟蹤網(wǎng)絡(luò)用戶在線狀態(tài)的網(wǎng)絡(luò)應(yīng)用軟件。隨著互聯(lián)網(wǎng)的發(fā)展和需求的不斷變化,傳統(tǒng)的即時(shí)通信系統(tǒng)暴露出對圖形即時(shí)通信支持方面的不足。在信息社會里,人們的工作方式具有群體性、交互性、分布性和協(xié)作性等特征[1]。電子白板是指一個(gè)虛擬的公共區(qū)域,支持圖形繪制和文檔共享,每個(gè)共享白板用戶對白板的操作都能實(shí)時(shí)反映到其他用戶的白板視圖上[2,3],即所謂的"你見即我見"。通過電子白板,地理上分散的人們可以實(shí)時(shí)地進(jìn)行交流與協(xié)作[4]。
針對即時(shí)通信系統(tǒng)對圖形傳輸支持方面的不足,本文將電子白板與即時(shí)通信相融合,在即時(shí)通信系統(tǒng)中添加電子白板功能,實(shí)現(xiàn)圖形的即時(shí)通信,使網(wǎng)上交流的形象性和直觀性大大加強(qiáng)[5]。電子白板彌補(bǔ)了文字交流的不足,促使通信雙方更好地進(jìn)行交流與協(xié)作,使即時(shí)通信軟件發(fā)揮出更大的商業(yè)價(jià)值和社會價(jià)值。
流媒體(Streaming Media)是指以流的方式在網(wǎng)絡(luò)中傳輸音頻、視頻和多媒體形式的文件。流媒體傳輸方式是將多媒體文件經(jīng)過特殊的壓縮方式分成一個(gè)個(gè)壓縮包,由流媒體服務(wù)器向用戶計(jì)算機(jī)連續(xù)和實(shí)時(shí)傳送。用戶不用等待整個(gè)文件全部下載完畢之后才能看到當(dāng)中的內(nèi)容,而是只需經(jīng)過幾秒或者幾十秒的啟動延遲即可在用戶的計(jì)算機(jī)上播放,此時(shí)多媒體文件的剩余部分將在后臺繼續(xù)下載,直至播放完畢。
OpenMeetings是一個(gè)基于Flash流媒體的多語言可定制的開源視頻會議和協(xié)作系統(tǒng),通過RTMP和HTTP協(xié)議傳送數(shù)據(jù)[6],OpenMeetings系統(tǒng)提供視頻會議、桌面共享、后臺管理、白板、文檔轉(zhuǎn)換和文字聊天等功能,通過白板可以導(dǎo)入各種格式的圖片和涂鴉。OpenMeetings采用B/S架構(gòu),它的服務(wù)器基于開源的Flash服務(wù)器---Red5,所有支持Flash的IE瀏覽器都可以使用OpenMeetings的白板,提供doc、ppt、pdf及jpg等文件的白板共享及涂鴉。
OpenMeetings服務(wù)器端是使用Java語音開發(fā)的,采用了Spring和Hibernate框架。前臺的瀏覽器頁面請求與后臺服務(wù)器的交互大部分通過RPC(Remote Procedure Call)遠(yuǎn)程調(diào)用實(shí)現(xiàn),也有少部分是通過http協(xié)議完成的,比如圖片的上傳和顯示,文檔的上傳等等。這一部分與傳統(tǒng)的B/S架構(gòu)類似,后臺的servlet和service接口處理業(yè)務(wù)邏輯時(shí)通過Hibernate訪問數(shù)據(jù)庫,并將獲得的數(shù)據(jù)返回給前臺,由瀏覽器負(fù)責(zé)頁面顯示。
OpenMeetings白板能夠?qū)崿F(xiàn)多種格式的文檔和圖片的共享,如圖1所示。需要下面幾種外部擴(kuò)展工具的支持:開源辦公軟件OpenOffice,主要用來處理OpenMeetings白板中演示的MS Word、Excel、PowerPoint和txt等多種格式的文件轉(zhuǎn)換成PDF文件;圖像處理ImageMagick,OpenMeetings通過它處理白板中的圖像操作以及生成等工作;Flash轉(zhuǎn)換工具SWFTools,將上傳的文件或者系統(tǒng)中運(yùn)行的文件轉(zhuǎn)換成swf文件,以便前臺可以訪問。
圖1 OpenMeetings系統(tǒng)結(jié)構(gòu)
OpenMeetings是一個(gè)針對網(wǎng)絡(luò)視頻會議的開源軟件,提供了大量視頻會議方面的功能,如視頻會議、預(yù)約會議、音視頻播放和桌面共享等,而即時(shí)通信軟件中只需要使用OpenMeetings的白板功能,因此需要對其做一定的改造,去掉多余的功能,重新設(shè)計(jì)電子白板界面。電子白板的界面設(shè)計(jì)包括點(diǎn)擊白板按鈕后直接進(jìn)入到電子白板的房間列表,房間的界面設(shè)計(jì)以及房間界面的漢化等。
OpenMeetings的電子白板與即時(shí)通信軟件融合后用戶都是通過即時(shí)通信軟件登錄,在使用電子白板功能時(shí)不需要重新登錄OpenMeetings,因此需要去掉OpenMeetings提供的登錄界面。系統(tǒng)默認(rèn)使用登錄即時(shí)通信軟件的用戶名和密碼后臺登錄OpenMeetings服務(wù)器,繞過OpenMeetings的登錄界面直接使用白板,還需要考慮即時(shí)通信軟件和OpenMeetings的賬號同步問題。
OpenMeetings提供的登錄界面中包含一個(gè)選擇語言的下拉菜單,如果繞過登錄界面則默認(rèn)語言為英文。為了方便用戶使用,需要將默認(rèn)語言從英文改為中文,這樣用戶就可以使用默認(rèn)語言直接進(jìn)入中文界面。用戶登錄OpenMeetings后會進(jìn)入到主界面,主界面提供視頻會議、電子白板、系統(tǒng)配置和桌面共享文字聊天等多種功能。由于用戶只需要使用電子白板功能,登錄以后需要直接進(jìn)入到房間列表界面。
經(jīng)過上面的修改,可以實(shí)現(xiàn)在即時(shí)通信客戶端上點(diǎn)擊電子白板按鈕,直接進(jìn)入到房間列表,選擇進(jìn)入相應(yīng)的房間與房間內(nèi)其他用戶一起進(jìn)行共享白板操作。
進(jìn)入房間后會發(fā)現(xiàn)房間內(nèi)包含許多與電子白板不相關(guān)的其他功能,為了使白板界面整潔,需要去掉這些多余的功能。房間界面中包含導(dǎo)航菜單,通過導(dǎo)航菜單能夠方便的從電子白板房間切換到其他房間,如視頻會議。由于用戶不需要OpenMeetings除電子白板以外的其他功能,導(dǎo)航菜單對用戶操作白板也沒用任何用處,需要在房間界面中去除導(dǎo)航菜單。房間頂部有一排功能菜單,如申請主持和投票等等,用戶使用電子白板時(shí)用不到這些功能,而且這些功能全都可以在即時(shí)通信軟件中實(shí)現(xiàn),所以可以根據(jù)需要將這部分功能菜單刪除。房間列表右側(cè)有一個(gè)聊天窗口,即時(shí)通信軟件已經(jīng)提供了相同的功能,因此需要修改房間列表,刪除房間列表右側(cè)的聊天窗口。
電子白板的業(yè)務(wù)流程圖如圖2所示,要實(shí)現(xiàn)該流程,需對OpenMeetings服務(wù)器端進(jìn)行改造,改造后的服務(wù)器稱為WhiteBoard服務(wù)器。
圖2 白板業(yè)務(wù)流程圖
用戶在登錄即時(shí)通信軟件后,點(diǎn)擊電子白板按鈕,客戶端會彈出一個(gè)WebBrowser界面,通過url登錄到WhiteBoard服務(wù)器。客戶端繞開WhiteBoard服務(wù)器提供的用戶登錄界面,直接進(jìn)入房間列表。
進(jìn)入房間列表后,用戶可以選擇一個(gè)房間進(jìn)入或者創(chuàng)建一個(gè)房間。如果用戶選擇創(chuàng)建一個(gè)房間,則WhiteBoard服務(wù)器為該用戶分配一個(gè)空閑的房間號,用戶利用這個(gè)房間號創(chuàng)建一個(gè)空房間并進(jìn)入,新創(chuàng)建的房間將顯示在房間列表中,方便其他用戶加入。創(chuàng)建房間的用戶擁有房主權(quán)限,房主有權(quán)邀請某一用戶加入房間或者將某一用戶踢出房間,并且可以修改房間內(nèi)其他所有用戶對白板的操作權(quán)限。如果用戶選擇進(jìn)入房間,那么用戶只具有操作白板的權(quán)限,而不能夠增加或者刪除房間內(nèi)的用戶。用戶進(jìn)入房間之前需要房主認(rèn)證,認(rèn)證通過之后才可以進(jìn)入房間并能夠看到之前房間內(nèi)所有用戶對白板的操作。
WhiteBoard的電子白板為用戶提供了豐富的功能,用戶可以在白板中繪制一些簡單圖形,共享圖片和電子文檔,并對共享的圖片或文檔進(jìn)行標(biāo)注等操作。用戶進(jìn)入房間后默認(rèn)具有對白板的讀寫權(quán)限,房主也可以根據(jù)實(shí)際情況將某一用戶的權(quán)限改為只讀,此時(shí)該用戶只能看到別的用戶對白板的操作而不能對白板進(jìn)行修改。在使用完電子白板后,普通用戶可以選擇退出房間,退出房間之后房間仍然存在,如果房主退出房間,則房間消失。
WhiteBoard提供了一個(gè)名為SOAP網(wǎng)關(guān)的WebService,它集成了一系列用戶操作功能,包括用戶登錄、進(jìn)入房間、創(chuàng)建房間和房間管理等功能等。
為實(shí)現(xiàn)上述白板操作流程,利用WhiteBoard的SOAP接口來實(shí)現(xiàn)一個(gè)servlet,這個(gè)servlet接收房間號和用戶昵稱等信息,然后組裝一個(gè)進(jìn)入房間的url,并將用戶WebBrowser重定向到這個(gè)url,實(shí)現(xiàn)房間登錄。使用SOAP網(wǎng)關(guān)登錄房間的步驟如下:
①調(diào)用getSession方法向系統(tǒng)申請一個(gè)SessionID;
②提交用戶名和房間號等信息,使用loginUserEx方法驗(yàn)證用戶身份。loginUserEx方法是自定義的擴(kuò)展方法,目的是把原有基于管理員的用戶身份驗(yàn)證方式改為基于房主的身份用戶驗(yàn)證,增加房主對房間內(nèi)人員的管理功能;
③如果用戶身份驗(yàn)證通過,則更新session里的數(shù)據(jù),獲得hash;若用戶身份驗(yàn)證失敗,則返回錯(cuò)誤信息,并禁止其進(jìn)入房間;
④使用第三步中獲得的hash碼組裝一個(gè)能夠進(jìn)入房間的url,重定向到這個(gè)url,進(jìn)入房間。
通過以上步驟,可以實(shí)現(xiàn)用戶自動登錄、登錄后直接進(jìn)入房間列表、房間的進(jìn)入和創(chuàng)建及房主對用戶的身份驗(yàn)證等功能,實(shí)現(xiàn)了整個(gè)電子白板的業(yè)務(wù)流程。
用戶通過上面介紹的這種電子白板業(yè)務(wù)能夠?qū)崿F(xiàn)共享多種格式的圖片和電子文檔及繪制一些簡單圖形來表達(dá)自己的想法和對文檔進(jìn)行標(biāo)注等功能,并提供白板保存功能,方便用戶以后查看。電子白板與即時(shí)通信軟件的融合豐富了用戶的溝通方式,使通信雙方獲得了更好的用戶體驗(yàn)。盡管如此,基于流媒體的電子白板業(yè)務(wù)仍存在一些問題。例如,采用B/S架構(gòu)的電子白板和采用C/S架構(gòu)的即時(shí)通信軟件融合時(shí)由于風(fēng)格不統(tǒng)一[7],如何保證用戶體驗(yàn)是關(guān)鍵,這將是未來的研究方向??傊?,基于流媒體的電子白板業(yè)務(wù)仍然具有很好的實(shí)際應(yīng)用意義。
[1]肖 波,王兆青,諸鴻文.電子白板互操作的研究和設(shè)計(jì)[J].上海交通大學(xué)學(xué)報(bào),1998,32(8):12-15.
[2]胡曉勝,賈一竹.多媒體網(wǎng)絡(luò)教學(xué)系統(tǒng)中電子白板的設(shè)計(jì)與實(shí)現(xiàn)[J].中國現(xiàn)代教育裝備,2008(9):148-150.
[3]華致立,江 紅,顧君忠.分布式網(wǎng)絡(luò)會議的電子白板的原理及其實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2002,28(2):172-176.
[4]杜呈偉,李偉榮,吳新國.基于B_S的電子白板的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(16):3021-3023.
[5]許建龍,王兆青,彭來發(fā),等.基于Java的電子白板設(shè)計(jì)[J].浙江工程學(xué)院學(xué)報(bào),1999,16(4):303-309.
[6]彭凌華,趙 蕊.OpenMeetings的網(wǎng)絡(luò)視頻會議系統(tǒng)的研究[J].電腦知識與技術(shù),2011,7(12):2909-2911.
[7]洪 晟,熊華鋼,張其善.一種改進(jìn)的協(xié)同式電子白板的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2008,34(2):261-263.