基于J2EE架构的经济普查系统设计与实现

2013-02-20 05:37张丽虹
计算机时代 2013年2期

张丽虹

摘 要: 设计并实现了基于J2EE架构的经济普查系统。利用J2EE多层结构模型的优点,将系统分为表示层、业务逻辑层和数据支持层等层次,介绍了各层次的设计,提出了经济普查系统中基于J2EE和MVC模式的解决方案;从设计者的角度,详细阐述了整个系统的架构与实现。建立了一套经济普查管理软件,对经济普查数据实行集中管理、实时处理。

关键词: 经济普查系统; J2EE; MVC; 多层结构模型

中图分类号:TP311 文献标志码:A 文章编号:1006-8228(2013)02-28-04

Design and implementation of economic census system based on J2EE

Zhang Lihong

(Zhejiang Changzheng Professional & Technical College, Department of computing and information technology, Hangzhou, Zhejiang 310023, China)

Abstract: An economic census system based on J2EE is designed and realized. The system is divided into presentation layer, logic layer and data layer through J2EE multi-layer structure model. The design ideas of levels are described. The solution based on J2EE and MVC is proposed. The architecture and realization of the overall system are described from the designer's point of view. Furthermore, a set of economic census management software is designed, which has a centralized management and real-time processing for the economic census data.

Key words: economic census system; J2EE; MVC(Model-View-Controller); multi-layer structure model

0 引言

为了全面掌握国民经济的发展规模、结构和效益等情况,我国于2008年进行了第二次全国经济普查。这次普查的标准时间点为2008年12月31日,时期资料为2008年度[1]。普查对象是在我国境内从事第二产业、第三产业的全部法人单位、产业活动单位和个体经营户,普查内容主要包括单位基本属性、就业人员、财务状况、生产经营情况、生产能力、原材料和能源消耗、科技活动情况等[2]。

1 经济普查系统中技术应用现状

目前,在经济普查系统中应用的是具有一定竞争力的分布式组件技术,主要包括.NET,CORBA,J2EE三大主流的组件模型[3]。

J2EE(Java 2 Platform Enterprise Edition)是美国Sun公司推出的一个适用于企业级计算的支持多层、分布式应用的全新概念的Java平台,它为搭建具有可伸缩性、灵活性、易维护性的企业信息系统提供了良好的机制[4]。

近年来,随着Java技术的逐渐成熟与完善,J2EE平台得到了长足的发展;而面向对象的MVC设计模式与J2EE多层体系结构结合起来,形成了一种快速高效的开发模式。其中,开源的Struts框架正是对MVC设计模式的实现,它提供了国际化和灵活性等许多特性,而且它选择基于对象关系映射技术的Hibernate作为持久层的解决方案是比较合适的。

Struts是一个Web框架,它是Apache 基金会Jakarta 项目组的一个Open Source项目,主要采用MVC模式,能够很好地帮助Java开发者利用J2EE开发Web应用[5]。和其他的Java架构一样,Struts 也是面向对象设计,其体系结构包括模型(Model),视图(View)和控制器(Controller)三部分。

Hibernate是Java应用和关系数据库之间的桥梁,负责Java对象和关系数据之间的映射[6]。它是一个开放源代码的对象关系映射框架,内部封装了JDBC访问数据库的操作,向上层应用提供了面向对象的数据库访问API。Hibernate 在Java程序与数据库之间进行的转换,就是将Java中的对象与对象的关系,对应到关系型数据库中的表与表之间的关系,Hibernate提供了这个过程中自动化对应转换的方案,同样也提供关系型数据库中表与表之间的关系,对应到Java程序中对象与对象的关系。

2 系统功能分析与总体架构

经济普查是关系国计民生的大事,对国民经济的发展起着重大作用。而经济普查系统是数据采集、处理与发布的基础,本章介绍了经济普查系统建设的意义、系统实现的主要功能与总体架构。

2.1 需求陈述

经济普查系统是一套基于J2EE技术,并以规范的统计分类和统计方法为基础建立起来的普查系统。该系统应具有强大的在线实时数据处理能力,能为加强和改善政府宏观管理,调整经济结构,编制预算,规范税源和规划产业层次结构提供重要依据,是构架国家宏观数据库,电子政务和实现国家行政管理现代化的重要基础。

