资源描述:
《统计报表网上直报系统架构设计 》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、统计报表网上直报系统架构设计 摘要:软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素;良好的软件架构能够服务于整个开发过程,有效地降低项目风险,确保项目能够朝着健康的方向发展。 本文结合本人的实际工作经历,简要地讨论了开发系统时所选用的软件架构及其应用。 关键词:软件架构统计报表优化设计 温州市统计局原来是依赖手工将报表数据层层上报,随着我国国民经济的快速发展和计算机技术的提高,传统的手工报表方式和管理方法已不能满足快速、高效地掌握资讯的要求。对一套方便、可靠、安全的数据调查与报表管理系统的需求迫在眉睫。温州市
2、统计报表网上直报系统总体架构规划由网络系统、应用系统和运行维护系统三部分组成。 网络系统主要由硬件网络平台组成,是应用系统和运行维护系统运行的基础平台,其主要作用是提供系统运行的物理环境,包括运行网络、数据安全、通讯保障等环境。 应用系统主要由在线报表管理系统软件组成,其主要作用是提供数据采集、处理和利用的应用服务,包括报表数据的录入上报、审核、接收、查询、统计、汇总等功能。 运行维护系统主要提供报表管理系统基础数据的维护和系统运行的日常维护功能。 功能性需求包括:用户角色权限管理,报表设计维护管理,报表录入及上报管理,报表
3、查询汇总管理,数据导入导出管理。按用户划分,分为系统管理员、统计部门管理员和企业用户三类。 非功能性需求主要考虑了以下因素。 (1)可扩充性、可维护性。可扩充性包括了两个方面:一方面指软件模块的可扩充,能够很方便地扩充新的软件功能,比如企业台帐系统,如果有必要,要求能够很方便地作出扩展;另一方面指系统本身的可扩充性,能够支持企业用户大规模、高并发的访问,支持集群等。可维护性则要求能够根据统计部门需求变化进行快速地升级和改进。 (2)访问方式。通过网络远程访问,访问时能够跨广域网,因为直报系统报表填报的对象是广大的企业用户,必须
4、支持Inter访问。 (3)组件复用。主要指的是服务器端的组件复用。服务器端组件能够支持远程客户端访问。为此,需要采用中间件技术来达到组件复用的目标。 (4)安全性。支持良好的用户、权限管理,以及支持常见认证体系(如PKI)、SSL加密传输等。 (5)用户界面及数据接口。基于浏览器的瘦客户端,能够支持不同方式采集的不同格式的数据,支持不同风格的用户界面。 基于上述考虑,选择了多层组合架构,层与层之间松散耦合,各层分工明确,从上到下各层依次为表现层、业务逻辑层、持久化层和数据库层。采用Spring来搭建整个框架的基础,使用了持
5、久化工具Hibernate来完成持久化操作,表现层通过Struts框架来实现的。 Spring的基础是一个轻量级的容器,即实现了依赖注入(DI)和控制反转模式(IoC),在这个轻量级的容器中已经架设了与典型应用相关的大部分基础框架结构,我们的统计报表网上直报系统就是在这个基础上,根据系统的需要组装相关的应用到此框架上,从而完成应用程序的开发,实现一站式框架整合方案。Spring的核心是Bean工厂,在Bean工厂的基础上,Spring实现了面向方面编程(AOP,Aspect-OrientedProgramming),提供了非管理环
6、境下申明事务、安全等服务;从而保障了框架整体协调工作和框架的安全性。 在设计的架构中由Spring构建的业务层实现软件系统需要完成的所有业务功能。如:管理事务;业务服务管理;处理应用程序的业务逻辑和业务验证;预留和其他层交互的接口;管理业务层对象之间的依赖;增加在表示层和持久层之间的灵活性,使它们互不直接通讯;从表示层中得到上下文并将其提供给业务层,使业务层获得业务服务;管理从业务逻辑到持久层的实现等等。这些是系统的核心功能。 Spring通过服务装载器来与Struts协同工作,由Struts构建的表示层在其MVC的体系结构下主
7、要完成以下功能:为用户管理请求和响应;提供一个控制器代理调用业务逻辑和其他层处理;为显示提供一个模型;执行用户接口验证等等。系统的页面展示功能主要由这一层来实现。 Spring通过数据访问对象(DAO,DataAccessObject)来与Hibernate协同工作,Hibernate框架提供了“对象-关系持久化”机制和查询服务。Hibernate提供了建立数据源或数据连接池的功能,数据查询语言HQL和其他Hibernate服务。Hibernate“对象-关系映射”框架提供对大多数主流SQL数据库的支持,它们支持“父/子”关系、事
8、务处理、继承和多态。 在表示层、业务层和持久层之间,使用领域模型层来传递各层之间协作需要的数据对象。领域对象层由那些代表现实世界中的业务对象的对象组成,如:专业(specialty)、报表(Report)等。这个层让我们从繁琐的建立