1、井冈山学院本科论文第70页 摘要教育电子政务系统是针对教育系统的特点和管理需要而研制开发的综合性系统,适用于各级教育管理部门和各类学校的电子政务建设。教育电子政务系统包括:信息标准化收集系统、信息发布与管理系统和数据管理与分析系统三个部分。本文首先对J2EE架构和设计模式做了概要介绍,重点探讨了J2EE的体系构和MVC模式的概念思想。通过分析:基于J2EE和MVC模式的多层体系结构为搭建具有可伸缩性、灵活性、易维护性的电子政务系统提供了良好的机制。就具体的实现技术而言,控制层使用目前流行的Spring、Webwork两种框架技术进行构建,利用Spring良好的可扩展性和Webwork强大的可控
2、性来构造业务逻辑对象来实现系统核心的业务逻辑。考虑到实体Bean组件自身的技术缺陷,模型系统采用了目前应用最广泛且成熟的对象/关系映射框架Hibernate来实现持久化层,视图层采用目前流行的表现框架Velocity进行显示。在对Spring、Webwork和Hibernate框架的详细研究分析后,我们得出结论:把Spring、Webwork和Hibernate这三个框架互相结合可以很好地实现MVC的设计模式。随后,本文对所开发的项目江西省教育厅电子政务系统各业务模块做了详细的系统功能分析并确定了系统的总体架构方案。并利用Spring、Webwork和Hibernate框架给出了本模块的具体实
3、现。 关键关键词:电子政务,J2EE,设计模式,MVC, Spring,Webwork,HibernateAbstractThe education e-government system is in view of the education systems demandand to develop the comprehensive system, which is suitable for all levels of education administration department and e-government. The education e-government syste
4、m includes: Officeand exchange of information system, information issue and management system and data management and analysis system.This thesis begins with the brief introduction of J2EE architecture and design pattern, which emphasizes in discussion of the system structure of J2EE and the concept
5、s of MVC pattern. Through discussion, we have found a mufti-tier architecture based on J2EE and MVC pattern which provides a good mechanism for a telescopic, flexible and easy maintaining business system. Regarding the practical technology, Web tier is constructed with currently popular Webwork fram
6、e technology. And in EJB tier, the business objects are constructed to realize the systemic core business logics. In consideration of the technical limitation of the entity Bean, the model system uses a new Object-Relational Mapping frame of Hibernate to realize the Persistence Layer. After detailed
7、 research of Spring 、 Webwork and Hibernate frame, we have come to the conclusion that integrating both the frames of Struts and Hibernate is favourable to achieve the design pattern of MVC.Subsequently, this thesis provides detailed analyzes of the systemic functions in all the business models of t
8、he Jiangxi Province education departments education e-government system , and then the total design scheme is finalized.Keyword: E-government affairs、J2EE、Design Pattern、Spring、MVC、Webwork、 Hibernate摘要21 绪 言61.1 系统背景61. 2技术发展现状91. 3课题研究目标91. 4课题研究的主要内容112 J2EE和设计模式112.1 J2EE架构112.1.1 J2EE体系结构概述112.1
9、.2 J2EE基于层次的架构132.1.3 J2EE容器管理142.1.4 J2EE的核心技术152.2 J2EE架构与MVC模式162.2.1 设计模式162.2.2 MVC设计模式172.3 本章总结193.EJB203.1传统EJB203.1.1 EJB的类型213.1.2 EJB容器问题223.2.3测试问题233.2 本章总结234.基于轻量级构架的J2EE解决方案244.1 MVC开源框架的选取244.2 Spring开源框架选取244.2.1 Spring开源框架介绍244.2.2 Spring框架结构和本系统选用Spring功能模块264.2.3 Spring框架分析总结314
10、.3 Webwork开源框架选取314.3.1 Webwork开源框架介绍314.3.2 Webwork功能与优点334.3.3 Webwork框架总结364.4持久层框架Hibernate选取364.4.1传统数据层JDBC的运行原理364.4.2 Hibernate的原理394.4.3 Hibernate框架总结404.5基于Spring、Webwork、Hibernate框架的J2EE构架414.5.1 Spring、Webwork和Hibernate对MVC的实现424.6 本章总结445. J2EE构架的教育电子政务系统设计455.1设计原则455.2 系统需求分析与总体设计455.
11、2.1 系统功能要求455.2.2 系统安全性与用户权限设计465.2.3系统性能要求465.2.4 系统总体框架设计475.3系统详细设计与实现495.3.1 系统管理设计495.3.2 权限模型设计505.3.3系统模型设计535.3.4 持久化数据模型层设计565.3.5 业务层设计605.3.6 视图层设计645.4 本章总结676.结束语676.1 结论676.2 进一步的工作68参考文献70致谢721 绪 言本章主要介绍了“基于J2EE构架的教育电子政务系统构建与实现”课题的研发背景、技术发展现状、课题研究目标和课题研究的主要内容。1.1 系统背景教育电子政务,就是教育机构应用现代
12、信息和通信技术,将管理和服务通过网络技术进行集成,在互联网上实现组织结构和土作流程的优化重组,超越时间和空间及部门之间的分隔限制,向社会提供优质和全方位的、规范而透明的、符合国际水准的管理和服务。1、指导思想以“三个代表”重要思想为指导,按照教育改革发展的要求,以信息技术手段支持教育管理和服务水平的提高。以需求为导向,以应用促发展,强化教育信息资源共享,提高教育管理和服务的科学性、规范性、公开性,推动教育的振兴和发展。2、应坚持的原则1)坚持统一规划,协调发展的原则。教育电子政务在我部的统一协调下,总体规划,分层推进,分步实施。2)需求主导,应用为主的原则。在教育电子政务建设中,信息网络是基础
13、,信息资源是核心,信息技术应用是手段,转变工作方式,提高工作效率是目的,人才、技术、政策法规和标准是保障。重点推进办公应用系统和教育政务信息资源库、各级各类学校信息资源库和各类专门基础数据库的建设,尽快发挥效益。3)坚持规范标准,资源共享的原则。加强标准规范的制定推广。优先采用 国家标准。在教育信息化的框架下,制定教育行业规范,实现信息资源共享。国家信息化领导小组决定,把电子政务建设作为今后一个时期我国信息化工作的重点,政府先行,带动国民经济和社会信息化的发展。教育电子政务是国家电子政务建设的重要组成部分,是教育信息化建设的主要方面之一,是实现教育管理现代化的重要手段。大力推进教育行政部门的电
14、子政务和学校的电子校务(以下统称为教育电子政务)建设,已成为教育行政部门和学校转变管理职能、转变工作方式和作风,进一步提高工作质量和效率,建立办事高效、运转协调、行为规范的教育管理体制的重要任务。根据利用信息技术的目的和信息技术的处理能力来划分,教育电子政务的发展大致经历了以下三个阶段:面向数据处理的第一代电子政务、面向信息处理的第二代电子政务和面向知识处理的第三代电子政务。1、面向数据处理的第一代电子政务第一代电子政务主要集中在1995年以前,以内部的办公自动化和管理信息系统的建设为主要特征,通过基于文件系统和数据库系统的综合运用,以结构化数据为存储和处理的对象,重点强调对数据的计算和处理能
15、力,实现了数据统计和日常文档处理的电子化,完成了办公信息载体从原始纸介质向电子介质的飞跃,实现了信息的自动化。在这个阶段中,局域网和基于网络的管理信息系统也开始得到应用,但主要局限在某一部门内部。因此,从整体上看,小同部门之间的信息系统很少进行互联和互通。这一阶段电子政务发展的最终结果是在有效提高办公和管理效率的同时,也形成了一系列的信息孤岛。2、面向信息处理的第二代电子政务随着电子政务理念的普及,一些发达国家开始将建设的重点放到充分运用信息技术,重塑一个具有更高效率、直接而向公众服务的“直接”的电子政务,这就拉开了第二个发展阶段的序幕。第二代电子政务一直延续到2001年,主要是以网络技术为基
16、础,连接教育内部已有的和新建的网络系统,充分利用国际互联网络构建“虚拟政府”,大力推动政府部门之间的协同土作和信息资源的共享,而向社会公众提供统一的政务服务。这一阶段的电子政务以网络为中心建立通信基础平台,以非结构化数据的信息流(或工作流)为主要的存储和处理对象,应用的领域也逐步延伸到各个方面,有效地提高了办公效率和管理质量。3、面向知识处理的第三代电子政务目前,电子政务已经进入第三个发展阶段,其主要的目标是在信息支撑环境的基础上,利用知识管理技术提高决策能力,建立基于网络的分布式结构。通过分布式的“一站式”服务中心提供跨部门的业务)服务。这个阶段的电子政务已经不局限于信息管理或事务处理了,而
17、是希望通过信息技术手段来提高教育部门的知识搜集、分析、传递和利用的能力,将知识管理与政务业务流程紧密结合,从而提高整体的管理水平和行政效率。这一阶段发展的必然结果,是教育结构的扁平化,同时通过对政务业务流程中的无序知识进行系统化的管理,实现对知识的充分利用。当然知识管理也从客观上要求教育部门改变自身的信息管理,并通过不断的学习来提高决策效率。教育部机关的办公信息网已经与省级教育行政部门和直属高等学校的办公业务网络进行联网信息交换;教育系统的办公自动化和管理信息化水平逐步提高,服务范围不断扩大;建立了一批教师、学生、财务、设备、招生、学历认证、科研等数据库和文件文献档案等教育信息资源库;一些教育
18、行政部门和学校建立了电子信息网站。这些工作对教育部门和学校提高教育行政质量和效率,规范管理,加强服务,以及促进社会对教育的监督,起到重要作用。但从整体上看,教育电子政务还存在一些问题,服务体系不完备,信息标准不统一,互联互通不畅,信息资源分散,共享程度低;应用水平不高,低水平开发和重复建设现象严重;信息安全体系缺乏,信息安全保密制度亟待完善;投入不足,发展不平衡。目前,教育电子政务建设还不适应我国教育改革和发展的要求,从技术角度讲存在以下方面问题:n 可扩展性:传统电子政务系统业务单一、固定,一旦业务变更,流程变化,系统很难及时响应,必需花很大工作量进行再次升级和对接,系统可扩展性很差。n 高
19、可用性:教育电子政务由于业务比较复杂,使用用户众多,所以必须能够有效地进行容错处理,实现连续不间断地提供服务。n 安全:教育电子政务系统面对的服务对象面对的是计算机水平较高的学生和老师,所以在安全方面要求就更高,如何安全的识别和认证用户,建立完善的身份验证模型,防止系统的未授权使用,保护数据的完整性就更显重要。n 开发效率:以往的程序开发,程序员花大量时间在业务的了解,事务的管理,出错的控制方面,开发效率很低。n 持续化服务:让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。n 分布共享数据对象CACHE服务:让开发人员编
20、制高性能的系统,极大提高整体部署的伸缩性。1. 2技术发展现状目前用来开发分布式多层体系结构应用程序的分布式组件技术包括.NET, CORBA,J2EE三大主流的组件模型。.NET是微软公司提出的一种分布式运算框架,以XML为基础,以Web服务为核心,辅以其它各种技术实现,Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验,.NET虽然能够较好地解决Windows系统的分布和通信问题,并且提供整套的封装方案,但是,它不跨操作系统平台,而J2EE平台可以,可移植性较差,另外.NET 由于平台本身强有力
21、的封装,使得开发人员不能很容易的根据业务来改变本身的框架和集成其它优秀的框架,使得在开发在仅限于.NET平台平身,而不能取各家之长,.NET技术发展时间不长,在很多领域方面的适用性方面不如J2EE平台,因为JAVA平台在众多领域当中已得到成熟和广泛的应用。CORBA是OMG组织制定的应用软件体系结构和对象技术规范,其核心是一套标准语言、接口和协议,以支持异构分布应用程序间的互操作性及独立于平台和编程语言的对象重用。CORBA技术体系独立于网络协议、编程语言和软硬件平台,互操作性和开放性很好,可以较好的实现异构环境下的信息和软件资源共享,但是CORBA的缺点是庞大复杂,并且标准和技术的更新相对较
22、慢。J2EE ( Java 2 Platform Enterprise Edition)是基于Java技术的分布式企业应用的先进平台和分布式组件技术的优秀代表,它具有标准Java 2的许多特色优势,例如“编写一次,到处运行”的可移植性、数据库访问的JDBC API,并且它支持同现有企业资源进行交互的CORBA技术,在此基础上,它添加了对企业JavaBeans组件、Java Servlets API, Java服务器页面和XML技术的支持。由于基于J2EE平台的应用程序不依赖于特定的操作系统,系统可以跨平台移植,但J2EE技术掌握难度很高,各种开源框架众多,技术开发文档不全,因此很难形成统一的开
23、发规范,使得开发人员在根据业务选择框架开发时不知所措,设计时也无法很好掌握和合理运用这些框架,同时JAVA在表现层方面很弱,而.Net框架则处理的很好。1. 3课题研究目标建立以信息网络为基础的教育电子政务体系,逐步实现教育系统的办公自动化,推进无纸化办公,进一步提高管理决策科学化水平和公共服务电子化水平,具体目标是:初步建立教育电子政务的总体框架,参与国家政务内外网络建设,整合教育电子政务网络系统。建成一批教育业务的监管和应用系统;发挥作用,使教育管理与信息的快速反应能力得到明显提高,建设教育政务应用系统,完善以教育部政府网站为核心的信息和公共电子政务系统,建立“一站式”服务平台,建设招生考
24、试与就业系统,完成教育政务信息资源库和基础数据库建设,建立教育电子政务培训体系、研发体系、安全体系和支援应急系统。此项目为江西省教育厅电子政务系统的一期工程,主要实现标准化数据生成,数据生成,数据查询,统计分析等功能。提高管理决策科学化水平,有机的整合资源,实现资源的合理利用。1). 教育电子政务网络平台建设。配合国家电子政务网络建设进行教育电子政务网络资源整合,建立教育电子政务信息服务和信息交换网络体系。2). 教育电子政务应用平台建设。建立完善教育管理和业务相关的办公与信息系统。建立和完善各级教育行政部门和各级各类学校的办公信息系统和监管系统:开通全国教育视频会议系统:实施教育电子政务示范
25、工程。3). 公共电子政务与信息服务平台建设。积极推进教育政务公开与信息业务,建立以教育部政府网站为核心的教育公众信息服务体系,开通部分而向教育系统和社会公众的网上24小时电子办公政务系统:建设学历认证系统、考试信息服务系统、就业咨询与与服务系统等一批公共信息业务系统。4). 教育政务信息资源库与基础数据库建设。建设教育政务信息资源库和5). 公共的学校信息发布检索平台:在各级教育行政部门和各级各类学校建设教师、学生、则一务、设各房产、科研等基础数据库以及配套的统计和应用系统。开发利用教育信息资源,为管理、教学和研究服务,部分而向社会服务。6). 完善教育电子政务规范和标准规范。实施国家政务信
26、息标准,在教育信息化规划的框架下,完善教育管理信息标准、各类学校发布信息规范、教育信息编码标准、政务网络及设各参考标准和视频会议接入标准等,为全国教育系统信息联网和政务信息的共享铺平道路。7). 建立和完善教育系统管理人员的信息化培训培养机制。采用网络课件 (远程教育)、专业进修、木地培训和讲座等多种形式,逐步对管理人员和技术人员等开展小同层次的技术培训。建立一支训练有素、专业技能过硬、管理水平较高、相对稳定可靠的技术队伍,保证教育电子政务网络和应用系统安全正常运转。8). 建立和完善教育信息技术支持体系和安全保障体系。研制、采购和配置教育电子政务的网络信息交换加密和认证系统:建立教育电子政务
27、的应急支援中心和数据各份中心,制定应急技术方案:制订和完善教育电子政务的法规和保密制度,确保电子政务系统安全稳定运行。研究信息技术支持教育管理和决策的方式方法,为领导和业务部门提供决策分析、数据抽样调杳和数据与信息挖掘等专业的支持和服务。1. 4课题研究的主要内容 本课题研究的主要内容可以概括为以下几个方面:(1) 研究如何在J2EE平台下构建一个结构良好的、基于组件的教育电子政务信息系统。这主要指参考J2EE的多层体系结构,将信息系统划分为不同的应用层次。其目的就是要使用J2EE提供的组件技术,提高整个系统的灵活性和可扩展性。(2) 研究在系统设计中,如何引入目前技术领域成熟的业务模型,比如
28、权限管理模型,公文流转模型等。(3) 研究如何利用Spring、Webwork和Hibernate框架来将业务层,逻辑层和控制层进行松耦合。(4) 研究如何设计代码,增强代码的复用性。2 J2EE和设计模式2.1 J2EE架构2.1.1 J2EE体系结构概述J2EE是由美国Sun公司推出的一种全新概念的模型,与传统的互联网应用程序模型相比有着不可比拟的优势。J2EE是一种利用Java平台来简化诸多与多级组织解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如编写一次、到处运行的特性、方便存取数据库的JDB
29、C API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。 Sun公司在企业版中增加了一整套核心企业级应用程序编程界面,而所有这些界面均为标准的模块化组件。J2EE技术还为这些组件提供一整套企业级服务,通过自动化的方式完成应用程序开发中的诸多耗时且费力的艰难工作,为用户提供一种可创建广泛兼容的企业级解决方案而无需进行复杂编程的平台。利用这一优势可以方便地开发出高质量的、适合各种组织使用的应用程序,还可
30、极大地减少产品研发上市时间、成本和风险。 J2EE使用了EJB Server作为商业组件的部署环境,在EJB Server中提供了分布式计算环境中组件需要的所有服务,例如组件生命周期的管理、数据库连接的管理、分布式事务的支持、组件的命名服务等等。有些企业级的EJB Server,例如Sybase公司的EAS 3.6(Enterprise Application Server 3.6)还提供了支持高可用性和高性能的群集技术、失败的自动转移和恢复、应用负载的自动均衡能力等。实现商业逻辑的EJB组件可以更加高效地运行在应用服务器中,支持多种客户端的访问,HTTP的客户端可以先向运行在Web Serv
31、er上的java Servlet或者JSP发出请求,在JSP中嵌入Java的代码调用运行在EJB Server中的EJB,以实现商业逻辑;而其他的客户端,可以通过IIOP直接访问运行在EJB Server中的组件.图2.1表示的是J2EE的构架。图2.1 J2EE体系结构从图中,我们可以看出J2EE体系中各个组成部分之间的逻辑关系。首先整个J2EE体系是构建在J2SE (Java 2 Platform Standard Edition)的基础之上的,这表明J2EE的实现技术依靠的是J2SE所提供的标准API和运行时环境,这一点也保证了J2EE技术具有跨平台的可移植性和良好的兼容性。其次,图中的
32、彼此独立的模块代表了J2EE体系中的各种类型的容器。所谓容器,就是指为组件提供各种必要的底层服务支持的一个运行时环境。这些底层服务包括了支持数据库访问、消息服务、邮件服务、事务管理、安全性、远程访问支持等各个方面。运行于容器中的组件,如Applet, Servlet, JSP和EJB等,依靠容器提供的这些底层服务来完成具体的业务逻辑。图中的连线部分表示的是各部分之间的相互访问关系。不难看出,在J2EE体系为开发人员提供了多种灵活的组件访问方式和数据访问方式。从组件间的访问关系来看,客户端既可以通过标准的HTTP协议访问Web容器组件进而访问EJB组件,也可以通过远程调用(RMI )的方式直接访
33、问EJB组件:从组件和数据的访问关系来看,客户端组件、Web容器组件和EJB组件都具备了通过标准的JDBC API访问数据库的能力。2.1.2 J2EE基于层次的架构 J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。事实上,Sun设计J2EE的初衷正是为了解决两层模式(ClientlServer)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,虽然第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE的多层企业级应用模型将两层化模型中的不同层
34、面切分成许多层。 如图2. 2所示,J2EE是一种4层架构5n 运行在客户端机器上的客户层组件n 运行在 J2EE 服务器上的 Web 层组件n 运行在 J2EE 服务器上的业务逻辑层组件n 运行在 EIS 服务器上的企业信息系统(Enterprise information system)层软件。每层均致力于给应用积序提供一类特定的功能。图2.2 J2EE层次模型2.1.3 J2EE容器管理J2EE平台规范是一个用于简化分布式企业级应用开发与部署的基于组件的模式。它提供了一个多层次的分布式应用模型和一系列开发技术规范。多层次分布式应用模型是根据功能把应用逻辑分成多个层次10,每个层次支持相应
35、的服务器和组件,组件在分布式服务器的组件容器中运行。容器是J2EE基于组件的开发模式中的核心概念。所谓容器5就是指为组件提供特定服务和技术支持的一个标准化的运行时环境。有了标准化的容器的支持,组件就具有了良好的可移植性,能够在任何一个符合J2EE规范的J2EE应用平台中正常运行并获得相应的底层服务。J2EE容器服务如图2. 3所示。从图2. 3可以看出,在J2EE标准服务之上有Web容器和EJB容器。Web容器为应用系统的表示层逻辑组件Servlet/JSP提供了运行环境,提供了对客户端请求的响应机制,并且提供了管理用户会话状态的API; EJB容器为应用系统的业务逻辑组件EJB提供了运行环境
36、,提供了对事物、安全性和JNDI ( Java Naming and Directory Interface)的支持,同时负责管理EJB组件的生存周期、发布和部署等。容器间通过相关的协议进行通讯,实现组件间的相互调用。另外,容器还提供了在装配和部署阶段允许开发人员配置应用程序功能和行为的机制。通过使用预先定义好的部署描述文件(一般是格式定义良好的XML文件),开发人员可以将组件配置到特定的容器环境中,而且还可以在不修改源代码的情况下配置组件的事务控制、安全验证等属性。图2.3 J2EE容器服务示意图2.1.4 J2EE的核心技术J2EE 平台由一整套服务(Services)、应用程序接口(AP
37、Is)和协议构成,它对开发基于 Web 的多层应用提供了功能支持,下面对在本系统中用到的 J2EE的几种技术规范进行简单的描述:n JDBC(Java Database Connectivity):JDBC API 为访问不同的数据库提供了一种统一的途径,象 ODBC 一样,JDBC 对开发者屏蔽了一些细节问题,另外,JDCB 对数据库的访问也具有平台无关性。n JNDI(Java Name and Directo相似。Servlet 提供的功能大多与 JSP 类似,不过实现的方式不同。JSP 通常是大多数 HTML 代码中嵌入少量的 Java 代码,而 servlets 全部由 Java 写
38、成并且生成 HTML。n XML(Extensible Markup Language):XML 是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。XML 的发展和 Java 是相互独立的,但是,它和 Java 具有的相同目标正是平台独立性。通过将 Java 和XML 的组合,您可以得到一个完美的具有平台独立性的解决方案。n JavaMail:JavaMail 是用于存取邮件服务器的 API,它提供了一套邮件服务器的抽象类。不仅支持 SMTP 服务器,也支持 IMAP 服务器2.2 J2EE架构与MVC模式2.2.1 设计模式面向对象技术的出现和应用大大提高了软件的重用
39、性和软件的质量。面向对象的编程也比以往的各种编程模式要简单和高效,但是面向对象的设计方法要比以往的设计方法要复杂和有技巧得多,一个良好的设计应该既具有对问题的针对性,也充分考虑到对将来问题和需求有足够的通用性。在过去的十几年中,人们在对面向对象技术的研究探索和实际应用中针对某些问题创造了一些良好的解决方案,即所谓的面向对象的设计模式。面向对象技术的目的之一就是提高软件的重用性,而对设计模式、设计方案的重用则从更深的层次上体现了重用的意义和本质。人们对设计模式有很多定义,其中被引用的最多是Christopher Alexander的设计模式的定义:每一个设计模式是一个三方的规则,它表达了一个上下
40、文环境(Context),一个问题和一个解决方案。设计模式一般有如下几个基本要素:模式名称,问题,目的,解决方案,效果,样例代码和相关设计模式。设计模式的分类有好几种6,可以根据其目的分为创建型(Creational),结构型(Structural)和行为型(Behavioral)三种。创建型模式主要是用来创建对象,结构型模式主要是处理类或对象的组合,行为型模式则主要用来描述对类或对象怎样交互和怎样分配职责。也可以根据范围将设计模式分为类模式和对象模式,类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。对象模式是处理对象间的关系,这些关系在运行时刻变化,
41、更具动态性。 模式的特点:是通过经验获取的,以某种结构化的格式书写下来,避免了遇到相同的问题重头设计,存在于不同的抽象层,在不断完善的,是可重用的人工产物,使设计和最好的练习交互,以被组合起来解决更大的问题。2.2.2 MVC设计模式MVC最初是在Smalltalk-80中被用来构建用户界面的17。M代表模型Model, V代表视图 View, C代表 控制器Controller。视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计
42、模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。 模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种
43、模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据 保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模
44、型单独列出,所有有关数据库的操作只限制在该模型中。 控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数
45、据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能,MVC的目的是增加代码的重用率,减少数据表达,数据描述和应用操作的耦合度。 同时也使得软件可维护性,可修复性,可扩展性,灵活性以及封装性大大提高。单用户的应用通常是以事件驱动的用户界面为组织结构的。开发人员用一个界面工具画了一个用户接口界面,然后编写代码根据用户输入去执行相应的动作,许多交互式的开发环境鼓励这么做,因为它强调先有界面然后再有功能。一些软件设计模式策略是这样的,然
46、后经常将固定后的代码融入最后的系统当中。导致的结果就是,程序组织围绕用户界面元素和用户在那些界面元素上的动作,数据的存储,应用的功能以及用来显示的代码都杂乱无章的缠绕在一起。在单用户的系统里代码结构是可以这样的,因为系统需求不会频繁变化。但是对一个大的系统如大型Web系统,或电子商务系统来说就不太适用了。通过把数据模式从各种可以被存取和控制的数据中分离出来可以改善分布式系统的设计。MVC设计模式由三部分组成。模型是应用对象,没有用户界面。视图表示它在屏幕上的显示,代表流向用户的数据。控制器9定义用户界面对用户输入的响应方式,负责把用户的动作转成针对Model的操作。Model 通过更新View
47、的数据来反映数据的变化。三者关系如图2.4图2.4 MVC 关系图对MVC关系图的理解可以见下表:图2.5 MVC的分工与协作2.3 本章总结本章介绍了J2EE的体系架构和其中的核心技术,以及其MVC的模式的思想,从以上的讨论可以看出J2EE确实是一种非常先进并且可行的WEB技术,但我们在使用J2EE时应注意以下几点:n 结合商业需求选择合理的架构如果脱离商业需求,而单独的讨论技术本身的优势是不够的。各项技术都有产生的特定背景,其中很多都是来自工业需求而触动的。一般而言,企业信息系统(EIS)都要求自己稳定、安全、可靠、高效、便于维护。同时,各个企业信息系统都有自己独特的要求,可能有些时候需要
48、考虑与原有遗留系统的集成,所以了解各个企业信息系统具体的商业需求对于整个系统的架构显得很关键。n Framework(框架)的合理选用设计模式在J2EE应用系统中扮演着重要的角色。因此,有一个问题摆在大家面前,是自己来实现具体的设计模式,还是借助于Third-party Framework。一般而言,Framework本身,或者说J2EE平台本身都是实现并优化了具体的设计模式、规则,比如业务代理、Service Locator(包括Web Tier和EJB Tier各自的服务定位器,起到统一管理有限资源、Cache相关资源的作用,便于系统移植)、Front Controller、DAO等等n 开发模式的选择开发J2EE应用要求目标开发人员能够掌握其中的各种技术。但是,现实情况不是这样。作为一个团队,
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922