欢迎添加微信互相交流学习哦!
项目源码:https://gitee.com/oklongmm/biye
摘 要
当前阶段,伴随着社会信息技术的快速发展,使得电子政务能够成为我国政府职能部门进行办公管理的一个重要内容,其中就包括了提升办公效率完善服务质量以及实现信息共享等。但是,虽然当前我国政府的信息化事业已经取得了初步的成效,能够依据不同的客观业务需求来实现信息系统的开发设计。但是,目前所存在的问题也是较为明显的,那就是这些信息系统彼此之间都是孤立的,难以做到协同工作,这就造成了比较严重的“信息孤岛”的现象,成为我国电子政务应用的一个巨大的障碍。想要解决这个问题,就需要实现电子政务“一站式”服务平台。
本系统的目的是建立一个高效的平台,采用简洁高效的JSP技术与SQL server数据库等技术,设计和开发了这一库尔勒经济开发区电子政务网站。该网站前台包含领导信箱,表格下载,政务公开,便民电话以及留言板等功能模块;这些信箱都可以进入网站的管理后台进行维护。
本系统可以根据实际应用的具体情况,适当加以修改,以便更好应用。本系统操作简单,灵活性好,系统安全性高,运行稳定。
关键词:电子政务;Web;JSP
Abstract
The current stage, along with the rapid development of information technology society, making e-government to government departments to become an important element of office management, including the improved office efficiency and improve the quality of service information sharing and so on. However, although the current government's information technology industry in China has achieved initial results, can be based on different business needs to achieve the objective of information systems development and design. However, the current problems are also more obvious that between these information systems are isolated, difficult to work together, which resulted in a more serious "information island" phenomenon, and has become e-government Application of a huge obstacle. Want to solve this problem, we need to implement e-government "one stop" service platform.
The system aims to establish an efficient platform for simple and efficient use of JSP technology and SQL server database technology, design and development of the Korla Economic Development Zone e-government website. The site contains lead-mail front, Forms, government affairs, as well as message boards and other convenience features phone module; these mailboxes can access the site for maintenance management background.
The system according to the practical application of the specific circumstances, be properly modified to better use. The system is simple, good flexibility, the system safe and stable operation.
Keywords: e-government; Web; JSP
第1章 绪 论
1.1 研究背景
推进信息化是我国加快实现工业化和现代化的必然选择,是关系到现代化建设全局的战略举措,是实现社会生产力跨越式发展的重大措施,是提高国际竞争力和综合国力的迫切要求,已被放在优先发展的战略地位。在国家信息化体系建设中,政府信息化是整个信息化中的关键,是优先发展的领域。而电子政务是政府信息化建设的重要内容,几乎覆盖了信息技术信息内容信息服务等产业的所有领域,又与改革开放发展等当代中国的重大问题密切相关,这就要求政府必须以战略眼光,从全局出发,来充分认识电子政务建设的战略地位理论价值和实践意义。
无论是发达国家还是发展中国家,都在顺应时代发展的潮流,把推进信息化建设作为增强综合国力和国际竞争力的重要举措,并将其提升至国家战略的高度。我国政府也确立了“大力推进信息化,以信息化带动工业化,以工业化促进信息化,走新型工业化道路”的国家战略。党的十六大明确提出,要“进一步转变政府职能,改进管理方式,推行电子政务”。国家信息化领导小组从我国的实际情况出发,明确提出电子政务要先行,以电子政务建设带动国民经济和社会信息化。由此,电子政务建设成为推动国家信息化的龙头工程,成为政府深化行政管理体制改革的主要动力和重要内容,也成为政府实现管理现代化的必由之路。信息化建设要从电子政务入手,以政府信息化带动信息化发展,“以信息化带动工业化”,这些都显示着电子政务建设的战略地位和意义。随着国民经济的发展和信息技术的进步,特别是电子政务建设的深入推进,我国各级政府网站内容日益丰富,功能逐渐增强。截至2007年12月,使用“.gov.cn”域名的政府网站总数发展到近3.5万个,25.4%的人访问过政府网站,即半年内有5334万人访问过中央政府或者地方政府网站? 。近年来,中国中央政府和各级地方政府对于电子政务建设的关注程度投资水平和推进力度都在不断加强,电子政务正成为促进政府职能从管理型政府向服务型政府转变的重要因素,政府网站也逐步成为政务公开的重要窗口和承建服务型政府的主要平台。然而我国政府信息化建设起步较晚以及信息化的地方差异,电子政务建设在飞速发展的同时也难免存在一定的不足与缺陷。政务部门在各自的信息系统建设中,多从自身业务出发来构建信息系统,业务数据固化于软件实现中,信息资源单独管理,造成了业务与数据的相对自我封闭,以致跨部门跨地区间大量事实性信息孤岛出现。可以看出,传统的电子政务模式存在方法欠灵活可扩展性弱,且部署与实施复杂程度高,不利于各取所需要求下的业务开展。同时在电子政务实际应用过程中,不同的应用系统受政务部门职能分割影响,重复管理重复维护,不仅使工作量大大增加,而且极易产生不一致现象,这些弊端都已经成为影响电子政务进一步发展的障碍。因此,跨地区跨部门的业务协同亟需开辟新的途径。
在传统的电子政务建设的过程当中,因为往往会受到各方面的技术条件的制约,再加上不具备完整统一的规划管理机制,使得各个部门所建设的办公系统一般都是互相独立的,未能实现和其他相关部门的信息交换,造成了政府部门办公效率低下,难以让广大服务对象满意。而在本课题中,则是重点构建了一个电子政务“一站式”的服务平台载体,而且这个平台载体还是相对灵活的,有着较强的可拓展性。能够有效的解决不同部门之间的信心集成应用问题,而且还能够实数据交换。这对于电子政府的系统整合来说,有着至关重要的关键意义。
1.2 研究意义
对于电子政务系统来说,其内在的要求是比较高的,比如由于受到自身数据量大系统复杂的影响,就在安全稳定数据交互分析计算等方面提出了较高的要求。在目前大部分的电子政务所应用的技术一般都是J2EE与Microsoft.Net Framework这两个主要的构建方式,属于企业级的应用平台,能够构建起来MVC三层架构的WEB应用系统。可以最大程度低减少信息应用集成以及系统开发的成本,从而给目前电子政务系统的构建提供了一个能够面向服务的体系结构。应用SSH,可以借助抽象以及具体的组合把,自身的电子政务进行组件化,这样就能够真正的实现跨平台即时业务流程对接。具体来说,在电子政务系统的构建方面,应用SSH当做架构基础能够有效的消除信息孤岛的现象,达成信息共享的目的;支持业务协同,促进职能的转变;并且能够对信息投资进行优化,从而减少用户所遇到的风险。这就能够有效的提升软件的可重用性,在具体的硬件软件的配置方面也有着较好的灵活性,从而能够在有效的满足当前政务需要的同时,还方便了日后的维修升级。
1.3 国内外研究现状综述
根据相关的调查结果显示,我国的省市级两级政府门户网站的建设率已达99%之高[2],而且伴随着信息技术的发展,我国的县级政府网站在最近几年也有着上升的趋势。这就能够有效的证明,我国电子政务信息基础设施已经得到了初步的建立,在一定程度上实现了政府部门的办公自动化。然而,由于在基层政府以及较低层次的政府下属机构里面,大多会受到资金不足以及领导忽视的原因制约,系统的软硬件设备难以及时的更新换代,网络办公的条件也比较落后,相关的管理人员能力水平不够,这就使得这些部门的办公自动化的实际效率大打折扣,难以做到让服务对象满意。
而在2006年我国将顶层规划思想引入之后,很快就应用到了“网站群建设”建设工程当中,再加上在政府主导之下每年都举办一次官方评价的排序活动,可以督促地方政府建立起来自己的网站系统,从而加快了我国政府部门网站建设的总体进程[3]。当前阶段,我国政府网站的总体建设水平已经取得了初步的成就,在很多方面都有了比较大的改观,相关的信息构建的概念以及“以用户为中心”的理念也能够被充分的应用到政府网站的实际建设过程当中。而伴随着我国政府网站信息公开得到加强,以及网上在线服务功能的逐步完善,使得广大人民群众对于电子政务也由开始的陌生,到现在的熟悉,同时也逐渐的认可起来。通过对哈尔滨天津北京等地区政府部门的电子政府系统服务的民众满意程度的相关调查能够发现,人民群众对于政府网站的满意度所受到的影响是多个方面的,其中不仅包括技术功能安全水平,还涉及到了普通公民自身的因素制约,比如学历职业年龄等。当前阶段,我国已经在义务教育阶段就开始设立了信息技术课程,某些地区还能够在广大的农村地区给农民设立各种信息技术培训班,这就能够在最大的程度上推广电子政务的应用。与其他的计算机信息系统相同的是,电子政务系统对于软件技术以及系统建设理念也逐渐的提高了标准。开始时候,电子政务系统主要是应用大型机集中运算,之后发展到了C/S(Client/Server)模式分布式计算,中间又经历了B/S模式的Web计算技术,从而实现了电子政务系统的层级提高。
1.4 电子政务的体系架构
电子政务公众服务是信息化进程的产物,它是政府机构在内部高度信息化的基础上,以政府门户网站作为平台和入口向公众提供的具有电子化特征的公共服务产品。经过多年的探索实践,政务公开网上办事和互动参与已成为当前政府门户网站的主要职能,进而成为电子政务公众服务的主要内容,其体系架构图如图1-1所示。电子政务公众服务的交互与信息系统的应用密不可分,政府门户网站是提供服务的主要载体和渠道,三大功能的实现程度直接决定了电子政务公众服务水平的高低,体现了政府职能转变与管理创新的意识和效果。
图1-1 电子政务体系架构
电子政务是一种政府的运作模式,一般而言,电子政务包括了两个方面的内容:利用信息技术,政府部门内部实现了办公的信息化管理;政府各部门之间以及政府部门与社会之间利用信息技术进行信息的充分共享,利用网络来进行政府服务。目前,对电子政务含义的解释一半存在以下几种:
(1)电子政务就是政府机关利用先进的通信技术以及信息技术,将政府部门内部或者部门与社会之间通过网络进行集成,利用网络将政府内部各部门的功能以及工作的流程进行重新整合以及优化,使得政府部门的工作能够不受时间空间以及部门功能的限制,为社会提供全方位优质透明的政府管理功能。简而言之,电子政务就是利用现代信息技术,以网络为核心,将传统的政府政务活动进行优化,从而达到提高政府管理效率与质量的目的。
(2)电子政务是现代政府部门在信息飞速发展的背景下,为了能够提高办公效率;提高工作质量;以及降低办公成本,而将政府的一部分功能(比如信息的发布信息的管理以及政府内部各部门政府内部和社会之间的沟通等功能)通过互联网技术来实现,电子政务就是政府利用先进的信息技术,通过计算机网络来进行行政等内部管理功能,建立起政府内部以及政府内部和公众之间的有机服务体系。
从上面国内外对电子政务的定义我们可以看出:现代信息与通信技术是目前电子政务的核心;电子政务的主要目的在于提高传统行政管理的效率行政管理的质量以及降低传统行政管理的成本。
因此,我们可以将电子政务的定义概括为:电子政务就是政府部门为了提高传统行政管理的效率行政管理的质量以及降低传统行政管理的成本,为了消除政府行政在时间空间以及部门分割等限制,利用先进的现代信息网络技术,社会提供优质透明规范的管理和服务而建立的电子信息系统。
1.5 目前我国政务所面临的问题
我国在经历了电子政务的基础建设以及应用系统的建设热潮之后,目前我国电子政务面临最大的问题是进行信息资源的整合。只有利用先进的信息技术,来进行各部门信息的沟通,实现业务中各部门信息的共享,才能不断完善我国电子政务建设,达到电子政务提高政务透明度降低办公成本的目的。
目前,通过我国电子政务的现状分析,我国电子政务在信息共享以及信息的及时沟通方面还有很大的缺陷。随着信息技术的不断发展,政府也在不断的利用先进的技术来努力消除各部门之间的信息壁垒。但是这种努力并没有一个统一的规范,对于不同平台不同规范的电子政务系统而言,并没有从根本上来解决异构系统之间信息交互的问题。总的来说,目前我国电子政务系统正面临了信息孤岛以及一体化问题。
政府各部门之间不仅运行的平台不统一,而且其采用的数据格式也各自不同,因此,很难将各部门之间的孤立信息进行快速的出传递。很难建设一个各部门统一的的政府电子政务系统,不能提供一站式的服务,不能从根本上提高政府机关的办事效率。因此,目前,我国电子政务系统迫切的需要建立一个统一规范的电子政务平台接口,采用统一的标准化语言来描述电子政务系统,从而提高政府部门的办事效率,降低政府部门的办公成本。
另一方面,我国电子政务系统对自身数据的安全性重视不够,由于电子政务本身的特点就是开放性的,因此,系统内部的数据很容易被未授权的第三方窃听以及篡改。由于有的电子政务系统对安全性的中实行不够,导致了许多政府部门内部敏感的信息没有按照国家安全管理的规定来严格执行,存在了非常大的安全隐患。还是采用防火墙,网络隔离等传统的安全措施,并没有从系统设计的角度来对电子政务系统进行规范。
1.6 主要研究工作
本论文的主要研究工作包括了以下几个方面的内容:
1.对电子政务的相关理论基础以及具体的实现技术进行阐释,在充分认识到传统电子政务实际应用情况之后,指出传统的常用架构的优势以及缺陷,并最终提出具体的解决策略。
2.重点进行了开发技术方面的理论研究,对J2EE的相关概念重要特征及其明显优势等方面都作出了详细的介绍,并且对在实际应用过程当中所涉及到的相关技术也作出了阐释。
3.在具体的参照了电子政务网站的实际应用的基础之上,采用了SSH架构的主体思想,设计并实现了一个能够被实际应用的电子政务网站。
4.借助对具体业务流程的相关描述,将具体的面向服务架构作为基础的中心,从而能够开发出来一个对外服务接口。
第2章 本系统采用的架构和主要技术
2.1 主要技术分析
2.1.1 J2EE技术的发展现状
J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。
J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境[7]。
目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能[8]。
J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制:
1. 保留现存的IT资产:
由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐进的(而不是激进的,全盘否定的)方式建立在已有系统之上的服务器端平台机制是公司所需求的。J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEA Tuxedo、IBM CICS, IBM Encina,、Inprise VisiBroker 以及Netscape Application Server。这之所以成为可能是因为J2EE拥有广泛的业界支持和一些重要的'企业计算'领域供应商的参与。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。
2. 高效的开发:
J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务: 状态管理服务让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。 持续性服务让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。 分布式共享数据对象CACHE服务-让开发人员编制高性能的系统,极大提高整体部署的伸缩性。
3. 支持异构环境:
J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。
4. 可伸缩性:
企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。
5.稳定的可用性:
一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为INTERNET是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损失。若是意外停机,那会有灾难性后果。J2EE部署到可靠的操作环境中,他们支持长期的可用性。一些J2EE部署在WINDOWS环境中,客户也可选择健壮性能更好的操作系统如Sun Solaris、IBM OS/390。最健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机时间。这是实时性很强商业系统理想的选择[9]。
2.1.2 J2EE综述
J2EE是一个非常广泛而通用的标准,很大程度上简化了应用开发和移植过程,节省了系统开发的时间;计算平台支持Java语言,使得基于J2EE标准开发的应用系统可以跨平台地移植;J2EE提供了企业计算需要的几乎所有服务,且更加方便实用。由于J2EE具有的这些优点,用户可以根据需要方便地更新和定制符合企业项目特点的功能模块,从而使小区物业管理系统的通用性和实用性都能得到保证。
J2EE(Java 2 Platform,Enterprise Edition)是美国Sun公司推出的一种全新概念的模型,与传统的互联网应用程序模型相比有着无法比拟的优势。Java 2企业版(J2EE)规范指出,J2EE是一个开发JSP(Java ServerPage),Servlet等web应用的平台。另外,J2EE还描述了这些技术是如何协作来提供一套完整解决方案的。整个J2EE体系是构建在J2SE(Java2 Platform Standard Edition)的基础之上的,这表明J2EE的实现技术依靠的是J2SE所提供的标准API和运行时环境,这一点也保证了J2EE技术具有跨平台的可移植性和良好的兼容性。其次,彼此独立的模块代表了J2EE体系中的各种类型的容器。所谓容器,就是指为组件提供各种必要的底层服务支持的一个运行时环境。这些底层服务包括了支持数据库访问、消息服务、邮件服务、事务管理、安全性、远程访问支持等各个方面运行于容器中的组件,如Applet,Servlet和JSP等,依靠容器提供的这些底层服务来完成具体的业务逻辑。不难看出,在J2EE体系为开发人员提供了多种灵活的组件访问方式和数据访问方式。从组件间的访问关系来看,客户端既可以通过标准的HTTP协议访问Web容器组件进而访问ETB组件:从组件和数据的访问关系来看,客户端组件、web容器组件都具备了通过标准的JDBC API访问数据库的能力[10]。
2.1.3 J2EE 的四层模型
J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。事实上,sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议??通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,以下是 J2EE 典型的四层结构:
运行在客户端机器上的客户层组件;
运行在J2EE服务器上的Web层组件;
运行在J2EE服务器上的业务逻辑层组件;
运行在EIS服务器上的企业信息系统(Enterprise information system)层软件;
J2EE应用程序组件
J2EE应用程序是由组件构成的.J2EE组件是具有独立功能的软件单元,它们通过相关的类和文件组装成J2EE应用程序,并与其他组件交互。J2EE说明书中定义了以下的J2EE组件:
应用客户端程序和applets是客户层组件。
Java Servlet和JavaServer Pages(JSP)是web层组件。
客户层组件
J2EE应用可以是基于Web的,也可以是不基于web的。在一个基子Web的J2EE应用中,用户的浏览器可以在客户层中运行,并且从一个Web服务器上下载Web层中的静态HTML,页面或由JSP或ServletS生成的动态HTML页面。
web 层组件
J2EE web层组件可以是JSP 页面或Servlets.按照J2EE规范,静态的HTML页面和Applets不算是web层组件。 web层可能包含某些 JavaBean 对象来处理用户输入,并把输入发送给运行在业务层上的enterprise bean 来进行处理。
业务层组件
业务层代码的逻辑用来满足银行,零售,金融等特殊商务领域的需要,由运行在业务层上的enterprise bean 进行处理. 下图表明了一个enterprise bean 是如何从客户端程序接收数据,进行处理(如果必要的话), 并发送到EIS 层储存的,这个过程也可以逆向进行。
有三种企业级的bean: 会话(session) beans, 实体(entity) beans, 和消息驱动(message-driven) beans. 会话bean 表示与客户端程序的临时交互. 当客户端程序执行完后, 会话bean 和相关数据就会消失. 相反, 实体bean 表示数据库的表中一行永久的记录. 当客户端程序中止或服务器关闭时, 就会有潜在的服务保证实体bean 的数据得以保存.消息驱动 bean 结合了会话bean 和 JMS的消息监听器的特性, 允许一个业务层组件异步接收JMS 消息。
企业信息系统层
企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP), 大型机事务处理, 数据库系统,和其它的遗留信息系统. 例如,J2EE 应用组件可能为了数据库连接需要访问企业信息系统[11]。
2.1.4 J2EE的分布式应用技术
J2EE平台由一整套服务(Services)、应用程序接口(API)和协议构成,它对于开发基于Web的多层、分布式应用提供了功能支持:
1.组件/容器技术
这种基于组件具有平台无关性的J2EE结构使得J2EE程序的编写十分简单,因为业务逻辑被封装成可复用的组件,并且J2EE服务器以容器的形式可为所有的组件类型提供后台服务。
J2EE应用组件可以安装部署到以下几种容器中去:
(1)Web容器管理所有J2EE应用程序中JSP页面和Servlet组件的执行。Web组件和它们的容器运行在J2EE服务器上;
(2)应用程序客户端容器管理所有J2EE应用程序中应用程序客户端组件的执行。应用程序客户端和它们的容器运行在客户端机器上;
(3)Applet容器是运行在客户端机器上的Web浏览器和Java插件的结合。
容器设置定制了J2EE服务器所提供的内在支持,包括安全,事务管理,JNDI(JavaNaming and Directory Interface)寻址,远程连接等服务,以下列出了最重要的几种服务:
(1)J2EE事务管理(Transaction Management)模型让你指定组成一个事务中所有方法间的关系,这样一个事务中的所有方法被当成一个单一的单元。
(2)JNDI寻址(JNDI Lookup)服务向企业内的多重名字和目录服务提供了一个统一的接口,这样应用程序组件可以访问名字和目录服务。
(3)数据库连接池(Database Connection Pooling)模型是一个有价值的资源。获取数据库连接是一项很耗时的工作,而且连接数非常有限。容器通过管理连接池来缓和这些问题。
2.Servlet和JSP
JSP(Java serverpages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和Scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和Scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求n以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
Java Servlet:Servlet是一种小型的Java程序,它扩展了web服务器的功能。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而Servlet全部由Java写成并且生成HTML。
(1)JSP技术的强势
一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。它具有强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理、消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,其中一些己经可以顺利的运行于多种平台之下。
(2)JSP技术的弱势
与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。另一方面,它还需要硬盘空间来储存一系列的.java文件和.Class文件,以及对应的版本文件。
3.数据库访问
JDBC(Java Database Connectivity):JDBC API为访问不同的数据库提供了一种统一的途径,像ODBC一样,JDBC对开发者屏蔽了一些细节的问题,另外,JDBC对数据库的访问也具有平台无关性[12]。
2.2 软件体系结构
软件的设计不但要考虑到软件系统的功能,更重要的是软件的可修改性、可重用性和可靠性等非功能性问题。软件体系结构的好坏直接关系到软件性能的好坏。软件系统的体系结构定义了系统的可计算部件及其相互关系。部件是系统中的一些个体,如客户、服务器、数据库等。在这一层次的部件间的交互可以是简单的,如过程调用及共享变量访问等也可以是复杂的、语义丰富的,如客户服务器协议、数据库访问协议等。体系结构不仅说明了系统的构成和拓扑结构,它还显示了组成系统的元素与系统需求之间的关系,而且体系结构还说明了部件和关联之间的结构和语义的区别[13]。
分层体系结构是大规模系统的多层次结构,分层还提供了一个管理软件复杂度及重用的方法。分层体系结构一般用于大规模系统,一般这些系统都有强烈的管理系统变化和复杂度的要求。由于分层系统登记形式的组织形式,是每一层都给上层提供服务,对下一层则作为一个客户存在。连接件则由协议来定义,决定层与层之间如何交互。分层系统具有多个良好的特性,它支持基于不断增长的抽象层次的设计。
这允许应用者将一个复杂的问题分解成一系列递增的步骤。当一个系统可以分成若干个由清晰的边界定义的区域时,分层系统可以应用在上面。一般情况下,由于复杂度、多软件包和平台的差异,并不希望应用开发人员知道系统中每个软件层次的细节,分层则正好提供了管理每个个人开发者复杂度的体系结构边界。其次,它支持提升。另外,它也支持重用。如抽象数据类型一样,它允许被同一层的不同应用交互使用,而且使它们可以支持相邻层的相同接口,这使得用不同的应用程序建立标准的层间接口成为可能。一个分层体系结构可以产生在应用服务的深度和广度上而得出的信息系统的模型。
2.2.1 Struts2体系结构
Struts2使用了WebWork的设计核心,大量使用拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与Servlet API分离。图2.2是Struts2的体系结构简图。
图2. 1 Struts2的体系结构简图
Struts2框架的大概处理流程如下:
1、浏览器发送一个请求。
2、核心控制器FilterDispatcher根据请求决定调用合适Action。 3、WebWork的拦截器链自动对请求应用通用功能,如验证等。4、回调Action的execute方法,该execute方法根据请求的参数来执行一定的操作。5、Action的execute方法处理结果信息将被输出到浏览器中,支持多种形式的视图[14]。
2.2.2 此框架的优点
通过上面对Struts2体系结构的了解,我们发现Struts2框架适合要设计的系统。主要表现在如下几个方面:
与Struts1相比,Struts2对Struts1进行了巨大的改进。 在Action的实现方面:Struts1要求必须统一扩展自Action类,而Struts2中可以是一个普通的POJO。线程模型方面:Struts1的Action工作在单例模式,一个Action的实例处理所有的请求。Struts2的Action是一个请求对应一个实例。没有线程安全方面的问题。Servlet依赖方面:Struts1的Action依赖于Servlet API,比如Action的execute方法的参数就包括request和response对象。这使程序难于测试。Struts2中的Action不再依赖于Servlet API,有利于测试,并且实现TDD。封装请求参数:Struts1中强制使用ActionForm对象封装请求的参数。Struts2可以选择使用POJO类来封装请求的参数,或者直接使用Action的属性。表达式语言方面:Struts1中整合了EL,但是EL对集合和索引的支持不强,Struts2整合了OGNL(Object Graph Notation Language)。绑定值到视图技术:Struts1使用标准的JSP,Struts2使用“ValueStack”技术。类型转换:Struts1中的ActionForm基本使用String类型的属性。Struts2中使用OGNL进行转换,可以更方便的使用。数据校验:Struts1中支持覆盖validate方法或者使用Validator框架。Struts2支持重写validate方法或者使用XWork的验证框架。Action执行控制的对比:Struts1支持每一个模块对应一个请求处理,但是模块中的所有Action必须共享相同的声明周期。Struts2支持通过拦截器堆栈为每一个Action创建不同的声明周期[15]。
综合考虑,此系统运用Struts2框架结构。
2.3 运行环境与开发模式的选择
由于时间以及技术的关系,本系统前台采用JSP作为WEB开发平台。JSP是一项功能强大的,用于构建动态Web应用程序的技术[12]。JSP可完全利用JAVA架构的强大,安全,高效的平台特性。JSP是运行在服务器后端编译后的普通语言运行时代码,运行时早绑定(Early Binding),即时编译,本地优化,缓存服务,零安装配置,基于运行时代码受管与验证的安全机制等都为JSP带来卓越的性能。
数据库开发系统采用Microsoft SQL Server 2005数据库。SQL Server是由Microsoft开发的一个功能强大的关系型数据库管理系统。它能够处理大量的数据和管理众多的并发用户,保证数据的完整性,并提供许多高级管理和数据分布能力[16]。
2.3.1 SQL Server 2000数据库
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本。它的特性包括:
1.Internet 集成。SQL Server 2000 数据库引擎提供完整的XML 支持。它还具有构成最大的Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQL Server 2000 程序设计模型与 Windows DNA 构架集成,用以开发 Web 应用程序,并且SQL Server 2000 支持 English Query 和 Microsoft 搜索服务等功能,在Web 应用程序中包含了用户友好的查询和强大的搜索功能。
2.可伸缩性和可用性。同一个数据库引擎可以在不同的平台上使用,从运行 Microsoft Windows® 98 的便携式电脑,到运行 Microsoft Windows 2000 数据中心版的大型多处理器服务器。SQL Server 2000 企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大 Web 站点所需的性能级别。
3.企业级数据库功能。SQL Server 2000 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2000 分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是 SQL Server 2000 数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。
4.易于安装、部署和使用。 SQL Server 2000 中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用 SQL Server 的过程。SQL Server 2000 还支持基于标准的、与 Windows DNA 集成的程序设计模型,使 SQL Server 数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使您得以快速交付 SQL Server 应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。
数据仓库。 SQL Server 2000 中包括析取和分析汇总数据以进行联机分析处理 (OLAP) 的工具。SQL Server 中还包括一些工具,可用来直观地设计数据库并通过 English Query 来分析数据[17]。
2.3.2 基于B/S的体系结构
本管理系统采用B/S模式,服务器采用著名的web服务器端软件apache,该http服务器有着良好的跨平台性和安全性,可以运行在包括windows、linux、mac等操作系统上。用户客户端使用各种浏览器都能够进行正常的浏览和操作。需要注意的是在程序的开发过程中,程序和路径相关的要考虑到不同的操作系统的文件目录结构。
B/S结构,即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。它是随着Internet技术的兴起,对C/S结构的一种变化和改进。主要利用了不断成熟的WWW浏览器技术,结合多种Script语言(VBScript、JavaScript等)和ActiveX技术,是一种全新的软件系统构造技术。
B/S三层体系结构采用三层客户/服务器结构,在数据管理层(Server)和用户界面层(Client)增加了一层结构,称为中间件(Middleware),使整个体系结构成为三层。三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次。三个层次的划分是从逻辑上分的,具体的物理分法可以有多种组合。中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能:负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能[18]。
图2.3 B/S三层体系结构
在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的执行等工作全部由Web Server完成。随着Windows将浏览器技术植入操作系统内部,这种结构已成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序是一个非常大的进步。
B/S三层体系结构的主要优点:
•B/S模式提供灵活的信息交流和信息发布服务。B/S模式借助Internet强大的信息发布与信息传送能力可以有效地解决企业、高等学校内部的大量不规则的信息交流
•可共享性。单个应用服务器可以为处于不同平台的客户应用程序提供服务,在很大程度上节省了开发时间和资金投入;
•较好的安全性。在这种结构中,客户应用程序不能直接访问数据,应用服务器不仅可控制哪些数据被改变和被访问,而且还可控制数据的改变和访问方式 。
•三层模式成为真正意义上的“瘦客户端”,客户端计算机不需要很高的硬件配置,也无需特殊的软件配置要求,只要有web浏览器就可以使用系统。
•B/S模式提供了一致的用户界面:B/S模式的应用软件都是基于Web浏览器的,这些浏览器的界面都很相似。对于无用户交互功能的页面,用户接触的界面都是一致的,从而可以降低软件的培训费用。
•在B/S模式下,外部的用户亦可通过通用的浏览器进行访问。
•B/S模式的结构易于扩展:由于Web 的平台无关性,B/S模式结构可以任意扩展,可以从一台服务器、几个用户的工作组级扩展成为拥有成千上万用户的大型系统。
•B/S模式具有更强的信息系统集成性:在B/S模式下,集成了解决企事业单位各种问题的服务,而非零散的单一功能的多系统模式,因而它能提供更高的工作效率。
2.3.3 运行环境
该系统运行的必备条件如下:
(1)服务器端操作系统:独立于操作系统的跨平台系统, 采用Microsoft Windows 2000及以上版本,考虑其稳定性。
(2)数据库:Microsoft SQL Server 2000 服务器版本。
(3)Web服务器:IIS服务器。
(4)客户端运行环境:能运行IE 4.0以上或Netscape 4.5以上浏览器的操作系统。
2.3.4 开发模式
对于本系统,其功能目标是实现传统的人工管理到利用计算机辅助管理的转变,所以它必须实现整个选课流程的进行,实现对系统用户的不同管理。由于系统数据收集的实时性要求不高,因此采用Browser/Server结构来进行设计是合理可行的。图2.4是本系统的网络应用原理示意图[19]。
图2.4系统原理示意图
第3章 系统需求分析
电子政务是新时期政府改革的重要手段,也是政府为民服务亲民执政的主要渠道。然而,一浪高过一浪的电子政务建设热潮并没有带来期望的效果,据有关专家分析,电子政务的成功率平均不到30%[17],低下的电子政务成功率不仅困扰着政府的决策者,也引起了世界范围内有关专家和学者的高度关注,各种相关的理论和方法已经开始用于电子政务系统的研究,如系统工程理论组织符号学理论与方法需求工程方法等。由于电子政务非常复杂,目前专家们还没有一个确定的共识,但普遍认同的是:电子政务属于信息系统,但不是一般的技术信息系统,而是一个复杂的社会-技术系统,并且,系统越大,功能越全,包含的社会成份越多,社会因素在系统中所占的比例就越大。同时,由于电子政务是人参与较多的系统,人的主动性和自学习性将引起电子政务的需求不断发生变化,使电子政务变得更为复杂[18]。因此,电子政务绝不是技术本身能够解决的。Standish集团1996年提供的一份报告认为:在一个信息系统项目失败的各种原因及所占的比重中,与需求相关的原因占63%[19]。这说明,信息系统项目失败的最常见的原因并不是技术原因,而是需求问题。既然电子政务是信息系统,需求问题自然也就成为电子政务的主要问题,并且,由于电子政务的特殊性和复杂性,使得需求问题表现得更加突出。因此,研究解决电子政务的需求问题是实现电子政务系统目标的有效手段,也是提高电子政务成功率的迫切需要。
3.1 电子政务自身特点
与一般信息系统相比,电子政务有许多特殊之处:(1)协调环节多。电子政务项目一般涉及多个不同的部门或一个部门的多个级别层次,以我国电子政务建设为例,分为纵向和横向两大类系统。纵向系统出自同一部门,但涉及中央省市县乡五级,由于各级政府的人力和资金存在级别及地区差量客户价值,然后对客户进行细分,针对不同价值的客户群体采取不同的客户关系管理措施。异,统一协调环节多,难度大;横向系统出自同一地区,但涉及不同的职能部门,由于受部门利益及对电子政务认识的影响,协调难度更加突出,部门之间或地区上下级之间的协调成为开展电子政务的最大瓶颈[20]。(2)影响因素多。影响电子政务建设的因素很多,主要有:①认识因素。认识是基础,人的认识不但受客观现状的影响,还受人的思想观点期望和偏好的影响。认识指导行动,行动影响结果,认识不足最终将影响系统的实际效果。如,对电子政务的重视留在口头上多,实际行动少;硬件投入多,软件投入少;重视“形象工程”多,关心实际效果少等。②体制因素。体制是行动的保障,体制不全或不顺,再好的认识也无法付诸实施,或收不到预期的效果。如,全国从上到下没有一个统一的电子政务领导与管理机构,各地机构设置混乱,领导变更频繁,不同的领导带来不同的思路,不同的机构采取不同的做法等。(3)变化频率快。目前中国正处在政府改革时期,新的政策新的规则随时都可能出现,每一次变革都对电子政务提出新的要求等。这些都是引起电子政务需求不断发生变化的因素。(4)服务范围宽。一般信息系统要达到的目标是为组织内部服务的实现组织自身利益的最大化,而电子政务除了需要为政府内部服务,实现政府自身办公自动化的目标外,还有一个很重要的目标是为社会公众提供服务,不仅要提供单项业务服务,还要提供多项业务的“一站式”服务。这种多业务的“一站式”服务需要政府单独建立一个综合性的平台,联通与此相关的所有政府部门的业务。这种高标准的服务大大增加了电子政务实现的复杂度。(5)安全要求高。电子政务涉及国家安全,对网络和信息的安全要求比一般信息系统高。按照信息的涉密程度,电子政务网络分内网专网外网互联网等,不仅这些网络之间需要安全地互联互通,分布在这些网络上的应用系统信息也要进行安全的交换,有些还涉及保密,这种高安全性和保密性的要求大大增加了电子政务建设的难度。(6)政策依赖性强。政府是依法行政的,电子政务建设也需要法律和政策依据。如,政府要建设阳光政府,首先要做到政务公开,这时就需要《信息公开法》。类似的法律和政策还有《个人隐私法》《电子签名法》《数据共享目录》《信息交换机制》等,但目前在法制建设方面还比较薄弱,这在一定程度上制约了电子政务的顺利开展。(7)决策周期长。电子政务项目通常是集体决策的,有些项目还需要逐级汇报,每一级的制约因素是不同的,因此,电子政务的决策过程比较长,而目前电子政务系统对变化的需求反应不敏感。
3.2 需求分析
解决需求问题的最有效的办法是采用工程化的方法进行电子政务系统开发,即用工程化的办法解决电子政务系统的需求问题。需求分析是工程化方法的核心内容,处在系统开发生命周期的最初阶段,是决定系统成败的关键。
3.2.1 需求分类
所有系统都有需求(Require-ment),需求可以分多个不同的层面,最顶层可分为用户需求信息需求和系统需求三个方面,用户需求包括业务需求和目标需求;信息需求分为角色需求任务需求资源需求和进度需求等;系统需求分为功能需求性能需求用户界面需求等[9]。如图3所示:(1)业务需求(Business requirement)。
图3-1 需求分类
描述组织的业务流程改进所需要开展的活动,与组织的目标相关。在本文的研究中业务需求描述了为实现电子政务项目目标所需要进行的改进业务流程的工作。(2)目标需求(Objective requirement)。描述了组织为什么要开发一个系统及组织希望系统色需求用于描述参与电子政务项目的利益相关者。(4)任务需求,也称活动需求(Activity requirement)。描述组织为实现既定目标所需要开展的各项活动。在本文的研究中,任务需求用于描述电子政务项目的任务,即“做什么”。(5)资源需求(Resource requirement)。描述组织在完成任务过程中所需要的各种资源。在本文的研究中,资源需求用于描述电子政务项目的软硬件环境需求。(6)进度需求(Planning requirement)。也称计划需求,描述组织开展活动的时间安排。在本文的研究中,计划需求用于描述电子政务项目的进度安排。(7)功能需求(Functional requirement)。规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,实现系统目标。(8)性能需求,也称非功能需求(Non-functional requirement)。包括系统的性能指标,质量属性和约束。性能指标包括系统的开放性稳定性可维护性可扩展性安全性等。质量属性包括系统的可用性完整性效率和健壮性等。约束指限制系统实现的外部环境,包括资金人才资源条件政策措施等。(9)用户界面需求。用户界面需求是用户愿意使用软件的关键,友好的用户界面可以使用户方便有效愉快地使用该软件,从而发挥软件的作用。
3.2.2 需求分析过程
需求分析按需求分类拆分成两部分,第一部分为用户需求转变为信息需求部分,即将用户的业务需求和目标需求转换成信息系统的信息需求,包括目标需求流程需求角色需求任务需求资源需求进度需求等,这部分工作由用户自己完成;第二部分将信息系统的信息需求转变为系统需求,包括功能需求性能需求和用户界面需求等,这部分工作由系统分析师完成。则称第一部分为用户需求分析过程,所交付的产品是用户需求方案;称第二部分为分析师需求分析过程,所交付的产品是需求规格说明书。本文研究的是第一个过程,即如何将用户需求转变为信息系统的信息需求过程。本文的用户需求方案是指用户将用户需求转变成信息系统的信息需求所提交的一系列文档,通过对业务需求目标需求角色需求任务需求资源需求和进度需求的分析,得到有关系统目标业务流程任务软硬件条件等在内的详细表达用户需求的一套系统需求文档。
3.3 系统可行性分析
3.3.1 技术可行性
本系统将会是一个基于JSP下的电子政务系统设计与实现,对现有技术进行评价,以明确能否利用现有技术进行系统开发及系统实施。计算机网络技术的发展和计算机硬件性价比的不断提升,使计算机全面应用于企业管理的各个环节成为可能。B/S开发模式COMDCOM技术在国内各行各业的信息管理系统开发中已经被广泛采用,实践证明这些技术都非常适合企业客户关系管理系统的开发。本系统网络数据库平台为SQL Server 2005,辅助开发工具用Dreamweaver 8,并基于通用可扩展的数据接口(JDBC)全面支持MS-SQL数据库技术,继承了传统的客户关系管理系统的优点,同时又突出了基于Internet平台的交流渠道,在个性化方面也具有独到的优势。
3.3.2 安全可行性
电子政务不仅是一项先进的软件技术产品,也是一项企业的商业战略和管理理念。功能方面包括客户服务客户关怀和数据挖掘,是极少数能涵盖互联网时代全面客户关系需要的产品。在客户端,它提供了统一客户服务渠道电子邮件电话等与客户互动的能力;在服务器端提供了客户追踪分析功能,实现一对一行销。所以为企业运作过程提供了可靠保证。
3.3.3 效率可行性
本电子政务系统旨在通过将人力资源业务流程与信息技术进行有效的整合,不断地改善企业销售服务和市场营销等与客户关系有关的业务流程并提高各个环节的自动化程度,使得企业可以更低成本更高效率地满足客户的需求,最大程度的提高客户满意度及忠诚度,挽回失去的客户,保留现有的客户,不断发展新的客户,发掘并牢牢地把握住能给企业带来最大价值的客户群。因此带来的经济回报将远远超过信息化过程中的投入。
3.3.4 管理可行性
在软件开发中的管理策略对软件本身质量影响极大,由于软件是逻辑产品而不是物质产品,其开发进度的“能见度”比较低,软件生产的进度和指标不易标识和度量,问题不易及时发现和纠正。需求条件的不定因素多且易发生变化,从而使得软件生产的管理不同于一般的工程管理,有它自身的特殊性和复杂性。
管理规范是一套指导性文件,也是一套技术规范,是管理技术人员进行业务活动的行为准则。其中,管理规范的作用和效果:(1)提高了软件开发过程的“能见度”,将逻辑产品物资化;(2)促进标准制定与贯彻的统一;(3)促进了标准化管理与软件系统建设的统一;(4)促进了标准编制与技术开发的统一;(5)根据规范可以统一软件开发及运行管理的有关想法,使有关人员的相互理解和协作变得更为容易;(6)减少了作业和文档的重复,从而提高了开发效率;(7)可以排除软件研制中的人为因素的影响,保证了软件质量的均匀化,因而易于积累开发经验,促进技术水平的提高;(8)由于规范对软件的文档内容格式都做了明确的规定,使软件开发的委托者和软件开发的承当者之间相互理解。
在团队合作上必须有较好的管理,管理的好坏是该项目成败的关键。本系统是独立开发的管理系统,也应当以管理规范为出发点,提高软件的能见度,提高软件的可复用性。(1)将软件开发周期分为可行性研究及计划需求分析概要设计详细设计编码和单元测试(实现)组装测试运行和维护七个方面;(2)规定对软件项目的术语项目描述任务技术方法工具等方面进行详细说明和标识。
有统一的规范,对于他人参与软件的开发是有利的,这虽是一个毕业设计,但一个开放规范的代码为他人学习今后提高软件的开发有利的,统一的管理规范对于开发后期软件的修改排错是有利的,在开发前提出管理规范是可行的。
3.4 电子政务系统开发流程
(1)由用户自己提出需求方案的必要性通过分析电子政务特殊性及需求问题对电子政务系统的影响,本文认为,电子政务系统应由用户自己提供需求方案。原因在于:①电子政务项目建设的目的是应用,而应用的主体是政府公务员,如果政府内部没
图3-2 管理信息系统生命周期
图3-3 电子政务系统生命周期
有明白人,政府CIO对自己要建一个什么样的系统都表达不清楚的话,这样的电子政务项目是不可能成功的。②鉴于电子政务项目的特殊性和复杂性,只有政府公务员出身的政府CIO才能对电子政务有深刻的了解,并能动态跟踪需求的变化。让他们直接参与电子政务项目的需求分析,提供相应的需求方案,既是必要的,也是必须的,对提高电子政务项目的成功率具有重要意义。③用户提供的电子政务需求方案不仅有利于系统分析师分析需求,而且可以成为评价电子政务项目建设结果的依据。因此,在电子政务项目的开发流程中,增加由用户直接提供需求方案的环节,让政府CIO参与并主导项目的需求,是很有必用一个单独的包图表示,系统功能包。
3.4.1 系统安全需求
对于企业用户来说,商业数据是高度敏感的信息,系统安全是需要认真考虑和严密计划的问题。系统的安全性需求主要包括以下方面:
(1)身份认证
本系统采用用户名+密码+验证码的身份认证机制。通过系统的检验,成功后才可以登录系统。
(2)防止非法数据访问
安全问题除了包括合法身份的确认,还包括数据在保存和传输中不被窃取或更改,以及如何阻止非法侵入主机和核心数据系统等。
对私有数据访问的识别(密码安全代码等信息),这些信息一直有效,直至用户退出系统。防止非法用户进入主机系统和数据库。利用防火墙技术和网管系统,对非法进入进行严格审查,过滤非法数据,可以确保主机系统的安全运行和核心数据库的完整。
采用多种网络安全技术,可以通过防火墙加密设置口令设置权限和安全协议SSL技术保证数据的安全性。
3.5 系统用例分析
这个系统涉及到三大系统用例,通过系统的用例分析来构建软件模型,采用面向对象的现代软件分析来分析出每一个模型图实体图,通过系统用例分析来剖析系统功能。本系统涉及的用例为公众用户和管理员。
图 3-4公众 用例分析
面向公众的功能模块的主要功有:
(1)领导信箱
用户可以在网站上面给政府领导发送邮件。
(2)表格下载
在该模块当中能够下载政府提供的相关资料表格。
(3)政务公开
广大公众在充分的了解到了政务相关政务信息信箱。
(4)便民电话
提供政府政务电话。
(5)留言板
广大公众用户能够对政务信箱进行留言,如果有异议还可以进行投诉。
图3-6 管理员 用例分析
由于在这个系统管理平台当中,其主要的政务网站的管理与维护的系统管理人员。这个平台能够在政务专网内部得到实际的运行。
第4章 总体设计
本系统基于MVC模式,采用Struts+Hibernate架构,如图3-1,分为表示层、业务层和数据访问层。层与层之间通过接口联系,业务实体贯穿于三个层次,表现层的业务实体展现视图通过表单和业务实体之间进行转换。通过系统构件的分层,可以将频繁变动的业务逻辑层分离出来,实现通用类构件的完全复用。并且在各个模块之间设计统一的接口,当某一模块业务逻辑改变时,使系统之间的影响最小,使系统实现即插即用,让系统容易升级。
图4-1系统设计架构图
4.1 系统规划
4.1.1 系统总体目标
整个库尔勒市经济技术开发区网站系统分为十大子模块:首页、领导信箱、地区概况、动态信息、法律法规、招商引资、网上办事、政务公开、便民服务、政府部门网站。作为面向公众的交流平台,充分展示库尔勒市经济技术开发区的业绩和风采。首页是对网站九个主要频道中主要功能的展示,它包含各个栏目的导航、最新的即时政务信息、工作动态、公告通知等一些的最新发布消息,还包含了相关网站的友情链接和对站内的政务信息搜索引擎,便于更方便地查找站内政务信息和资料;后台的主要功能是对系统用户、政务公开、公告通知、招商信息、规划方案、政策法规、注册会员进行管理,包括对信息进行新增、修改、删除及对网站进行一些相关的维护。
4.1.2 系统的总体结构
(1) 领导信箱:书记信箱,办公室主任信箱
(2) 地区概况
(3) 动态信息:公告公示,政务信息动态
(4) 法律法规
(5) 招商引资:投资要闻,招商活动,展会信息
(6) 网上办事:办事指南,意见反馈,表格下载
(7) 政务公开:干部任免,政府文件,政府采购
(8) 便民服务:便民电话,投诉举报
(9) 政府部门网站
4.1.3 开发环境
开发此系统所需用到的软件环境如下:
1.JDK1.6及其以上版本:该版本是当前的最高版本,其中添加了旧版本所不具备的许多新特性。
2.Web应用服务器:Tomcat6.0及其以上版本。虽然是一款绿色软件,但其功能比较强大,方便易用,极适合中小型系统应用。可从网上免费下载,从而降低开发成本。
4.2 数据流程图
数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。
**市规划和国土资源局网站总体图如图4.2所示
图4.2总体图
4.3 电子政务工会网站的结构设计
图4.3 结构设计
(1)领导信箱
用户可以在网站上面给政府领导发送邮件。
(2)表格下载
在该模块当中能够下载政府提供的相关资料表格。
(3)政务公开
广大公众在充分的了解到了政务相关政务信息信箱。
(4)便民电话
提供政府政务电话。
(5)留言板
广大公众用户能够对政务信箱进行留言,如果有异议还可以进行投诉。
4.4 数据库概要设计
人们在总结信息资源开发、管理和服务的各种手段时,认为最有效的是数据库技术。数据库的应用已越来越广泛。从小型的单项事务处理系统到大型复杂的信息系统大都用先进的数据库技术来保证系统数据的整体性、完整性和共享性。目前,一个国家的数据库建设规模(指数据库的个数、种类)、数据库信息量的大小和使用频度已成为衡量这个国家信息化程度的重要标志之一。
数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术,具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。
总的来说,数据库的设计对系统的经济性、功能性和效率有很大的影响,要设计一个好的数据库,就要求在设计时尽量避免数据的多余,另外,还要尽可能提高数据的存取速度。按规范化理论的要求,关系模式应尽量取高级范式,尤其对记录数较多的关系,低级范式将会造成存储的大量重复,是空间遭受严重浪费。另一方面,从存取速度上考虑,希望一个模式涉及的属性越多越好,相互运算越少越好,这样,又应取低级范式,因此,速度与空间在范式上是相互矛盾的。
这样,就要求我们在设计数据库时要严格地探讨它的使用环境,充分了解用户的需求,清楚地掌握数据库系统的特点,进行综合的评价和分析设计出的数据库应满足以下要求:
(1)充分反映出用户的要求,即能够正确地反映出用户的实现环境,包括预处理的全部数据。
(2)能够支持用户所需的所有“加工”
(3)能够被某种数据库管理系统所接受。
(4)具有较高的质量,冗余量最小,数据一致性,完整性好,无更新异常,易于理解,便于维护,高效率等等。
图4.4 电子政务工会网站ER图
第5章 系统的实现
5.1 前台
在首页的政务公开栏目中列出即时的政务公开。当用户想查看更多政务信息时,点击政务公开栏中的更多按钮,此时会列出系统的所有政务信息信息,选择所要查看的某一条政务信息便会把详细内容显示在政务动态页面。可以在政务公开栏目底部的政务检索框中直接输入所要查找的政务信息中的关键字,同样可以链接到与输入关键字相关的政务信息显示在政务页面。
用户可以在网站上面给政府领导发送邮件。
4.3.2后台
成功登录到后台管理的界面后,对政务信息的操作包括新增、修改、删除。当系统信息过多时,为方便管理员对某条信息的快速操作,系统提供了查询功能,具体操作与前台会员进行的查询操作基本相同。
第6章 系统测试
软件测试是为了发现程序中的错误而执行程序的过程。软件工程的目标是开发出高质量的完全符合用户需要的软件,因此,通过测试发现错误之后还必须诊断并改正错误,这是测试的目的。对软件进行测试的结果也是分析软件可靠性的重要依据。软件测试有以下三个目的[38]:(1)软件测试是为了发现程序中的错误而执行程序的过程。(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。(3)成功的测试是发现了至今为止尚未发现的错误的测试。
本章第一节详细介绍了软件测试方法。第二节详细介绍了软件测试基本原则。第三节系统的解决了本系统所使用到的测试方案和测试用例。第四节对典型模块的测试结果进行分析和总结。第五节对本章内容进行了小结。
6.1 软件测试方法
按照测试过程是否执行程序可分为静态分析和动态测试。
(1)静态分析
静态分析不执行被测试软件,通过对需求分析说明书软件设计说明书及源程序做结构检查流程图分析编码分析等来找出软件错误。是十分有效的软件质量控制方法。
(2)动态测试
动态测试以执行程序并分析程序来查错。为了进行软件测试,需要预先准备好两种数据,即输入数据和预期的输出结果。
按照测试内容不同分为黑盒法和白盒法。
(1)黑盒法
黑盒法又叫功能测试,测试者完全不考虑程序内部结构和内部特性,把软件看成一个黑盒,测试时仅关心如何寻找出使程序不按要求运行的情况,因而测试是在程序接口进行的。黑盒法是最基本的测试法,主要测试软件能否满足功能要求,看输入能否被正确地接收且能否正确地输出结果。
(2)白盒法
白盒法又叫结构测试,用白盒法测试时,按照程序内部的逻辑测试程序检验程序中的每一条通路是否能按预定的要求正确工作。与黑盒测相反,测试时将程序看作是一个透明的盒子,测试人员完全了解程序的内部结构和处理过程。
6.2 软件测试原则
软件测试阶段最关键的技术是设计测试方案。此软件测试使用以界面为基础的测试。以界面为基础的测试仅仅依靠软件与其运行环境之间的界面来选择和产生测试数据,而不管软件的具体需求和具体实现细节。包括软件输入输出数据的类型取值范围以及取值的概率分布等[38]。
具体而言包括以下几个方面:
(1)应当把“尽早和不断地测试”作为开发者的座右铭。
(2)程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完成。
(3)设计测试用例时,应该考虑到合法的输入和不合法的输入,以及各种边界条件,特殊情况下要制造极端状态和意外状态,比如网络异常中断电源断电等情况。
(4)一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。
(5)对测试错误结果一定要有一个确认的过程。一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。
(6)制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试。
(7)回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。
(8)妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。
6.3 测试的主要内容
为了保证测试的质量,一般测试分为功能测试,性能测试和安全性测试等等。
6.3.1 功能测试
表6-1 功能测试用例
测试用例 步骤 预期结果 实际结果
如果用户名和密码都为空,用户登录测试 不输入用户和密码,点击登录按钮 不能登录 与预期相符
如果用户名和密码都都正确,用户登录测试 输入正确的用户名和密码,点击登录按钮 登录成功 与预期相符
如果用户名是正确的,密码是错误的,用户登录测试 输入正确的用户名和不正确的密码,点击登录按钮 不能登录 与预期相符
如果用户名是错误的,密码是正确的,用户登录测试 输入错误的用户名和正确的密码,点击登录按钮 不能登录 与预期相符
6.3.2 性能测试
性能测试通常由五个阶段组成:计划、脚本创建、场景定义、场景执行和结果分析。
计划性能测试:定义性能测试要求,例如并发用户的数量、典型业务流程和所需响应时间。
创建Vuser脚本:将最终用户活动捕获到自动脚本中,具体步骤:创建脚本选择协议、录制脚本、编辑脚本和检查修改脚本是否有误。
定义场景:使用LoadRunner Controller设置负载测试环境,具体步骤:创建Scenario、选择脚本、设置机器虚拟用户数、设置Schedule、如果模拟多机测试设置Ip Spoofer。
运行场景:通过LoadRunner Controller驱动、管理和监控负载测试,主要是分析scenario。
分析结果:使用LoadRunner Analysis创建图和报告并评估性能。
图6-1 性能测试流程图
测试目的:检验系统的最大吞吐量,检验现行的业务系统在各种压力下的运行状况,检验系统的运行瓶颈,获取系统的处理能力等等。
具体实施行为:测试服务器在承受N个虚拟用户下的状态;监控并分析服务器的性能指标,测试目的是为了监控性能并找出性能瓶颈。
6.3.3安全性测试概述
安全性测试(security testing)是有关验证应用程序的安全服务和识别潜在安全性缺陷的过程,安全性测试并不最终证明应用程序是安全的,而是用于验证所设立策略的有效性,这些对策是基于威胁分析阶段所做的假设而选择的,主要分两个方面网页安全漏洞检测和SQL注入。
表6-2 安全性测试用例
Step input output result memo
1 输入数据库中不存在的用户名,密码进行登录 系统给出错误提示 Pass
2 输入数据库中存在的用户名,错误的密码,进行登录 系统给出错误提示 Pass
3 输入数据库中存在的密码和存在的用户名,但是用户名和密码不匹配,进行登录 系统给出错误提示 Pass
4 对密码框中输入的密码进行复制粘贴 复制粘贴不会成功 Pass
5 在link后添加单引号,如http://localhost:8080/dzzw; 界面不会出现异常 Pass
6 使用正确的用户名和密码进行登录之后,点击浏览器的back按钮 页面跳转到登录界面,不记录密码信息 Pass
7 在用户名和密码文本框中输入