APP下载

利用Silverlight技术在手机上实现数字图书馆信息服务

2010-05-05刘红杨发毅

微型电脑应用 2010年1期
关键词:服务端服务器端客户端

刘红,杨发毅

0 引言

随着3G网络的发展,手机的用途除了通话,发送短信外,还能用来阅读和上网,这意味着数字图书馆丰富的资源不再被固定在电脑桌前访问,而是可以通过手机随时随地进行访问,阅读和下载。但由于传统技术的局限性,目前基于手机的数字图书馆服务主要限于短信服务和简单的查询、订阅和预约功能,而在媒体表现力、复杂交互性和个性化推送服务等方面无法胜任。而 RIA的适时出现为这个问题提供全新的解决途径。RIA是Rich Internet Application(富互联网应用系统,亦称富客户端)的缩写,维基百科对它有如下定义:所谓RIA,首先,它应该是一个网络应用程序;其次,它还要具有桌面应用程序的特征和功能。简单地说,如果你的桌面程序(比如说Word、Photoshop和Eclipse)能在网络上运行,并且能保持其原来的功能和特征,那么我们就可以称它们为RIA应用(富客户端应用)。因此,RIA的技术特点使得其非常适用于数字图书馆服务系统的设计和应用。

1 Silverlight技术特点及其在数字图书馆信息服务中的应用优势

RIA作为未来Web应用程序的发展方向。许多公司和研究机构,包括Microsoft、Adobe、Sun等软件业巨头,都积极投入到了RIA的研发当中。本节将重点介绍Microsoft Silverlight平台的一些技术特点。

众所周知,微软是一个优秀的平台开发商。它的Windows和Microsoft 0ffice产品都符合工业级标准,在Web展现技术方面,以往微软并没有太多表现,不过在推出了名为Microsoft Silverlight的新技术之后,希望在这方面有所突破。Silverlight是一个跨浏览器、跨平台的插件,为网络带来下一代基于.NET的媒体体验和丰富的交互式Web应用程序。从编程的角度来看,Silverlight程序使用的是.NET托管代码,可以用 XAML(Extensible Application Markup Language,扩展应用程序标记语言)编写,XAML是微软为Windows Vista创建的基于XML的标记语言。它提供了对动画和3D众多方面的支持。XAML程序可以用最简单的文本编辑器编写,当然也可以使用图形工具(如Expression Blend)来创建XAML代码,之后就可以开放给Web搜索引擎和其它在线工具。而由于Silverlight除了支持IE以外,还可以支持Apple的Safari和Mozilla的Firefox浏览器,因此它可以运行在任何计算机平台上,包括 Macintosh和Linux。更令人激动的是,微软公司还推出了手机版本的Silverlight,给手机用户带来了全新的多媒体互联网页面的浏览体验。

从根本上来说,Silverlight最关键的与众不同之处,实际上就是它创建出的UI质量,它是真正以XAML格式进行数据传输,到用户前端后再解析为具体图像,文本的大小是非常小的,所以完全不用担心带宽。此外,Silverlight还提供灵活的编程模型,支持AJAX,VB,C#,Python,Ruby等语言,并集成到现有的网络应用程序中。而对于使用Windows平台开发工具的用户来说,可以使用C#,VB等多种语言进行开发,而不需要抛弃原本的知识去学习ActionScript,而且这些语言在进行Silverlight开发时,也继承了很多这些语言的特性,如在数字图书馆的流媒体服务和推送服务中,不可避免地要用到通讯功能,而Silverlight就可以很方便的使用最常用的底层的传输工具Sockets。同时Silverlight的System.Net命名空间里还有很多通讯组件比如Webclient等,完全可以实现SOA和Flex的Httpservice的功能。

从上面介绍的Silverlight的技术特点,我们不难得出它在数字图书馆信息服务中的诸多应用优势:

丰富的表现力:Silverlight技术具有丰富的多媒体表现能力,可以将文字、图片、音频、视频进行无缝的结合,从而使得用户界面更加生动、丰富,体验感更好。

强大的交互性:传统的数字图书馆信息服务以文本为主,缺乏交互,响应速度缓慢。Silverlight技术支持动画、视频、音频、双向的数据通信和创建复杂的窗体,能够完成复杂的用户交互操作,与用户的交互能力更强。

高效的数据传输:服务端与客户端之间的数据流传输方式采取XAML数据,客户端和服务器端仅传递必要的数据。从而大大降低了数据通讯量,降低了对网络带宽的要求,大大提高了网络访问速度。特别是对于数字图书馆提供的音视频服务,传统的方式是在客户端嵌入播放器插件来实现的,这种方式对客户端软件和网络条件有较高的要求。而Silverlight直接支持音视频的播放,无需额外的插件,最新版Silverlight 3.0中支持H.264高清晰度视频和3D。

图1:数字图书馆手机服务系统框架示意图

