劉紅,楊發(fā)毅
隨著3G網(wǎng)絡(luò)的發(fā)展,手機(jī)的用途除了通話,發(fā)送短信外,還能用來閱讀和上網(wǎng),這意味著數(shù)字圖書館豐富的資源不再被固定在電腦桌前訪問,而是可以通過手機(jī)隨時(shí)隨地進(jìn)行訪問,閱讀和下載。但由于傳統(tǒng)技術(shù)的局限性,目前基于手機(jī)的數(shù)字圖書館服務(wù)主要限于短信服務(wù)和簡(jiǎn)單的查詢、訂閱和預(yù)約功能,而在媒體表現(xiàn)力、復(fù)雜交互性和個(gè)性化推送服務(wù)等方面無法勝任。而 RIA的適時(shí)出現(xiàn)為這個(gè)問題提供全新的解決途徑。RIA是Rich Internet Application(富互聯(lián)網(wǎng)應(yīng)用系統(tǒng),亦稱富客戶端)的縮寫,維基百科對(duì)它有如下定義:所謂RIA,首先,它應(yīng)該是一個(gè)網(wǎng)絡(luò)應(yīng)用程序;其次,它還要具有桌面應(yīng)用程序的特征和功能。簡(jiǎn)單地說,如果你的桌面程序(比如說Word、Photoshop和Eclipse)能在網(wǎng)絡(luò)上運(yùn)行,并且能保持其原來的功能和特征,那么我們就可以稱它們?yōu)镽IA應(yīng)用(富客戶端應(yīng)用)。因此,RIA的技術(shù)特點(diǎn)使得其非常適用于數(shù)字圖書館服務(wù)系統(tǒng)的設(shè)計(jì)和應(yīng)用。
RIA作為未來Web應(yīng)用程序的發(fā)展方向。許多公司和研究機(jī)構(gòu),包括Microsoft、Adobe、Sun等軟件業(yè)巨頭,都積極投入到了RIA的研發(fā)當(dāng)中。本節(jié)將重點(diǎn)介紹Microsoft Silverlight平臺(tái)的一些技術(shù)特點(diǎn)。
眾所周知,微軟是一個(gè)優(yōu)秀的平臺(tái)開發(fā)商。它的Windows和Microsoft 0ffice產(chǎn)品都符合工業(yè)級(jí)標(biāo)準(zhǔn),在Web展現(xiàn)技術(shù)方面,以往微軟并沒有太多表現(xiàn),不過在推出了名為Microsoft Silverlight的新技術(shù)之后,希望在這方面有所突破。Silverlight是一個(gè)跨瀏覽器、跨平臺(tái)的插件,為網(wǎng)絡(luò)帶來下一代基于.NET的媒體體驗(yàn)和豐富的交互式Web應(yīng)用程序。從編程的角度來看,Silverlight程序使用的是.NET托管代碼,可以用 XAML(Extensible Application Markup Language,擴(kuò)展應(yīng)用程序標(biāo)記語(yǔ)言)編寫,XAML是微軟為Windows Vista創(chuàng)建的基于XML的標(biāo)記語(yǔ)言。它提供了對(duì)動(dòng)畫和3D眾多方面的支持。XAML程序可以用最簡(jiǎn)單的文本編輯器編寫,當(dāng)然也可以使用圖形工具(如Expression Blend)來創(chuàng)建XAML代碼,之后就可以開放給Web搜索引擎和其它在線工具。而由于Silverlight除了支持IE以外,還可以支持Apple的Safari和Mozilla的Firefox瀏覽器,因此它可以運(yùn)行在任何計(jì)算機(jī)平臺(tái)上,包括 Macintosh和Linux。更令人激動(dòng)的是,微軟公司還推出了手機(jī)版本的Silverlight,給手機(jī)用戶帶來了全新的多媒體互聯(lián)網(wǎng)頁(yè)面的瀏覽體驗(yàn)。
從根本上來說,Silverlight最關(guān)鍵的與眾不同之處,實(shí)際上就是它創(chuàng)建出的UI質(zhì)量,它是真正以XAML格式進(jìn)行數(shù)據(jù)傳輸,到用戶前端后再解析為具體圖像,文本的大小是非常小的,所以完全不用擔(dān)心帶寬。此外,Silverlight還提供靈活的編程模型,支持AJAX,VB,C#,Python,Ruby等語(yǔ)言,并集成到現(xiàn)有的網(wǎng)絡(luò)應(yīng)用程序中。而對(duì)于使用Windows平臺(tái)開發(fā)工具的用戶來說,可以使用C#,VB等多種語(yǔ)言進(jìn)行開發(fā),而不需要拋棄原本的知識(shí)去學(xué)習(xí)ActionScript,而且這些語(yǔ)言在進(jìn)行Silverlight開發(fā)時(shí),也繼承了很多這些語(yǔ)言的特性,如在數(shù)字圖書館的流媒體服務(wù)和推送服務(wù)中,不可避免地要用到通訊功能,而Silverlight就可以很方便的使用最常用的底層的傳輸工具Sockets。同時(shí)Silverlight的System.Net命名空間里還有很多通訊組件比如Webclient等,完全可以實(shí)現(xiàn)SOA和Flex的Httpservice的功能。
從上面介紹的Silverlight的技術(shù)特點(diǎn),我們不難得出它在數(shù)字圖書館信息服務(wù)中的諸多應(yīng)用優(yōu)勢(shì):
豐富的表現(xiàn)力:Silverlight技術(shù)具有豐富的多媒體表現(xiàn)能力,可以將文字、圖片、音頻、視頻進(jìn)行無縫的結(jié)合,從而使得用戶界面更加生動(dòng)、豐富,體驗(yàn)感更好。
強(qiáng)大的交互性:傳統(tǒng)的數(shù)字圖書館信息服務(wù)以文本為主,缺乏交互,響應(yīng)速度緩慢。Silverlight技術(shù)支持動(dòng)畫、視頻、音頻、雙向的數(shù)據(jù)通信和創(chuàng)建復(fù)雜的窗體,能夠完成復(fù)雜的用戶交互操作,與用戶的交互能力更強(qiáng)。
高效的數(shù)據(jù)傳輸:服務(wù)端與客戶端之間的數(shù)據(jù)流傳輸方式采取XAML數(shù)據(jù),客戶端和服務(wù)器端僅傳遞必要的數(shù)據(jù)。從而大大降低了數(shù)據(jù)通訊量,降低了對(duì)網(wǎng)絡(luò)帶寬的要求,大大提高了網(wǎng)絡(luò)訪問速度。特別是對(duì)于數(shù)字圖書館提供的音視頻服務(wù),傳統(tǒng)的方式是在客戶端嵌入播放器插件來實(shí)現(xiàn)的,這種方式對(duì)客戶端軟件和網(wǎng)絡(luò)條件有較高的要求。而Silverlight直接支持音視頻的播放,無需額外的插件,最新版Silverlight 3.0中支持H.264高清晰度視頻和3D。
圖1:數(shù)字圖書館手機(jī)服務(wù)系統(tǒng)框架示意圖
圖2 數(shù)字圖書館手機(jī)服務(wù)簡(jiǎn)單實(shí)體構(gòu)架圖
圖3 數(shù)字圖書館手機(jī)服務(wù)簡(jiǎn)單實(shí)現(xiàn)示意圖
我們?cè)O(shè)計(jì)的基于Silverlight的數(shù)字圖書館信息手機(jī)服務(wù)采用三層B/S模式,開發(fā)技術(shù)使用XAML、.NET、Javascript等,后臺(tái)數(shù)據(jù)庫(kù)采用SQL Server 2005。系統(tǒng)框架如圖1所示,第一層為表示層,通過在Web瀏覽器上外掛Silverlight瀏覽器插件實(shí)現(xiàn)用戶與整個(gè)系統(tǒng)的交互;第二層為業(yè)務(wù)層,該層主要負(fù)責(zé)系統(tǒng)的各種邏輯業(yè)務(wù),完成表示層與數(shù)據(jù)層之間的通訊。如根據(jù)數(shù)字圖書館用戶的興趣和喜好,給用戶推送信息。第三層為數(shù)據(jù)層,提供平臺(tái)所需要的數(shù)據(jù)信息,如圖書信息等。根據(jù)系統(tǒng)框架圖,我們可以設(shè)計(jì)簡(jiǎn)單的系統(tǒng)實(shí)體構(gòu)架圖(如圖2所示)。
在圖1的描述中,數(shù)字圖書館信息服務(wù)的主要包括查詢服務(wù),流媒體服務(wù)和推送服務(wù)或者個(gè)性化定制服務(wù)等。其中查詢服務(wù)是由用戶發(fā)起的被動(dòng)式服務(wù),如書目查詢、圖書借閱、圖書預(yù)約等。數(shù)字圖書館信息服務(wù)除了這些被動(dòng)式的服務(wù)以外,還應(yīng)該提供主動(dòng)的推送和個(gè)性化的定制服務(wù)。即數(shù)字圖書館信息服務(wù)平臺(tái)應(yīng)該能夠根據(jù)用戶平時(shí)的訪問系統(tǒng)的特征和興趣愛好主動(dòng)給用戶推送信息,當(dāng)然也可以根據(jù)用戶的定制進(jìn)行信息推送服務(wù)。
從技術(shù)角度來看,手機(jī)上實(shí)現(xiàn)數(shù)字圖書館信息服務(wù),既要求服務(wù)器端應(yīng)答客戶端的請(qǐng)求,還要求服務(wù)端主動(dòng)給客戶端發(fā)送信息。因此,在我們的系統(tǒng)中,采用了XAML+WCF+LINQ三層結(jié)構(gòu)來實(shí)現(xiàn),XAML作為表示層用來進(jìn)行給客戶端展示數(shù)據(jù)信息,而信息的傳輸則是通過WCF進(jìn)行傳遞的,LINQ則負(fù)責(zé)應(yīng)用服務(wù)層與后臺(tái)數(shù)據(jù)服務(wù)層的交互。圖3展示了系統(tǒng)實(shí)現(xiàn)的流媒體資源服務(wù)和新書播報(bào)服務(wù)。其中新書播報(bào)服務(wù)是服務(wù)器端根據(jù)用戶的定制主動(dòng)推送的。WCF(Windows Communication Foundation)的核心目的是允許程序與同一臺(tái)計(jì)算機(jī)或網(wǎng)絡(luò)上的,或跨越互聯(lián)網(wǎng)的其它程序?qū)崿F(xiàn)通訊。WCF編程模型把Web服務(wù)、.NET遠(yuǎn)程技術(shù)、分布式事務(wù)和消息隊(duì)列統(tǒng)一到單個(gè)面向服務(wù)的編程模型中,從而實(shí)現(xiàn)真正意義上的分布式計(jì)算。由于數(shù)字圖書館信息服務(wù)既需要從瀏覽器端調(diào)用服務(wù)器端方法來完成用戶請(qǐng)求的響應(yīng),同時(shí),服務(wù)器端又需要主動(dòng)給客戶端推送信息,因此,系統(tǒng)需要調(diào)用WCF的雙向通信(Duplex Service)功能來實(shí)現(xiàn),其相關(guān)代碼如下:
[ServiceContract(Namespace = "DigitalLibraryService",CallbackContract = typeof(IDuplexClient))]
public interface IDuplexService
{
/**//// <summary>
/// 客戶端向服務(wù)端發(fā)送消息的方法
/// </summary>
[OperationContract(IsOneWay = true)]
void SendNewBook(Message receivedMessage);
}
/**//// <summary>
/// 雙工(Duplex)服務(wù)的回調(diào)接口
/// </summary>
public interface IDuplexClient
{
/**//// <summary>
/// 客戶端接收服務(wù)端發(fā)送過來的消息的方法
/// </summary>
///<param name="returnMessage">服務(wù)端向客戶端發(fā)送的消息 System.ServiceModel.Channels.Message</param>
[OperationContract(IsOneWay = true)]
void ReceiveNewBookMessage(Message returnMessage);
}
中國(guó)工業(yè)和信息化部(MIIT)的統(tǒng)計(jì)數(shù)據(jù)顯示,截止到2008年11月份,中國(guó)的手機(jī)用戶數(shù)量達(dá)到了6.3384億,手機(jī)普及率達(dá)到49.2%,而且這個(gè)數(shù)字在未來幾年還會(huì)持續(xù)增長(zhǎng)。因此,數(shù)字圖書館潛在的手機(jī)用戶數(shù)目是非常巨大的,而將Silverlight等RIA技術(shù)應(yīng)用于數(shù)字圖書館中,使得數(shù)字圖書館服務(wù)更加豐富,用戶使用更加便捷,更具交互性??梢灶A(yù)見在不久的將來,手機(jī)圖書館服務(wù)必將成為數(shù)字圖書館發(fā)展的一個(gè)重要方向。
[1]孫超,鐘珞.基于Silverlight的富界面應(yīng)用研究[J].武漢理工大學(xué)學(xué)報(bào).2008,(12).
[2]陳曉美,關(guān)欣.手機(jī)圖書館在信息傳播中的價(jià)值.情報(bào)科學(xué),2006,24(11):1687-1690;
[3]陰江烽.3G業(yè)務(wù)在圖書館的擴(kuò)展應(yīng)用分析及其關(guān)鍵技術(shù)[J].河南科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,28(4):97-99.
[4]Wahlin D.Silverlight 2中的新特性[J].程序員,2008,(10).
[5]朱海峰.數(shù)字化圖書館的發(fā)展 無線圖書館[J].圖書館理論與實(shí)踐,2002,(6).
[6]吳志攀.移動(dòng)閱讀與圖書館的未來 “移動(dòng)讀者的圖書館”[J].大學(xué)圖書館學(xué)報(bào),2004,(1).