(计算机应用技术专业论文)基于组合框架ssha的多媒体信息系统的应用研究.pdf_第1页
(计算机应用技术专业论文)基于组合框架ssha的多媒体信息系统的应用研究.pdf_第2页
(计算机应用技术专业论文)基于组合框架ssha的多媒体信息系统的应用研究.pdf_第3页
(计算机应用技术专业论文)基于组合框架ssha的多媒体信息系统的应用研究.pdf_第4页
(计算机应用技术专业论文)基于组合框架ssha的多媒体信息系统的应用研究.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

(计算机应用技术专业论文)基于组合框架ssha的多媒体信息系统的应用研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

太原理工大学硕士研究生学位论文 i 基于组合框架 ssha 的多媒体信息系统的应用研究 摘 要 近年来,随着 internet 技术的迅速发展和 web 信息系统的广泛应用, 基于 b/s 结构的多层 web 应用的体系结构正在不断的发展与完善,并逐渐 发展成为企业级 web 应用的主流开发模式。但是,随着 web 应用系统的需 求越来越复杂,开发周期越来越紧迫,使用传统的方法开发 web 应用程序 普遍存在着效率低、重用性和可维护性差、扩展性不高以及用户体验不好 等不足。 针对以上问题,本文对 mvc 模式进行了深入的分析研究,总结了该 模式的模型、视图、控制器三个组件在开发 web 应用中的作用及使用该模 式存在的优势与不足。 本文对基于传统 javaee 技术的多层体系结构进行了 分析,深入研究了 ajax 技术、开源框架 struts2.0、spring 和 hibernate,为 了更好地发挥不同技术的自身优势,在 web 应用分层理论的基础上,设计 了 一 种 高 效 开 发web应 用 系 统 的 通 用 分 层 组 合 框 架ssha (struts2.0+spring+hibernate+ajax) 。ssha 分层组合框架一共分五层,包 括 web 层、业务逻辑层、数据对象层(dao) 、数据持久层和数据库层。 该组合框架的分层结构能够很好地对系统的各层进行解耦,某一层上的变 化不会影响到其它层,系统能够并行的开发,提高了 web 应用程序的开发 效率以及代码的重用性和扩展性,增强了系统的可维护性。 本文以一个多媒体信息系统作为组合框架 ssha 的应用实例,对多媒 体信息系统进行了需求分析和功能模块的设计及实现。客户端采用 ajax 引 擎,实现了系统 web 页面局部刷新,提高了用户体验。web 层使用开源框 架 struts2.0 的 mvc 设计模式,减轻了构建多层 web 应用的负担。spring 框架的 ioc 容器负责管理业务逻辑层和数据访问对象层,同时作为连接 struts 和 hibernate 的纽带。通过 hibernate 框架实现数据对象的持久化,提 高了数据库访问的灵活性。 多媒体信息系统的开发结果表明,在 ssha 组合框架下开发出的 web 应用系统具有良好的健壮性、可维护性、可扩展性、可移植性、可重用性 太原理工大学硕士研究生学位论文 ii 以及更好的用户体验,可以做为一个通用的 web 应用开发平台。 关键词:多媒体,框架,web 应用,分层结构,ssha 太原理工大学硕士研究生学位论文 iii the application research of the multimedia information system based on the combinated framework of ssha abstract in recent years, with the development of internet technology and the extensive application of the web information system, the structure of multi-layer web application development based on b/s pattern is developing gradually, being perfect, and becoming the mainstream of the enterprise web application. however, as the demands are becoming more and more complicated and the cycle of development are hoped shorter, we are facing many disadvantages which includes poor software reusability, fussy maintenance, weak expansibility and poor user experience in the web application development using the traditional method. to solve these questions, this thesis which deeply analyzed and studied the mvc pattern concluded functions of model, view and controller of the pattern in developing web application. and it summarized the advantages and disadvantages of the pattern. this thesis analyzed the multilayer framework based on traditional javaee techonology, moreover, researched the ajax technology, struts2.0, spring and hibernate and the theory of application layered of web.and in order to make use of the advantage of every technology, this thesis designed an efficient common combinated framework ssha (struts2.0 + spring + hibernate + ajax), which is efficient in developing web application by analyzing the combinated framework ssha includes five layers: web layer, operation logical layer, data object layer, data permanence layer and database layer. the layered structure of the combinated framework can cut down the degree of combination of the system. in other words, the change of one layer cant affect another layer, and we can develop the system 太原理工大学硕士研究生学位论文 iv synchronously. thus, we can improve the developing efficiency, the code reusability and expansibility of web program and can improve the maintainability of the system. in the thesis, it designed and realized a multimedia information system as an application example of the combinated framework ssha by analyzing the demands and designing the modules. client using ajax engine can realize local refresh of the web page and improve user experience. web layer using struts2.0s mvc pattern lighten the burden of constructruing multilayer web application. ioc container manage operation logical layer and data object layer, and also work as a link between struts and hibernate. hibernate framework can make data object persistence, and improve the flexiblity of accessing database. the results of development of the multimedia information system showed that the web application system developed under combinated framework ssha has good robustness, maintainability, expansibility, transplanty, reusability, and good user experience,and can be used as a common platform in web application development. key words: multimedia, framework, web application, layered structure, ssha 声声 明明 本人郑重声明:所呈交的学位论文,是本人在指导教师的指导下,独立进行研究所 取得的成果。除文中已经注明引用的内容外,本论文不包含其他个人或集体己经发表或 撰写过的科研成果。对本文的研究做出重要贡献的个人和集体,均己在文中以明确方式 标明。本声明的法律责任由本人承担。 论文作者签名: 日期: 关于学位论文使用权的说明关于学位论文使用权的说明 本人完全了解太原理工大学有关保管、使用学位论文的规定,其中包括:学校有 权保管、并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩印或其 它子复制手段复制并保存学位论文;学校可允许学位论文被查阅或借阅;学校可以 学术交流为目的,复制赠送和交换学位论文;学校可以公布学位论文的全部或部分内 容(保密学位论文在解密后遵守此规定) 。 作者签名: 日期: 导师签名: 日期: 59. 第 1 章 绪 论 1.1 研究的目的和意义 随着 internet 和多媒体技术的快速发展,数字多媒体信息的数量和种类正在急剧增 多,从文本、数据、图形和符号到图像、音频和视频等信息资源都能包罗进去。电台、 电视台、出版社、博物馆等新闻机构和各类不同企事业单位的多媒体信息资源都在急剧 增长,如何方便、快捷、安全的管理浩如烟海的多媒体信息,需要借助现代计算机技术 解决这个问题12。internet 是在世界范围内运用最广泛,也是最有效的信息获取与发布 媒介,当代的企业越来越多的依赖各种不同的 web 应用程序来提高经营与管理效能。 在这种现状下,基于 web 的应用开发成为计算机应用研究的热点。 以 web 技术为核心的企业内部网或外部网正吸引着众多的企业。低成本、简单易 用的客户端浏览器能随时随地连接到企业的 web 站点上,不仅能获得自己所需的数据, 也能远程的工作。客户端操作界面的一致性和服务器端的开放连接方案,大大增强了企 业与外部的联系。 随着 web 应用系统的需求日益复杂多变,迫切需要一种技术方案,既能有效提高 web 应用程序的可重用性、可维护性和可扩展性,又能快速地构建 web 应用系统。因 此,构建一个通用的、性能优良的 web 应用开发平台(框架)就显得十分重要。 在平台的架构方面,框架技术是一种很好的思想。框架提供了一系列具有以下特征 的核心组件:首先,它们已经很好的应用在其它程序上;其次,它们随时可以在下一个 项目中使用;最后,它们可被开发组织的其它团队使用34。 1.2 国内外研究现状 在 it 业,javaee 技术经过多年的实践检验,是程序员和企业应用开发可以信赖的 技术,并且受到许多 it 业的大厂商的支持,具有良好的发展前景5。在国外企业级应 用程序开发市场上,javaee 已经成为一种主要的开发平台,而且有很多公司提供了实 现 javaee5.0规范的应用服务器, 如ibm 的websphere, bea的 weblogic。 在国内javaee 逐渐得到了越来越多的重视,正在越来越多地被应用到企业的应用系统中。中国已经开 发出了实现 javaee5.0 规范的应用服务器,全面支持最新的 javaee5.0 规范,如金碟公 司的 apusic6。 1 太原理工大学硕士研究生学位论文 2 struts 是实现了 mvc 设计模式的一个经典框架,最早于 2000 年 5 月作为 jakarta 项目的组成部分问世,jakarta 项目是由 apache 基金组织运作,项目的创立者希望改进 和提高 java server pages(jsp) 、servlet、标签库以及面向对象的技术水平。 struts1.0 是第一个发布的 mvc 框架,它由 craig mcclanahan 在 2001 年 7 月发布, 一经问世就受到了 java web 开发者的大力拥护,且成为以后几年 web 应用开发事实上 的标准。struts1.x 经过多年的发展,已经发展的相当成熟,现在国内对 struts 的应用和 研究正处于发展阶段,有不少人在研究它,也有很多人在使用它7。 struts2.0 是 struts1.x 的下一代产品, struts2.0 的目标很简单使 web 开发变得更 加容易,与 struts1.x 相比,struts2.0 吸收了优秀框架 webwork 的设计核心,所以更加 成熟、实用。struts2.0 用户开发多模块应用程序非常的方便,只需要在配置文件中进行 注册就可以了。此外,struts2.0 可以非常方便的与 ajax、spring、hibernate 等开源框架 进行集成,这样可以更好的提高用户体验,处理复杂的业务逻辑,以及解决用户的持久 层的数据存储问题8。 2002 年 wrox 出版社出版了expert one on javaee design and development ,作者 rod johnson。在书中,作者对传统的 javaee 架构提出深层次的思考和质疑,他提出 javaee 实用主义思想。2003 年,johnson 发布了 javaee 领域中一个全新的框架:spring framework。 spring 框架是实用主义 javaee 思想的进一步改造和扩充, 也是 expert one on javaee design and development书中思想的全面体现和完善,使其发展成为开放、 清晰、全面、高效的开源框架9。 spring 解决了许多在 javaee 开发中常见问题,为企业应用程序开发提供了一个轻 量级的解决方案。spring 使用 javabean 能完成以前只有 ejb 能做的事情。从简单性、 易测性和松耦合的角度而言,任何 java 应用都可以从 spring 中受益。它提供了管理业 务对象的一致方法并且鼓励对接口编程而不是对类编程的良好习惯。 spring 通过 ioc 依 赖注入、aop 应用、面向接口编程,来降低业务组件之间的耦合度,增强系统扩展性。 hibernate 作为一种开放源代码的对象关系映射框架(orm) ,实现了对 jdbc 的轻 量级对象封装,完全迎合了 web 应用程序开发潮流。hibernate 是一个彻底的 java 对象 映射工具,它将 java 中对象与对象的关系对应到关系型数据库中表与表之间的关系。 同时,它也提供关系型数据库中表与表之间的关系对应到 java 程序中对象与对象的关 系10。每一种持久化策略都有它特有的访问持久化对象属性的机制,例如 seriallzatinn 使用 reflection,cmp 使用 code、generation,而 hibernate 使用的 runtime reflection。 应用 hibernate 框架降低了 javaee 架构应用软件开发的难度和复杂度,提高 java 应用 太原理工大学硕士研究生学位论文 3 软件的开发效率,进而使 java 的企业级应用开发更加容易、灵活、强大。 ajax(asynchronous javascript and xml)结合了 html、xml 以及 javascript 等 编程技术,可以让开发人员构建基于 java 技术的 web 应用,实现 web 页面局部动态地 更新。在 web2.0 大潮中,ajax 已经成为人们谈论最多的技术术语。google 在 gmail、 googlemaps、googlesuggest 等应用中广泛采纳了 ajax 技术11。 在产业方面, 有不少软件公司已经在 eclipse、myeclipse 等开源开发工具上使用 struts、spring、hibernate 框架了。 1.3 本文的主要工作 本文的主要工作如下: (1)对基于传统 javaee 技术的多层体系结构进行了分析研究,并对 mvc 设计模 式进行了深入的研究,深刻理解了该模式的模型、视图、控制器三个组件在开发 web 应用中的作用,并总结了使用该模式存在的优势与不足。 (2)对基于 javaee 技术的开源框架 struts2.0、spring、hibernate 以及 ajax 技术进 行了深入的分析研究。 在对 web 应用分层理论研究的基础上, 本文设计了一个基于 ajax 技术结合 struts2.0+spring+hibernate 的分层组合框架 ssha。ssha 分层组合框架包含 五层,分别为 web 层、业务逻辑层、数据对象层(dao) 、数据持久层和数据库层,该 组合框架的分层结构能够很好的对系统的各个层进行解耦,提高了 web 系统开发的效 率。 (3)本文以多媒体信息系统作为组合框架 ssha 的应用实例,对多媒体信息系统 进行了需求分析和功能模块设计及实现。客户端采用 ajax 引擎,实现了系统 web 页面 局部刷新,提高了用户体验。web 层使用开源框架 struts2.0 的 mvc 设计模式,减轻了 构建多层 web 应用的负担。spring 框架的 ioc 容器负责管理业务逻辑层和数据访问对 象层,同时作为连接 struts 和 hibernate 的纽带。通过 hibernate 框架实现数据对象的持 久化,提高了数据库访问的灵活性。 (4)多媒体信息系统的研发结果表明,在 ssha 组合框架下开发出的 web 应用系 统具有良好的健壮性、 可维护性、 可扩展性、 可移植性、 可重用性以及更好的用户体验, 可以做为一个通用的 web 应用开发平台。 1.4 本文系统的特点 目前大部分已有的多媒体信息系统一般都是采用 c/s 架构的,也有使用 a 或 太原理工大学硕士研究生学位论文 4 者 php 等技术开发的, 采用这些技术的系统平台在开发效率、 可维护性和可移植性上都 比较差。 在系统的功能和设计上,多媒体信息系统有以下特点: (1)功能复杂,包括用户注册管理、各种多媒体信息资源的上传、查询统计、浏 览编辑等功能。 (2)采用当今流行的轻量级 javaee 框架:struts2.0+spring+hibernate,以及 ajax 技术。整个应用系统包含五层,分为 web 层、业务逻辑层、数据对象层、数据持久层 和数库层,具有易于开发、维护、升级、扩展以及重用性高的特点。五个不同层的软件 部分可以同时进行开发,甚至可以选用不同的技术,系统的某个层的升级或者内部框架 的变换,不影响其它层的程序。 1.5 本文的结构及内容 全文共分为七章: 第一章 绪论。简要介绍了课题背景、课题研究的国内外现状以及论文的主要工作。 第二章 web 应用开发的相关技术。 主要介绍了 mvc 设计模式及轻量级 javaee 体 系结构,并分析 struts2.0、spring、hibernate 框架的体系结构、工作原理、配置文件以 及对 mvc 设计模式的实现。并且对 ajax 技术进行了分析研究,设计出一个基于 struts2.0+spring+hibernat 结合 ajax 技术的 web 应用分层组合框架 ssha。 第三章 多媒体信息系统的需求分析。本章对多媒体信息系统的现状进行了分析, 提出了基于 b/s 模式的系统结构,对系统的各个功能模块进行了分析,得出了系统的总 体功能结构图。根据系统的部署需要,给出了系统部署的网络拓扑结构图,然后,对系 统的运行环境进行了分析。 第四章 多媒体信息系统的设计。根据系统的需要分析,提出了系统总体设计方案, 对系统的各个模块进行了详细的设计, 设计了系统的数据库。 根据 ssha 的分层组合框 架,对系统的各个层进行了详细的设计。最后,给出了系统的运行流程和系统开发工程 的包结构。 第五章 多媒体信息系统的实现。 本章首先介绍了系统的研发环境, 然后根据 ssha 分层组合框架,对系统的各层进行了详细实现。 第六章 多媒体信息系统的运行效果。按照多媒体信息系统的运行流程,以及各个 模块负责的功能实现,逐一的给出了系统的正常运行效果图。 第七章 总结语。对本文进行了总结,并且提出了下一步需要探索和研究的内容。 太原理工大学硕士研究生学位论文 5 第 2 章 web 应用开发的相关技术 web 应用程序开发已经有很多年了, 在早期的 b/s 应用开发过程中, 一般处理代码 都嵌入到 html 页面中,这样做使得表示层与业务逻辑层混合在一起,当应用程序的 需求发生变化或者系统需要升级时,页面就难以修改和维护。 时至今日,像 perl、jsp、asp 等类库和其它一些支持 web 应用程序开发的语言都 在设法解决业务逻辑代码和表现层代码之间的解耦问题。 本章就着重介绍一些基于 java 领域中的相关技术,比如设计模式、开源框架以及其他的新技术12。 2.1 mvc 设计模式 mvc 模式是一种目前广泛流行的软件设计模式,是“mode-view-controller”的缩 写(即“模型-视图-控制器”) 。它最早由 smalltalk 社区开发出来的,它有效分离系统 关注点的同时大大降低了系统开发的复杂性和难度,降低了开发成本,目前已经成为基 于 javaee 的 web 开发的主流模式。 1mvc 模式概述 mvc 是 xerox parc 在 20 世纪 80 年代为编程语言 smalltalk-80 发明的一种软件设 计模式,至今已被广泛使用,最近几年被推荐为 sun 公司 javaee 平台的设计模式,受 到越来越多的 web 开发者的欢迎。 mvc 模式是一种架构模式,各个模块之间相互独立,程序藕合度非常低,提高了 程序开发灵活性和可重用性。mvc 模式的核心是实现三层甚至多层的松散耦合,它把 应用程序分成三个核心模块:模型、视图和控制器,三者既分工又合作地完成用户提交 的每项任务13。其中,视图负责与用户交互,接收用户输入,然后返回结果给用户;模 型用来处理要涉及的业务范围,它主要是业务数据模型和业务逻辑模型,并通常负责与 后台数据库交互;控制器起总体协调和控制作用,如调用某个模型组件完成某些业务功 能并最终向用户返回某个视图组件,mvc 结构如图 2-1 所示。 从 mvc 结构图可以清晰的看到 mvc 模式的处理流程:首先用户在视图页面输入 请求信息,控制器接收到用户的请求,并决定应该调用哪个模型来进行处理,然后模型 调用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图返回数据,并通 过视图层呈现给用户。视图层可以查询模型的状态,来动态的更新视图。 太原理工大学硕士研究生学位论文 6 controller(控制器) 定义应用程序行为、用户动 作映射成模型更新、选择响 应的视图 view(视图) 解释模型、模型更新请求、发送 用户输入给控制器、允许控制器 选择视图 model(模型) 封装应用程序状态、响 应状态查询、应用程序 功能、通知视图改变 用 户 请 求 视 图 选 择 状态查询 通知视图更新 选 择 业 务 模 型 图 2-1 mvc 结构图 fig.2-1 structure of mvc (1)模型(model) :模型是 mvc 设计模式的核心,是对业务流程/状态的处理以 及业务规则的制定,它封装了应用程序的状态。它接受视图请求的数据,并返回最终的 处理结果,通知视图更新。mvc 并没有提供模型的设计方法,只提供管理这些模型的 方法,以便于模型的重构和提高重用性。一个模型的接口提供了访问和更新模型状态, 执行封装在模型中的复杂进程的方法。模型服务被控制器访问,用于查询或更改模型状 态。 当模型状态发生变化时, 模型会通知视图作出相应的响应。 模型用于表述业务逻辑, 相当于在企业应用里的业务层。 (2) 视图 (view) : 视图代表用户交互界面, 对于 web 应用来说, 可以概括为 html 界面,但有可能为 xhtml、xml 和 applet。随着 web 应用的需求变的复杂,界面的 处理也变得具有挑战性。当模型发生改变时,视图也将随之改变,以维持系统数据的一 致性。一个应用可能有很多不同的视图,mvc 设计模式对于视图的处理仅限于视图上 数据的采集和处理,以及用户的请求,而业务流程的处理则交给模型(model) 14。它 可以访问模型的数据,却不了解模型的情况,同时也不了解控制器的情况。当模型发生 改变时,视图会得到通知,它可以访问模型的数据,但不能改变这些数据。当更改模型 时,视图才得到通知。比如一个订单的视图只接受来自模型的数据并显示给用户,以及 将用户界面的输入数据和请求传递给控制器和模型。 (3)控制器(controller) :控制器是联系模型与视图之间的纽带,控制模型和视图 之间的交互过程。它可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成 用户的请求。它的作用很明显,它就是一个分发器,选择什么样的模型,选择什么样的 视图,可以完成什么样的用户请求。控制器并不能对数据进行任何处理,而仅仅是起到 一个桥梁的作用。例如,用户填写完信息,点击提交按钮,控制层接收到这个提交请求 后,并不处理业务信息,而只把用户的信息传递给模型,告诉模型做什么,模型处理业 太原理工大学硕士研究生学位论文 7 务流程之后, 再选择符合要求的视图返回给用户15。 所以, 一个模型可能对应多个视图, 一个视图可能对应多个模型。 2mvc 模式的优点 (1)分工明确,各司其职。在 mvc 模式中,三个层各施其职,如果某一层的需 求发生了变化,只需要更改相应层中的代码,而不会影响到其它层中的代码。一方面, 分离数据和数据表现,另一方面,将控制逻辑和表现界面分离。使企业级应用开发结构 清晰,开发上有章有节,缩短开发周期,便于后期系统维护和升级修改。 (2)模块的独立性。如果需要,模块中的任何组件甚至整个模块都可以进行调换, 视图、控制器或模块的改变不会影响到其他程序的运行,不同组件可以并行开发。比如 网页设计人员进行开发视图层中的 jsp,同时对业务熟悉的开发人员可开发业务层,而 其它开发人员可开发控制层。 (3)重用性和可适应性。普遍使用可重用的组件,可以降低新项目的开发成本, 通过对设计的重用,使得开发小组之间方便沟通,设计出来的系统比较容易理解。如控 制器可独立成一个能用的组件,视图层也可做成通用的操作界面16。 (4)有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某 些相同的特征,有利于通过工程化、工具化产生管理程序代码。 3mvc 模式的缺点 (1)mvc 模式分为三层,在带来分工明确的同时,代码文件会增加很多,对于文 件管理需要多花些功夫。 (2)mvc 可能会把简单的问题弄的很复杂。mvc 增加了系统结构和实现的复杂 性。对于简单的界面,严格遵循 mvc,使模型、视图与控制器分离,会增加结构的复 杂性,并可能产生过多的更新操作,降低运行效率。所以不可以生搬硬套,应该具体问 题具体分析。 (3)mvc 模式的理解比较容易,它只是一种设计思想,在应用过程中需要详细的 设计规划,对开发人员的要求比较高。同时由于模型和视图要严格的分离,这样也给调 试应用程序带来了一定的困难。 (4)有些高级的界面工具或构造器不支持 mvc 模式。改造这些工具以适应 mvc 需要的代价是很高的,从而造成使用 mvc 的困难。 ibm 之父布鲁克斯(frederick phillips brooks, jr.)说过: “我认为学习编程的最困 难部分,是将做事的方式往追求完美的方向调整。 ” 所以在应用程序的开发过程中,应 该尽量发挥 mvc 模式的优点,最大限度的避免它的缺点。使这个优秀的经典设计模式 太原理工大学硕士研究生学位论文 8 能够提高 web 应用程序的开发效率和稳定性,同时节省劳动成本。 2.2 javaee 多层架构 自从 java 语言诞生之日起,就受到了广泛的关注。sun 公司在 1999 年底发布了企 业级java平台j2eejava2 enterprise edition。 随着j2ee1.5标准的发布, sun将javaee 正式更名为 javaee,相应的,j2se 也更名为 javase,j2me 也更名为 javame。 javaee 并非是一个产品,而是一系列技术和标准的集合。具体的 javaee 平台下的 产品由各厂商实现并遵循同一个标准。 javaee 是一种建立在 java2 平台上的用于开发分 布式企业级应用系统的体系结构,它提供了一种针对企业级应用开发中设计、部署、管 理等相关复杂问题的解决方案17。 2.2.1 javaee 技术简介 javaee 的设计目的旨在推动企业级应用的开发和部署。它通过提供企业计算环境 所必需的各种服务, 使部署在平台上的多层应用具有较高的可靠性、 安全性、 可扩展性, 且简单易用。平台提供的多层分布式应用模型、组件重用、一致化的安全模型以及灵活 的事务控制等技术,可以加快企业应用的设计与开发,快速容易地建立融合 internet 技 术的多层结构的分布式企业应用,从而较好地解决了 c/s 结构所固有的可扩充性差、可 维护性差、安全性差、部署麻烦等弊端。 1javaee 的多层应用模型 javaee采用多层结构, 层与层之间相互独立, 每个层提供特定服务。 sun设计javaee 的初衷是为了解决两层模式(client/server)的弊端。在传统 c/s 模式中,客户端担当 了过多的角色而显得臃肿,虽然第一次部署比较容易,但难于升级或维护,可伸展性也 不理想,重用业务逻辑和界面逻辑非常困难18。而 javaee 的多层企业级应用模型将两 层化模型中的不同层面切分成许多层,应用逻辑按功能划分为组件,各个应用组件根据 他们所在的层分布在不同的机器上,系统为不同的每种服务提供一个独立的层。在多层 结构中,任何一层只要其提供的接口不变,实现发生什么变化,对其它层没有影响或达 到最少影响。分层后不仅使各层功能变得简单、易于实现,而且具有更好的可扩展性和 可维护性。 javaee 多层应用体系结构定义了四个独立的层,应用软件构造在这个框架之上, 这四个层分别是:客户层、表现层、业务逻辑层和企业信息系统层,如图 2-2 所示。 太原理工大学硕士研究生学位论文 9 数据库或eis servlet jsp ejb application 客户端 application 客户端容器 applet 容器 applet 客户端web服务器应用服务器 ejb容器web容器 图 2-2 javaee 多层体系结构 fig.2-2 javaee multi-tier architecture (1)客户层(client tier) :客户层是用户角度的视图,主要负责把表现层的结果 显示给用户以及响应用户的输入。javaee 应用可以是基于 web 方式,如 html、java applet 等,也可以是基于传统桌面应用方式。 (2)表现层(presentation tier) :产生表示逻辑,并接受来自客户端的用户反馈。 也称 web 层(web tier) ,是 javaee 体系的核心之一,它根据业务逻辑层的处理结果, 生成相应的页面。javaee web 组件可以由 jsp 页面、基于 web 的 applet 以及在 web 服务器上生成 html 的 servlet 组成19。 (3)业务层(business tier) :业务逻辑是应用程序的核心,同时为低层的服务组 件提供必要的接口。它也是 javaee 体系的核心之一,领域模型需要的业务逻辑代码由 运行在业务层的 ejb 来执行,ejb 从客户端接收数据,对数据进行处理,再将处理后的 结果发送到企业信息层,最后将执行结果返回给客户端程序。 (4)企业信息系统层(enterprise information systems tier) :这一层为企业的信息 系统服务,包括数据库系统、事务处理系统、遗产系统和企业资源计划系统等。企业信 息系统层运行企业信息系统软件,是系统数据持久性的保证。 2javaee 架构核心技术 javaee 平台由一整套服务(service) 、应用程序接口(api)和协议构成,它对开 发基于 web 的多层应用提供了功能支持。例如数据库连接服务、命名服务、事务服务、 安全服务、连接框架等。常用的关键技术如下: 太原理工大学硕士研究生学位论文 10 (1)java 数据库连接 jdbc(java database connectivity) ,它为 java 应用程序访 问不同的数据库提供了通用的应用程序编程接口,通过 java 驱动程序可以屏蔽不同数 据库之间的差异。 (2)java 命名与目录接口 jndi(java naming and directory interface) , jndi api 提供命名与目录访问服务,包括两部分:应用级接口被应用组件用于访问命名与目录服 务;服务提供者接口用于添加一个命名与目录服务的提供者。 (3)jsp(java server pages) ,jsp 可以说是 servlet 的扩展,它提供与 servlet 相 同的功能,但开发相对简单。 (4)java servlet,servlet 也是一种 java 程序,它扩展了 web 服务器的功能。 3相关框架 javaee 的多层体系结构为中间件思想领域的统一和企业级 web 应用的发展起到了 极大推动作用。javaee 本身提供的重量级 ejb(至少 3.0 以前)模型配置部署复杂,会 使开发人员把大量的时间浪费在开发程序架构上,同时其优势在于数据的分布式处理, 在常见的单服务器系统中不太适用。sun 公司和一些大的应用服务器供应商都想用开发 工具来降低 javaee 开发的复杂性,但它们自动产生的代码像这些工具本身一样复杂, 与.net 平台相比,这些开发工具显得很逊色20。因此,在当前 web 应用开发中,很多 小型 javaee 开发者选择采用一些可以降低 javaee 应用难度的轻量级开源框架,如 struts,spring,hibernate 等。 简单的说,框架就是开发人员在已有成功开发经验的基础上,制定的一些可重用的 程序架构和开发标准,用户可以在此基础上开发自已的应用。框架技术非常适合在复杂 的 javaee 开发中使用,它可以为开发者提供一个简单易用的编程模型,从而节省大量 重复编码工作,显著提高开发效率。 设计开发中应用一个良好设计的开源框架有很多好处: (1)良好设计的框架可以为程序提供清晰的结构,提高程序的内聚性,方便测试 和维护,同时也有利于系统的并行开发和其他人加入。 (2)采用好的框架,开发者只需要编写必须的代码,而不必具体编码实现系统整 个架构,避免了直接接触底层的 api,从而简化开发流程,提高开发效率。 (3)开源框架大都是轻量级的,配置部署简单,便于开发人员学习和掌握。 随着 javaee 技术的发展,开源框架的种类也越来越多,根据它们的特点和适用范 围,几个经典的框架大体可以归类如下21: 控制层框架:struts、spring、webwork、jsf、tapestry、turbine 等; 太原理工大学硕士研究生学位论文 11 视图层框架:struts tiles、jstl、velocity、freemarker、xslt 等; 模型层框架(持久层) :hibernate、ibatis、 、oracle toplink 等。 综上所述,javaee 技术的发展与成熟为开源框架的流行提供了必要条件,但不同 框架技术的设计策略和技术特点各异,如何根据设计需要,在众多框架技术中选择适合 的技术构建系统,成为设计人员进一步探讨的问题。下面对一些当前主流的开源框架技 术进行介绍。 2.2.2 开源框架 struts2.0 简介 1概述 struts2.0 大量使用拦截器来处理用户请求,使用户的业务逻辑控制器与 servlet 容 器的 servlet api 分离。struts2.0 的控制器由两部分组成:核心控制器 filterdispatcher 和业务控制器 action,它用 filterdispatcher 根据请求调用合适的 action。然而实际上起 作用的业务控制器不是用户定义的 aciton,而是系统生成的 action 代理,但 action 代 理是以 action 为目标的22。 struts2.0 是 mvc 设计模式的一种实现, 而且将这些概念映射到 web 应用程序的组 件和概念中。图 2-3 显示了 struts2.0 框架的体系结构响应客户的请求时,各部分工作的 原理,从 mvc 的角度体现了 struts 框架中的各种组件的功能角色。 actionresult 浏览器 请求 核心控制器 filterdispatcher 拦截器1 拦截器2 拦截器3 响 应 图 2-3 struts2.0 框架的体系结构 fig.2-3 architecture of struts2.0 framework 2struts2.0 实现 mvc 的机制 struts2.0 实质上就是一个 mvc 框架,核心组件如下: (1)控制器组件:filterdispatcher 是 struts2.0 框架的核心控制器,该控制器作为 一个 filter 运行在 web 应用中,它负责拦截所有的用户请求,当用户请求到达时,它会 太原理工大学硕士研究生学位论文 12 通过预先设定的条件过滤用户请求。如果请求以 action 结尾,该请求将被转入 struts2.0 框架进行处理。struts2.0 应用中的 action 都注册在 struts.xml 文件中,在该文件中注册 action 时,包括了该 action 的 name 属性和 class 属性,其中 name 属性决定了该 action 处理哪个用户请求,而 class 属性则决定了该 action 的实现类,即用于处理该请求的实 现 类 23 。 struts2.0 框 架 提 供 了 一 系 列 内 置 的 拦 截 器 , 该 组 拦 截 器 负 责 将 httpservletrequest 请求中的请求参数解析出来,传入到 action 中,并回调 action 的 execute 方法来处理用户请求。图 2-4 显示了这种处理模型。 拦截器1 拦截器2 action类 系统的action代理 传入的请求 图 2-4 struts2.0 的控制器处理模型 fig.2-4 controller model of struts2.0 用户实现的 action 类仅是 struts2.0 的 action 代理目标。action 类里通常包含一个 execute 方法,该方法返回一个字符串(如 success,error 等) ,当业务逻辑控制器处理 完用户请求后,根据处理结果不同 execute 方法返回不同的字符串。 (2)模型组件:模型是应用中最重要的一部分,其中包含了业务实体和业务规则, 负责访问和更新持久化数据。对于大型应用,业务逻辑通常由 javabean 或 ejb 组件来 实现。而对于 struts2.0 框架来说,通常没有为模型组件的实现提供太多的支持。 一般情况下,mvc 框架里的业务逻辑控制器会调用模型组件的方法来处理用户请 求。也就是说,业务逻辑控制器不会对用户请求进行任何实际处理,这也就是为什么把 action 称为控制器。 图 2-5 显示了这种处理流程。 在图 2-5 中可以看到当程序运行时 action 调用业务逻 辑组件的方法。当控制器要取得业务逻辑组件实例时,它并不会直接获取业务逻辑组件 实例,而是通过代理的方式来取得业务逻辑组件的实例;当然,也可以通过其它的 ioc 容器(如 spring)来管理业务逻辑组件实例24。 太原理工大学硕士研究生学位论文 13 filterdispatcher action 业务逻辑组件 转发请求 调用 图 2-5 控制器调用模型组件的方式 fig.2-5 method of controller invoke model (3)视图组件:视图负责将模型的当前状态展示给用户,具体该如何显示由视图 负责,因此一个模型可以供多个不同的视图使用。struts 2 允许使用多种模板技术,如 使用 jsp、freemarker、velocity 等作为视图技术。如果在开发 web 应用时仅使用 jsp 技术作为视图,则在配置 re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论