




已阅读5页,还剩61页未读, 继续免费阅读
(计算机应用技术专业论文)基于j2ee平台的web应用系统的研究与设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
东北大学硕士学位论文摘要 基于j 2 e e 平台的w e b 应用系统的研究与设计 于葡要 随着i n t e m e t 和i n t r a n e t e x t r a n e t 的快速增长,w e b 已经对商业、工业、金融、 教育等各个领域产生了深远的影响。许多传统的信息和数据正在被移植到互联网 上。电子商务的增长早已超越了国界。范围广泛的、复杂的分布式系统正在w e b 中出现。 近年来,基于w e b 的应用系统的开发方法备受关注。主要体现在w e b 应用系 统的开发和传统的软件开发的区别上。传统的软件工程方法和技术应用到基于w e b 的系统开发中显得力不从心。本文从软件工程的角度分析了基于w e b 的应用系统 的层次结构,提出了一个五层架构的w e b 系统的设计思想。首先介绍了开发w e b 应用系统常用的m v c 设计模式,然后介绍了一个m v c 模式的良好实现一s t r u t s 应用框架。由于s t r u t s 只是一个w e b 层的框架,在开发一个大型的w e b 应用系统 的时候不能够给予足够的技术支持。因此,在服务器端的业务逻辑层,需要研究 新的开发方法。而一般的w e b 应用系统都是建立在数据库基础之上的。当前占主 流的数据库系统是关系型数据库系统,而w e b 应用系统的业务逻辑处理程序都是 面向对象的。要把应用程序中的对象模型存储到关系数据库中,就需要进行对象一 关系映射。为了提高开发效率,减少系统内部各部分功能模块间的耦合,本文提 出了在业务逻辑层和数据库之间增加一个数据持久层的设计思想。在比较了数据 持久层的各种实现技术以后,采用h i b e r n a t e 作为数据持久层的实现技术。 本文提出的五层架构的设计思想在顺德职业技术学院教务管理系统中得到了 很好的实践,取得了令人满意的效果。在开发过程中,本人还针对s t r u t s 技术进行 了一些改进,将原来的每个功能对应一个a c t i o n 改进为每个页面对应一个a c t i o n 。 这样大大减少了a c t i o n 类的数量,提高了项目管理和部署的效率。目前,本系统 已经在顺德职业技术学院投入使用。 关键词w e b 应用系统设计模式s t r u t s 业务逻辑对象模型对象一关系 映射数据持久层h i b e r n a t e i i 查! ! 垄堂壁主兰堡堕查 垒! ! ! 竺! s t u d ya n dd e s i g no nw e ba p p l i c a t i o ns y s t e m sb a s e d o nj 2 e e p 1 a t f o r n l a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to ft h ei n t e r a c ta n di n t r a n e t e x n a n e t ,w e bh a sa l r e a d y h a dg r e a te f f e c to nm a n yf i e l d ss u c ha sb u s i n e s s ,i n d u s t r y , b a n ka n de d u c a t i o n ag r e a t d e a lo ft r a d i t i o n a li n f o r m a t i o na n dd a t ai st r a n s p l a n t i n gt ot h ei n t e r a c t 1 h eg r o w t ho f e - b u s i n e s sh a sa l r e a d yb e e nb e y o n dn a t i o n a lb o u n d a r i e s t h e r ea p p e a r i n gi nw e ba r e w i d ec o m p l e xd i s t r i b u t e ds y s t e m s r e c e n t l y , t h ed e v e l o p m e n tm e t h o do fw e b b a s e da p p l i c a t i o ns y s t e m sa r c h i v e sg r e a t a t t e n t i o n t h em a i nr e a s o ni st h ed i f f e r e n c eb e t w e e nw e b - b a s e d a p p l i c a t i o ns y s t e m s a n dt r a d i t i o n a ls o f t w a r e d e v e l o p m e n t d e v e l o p m e n tm e t h o d sa n dt e c h n o l o g i e so f t r a d i t i o n a ls o f t w a r ee n g i n e e r i n ga r en o te n o u g hf o rw e b b a s e da p p l i c a t i o ns y s t e m s t h e p a p e ra n a l y s i s e st h es t r u c t u r eo fw e b - b a s e da p p l i c a t i o ns y s t e m sf r o mt h ev i e wo f s o f t w a r ee n g i n e e r i n g ,p u t sf o r w a r dad e s i g nt h i n k i n go ff i v e t i e rw e ba p p l i c a t i o n s y s t e m s f i r s t l y , t h ep a p e ri n t r o d u c e sm v cd e s i g np a t t e m ,w h i c hi si nc o m m o n u s ei n t h ed e v e l o p m e n to fw e ba p p l i c a t i o n t h e n ,i n t r o d u c e saf a i r l yg o o di n p l e m e n t a t i o no f m v cd e s i g np a t t e r n - - s t r u t sf r a m e w o r k b e c a u s es t r u t sf r a m e w o r ki saw e b t i e r f r a m e w o r k ,i tc a n tp r o v i d ee n o u g ht e c h n i cs u p p o r t ,i ti sn e c e s s a r yt os t u d yn e w d e v e l o pm e t h o di nt h eb u s i n e s sl o g i ct i e ri ns e r v e rs i d e g e n e r a l l y , w e ba p p l i c a t i o n s y s t e m s a r ef o u n d e do nd a t a b a s e 1 1 l ed o m a i nd a t a b a s ei sr e l a t i o n a ld a t a b a s e m a n a g e m e n ts y s t e m ,b u tw e ba p p l i c a t i o ns y s t e m sb u s i n e s sl o g i cp r o g r a m sa r eo b j e c t o r i e n t e d i no r d e rt os t o r eo b j e c tm o d e lo fa na p p l i c a t i o nt or e l a t i o n a ld a t a b a s e ,w en e e d o b j e c t - r e l a t i o n a lm a p p i n g i no r d e rt op r o m o t ed e v e l o p m e n te f f i c i e n c y , r e d u c ec o u p l i n g b e t w e e ni n n e rm o d e l so ft h es y s t e m ,t h ep a p e rs u g g e s t sad e s i g nt h i n k i n g ,t h a ti s ,a d da t i e rc a l l e dd a t a p e r s i s t e n c et i e rb e t w e e nb u s i n e s s l o g i ct i e r a n dd a t a b a s e a f t e r c o m p a r i n ga l lk i n d so fi m p l e m e n t a t i o nt e c h n o l o g i e sf o rd a t a - p e r s i s t e n c et i e r , c h o o s e s h i b e r n a t e t h ef i v e - t i e rd e s i g nt h i n k i n gs u g g e s t e db yt h ep a p e rh a sb e e ns u c c e s s f u l l y p r a c t i c e di ne d u c a t i o nm a n a n g m e n ts y s t e md e m a n d e db ys h n n d ec a r e e rt e c h n o l o g i c a l c o l l e g e t h er e s u l ti ss a t i s f a c t o r y + d u r i n gt h ed e v e l o p m e n to ft h ep r o j e c t ,ii m p r o v e d s t r u t st e c h n o l o g y , t h a ti s ,t h e r ei sn ol o n g e ra l la c t i o nf o re a c hf u n c t i o n ,b u ta na c t i o nf o r e a c hp a g e b yd o i n gs o ,d e v e l o p e r sc a l lg r e a t l yr e d u c et h en u m b e ro fa c t i o nc l a s sf i l e s , p r o m o t et h ee f f i c i e n c yo fm a n a g e m e n ta n dd e p l o y m e n t n o w , t h es y s t e mi si nu s ei n s h u n d ec a r e e rt e c h n o l o g i c a lc o l l e g e 。 k e yw o r d s w e ba p p l i c a t i o ns y s t e m ,d e s i g np a t t e r n , s t r u t s ,b u s i n e s sl o g i c ,o b j e c t m o d e l ,o b j e c t r e l a t i o nm a p p i n g ,d a t ap e r s i s t e n c et i e r , h i b e r n a t e i i i 独创性声明 本人声明所呈交的学位论文是在导师的指导下完成的。论文中取 得的研究成果除加以标注和致谢的地方外,不包含其他人己经发表或 撰写过的研究成果,也不包括本人为获得其他学位而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确 的说明并表示谢意。 学位论文作者签名:郭煦 日期:汹r 。2 9 学位论文版权使用授权书 本学位论文作者和指导教师完全了解东北大学有关保留、使用学 位论文的规定:即学校有权保留并向国家有关部门或机构送交论文的 复印件和磁盘,允许论文被查阅和借阅。本人同意东北大学可以将学 位论文的全部或部分内容编入有关数据库进行检索、交流。 ( 如作者和导师同意网上交流,请在下方签名;否则视为不同意。) 学位论文作者签名: 签字目期: 导师签名: 签字日期: 东北大学硕士学位论文第一章综述 1 1 问题的提出 第一章综述 随着i n t e m e t 和i n t r a n e t e x t r a n e t 的快速增长,w e b 已经对商业、工业、银行、 财政、教育、政府和娱乐及我们的工作和生活产生了深远的影响。许多传统的信 息和数据库系统正在被移植到互联网上。电子商务的发展早已超越了国界。范围 广泛的、复杂的分布式应用系统正在w e b 环境中出现 1 4 j 。 目前,面向w e b 的应用系统开发的技术发展迅速,新技术不断涌现。在服务 器端,当前正广泛应用的技术有c g i 、a s p 、p h p 、j s p 、j a v as e r v l e t 等;而在客 户端,则包括v b s c r i p t 、j a v a s c f i p t 、j a v aa p p l e t 等。这些技术为w e b 应用系统的 开发奠定了坚实的基础。从总体上来说,这些技术在开发效率、运行速度、分布 式事务处理及可扩展能力方面具有各自的优势,这就要求开发人员在开发过程中 依据具体要求灵活选用。一般情况下,一个实际的w e b 应用系统是由多个开发人 员依据各自的任务,采用不同的技术协同开发而成的。但是,在目前的许多项目 的开发过程中,由于缺乏一个规范的开发编程模式,各部分开发人员缺乏交流而 出现了互相影响、互相制约的局面,造成系统开发、集成与维护成本的上升。因 此,为w e b 应用系统的开发引入一套规范、合理、有效的开发模式就显得尤为重 要了。而m v c ( m o d e l - v i e w c o n t r o l l e r ) 设计模式具有的模型和显示分离,由控 制器进行流程控制等优势,符合w e b 应用系统开发的基本要求,已成为开发w e b 应用系统的主流模式。 s u n 公司在1 9 9 9 年推出的j 2 e e ( j a v a 2 p l a t f o r m e n t e r p r i s e e d i t i o n ) 平台继承 了j a v a 的安全性高、可移植性好等优点,而且真正是面向对象编程。采用j 2 e e 平台的w e b 系统具有耦合度低、模块化程度高、易重用、易维护、易扩展、可移 植性好等优点,满足了当前w e b 应用系统开发的需求。j 2 e e 平台己成为w e b 应用 系统开发的主流体系结构之一。 综上所述,在j 2 e e 平台上采用m v c 设计模式进行w e b 应用系统的开发研究 具有重要的现实意义和广泛的实际应用价值。 1 2 当前w e b 应用系统的研究现状与分析 当前,在国内外存在多种实现w e b 应用系统的技术途径,其中最具有代表性、 使用最广泛的两大类分别是m i c r o s o f t 公司推出的n e t 平台和s u n 公司推出的 东北大学硕士学位论文 第一章综述 j 2 e e 平台。下面将对这两种主流技术进行简单的介绍和比较。 1 2 1 n e t 平台 n e t 平台是一组用于建立w e b 服务应用程序和w i n d o w s 桌面应用程序的软 件组件,包括构建n e t 服务与n e t 设备软件的工具和基础构架。它借鉴了j a v a 语言在安装了j a v a 虚拟机( j a v a v i r t u a lm a c h i n e ,j v m ) 后可跨平台运行的特性, 通过一个“通用语言的运行时环境”( c o m m o nl a n g u a g er u n t i m e ,c l r ) 来执行 中间格式的程序代码。c l r 为n e t 应用程序提供了一个托管的代码执行环境。托 管意味着将原来需要由程序员或者操作系统所作的工作剥离出来,交由c l r 来完 成,从而使应用程序在运行时获得更高的安全性和稳定性。这些工作包括内存管 理、即时编译、组件自描述、安全管理和代码验证,以及其他一些系统服务。c l r 提供了一个技术规范,无论程序使用什么语言编写,只要可以被编译成中间语言, 就可以在它支持的环境下运行。这样,n e t 应用程序就可以独立于语言。换句话 说,c l r 就是n e t 的虚拟机。 此外,n e t 平台还提供了一个n e tf r a m e 类库。它是一组广泛的、面向对 象的、可重用类的集合,可以被用于任何编程语言。它提供了几乎所有应用程序 都需要的公共代码;在公共代码之上是许多应用程序模板,不管是传统的命令行 程序还是w i n d o w s 图形界面程序,或是面向下一代互联网分布式计算平台的 a s p n e t 或w e b 服务应用,这些模板都可以为开发网络站点和网络服务提供特定 的高级组件和服务。 从多层的角度看,n e t 平台定义了三个不同的层: ( 1 ) 表示层:a s p n e t 组件。a s p n e t 组件包括w e b 表单和w i n d o w s 表单。 a s p n e t 可以用v b 、c # 等语言编写,一次编译成中间语言格式,而不必每次解 释执行。 ( 2 ) 中间业务层:c o m + 服务。c o m + 主要面向中阃层业务应用程序的开发, 为大型分布式应用程序提供可靠性和易扩展性保障。这些服务是对n e t f r a m e w o r k 所提供服务的补充。通过n e tf r a m e w o r k 可以对这些服务直接进行访 问。 ( 3 ) 数据层:a d o n e t 组件。a d o n e t 为基于网络的、可扩展的应用程序和 服务提供数据访问服务。它不仅支持传统的基于链接指针风格的数据访问,而且 对于把数据返回到客户端应用程序的无链接数据模板,它也提供高性能的访问支 持。 东北夫学硕士学位论文 第一章综述 j 2 e e 半台。下面将对这两种主流技术进行简单的介绍和比较。 1 2 1 n e t 平台 n e t 平台是一组用于建立w e b 服务应用程序和w i n d o w s 桌面应用程序的软 件组件,包括构建n e t 服务与n e t 设备软件的工具和基础构架。它借鉴了j a v a 语言在安装了j a v a 虚拟机( j a v a v i r t u a lm a c h i n e ,j v m ) 后可跨平台运行的特性, 通过一个“通用语言的运行时环境”( c o m m o nl a n g u a g er u n t i m e ,c l r ) 来执行 中问格式的程序代码。c l r 为n e t 应用程序提供了一个托管的代码执行环境。托 管意味着将原来需要由程序员或者操作系统所作的工作剥离出来,交由c l r 来完 成,从l m 使应用程序在运行时获得史高的安全性和稳定性。这些工作包括内存管 理、即时编译、组件自描述、安全管理和代码验证,以及其他一些系统服务。c l r 提供了一个技术规范,无论程序使用什么语言编写,只要可以被编译成中间语言, 就可以在它支持的环境下运行。这样,n e t 应用程序就可以独立于语言。换句话 说,c l r 就是n e f 的虚拟机。 此外,n e t 平台还提供了一个n e tf r a m e 类库。它是组广泛的、面向对 象的、可重用类的集合,可以被用于任何编程语言。它提供了几乎所有应用程序 都需要的公共代码:在公共代码之上是许多应用程序模板,不管是传统的命令行 程序还是w i n d o w s 图形界面程序,或是面向下一代互联网分布式计算平台的 a s p n e t 或w e b 服务应用,这些模板都可以为开发网络站点和网络服务提供特定 的高级组件和服务。 从多层的角度看,n e t 平台定义了三个不同的层: ( 1 ) 表示层:a s p n e t 组件。a s p n e t 组件包括w e b 表单和w i n d o w s 表单。 a s p n e t 可以用v b 、c # 等语言编写,一次编译成中间语言格式,而不必每次解 释执行。 ( 2 ) 中间业务层:c o m 十服务。c o m + 主要面向中间层业务应用程序的开发, 为大型分布式应用程序提供可靠性和易扩展性保障。这些服务是对n e t f r a m e w o r k 所提供服务的补充。通过n e t f r a m e w o r k 可以对这些服务直接进行访 问。 ( 3 ) 数据层:a d o n e t 组件。a d o n e t 为基于网络的、可扩展的应用程序和 服务提供数据访问服务。它不仅支持传统的基于链接指针风格的数据访问,而且 对于把数据返回到客户端应用程序的无链接数据模板,它也提供高性能的访问支 对于把数据返回到客户端应用程序的无链接数据模板,它也提供高性能的访问支 持。 东北大学硕士学位论文第一章综述 1 2 2j 2 e e 平台 j 2 e e 是s u n 公司推出的一种全新概念模型,与传统的i n t e m e t 应用系统模型 相比,有着不可比拟的优势。这种模型在j 2 s e ( j a v a2p l a t f o r ms t a n d a r de d i t i o n ) 之 上添加了大量面向企业的特性和功能,以此简化企业解决方案的开发、部署和管 理等相关复杂的问题。它不仅巩固了j 2 s e 中的许多优点,如方便存取数据库的 j d b c a p i 、c o r b a 技术以及能够在i n t e m e t 中保护数据的安全模式等,同时还提 供了对e j b 、j a v a s e r v l e t a p i 、j s p ( j a v a s e r v e r p a g e ) 以及x m l 技术的全面支持。 j 2 e e 的设计目的是为了推动企业应用的开发和部署。它通过企业计算环境所 必需的各种服务,使得部署在j 2 e e 平台上的多层应用可以实现高可用性、安全性、 可扩展性和可靠性。计算平台支持j a v a 语言,使得基于j 2 e e 标准开发的应用可跨 平台移植。而且由于j a v a 语言的安全、严格等特性,使开发者可以编写出十分可 靠的代码。j 2 e e 提供了在企业计算中需要的所有服务,且简单易用。j 2 e e 中的多 数标准定义了接日,如j d b c 、j n d i 、j a v am a i l 等,可与许多厂商的产品配合, 容易得到广泛的支持;通过提供统一的开发平台,j 2 e e 降低了开发多层企业级应 用的费用和复杂度,同时支持e j b 与现有系统集成,有良好的向导支持打包和应 用部署。j 2 e e 平台提供的多层分布式应用模型、组件重用、一致化的安全模型以 及灵活的事务控制,加快了企业应用的设计与开发,可以快速容易地建立融合了 i n t e r n e t 技术。尤其是w e b 技术的n 层结构的分布式企业应用,也较好地解决了 c s 结构所固有的可扩充性差、可维护性差、安全性差、部署麻烦等弊端。 j 2 e e 是一个基于组件一容器模型的系统平台,其核心概念是容器。容器是指: 为特定组件提供服务的一个标准化的运行时环境。j a v a 虚拟机就是一个典型的容 器。组件是一个可以部署的程序单元,它以某种方式运行在容器中。容器封装了 j 2 e e 底层的a p i 为组件提供事务处理、数据访问、安全性、持久性等服务。在j 2 e e 中,组件和组件之间并不直接访问,而是通过容器提供的协议和方法来相互调用。 容器和组件间的关系通过“协议”来定义“”。容器的底层是j 2 e e 服务器,它为容 器提供j 2 e e 中定义的各种服务和a p i 。 一个j 2 e e 服务器( 也叫j 2 e e 应用服务器) 可以支持一种或多种容器,常见 的容器有两个: ( 1 ) w e b 容器:包含j a v as e r v l e t 和j s p ; ( 2 ) e j b 容器:包含企业级j a v a b e a n 。 每个容器的服务包括两部分: ( 1 ) j 2 s e : 东北大学硕士学位论文 第一章综述 ( 2 ) 一组扩展的服务。 从应用的角度来看,j 2 e e 为企业应用系统开发提供了一种多层分布式企业应 用模型。从多层角度来看,j 2 e e 平台定义了四个不同的层: ( 1 ) 客户层:客户层运行客户端机器上。用于与应用的用户进行交互以及显示 根据特定商务规则进行计算后的结果。基于j 2 e e 规范的客户端可以是基于w e b 的, 也可以是不基于w e b 的独立应用程序。 在基于w e b 的j 2 e e 客户端应用中,用户浏览器在客户层中运行,并从w e b 服务器中下载w e b 层中的静态h t m l 页面或由j s p 、s e r v l e t 动态生成的h t m l 页 面。 在不基于w e b 的j 2 e e 客户端应用中,独立的客户端应用程序不是运行在一个 h t m l 页面中,而是运行在一些基于网络的系统中,比如手持设备或汽车电话等。 同样,这些独立的应用也可以运行在客户端的j a v aa p p l e t 中。这种类型的客户端 应用程序可以在不经过w e b 层的情况下直接访问部署在e j b 容器中的e j b 组件。 这种不基于w e b 的j 2 e e 客户端应用可能也包括一个j a v ab e a n ,用于管理该输入 和将该输入发送到e j b 中处理。 ( 2 ) w e b 层:这一层由w e b 容器运行。是由j s p 页面和用于动态生成h t m l 页 面的s e r v l e t 构成。这些基本元素在组装过程中通过打包来创建w e b 组件。运行在 w e b 层的w e b 组件,依赖w e b 容器来支持诸如响应客户请求及查询e j b 组件等功 能。这一层也包含用于扩展传统超文本传输协议( h y p e rt e x tt r a n s f e rp r o t o c o l , h t t p ) 的w e b 服务器组件。 ( 3 ) 业务层:这一层由e j b 容器运行。包含以e j b ( e n t e r p r i s ej a v a b e a n ) 形式来 提供业务逻辑的组件。支持e j b 、j m s ( j a v am e s s a g es e r v i c e ,j m s ) 、j t a ( j a v a t r a n s a c t i o n a p i ,j a v a 事务a p i ) 等服务和技术。在基于j 2 e e 规范构建的系统中, 将解决或满足特定业务领域商务规则的代码构建成为商务层中的e j b 组件。e j b 组件可以完全从客户端应用程序中接收数据,按照商务规则对数据进行处理,将 处理结果发送到企业信息系统层进行存储,从存储系统中检索数据以及将数据发 送回客户端等功能。 部署和运行在业务层中的e j b 组件依赖于e j b 容器来管理诸如事务、生命期、 状态转换、多线程及资源存储等。这样,由业务层和w e b 层构成了多层分布式应 用体系中的中间层。 ( 4 ) 企业信息系统层:这一层由数据库服务器运行。包含企业内部的传统信息 系统如财务等,其特点是有数据库系统的支持。在企业应用系统的逻辑划分中, 企业信息系统层通常包括企业资源计划( e n t e r p r i s er e s o u r c ep l a n ,e r p ) 系统和关 东北大学硕士学位论文第一章综述 系数据库系统( r e l a t i o n a ld a t a b a s em a n a g e m e n ts y s t e m ,r d b m s ) 以及其他在构 建j 2 e e 分布式应用系统时已有的企业信息管理软件1 。 对于开发人员,j 2 e e 的多层分布式应用模型的优势主要体现在两个方面: 第一,开发人员利用这种平台来创建重用代码和可伸缩的应用系统。这是因 为该模型可以对应用程序设计逻辑进行解祸,使之成为高内聚低耦合的应用系统。 这种模型可以将应用的组件和子系统分布在网络中的几层上。这样可以促进高度 模块化系统的开发,而高度模块化的系统可以促进软件重用。此外,如果将应用 系统分布在明确的层上,那么,每一层都可以在自己的计算环境中执行。因而获 得一定程度的可伸缩性。 第二,这种模型除在运行资源级提供可缩性外,还在人力资源级提供了可伸 缩性。这是由于企业级的应用系统开发本身是一项复杂而费时的工程,因而需要 有一个或数个开发小组协同工作。因此,j 2 e e 应用系统是面向团队的开发项目。 又由于企业级的应用系统具有多层的特点,在开发过程中,每个开发小组可负责 应用所要求的一个主要层,即只需将重点放在特定层即可。这样,开发团队的规 模就可以根据需要扩大或缩小。 1 2 3 n e t 平台和j 2 e e 平台的比较 作为彼此竞争的应用平台,j 2 e e 和n e t 在目标和体系结构上极其相似,但 在实现上又各不相同。 从相似点来看,j 2 e e 和,n e t 两个平台的基础构造较为相似:在底层的执行 引擎都源于托管的虚拟机的概念;程序的编译都经过两个类似的过程;面向对象 程序设计在两个平台中都获得了直接的支持;两个平台都拥有一组能够为编程提 供广泛服务的、可复用的a p i 类库,都支持本地调用。 此外,两个平台都具有三层多层体系结构:在客户端,n e t 和j 2 e e 都提出 了基于桌面的应用程序和基于浏览器的w e b 应用的开发组件:w i n d o w s 表单与j a v a 应用,a s p n e t 与j a v a s e r v l e t j s p ;在中间层:n e t 组件建立在新型的c o m + 服务之上,而j 2 e e 的e j b 则是一个成熟的、得到业界广泛支持的大型企业级组件 构架,两者在组件与操作系统的交互、客户端资源共享等方面都具有很好的支持; 在后端数据库层,两个平台都为数据库连接量身定做了一套数据库存取模 型:n e t 的a d o n e t 和j 2 e e 的j d b c ,它们在支持传统的s q l 数据源的同时, 也都支持新型的x m l 数据源。 从不同点来看,j 2 e e 和n e t 两个平台的差异点主要体现在可移植性和开放 性两个方面。 东北大学硕士学位论文 第一章综述 在移植性方面,微软通过n e t 通用语言运行时( c l r ) 来消除编程语言的差 别,而j 2 e e 则通过m 来消除平台差别。跨平台是j 2 e e 的一个主要特性,也是 在选择企业应用开发平台时的一个重要参考因素,几乎所有的操作系统都提供了 对j 2 e e 的支持。实际上,如果要搭建跨u n i x 、w i n d o w s 等多个操作系统平台,j 2 e e 几乎是唯一的选择。 在开放性方面,j 2 e e 本身是一系列公开的规范,而不是产品。任何符合这一 规范的产品都是j 2 e e 兼容的。许多厂商如b e a 、i b m 、o r a c l e 等都相继开发了符 合j 2 e e 规范的产品。而n e t 与其说是规范,倒不如说是一系列产品。n e t 各 个层次都有与之对应的产品,而不是一整套规范。 1 3 本文的结构 本文主要研究在j 2 e e 平台下基于m v c 设计模式开发w e b 应用程序的核心技 术问题,在前人理论的基础上,提出了五层b s 架构的设计模式,并针对各个层 的设计进行了深入的分析和设计,不但讨论了每层可以采用的主流技术,还提出 了许多对现有技术的改进意见。这些设计思想在顺德职业技术学院教务管理系统 中得到了很好的实现,取得了令人满意的效果。 全文共分七章: 第一章:综述。介绍了课题的研究背景和研究内容。并简单介绍了当前国内 外在本课题领域的研究状况。 第二章:m v c 设计模式。阐述了m v c 设计模式的优势,重点分析了m v c 设计模式中各部分的功能和作用,以及它们之间的关系。 第三章:s t r u t s 应用框架。详细介绍了作为m v c 设计模式的开源实现一一s 协l t s 应用框架的相关内容。 第四章:数据持久层的设计。介绍当前的三层b s 架构的系统,阐述分层思 想和主流的实现技术。提出五层b s 架构的新思想,并阐述其设计原理。 第五章:教务管理系统的设计。多层架构的设计思想在教务管理系统中的实 践。 第六章:教务管理系统的实现。 第七章:总结。 东北大学硕士学位论文 第二章m v c 设计模式 第二章m v c 设计模式 2 1 设计模式概述 2 1 1 模式及其要素 在面向对象系统的设计中,可以认为,类及其对象是构成面向对象系统的最 基本元素。采用设计方法组合这些元素,得到面向对象系统的构件。同时,这些 构件的设计方法在经过不断地改进和完善后逐渐成型,成为面向对象系统的基本 设计参考,也称为设计模式。设计模式关注的是特定设计问题及其解决方案。每 种设计模式中均描述一个经过验证的、通用的解决方案,这个解决方案是对反复 出现的设计结构进行识别和抽象得到的,它通常由多个类组成。使用类和对象, 使我们在元素层次上实现了重用性;而使用设计模式,则在系统构件的层次上实 现了重用性。设计模式提供了在特定应用场景下解决问题的类、对象及相互关系 的设计方法。这些方法不针对于具体的系统,一个系统可能会用到多个设计模式。 模式需要一定的格式。一般来说,包含以下要素:“0 1 ” ( 1 ) 模式名:标识模式,增加表达性; ( 2 ) 问题:描述何时应用这个模式,解释问题与情景; ( 3 ) 解:不描述具体设计与实现,而是描述模式模板,可以在不同情景中使用; ( 4 ) 结果:结果对评估不同方法和进行决策至关重要。 2 1 2 模式的优点 在软件开发的过程中适当地运用设计模式,能大大提高软件的质量。模式一 般有以下的优点: ( 1 ) 设计模式为软件重用提供了一条途径。模式是实践经验的总结,它提供 的解决方案是不同时间、不同项目中反复解决了相似的问题后才最终决定的。因 此,模式提供了大量的可重用的机制,避免了开发者和设计者的重复投资; ( 2 ) 模式提供了开发者之间用以交流的共用词汇,增进了相互交流的可理解程 度; ( 3 ) 设计模式的基本思想是将程序中的可变部分与不可变部分进行分离,尽量 减少对象之问的耦合度,从而使对某一个对象的修改不至于影响其它的对象,使 得由于修改而带来的影响最小。 东北大学硕士学位论文 第二章m v c 设计模式 2 2 当前w e b 应用开发中存在的问题 当前的许多w e b 应用都需要复杂的表现和逻辑处理。当应用程序中包含有数 据访问代码、业务逻辑代码和表现代码的混合体的时候,会出现很多问题。概括 起来主要体现在以下几个方面: ( 1 ) 程序的可重用程度低。多个项目常常有功能类似的部分,但由于设计之初 没有考虑或者不能深入考虑,导致程序虽然类似但不能重用只能重写的局面。完 成一个项目积累的只有经验而没有代码,造成工作量的浪费; ( 2 ) 维护工作繁琐、麻烦。组件间的相互依赖造成了任何一个地方做了修改, 都会造成连锁反应。高度的耦合性造成了类很难甚至不可能被重用,因为他们要 依赖很多其他的类。增加数据视图的时候经常要求重新实现或者剪切粘贴业务逻 辑代码,这样,就要求这些业务逻辑代码保存在多个地方。数据访问代码也存在 同样的问题,在业务逻辑方法中被剪切粘贴; ( 3 ) 程序应变能力较弱。由于当前应用软件的用户不够成熟,需求的变化就是 一个客观存在的事实。 m v c 设计模式通过将业务逻辑、数据访问、数据表现和用户交互相分离,成 功解决了上述问题。m v c 设计模式的引入,无疑是一股新鲜的血液,给w e b 应用 开发增添了新的活力。 2 3m v c 设计模式 所谓m v c 模式,英文即m o d e l v i e w - c o n t r o l l e r ,指的是一种划分系统功能的 方法。m v c 设计模式是随着s m a l l t a l k 语言的发展而提出的,它是个著名的用 户界面架构。它将一个系统划分为三个部分:模型、视图、控制器。 2 3 1 模型 模型( m o d e l ) :模型是与问题相关的数据的逻辑抽象,代表对象的内在属性, 是整个模式的核心。“它采用面向对象的方法,将问题领域对象抽象为应用程序对 象。在这些抽象的对象中封装了对象的属性和这些对象所隐含的逻辑。”0 3 模型的作用如下: ( 1 ) 抽象应用程序的功能,封装程序数据的结构及其操作; ( 2 ) 向控制器( c o n t r o l l e r ) 提供对程序功能的访问: ( 3 ) 接受视图( v i e w ) 的数据查询请求; ( 4 ) 当数据有变化时,通知对此数据感兴趣的视图( v i e w ) 。 8 东北大学硕士学位论文第二章m v c 设计模式 2 3 2 视图 视图( v i e w ) :封装的是对数据源模型( m o d e l ) 的一种显示。一个模型可以有 多个视图,而一个视图理论上也可以与不同的模型关联起来。视图还具有与外界 交互的功能,是应用系统与外界的接口。一方面,它为外界提供输入手段,并触 发应用逻辑运行;另一方面,它又将逻辑运行结果以某种形式显示给外界。 视图的作用如下: ( 1 ) 对数据的表现部分进行抽象; ( 2 ) 将数据展现给用户; ( 3 ) 将用户输入转发给控制器( c o n t r o l l e r ) : ( 4 ) 当接收到来自模型( m o d e l ) 的“数据已更新”通知后,更新显示信息。 2 3 3 控制器 控制器( c o n t r o l l e r ) :是视图与模型联系的纽带,封装的是外界作用于模型的 操作。通常,这些操作会转发到模型上,并调用模型中相应的一个或者多个方法。 一般控制器( c o n t r o l l e r ) 在模型( m o d e l ) 和视图( v i e w ) 之间起到了沟通的作用,处理 用户在视图( v i e w ) 上的输入,并转发给模型( m o d e l ) 。这样模型( m o d e l ) 和视图 ( v i e w ) 两者之间可以做到松散耦合,甚至可以彼此不知道对方,而由控制器 ( c o n t r o l l e r ) 连接起这两个部分。 控制器的作用如下: ( 1 ) 抽象用户交互和应用程序语义的映射; ( 2 ) 将用户输入翻译成应用程序的动作,并发给模型( m o d e l ) ; ( 3 ) 根据用户输入和模型( m o d e l ) 对程序动作的输出,选择适当的视图来表现 数据。下图( 图2 1 ) 描述了这三者之间的关系。 这样一种思想设计的好处是: ( 1 ) 基本上实现了业务逻辑和显示的分离:运用“分治”的思想,程序员可以 把精力放在对业务逻辑的处理上; ( 2 ) 对系统的维护和扩展容易:当需要扩展系统的功能时,程序员更容易根据 现有的系统扩展功能; ( 3 ) 有利于团队分工合作、协作开发。这意味着不同的专业人员可以在自己所 擅长的领域进行开发。如,j s p 程序员可以负责v i e w 部分的开发。 东北大学硕士学位论文 第二章m v c 设计模式 + 方法凋用 一一卜事件 图2 1m v 0 设计模式 f i g 2 1m v cd e s i g np a t t e r n 2 4m o d e l1 与m o d e l 2 应用结构 2 4 1m o d e l1 应用结构 w e b 应用系统的开发具有一些鲜明的特点,其一是客户机与服务器之间的无状 态连接。h t t p 的底层是t c p 协议,而t c p i p 是一种无状态连接的协议。这 种连接状态使得模型很难将改变通知视图。为了使视图能够同步表达模型的状态, 客户端必须不断向服务器进行查询,这样会急剧加重服务器的负担。另一个特点 是,传统的设计方式即页面到页面( p a g et op a g e ) 方式将数据显示、业务逻辑、 流程控制和数据持久性处理等强耦合在一个代码模块中。这种以j s p 为中心的开 发模型成为m o d e l1 ,其应用流程如图2 2 所示。 采用这种模型在开发过程中会遇到很多问题,而且会因为应用程序规模的不 断扩大而加剧系统开发、维护的复杂程度。这些主要问题包括: ( 1 ) 合理分配开发角色和责任划分困难重重。主要体现在两个方面: 第一,h t m l 代码和j a v a 代码强耦合在一起,更改j s p 页面布局时要更改j a v a 代码,网页设计人员不能直接参与页面开发。 第二,j a v a 代码编写者必须同时关注网页设计,而不能专注于开发灵活高效 的应用程亭接口。 ( 2 ) 理解程序的整体流程较为困难,造成开发、维护的困难。由于网页内嵌有 流程逻辑,要想了解整个系统的流程,必须浏览所有的网页。 查! ! 垄兰堕主兰堡垒查笠三主坚坚堡盐茎垄 ( 3 ) 调试困难。调试过程中必须兼顾这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社会工作个案社会工作
- 高级讲师自我介绍课件
- 背诵量大的职业考试题及答案
- 北京高压电工考试试题及答案
- 北京高二数学月考试卷及答案
- 北航复试模拟考试题目及答案
- 保险高管考试题库及答案c类
- 保卫室的考试题及答案是什么
- 电焊使用知识培训内容课件
- 包头中考考试试题分析及答案
- 山东护士招聘考试题库及答案
- DB51∕T 2868-2022 机关事务应急保障规范
- 高中艺术特长生合同协议
- 要素式强制执行申请书(申请执行用)
- 慢性根尖周炎病例汇报
- 2025年秋数学(新)人教版三年级上课件:第1课时 几分之一
- 公司项目谋划管理办法
- 2025年职业指导师考试试卷:职业指导师专业能力
- 小学英语人教版四年级下册 巩固强化练(含答案)
- 防暴器材使用管理办法
- 2025-2026学年粤教粤科版(2024)小学科学二年级上册(全册)教学设计(附目录)
评论
0/150
提交评论