鄒清保,廖聞劍,彭艷賓,程 光
(1.武漢郵電科學(xué)研究院,湖北武漢430074;2.烽火通信科技股份有限公司,江蘇南京210019;3.東南大學(xué)計算機(jī)科學(xué)與工程學(xué)院,江蘇南京211189)
隨著3G時代的到來,手機(jī)應(yīng)用日漸熱門。由于手機(jī)自身攜帶方便,并且是生活必帶隨身用品,而且信號覆蓋廣,操作便捷,大家期待各種常見的或是重要的信息化系統(tǒng)、互聯(lián)網(wǎng)應(yīng)用可以被移植到手機(jī)上同步使用,使用戶無論在何時何地,都可以連線精彩的網(wǎng)絡(luò)世界,登錄信息系統(tǒng)。為此,如何進(jìn)行手機(jī)開發(fā),如何在手機(jī)上催生各種多姿多彩的精彩應(yīng)用,日漸成為整個軟件產(chǎn)業(yè)關(guān)注的焦點[1]。
目前市場上流通著各種類型的手機(jī)終端,根據(jù)功能分為高、中、低檔機(jī),各種手機(jī)終端和操作系統(tǒng)對辦公文檔的支持能力是不同的。通常高檔機(jī)型才裝有例如Microsoft Office的辦公軟件,支持本地查看和編輯Office文檔,在想查看網(wǎng)絡(luò)上辦公系統(tǒng)的附件時,就必須要把附件文檔下載到本地,終端調(diào)用本地Office軟件打開文檔,達(dá)到預(yù)覽的效果。部分中檔的機(jī)器可以安裝辦公軟件,部分不能支持。而低檔機(jī)器基本不能支持安裝辦公軟件,無法查看如 WORD、EXCEL 等辦公文檔[2]。
這種預(yù)覽方式存在的缺陷:每次預(yù)覽文檔都需要把文件從網(wǎng)絡(luò)上下載到本地,然后打開,操作復(fù)雜且網(wǎng)絡(luò)流量十分龐大,不能滿足用戶預(yù)覽文檔的操作簡便、流量小的需求。預(yù)覽辦公文檔的實現(xiàn)方法就是著力于解決不同機(jī)器的差異和網(wǎng)絡(luò)流量較大的問題。
為解決上述問題,通常讓終端負(fù)責(zé)展現(xiàn)文字及圖片信息,解決網(wǎng)絡(luò)流量較大的問題:服務(wù)器將文檔解析后,只返回文檔的某一頁信息給終端,而不是把整個文檔返回給終端。這樣做大大減少了網(wǎng)絡(luò)通信的流量,解決了訪問時間較長的問題。同時,服務(wù)器對文檔轉(zhuǎn)換有緩存機(jī)制,對于多次請求相同文件的情況,只在首次請求時做轉(zhuǎn)換,后續(xù)則直接提取緩存信息,而無需轉(zhuǎn)換,從而提高了訪問速度。
智能終端上預(yù)覽辦公文檔的實現(xiàn)步驟如圖1所示。
圖1 智能終端上預(yù)覽辦公文檔的實現(xiàn)流程圖
步驟1,分析辦公文檔的格式,根據(jù)系統(tǒng)配置的文檔轉(zhuǎn)換方式對辦公文檔進(jìn)行解析。辦公系統(tǒng)中使用的文檔種類很多,如 WORD,PPT,EXCEL,PDF,ZIP,RAR等,各種類型的文檔格式都不相同,需要對應(yīng)使用不同的解析辦法。系統(tǒng)配置的文檔轉(zhuǎn)換方式有圖片轉(zhuǎn)換和文字轉(zhuǎn)換。
步驟2,根據(jù)不同文檔格式,對文檔進(jìn)行分頁并輸出每頁的XML描述,并在每頁中加入頁面導(dǎo)航,進(jìn)行緩存處理。各種格式的文檔有各自的顯示特點,根據(jù)各自的特點,做分頁處理,加入頁面導(dǎo)航,并輸出各頁XML描述。采用緩存機(jī)制處理,即某一文檔初次被解析過后,會對解析的數(shù)據(jù)做緩存,當(dāng)再次需要解析時,直接提取初次解析的緩存信息,更新緩存過期時間,而不作重復(fù)解析,以提高性能,根據(jù)緩存過期時間定時清理長時間未訪問的緩存。
步驟3,對轉(zhuǎn)換生成的圖片或辦公文檔中的圖片進(jìn)行格式和大小轉(zhuǎn)換,減小圖片尺寸,適應(yīng)終端顯示。文檔解析過程中會生成圖片,這些圖片有些是原文檔中的插圖,有些是原文檔某一整頁的圖片掃描。各種終端對圖片的支持能力不同,需要對圖片做格式、大小和尺寸的轉(zhuǎn)換適應(yīng)終端顯示。
步驟4,將第1頁的XML輸出給終端。文檔解析后最終輸出到終端的都是文檔的第1個分頁XML,由終端解釋顯示該XML,每一個分頁XML中都包含了分頁鏈接的請求地址。
步驟5,終端對XML進(jìn)行顯示。由智能終端上的客戶端程序顯示XML,該XML需符合自主規(guī)范的UIXML語法規(guī)范。
步驟6,在終端翻頁查看時,將指定頁的XML數(shù)據(jù)輸出給終端進(jìn)行顯示。每一個分頁XML中都包含了首頁、上一頁、下一頁、末頁的請求地址,終端點擊分頁按鈕,就會像服務(wù)器請求具體某一分頁的緩存數(shù)據(jù),達(dá)到分頁效果。對文檔作圖片轉(zhuǎn)換,即將整個文檔作圖片掃描,最終按照文檔的原始分頁生成每一頁的圖片,將圖片信息緩存在服務(wù)器端,把各個分頁圖片的鏈接構(gòu)造成整個文檔的各分頁XML描述,終端收到XML后對鏈接做二次請求獲取圖片,最終展現(xiàn)給終端。對文檔做文字轉(zhuǎn)換就是提取文檔中的文字和部分圖片的鏈接信息構(gòu)造成XML,終端先顯示文字,再判斷有圖片鏈接時會發(fā)起二次請求,獲取圖片展現(xiàn)給終端。WORD和PDF文檔的分頁是依照傳統(tǒng)的分頁形式展現(xiàn)到終端[3]。PPT文檔的分頁是以PPT文檔的每個幻燈片作為分頁依據(jù),即一個幻燈片就是一頁。EXCEL文檔的分頁是以EXCEL文檔的每個SHEET作為分頁依據(jù),即一個SHEET就是一頁。RAR和ZIP文檔以文件層次結(jié)構(gòu)形式顯示,其首頁為最高層次的目錄和文件,目錄中包含了子目錄和子文件。
可以對附件預(yù)覽的前后臺交互協(xié)議、緩存文件管理等方面進(jìn)行優(yōu)化處理,提升附件預(yù)覽的整體性能。
優(yōu)化以前采用圖片預(yù)覽方式轉(zhuǎn)換WORD和PDF文檔時,請求附件的每個分頁,客戶端和服務(wù)端之間都存在兩次交互:一次是請求分頁的XML頁面,其中包含分頁圖片的鏈接;一次是請求實際分頁圖片。對于優(yōu)化前的圖片預(yù)覽方式轉(zhuǎn)換WORD和PDF文檔,不需要采用兩次交互的方式[4]。
優(yōu)化后,服務(wù)端僅回復(fù)實際分頁圖片。在響應(yīng)頭中增加附件預(yù)覽標(biāo)記信息,用于客戶端識別附件預(yù)覽響應(yīng)??蛻舳藢Υ祟愴憫?yīng)的圖片,采用區(qū)別于普通圖片的展示控件展示該附件分頁圖片。
以請求文檔的URL區(qū)分不同文檔,相同URL則認(rèn)定為相同的文檔(可能存在誤差)。
文檔唯一標(biāo)識確定后,對于不同的文檔,以各自不同的ID創(chuàng)建緩存文件目錄,執(zhí)行文檔轉(zhuǎn)換等工作生成的臨時文件都存放在該目錄中。PPM文件占用空間大,僅做臨時文件生成,轉(zhuǎn)換完成后,立即刪除,避免浪費磁盤空間。當(dāng)服務(wù)端啟動時可以刪除項目中的數(shù)據(jù)庫文檔轉(zhuǎn)換表中的數(shù)據(jù)以及緩存目錄下的保存文件。
負(fù)責(zé)配置緩存數(shù)據(jù)在服務(wù)器中保存的時間。當(dāng)啟動不刪除緩存時,根據(jù)該配置清除配置期限之前的過期數(shù)據(jù),以避免數(shù)據(jù)庫及文件系統(tǒng)由于服務(wù)器長期運行造成的數(shù)據(jù)容量無限量增加的問題。同時,配置服務(wù)器定時執(zhí)行過期緩存文件的檢查時間,定時清除過期的文件。
優(yōu)化后的圖片預(yù)覽方式轉(zhuǎn)換WORD和PDF文檔,不需要采用兩次交互的方式。優(yōu)化后,服務(wù)端僅回復(fù)實際分頁圖片。在響應(yīng)頭中增加附件預(yù)覽標(biāo)記信息,用于客戶端識別附件預(yù)覽響應(yīng)。客戶端對此類響應(yīng)的圖片,采用區(qū)別于普通圖片的展示控件展示該附件分頁圖片[5]。
新增文檔預(yù)覽,提供文檔轉(zhuǎn)換交互服務(wù),客戶端對于文檔預(yù)覽的請求向該地址發(fā)送請求,采用標(biāo)準(zhǔn)的HTTP協(xié)議FORM表單提交POST請求如表1所示。
表1 表單提交參數(shù)的意義
當(dāng)附件在服務(wù)端首次執(zhí)行預(yù)覽轉(zhuǎn)換后,服務(wù)端回復(fù)的是該附件的第一頁圖片,并在響應(yīng)頭設(shè)置該附件的總頁數(shù)??蛻舳苏埱蠓猪搱D片包(采用HTTP POST請求)示例如:
將WORD和PDF文檔以抽取文字的形式解析,并將文檔的部分分頁內(nèi)容顯示到終端。將WORD和PDF文檔以掃描成圖片的形式解析,以一個分頁作為一張圖片,并將文檔的部分分頁內(nèi)容顯示到終端。將EXCEL文檔以表格的形式,按SHEET分頁顯示到終端。將PPT文檔以文字和圖片的形式解析,按幻燈片分頁顯示到終端。將RAR和ZIP等壓縮文件,按照文件層次結(jié)構(gòu)形式解析,并模擬PC機(jī)上打開壓縮文件的形式在終端上預(yù)覽壓縮文件內(nèi)容,并能預(yù)覽壓縮文件內(nèi)部的子文件內(nèi)容。將JPG,BMP,GIF等各種圖片轉(zhuǎn)換成大多數(shù)終端都支持的PNG圖片,支持圖片文件的預(yù)覽。效果如圖2~圖7所示。
圖2Word顯示效果圖(截圖)
圖3JPG顯示效果圖(截圖)
預(yù)覽辦公文檔的實現(xiàn)極大方便了用戶在手機(jī)閱讀各類文獻(xiàn)與材料,也使在手機(jī)終端上移動辦公成為可能。移動信息化改變了固定模式的企事業(yè)單位信息化方式,使信息化建設(shè)模式變得更加靈活方便,滿足企事業(yè)單位工作人員在出差、外出、休假,或是某些突發(fā)性事件時與單位信息體系的全方位順暢溝通的需求。
圖4HTML文檔顯示效果圖(截圖)
圖5BMP顯示效果圖(截圖)
圖6EXCEL顯示效果圖(截圖)
圖7GIF顯示效果圖(截圖)
[1]庚志成.2005全球3G發(fā)展總攬[J].電信技術(shù),2006(1):108-111.
[2]馬慕周.中國辦公自動化(OA)25年發(fā)展回顧與展望[J].辦公自動化,2008(2):10-11.
[3]王曉麗.冰山一角——如何保障遠(yuǎn)程移動辦公安全[J].電子商務(wù),2008(4):21-22.
[4]鄭人杰.實用軟件工程[M].北京:清華大學(xué)出版社,2004.
[5] 楊衛(wèi)東.軟件工程(第三版)[M].北京:人民郵電出版社,2007.