图2 数字图书馆手机服务简单实体构架图

图3 数字图书馆手机服务简单实现示意图

2 基于Silverlight的数字图书馆信息手机服务的设计与实现

2.1 系统框架

我们设计的基于Silverlight的数字图书馆信息手机服务采用三层B/S模式,开发技术使用XAML、.NET、Javascript等,后台数据库采用SQL Server 2005。系统框架如图1所示,第一层为表示层,通过在Web浏览器上外挂Silverlight浏览器插件实现用户与整个系统的交互;第二层为业务层,该层主要负责系统的各种逻辑业务,完成表示层与数据层之间的通讯。如根据数字图书馆用户的兴趣和喜好,给用户推送信息。第三层为数据层,提供平台所需要的数据信息,如图书信息等。根据系统框架图,我们可以设计简单的系统实体构架图(如图2所示)。

2.2 系统实现

在图1的描述中,数字图书馆信息服务的主要包括查询服务,流媒体服务和推送服务或者个性化定制服务等。其中查询服务是由用户发起的被动式服务,如书目查询、图书借阅、图书预约等。数字图书馆信息服务除了这些被动式的服务以外,还应该提供主动的推送和个性化的定制服务。即数字图书馆信息服务平台应该能够根据用户平时的访问系统的特征和兴趣爱好主动给用户推送信息,当然也可以根据用户的定制进行信息推送服务。

从技术角度来看,手机上实现数字图书馆信息服务,既要求服务器端应答客户端的请求,还要求服务端主动给客户端发送信息。因此,在我们的系统中,采用了XAML+WCF+LINQ三层结构来实现,XAML作为表示层用来进行给客户端展示数据信息,而信息的传输则是通过WCF进行传递的,LINQ则负责应用服务层与后台数据服务层的交互。图3展示了系统实现的流媒体资源服务和新书播报服务。其中新书播报服务是服务器端根据用户的定制主动推送的。WCF(Windows Communication Foundation)的核心目的是允许程序与同一台计算机或网络上的,或跨越互联网的其它程序实现通讯。WCF编程模型把Web服务、.NET远程技术、分布式事务和消息队列统一到单个面向服务的编程模型中,从而实现真正意义上的分布式计算。由于数字图书馆信息服务既需要从浏览器端调用服务器端方法来完成用户请求的响应,同时,服务器端又需要主动给客户端推送信息,因此,系统需要调用WCF的双向通信(Duplex Service)功能来实现,其相关代码如下:

[ServiceContract(Namespace = "DigitalLibraryService",CallbackContract = typeof(IDuplexClient))]

public interface IDuplexService

{

/**//// <summary>

/// 客户端向服务端发送消息的方法

/// </summary>

[OperationContract(IsOneWay = true)]

void SendNewBook(Message receivedMessage);

}

/**//// <summary>

/// 双工(Duplex)服务的回调接口

/// </summary>

public interface IDuplexClient

{

/**//// <summary>

/// 客户端接收服务端发送过来的消息的方法

/// </summary>

///<param name="returnMessage">服务端向客户端发送的消息 System.ServiceModel.Channels.Message</param>

[OperationContract(IsOneWay = true)]

void ReceiveNewBookMessage(Message returnMessage);

}

3 总结

中国工业和信息化部(MIIT)的统计数据显示,截止到2008年11月份,中国的手机用户数量达到了6.3384亿,手机普及率达到49.2%,而且这个数字在未来几年还会持续增长。因此,数字图书馆潜在的手机用户数目是非常巨大的,而将Silverlight等RIA技术应用于数字图书馆中,使得数字图书馆服务更加丰富,用户使用更加便捷,更具交互性。可以预见在不久的将来,手机图书馆服务必将成为数字图书馆发展的一个重要方向。

[1]孙超,钟珞.基于Silverlight的富界面应用研究[J].武汉理工大学学报.2008,(12).

[2]陈晓美,关欣.手机图书馆在信息传播中的价值.情报科学,2006,24(11):1687-1690;

[3]阴江烽.3G业务在图书馆的扩展应用分析及其关键技术[J].河南科技大学学报(自然科学版),2007,28(4):97-99.

[4]Wahlin D.Silverlight 2中的新特性[J].程序员,2008,(10).

[5]朱海峰.数字化图书馆的发展 无线图书馆[J].图书馆理论与实践,2002,(6).

[6]吴志攀.移动阅读与图书馆的未来 “移动读者的图书馆”[J].大学图书馆学报,2004,(1).

猜你喜欢

服务端服务器端客户端
云存储中基于相似性的客户-服务端双端数据去重方法
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
新时期《移动Web服务端开发》课程教学改革的研究
浅析异步通信层的架构在ASP.NET 程序中的应用
在Windows Server 2008上创建应用
在Windows中安装OpenVPN
客户端空间数据缓存策略
网页防篡改中分布式文件同步复制系统