1 数字城市与数字城市网站系统概述
与城市一般建设相对应,数字城市立足于当前城市的信息化建设,已经成为城市现代化发展战略的重要组成部分。数字城市的定义范围较广,从广义上讲,数字城市即城市信息化,指通过建设宽带多媒体信息网络、地理信息系统等基础设施平台,整合城市信息资源,实现城市经济信息化,建立城市电子政府、电子商务企业和电子社区;并通过发展信息家电、远程教育和网上医疗,建立信息化社区。数字城市不仅涉及到网络、数据库、信息系统、政策法规和保障体系等各种信息化基础设施的建设,而且还涉及到信息化过程中所产生的社会经济关系和文化伦理观念的变化与调整。从狭义上讲,数字城市是指在理论的指导下,基于3S(地理信息系统GIS、全球定位系统GPS和遥感系统RS)等关键技术,深入开发和应用空间信息资源,建设服务于城市规划、城市建设和管理,服务于政府、企业和公众,服务于人口、资源环境和经济社会的可持续发展的信息基础设施和信息系统,从而建设空间信息基础设施并在此基础上深度开发和整合应用各种信息资源。从技术层面上还可将数字城市定义为以空间信息为核心的城市信息系统体系。
为了展现城市风采,实现市政信息资源的共享,更有利于为公众服务和方便政府的网上办公,建设一流的数字城市网站是必不可少的数字城市建设内容。一个数字城市网站应具有如下一些典型功能:城市概况、城市向导、政务信息、市民生活、社会保障、企业之窗、人才招聘、法律警务、新闻频道、文化体育、娱乐导视、美食天地、旅游交通、招生培训、财经信息、房产动态、今日焦点、最新要闻、图片报道和综合新闻等。因此需要制作大量的网页,目前大多数网站均采用某种发布工具完成此项任务以减少工作量,但存在着一个突出的问题,就是网站的维护工作主要是由网站的维护人员进行一些基本的内容替换和简单的网页格式调整,面对网站布局呆板,不易变更和动态性差等弱点,网站程序设计人员束手无策,无法进行灵活和全方位的再构造。而将J2EE技术应用于网站发布系统中,就可以解决这些问题。
2 J2EE技术在构架数字城市网站发布系统中的应用优势
目前建立网站的技术有多种,比如:HTML,ASP,PHP和Python等,而J2EE是当前首屈一指的非常成熟的面向多层应用的网络分布式技术,他既可以用于构建各种企业应用系统,也可以开发网站系统。J2EE除了继承Java的简单性、跨平台性和安全性等诸多特点之外,还提供了像JDBC数据库技术、RMI和Java IDL分布式技术、XML可扩展描述语言的支持、Servlet\JSP Web应用技术、JavaBeans组件和EJB分布式组件等技术。目前最流行的几个Web企业应用服务器(像Apache,Tomcat,JBoss,Hibernate,Weblogic,Websphere,OAS,BES和SunOne等)都是J2EE的典型运行环境,构建企业系统和网站中选择J2EE技术的最大优势就在于此。
所谓MVC模型,既将企业系统分为模型(即数据表示层)、视图(即显示层)和控制(即业务逻辑层)3个层次,而将J2EE技术和MVC三层应用框架模型相结合,使得企业系统层次更加分明,从MVC技术细节可以对系统进行如下3层分解:
数据表示层 使用LDAP,Database,JDBC,JNDI、对象序列化等技术;
业务逻辑层 使用EJB,JavaBeans,JSF等技术;
显示层 使用Applet,JSP,Servlet,HTML,XML,JavaScript等技术。
图1说明了J2EE计算模式中所体现的MVC三层模型之间的关系。
在图1中,业务逻辑层的EJB,JavaBeans,JSF通过JDBC,JNDI、对象序列化等技术去访问数据表示层中的LDAP数据或数据库,并通过显示层中的JSP,Servlet技术生成Applet,HTML,XML,JavaScript等格式的内容,最后通过浏览器显示出来。J2EE应用服务器可以有多种选择,整个系统具有跨平台的特点,可以构架在目前流行的多种计算机系统之中,比如Unix,Linux和Windows等。
3 数字城市网站发布系统的通用构架技术
采用“数据库+模板→静态页面”的第二代动态网站发布机制,以便解决过去的发布机制中每次用户访问都要连接数据库而导致的数据库访问瓶颈等问题;系统可以自动生成静态页面供用户访问,因此大大提高用户访问网站的响应速度,融合了数据库的灵活、安全和静态页面的快速的特点,能够适应大型门户网站的大信息量和大用户量的环境。与图1中J2EE计算模式相对应,发布系统也采用三层应用构架,如下图2所示。
在图2中,由网站设计人员完成内容编辑,并由发布系统维护人员根据具体网站提供的参数数据完成模板管理和网站管理功能,存人数据库中;通过发布系统完成这些内容的合成处理,并生成HTML,XML和JavaScript等格式的静态网页,部署到Web应用服务器相关目录之中,供用户通过浏览器进行访问。
基于以上的技术和构架,并结合一般数字城市的典型功能,对系统的三层应用框架进行如下的技术实现。
(1)数据库的建立
考虑到系统的开放性,首选MySQL数据库管理系统,构建频道表、栏目表、文章表、广告表、页面配置表和用户表等数据库表。具体功能如下:
频道表和栏目表除了描述编号和名称信息之外,还记录其首页所在的目录和首页文件名称;
文章表和广告表中将文章按内容分类,在内容上可以存放超链接、可下载文件、以及多个文本文件、图片、动画、声音文件的组合体;
页面配置表用于对页面中的标题、字体、颜色、背景和式样等进行设置和管理;
用户表按级别存放各种用户信息。
为了简化复杂的网页内容的组织,在数据库中还设计了一些视图和存储过程,专门用于将数据库中的数据自动转换为网页格式的内容,比如按日期和重要程度对文章分类时,可以建立如下视图:
当取得最新5条新闻时,可以建立如下存储过程:
(2)业务逻辑的建立
建立JNDI数据源以及数据库接口类、数据库连接类、数据库访问类、JavaBeans类和用于较复杂的计算的EJB,从而大大简化网页内容的静态和动态组织的复杂性,以便于系统的扩充。
为了支持常用的各种类型的关系数据库,设计了数据库接口类和数据库连接类,便于封装连接数据库的参数和方法,并通过JNDI技术建立各种数据库源。数据库访问类封装常用的访问数据库的增删改查等方法。JavaBeans类封装动态网页所需要的结果。EJB主要用于LDAP数据的访问以及完成与传统系统的接口等。
(3)JSP页面的建立
根据系统提供的网站模板和静态网页,建立动态内容所需要的JSP代码,这些JSP代码访问数据库取得和修改数据。举例如下:
网站首页放在digitalcity/,首页文件名为index.jsp,其内容在网页设计好以后,由程序员通过网站发布平台进行少许的代码编写。以下代码用于生成导航条:
针对网页中各个频道标题和内容放置的位置,可以将以下代码:
各频道文件放在各自的目录(digitalcity/?),首页文件名均为index.jsp。
4 一个采用构架技术的数字城市网站系统的设计与实现案例
作者在本文提出的构架技术平台下实现了某中型城市的数字城市网站系统。起初以动态网站的方式运行,后来发现在访问数据库和Web服务器中出现严重的访问效率和吞吐量等问题,使用该构架技术平台可以大大缓解这个矛盾。某中型城市的数字城市网站系统的用户需求主要有以下几个方面:
(1)实现门户网站的内容维护、业务处理和页面表现维护的分离。
(2)支持用户对网站的栏目结构、各栏目的具体内容项、各栏目的层级分类等信息进行自定义和自由扩展。
(3)为用户提供灵活方便的Web页面编辑功能,使用户能够直接在浏览器上完成页面的字体、字号、颜色等显示属性的编辑定义。
(4)提供界面友好,易学易用的图形化工作界面。
(5)数据采用集中管理的方式,各信息点的交易信息实时汇总到数据中心进行处理。
(6)保证网络交易数据和网络交易过程的安全。
(7)具有良好的容错性能,未完成的交易必须回退到原始状态,操作错误要有清晰明确的提示。
(8)提供安全可靠的备份方式,交易数据保存不小于3年。
在不考虑交易功能的情况下,信息查询功能划分如下:
城市新闻、广告、天气预报、政务信息、城市向导、社会保障、文体娱乐、招生培训、市场行情、旅游信息、房产信息、交通信息、人才招聘、劳务信息、生活常识、卫生与健康、导视、美食(餐饮指南、预订)、法律和警务等等。
首先根据以上功能将网页划分为多个频道、栏目和文章,通过发布系统将相关参数和数据入库;然后由网页设计人员根据用户提供的网页模板设计静态网页;最后再通过发布系统提供的特殊编辑器进行JSP,Servlet等的设计,生成静态网页并发布到Web服务器中。
这里将主要的几个内容,像频道、栏目和文章划分为如表1、表2和表3所示:
程序方面的设计框架如第3部分的介绍。
5 结 语
设计一个良好的网站发布系统,是构建企业网站的捷径,作者研制的发布系统尽管最初是针对数字城市网站方面而设计的,但也适合于一般新闻网站。他比传统的发布系统主要有2个突出的优点:使用目前流行的Java语言和J2EE技术,具有可移植性;通过发布为静态网页,大大缓解了对数据库的频繁访问,提高了Web服务器的整体性能。
|