在系统的开发过程中,要充分考虑系统的可用性、可维护性、可扩展性、安全性等,使用户操作尽量简单明了。

⑴ 要保证系统的响应时间在普通用户可接受的范围内。

⑵ 建立完整的元数据库管理系统,把统计涉及到的各类指标纳入管理范畴,做到统一管理、统一维护。系统在开发过程中要充分考虑统计应用不确定性的实际情况,在统计指标维护、系统功能扩展等方面能适应统计信息和应用领域的变化。

⑶ 基本单位信息有部分涉密和敏感信息,在应用系统设计中必须包含安全部分的设计,并加以实现。安全设计和实现应该在应用程序每一个层次上加以体现,从而形成层次性深度防御。应用程序访问和数据分离,必须以非数据拥有者的身份访问数据。应用系统应该包含一个多元的身份信息。

⑷ 用户界面设计要求简单明了,便于操作,应主要遵循:界面直观、对用户透明的原则。

2.2 系统功能

根据普查的功能要求,可以把系统功能划分为八项,即制度管理,调查对象管理,审核管理,数据汇总管理,数据查询管理,元数据管理,系统管理和辅助功能。

2.2.1 制度管理

制度管理为专业用户提供了制度布置和接收的功能。该子系统包括制度导入,制度导出,报表发布管理。

2.2.2 调查对象管理

经济普查的对象是在中华人民共和国境内从事第二产业、第三产业活动的全部法人单位、产业活动单位和个体经营户[7],普查对象应当如实填写经济普查数据。调查对象管理是指对被调查对象的管理,包括单位名录管理,外网用户管理。

2.2.3 审核管理

审核管理包括法人产业差错清单、清理数据、审核结果分析、审核条件查看、数据成批审核。

2.2.4 数据汇总管理

数据汇总基于汇总关系,将基层数据加总得到汇总数据,汇总关系是根据统计分组的设定来表达的。在数据汇总中,汇总表选择供用户来选择需要执行汇总的综合表。

2.2.5 数据查询管理

对于基层数据,可以按报表进行单指标或多指标组合查询,查询结果可以导出文件。对于综合数据,可以按表查询,查询结果可以导出excel文件。进度查询用于查看系统的执行进度情况。业务日志查询用于查看,导出,删除系统日志。

2.2.6 元数据管理

基于元数据标准的数据管理,为同级用户之间进行数据合并和上下级之间进行数据上报、接收提供一致性的交互界面和后台支持。主要包括数据导入与数据导出。其中数据导入包括导入本级数据、导入上报数据、导入清查数据。数据导出包括导出本级数据、导出上报数据。

2.2.7 系统管理

系统管理包括对国家统计局的所有组织进行创建、修改、启用、停用等操作;机构用户管理指的是对统计局专业用户进行管理。

2.3 数据库设计

数据库设计有两个最重要的目标,即满足应用功能需求和良好的数据库性能。所谓满足应用功能需求,主要是指用户当前与可预知的将来应用所需要的数据及其联系应全部准确地存在于数据库之中,从而满足用户应用中所需要的数据及其联系应全部准确地存于数据库中,从而满足用户应用中所需要的对数据进行的存、取、删、改等操作。所谓良好的数据库性能,主要是指对数据的高效率存取和空间的节省,并具有良好的数据共享性、完整性、一致性及安全保密性。

2.3.1 概念设计

概念设计是系统数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS且反映组织信息需求的概念模型。本系统数据库以实体联系法(Entity-Relationship Approach)来建立数据库的概念模型,按照系统数据流图的分析结果,下面以调查对象管理中的单位名录管理模块为例构造出它们的E-R图。根据需求和功能分解分析得到初步的用户数据,如图1所示,用E-R图表示新增调查对象信息的需求(图1中只画出了主要属性)。

[地区] [部门] [角色] [注册

类型] [用户][调查

对象][增加] [行业

代码] [单位

代码] [单位

名称] [主营

业务] [上级] [操作

时间]

图1 用户修改企业信息的实体联系模型

2.3.2 逻辑设计

逻辑设计就是把概念结构转换成所选择的DBMS支持的数据模型,并对其进行优化,也就是将概念结构设计得到的E-R图,转换生成等价的数据库关系模式,并对转换后的模型进行定义描述。而在用户看来,一个关系模型的逻辑结构是一张二维表,由行和列组成。

