鄒清保,廖聞劍,彭艷賓,程 光
(1.武漢郵電科學研究院,湖北武漢430074;2.烽火通信科技股份有限公司,江蘇南京210019;3.東南大學計算機科學與工程學院,江蘇南京211189)
隨著3G時代的到來,手機應用日漸熱門。由于手機自身攜帶方便,并且是生活必帶隨身用品,而且信號覆蓋廣,操作便捷,大家期待各種常見的或是重要的信息化系統、互聯網應用可以被移植到手機上同步使用,使用戶無論在何時何地,都可以連線精彩的網絡世界,登錄信息系統。為此,如何進行手機開發,如何在手機上催生各種多姿多彩的精彩應用,日漸成為整個軟件產業關注的焦點[1]。
目前市場上流通著各種類型的手機終端,根據功能分為高、中、低檔機,各種手機終端和操作系統對辦公文檔的支持能力是不同的。通常高檔機型才裝有例如Microsoft Office的辦公軟件,支持本地查看和編輯Office文檔,在想查看網絡上辦公系統的附件時,就必須要把附件文檔下載到本地,終端調用本地Office軟件打開文檔,達到預覽的效果。部分中檔的機器可以安裝辦公軟件,部分不能支持。而低檔機器基本不能支持安裝辦公軟件,無法查看如 WORD、EXCEL 等辦公文檔[2]。
這種預覽方式存在的缺陷:每次預覽文檔都需要把文件從網絡上下載到本地,然后打開,操作復雜且網絡流量十分龐大,不能滿足用戶預覽文檔的操作簡便、流量小的需求。預覽辦公文檔的實現方法就是著力于解決不同機器的差異和網絡流量較大的問題。
為解決上述問題,通常讓終端負責展現文字及圖片信息,解決網絡流量較大的問題:服務器將文檔解析后,只返回文檔的某一頁信息給終端,而不是把整個文檔返回給終端。這樣做大大減少了網絡通信的流量,解決了訪問時間較長的問題。同時,服務器對文檔轉換有緩存機制,對于多次請求相同文件的情況,只在首次請求時做轉換,后續則直接提取緩存信息,而無需轉換,從而提高了訪問速度。
智能終端上預覽辦公文檔的實現步驟如圖1所示。

