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