基于XML的Web信息筛选器的设计与实现

2012-01-15 06:02陈丹
电子设计工程 2012年14期
关键词:视图网页客户端

陈丹

(武汉软件工程职业学院 湖北 武汉 430205)

在Internet上有各式各样的信息源,可以从中获取自己想要的信息。但是每个信息源里可能包含你并不想要的信息,例如,你想查看股票信息时,网页上有许多广告。不仅如此,要获取不同的信息就必须打开访问不同网站,例如,如果想同时获取天气信息和股票信息,就必须打开2个窗口,分别访问提供天气信息的网页和提供股票信息的网页。如果能够有一个软件,直接在一个界面上显示用户需要的多种信息,而且没有广告等多余的信息,将会十分有用。

基于对以上情况的分析,可以构建一个Web服务为用户提供特定信息的服务,根据用户所发出的信息请求,通过Internet从指定的网站中获取数据,进行解析并过滤多余的信息,将解析后有用的信息结果返回给请求数据的客户端[1-2]。笔者设计的基于XML的Web信息筛选器能实现该Web服务的功能。

1 基于.NET与XML的Web服务构建

在XML基础上发展起来的Web服务提供了一个分布式的计算技术,它使用XML作为基本的数据通信方式,消除了不同操作系统、组件模型与编程语言之间通信存在的差异,用于在Internet或者Intranet上通过使用标准的XML协议和信息格式来实现通信和共享、交换数据[3]。构建Web服务的目标是将应用程序转化为一种可以通过互联网订阅使用的服务,以及使网络软件具有更高的互操作性和兼容性。

XML Web Service的核心概念是,基于Web的应用程序能够在基于标准的环境中创建,并作为服务将内容或信息传递给需要使用该服务的客户端。XML Web Service为基于Web的专用应用程序在Internet上的传输提供了一种方式,该方式类似于传统的基于组件的设计,服务的使用者不需要知道它是怎样运行的,只要知道它所提供的适当的服务和结果。XML Web Service利用XML和其他Internet标准,使得服务的使用者能够通过XML得到它们的服务。XML Web Service之间的大多数交换是通过XML数据和技术完成的[4]。

2 系统功能分析

基于XML的Web信息筛选器能够从指定的网站上获取信息并进行过滤,为客户端用户提供天气,股票和新闻数据。客户端用户通过向Web服务发出请求,获取指定城市的天气情况(如天气状况、温度、风力、紫外线和空气质量),指定代码和股市的股票信息(如 SS(上海)或 SZ(深圳)的股市信息),以及指定媒体的分类新闻(如新浪网的体育新闻)。

整个系统设计的框架可以分为以下两个部分:

1)Web Service模块 从Internet上获取需要的数据。

2)客户端模块 调用Web Service模块的方法获取数据,在客户端界面上显示。

3 总体设计

本系统分为2个模块。其中,Web Service模块主要负责信息的获取和过滤工作。从特定的网址获取数据,并对其进行解析。将解析后有用的结果返回给请求数据的客户端。客户端模块负责从Web Service接收数据进行显示。

首先需要使用ASP.NET技术搭建一个Web服务,该Web服务上采用了数据库和XML文档的存储形式,服务发布后就连接到Internet并启动新闻搜集线程开始准备获取数据,通过搜集特定网站中给定页面的新闻连接得到新闻网页的url,然后查找每个页面的新闻连接,将新闻存储到数据库中,并以XML的形式返回指定网页的内容[5]。Web服务上定义了一系列的方法可以供客户端进行调用,为客户端用户提供天气,股票和新闻数据,根据条件返回查询结果,再将查询结果生成的xml文件用XSL转换成HTML返回给客户端。

用于对Internet中的网页信息实现Web信息筛选器的Web服务的总体设计如图1所示。其中的关键技术包括XML数据交换,ADO.NET数据访问技术和DataSet数据集,以及ASP.NET XML Web Service技术。

图1 基于XML的Web信息筛选器的设计Fig.1 Design of Web information filters based on XML

4 功能模块设计

4.1 数据库设计

由于需要从Internet上获取信息并将筛选出的有用信息进行保存,以便将结果返回给请求数据的用户,因此在Web服务端设计了一个数据库News用于相关数据的存取,这里选用SQL Server作为数据库服务器[6]。该数据库中共设计了4个数据表,包括 Tab_Media(媒体列表)、Tab_Category(新闻类别列表)、Tab_PageUrl(新闻网页的 url)和 Tab_PagesList(Web网页的内容)。在数据库中还设计了2个数据视图,其中视图Vew_MediaShortName用于表示与指定媒体对应的新闻网页的url,视图Vew_PagesList用于表示媒体中各个新闻类别的网页内容。在Web服务器上还设计了一个XML文档Cities.xml,用于存放可以获取天气信息的城市名列表。

4.2 WebService模块

WebService模块主要实现了以下功能:

1)获取天气数据的功能:从指定的网站中获取数据,进行解析并过滤多余的信息,将天气数据返回给客户端。

2)获取股票数据的功能:从指定的网站中获取数据,进行解析并过滤多余的信息,将股票数据返回给客户端。

3)获取订阅新闻的功能:从指定的网站中获取新闻,在客户端显示。

4.3 客户端模块

客户端模块主要实现以下功能:1)定制天气、股票、新闻信息;2)显示天气、股票、新闻信息;3)每块信息可放缩,下部的信息块相应调整位置;4)定时更新每块内容。股票每分钟更新一次,新闻每10 min更新一次,天气每小时更新一次。

