论基于MVC实现的电子政务系统

上传人:Za****n* 文档编号:179730167 上传时间:2023-01-02 格式:DOC 页数:37 大小:423KB
返回 下载 相关 举报
论基于MVC实现的电子政务系统_第1页
第1页 / 共37页
论基于MVC实现的电子政务系统_第2页
第2页 / 共37页
论基于MVC实现的电子政务系统_第3页
第3页 / 共37页
点击查看更多>>
资源描述
基于MVC实现的电子政务系统摘要 随着计算机和信息技术的迅速发展,网络己经成为我们日常生活、学习和工作的基础设施。各种基于网络的分布式办公系统层出不穷,电子政务系统就是其中之一。电子政务系统利用网络可以将各种资源进行有效的组合,迅速提高政务活动的效率,是政府部门进行信息化建设的重要途径。迅速发展,不断变化的经济、社会内容决定了电子政务系统必须能够满足政务活动的多变性。因此如何使电子政务系统能够具有最大的可扩展性和重用性就成为电子政务系统开发中必须重视和解决的问题。MVC设计模式的核心思想就是分层设计,将显示逻辑、业务逻辑以及流程控制相互分离,分离不同的层次,分为模型层(Model)、视图层(Yiew)、控制器(Controller)。各层次之间相互独立,接口清晰,祸合度低,模块间具有较大的独立性,从而增强了系统的可维护性和可扩展性。通过分层设计,各个层次的模块可由不同的开发人员开发,独立层次的模块扩展也将对其他层次模块的影响降为最低。这种特性恰恰满足了电子政务系统开发的需要。特别是J2EE平台出现之后,提供了各种成熟且功能强大的组件和容器技术。程序开发人员可以利用这些成熟的组件和容器技术,使之担任MVC各层次中的各个角色,降低了系统开发的难度,提高了系统开发的效率。Struts架构作为一种基于J2EE平台的框架,具体实现了MVC模式。Struts提供不同的组件工作于不同的层次,担任不同的角色,并提供了丰富的标签库,大大增强了对视图层的支持,从而使电子政务系统的开发更加便捷。论文从理论上论述了MVC模式应用于电子政务系统设计开发的意义,对MYC模式的原理和组成结构进行了深入的分析,介绍了实现MVC模式的Struts框架的各个组成部分及控制流程.最后以作者实习期间参与的上海市人民政府外事办公室电子政务系统的子系统上海市因公护照签证管理信息系统作为开发实例,具体介绍了如何将MVC模式应用于电子政务系统设计开发中,以及在设计各个层次时应该遵循的具体规则和注意事项。并针对于上海市外事办公室特殊的网络环境,成功解决了数据同步的难题。关键字:电子政务,设计模式,MVC,Struts J2EEAbstract With the development of the Computer Science and the Information Technology, thenetwork has become a kind of basic infrastructures in our daily life. Kinds of systemsbased on network appeared and the E-GOV System is one of them. The E-GOV Systemcan organize all the information effectively, share them among all the departments, andimprove the work efficiency greatly, so it is a kind of most important way to build the E-G4V. The content of economy and society which is developing quickly has decided thatthe E-GOV System should also satisfy the change of the active government. So it hasbeen a pressing pmblem how to make the E-GOV System much more extensive and,reusable.The MVC pattern is a kind of layers pattern. It separates the whole structure intoseveral Layers: Mod呱View and Controller. All the layers exists separately,阮interfaceamong them is clear and make the coupling lowest. So this characteristic satisfies theneed of the E-GOV System. Especially it bases on the 12EE platform which provideskinds of components and containers which the developers caa use to be the roles in MVC.And it makes the development much easier and improves the efficiency greatly. Struts isa kind of framework based on the J2EE platform and realizes the MVC pattern. Besidesthese Struts give us large tag Jibs and improves the support about View.This paper introduces the advantages to apply the MVC to the development of E-G4V System development firstly. Then analyze the structure, the details of the MVCpattern and the main parts of Struts framework which realizes the MVC pattern. At lastbased on the Shanghai Visa and Passport Management Information System, a subsystemof the Shan沙ai E-Gov System, the paper introduced details how to use the MVC tternduring the develapment of the systems.Key words: liGov, Design Pattern, MVC, Struts, J2EE第一章引言1.1电子政务系统开发发展现状 20世纪90年代以来,伴随信息技术的发展,信息化已经成为各国普遍关注的焦点问题。在国家信息化建设进程中,政府信息化又成为信息化建设的重点。电子政务是政府信息化的主要形式,它是指国家机关在政务活动中,全面应用现代信息技术、网络技术,以及办公自动化技术等,进行办公、管理和为社会提供公共服务的一种全新的管理方式。美国的电子政务起源于20世纪90年代初。1993年,克林顿政府成立了“国家绩效评估委员会”,递交了创建经济高效的政府和运用信息技术改造政府两份报告,提出应当用先进的信息网络技术克服美国政府在管理和提供服务方面所存在的弊端,这使得构建“电子政府”成为美国政府改革的一个重要方向,也揭开了美国电子政务建设的序幕。为保障政府信息化发展,美国还制定了一系列法律法规,对政府信息化发展起着重要的保障和规范的作用。我国电子政务建设起步较晚,2Q02年下半年国家也公布了其纲领性文件中共中央办公厅、国务院办公厅关于转发(国家信息化领导小组关于我国电子政务建设指导意见)的通知.经过几年的发展,我国的电子政务系统发展也取得了长足的进步,已经不再只是政务管理信息化形式的一种简单意义上的补充1,不少rr企业也将电子政务系统的设计开发作为自己的商业范畴。例如神州数码、方正集团、浪潮集团、沈阳东软软件股份等企业已经有成熟的电子政务系统平台产品投入实际应用。 电子政务应用系统,对在机关政务活动中产生的信息资源进行采集、整合、管理等操作,以分布式的结构结合数据库技术,对整个信息资源进行检索、共享。随着Web开发技术发展日趋成熟,越来越多的电子政务应用系统转向基于浏览器的BIS系统架构,逐渐舍弃复杂的CIS结构,从而节省了软件的开发成本及开发周期。通过构建基于Web的分布式电子政务应用系统,实现了各类异构系统的互通互联、各类信息的全面共享,最终消除“信息孤岛”,达到政务机关信息共享化与智能化的目的2。1.2 MVC模式在电子政务系统开发应用中的意义 电子政务是由网络技术和电子技术的进步与创新发展起来的,因此电子政务系统的开发涉及到多项技术的融合,例如:网络开发技术、数据库技术、信息安全技术、中间件技术、工作流技术等等,是一个庞大的系统工程。加之现在电子政务系统软件的开发没有标准的规范遵循,现在很多电子政务系统结构混乱,模块体积庞大、效率低、藕合度高,代码重用率低,从而导致很多电子政务系统重复开发,成本费用居高不下,系统功能可扩展性差,稳定性和可靠性低等弊端。 近年来,随着网络技术迅速发展,J2EE平台的日趋完善及广泛应用,基于BIS多层体系结构的Web应用程序已经成为分布式软件的首选模式,强烈的冲击着传统的C/S体系结构。在此大环境下,电子政务系统的开发也逐渐向BIS模式靠拢。随着面向对象编程技术的深入发展,出现了多种框架模型,简化了应用程序的开发。框架式是可重用的,可以在他的基础之上开发特定的应用程序3,基于J2EE平台的MvC模式同样具有可重用的特性,为基于B/S的电子政务系统的开发提供完善的框架,成功的解决了在电子政务系统开发中所出现绝大多数的问题。 MVC设计模式是80年代Smallta1k80出现的一种软件设计模式,现在已经被广泛的使用。MVC的出现不仅实现了功能模块和显示模块的分离,同时还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。尽管MVC设计模式很早就已经被提出,但在早期的Web项目开发中,程序语言和HTML的分离一直难以实现,而且脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础,因此在Web项目的开发中引入MVC却是步履维艰。直到基于12EE的3SP Model 2问世时才得以改观。它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBeanIEJB技术实现模型的功能。 MVC设计模式成功解决了应用系统开发过程中所遇到的主要弊端,也为电子政务系统的开发提供了较为完善的解决方案,得到TT业内的支持。MVC设计模式的发展,具体实现MVC模式的各种架构也随之出现,其中不乏很多开源框架。Struts框架就是最为优秀的一种,得到市场的认可,Struts于2001年7月正式发布,当前的版本是.2o Struts提供了构建基于MVC的应用程序的基础或框架,提供了核心的MVC功能,并附带了多个JSP标签库,因此能够更快、更轻松的开发基于MVC的Web应用程序。1.3本论文的研究目标和技术路线 本论文的研究目标是对Mvc模式进行深入研究,论述MvC模式各个组成部分(模型、视图、控制器)在软件开发中所担当的角色及功能,将MVC模式与其他软件框架模式进行比较,深入研究具体实现MVC框架模型的Struts框架技术,并将其应用于电子政务应用系统的开发中,结合J2EE平台技术,为电子政务应用系统的开发提供标准的MVC框架开发模式。本文中使用的开发实例是上海市外事办公室电子政务系统的子系统上海市因公护照签证管理信息系统,此系统已经成功部署运行。1.4本论文的组织 本文的组织结构如下: 第一章引言。主要讲述电子政务系统开发的现状,以及Mvc设计模式应用于电子政务系统开发的现实意义。 第二章应用系统的体系结构。主要介绍应用系统的一般体系结构,如传统cps的两层体系结构、Bas系统的三层体系结构以及基于】2EE平台的多层体系结构。并根据对比给出了电子政务系统应该采用多层体系结构的理由。 第三章应用Struts具体实现MVC模式。本章将对设计模式的概念、MVC设计模式的核心思想和组成部分以及具体实现MVC设计模式的Struts框架进行论述,并详细论述Struts框架的核心组件及流程控制等。 第四章Mvc模式在电子政务系统开发中的实例。本章将以上海市因公护照签证管理信息系统为例,具体研究如何在电子政务系统设计开发中具体应用Mvc设计模式及其具体实现架构sr框架。并介绍了系统本身的功能结构以及具体开发中所解决的难题。 第五章总结与展望。本章总结全文,指出本系统设计的不足及下一步工作的研究重点。第二章应用系统体系结构2.传统CIS两层体系结构 在应用程序发展的早期,由于受到硬件水平以及网络发展水平等外界因素的限制,以及对分布式系统没有过高的要求,传统的应用系统开发普遍采用crs技术的细分方法。2.3基于J2EE的Web多层体系结构 网络的发展迫切需要有效的企业系统的开发,构建出高质量、高度可用的企业应用,多层体系结构应运而生。客户机不断被压缩,逐渐被浏览器所替代,因此也促使在进行系统设计开发过程中更加注重服务器的设计与开发,对服务器进行细分。在技术方面,应用服务器技术和容器组件技术的出现为企业级网络的分布式应用提供了优秀的技术支持,促使了这种趋势的发展和完善。 现在最流行和实用的分布式系统开发语言就是Javao Java语言从1995年出现以来,根据不同的市场需要,己经发展成三个不同的应用平台:J2ME, IZSE,J2EE.其中J2EE (Java 2 Platform, Enterprise F.cition)是Suu公司联合多家IT业大型公司,把所有与企业相关的标准、API进行整合推出的企业级版本,是一个开发分布式企业级应用的规范平台,为程序开发人员提供了一个多层次的分布式体系结构和一系列开发技术规范。其中多层次分布式体系结构是指根据功能把应用逻辑再进行细分,每个层次支持相应的服务器和组件,组件在分布式服务器的组件容器中运行,容器间通过相关的协议进行通讯,实现组件间的相互调用。J2EE平台为服务器端的细分提供了不同的组件、容器以及规范,例如JSP, Servlet组件及应用服务器容器,EJB组件及EJB容器等等,各种不同的组件及容器部署在不同层次上,不同的层次可以部署在相同服务器或者不同服务器上。基于J2EE的Web多层体系结构图如图2-3。图2-3 基于J2EE的Web多层体系结构 客户层可以是桌面应用程序,也可以是基于Web的应用程序,主要负贵向最终用户提供友好的可视化交互界面。本文主要研究基于Web应用系统的体系结构,因此担任客户层角色的应该为Web浏览器(Web Browser ),浏览器并不具备完善的逻辑处理功能,只是负责发送请求以及显示响应结果,可以下载静态的HTML页面或者由Web层生成的动态HTML页面,属于一种瘦客户端。 Web层产生表示逻辑。根据用户请求,接受请求参数,并调用业务层处理单元,在获得处理结果后动态生成表示单元返回给客户层浏览器。J2EE平台为Web层提供了JSP, Servlet组件及Web容器应用服务器。JSP和Servlet组件接受用户请求,并根据逻辑处理结果产生动态的显示页面。应用服务器则负责对JSP,Servlet等组件的管理工作。 业务层主要负责处理应用的核心业务逻辑,以满足特定业务领域的业务逻辑处理需求。12EE平台为业务层提供了EJB组件及E1B容器。E3B组件可以接收请求数据,对数据进行复杂的逻辑处理,如有需要可以将数据发送到企业信息系统层进行持久化操作,还可以根据需要检索数据,返回处理结果。EJB可以分为三种:会话Bean ( Session Beaa )、实体Bean ( Entity Bean )、消息驱动Bean ( MessageDriven Bean )。不同的EJB负责不同的功能,统一由EJB容器管理。通常情况下,许多企业应用将Web层和业务层一起发布,称为J2EE服务器。但ETB本身也存在内部结构复杂、体积庞大的缺点,因此在一般企业级应用系统中不建议使用EJB作为业务层的处理组件,而是建议进行轻量级开发。部分业务逻辑处理可以由JavaBean组件以及应用服务器容器所代替,从而降低程序开发难度,但大型企业应用仍然建议使用EJB组件. 企业信息系统层(EIS Ties)是处理企业数据信息的系统软件,包括ERP、数据库系统等等。主要负责对企业数据信息的管理、存储等持久化工作。本文所要介绍的上海市因公护照签证管理信息系统主要采用数据库系统。 基于J2EE的Web多层体系结构对原来的服务器端功能模块进行了合理的细分,并提供了完善的组件及容器管理机制,可以有效地控制因重复开,增强应用系统的重用性,充分发挥了面向对象开发的优势。J2EE通过提供统一的开发平台,降低了开发多层应用系统的费用和复杂度,同时提供对现有应用系统集成的有力支持【5】【6】。2.4电子政务系统采用基于J2EE Web多层体系结构的理由 电子政务系统在实际应用中的易用性、健壮性、可重用性、可扩展性是系统设计首先考虑的问题【7】。因此既需要考虑更好的实现整个系统的设计开发,也要考虑到系统整体框架的特性以及未来的扩展性。基于J2EE的w多层体系结构所具有如下优势,正好满足了电子政务系统以上要求: . J2EE利用Java平台来简化企业解决方案的设计、开发、部署和管理等相关复杂问题,也就具备了Java语言“一次编写,到处运行”的先天性优势,12EE平台本身具有平台无关性I【8】。. 2. J2EE平台提供了完善的组件,提高了系统的重用性。随着经济的迅速发展,社会内容的不断丰富,作为社会的管理者,政府的管理职能、地位和管理内容也再不断的扩充变化。电子政务系统的需求也随之变化,因此电子政务系统对重用性和可扩展性的要求不断提高。J2EE平台利用组件技术和容器技术提高了系统模块的重用性,可以方便的整合原有的电子政务系统,避免了不必要的重复开发。 3.易于部属,实用化。由于基于IEEE的Web多层体系结构压缩了客户端的功能,属于BIS结构,在客户端只需要用户安装Web浏览器,而且现在市场上的主流操作系统都会绑定安装浏览器。另一方面,由于业务的不同,电子政务系统主要面向于政府工作人员,应用系统对工作人员的计算机水平不能要求太高,直接使用浏览器就可以对电子政务系统进行熟练的操作。基于JzEE的Web多层体系结构恰好满足了用户此种需求。 4.较强的健壮性和稳定性。电子政务系统一旦部署实施就需要全天候运行,因此需要较强的稳定性和健壮性。多层次结构虽然不能保证其中一层出现问题,其他层次不受影响,但最重要的数据信息作为单独的一层进行设计,可以保证在系统出现问题时,原有的重要数据不会丢失。此外,多层体系结构将服务器端工作负荷和业务逻辑分布到不同层次上进行,不同层次的模块单元可以部署在不同机器上,避免了个别机器工作负荷太重的现象,因此降低了系统出现问题的可能性,提高了系统的稳定性。 S,节约系统开发成本.首先基于J2EE的Web多层体系结构使得开发人员不再过多的关注客户端应用程序的开发,只是需要设计用户交户界面即可,节省了系统开发在时间和人力上的开销。此外)2EE平台为程序开发人员提供了友好的功能完善的组件及其容器,开发人员可以从内部细节实现中解脱出来,更加关注系统整体逻辑设计。最后此种体系结构提高了系统的重用性和扩展性,可以较好的整合原有系统,避免不必要的重复开发,从而缩短了开发周期,节约了开发成本。 鉴于以上优势,基于J2EE的Web多层体系结构已经成为进行电子商务、电子政务等基于wpb开发的首选方案。本文中所研究设计的上海市因公护照签证管理信息系统也采用此种体系结构。解决了系统的体系结构问题,下面的章节将研究系统将采用什么样的设计开发模式。2.5本章小结 本章按照软件体系结构从简单到复杂的顺序,首先简单介绍了传统的GS两层体系结构,针对于GS两层体系结构所暴露出来的缺陷,对比介绍了更加实用的sls三层体系结构。12EE平台的迅速发展,基于J2EE平台的多层体系结构由于具备成熟的组件及其容器技术,迅速发展起来,逐渐成为开发Web应用系统的首选体系结构。这也是本章重点介绍的部分。本章的最后,结合基于J2EE的多层体系结构的优点,给出了电子政务系统开发采用此种多层体系结构的原因。第三章应用Struts实现MVC模式3.1软件设计模式概述 确立了系统的体系结构,了解到系统的关键部分已经集中到服务器端的各个层次的设计与实现,就需要一定的规范来帮助系统设计和开发人员对服务器端进行合理的设计与开发,这就涉及到采用何种设计模式的问题。设计模式的概念最初来源于城市建筑模式,但也同样适用于面向对象的软件开发中。在面向对象的软件开发中,设计模式就是特定环境中标准设计问题的重复性解决方案门。设计模式可以帮助开发人员在特定的环境里整理系统设计与开发过程中所面临的问题以及欲采取的解决方案,为系统开发抽象出一种模型,并可以复用。每一个模式描述了一个不断重复发生的问题,以及该问题解决方案的核心,并可以一次一次的使用该方案而不需要重复开发。每个模式是由三部分组成的一个原则,这个原则描述特定环境、问题和解决方案之间的关系8】 设计模式的基本思想就是,公共的“习惯用法”在软件设计中被不断重复发现,因此这些模式应该被有意识的归纳整理,并用于类似的问题的解决上,一般而言,设计模式具有四个基本要素【9】. 1.模式名称(Pattern Name ) 一个助记名,用一两个词来描述模式的问题、解决方案和效果。命名一种新的模式就会增加一个新的设计词汇。设计模式允许开发人员在较高的抽象层次上进行设计。基于一个统一的模式词汇表,开发人员之间就可以在讨论模式并在编写文档时使用。模式名称可以帮助开发人员思考,便于交流设计思想和设计结果,找到恰当的设计模式名称也是设计模式编写工作的难点之一。 2,问题(Problem ) 描述应该在何时使用设计模式。它解释设计问题存在的前因后果,它可能描述特定的设计问题,也可能描述导致不灵活设计的类或者对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。 3.解决方案(Solurion ) 描述设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因为模式就像一个模版,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。 4.效果(Consequences) 描述模式应用的效果及使用模式应权衡的问题。尽管描述设计决策时,并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有重要的意义。软件效果大多关注对时间和空间的衡量,它们也表达了语言和实现问题。因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响,显式的列出这些效果对理解和评价这些模式很有帮助。 设计模式都是从实践经验中抽象而来,是被“发现”,而不是“写作分出来E1el。设计模式不单描述对象,而且描述对象之间的通信方式,并可以重用,使得更加简单方便的复用成功的体系结构,也使新系统的开发者更加容易理解设计思路,这也是设计模式得到市场和开发人员认可的重要原因。3.2 J2EE Web设计模式 如上所述,J2EE平台为B/S系统开发提供了各种成熟的组件及其容器技术,逐渐成为开发Web应用程序的主流。在应用J2EE平台开发Web应用程序时经常提到设计模式Model 1和Model 2,下文将对这两种具体的设计模式进行简单的介绍。3.2.1 Web设计模式Model 1 J2EE平台向程序开发人员提供了JSP组件。在ISP发展早期,由于其便于掌握而且能够便捷的进行Web应用程序的开发,很快成为基于】2EE的Web应用程序的主要技术。在JSP页面中可以很容易的同时实现内容的显示,业务逻辑的处理以及流程控制,从而快速的完成应用开发。因此在早期的BIS应用程序服务器端模块几乎全部由JSP文件组成”i1,这种以JSP文件为中心的设计模式就叫Model 1.设计模式Model 1的结构图如图3-1所示。图3-1 Model 1结构图 Model I的基础是JSP文件.首先JSP文件接收到浏览器的Request请求,从I-ITTP的请求中提取参数,调用相应的业务逻辑处理HTTP会话,其中相应的业务逻辑处理单元或者数据库访问操作等也是JSP文件,也可能会借助一定的JavaBean类来处理一部分比较复杂的业务逻辑,但是大量的业务逻辑仍然在JSP文件中处理。此外,JSP文件或者JavaBean类都可以直接对数据库进行操作。最后生成HTTP文档。一系列这样的JSP文件形成一个完整的Model 1应用。 在Model I中,JSP页面也可以独自响应请求并将处理结果返回客户。这个模型简单易用,能够可以很好的满足小型应用的需要。但是从工程化的角度考虑,它也有一些不足之处: (1)应用的实现一般是基于过程的,一组JSP页面实现一个业务流程,如果要进行改动,必须在多个地方进行修改。这样非常不利于应用扩展和更新。 CZ)由于应用不是建立在模块上的,业务逻辑和表示逻辑混合在JSP页面中没有进行抽象和分离。所以非常不利于应用扩展和改动。大量使用Model 1,常常会导致页面被嵌入大量的Java代码。特别是当需要处理的业务逻辑比较复杂时,情况会变得非常严重。对于Java程序员来说,这不算大的问题,但如果开发者是前端界面设计人员,则代码的开发和维护将出现困难。在任何项目中,这样的模式总会导致定义不清的响应和项目管理的困难,因此不能满足大型应用的要求。 为了解决Model 1紧祸合、复用性差和维护成本高的问题yz,在开发大型系统中必须采用另外一种设计模式,这就是Model 2v3.2.2 Web设计模式Model 2 Model 2表示的是基于MVC模式的框架(如图3-2所示13b。Model”代表应用的业务逻辑。 View”代表应用的表示面(由JSP页面产生).Controller”是提供应用的处理过程控制,负责接受客户端web浏览器发送来的所有请求,并依据处理意见的不同结果,转发到对应的JSP页面实现在浏览器客户端的显示。通过这种设计模型把应用逻辑、处理过程和显示逻辑分成不同的组件实现,这些组件可以进行交互和重用,从而弥补了Mode11的不足。Model 2具有组件化的优点从而更易于实现对大规模系统的开发和管理,但是开发这样的系统要比简单的JSP开发复杂的多,它需要更多的时间学习和掌握。这就要求开发人员必须以基于组件的方式思考和设计应用系统的结构。原来通过建立一组JSP页面就能实现的应用现在需要对功能模块重新划分,需要变成多个步骤地设计和实现过程。其次的页面和组件必须在这种框架下实现,所以相应的增加了附加开发的工作。图3-2 Model 2结构图 由结构图可以看出,该设计模式的优势是很明显的。首先,它将计算和显示清楚地分开了,在JSP页面上没有出现处理过程,在业务逻辑或商业逻辑中没有数据格式。这种分离的另一个好处是程序员可以专注于后台逻辑单元代码的开发,HTML编写者可以专注于用户界面JSP的开发。其次控制器负责控制转向。在页面和逻辑中不会出现任何决策,这就提高了一个应用程序的性能和可扩展性,因为请求可以被导向架构的不同的组件,甚至是不同的服务器。 Model 2具体实现了MVC设计模式的大体思想。MVC模式在交互式系统开发中具有强大的优势,因此被开发人员逐步引入J2EE体系之中,成为J2EE进行交互式应用开发时,特别是Web应用开发时的一个非常重要的设计模式。下面就对MVC设计模式进行详细介绍。rn基本设计模式 MVC (Model-View-Controller)设计模式,即模型一试图一控制器模式,源传统的面向对象语言smallTalk-80,早期它主要用于设计用户界面,是一个经典泊设计模式114。由于使用该模式设计的界面具有多窗口、交互式等特点,在20世燕80年代初期被许多系统采纳,如Macintosh和Windows。随着软件设计模式的出现和完善,以及面向对象技术的成熟,MVC设计模式逐渐成为一种较完善的面卜对象设计模式,它所应用的范围也不再局限于界面设计。MVC设计模式是设计弓互式应用时广泛采用的一种设计模式,也是J2EE平台推荐在开发Web应用时使的设计模式。Sun公司推出的J2EE平台是一个面向对象的、完整的大型应用开蛋平台,MVC模式可以有效的提高分布式应用系统中组件的重用能力和事务控制白灵活性,分析系统的用户界面、业务逻辑以及业务流程控制。在互联网快速发展今天,MVC模式己被广泛应用在各企、事业 ERP、电子商务和电子政务等应用a统的开发中【15】 MVC模式的基本思想是将应用数据和业务逻辑、数据的表示以及数据的交互相分离,即分离为不同的实体,主要三个部分:模型(Model )、视图C View)和控制器(Controller)。下面将对这三个组成部分进行详细介绍,图3一显示了MVC模式三个主要组成部分之间的流程结构【16】: 图3-3 MVC设计模式结构图 MVC模式的处理过程为:首先控制器接收用户的请求,并决定调用模型进行处理:然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户【17】 视图(View):表示模型的状态,是应用系统的外观。对应电子政务、电子商务等Web应用中的用户界面层,视图是应用程序中用户界面相关的部分,向用户提供友好的交互的界面。视图元素通过浏览器展示给用户,这些视图元素可以是HTML,也可以为XML或者柳plet。在MVC模式下视图不应当处理数据,视图主要工作仅限于对视图上数据的采集和处理以及接受用户的请求,然后将用户的请求提交给控制器来处理以及向用户显示所获得的返回信息,当模型层返回数据发生变化时,视图也要自动更新,以便维持系统数据的一致性【18】 模型(Model):业务逻辑层,处理业务逻辑和数据访问,业务流程和业务规则都属于模型部分。模型接受视图的请求数据,然后将处理的结果返回给视图,是用来实现具体功能的模块,是应用程序的主体部分。模型表包含了应用程序的核心,它封装了应用程序的数据结构和事务逻辑,集中体现了应用程序的状态,但它并不了解视图和控制器的信息。一个模型可以为多个视图提供数据,多个视图的不同显示通过Control层的控制调度实现19.此外,所有属于系统持久化状态的数据都应该保存于模型对象中。一个模型的接口提供了访问和更新模型状态以及执行封装在模型中的复杂进程的方法。当模型发生变化时模型就会通过控制器通报视图。 控制器(Controller):流程控制层,定义了系统的行为,所实现的行为包括业务处理和修改模型状态。控制器是联系模型和视图之间的纽带,控制模型与视图之间的交互过程。一方面控制器接收来自系统视图层的用户参数信息,并将其组装转换为系统模型层所能够解释的数据或者事务对象,同时控制器也将识别用户的动作,将其解释为对Model层的方法调用。另一方面,控制器会将Mode!层的逻辑处理结果,调用适当的View层组件向用户显示反馈信息。在MVC模式中,控制器是一个中介者的身份,以用户的请求为线,将模型和视图连接在一起,它不作任何数据处理。构建基于MVC的模型框架的核心就是设计有效的控制器。 在MVC模式中,存在三个十分重要的关系:View和Model之间的关系、Controller和Model之间的关系以及Conoller和View之间的关系。视图和模型之间有如下关系:当模型中的数据状态发生了变化,模型会通知视图数据有更新,视图则重新请求数据,正确显示模型数据;每一个视图在显示给用户时,都要求去查询模型或者访问模型中封装的方法和数据,一个模型可以对应多个视图,同时,也可以为一个模型创建新的视图而无需修改模型。而控制器和模型之间的关系相对比较简单,即控制器只负责向业务处理模型转交用户的请求。控制器和视图之间的关系为,视图可以向控制器提交用户的请求,而控制器可以选择显示的视图,也可以决定视图应该显示什么,同时也能够决定是否接受视图提交的用户请求。 在Web系统开发中,例如电子政务系统开发,采用MVC模式,能够将应用逻辑、处理过程和显示逻辑分成不同的组件来实现。通过三者之间的分离达到层次-间的松散祸合,以实现代码重用和易于修改,提高系统得灵活性、重用性和可维护性,适应了日益复杂的Web应用系统的设计要求12ozi1e3.2.4 MVC核心组成模式 GoF在他们的著作中归纳总结了23个经典的设计模式,每一个设计模式都给出了完美的解决方案。相对而言,MVC是一个较高层次的模式,它是由几个更基本的设计模式组合而成。与MVC密切相关的主要有三个模式:观察者模式 Observer)、策略模式(Strategy)和组合模式(Composite )。 观察者模式(Observer)定义了对象间一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。某一个数据可能有多种显示的方式,并且可能同时以这几种方式显示,一旦这个数据发生了更改,它的各种显示方式应该清楚这一状况并做出相应的调整。观察者模式描述的这种关系也被称为发布一订阅( ubGsh-subscribe)模式,它的两个重要对象分别称为目标和观察者。一个目标可以有任意多个依赖于它的观察者,一旦目标的状态发生变化,所有的观察者都将得到通知,每一个观察者再次查询目标的状态使之与目标保持同步。 MVC的Model和View之间的关系就如同目标和观察者之间的关系。Model-View的关系实际上被描述为Observer的设计模式。观察者模式应用非常广泛,尤其是在管理信息系统领域。例如,在一个电子政务应用系统中,普通用户和系统管理员查看信息的界面就不同,虽然都是显示的政务信息,但由于系统管理员拥有的权限更大,可查看的内容也更多。在这样的场合,使用Observer模式可以降低系统信息和显示页面之间的祸合度,把界面表示和数据分离,这样的优点就是,增加一个新的查看页面时,无需修改原系统。 策略模式(Strategy)定义了一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可独立于使用它的客户而变化。MVC可以在不改变View的情况下改变View对用户输入的响应方式,这对于经常需要更改响应逻辑的系统来说是非常重要的。MVC把响应逻辑封装在Controller中,对用户输入的响应不是视图来实现的,而是由一个抽象的Controller类的不同子类各自独立地实现。更换不同的ontroller实例就可以改变View对用户输入的响应策略。MVC的View-Controller之间的关系就被描述为Strategy模式。使用策略模式加强了系统的灵活性和可维护性,虽然应用策略模式增加了维护对象的数目(一个抽象类的子类数目),但相对于它的优点,付出这些代价是值得的。 组合模式(Composite)将对象组合成树形结构以表示“部分整体”的层次结构,它使得用户对单个对象和组合对象的使用具有一致性。组合模式在MVC中的一个重要应用就是View可以组合嵌套。用户可以使用简单的视图组件组合创建复杂的视图组件。它的核心思想就是对容器(组合的对象)和内容一视同仁。应用组合模式的典型例子就是计算机中的文件夹.在一个文件夹下可以有文件和其它文件夹,在子文件夹中还可以有其它文件或子文件夹。虽然文件夹和文件实际上是两种截然不同的东西,但两者都可以放在文件夹中.在一个文件夹中,文件和文件夹被视为同一种类。3.2.5电子政务系统采用垂于2EE的MVC模式的理由 通过上面的分析可以得知,MVC已经得到广泛的市场认可,特别是在J2EE平台推出后,MVC设计模式逐渐成为开发BIS系统的主要模式,正是由于MVC在设计开发交互式应用的优秀特点,逐渐成为J2EE架构下推荐使用的开发Web应用程序的方法11.下面将结合电子政务系统的需求特点,介绍MVC设计模式在电子政务系统开发中的优势: 1)设计清晰:MVC模式集中采用了分层的软件设计思想,将显示层与数据逻辑处理层相互分离,同时将程序流程控制作为单独的一层分离出来,各层次之间相互独立,可以使得不同程序开发人员可以关注于不同的层次模块,而没有必要同时考虑层次模块和整体架构。用模型中的方法来操作他的数据和状态,很容易理解如何来控制模型的行为。当设计一个应用时,这种方式将使整个程序更加容易执行和维护Il。电子政务系统本身是一个庞大的系统,在架构设计开发过程中必须将整体架构不断细分,并由不同的开发人员参与开发不同的功能模块,这就需要尽可能的降低各个模块的祸合度,尽可能使不同开发人员关注于自己负责的模块。MVC模式正是能够满足这种设计思想。 (2)模块相互独立,藕合度低,增加模块有效性。MVC模式很好的解决了软件工程中如何使软件系统各模块之间最大限度的降低其复杂的祸合关系,以及系统显示逻辑和业务逻辑之间的矛盾(即用户界面的多变性和业务逻辑的相对不变性),尽可能的提高了系统的可维护性和可扩展性。模型、视图、控制器三者的相互独立,使得我们改变其中一个而不会影响其他两个(或者影响甚小),据此可以构造良好的松藕合构件。电子政务系统在开发过程中,需求可能不断变化,这就要求系统模块间尽可能相互独立并具有较强的有效性,避免重复开发。在MVC设计模式中,模型、试图、控制器任何组件甚至整个模块都可以换进换出,任何一者的改变都不会影响到其他方面,不同的组件开发能够同时进行。 (3)易于结合J2EE,合理使用其组件及容器技术。J2EE本身向开发人员提供了成熟的组件及容器,可以方便的解决电子政务系统开发中所遇到的各种问题。MVC模式与J2EE平台架构同样采用分层的思想,可以使用J2EE所提供的不同组件担任MVC不同层次中的各个角色,如利用JSP技术及应用服务器容易担任View层角色,使用Servlet技术担任控制器角色,使用JavaBean或者EJB担任逻辑模型层角色等等,并且这些组件和解决方案都已成熟,可以加快系统开发进度。 ()可以提供强大的用户界面。MVC模式中所有的模型和视图都是由控制器连接和调用的,控制器的这种桥梁枢纽作用使得它可以根据用户不同阶段的不同需求选择不同的模型进行处理,并选择不同的视图将处理结果显示给用户,极大提高了系统的灵活性。一个模型可以拥有多个视图或者说多个视图可以共享一个模型。多个视图能够提供多种数据显示方式,以满足不同用户的需求。变化传播机制可以确保所有相关的视图和其模型达到同步,当然这一切都在于控制器的协调。用户界面与模型方法调用组合起来。发送给模型的“标准”命令,都是由单个用户行为触发的。这就使得程序可以使用更加清晰友好的界面发布给用户。电子政务系统中包括不同的服务功能,不同服务所面向的用户群体也各不相同.因此一个完善的电子政务系统应该为不同的用户全体提供不同服务的同时,也应该提供不同的用户使用界面,此外J2EE平台所提供的JSP控件技术,也为开发友好用户界面提供强大的支持。 (5)模块可移植性强,易于维护。模型的相对独立性使得它很容易被移植到新的平台工作,很容易被改变业务规则而不影响(或者说这种影响甚小)视图和控制器。此外在MVC模式中视图与模型没有必要的联系,都是通过控制器发生关系。如果要增加新类型的用户界面,只需要改动相应的视图和控制器即可,而模型则无须发生改动。基于32EE平台的改进MVC的研究及其应用,并可以移植到其他具有类似电子政务系统,仅仅需要对控制器进行新的修改。MVC模式提供了一种隔离功能层的机制,降低了层与层之间的祸合,控制器和视图可以随着模型的扩展而进行相应的扩展,只要保持一种公共的接口,控制器和视图的旧版本也可以使用。电子政务系统本身存在着功能不断变化的特点,这就需要尽可能的避免重复开发,降低系统运行维护成本。通过MVC模式以及J2EE平台的组件技术,能够很好的解决这个问题,降低开发及维护成本。 通过以上的论述可以看出,MVC模式和12EE平台能够成功的解决电子政务系统开发过程中所产生的各种问题,通过将应用逻辑、流程控制和显示逻辑的层次分离达到松散祸合,以实现系统模块的独立性,增强代码重用,结合J2EE组件技术提供强大友好的用户界面,降低系统祸合度,增强可维护性,最大限度地避免重复开发,适应了日益复杂的Web应用程序的设计要求,lfl,同时也满足了电子政务系统的设计要求。3.3用Struts实现MVC设计模式3.3.E实现MVC设计模式的框架 在软件设计领域,框架(Framework)是设计模式的特例化。相对于框架,设计模式更加抽象,而且描述的是更小的体系元素.MvC设计模式成功地解决了大型应用系统开发过程中诸多关键问题,因此MVC设计模式得到了市场的认可。因此基于MVC模式应
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!