1、无线网络技术课程(论文)题 目: 基于java的mvc模型框架的研究 学生姓名: 董芳立、丁允奇 学 号: 130101072、130101071 所在系院: 计算机工程学院 专业班级: 13级计算机科学与技术 指导教师姓名: 裴培 职称/学位: 助教/硕士 完成时间: 2016 年 6 月计算机工程学院 制摘要:本文着重进行了以下的研究和设计工作:结合企业系统的结构特点,详细分析了J2EE的多层体系结构模型和核心技术,并总结出基于J2EE平台进行开发和部署企业应用系统的方案;对传统的网站开发技术进行了比较分析,采用框架的恩想,设计面向整个Web开发的系统框架模型;对struts框架,一种实现
2、了MVC模型思想的框架,进行了整体结构分析;在参照struts基础上,根据实际应用的要求,并结合长期进行网站开发的经验,最终设计出Webpump的整体框架结构;关键字:JAVA,MVC模型,Web开发,框架,WEBPUMP1 J2EE企业系统体系结构11企业系统概述企业这个概念在我们的生活中并不陌生,一般来说,它是打算完成一定目标的组织,这个组织可以是小型的、中性的或大型的商业公司、非盈利性研究组织。另外,企业系统也包括那些分布式的、可扩缩的、多用户的商业系统,这些系统本质上都是要通过信息技术来提供公司或组织的生产效率。随着网络技术的发展,企业的信息化显得越来越迫切。那么如何为企业构造一个性能
3、优越的系统则是我们软件研究、设计,和开发人员所要解决的问题。当我们为企业开发一个项目,那么,首先需要了解的便是这个企业的体系结构及相关信息,即它是由那些成份组成的。其中,有形资源和财产是由企业使用的用于完成其目标的一个组成部份,有我们熟悉的计算设备、生产设备、产品供应及企业帐户等,它们对企业的运作至关重要;人,包括消费者、员工以及合作伙伴,是企业的积极因素。12 J2EE标准中间件体系结构及开发N层应用在开发传统的企业信息系统时,我们大多采用两层结构(如图22)来实现,即前台的客户端和后台的数据库服务器。其中,服务器提供的唯一服务就是数据库服务。在这种情况下,客户端则主要负责数据的访问、执行应
4、用商业逻辑、并将结果转换为一个格式以便显示,为用户显示内部的接口,以及响应用户的输入。这种客户IIi务器的体系在开始的时候容易配置,不过难于升级或者扩展,而且通常基于私有的协议一典型的是私有的数据库协议。并且,其中的商业模块和表现逻辑模块的重新使用也很难。但随着业务系统变得复杂,这种结构的局限性日益变得明显,它限制了企业更快更灵活的发展,同时,也使自身也很难维护。在我们所研究的Web开发领域中,最重要的可能就是扩展,但两层的应用不便于升级扩展。为了解决这一问题,就需要将企业信息系统,从原来的两层“客户端一服务器”应用模型转向更灵活的三层和多层应用模型,即将业务逻辑放到系统服务和用户接口之间,从
5、而使业务逻辑和用户界面的表示层分开。通过使用这种设计,将明显的简化开发、调试和维护企业应用,同时,它也使得开发者能够将精力集中于业务逻辑程序的具体编制,以更好的提供用户交互。13 J2EE模型和相关技术J2EE作为一个平台和编程模型,用于构造JAvA企业系统。这样的系统可以使用不同生产商的底层企业系统框架实现。为了避免传统开发方法的弊端,从而减少费用,快速设计和开发企业级的应用程序,J2EE技术提供了一个基于组件的方法来设计、开发、装配和部署企业级应用程序。J2EE平台提供了一个多层结构的分布式的应用程序模型,这个模型具有重用组件的能力、基于扩展标记语言(XML)的数据交换、统一的安全模式和灵
6、活的事务控制。使用这种技术,我们不仅可以比以前更快地发表对市场的新的解决方案,而且我们所做的独立于平台的基于组件的J2EE解决方案不再受任何提供商的产品和应用程序编程界面(APIS)的限制。这样,提供商和买主都可以自己选择最合适于它们的商业应用和所需技术的产品和组件。2 开发大型企业网站方法的分析与比较和Webpump框架的提出随着Web技术的发展和电子商务时代的到来,人们不再满足于建立各种静态的发布信息的网站,更多的时候需要能与用户进行交互,并能提供后台数据库的管理和控制等服务的动态网站;当我们能够满足这些要求,将一个个生动活泼的画面展现在用户面前时,作为服务的提供者一企业,却又面临着另一个
7、新的挑战:如何使企业信息的管理一方面紧跟社会经济发展的步伐,另一方面,又能保证企业系统具有可维护性、可扩展性、可靠性和安全性。21基于框架的开发思想软件构件化是软件工业发展的大势趋。工业化的软件复用已经从通用类库进化到了面向领域的应用框架。以后,新应用将主要建立在象软件构件和应用框架这类r构造块,之上:应用开发的未来就在于能够提供开放体系结构,从恧方便构件的选择、组装和集成。框架已成为软件生产中最有效的重用方式之一。211框架的定义架构是一个软件系统中的核心元素,是系统中最难改变的部分,也是构建软件系统中其他部分所依赖的基础,因此系统架构的优劣会从根本上决定基于这个架构所构建的软件系统的质量。
8、系统架构的构建是软件开发过程中的一项重要工作,同时也是一项很困难的工作,对于很有经验的系统架构师也是如此。但是,模式以及模式语言为构建系统架构提出一条的解决途径。架构是系统中最本质的部分。系统的各个组成部分正是通过架构所定义的方式协同工作共同完成系统的功能,从而表现出一个完整的系统。由于系统的本质是不容易变化的,所以如果一个架构构建的正确,也就是说能够真实酊反映出系统的本质,那么就可以使基于该架构构建的系统具有比较长的生命力,否则该系统的质量就会逐渐的降级,直至崩溃。如果以建筑领域来作类比可能会比较好理解一些,如果一个建筑物构建在一个在结构上有问题的混凝土骨架上,那么该建筑的寿命可想而知是不会
9、长久的。框架(Framework)是部分或整个系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法:另外,框架也可以被理解为可被应用开发者定制的应用骨架。前者是从应用方面,而后者是从目的方面给出的定义。一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。因此构件库的大规模重用也需要框薪应用框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系绣商开发周期,提高开发质量。与传统的基于类库的面向对象重用技术比较,应用框架更注重于
10、面向专业领域的软件重用。应用框架具有领域相关性,构件根据框架进行复合而生成可运行的系统。框架的粒度越大,其中包含的领域知识就更加完整。212设计模式设计模式是一组类、接口与其关系的集合,提供通用问题类型的一般设计方案。模式本身并不仅仅简单是一些关系,它还具有深刻的内涵。它具有自身的意图、动机、适用性以及核心解决方案等众多的内容。一旦我们确定使用了一个模式,那么这个模式就为我们搭建了一个内容丰富的场景,这个场景可以非常有效黼导我们进一步的工作,启发我们发现新的对象。这样,基于模式构建的系统架构就变得抽象(模式本身就是一些抽象的关系)而不空泛并且具有很好的延伸性。模式也提供了一套公认非常有效的记录
11、方法,可以把自己经过反复验证的解决方案记录下来传授给其他人重用,即模式具有可传授性。这样,有经验的系统架构师就可以把自己的一些心得体会通过模式的方法记录下来,就可以克服经验无法有效传授的问题。其实很多模式本身就是针对系统架构提出的,比如我们主要讨论的MVC模型(Model、View、Controller),它是专门针对交互系统提出的,所以如果我们要构建一个交互系统,那么我们就可以直接应用MVC模式,然后在该模式所搭建的场景的启发下去发现Model、View以及Controller,在这个大的场景的指导下根据其它的需求(模式)构建一些小的场景对系统进行有效的分化。模式和系统架构有很大的相似性,都
12、是处理一些抽象概念间的关系,但是二者还是有很大的不同的,模式是领域无关的,它是解决一些抽象问题的,但是系统架构是针对我们要解决的实际问题的,是领域相关的。我们可以通过对问题领域的分析、分解,找到和我们要解决的问题匹配的模式,对该模式进行定制应用到我们的系统中来。把模式结合在一起构建起整个系统架构来。面向模式构建的系统架构在需求发生变化时还会使我们处于一个非常有利的位置,这是因为模式是针对一个反复出现的问题的优秀的解决方案,它的设计方法就是发现变化、封装变化。它本身已经充分考虑了变化的情况。模式采用了一种不同的对待变化的方法,它不是预先考虑会如何变化,而是考虑哪里可能会变化,然后隔离,所以当变化
13、发生时我们的设计就处于个有利的位置上。213框架设计与应用设计框架的设计和应用的设计,两者的侧重点不同。设计应用系统时,要求对专用领域的重要概念有深入的了解。这些概念通过建模演变成类,并作为实现整个应用的构建块。而设计框架时,重点在识别出必须具备灵活性的地方,也就是“热点”,这也是框架的关键所在。构件库系统基于框架而不是具体的类,使得构件库系统的使用更具灵活性。但在框架基础上构建具体的应用时,类的使用和开发总是随之而来,在框架上生成应用可以通过创建子类、配置各构件对象、调整实例等来获得。22 STRUTS,实现MVC模型的框架struts最早是作为Apache Jakarta项目的组成部分问世
14、运做的。struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了帮助你减少在运用MVC设计模型来开发Web应用的时问。它提供了网站建设的基础框架。项目的创立者希望通过对该项目的研究,改进和提高JAVASERVER PAGES(JSP):、SERVLET、标签库以及面向对象的技术水准。我们就是在对J2EE设计蓝本的充分理解以及对struts设计开发结构的整体研究的基础上来进行的。221 MVC模型MVC(ModelViewController)的概念应用的非常广泛,它即可以是建立图形界面的主体结构(Architecture),也可以是软体的机制(Mechanism、,又可以称
15、为应用架构(Framework),或样式(Pattern),甚至思维模式等。MVC是一种建立在面向对象设计思想之上的编程方法和程序框架。它的思想即可以用于在面向对象的程序框架中实现面向行为的可视化界面设计,也可以结合目前应用于开发网络应用程序的8s结构,从而设计出专业化的框架模型进行网站的设计、开发。本文的工作就是探讨如何在网站的开发过程中合理饷运用MVC模型的设计思想,达到优化程序设计流程,提高网站运转的质量和效率。MVC最早出现在Smalltalk中,它通过创建三个层次来减少可视化界面引入面向对象设计而带来的问题。其中的三个层次,也就是我们所讲的MVC的主要组成部分222体系结构strut
16、s由一组相互协作的类(组件)、SERLVET以及JSP TAG LIB组成。基于struts构架的web应用程序基本上符合JSP MODEL2的设计标准,可以说是hVC设计模式的一种变化类型。struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和OBJECT RELATION BRIDGE。在视图层,struts能够与JSPVelocitvTemplates,XSL等等这些表示层组件想结合。223针对具体Web开发,struts框架的不足之处st
17、ruts框架确实为我们进行网站的开发提供了一种新的思路,并在一定程度上实现了框架。但它作为一种研究性的项目,针对实际的应用开发,它仍有许多方面没有进行充分的设计。项目的开发需要的不是实现的可能性,而是要能够为整个开发过程(包括每一个细节)提供一套完备的解决方案。在我们的实际开发中,我们需要底层能够提供良好的数据库访问管理手段,对于开发人员不需要去处理诸如数据库的连接配置、连接池的管理、意外的捕获等,只要了解的底层的接口,便能在程序中进行数据库的相关处理;对项目的高度抽象方法,尽管我们用映射的概念可以对项目进行最大程度的描述,但建立欧射本身是一件复杂的工作,如何能提供一种方便的途径,以快速、方便
18、的建立项目映射也是减轻项目开发的一项任务;同样,针对Bs结构的Web开发,有效的保存页面之间的数据对于实现复杂的业务逻辑有很大的帮助作用;如何跟踪程序的运行、记录执行的状态,以及正确触b理产生的错误等等都是一个健壮的框架所必须的功能。我们所设计的Webpump正是在这样的前提下进行开发设计的。23 WEBPUMP体系结构Webpump是在J2EE平台上成功利用JSP、SERVLET、JDBC、JAVABEAN、XML等多种技术,综合利用框架、设计模式等思想理论,面向Web进行应用开发的底层框架。运用它,可以实现最大限度的软件复用,并增强软件的健壮与灵活性,为项目的扩展提供了可能。下面,我们首先
19、根据Web通信的基本原理来逐步晒它的体系机构进行详细的分析。231基于Web的HTTP通信原理超文本传输协议(HTTP)位于TCPIP之上,用于在Web浏览器和Web服务器之间进行通信。我们在前面介绍的CGI程序就是一个Web服务器提供的传统工具,它为HTTP请求和响应提供了一个编程接口。SERVLET为在一个Web服务器进程内与HTTP请求和响应进行交互提供了一种简单的、更有效的基于JAVA的机制。HTTP是一个无连接和无状态的协议,HTTP客户打开一个到HTTP服务器的连接,发出一个HTTP请求数据流,接收从服务器返回的HTTP响应数据流,最后关闭连接232Webpump工具的开发Webp
20、ump是采用J2EE技术,构筑Website ApplicationFramework的快速开发工具。开发人员通过简单的可视化操作,定义系统框架和业务模型,通过代码生成器自动生成系统的Framework和用户制定的程序模型代码。WebPump提供的多种功能的C1ass Lib,以及HTML和业务逻辑完全分离的处理机制,将缩短系统开发周期,提高开发的品质和代码的复用,减少开发测试维护费用。233针对具体Web开发,需要解决的问题针对具体的网站开发我们需要解决的问题有:频繁的Web更新及再构建;多平台对应:降低CGI编程的低性能;减少设计、开发的复杂性;快速构筑Website;方便用户定制:加强了
21、对业务模块的处理;多国语的支持。3 总结在本文中,对各种传统的网站开发技术进行了深入的研究,通过比较,找出约束网站开发技术发展的瓶颈。通过对J2EE的多层体系结构的学习和struts模型框架的研究,结合公司多年进行项目开发的实际经验,充分运用MVC模型的设计思想,并利用各种不同的组件技术,我们提出了Webpump框架的设计方案,并对其中涉及的基本原理和概念进行了分析与描述。下面,我们将通过具体项目的运用,来了解Webpump的工作原理。参考文献【1】 Erich Gamma等,设计模式M,机械工业出版社2000【2】 Bruce Eckel等,Java编程思想,机械工业出版社1999【3】 美
22、OMG著CORBA系统结构、原理与规范电子工业出版社,2000【4】 美Michi HenningStevevinoski著,徐金梧译基于c+的CORBA高级编程清华大学出版社,2000【5】 卢孟余等web对象模型及在多层结构Web开发中的应用计算机工程,1999(12)【6】 李方敏等在协同环境下用Java访问分布式数据库,计算机应用,1998(2)【7】 java编程思想京京工作室译北京:机械工业出版杜1999【8】 ryan FlamingPractical Algorithms in cH JohnWiley&Sons,Inc1995【9】 Tommi mikkonenFormalizing Design PatternIn:Bob 201International Conference 0nSoftwareEngineering,Wemer:IEEE CompiterSociety,19981 15125注释:丁允奇:确立人工智能结果论文选题。董芳立:确立题目,明确写作动机,研究现状。指导老师评语(学习态度、积极性与主动性、收获大小和解决问题的能力等)成绩: 指导老师评语(学习态度、积极性与主动性、收获大小和解决问题的能力等)指导老师签名 年 月 日