5 功能实现

系统开发环境为Microsoft.NET Framework和SQL Server数据库,使用Microsoft Visual Studio编写Web服务和客户端应用程序[7]。

5.1 Web Service模块

对Web Service中部署的类和文件描述如下。

1)Global类和 Global.asax文件

Global类在Web Service启动以后定期将新闻数据保存到本地的数据库News中。Global类视图如图2所示。

图2 Global类视图Fig.2 Global Class View

其中涉及的几个重要方法的功能说明如下:

①void Application_Start(object sender,EventArgs e)

启动新闻搜集线程,准备数据。

②void Application_End(object sender,EventArgs e)

终止搜索线程,关闭数据库连接。

③string[,]GatherNews(string pageUrl)

搜集给定页面的新闻连接,根据目标页面地址返回新闻连接,新闻标题数组。

④void StoreNews()

将新闻存储到数据库中。

⑤NewsUrl[]GetPageUrl()

得到新闻网页的url。

⑥XmlDocument GetPageContent(Uri url)

返回指定网页的内容。

2)DataRetrival类和DataRetrival.asmx文件

DataRetrival类是该Web服务中最重要的类,为Client用户提供天气,股票和新闻数据。它实现了与客户端的交互,将客户端需要的信息返回给客户端。DataRetrival类视图如图3所示。

图3 DataRetrival类视图Fig.3 DataRetrival Class View

该类中部署的Web服务描述如下:

①GetCategoryList方法

获取支持的媒体栏目列表,该列表以CategoryId;Category-Name的形式返回。例如:4;体育新闻。其中CategoryId是用于定制新闻时的参数,CategoryName显示的是CategoryId对应的友好名称。

②GetCityNameList方法

获取可以查询天气的城市列表。

③GetMediaList方法

获取支持的媒体列表,该列表以MediaId;MediaName的形式返回。例如:6;新浪网。其中MediaId是用于定制新闻时的参数,MediaName显示的是MediaId对应的友好名称。

④GetStockInfo方法

获取指定代码和股市的股票信息。

⑤GetWeatherInfo()

获取指定城市的天气情况,提供当天的天气数据。返回的string数组内容依次为:天气状况、温度、风力、紫外线和空气质量。

3)CustomizationNews类

该类用于显示用户定制的新闻内容,根据条件返回查询结果,再将查询结果生成的xml文件用XSL转换成HTML。CustomizationNews类视图如图4所示。可以通过类似以下的网址来访问该页面:

http://localhost/CustomizationNews.aspxMedia=6&Category=3

其中Media由DataRetrival类的GetMediaList方法获得。Category由DataRetrival类的GetCategoryList方法获得。

图4 CustomizationNews类视图Fig.4 CustomizationNews Class View

5.2 客户端模块

客户端模块由两部分组成,一部分是名为Shrinkable GroupBox的自定义控件类库,它实现了自动收缩的功能。另一部分就是SideBar窗体应用程序,实现了SideBar的主界面和设置界面,调用WebService获取信息。

1)ShrinkableGroupBox类库

①ExtendButton类

此类实现了ShrinkableGroupBox中的按钮。当用户鼠标移动到上面时,鼠标形状会发生变化,文字会高亮显示。单击后箭头方向会改变,并对ShrinkableGroupBox进行放缩。

②ShrinkableGroupBox类

此类实现了放缩功能,在缩放后激发事件。

2)SideBar项目

SideBar是一个Windows窗体项目,它是客户端的主界面,显示了天气、股票和新闻信息。其中的可收缩框使用ShrinkableGroupBox。另外,它还提供了定制这些信息的界面,将设置保存到配置文件中。它通过调用WebService获取需要显示的信息。

①MainForm类

此类是客户端的主界面。

②SettingForm类

此类负责设置并保存用户的定制信息。

③Settings类

此类用于映射配置文件中的信息。

5.3 系统实现与测试

启动服务器端,发布Web服务DataRetrival Web Service。运行客户端应用程序SideBar,调用Web服务获取指定网站上的默认城市天气情况、股票信息以及分类新闻内容。通过“配置”对话框,可以查询北京或上海的股市信息、选择要查看天气的城市名称、定制不同网络媒体的分类新闻信息。

6 结 论

该系统采用了XML相关技术和Web服务,设计了一个基于XML的Web信息筛选器应用实例,实现了对特定网站信息的获取和过滤,为用户提供了有效信息。经过对实例评价分析,Web服务端所提供的服务能够根据用户的定制要求成功完成对指定网页的信息获取和过滤,实现了Web筛选器的功能。

[1]胡轶众.基于.NET的动态信息发布系统的设计与实现[D].四川:重庆大学,2007.

[2]袁新坤.基于XML与Web Services数据交换平台的研究与实现[D].太原:太原理工大学,2008.

[3]李俊.XML数据转换技术的研究和改进[D].上海:同济大学软件学院,2008.

[4]李伟超.基于XML的网络服务研究[D].郑州:郑州大学,2006.

[5]林莉.XML数据交换技术在高校信息化平台中的应用[D].大连:大连理工大学,2009.

[6]谢剑刚.XML数据在Microsoft+SQL+Server+2005中的存储和优化[D].广东:中山大学,2007.

[7]微软公司.Web应用开发——ASP.NET 2.0[M].北京:高等教育出版社,2007.

猜你喜欢
视图网页客户端
如何看待传统媒体新闻客户端的“断舍离”?
基于CSS的网页导航栏的设计
基于HTML5静态网页设计
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
基于URL和网页类型的网页信息采集研究