王 力
(西安郵電大學(xué) 圖書館, 陜西 西安 710121)
高校圖書館自建WAP服務(wù)的流量控制方案
王 力
(西安郵電大學(xué) 圖書館, 陜西 西安 710121)
針對(duì)BS模式下的高校圖書館自建移動(dòng)服務(wù)中用戶訪問產(chǎn)生的數(shù)據(jù)流量問題,提出一套數(shù)據(jù)流量控制方案。該方案在WAP站點(diǎn)開發(fā)及頁面源代碼編寫過程中,進(jìn)行了系統(tǒng)識(shí)別、頁面簡(jiǎn)化、代碼優(yōu)化等操作。實(shí)際應(yīng)用測(cè)試顯示,WAP站點(diǎn)中多數(shù)頁面相對(duì)于Web站點(diǎn)中的頁面數(shù)據(jù)加載量有大幅的減少,減少了用戶在使用移動(dòng)瀏覽器訪問圖書館網(wǎng)站時(shí)產(chǎn)生的流量費(fèi)用。
移動(dòng)圖書館;移動(dòng)終端;數(shù)據(jù)流量;流量控制
國(guó)內(nèi)移動(dòng)圖書館業(yè)務(wù)發(fā)展迅速,各高校也紛紛開通移動(dòng)圖書館服務(wù)。許多高校通過購(gòu)買移動(dòng)圖書館系統(tǒng)產(chǎn)品,向本校讀者推出移動(dòng)圖書館服務(wù)[1]。而另外一些高校圖書館由于成品的移動(dòng)圖書館系統(tǒng)產(chǎn)品功能模塊多,且封裝程度高、相對(duì)固定、不能“量身定做”開發(fā)系統(tǒng),或是由于自身資金條件、硬件條件、技術(shù)條件等限制,尚未通過購(gòu)買方式開通移動(dòng)圖書館服務(wù)[2]。同時(shí),這些圖書館又希望提供給讀者一些最基本同時(shí)符合自身特點(diǎn)的移動(dòng)服務(wù),來提升圖書館服務(wù)的全面性、高效性?;诖谁h(huán)境,本文利用原有數(shù)字圖書館Web系統(tǒng),將其加以修改移植,從而自建簡(jiǎn)單的移動(dòng)圖書館系統(tǒng)服務(wù)提供給讀者。
從用戶體驗(yàn)角度以及開發(fā)技術(shù)要求角度分析,自建移動(dòng)服務(wù)更加適合采用瀏覽器訪問頁面(即BS)方式。相對(duì)應(yīng)PC終端的Web模式,移動(dòng)終端的BS模式即WAP模式[3],移動(dòng)圖書館WAP站點(diǎn)可利用數(shù)字圖書館Web站點(diǎn)頁面,將其修改、移植,編寫WML頁面,再通過WAP服務(wù)器處理后形成二進(jìn)制的WML數(shù)據(jù)流送往客戶端[4]。
移動(dòng)終端瀏覽器不同于PC瀏覽器。由于移動(dòng)終端屏幕較PC屏幕更小,網(wǎng)絡(luò)傳輸速率較低,更重要的是國(guó)內(nèi)移動(dòng)運(yùn)營(yíng)商提供的移動(dòng)網(wǎng)絡(luò)是按照數(shù)據(jù)流量計(jì)費(fèi)的。因此,開發(fā)移動(dòng)圖書館WAP頁面時(shí),在保證用戶獲取信息完整的基礎(chǔ)上,頁面數(shù)據(jù)流量要盡可能小,為讀者節(jié)省流量資費(fèi)。
基于BS模式下的自建移動(dòng)圖書館信息服務(wù)目前構(gòu)建的基本內(nèi)容主要包括:移動(dòng)圖書館門戶網(wǎng)站、移動(dòng)OPAC查詢以及簡(jiǎn)單的資源檢索等幾個(gè)功能模塊。由于數(shù)據(jù)庫資源平臺(tái)不同,作為自建移動(dòng)圖書館信息服務(wù)涉及其中較為復(fù)雜,在此僅討論門戶網(wǎng)站及移動(dòng)OPAC查詢服務(wù)中涉及到的問題。
2.1 移動(dòng)門戶網(wǎng)站的改進(jìn)方案
2.1.1 操作系統(tǒng)判別
通常情況下,移動(dòng)終端用戶訪問圖書館站點(diǎn)時(shí),由于個(gè)人習(xí)慣或不了解該移動(dòng)子站點(diǎn),往往直接登錄PC版圖書館門戶網(wǎng)站地址,點(diǎn)擊首頁上的“手機(jī)版”鏈接,再進(jìn)入移動(dòng)頁面。此時(shí)移動(dòng)瀏覽器就已經(jīng)加載一次圖書館PC版首頁,而PC版頁面數(shù)據(jù)量遠(yuǎn)大于移動(dòng)頁面,造成了巨大的流量浪費(fèi)[5]??稍趫D書館Web站點(diǎn)首頁面最前端加一條判別及跳轉(zhuǎn)語句,通過對(duì)來源客戶端的操作系統(tǒng)進(jìn)行判斷,并進(jìn)行選擇性跳轉(zhuǎn),相關(guān)具體方式見如圖1所示。
圖1 終端判別及跳轉(zhuǎn)流程
以ASP腳本語言為例,具體代碼如下。
<%
os=Request.ServerVariables("HTTP_USER_AGENT")
if
Instr(os,"IOS")>0 or Instr(os,"Android")>0 or Instr(os,"Windows Phone")>0 or
Instr(os,"Mobile")>0 or Instr(os,"Symbian")>0 or Instr(os,"BlackBerry")>0
then
Response.Redirect ("http://m.lib.xxxx.edu.cn/")
else
end if
%>
在移動(dòng)用戶訪問到PC版網(wǎng)站首頁時(shí),頁面最前端的識(shí)別代碼首先提取訪問來源客戶端操作系統(tǒng)字符串,其中包含Android、IOS、Symbian等系統(tǒng)標(biāo)識(shí)時(shí),頁面自動(dòng)跳轉(zhuǎn)至移動(dòng)站點(diǎn)首頁,不再加載原來的Web首頁其它代碼,從而避免流量浪費(fèi)。
2.1.2 站點(diǎn)首頁優(yōu)化
由于移動(dòng)終端涉及屏幕尺寸、流量控制等問題,需將移動(dòng)站點(diǎn)首頁提供的服務(wù)模塊鏈接進(jìn)行篩選,只將使用頻率較高,相對(duì)較為實(shí)用的功能模塊鏈接呈現(xiàn)即可,如館內(nèi)最新公告、書刊檢索、讀者信息查詢、服務(wù)項(xiàng)目查詢等;而使用頻率低、不支持移動(dòng)終端使用的、或?qū)儆谕晟祈撁嫘再|(zhì)的功能等模塊,如簡(jiǎn)介類、訪問統(tǒng)計(jì)類、視頻點(diǎn)播類等的功能模塊鏈接,便可向后排列,甚至不予顯示。同時(shí)設(shè)計(jì)首頁語言要精煉,一、二級(jí)欄目都放在主頁上,可以直接點(diǎn)擊進(jìn)入,減少數(shù)據(jù)流量。如果需要瀏覽更多信息時(shí)就點(diǎn)擊“全部”或“更多”鏈接,如大量文字的閱覽及大量資料的下載,都可以放在這里[6],最后在條件允許的情況下,首頁設(shè)計(jì)為純靜態(tài)頁面為宜。
2.1.3 頁面元素優(yōu)化
在將Web站點(diǎn)頁面向WAP站點(diǎn)頁面移植過程中,為了控制頁面代碼流量,不再使用原頁面上的圖片、Flash、音頻、視頻等媒體元素,而使用純文本頁面,從而減少頁面加載的數(shù)據(jù)。如果必須使用圖片,則降低圖像的實(shí)際像素及質(zhì)量,從而降低其源文件大小達(dá)到控制頁面流量[6]。
2.1.4 頁面排版簡(jiǎn)化
在PC版頁面中常用到Css、Style樣式、效果等樣式代碼,以及一些動(dòng)態(tài)特效代碼,如JavaScript、VBScript等,來增加單位面積區(qū)域的信息含量,同時(shí)增加頁面美觀性。
在建立移動(dòng)站點(diǎn)WAP頁面時(shí),由于只需將原Web頁面中有效的模塊代碼、參數(shù)代碼、URL利用并加以移植,同時(shí),排版時(shí)只用空格符、標(biāo)點(diǎn)符、換行符等可識(shí)別字符進(jìn)行分割排列。對(duì)于移動(dòng)瀏覽器不支持,但又在客戶端加載的樣式、特效代碼不再使用,避免造成頁面混亂以及頁面字符流量的浪費(fèi)。
2.2 移動(dòng)OPAC系統(tǒng)
移動(dòng)OPAC服務(wù)是移動(dòng)圖書館功能系統(tǒng)中為讀者服務(wù)快捷性、便利性提高最為顯著的功能模塊。據(jù)筆者隨機(jī)調(diào)查結(jié)果顯示,80%以上的讀者使用移動(dòng)終端訪問圖書館所使用最頻繁的就是OPAC服務(wù)。
高校圖書館提供OPAC服務(wù)的方式大多是利用圖書自動(dòng)化管理系統(tǒng)所帶的OPAC功能模塊,如匯文、ILAS、MELINETS等,都提供了Web模式下的OPAC模塊。自建的BS模式下的移動(dòng)OPAC服務(wù),就可以從Web版的OPAC模塊移植過來,通過調(diào)用Web版OPAC系統(tǒng)的參數(shù)及接口,建立WAP版的OPAC系統(tǒng)。
OPAC服務(wù)大多是檢索、查詢服務(wù),站點(diǎn)頁面中包含了很多的數(shù)據(jù)庫連接、調(diào)用代碼以及判斷語句、循環(huán)語句、排列語句等大量功能性執(zhí)行代碼,因此,在OPAC移植或建立過程中更加要注意頁面代碼流量控制。
2.2.1 編程語言選擇
在選擇代碼編程腳本語言時(shí),盡量選擇服務(wù)器端編譯的腳本語言,筆者在開發(fā)時(shí)使用ASP創(chuàng)建WML頁面。在代碼進(jìn)行編譯時(shí),如數(shù)據(jù)庫連接、調(diào)用代碼以及判斷語句、循環(huán)語句、排列語句等大量功能性執(zhí)行代碼,全部由服務(wù)器執(zhí)行編譯,而終端用戶瀏覽器中加載的只是最終編譯執(zhí)行完成后的靜態(tài)頁面代碼,從而將移動(dòng)終端用戶的代碼流量降低。
2.2.2 分頁機(jī)制優(yōu)化
在移動(dòng)終端使用信息檢索、數(shù)據(jù)庫查詢等需要在頁面陳列多條條目的子功能時(shí),將單頁顯示條數(shù)進(jìn)行優(yōu)化[7]。如果設(shè)置其為固定值,就將其設(shè)置為一個(gè)較小的數(shù)值,例如pagesize= “5”;如果要考慮到讀者習(xí)慣,需要有自定義單頁顯示條數(shù)的選項(xiàng),則將默認(rèn)值設(shè)置為一個(gè)最小的數(shù)值,例如
<%pagesize=int(request("pagesize"))%>
……
5
10
……
。
同時(shí),將頁面結(jié)果排序方式設(shè)置為按照相關(guān)度排序。這樣,使用戶盡可能的從最前面幾條或較為靠前的頁數(shù)中找到符合要求的查詢結(jié)果,同時(shí)減少翻頁次數(shù),從而達(dá)到節(jié)省流量的目的,同時(shí)也可以照顧的移動(dòng)終端屏幕較小的特點(diǎn)。
2.2.3 檢索結(jié)果信息篩選
對(duì)于 WAP 網(wǎng)站來說,一方面手機(jī)屏幕的大小有限,另一方面還需考慮到流量等問題,因此不能將檢索結(jié)果頁面直接顯示出來。實(shí)際上,在檢索結(jié)果頁面中,只需關(guān)注檢索到的書目信息而不必考慮與頁面格式等無關(guān)信息。
解決的方法是對(duì)檢索結(jié)果頁面進(jìn)行源代碼分析,篩選出所需的書目信息,包括書名、作者、索書號(hào)、出版日期、館藏地和書刊狀態(tài)等,最后將這些信息再按照一定的格式組合起來。例如,通過分析發(fā)現(xiàn)檢索結(jié)果頁面中書目信息都包含在
代碼塊中,利用正則表達(dá)式
(?
就可以將此信息篩選出來。關(guān)鍵代碼[8]如下。
// 獲取檢索結(jié)果頁面的源代碼
WebRequest request = WebRequest.Create(openlinkurl);
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("UTF-8"));
string source = reader.ReadToEnd();
// 利用正則表達(dá)式從代碼中提取所需的信息
string pattern = "
MatchCollection mc = Regex.Matches(strOfread, pattern, RegexOptions.IgnoreCase);
// 信息按指定格式進(jìn)行組織
foreach(Match m in mc)
{
code +=Server.HtmlDecode(m.Groups["Text"].Value) + "
";
}
……
2.2.4 緩存的合理利用
在使用PC終端時(shí),瀏覽器緩存(Browser Caching)文件常被人當(dāng)作“系統(tǒng)垃圾”而被頻繁的清理掉。但是,在網(wǎng)絡(luò)傳輸速率較低或傳輸流量受到限制的移動(dòng)終端,這些“系統(tǒng)垃圾”也可以發(fā)揮其作用。
在簡(jiǎn)介類、政策類等更新頻率較低的靜態(tài)頁面中,可在頁面頭標(biāo)簽中將Cache-Control設(shè)置為一個(gè)較大值,例如
"max-age=3153600"/>,
在一年時(shí)間內(nèi),除非用戶手動(dòng)刷新或清除緩存,瀏覽器在訪問此頁面時(shí),都將顯示該頁面緩存內(nèi)容,不加載服務(wù)器段數(shù)據(jù)。
而在查詢類、信息類等更新頻率較高的動(dòng)態(tài)頁面中,則將Cache-Control值設(shè)置為一個(gè)與網(wǎng)站信息更新平均周期相近的值,例如
"max-age=86400"/>,
這樣,在同一天的24小時(shí)內(nèi),多次瀏覽同一頁面時(shí),均使用第一次加載的緩存信息;同時(shí),在頁面顯著位置設(shè)置“手動(dòng)刷新”按鍵,提示讀者該信息為24小時(shí)內(nèi)的信息,如有需求可手動(dòng)刷新。具體緩存加載使用方式如圖2所示。
圖2 終端加載WAP頁面數(shù)據(jù)方式
經(jīng)過緩存文件的選擇性利用,在不影響用戶獲取信息有效、及時(shí)的前提下,減少重復(fù)加載同一頁面次數(shù),節(jié)省了用戶流量。
以某高校圖書館作為開發(fā)模型,分別統(tǒng)計(jì)了多個(gè)Web頁面及其相對(duì)應(yīng)的WAP頁面所產(chǎn)生的代碼流量,以門戶站點(diǎn)首頁為例(圖3,圖4)。
圖3 PC版門戶站點(diǎn)首頁截圖
圖3為該館PC版數(shù)字圖書館門戶網(wǎng)站首頁截圖,該頁面源代碼以全部加載項(xiàng)總文件大小約為360 kb。
而圖4為該館移動(dòng)圖書館門戶首頁面,經(jīng)優(yōu)化后該頁面全部代碼總大小僅為3.6 kb左右,只有原PC版頁面大小的百分之一。
圖4 移動(dòng)門戶站點(diǎn)首頁截圖
結(jié)果顯示移動(dòng)WAP站點(diǎn)大多頁面的源代碼相對(duì)于PC版Web站點(diǎn)頁面代碼均有大幅的減少,有效的節(jié)省了用戶流量。
在PC版數(shù)字圖書館移植、建設(shè)移動(dòng)圖書館站點(diǎn)過程中,通過利用一系列代碼控制的改進(jìn)方案,使移動(dòng)站點(diǎn)頁面源代碼盡可能的優(yōu)化、簡(jiǎn)略,在達(dá)到為讀者傳遞基本完整的信息基礎(chǔ)上,有效的控制了用戶使用移動(dòng)運(yùn)營(yíng)商網(wǎng)絡(luò)訪問圖書館時(shí)頁面代碼產(chǎn)生的流量,最大限度為讀者節(jié)省了流量資費(fèi)。不足之處是該方案僅是針對(duì)移動(dòng)終端在使用運(yùn)用商提供的收費(fèi)網(wǎng)絡(luò)環(huán)境下,僅限于通過瀏覽器訪問移動(dòng)站點(diǎn)WAP頁面方式,在實(shí)際使用中,特定情況限制下可能需要更加全面的開發(fā)方案。
[1] 王勝利.基于3G技術(shù)的移動(dòng)數(shù)字圖書館業(yè)務(wù)創(chuàng)新[J].西安郵電大學(xué)學(xué)報(bào),2013,18(4):117-120.
[2] 夏楨.以應(yīng)用為導(dǎo)向的高校移動(dòng)圖書館建設(shè)與研究:以湖南大學(xué)圖書館為例[J].高校圖書館工作,2013,33(154):13-16.
[3] 谷明坡,劉志鏡,張小平,等.WAP網(wǎng)絡(luò)系統(tǒng)組成與實(shí)現(xiàn)方法[J].計(jì)算機(jī)應(yīng)用,2001,21(9):64-66.
[4] 曾莉.大學(xué)圖書館移動(dòng)服務(wù)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].圖書情報(bào)工作,2011,55(5):72-74.
[5] Chenshijun010.關(guān)于用WebView或手機(jī)瀏覽器打開連接問題[EB/OL].(2011-12-06)[2011-12-06].http://blog.csdn.net/chenshijun0101/article/details/ 7045145.
[6] 羅濤,朱瑩.基于WAP的移動(dòng)圖書館的研究與實(shí)現(xiàn):以東南大學(xué)圖書館為例[J].圖書館雜志,2013,32(8):66-71.
[7] 王忠民,史育蘭,張榮,宋輝.一種移動(dòng)智能搜索個(gè)性化客戶端[J].西安郵電大學(xué)學(xué)報(bào),2013,18(3):71-75.
[8] 曾瑞,趙躍龍.基于WAP技術(shù)的移動(dòng)圖書館研究與設(shè)計(jì)[J].圖書情報(bào)工作,2009,53(21):106-109.
[責(zé)任編輯:祝劍]
Data traffic control programs of self-built WAP
services of university library
WANG Li
(Library, Xi’an University of Posts and Telecommunications, Xi’an 710121, China)
A data traffic control program is proposed for data traffic problem generated in the process of users access the self-built mobile services site in university library. This program carries out operations such as system identification, simplified page, code optimization, etc in the process of WAP site designing and coding. Test results in actual application show that there is a great reduce in the amount of data of the most WAP page and in the mobile traffic cost when browsing the site with a mobile browser.
mobile library, mobile terminal, data traffic, flow control
10.13682/j.issn.2095-6533.2014.01.020
2013-10-24
陜西省教育廳科學(xué)研究專項(xiàng)基金資助項(xiàng)目(11JK1037)
王力(1981-),男,工程師,從事計(jì)算機(jī)應(yīng)用研究。E-mail:wl@xupt.edu.cn
TP393.2
A
2095-6533(2014)01-0090-05