圖1 智能終端上預覽辦公文檔的實現流程圖
步驟1,分析辦公文檔的格式,根據系統配置的文檔轉換方式對辦公文檔進行解析。辦公系統中使用的文檔種類很多,如 WORD,PPT,EXCEL,PDF,ZIP,RAR等,各種類型的文檔格式都不相同,需要對應使用不同的解析辦法。系統配置的文檔轉換方式有圖片轉換和文字轉換。
步驟2,根據不同文檔格式,對文檔進行分頁并輸出每頁的XML描述,并在每頁中加入頁面導航,進行緩存處理。各種格式的文檔有各自的顯示特點,根據各自的特點,做分頁處理,加入頁面導航,并輸出各頁XML描述。采用緩存機制處理,即某一文檔初次被解析過后,會對解析的數據做緩存,當再次需要解析時,直接提取初次解析的緩存信息,更新緩存過期時間,而不作重復解析,以提高性能,根據緩存過期時間定時清理長時間未訪問的緩存。
步驟3,對轉換生成的圖片或辦公文檔中的圖片進行格式和大小轉換,減小圖片尺寸,適應終端顯示。文檔解析過程中會生成圖片,這些圖片有些是原文檔中的插圖,有些是原文檔某一整頁的圖片掃描。各種終端對圖片的支持能力不同,需要對圖片做格式、大小和尺寸的轉換適應終端顯示。
步驟4,將第1頁的XML輸出給終端。文檔解析后最終輸出到終端的都是文檔的第1個分頁XML,由終端解釋顯示該XML,每一個分頁XML中都包含了分頁鏈接的請求地址。
步驟5,終端對XML進行顯示。由智能終端上的客戶端程序顯示XML,該XML需符合自主規范的UIXML語法規范。
步驟6,在終端翻頁查看時,將指定頁的XML數據輸出給終端進行顯示。每一個分頁XML中都包含了首頁、上一頁、下一頁、末頁的請求地址,終端點擊分頁按鈕,就會像服務器請求具體某一分頁的緩存數據,達到分頁效果。對文檔作圖片轉換,即將整個文檔作圖片掃描,最終按照文檔的原始分頁生成每一頁的圖片,將圖片信息緩存在服務器端,把各個分頁圖片的鏈接構造成整個文檔的各分頁XML描述,終端收到XML后對鏈接做二次請求獲取圖片,最終展現給終端。對文檔做文字轉換就是提取文檔中的文字和部分圖片的鏈接信息構造成XML,終端先顯示文字,再判斷有圖片鏈接時會發起二次請求,獲取圖片展現給終端。WORD和PDF文檔的分頁是依照傳統的分頁形式展現到終端[3]。PPT文檔的分頁是以PPT文檔的每個幻燈片作為分頁依據,即一個幻燈片就是一頁。EXCEL文檔的分頁是以EXCEL文檔的每個SHEET作為分頁依據,即一個SHEET就是一頁。RAR和ZIP文檔以文件層次結構形式顯示,其首頁為最高層次的目錄和文件,目錄中包含了子目錄和子文件。
可以對附件預覽的前后臺交互協議、緩存文件管理等方面進行優化處理,提升附件預覽的整體性能。
優化以前采用圖片預覽方式轉換WORD和PDF文檔時,請求附件的每個分頁,客戶端和服務端之間都存在兩次交互:一次是請求分頁的XML頁面,其中包含分頁圖片的鏈接;一次是請求實際分頁圖片。對于優化前的圖片預覽方式轉換WORD和PDF文檔,不需要采用兩次交互的方式[4]。
優化后,服務端僅回復實際分頁圖片。在響應頭中增加附件預覽標記信息,用于客戶端識別附件預覽響應。客戶端對此類響應的圖片,采用區別于普通圖片的展示控件展示該附件分頁圖片。
以請求文檔的URL區分不同文檔,相同URL則認定為相同的文檔(可能存在誤差)。
文檔唯一標識確定后,對于不同的文檔,以各自不同的ID創建緩存文件目錄,執行文檔轉換等工作生成的臨時文件都存放在該目錄中。PPM文件占用空間大,僅做臨時文件生成,轉換完成后,立即刪除,避免浪費磁盤空間。當服務端啟動時可以刪除項目中的數據庫文檔轉換表中的數據以及緩存目錄下的保存文件。
負責配置緩存數據在服務器中保存的時間。當啟動不刪除緩存時,根據該配置清除配置期限之前的過期數據,以避免數據庫及文件系統由于服務器長期運行造成的數據容量無限量增加的問題。同時,配置服務器定時執行過期緩存文件的檢查時間,定時清除過期的文件。
優化后的圖片預覽方式轉換WORD和PDF文檔,不需要采用兩次交互的方式。優化后,服務端僅回復實際分頁圖片。在響應頭中增加附件預覽標記信息,用于客戶端識別附件預覽響應。客戶端對此類響應的圖片,采用區別于普通圖片的展示控件展示該附件分頁圖片[5]。
新增文檔預覽,提供文檔轉換交互服務,客戶端對于文檔預覽的請求向該地址發送請求,采用標準的HTTP協議FORM表單提交POST請求如表1所示。

表1 表單提交參數的意義
當附件在服務端首次執行預覽轉換后,服務端回復的是該附件的第一頁圖片,并在響應頭設置該附件的總頁數。客戶端請求分頁圖片包(采用HTTP POST請求)示例如:


將WORD和PDF文檔以抽取文字的形式解析,并將文檔的部分分頁內容顯示到終端。將WORD和PDF文檔以掃描成圖片的形式解析,以一個分頁作為一張圖片,并將文檔的部分分頁內容顯示到終端。將EXCEL文檔以表格的形式,按SHEET分頁顯示到終端。將PPT文檔以文字和圖片的形式解析,按幻燈片分頁顯示到終端。將RAR和ZIP等壓縮文件,按照文件層次結構形式解析,并模擬PC機上打開壓縮文件的形式在終端上預覽壓縮文件內容,并能預覽壓縮文件內部的子文件內容。將JPG,BMP,GIF等各種圖片轉換成大多數終端都支持的PNG圖片,支持圖片文件的預覽。效果如圖2~圖7所示。

圖2Word顯示效果圖(截圖)

圖3JPG顯示效果圖(截圖)
預覽辦公文檔的實現極大方便了用戶在手機閱讀各類文獻與材料,也使在手機終端上移動辦公成為可能。移動信息化改變了固定模式的企事業單位信息化方式,使信息化建設模式變得更加靈活方便,滿足企事業單位工作人員在出差、外出、休假,或是某些突發性事件時與單位信息體系的全方位順暢溝通的需求。

圖4HTML文檔顯示效果圖(截圖)

圖5BMP顯示效果圖(截圖)

圖6EXCEL顯示效果圖(截圖)

圖7GIF顯示效果圖(截圖)
[1]庚志成.2005全球3G發展總攬[J].電信技術,2006(1):108-111.
[2]馬慕周.中國辦公自動化(OA)25年發展回顧與展望[J].辦公自動化,2008(2):10-11.
[3]王曉麗.冰山一角——如何保障遠程移動辦公安全[J].電子商務,2008(4):21-22.
[4]鄭人杰.實用軟件工程[M].北京:清華大學出版社,2004.
[5] 楊衛東.軟件工程(第三版)[M].北京:人民郵電出版社,2007.