在建立数据库的关系模式时,需要遵循一定的原则。一方面,要求每个关系都应满足一定的规范,只有这样才能使关系模式设计合理、冗余最小、操作高效。本系统数据库的设计要求是:满足第三范式(3NF);满足数据的一致性、完整性、安全性等原则。

2.3.3 物理设计

数据库最终是要存储在物理设备上的。为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计。物理结构依赖于给定的DBMS和硬件系统,因此,设计人员必须充分了解所用DBMS的内部特征,特别是存储结构和存取方法;充分了解应用环境,特别是应用的处理频率和响应时间要求;以及充分了解外存设备的特性。

数据库的物理设计通常分为以下两步。

⑴ 确定数据库的物理结构

确定数据库存储结构时要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。这三个方面常常是相互矛盾的,例如消除一切冗余数据虽然能够节约存储空间,但往往会导致检索代价的增加,因此必须进行权衡,选择一个折中方案。

⑵ 对物理结构进行评价,评价的重点是时间和空间效率

评价物理数据库的方法完全依赖于所选用的DBMS,主要是从定量估算各种方案的存储空间、存取时间和维护代价入手,对估算结果进行权衡、比较,选择出一个较优的合理的物理结构。如果该结构不符合用户需求,则需要修改设计。

3 系统实现

基于上述的总体架构与平台设计,本章将介绍经济普查系统的实现。其中包括系统的实现平台、Struts应用配置、数据持久化层的实现和系统管理模块的实现。

3.1 系统实现平台

经济普查系统采用tomcat 6.0作为J2EE服务器,数据库服务器采用oracle 10g,采用B/S模式。在J2EE体系中,用Struts actionServlet控制,用JSP表现,而业务逻辑处理层用Javabean实现,持久化层采用Hibernate 3.0实现。

3.2 Struts应用配置

3.2.1 Struts配置

在Web.xml中设置org.apache.Struts.action.ActionServlet的一个实例。在一个完整的控制过程中,也就是处理一个HTTP请求时,在控制过程之初,这个Servlet会从一个配置文件Struts-config.xml中获取请求与控制动作相对应的配置信息,Controller通过这些配置信息来决定HTTP请求该往何处转发,而这些Action在接收到转发来的请求后,实现真正的商业逻辑。在Web.xml文件中添加如下代码:

<!--Struts config-->

action

org.apache.Struts.action.ActionServlet

config

/WEB-INF/Struts-config/Struts-config.xml

2

action

*.do

3.2.2 配置Struts-config.xml文件

Controller通过Struts-config.xml文件的配置信息确定当有请求时该调用哪个对象来处理,Struts-config.xml文件是页面Struts页面导航最重要的文件,下面以系统用户登录为例介绍系统的文件配置。

身份验证是在许可用户(应用程序)访问某个资源之前,鉴别其身份。授权发生在身份验证之后,是确定用户访问资源时可享用的特权。未经过身份验证的用户被称为匿名用户。身份验证是Web应用程序安全性的主要功能,系统登录由账户和密码组成。

配置ActionForm,前面介绍过一般一个Jsp页面需要对应一个Model,即这里的ActionForm,此登录表单对应的ActionForm如下:

public class LoginForm extends ActionForm {

private static final long serialVersionUID

=0x37fa8cd9c5eb4cd6L;

String userId;

String passwd;

public LoginForm() {

}

public String getPasswd() {

return passwd; }

public void setPasswd(String passwd) {

this.passwd=passwd; }

public String getUserId() {

return userId; }

public void setUserId(String userId) {

this.userId=userId; }

}

3.3 数据持久化层的实现

3.3.1 Hibernate配置文件

⑴ Hibernate.cfg.xml文件的建立

Hibernate可以从Hibernate.properties或者自定义的xml配置文件中读取和数据库连接有关的信息,此处我们在Hibernate.cfg.xml文件中定义数据库:

<!一指定数据库的驱动程序一>

name="Hibernate.connection.driver class">

oracle jdbc.driver.OracleDriver

<!一指定连接数据库的}__>

name="Hibernate.connection.url">jdbc:oracleahin:

@localhost:1521:jp2data

system

<!一指定数据库的密码一>

zju

<}一指定数据库连接池大小一20

true

<!一指定数据库所适用的SQL方言一>

net.sfHibernate.dialect.Oracle9Dialect