基于三层架构的新闻发布系统的研究与实现*
2012-11-17刘晓梅
邓 芳,刘晓梅
(烟台职业学院,山东 烟台 264670)
基于三层架构的新闻发布系统的研究与实现*
邓 芳,刘晓梅
(烟台职业学院,山东 烟台 264670)
主要是对新闻发布系统使用了三层架构的思想,进行了总体设计,并对其功能模块和程序设计进行了详细的阐述.使用了三层架构的新闻发布系统运行时更安全、更易于维护.
新闻;B/S;三层架构
随着信息技术的不断进步,新闻呈现方式也在不断的发生变化,从早期的纸张记录,到蒸汽印刷机带来的报业繁荣,随着收音机的兴起,我们听到了更多梦寐以求的声音,电视台、卫星电视的出现,改变了我们的生活,到了今天的网络时代,我们甚至只需一台电脑和一根电话线就可以看到世界任何一处的信息。在不久的未来,相信手机将为新闻带来新的纪元。
随着技术的发展,我们势必需要一个新闻发布系统来发布通过网络呈现的新闻内容,将网页上的某些需要经常变动的信息,类似新闻、新产品发布和业界动态等更新信息集中管理,并通过信息的某些共性进行分类,最后系统化、标准化发布到网站上的一种网站应用程序因运而生。
网络新闻发布系统的出现大大减轻了网站更新维护的工作量,通过网络数据库的引用,将网站的更新维护工作简化到只需录入文字和上传图片,从而使网站的更新速度大大缩短,在某些专门的网上新闻站点,如新浪的新闻中心等,新闻的更新速度已经是即时更新,从而大大加快了信息的传播速度,也吸引了更多的长期用户群,时时保持网站的活动力和影响力。
而本文又使用了三层架构的思想对传统的新闻发布系统进行了改进,使此系统在使用时更安全,并且使后期的维护变得简单。
一、系统设计
(一)体系结构
系统主要以ASP。NET为开发平台,SQL Server 2005为后台数据库,采用三层架构的形式进行系统的分析,三层架构主要分为数据层、业务逻辑层和表示层。数据层主要进行的是对数据库的操作,包括对数据库的增删改查等功能都是在数据层进行单独的设计,从而使系统的安全性得以提高。业务逻辑层主要进行的是负责所有的业务逻辑处理,它接受表示层传来的数据,根据传来的数据进行调用数据层的相应函数进行对数据库的操作,最后把结果传递给表示层,进行最终的显示。表示层就是对页面的规划,负责跟用户进行交互,接收用户的输入并将服务器端传来的数据呈现给客户。
基于三层架构的设计使系统变得更简单、快捷。
(二)功能模块
本系统分为前台管理和后台管理模块,前台管理是对新闻的显示部分,后台的管理又分为后台登录模块、新闻栏目和类别管理模块、新闻发布模块和流量统计模块。下面详细介绍每个模块的功能。
1.前台显示页面
前台显示页面主要的功能是将所有的栏目都显示出来,并且每个栏目下显示本栏目下最新的10条新闻。每个新闻列表下有“更多…”的链接,用于打开本栏目的页面。栏目页面包括其下所有的类别,类别下同样显示本类别下最新的10条新闻。每个新闻列表下具有“更多…”的链接,用于打开本类别的页面。类别页面包括了此类别下的所有新闻,并且提供分页功能,新闻以时间倒序进行了排序,最上面的新闻显示的是最新的内容。并且每个新闻列表均能点击标题进入新闻浏览页面,可以进行新闻的详细信息的浏览。
2.后台管理页面
(1)后台登录。新闻发布系统要实现后台新闻管理,栏目管理等等一系列功能,而这些功能的实现之前需要实现的是系统的登录,必须使用正确的用户名和密码还有验证码才能登陆到本系统的后台管理页面。这就是后台登录模块实现的功能。
(2)新闻栏目、类别管理。登录正确后,管理员可以对新闻类别和新闻栏目进行更改。新闻类别是属于新闻栏目的子项。新闻栏目可以进行添加、删除、修改。新闻类别也可以进行添加、删除、修改;并且修改类别时能够调整其所属的栏目。
(3)新闻修改。新闻的添加包括的内容有:新闻标题、所属类别、发布时间、发布人、来源、关键字、内容。其中发布时间取服务器当前时间。其他新闻项目需要手敲进去。
已发布的新闻是能够修改的,已发布的新闻以列表形式显示出来,该列表提供了查询功能,能够按照类别以及关键字进行新闻的查询。新闻的修改可以通过列表打开相应的新闻修改页面,对新闻进行相应的修改。保存数据时发布时间改为当前的服务器时间,其他的新闻项目以修改后的数据更新数据库。
(4)流量统计。为了了解当月最热点的新闻,本系统有新闻月流量的统计,可以查看新闻每月点击率排行榜,排行榜按照从多到少的顺序排列。依次显示新闻的流量。
(三)数据库设计
每一个系统数据库的设计是至关重要的,对数据库如何管理、如何操作、如何实现查询是建立数据库需要考虑的首要问题。怎样建库、使用什么样的库结构,关系到管理和查询的准确程度和查询的效率。本系统主要建立了四个表,表的内容如下:
用户信息表:这个表主要是用来存储管理员的用户名密码的。为了管理员登录的时候进行比对。
新闻栏目表:此表主要是存储新闻栏目的,比方说是娱乐新闻,还是军事新闻等等,有一个栏目ID是主键,它会跟新闻类别表之间进行关联。
新闻类别表:此表主要是存储新闻类别的,它跟新闻栏目表之间有关联,就是表示新闻栏目中比方说军事新闻,它会包括国内军事还是国际军事,它们之间用新闻栏目ID的外键进行关联。表示新闻类别是属于新闻栏目的。
新闻表:此表是用来存储新闻的,表里包含新闻的ID,新闻的标题,新闻属于的类别,新闻的发布时间,新闻的关键字,新闻来源,新闻内容等,这个表跟新闻类别表有关联,表示此条新闻是属于那个新闻类别的。
二、实现方法
本系统是使用三层架构实现的,下面把系统中如何显示新闻的实现方式展示出来。
(一)类的定义
因为是使用三层架构的方式实现,所以在系统实现功能的前提之下是把类先建立出来,这个类的定义就是跟数据库是一一对应的,数据库中有几个表,系统中就有几个类,并且类中只要相应的数据成员,没有任何方法,类中的数据成员跟表中的字段也是一一对应的,下面列出News类中的具体定义:
(二)数据层的实现
数据层主要是对数据库的相应操作,现在是对数据库中新闻的显示,所以要写一个方法对数据库中新闻表中每个字段的查询显示。代码如下:
(三)业务逻辑层的实现
业务逻辑层就是调用数据层的GetSingle这个方法,把从表示层传来的newsID值给数据层传进去,最终接受到GetSingle方法返回的news信息。
(四)表示层的实现
表示层需要把业务逻辑成返回的结果逐一的显示在页面上。部分代码如下:
三、总 结
本系统是使用三层架构的方式设计的程序,三层架构的特点就是可以使得开发人员的分工更加明确,使系统有松散的耦合度,并且会使系统后期的维护变得轻松。但是三层架构虽然优点很多,也有它自身的缺点,它会降低了系统的性能,虽然它会降低系统性能但对于我们现在的硬件的发展,这种性能的降低微乎其微。所以,还是推荐程序员使用三层架构的方式来分析问题、解决问题。
[1]John Kauffman,Brain Matasik.ASP.NET数据库入门经典[M].北京:清华大学出版社,2002.
[2]冯玉才.数据库系统基础[M].第2版.武汉:华中科技大学出版社,2001.
[3]张跃廷.ASP.NET 2.0网络编程自学手册[M].北京:人民邮电出版社,2008.
[4]郑齐心.ASP.NET项目开发案例全程实录[M].第2版.北京:清华大学出版社,2011.
[5]章立民.ASP.NET 3.5开发范例精讲精析(基于 C#)[M].北京:科学出版社,2009.
TP311.52
A
1006-5342(2012)07-0168-02
2012-03-18