(计算机软件与理论专业论文)基于mvc模式的一种web应用框架.pdf_第1页
(计算机软件与理论专业论文)基于mvc模式的一种web应用框架.pdf_第2页
(计算机软件与理论专业论文)基于mvc模式的一种web应用框架.pdf_第3页
(计算机软件与理论专业论文)基于mvc模式的一种web应用框架.pdf_第4页
(计算机软件与理论专业论文)基于mvc模式的一种web应用框架.pdf_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 本文根据软件体系结构理论,讨论了基于体系结构的软件开发模式所包括的 重要活动;分析和比较了两种开发方式,即传统的w e b 应用开发方式和基于m v c 模式的w e b 应用开发方式。后者能够克服传统的w e b 应用开发方式所固有的弊端, 它的最大优点就是将显示逻辑与业务逻辑相分隔,以适应越来越复杂的w e b 应用 系统的设计需求因此,采用基于m v c 模式的w e b 应用开发模式成为不可避免的 趋势。 本文设计和实现了一个基于m v c 模式的w e b 应用框架根据m v c 模式,本框 架分为三个层次。视图层提供了一个视图组件库和一些显示模板视图组件库与 模板能被复用,以减轻页面开发人员的工作负担控制层设计和实现了一个主控 制器和三个执行器:s q l 执行器、a p i 执行器以及默认执行器,三种执行器分别 响应三种类型的处理请求模型层定义了数据结构以及封装了数据库操作。另外, 本框架设计和实现了系统集成辅助工具包,即菜单管理,用来方便地集成采用本 框架开发的系统,它包括菜单项管理、菜单模板管理和简单用户管理三个模块。 在本框架的设计与实现中采用了软件体系结构理论、面向对象思想设计模 式理论、j 2 e e 和x m l 技术。采用本框架可以具有许多优越性,例如好的重用性、 可扩展性、易于维护、以及提高开发人员的工作效率和代码质量等;因此,本框 架应成为基于w e b 应用开发者首先考虑采用的一种工具 关键词m v c 设计模式面向对象软件体系结构框架w 曲应用 a b s t i 。a c t t h i sp a p e rd i s c u s s e st h ei m p o n a i l t a s p e c t si ns o f t w a r ed e v e l o p m e n t b a s e do nt h e a r c h i t e c t u r e b y t h e t h e o r y o ft h es o f t w a r e a r c h i t e c t u r e ,t i l i 8p a p e ra n a l y z e sa n d c o m p a r e s t w o t y p e so fd e v e l o p i n gm o d e ,w h i c ha r et h e “a d i t i o n a ld e v e l o p m e n t m o d e o fw 色ba p p i i c a t i o na n dt h e d e v e i o p i n gm o d eo fw b ba p p l i c a t i o nb a s e do nm v c p a t t e n l t h e d e v e l o p m e n t m o d eb a s e do nm v cp a t t e mc a no v e r c o m e m a n y d i s a “a n t a g e si nt h et r a d i t i o n a ld e v e l o p m e n tm o d e a n di t s e x c e l l e n tf e a t u r ei st o s e p a r a t ed i s p l a yl o g i ca n do p e m t i o nl o g i c ,w h i c hc a i li n e e td e s i g l lr e q u i r c l n e n t so ft h e m o r ea n dm o r ec o m p l i c a t e dw 曲a p p l i c a t i o n s oi ti sa ni n e v i t a b l et r e n dt ou s et h e d e v e l o p m e n t m o d eb a s e do nm v c p a t t e mf b rw e ba p p l i c a t i o n t h i sp a p e rd e s i g n sa n di m p i e m e n t sam v c p a t 蛔mb a s e df r a m e w o r kf o rw 曲 a p p l i c a t i o n s o f t w a r es y s t e m s t h ef r a i n e w o r kh a st h r e el a y e r s a c c o r d i n gt om v c p a t t e m t h ev i e wl a y e rp m v i d c s ac o m p o n e n tp a c k a g ea 1 1 ds o m et e m p l a t e s t h e c o m p o n e n tp a c k a g ea n dt h e s e st e m p l a t e sc a nb er c u s e da n dl i 曲t e n t h eb u r d e no f d e v e l o p e r so f w e b p a g e t h ec o n 廿0 1 l e r l a y e r i sc o m p o s e do fo n ec o n t r o l l e ra n dt h r e e e x e c u t o r s ,w h i c ha r et h es q le x e c u t o r t l ea p ie x e c u t o r a n dt h ed e f a u l te x e c u t o l t h et h r e ee x e c u t o r sr e s p o n dt 1 1 r e es o r t so fr e q u e s tr c s p e c t i v e l y t h em o d e ll a y e r d e f i n e st h ec l a t as t r u c t u r e sa n de n c a p s u l a t e sm eo p e r a t i o n st od a t a b a s e i nt h e f r a m e w o r kt h e s ei sa l s oa na s s i s t a l l tt o o lp a c k a g ef o rs y s t e mi n t e g r a t i o n ,t h a ti sm e n u m a n a g e rs y s t e m ,w h i c h i sc o m p o s e do fm e n ui t e m m a n a g e r 、 m e n u t e m p l a t em a i l a g e r a n ds i m p l eu s e rm a n a g e l t h ef r a j n e w o r ko fw e b a p p l i c a t i o nb a s e do nm v cp a t t e mu s e st h et h e o r yo f t h e s o f t w a r ea r c h i t e c t u r c ,t h ed b j e c t 一嘣e n t e dp m 孕删n g m e 也o d ,m a l l y l 【i n d s0 fd e s i g n p a t t e m s ,j 2 e ea n dx m lt e c h n i q u e s s o ,t h ef r 锄e w o r k h a sm a n y a d v a r i t a g e s ,s u c ha s 9 0 0 dr e u s a b i l i t y s c a l a b i l i t y m o d i f i a b i i i t y ,a n d i tc a na l s o i m p r o v ed e v e l o p e r s w o r k i n ge m c i e n c ya n dt h ec o d eq u a l i t i e s s ot h e f h m e w o r ki san i c e o p t i o n f o r s o f t w a r ed e v e l o d e r st oc h o o s ei t y r d sm v c ;d e s i g l lp a t t e m ;o b j e c t o i i e n t e d ;s o r w a r ea r c l l i t e c t u r e ;f m m e w o r k ; w 曲印p l i c a t i o n 1 1 课题背景 第1 章绪论 随着软件规模和复杂度的日渐升级,为了解决日益加剧的软件危机,人们采 用工程化的方法开发软件,即所谓的软件工程。在软件工程实践中,人们又越来 越深刻地认识到,随着软件系统规模和复杂性的增长,系统总体结构设计和规格 说明的重要性已远远超过特定算法和数据结构的选择,良好的体系结构对保证系 统的成功至关重要。如同高楼大厦一样,每个软件系统都有一定的体系结构。 如今,网络已融入人们的生活,因此各种w e b 应用系统也应运而生,尤其是 电子商务、电子政务的应用已经成为一个热门领域。为了满足用户的需求,适应 激烈的市场竞争,各种w e b 应用系统必须不断地改进其内容和形式。而解决该问 题的关键是选择正确的系统体系结构。由于w e b 应用系统多采用b s 模型的三层 或多层框架结构,而且它的系统设计主要包括用户界面的设计、应用逻辑或事务 逻辑的设计、数据库的设计三个主要方面,针对这三个主要方面的不同处理方式 有不同的软件设计模式,就w e b 应用系统整体而言,多采用层次化的体系结构。 m v c ( m o d e l v i e c o n t r o l l e r ) 模式正是将系统划分为模型层、视图层、控制层, 因此,m v c 模式适应了日益复杂的w e b 应用系统的设计需求。采用m v c 模式构建 w e b 应用系统的体系结构,能够有效的解决在w e b 应用系统开发过程中由于系统 结构的复杂程度较高而带来的如何解决代码之间的耦合度、代码的易维护性、应 用框架的可重用性、组件的可重用性、易测试性和不同技能的开发人员的分工等 诸多关键性问题。 1 2 软件体系结构与开发模式以及m v c 框架 1 2 1 软件体系结构的定义及其作用 1 2 1 1 软件体系结构的定义 软件体系结构3 1 1 是一个软件系统的组织结构。一般地说,一个系统的软件 体系结构由一组计算构件、构件之间的交互连接件以及构件和连接件如何结 合在一起的约束限制的描述组成的。一个特定的系统是用一些构件的集合和构件 之间的交互来定义的,而这样的系统又可以在大型的系统设计中作为一个复杂的 北京工业大学工学硕士学位论文 元素。客户和服务器、数据库、分层系统中的层都是所述的构件的实例。软件体 系结构不仅指定了系统的组织结构和拓扑结构,而且还显示了系统需求和构成系 统的元素之间的对应关系,提供一些设计决策的基本原理。 1 2 1 2 软件体系结构的作用 如今,越来越多的人们认识到有效的软件系统开发方法必须要有体系结构级 的设计设施,坚实的软件结构体系基础将真接带来开发和维护上的巨大效率。它 的作用表现在如下的几个方面【2 2 1 : 1 风险承担者之间的交流媒介。软件构架是一种常用的、在较高层次上对系统 的抽象,绝大多数系统的风险承担者都以此作为彼此理解、达成共识或相互 沟通的基础。 2 早期设计决策。软件架构是所开发系统的最早期设计决策的体现,而这些早 期决策对系统的后续开发、使用和维护具有重要的影响。这也是能够对所开 发系统进行分析的最早时间点。 3 可传递的系统抽象。软件构架是关于系统结构及系统各组件工作机制的相对 精简、却又能突出反映问题的模型。这种模型可以在多个系统之间传递,特 别是可以应用到具体相似需求的系统中,并能够促进更大规模的重用。 因此,软件体系结构便于软件设计师之间通信,最大程度的保证系统的早期 设计决策的正确性,并且,基于软件体系结构的复用为软件复用开拓了一条道路。 1 2 2 开发模式的定义与特点 1 2 2 1 开发模式的定义 开发模式是3 1 1 指在进行应用系统设计、开发、测试等一系列过程中所应遵 循的步骤、原则等等,涉及到系统设计、开发、测试、人员分配等等方面。对于 不同类型的应用系统,如b s 结构的应用与c s 结构的应用,其开发模式可能不 同。为了实行一套开发模式,还需要一些额外的资源,比如系统框架、工具、文 档标准等等,在这些资源的辅助之下来实现某种开发模式。 1 2 2 2 开发模式的特点 一个具有实用价值的开发模式应该具有以下特点蚓: 1 系统可分层 系统可分层是指系统可以分为几个层次进行设计和开发,各层次之问定义好 帚l 覃芎卣诧 接口,每个层次都可以单独开发和测试,这样可以提高并行性。分层的原则是功 能的内聚。每个相对独立的功能块,都需要不同的知识和技能,而且在整个系统 的开发过程中,总都会有一些相同或者相似的功能可以提取出来。 2 功能可递增 功能可递增是指系统支持的功能可以逐渐增加,而不需要改动或者很少改动 已有的代码。在系统设计和开发的过程中,所支持的功能很难一步到位,因为除 了主要的业务逻辑外,还有很多附加的功能,如出错处理、权限判断、个性化等。 如果在系统一开始设计和实现时就考虑到所有的功能,这样会提高设计的难度, 降低开发效率。理想的情况是各个功能可以独立的添加入系统,比如一开始时只 实现系统的业务逻辑,然后添加出错处理,再添加权限判断等等。这要求系统支 持后续功能的插入。 3 人员可分工 通常在开发应用时,会分配多个人员参与某一模块的开发,这些开发人员分 别负责不同的工作,可以并行的进行。分配工作的方式有多种,如按系统层次分, 按功能模块分,按开发阶段分等等。如何使人员之间的分工最明确、并行性最好、 开发效率最高是开发模式需要解决的问题。 4 过程可迭代 应用系统通常分为多个模块,每个模块的开发又会分为多个阶段,比如设计、 开发、测试等等,每一次过程完成一个模块,同时对已有的模块进行集成测试。 在不同的阶段会有不同的角色,比如设计阶段的系统分析员、开发阶段的程序员、 测试阶段的测试员等等,在一个模块的设计完成后,该模块进入开发阶段,此时 系统分析员就会进入另一个模块的设计;同样,在模块完成开发阶段进入测试阶 段时,第二个模块的设计基本完成,程序员就可以进入第二个模块的开发阶段, 这样的迭代过程可以充分使系统的设计、开发和测试并行进行。 以上所述的特点是和面向对象设计的基本原则相对应的,即“每个对象只做 一件事情,而且做的最好”,在开发模式中,我们提倡“每次只做一件事情,而 且做的最好”,或者“每个角色只做一件事情,而且做的最好”。 1 2 3w c 模式的定义与特点 1 2 3 1 设计模式概述 在面向对象系统的设计中,可以认为m 1 ,类及其生成的对象是构成面向对象 系统的最基本元素;采用设计方法组合这些元素,得到构成面向对象系统的构件, 同时,这些构件的设计方法在经过不断的改进和完善后逐渐成型,成为构成面向 北京工业大学工学硕士学位论文 对象系统的基本设计参考,也称为设计模式。我们采用设计模式来抽象和总结系 统构件的设计方法,同时将它用于新的系统构件的设计中。使用类和对象,使我们 在元素的层次上实现了重用性,而使用设计模式,则在系统构件的层次上实现了 重用性。设计模式提供了在特定应用场景下解决问题的类、对象及相互关系的设 计方法。这些方法并不针对于具体的系统,只是提供了种设计系统的思考方法, 一个设计模式可能用于不同的系统,一个系统也可能会用到多个设计模式。 1 2 3 2m v c 模式的定义与特点 模型一视图一控制器( m v c ) 是x e r o xp a r c 在八十年代为编程语言 s m a 儿t a l k 一8 0 发明的种软件设计模式 2 4 】。m v c 模式属于结构型设计模式,即 应用类和对象的组合,获得比较复杂的结构。m w 包括三类对象:模型d e l 是 应用对象,视图v i e w 是它在屏幕上的表示,控制器c o n t r o l l e r 定义用户界面对 用户输入的响应方式。m v c 将这些对象分离以提高灵活性和复用性。 组成吖c 三类对象的含义m 1 :( 1 ) 模型( m o d e l ) 对象:应用程序的主体部分。 包含完成任务所需要的所有行为、数据以及对象的状态等。( 2 ) 视图( v i e w ) 对 象:负责用户界面的生成,显示从模型中提取的数据。视图对象可以是一组可视化 的元素,如对话框、菜单、工具条等。( 3 ) 控制( c o n t r o l l e r ) 对象:根据用户的输 入,控制用户界面数据的显示及更新模型中数据的内容。如图1 1 所示 模型( m o d e l ) 封装应用状态、响应状态查询、体现应用功能、向视图通知数据变化 变化通知 视图( v i e w ) 实施模型、 来自模型的更新请求、 发送用户请求给控制器、 允许控制器选择视图 视图远择 用户动作 图1 1m v c 结构图 状态改变 控制器( c o n t r o l l e r ) 定义应用行为、 将用户动作映射到模型、 响应视图选择、 每个功能的入口 m v c 最显著的特点就是埘c 应用程序被分成三个核心部件:模型、视图、控 制器,它们各自处理自己的任务,强制性的使应用程序的输入、处理和输出分开。 给出了一个整个应用的松散的耦合架构。从而使系统的设计清晰,提高复用性、 4 第】章绪论 扩展性、灵活性。 1 2 4 软件体系结构与开发模式的关系 基于软件体系结构的开发过程一般包括如下步骤: 1 弄清系统需求,通过对应用领域需求进行分析,建立领域模型; 2 根据用户需求和领域模型,选择一个或多个体系结构风格,构建一定的软件 体系结构; 3 对所构建的软件体系结构进行清楚的表述,以保证具有不同教育背景的相关 人员都能够很好的理解,使得该体系结构真正成为系统设计的砥柱; 4 对所构建的软件体系结构进行分析和评价,包括对系统运行时的质量属性, 例如性能、可用性、功能,以及系统非运行时的质量属性,例如可更改性、 可重用性、可集成性、可移植性等,进行分析和评价,以对体系结构进行不 断的修正,使得构建的软件体系结构满足系统需求; 5 实现基于该体系结构的系统并保证与体系结构相一致,使得开发人员在实际 开发中忠实于体系结构所规定的结构,遵守关于各部件之间交互的约定。 因此,开发模式的选择是建立在软件体系结构的基础之上的,一定的软件体 系结构决定了定形式的开发模式。因为软件体系结构在一定程度上,规定了在 开发过程中进行应用系统设计、开发、测试、人员分配等一系列活动中所应遵循 的步骤。因此恰当的软件体系结构一般都能很好地体现开发模式的四个特点,而 合理的开发模式对软件系统的成功具有关键性的作用,因此,好的软件体系结构 已经是决定一个软件系统成功的重要因素,它在软件开发中的地位也越来越重 要。 1 2 4m v c 框架与软件体系结构、开发模式的关系 1 2 4 1m v c 框架与体系结构的关系 随着越来越多的软件工程研究人员将研究热点集中到软件体系结构的研究 上,目前已有一些公用的体系结构风格【2 3 1 ,如管道过滤器、分层系统、 c l i e n t s e r v e r 结构等。其中分层系统采用层次化的组织方法倒,每一层向其上 层提供服务,并利用下层的服务。在这种系统中,软件部件是实现在层次结构中 的虚拟机,连接是层次与层次之间交互的协议。软件体系结构的设计主要包括以 下方面:系统构件的描述,构件之间的交互,指导构件交互的模式,以及旖加在模 式e 的约束。 北京工业大学工学硕士学位论文 框架是对特定领域的软件体系结构的具体描述;框架是对一个应用软件系统 的部分或整体的可重用设计,由一组抽象构件及构件实例间的相互作用方式组 成;框架是由开发人员定制的应用系统的骨架。m v c 框架将系统分为视图层、 控制层、模型层三个层次,并且定义了三个层次之间的耦合关系,因此,可以说 m v c 框架属于分层系统的体系结构。该体系结构包括对视图、控制、以及模型 三个系统构件的描述、构件之间的交互,指导构件交互的模式,以及施加在模式 上的约束。因此,采用m v c 框架,也就采用了分层系统的体系结构。 1 2 4 2 _ v c 框架与开发模式的关系 因为m v c 框架采用了一定的体系结构,也就决定了一定的开发模式。这种开 发模式在一定程度上体现了开发模式的上述四个特点: 1 系统可分层 系统分为三层:界面层( v i e w ) 、控制层( c o n t r o l l e r ) 和模型层( m o d e l ) 。界 面层负责与用户之间的交互;模型层完成系统的功能;控制层连接界面层和模型 层,进行数据格式的转化,并且控制界面之间的拓扑关系。 对于一个w e b 应用系统的设计和开发,一般会有如下几个方面需要考虑: ( 1 ) 用户界面( u s e ri n t e r f a c e ) :指系统与用户进行交互的界面: ( 2 ) 应用逻辑( a p p l i c a t i o nl o g i c ) :指系统可以完成的功能; ( 3 ) 商业逻辑( b u s i n e s sl o g i c ) :指系统如何完成功能; ( 4 ) 数据模型( d a t am o d e l ) :指系统所要操纵的数据以及数据之间的关系; ( 5 ) 存储模型( p e r s i s t a n c em o d e l ) :指系统的数据如何持久化。 而对于较复杂的w 曲应用系统往往要求: ( 1 ) 同样的应用逻辑可以对应不同的用户界面; ( 2 ) 同样的应用逻辑可以由不同的商业逻辑实现; ( 3 ) 商业逻辑的操作建筑在数据模型的基础上; ( 4 ) 数据模型维护自身与存储模型之间的映射。 与上述的分析模型相对应,m v c 模式中的界面层和控制层属于用户界面,应 用逻辑体现为模型层向控制层提供的接口,模型层则实现商业逻辑、数据模型和 存储模型。 2 功能可递增 m v c 模式使得系统由多个层次组成,下层为上层提供服务。层次结构将各层 的功能分离开来,使得各层能够专心予它自己的功能,并将下层修改的波及范围 减小到最低。各层之间的耦合,尽可能面向接口和工厂,这样用户界面的改动不 会影响到应用逻辑、商业逻辑、数据模型和存储模型;对于实现同样业务的不同 的系统,我们只需修改商业逻辑;存储模型发生变化,只会影响到数据模型。同 时,为新功能预留接口,每一层为添加新功能提供一定的机制。 6 第l 覃绪论 3 人员可分配 对于m v c 的三层结构,很自然的将人员分为三种角色:界面开发、控制层开 发和模型开发。三个层次的开发者,通过接口文档集成。这种分工,任务明确, 任务量易于估算,可以充分利用擅长界面设计的人才,熟练业务逻辑、数据库设 计的人才,以及整体系统设计的人才,使得开发人员能够发挥各自所长,同时开 发可以并行进行,从而提高开发效率,加快开发进程。三个层次的开发都可以有 单独测试,最后再集成测试。 4 过程可迭代 采用m v c 模式进行开发,对于生成有组织的模块化应用程序,是一种经证实 的和方便的方法。这些应用程序能够清晰地划分逻辑、样式和数据。因此系统的 模块可迭代开发,本文介绍的采用m v c 模式进行开发的最后集成于菜单之中。 1 2 5w e b 应用系统开发的研究现状 1 2 5 1w 曲应用系统的传统开发方式的特点 w e b 应用系统的传统开发方式是将业务逻辑和表现逻辑集成在一起,采用 h t m l 、j s p 和s e r v l e t s 技术开发;或者仅仅是将业务逻辑和表现逻辑分开,采 用h t m l 、j s p 、s e r v l e t s 、j a v a b e a n s 技术开发。 这两种开发方式在特定解决方案中的应用程序混合了h t m l 代码与应用程 序逻辑。很显然,这种开发模式使得界面设计的更改和业务逻辑的更新在大型应 用程序中既困难又昂贵,因为紧耦合的表示和逻辑将这两种元素搅和在一起,进 而导致系统容易出错,并且调试困难,以致开发进展缓慢。而且,混合的代码要 求部分开发人员具备界面设计知识,或者要求开发人员与图形设计人员之间有紧 密的工作关系,这常常会造成时间上的浪费。 因此,这两种开发方式都会面临着令人头痛的问题如开发周期漫长、客户需 求变化频繁、维护成本高、开发人员难于分工、应用的可维护性、可扩展性和可 测量性都比较低等问题。使得项目进展缓慢,软件更新困难,甚至一个处于维护期 的产品,当用户提出新需求时,网站的结构、页面结构、页面流程、功能和服务都 发生了变化,造成了整个应用软件,从表现逻辑部分到应用逻辑部分都必须重新 设计开发,导致必须从头做起进行新的开发工作。因此,提出新的开发模式就显 得尤为重要。 1 2 5 2 基于_ v c 模式的b 应用系统开发方式的研究现状 对于大型的w e b 应用系统,采用传统的开发方式存在着固有的弊端,因此, 7 北京工业大学工学硕士学位论文 今天m v c 设计模式( j 2 e e 的开发方法) 已经成为w e b 应用系统开发的主流。最近 几年m v c 被推荐为s u n 公司j 2 e e 平台的设计模式,并且受到越来越多的w e b 应 用系统开发者的欢迎。在j a v a 世界中,s t r u t s 是最著名的也是最常被谈及 的m v c 的开放源码体现之一。s t r u t s 是a p a c h e 基金会j a k a r t a 项目组的一个 o p e ns o u r c e 项目,它将s e r v l e t 2 2 和j s p1 1 标记( 属于j 2 e e 规范) 用作实 现的一部分,它由一组相互协作的类、s e r v l e t 和j s p 标记,组成一个可重用的 m v c 设计。它能够很好地帮助j a v a 开发者利用j 2 e e 开发w e b 应用。它有着优美 的面向对象设计,将m v c 模式”分离显示逻辑与业务逻辑”的能力发挥得淋漓尽 致。因此,越来越多的大型的w e b 应用项目的开发都纷纷采用s t r u t s 框架,或 者借鉴s t r u t s 架构设计,进行基于m v c 模式的应用系统的开发。 但是s t r u t s 也存在一些不足: ( 1 ) 陡峭的学习曲线。t a g l i b 是s t r u t s 的标记库,如果能灵活运用,能大大 提高开发效率。但对于初学者而言,却需要一个持续学习的过程,甚至还 会打乱你网页编写的习惯。 ( 2 ) s t r u t s 入门要比普通j s p 页面花费的时间长。部分是因为要处理更多的 文件和需要进行额外配置。 ( 2 ) s t r u t s 将h i v c 的c o n t r 0 1 1 e r 一分为三,在获得结构更加清晰的同时,也 增加了系统的复杂度。 1 2 5 3x m l 技术的发展 ) ( m l 是可扩展标记语言( e x t e n s i b l e m a r k u p l a n g u a g e ) 的英文缩写,是互联网 联合组织( w 3 c ) 于1 9 9 8 年2 月发布的跨平台标准。它是w 3 c 创建的一组规范, 以便于软件开发人员和内容创作者在网页上组织信息,其目的不仅在于满足不断 增长的w e b 应用需求,同时还希望借此能够确保在通过w e b 进行交互合作时,具 有良好的可靠性与互操作性。 与h t m l 一样,) ( m l 也源自s g m l ( s t a n d a r dg e n e r a l i z em a r k u pl a n g u a g e 一 种老资格的通用标记语言) ,但是) ( m l 却有着h t m l 语言所欠缺的巨大的伸缩性 与灵活性。x m l 不再象h t m l 一样有着一成不变的格式。x m l 实际上是一种定义语 言,即使用者可以定义无穷无尽的标记来描述文件中的任何数据元素,从而突破 了h t m l 固定标记集合的约束,使文件的内容更丰富更复杂并组成一个完整的信 息体系。 良好的数据存储格式、可扩展性、高度结构化、便于w e b 传输是) ( m l 主要的 四大特点,决定了其卓越的性能表现。由于) 【m l 能针对特定的应用定义自己的标 记语言,这一特征使得x m l 可以在电子商务、政府文档、报表等领域中一展身手, 根据不同的系统、使用者提供各具特色的独立解决方案。 第l 苹绪论 x m l 的诸多优点及先进性,使其备受w e b 开发者的青睐,尤其是微软公司, 它的o f f i c e 2 0 0 0 、w i n d o w s 2 0 0 0 、i e 4 0 、i e 5 o 都完全采用x m l 格式。w 3 c ( 万维 网联盟) 正在号召全世界的开发人员共同对x m l 进行定义和开发,) 【m l 势必将更 加成功。 国外x m l 技术正发展得如火如茶,而国内却仍处于初级阶段。在国外,已经 开发了c x m l ,e b x m l 等基于业务逻辑的电子商务交易语言标准,国内则有刚 面世的c n 咀。c n 皿。的目标是基于x m l 技术建立一个符合中国大陆商业习 惯、传统和商业流程的b 2 b 、b 2 c 电子商务语言规范,提供一套统一、灵活、 开放并且可扩充的数据交换格式。基于x m l 技术在w e b 应用中的诸多优点及其势 不可挡的发展趋势,本文所研究的框架,采用了) 【m l 技术,以实现系统各个层次 之间的松耦合关系,并且取得了预期的效果。也为这一风靡世界的技术在国内得 到进一步的推过应用起到了一点作用。 1 3 本文主要的研究内容 1 3 1 研究内容 本文研究的内容包括对相关理论的初步探讨和基于h i v c 模式的w e b 应用框架 的设计和基本实现。 本文所研究的相关理论包括,软件体系结构理论、设计模式思想、框架理论、 开发模式概念,面向对象思想,以及它们之间的关系,在软件设计、开发、维护 等各个阶段的作用。 本文所研究的基于m v c 模式的w e b 应用框架的整体设计与基本实现,研究中 主要采用了上述的相关理论知识,以及j 2 e e 的体系结构,) ( m l 技术。本文所讨 论的m v c 框架,属于分层的体系结构,分为视图层、控制层和模型层。视图层通 过采用多种设计模式,将h t m l 的常用的标记进行封装,开发一个具有一定体系 结构的视图组件库,同时实现了视图组件在页面上的几个基本的布局策略,以及 封装了j a v a s c r i p t ,引进了事件对象,并且在此基础上开发了几个常用的显示 模板,它们可以方便地生成页面文件;控制层设计和实现了一个控制器和三种执 行器,即s q l 执行器、a p i 执行器和默认执行器;模型层设计和实现了对数据库 操作的封装,结果集的转换,数据类型的定义,由予本课题不针对具体的应用系 统,因此不涉及具体的业务逻辑;同时,本文还设计和实现了用来连接三个层次 的x m l 配置文件。另外,本文对系统集成辅助工具包,即菜单管理也做了一定的 探索,用于方便的集成使用本框架设计和实现的应用系统。 本文将m v c 模式与j 2 e e 概念、x m l 技术相结合,使整个系统从各个视图组 9 北京工业大学工学硕士学位论文 件对象到整个框架结构都可以被复用,因此,采用本框架,使w e b 应用系统的设 计、开发、维护变得较为有效、快捷。 本课题研究的目的是为二次开发者进行w e b 应用开发时的辅助工具。 1 3 2 研究意义 本课题所研究的基于m v c 模式的w e b 应用框架,能够在j 2 e e 体系结构上, 安插w e b 应用的基本组件和组件包,可以构建可复用的软件系统框架,使得整个 框架结构基本不做修改或做很少的修改就可应用到其它相似的系统,因此达到多 层次的软件复用;这是由于j 2 e e 本身是由丰富的w e b 应用实践中抽象出来的系 统级的软件结构,它也提供了集成组件的能力,可以方便地构建基于组件的分布 式应用程序,而组件技术本身是种在设计和代码级有效的软件复用技术。两者 的结合既可以达到系统级的复用,又可以达到组件级的复用,能够开发出高效的 应用系统,因此,m v c 框架结构则可以构建可复用的系统框架。使用该框架可以 减少软件维护的工作量,提高软件的质量,缩短软件的开发周期,并能很好地适应 系统功能的变化,特别适合于电子商务的应用开发。 因为m v c 模式的最大特点就是显示逻辑与业务逻辑的分离,这对于开发大型 的w e b 应用系统的是十分有利的,而传统的开发方式也越来越体现出其不可避免 的缺点,因此它适应了w e b 应用系统变得越来越复杂的发展趋势,所以基于m v c 模式的w e b 应用系统的开发模式必将越来越被广泛采用。因此,本框架的设计和 实现,对于这种开发模式的进一步推广,起到了一定的作用。 本文所设计和实现的基于m v c 模式的w e b 应用框架与现有的基于m v c 模式的 应用框架( 包括s t r u t s ) 的实现方式不同。本文所设计的框架结构相对比较简 单,所实现的功能也不及s t r u t s 丰富,但是对于二次开发者来说简单易用,且 在一定程度上体现了m v c 模式的优点。是对开发基于m v c 模式的w e b 应用框架 次有益的探索。 1 4 本文的结构安排 本文运用软件体系结构理论,设计模式思想,面向对象技术,开发模式概念, j 2 e e 和x m l 技术,设计与实现了基于 l v c 模式的w e b 应用框架。总共分为七章。 第一章的绪论部分,主要介绍了本课题的研究背景,软件体系结构、设计模式、 开发模式的概念,以及本课题的研究现状、研究内容、重点和意义;第二章框架 的总体设计方案,介绍了本框架的体系结构,以及各个x m l 配置文件的设计,描 述了本框架的总体设计方案;第三章介绍了m v c 框架的视图层的设计与实现;第 四章介绍了m v c 框架的控制层和模型层的设计与实现;第五章介绍了几个常用的 1 0 第1 苹绪论 显示模板的设计与使用方法;第六章介绍了菜单管理,包括菜单项管理、菜单模 板管理与简单用户管理三个模块的设计与实现;第七章介绍了使用本框架的二次 开发者需要做的工作,包括环境配置,在视图层、控制层与模型层各个层次上的 开发工作;总结与展望中,对本课题的研究过程做一总结,并且对下一步的研究 工作做一展望。 北京工业大学工学硕士学位论文 第2 章基于m v c 模式的w e b 应用框架的总体设计 2 1 框架的总体设计 2 1 1 框架的定义与开发方法 2 1 1 1 框架的定义 r a l p hj o h n s o n 教授对框架做了以下定义f : 1 框架是一个应用软件系统的部分或整体的可重用设计,由一组抽象构件及构 件实例间的相互作用方式组成; 2 框架是由开发人员定制的应用系统的骨架。 从软件体系结构思想出发开发的框架模型提出了体现某一领域的所有共 性的公共模式,并且这一模式很易于被系统管理者和系统使用者所理解和接 受。由此可见,框架是对于一个软件系统的全部或部分的可重用设计。一个 框架是对于某一特定领域所有共性因素的提取,它用一系列的对象和它们之 间的接口来对应静态和动态的结构,并且它为了能够满足多种不同使用目的 实体,它必须能够同时在多个方向上进行扩展,从而使开发人员很容易在此 基础上进行新系统的开发。 2 1 1 2 框架的开发方法 框架的开发不同于应用程序的开发,其最主要区别就在于:框架要涉及相关 领域的所有概念,而应用程序只需包含具体需求所涉及的知识。因此,框架的开 发步骤为: 1 领域分析( 肋册抽a 加粥,s ) :描述框架所涉及的领域,根据以前开发的领 域应用软件鉴别概念和需求,寻求领域专家和相关规范。这一研究的结果是 产生领域分析模型,模型包括领域需求,相关概念及概念间的联系。 2 体系结构设计( 血动, p c 煳出s 伽) :把领域分析模型作为输入,选取合 适的体系结构风格,一旦确定了体系结构风格,框架的上层设计也就确定了。 3 框架设计( 胁舱竹幽s 伽) :确定体系结构风格后,开始框架的功能分解、 抽象类的设计 4 框架实现( 户e 胞以厕p e 鹏疗妇f ,彻) :即抽象类、控制流程和框架类的具 1 2 第2 章基于m v c 模式的w c b 应用框架的总体设计 体代码级的实现; 5 框架测试( 厅硼e 附心f p 5 f ) :测试框架是否实现了所需功能,并对其进行可 用性的评估。 其中文档的编写贯穿于框架开发过程的始终。清晰、完整而又正确的设计文 档,是框架开发过程中各阶段人员进行沟通所必须的,是框架能被正确的开发出 来的保证;清晰而又完整的用户使用手册,是用户能够理解框架,并且正确使用 框架进行二次开发的保证。因此,文档编写是贯穿于整个框架开发过程中的个 重要的部分。 2 1 2 州c 框架的总体设计图示 本文依据框架的含义,按照框架的开发方法,设计和实现了基于m v c 模式的 w e b 应用框架。本框架的体系结构风格属于分层结构,根据m v c 模式,从上到下 依次分为视图层、控制层、模型层。本文从静态和动态两个角度来研究框架的体 系结构。 2 1 2 1m v c 框架的静态体系结构 从静态结构出发,本框架的体系结构如图2 1 所示。 如图2 1 中所示,本框架由视图层、控制层、模型层三个层次组成。本框架 的视图层由可定制的视图生成器以及可重用的视图组件库和模板库组成的,其中 视图组件库由一系列具有一定体系结构的可重用的视图组件构成,模板库是在视 图组件库的基础上开发的,它提供常用的显示模板,能够更大程度的减轻页面开 发人员的工作负担;控制层由主控制器以及默认执行器、s q l 执行器、a p i 执行 器三个执行器组成,根据) ( m l 配置文件,控制器会将请求分派给这三种执行器, 来进行三种类型的请求处理,该层所调用的工具类库是集成第三方所提供的现成 的功能,包括对文件的管理,对) ( m l 文件的解析等功能;模型层实现了对数据库 操作、结果集转换、数据类型封装等功能。 使用本框架进行二次开发时,在视图层,用户通过调用视图组件库和模板库 来构造一定的视图生成器,以快捷有效地开发出所需的j s p 文件:在控制层,用 户需要编写符合相应d t d 文件定义的x m l 配置文件( c o n t r o l l e r - m a p p i n g s x m l , 定义见2 2 1 节) ,如果要求主控制器调用a p i 执行器,那么用户需要遵循一定 的接口定义,开发相应的应用处理器;在模型层,用户在开发应用处理器时会调 用该层所提供的功能。 本框架的v i e w 层的视图组件、模板库,所包含的内容以及提供给用户的使 用接口见附录7 。例如通过页面提交向数据库中添加图书信息的一个简单的应 北京工业大学工学硕士学位论文 用,并且用户希望主控制器调用a p i 执行器来处理页面请求。则用户需要在视图 层开发的j s p 文件见附录4 ,需要在控制层开发的j a v a 类见附录5 ,需要书写的 c o n t r o l l e r _ m a p p i n g s x m l 文件的内容见附录6 。 图2 1 框架的静态体系结构 其中的单线箭头+ 代表框架的不同层次之间的功能调用; 其中的双线箭头c = 令代表框架的同一层次之内的功能调用。 1 4 2 1 2 2m v c 框架的动态体系结构 从动态的角度分析,本框架的体系结构如图2 2 所示。 图2 2 框架的动态体系结构图 如图2 2 所示,应用处理流程由一个主控制器进行调度。主控制器将请求( 携 带一定处理信息的h t t p 请求) 分派给合适的执行器( s q l 语句执行器、a p i 执行 器或者默认执行器) ,执行器是执行具体请求的处理器( 用户开发的应用处理控 制器) 。具体的请求处理器通常会调用模型层所实现的对数据库操作、结果集转 换、数据类型封装等功能。然后,控制会返回到主控制器,并由主控制器交给合 适的视图( j s p ) 。视图、控制器、模型三大部分之间的关系通过) ( h i l 配置文件定 义,从而提供了三者之间的松耦合,让基于b s 的w e b 应用易于创建、维护和扩 展。为了便于j s p 的开发,本框架提供了一个视图组件库和显示模板库,可以重 用基础视图组件与模板,灵活定制各种视图,并提供了进一步对视图进行配置和 过滤的可能。 北京工业大学工学硕士学位论文 2 2x m l 配置文件的设计 本框架主要使用了三个) ( m l 配置文件。c o n t r o l l e rm a p p i n g s x m l 和 h t m 上一t a g s x m l 是必须要有的;根据使用者的使用需求,h t m l j a v a s c r i p t s x m l 是可选的。其中c o n t r o e r 一眦p p i n g s x 】1 配置文件定义了视图层的每个h t t p 请求,交给控制层的主控制器进行处理的方式,实现了视图层、控制层和模型层 的松耦合:h t 毗一t a g s x m l 配置文件定义了每个被封装的h t m l 的t a g 视图组件 基本的h t m l 的代

温馨提示

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

评论

0/150

提交评论