(计算机应用技术专业论文)调度算法在单车核算系统中的应用研究.pdf_第1页
(计算机应用技术专业论文)调度算法在单车核算系统中的应用研究.pdf_第2页
(计算机应用技术专业论文)调度算法在单车核算系统中的应用研究.pdf_第3页
(计算机应用技术专业论文)调度算法在单车核算系统中的应用研究.pdf_第4页
(计算机应用技术专业论文)调度算法在单车核算系统中的应用研究.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

(计算机应用技术专业论文)调度算法在单车核算系统中的应用研究.pdf.pdf 免费下载

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

文档简介

浙江大学硕士学位论文摘要 摘要 随着计算机和网络技术的不断发展,信息化已经深入到社会发展的方方面 面。在企业方面,将原有的业务体系信息化网络化已经成为一个非常迫切的问题。 杭州市公共交通集团有限公司的单车核算系统就是在这样的背景下提出并研发 成功的。该系统在现有的几个信息化管理系统的基础上,整合了相关的数据,实 现了对单车,线路,车队,营运公司,集团公司的成本核算和利润的综合统计, 为领导层提供了公司运营财务状况的详尽信息。 本文在实现了单车核算整体框架的基础上,针对系统涉及数据量极大而导致 的计算性能问题,提出了相应的解决及改善方案并加以实现,最终系统很好的完 成了预期的计算性能指标。 本文的主要工作如下: 1 讨论了研究课题的相关背景和目前的研究现状 2 讨论了整个系统框架构架的相关理论和技术,包括了j 2 e e 的概述,m v c 设 计模式与s t r u t s 框架的介绍,o r m 技术与h i b e r n a t e 框架的原理。 3 首先介绍了单车核算系统的系统分析与设计,包括了系统需求分析,系统 框架设计,业务流程设计,数据库设计以及软件平台构建。接着分析了单车核算 系统的框架实现,包括了配置文件的解析,视图层,控制层以及持久层的实现分 析。 4 首先分析了调度算法在单车核算中的应用背景和研究意义,突出了单车核 算系统计算中存在的因涉及数据量巨大而导致的性能问题,以其解决办法。接着 讨论了基于事务优先级的调度算法在单车核算系统的应用与实现。然后分析了单 车核算的流程,并介绍了单车核算中的一种核算方式的实现,并分析s o l 优化在 核算模块实现中的应用。 5 总结了全文的工作,并阐述了未来的研究方向,例如基于历史记录的分析 改进方法等。 关键词单车核算s t r u t sh i b e r n a t e 优先级调度算法s q l 查询优化 浙江大学硕上学位论文a b s t r a c t a b s t r a c t w i 也u n p r e c e d e n t e da d v a n c e si nc o m p u t e rs c i e n c ea n dn e t w o r kt e c h n o l o g y , i n f o r m a t i o n i z a t i o nh a se x e r t e di t si n f l u e n c eo ne v e r ya s p e c to fs o c i a ld e v e l o p m e n t o nt h ep a r to fe n t e r p r i s e s ,i th a sb e c o m ea l l u r g e n tt a s kt oi n f o r m a t i o n i z ea n d i n t e m e t i z et h e i re x i s t i n gb u s i n e s ss y s t e m s ac a s ei np o i n ti st h es i n g l eb u sa c c o u n t i n g s y s t e mo fh a n g z h o up u b l i ct r a n s p o r tc o r p o r a t i o n b a s e do nt h eo r i g i n a li n f o r m a t i o n m a n a g e m e n ts y s t e m s ,t h en e ws y s t e mm a k e sp o s s i b l et h ec o s t a n d p r o f i ta c c o u n t i n go f as i n g l eb u s ,b u sr o u t e s ,b u st e a m sa n dt h ec o r p o r a t i o na tl a r g e ,p r o v i d i n gf u l la n d a c c u r a t ed a t af o rt h ed e c i s i o nm a k i n gp r o c e s s b a s e do nt h ec o m p l e t i o no ft h es i n g l eb u sa c c o u n t i n gs y s t e m ,t h i sp a p e rp u t s f o r w a r ds o m em e a s u r e st oi m p r o v et h ep e r f o r m a n c eo fc o m p u t e r sw h i c hw a sh i n d e r e d b yt h eh u g ed a t ao ft h ee x i s t i n gs y s t e m t h e s em e a s u r e sf i n a l l yw e r ep r o v e dv a l i da n d c o n s t r u c t i v e t b j sp a p e ri si n t e n d e dt of o c u so nt h ef o l l o w i n gr e s e a r c hs u b j e c t s : 1 ab r i e fa n a l y s i so ft h er e l a t e dr e s e a r c hb a c k g r o u n da n dt h ec u r r e n ts t a t eo f r e s e a r c h ; 2 a ni n d e p t hd i s c u s s i o no ft h ei m p o r t a n tt h e o r i e sa n dt e c h n o l o g i e su n d e r l y i n gt h e s y s t e m ,i n c l u d i n gd i s c u s s i o no fj 2 e e ,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 ,o r m a n d w o r k i n g t h e o r i e so ft h eh i b e r n a t ef r a m e w o r k ; 3 f o l l o w i n ga ni n t r o d u c t i o no ft h es i n g l eb u sa c c o u n t i n gs y s t e mw h i c hc o v e r s t h er e q u i r e m e n ta n a l y s i sa n df r a m e w o r kd e s i g no ft h i sn e ws y s t e m ,b u s i n e s so p e r a t i o n f l o w , d a t a b a s ed e s i g na n dt h es o f t w a r ep l a t f o r mc o n s t r u e t i o n ,t h i sp a p e rd i s c u s s e st h e s y s t e mf r a m e w o r kr e a l i z a t i o nf r o mt h ef o l l o w i n ga s p e c t s :t h ec o n f i g u r a t i o nf i l e s ,t h e v i e wl a y e r , t h ec o n t r o ll a y e ra n dt h ed a t ap e r s i s t e n c el a y e r ; 4 a f t e rad i s c u s s i o no ft h er e s e a r c hb a c k g r o u n da n dr e s e a r c hv a l u eo ft r a n s a c t i o n s c h e d u l i n ga l g o r i t h mi nt h es i n g l eb u sa c c o u n t i n gs y s t e m ,t h i sp a p e rt h e nt u r n st ot h e p e r f o r m a n c ep r o b l e mo ft h ee x i s t i n gs y s t e mc a u s e db yt h eh u g ed a t aa n dp u t sf o r w a r d s o m em e a s u r e st os o l v et h i sp r o b l e m a f t e rt h a tt h i sp a p e ri n t r o d u c e st h er e a l i z a t i o n a n da p p l i c a t i o no ft h ep r i o r i t y - b a s e dt r a n s a c t i o ns c h e d u l i n ga l g o r i t h mi nt h es i n g l e b u sa c c o u n t i n gs y s t e m t t l i sp a p e ra l s oc o v e r st h ea n a l y s i so ft h e s i n g l eb u s a c c o u n t i n gs c h e d u l ea n dt h ea p p l i c a t i o no fs q lq u e r yo p t i m i z a t i o ni ns u b m o d u l e r e a l i z a t i o n 5 a tl a s t ,as u m m a r yo ft h i sp a p e ri sm a d e ,a n dt h ef u t u r er e s e a r c hd i r e c t i o ni s p o i n t e do u t ,s u c ha st h eh i s t o r y - b a s e dw a y so fa n a l y s i sa n di m p r o v e m e n t k e y w o r d s s i n g l eb u sa c c o u n t i n g ,s t r u t s ,h i b e r n a t e ,p r i o r i t y - b a s e ds c h e d u l i n g a l g o r i t h m ,s q lq u e r yo p t i m i z a t i o n 浙江大学硕士学位论文 图目录 图目录 图2 1j 2 e e 三层体系结构6 图2 。2m v c 设计模式7 图2 3j s p 作为独立自主的模块:7 图2 - 4j s pm o d e l1 结构8 图2 5j s pm o d e l2 结构9 图2 6s t r u t s 体系结构1 0 图2 7s t r u t s 响应用户请求的工作流程1 3 图2 8h i b e r n a t e 的体系结构1 5 图2 9h i b e r n a t e 核心接口工作流程图1 6 图3 - 1 单车核算系统功能模块图1 9 图3 2 单车核算系统用例图2 4 图3 3 单车核算系统实现框架2 5 图3 4 单车核算系统核算流程图:2 6 图3 5 员工基本信息3 4 图3 - 6 新增员工3 4 图3 7 修改员工信息3 4 图3 8 查询员工3 5 图3 - 9 查询员工结果3 5 图4 1 事务价值函数分类图4 5 图4 2 事务活动状态4 6 图4 3 事务调度状态4 7 图4 4v l s f 优先级表5 2 图4 5 双向循环链表5 3 图4 6 单车核算结算流程5 7 图4 7 线路成本核算流程图5 8 图4 8s q l 优化步骤5 9 图4 9 开始核算6 1 图4 1 0 计算结果6 1 i i l 浙江大学硕十学位论文表目录 表目录 表3 1 组织管理机构表2 7 表3 2 人员信息表2 7 表3 3 线路信息表2 8 表3 4 车辆信息表2 8 表3 5 核算项目表2 9 表3 6 基本数据表3 0 表3 7 路单表31 i v 浙江大学硕士学位论文第l 章绪论 第1 章绪论 1 1 课题来源 随着计算机和网络技术的飞速发展,互联网的推广,以及w w w 的广泛应用, 人们可以方便快捷的获得各种信息,整个世界迈入了信息时代。信息化的潮流对 全球经济,政治,军事,科技,文化以及每个人的日常生活,工作都起到了非常 大的影响,信息化是如今世界经济和社会发展的必然方向。信息技术的发展改变 着人们的生活和工作方式的同时,也改变了传统的企业管理方式,基于信息化的 企业管理系统应运而生。以往的单车核算完全由会计财务在账面上计算完成的方 式,将逐渐被信息化计算的方式代替。 杭州市公共交通集团有限公司单车( 线路) 核算管理信息系统正是在这种信 息化日益普及的背景下,根据公司内部管理的需要,提出建立的。该系统是在杭 州公交集团现有各个信息系统的基础上,实现功能独立运行的系统。其信息的主 要来源是与其他各系统实现信息共享,对于某些专项费用信息采用数据输入,然 后根据单车核算管理的要求,按事先设计的分配方案把费用分摊到独立车号和线 路。通过对主营业务收入,主营业务成本,营运间接费用,辅助营运费,税金及 附加,管理费用,财务费用的计算,最终实现对集团公司,营运公司,车队,线 路,单车的成本核算和利润的综合统计。 1 2 课题背景和研究现状 j 2 e e ( j a v a 2p l a t f o r m ,e n t e r p r i s ee d i t i o n ) 是s u n 公司推出了一种多层结 构的企业级应用构架,是由s u n 公司领导各相关业内公司共同制定的并得到大多 数人认同的行业标准,现在它作为一种企业级应用开发方案已经得到了大量应 用,如c s ,b s 及多层结构分布企业应用开发。同时,随着越来越多的厂商将 j 2 e e 作为服务器端应用开发的优先开发平台,共享程序设计人员的研究成果以及 得到可重用的的设计显得越发关键。利用适当的设计模式会给我们找到解决一些 同类型问题的解决方案提供帮助;同时,广泛的应用框架则可以在大大的提高系 统的开发速度,降低系统的开发成本。 随着技术的发展,m v c 模式应用到了2 e e 体系之中。m v c 模式是一种现在应 用非常广发的设计模式,它的控制器可以很好的对模型和视图进行发力,使得表 示层和业务层之间的藕合度大大降低,很好的改善了基于w e b 的应用系统设计和 浙江大学硕士学位论文第l 章绪论 研发过程当中因为结构复杂或者结构功能混杂而给开发带来的困难,例如系统层 次之间的藕合程度,程序代码很难维护,系统组件的重用性等等问题。实现m v c 模式的框架有很多,而且其中有些都已经得到广泛应用了。s t r u t s 框架就是被大 量应用在大型企业级w e b 开发上的一个很好的框架。s t r u t s 框架工具是a p a c h e 基金会j a k a r t a 项目中推出的一个子项目。s t r u t s 为系统应用提供了通用的框架, 让程序员可以把精力集中在完成业务逻辑的编写问题上面,与此同时s t r u t s 框 架还可以让程序员根据实际的项目需求进行必要的扩展和,这也便可以更好的应 对用户提出的各种要求。利用s t r u t s 框架设计系统简化了按照m v c 设计模式的 开发系统的过程,提供了现成的框架组件,通过代码重用,使程序员从一些底层 比较麻烦的工作中解放出来,集中精力实现业务逻辑,方便快捷的开发w e b 应用。 h i b e r n a t e 是一个开源的0 r m 框架,它通过对j d b c 的轻量级封装,可以给系 统提供方便而又强大的关系数据库的持久化支持。利用h i b e r n a t e 框架,可以让 开发人员以面向对象的思想操作数据库中的表,透明的完成对关系数据库的操 作,而不用浪费太多的精力去开发那些非常繁杂的数据库操作代码以实现系统的 持久层,从而使得整个系统的开发难度和复杂度得到大大的降低,大大改善了程 序的开发效率,加快系统完成进度。h i b e r n a t e 可以支持o r a c l e ,s q ls e r v e r , d b 2 等目前比较流行的关系数据库,这使得应用起来更加广泛。 在数据库事务调度模型中,对于不同的事务根据其自身的特点有不同的分 类。在事务运行前,应该制定合理的优先级策略和并发控制方式,尽可能的使事 务能够在其截止期内完成规定的操作。同时在执行过程中,划分好事务的活动和 调度状态,采用高效的调度模式,对事物的高效率的执行很有必要。事务的调度 分为两个部分,一个是优先级的分配,另一个是并发控制。事务调度一般都是以 基于优先级的算法进行调度的,因为事务的优先级一般决定了事务的重要性,比 较重要的事务应该首先完成。而优先级的决定取决于多种因素,常用的有事务的 释放时间,事务的截止时间,事务的已执行时间,事务的空余时间,事务的关键 程度等。另外,如果在单处理器中不允许高优先级抢占操作,则事务之间的执行 是串行的,这时不必采取任何并发控制措施。但是在单处理器中允许高优先级抢 占操作或者在多处理器情况下,事务之间的执行则是并发的。 从大多数系统的应用实例来看,随着数据库中数据的增加,系统的响应速度 就成为系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是 s q l 语句的优化。据统计,约有9 0 的性能问题是由于程序员或用户使用了不恰 当的查询语句造成的,因此s q l 语句的质量对整个系统效率有重大关系。对于海 2 浙江大学硕士学位论文 第1 章绪论 量数据来说,劣质s o l 语句和优质s o l 语句之间的速度差别可以达到上百倍,甚 至更多。 1 3 本文的主要工作 本文的主要工作如下: 1 讨论了研究课题的相关背景和目前的研究现状 2 讨论了整个系统框架构架的相关理论和技术,包括了j 2 e e 的概述,m v c 设 计模式与s t r u t s 框架的介绍,o r m 技术与h i b e r n a t e 框架的原理。 3 首先介绍了单车核算系统的系统分析与设计,包括了系统需求分析,系统 框架设计,业务流程设计,数据库设计以及软件平台构建。接着分析了单车核算 系统的框架实现,包括了配置文件的解析,视图层,控制层以及持久层的实现分 析。 4 首先分析了调度算法在单车核算中的应用背景和研究意义,突出了单车核 算系统计算中存在的因涉及数据量巨大而导致的性能问题,以其解决办法。接着 讨论了基于事务优先级的调度算法在单车核算系统的应用与实现。然后分析了单 车核算的流程,并介绍了单车核算中的一种核算方式的实现,并分析s o l 优化在 核算模块实现中的应用。 5 总结了全文的工作,并阐述了未来的研究方向,例如基于历史记录的分析 改进方法等。 1 4 本文章节安排 第1 章绪论:从课题来源,课题背景和研究现状,章节安排等方面简要介绍 了本论文的选题背景与基本框架。 第2 章系统框架构建相关理论:首先介绍了j 2 e e 的概念和j 2 e e 的分层结构; 然后介绍了m v c 设计模式与s t r u t s 框架,包括了m v c 涉及模式的概念,j a v aw e b 应用开发的两种模式,以及基于m v c 的s t r u t s 框架的体系结构,主要组件和工 作流程。最后介绍了o r m 和h i b e r n a t e 的概念,以及h i b e r n a t e 的运行机制。 第3 章单车核算系统分析设计与框架实现:首先分析了系统的需要,从系统 的目的出发,引入业务逻辑需求和性能需求,接着给出了系统的用例图。然后对 系统进行了总体的设计,先介绍框架设计,再分析了系统的业务流程设计,跟着 对系统的数据字典设计进行了详细的介绍。接着介绍了系统软件平台的构建,对 开发系统所用到软件或框架作了简单的分析。随后介绍了单车核算系统框架实 现,首先展示了系统模块实现界面,然后分析了配置文件,接着分别对视图层, 3 浙江犬学硕上学位论文第1 章绪论 控制层以及持久层的实现进行了详细的阐述。 第4 章调度算法在单车核算中的应用:首先分析了调度算法在单车核算中的 应用背景和研究意义,然后介绍了基于事务的调度算法,接着分析了基于事务优 先级的调度算法在单车核算系统的应用与实现。随后介绍了单车核算的流程,以 及单车核算子模块的实现,最后给出了单车核算的实现结果展示。 第5 章总结:总结了全文的工作,并对未来工作方向作出了阐述。 1 5 本章小结 本章从课题来源,课题背景和研究现状,论文主要工作,章节安排等方面简 要介绍了本论文的选题背景与基本框架。 4 浙江大学硕士学位论文第2 章系统框架构建相关理论 第2 章系统框架构建相关理论 2 1j 2 e e 概述 j 2 e e ( j a v a2p l a t f o r me n t e r p r i s ee d i t i o n ) 是s u n 公司推出的一整套基 于w e b 的企业级应用开发规范。j 2 e e 技术的根本是j 2 s e ,它具有j 2 s e 的众多优 点,比如“编写一次,随处运行的特性,简化操作关系数据库的j d b c 等技术, 还对基于w e b 的开发提供了强有力的支持,包括s e r v l e t ,j s p ,x m l ,还通过对 e j b 方便开发企业级应用。j 2 e e 架构的广泛应用,解决了以往c s 模式中存在诸 多诟病,通过建立多层体系,更多的重用组件,简化w e b 应用的研发和部署,程 序员的精力可以主要放在业务代码和表达代码的开发上,而不用再理由底层麻烦 的系统问题。 2 1 1j 2 e e 的分层结构 j 2 e e 便是拥有着三层体系结构的一个典型代表2 引,其结构如图2 - 1 所示: 客户端机器 广_ 一 浏览器 纯h t m l j a v aa p p l e t 桌面 j a v a a p p l i c a t i o n 其它设备 j 2 e e c l i e n t w 曲容器 j s p j s p j a v a s e r v l e t j 2 e e p l a t f o r m 5 e j b e j b e j b j 2 e e p l a t f o r m 数据库服务器 磊习 浙江大学硕十学位论文第2 章系统框架构建相关理论 图2 1j 2 e e 三层体系结构 客户层 客户层运行在客户端的计算机上面,用来同用户进行交互,还可以获取 用户输入的输入,并能将系统处理过的信息返回给用户。客户层可以是 网络浏览器,或是桌面应用程序等i 应用服务器层 应用服务器层运行在应用服务器上面,包括了w e b 层和业务逻辑层,用 来实现业务逻辑。其中,w e b 层完成表现功能,首先接收用花请求,并 将请求发送到业务层处理后回复用户的请求。业务逻辑层则是实现系统 功能的一个核心层次,它负责系统业务逻辑的处理,提供各种应用服务, 操控数据库,与底层企业信息系统交互。 企业信息系统( e i s ) 层 企业信息系统层运行在数据库服务器上面。主要用于企业信息系统的存 储管理,主要是数据库系统管理,目录管理等。j 2 e e 应用系统会频繁的 访问企业信息系统层来得到用户请求相关的数据信息。 2 2m v c 设计模式与s t r u t s 框架 2 2 1m v c 设计模式 m v c 是m o d e l v i e w c o n t r o l l e r 的简称,也就是即模型一视图一控制器模型, r 0 0 1 它是一种现在用的比较多的设计模式“。m v c 是x e r o xp a r c 在上世纪8 0 年代 为s m a l l t a l k 8 0 特意研究出来的的一种软件设计模式。它可以将业务逻辑和数据 表示逻辑分离,还可以让应用的行为独自从其他模块中分离出来,是观察者模式 的一种比较典型的应用。 2 2 1 18 v c 设计模式概述 m v c 设计模式把这个系统分成了三个相互协作的部分:模型( m o d e l ) ,其中 含有整个应用系统的核心功能,而且还对系统状态进行了封装;视图( v i e w ) ,可 以显示模型的状态,是用户与系统交互的主要途径。同时,每当模型的状态被改 变是,应该通知给视图知晓,从来更新新的视图以显示系统当前状态;控制器 ( c o n t r 0 1 ) ,则是负责接受用户的请求,还可以调用模型,改变模型状态。它通过 强制性隔离系统的用户请求,业务处理和请求回复,明确各自的职能。其处理过 6 浙江人学硕十学位论文第2 章系统框架构建相关理论 程如图2 2 所示。 图2 2l v i v c 设计模式 2 2 2j a v aw e b 应用开发模式 2 2 2 1j s p + d a t eb a s e 模式 在初期的j a v aw e b 系统之中,j s p 一般用来完成业务逻辑,还需要控制业务 流程,并负责生成h t m l 。它的处理流程如图2 3 。 图2 3j s p 作为独立自主的模块 在j s p + d a t ab a s e 模式中,每一个j s p 文件都是独立自主完成业务逻辑的功能 r 0 0 1 模块,这给导致了下面这些问题的出现“: h t m l 网页代码和j a v a 代码混杂在一起; 内嵌的流程逻辑:想要弄清楚系统的业务流程,就要逐个查看所有的网页; 调试非常困难:除了混杂的代码带来的杂乱观感之外,在系统开发过程中, 程序员调试程序也变得很麻烦。 强耦合:业务逻辑改变会涉及多个其它模块,需要逐个修改,给开发带来 7 浙江大学硕十学位论文 第2 章系统框架构建相关理论 诸多不便。 2 2 2 2j s pm o d e l1 模式 j s pm o d e l1 是指j s p + j a v ab e a n 技术。不过在j s pm o d e l1 中,j s p 页面不 用处理业务逻辑,而是下放给底层的j a v a b e a n 来完成,但是j s p 页面仍然要负责 响应用户的请求,并把底层的处理结果回复给用户。业务流程的控制还是需要它 来完成,这样便同时充当视图和控制器,使得这两个功能耦合在了一起。该模式 r 口口1 的处理流程如图2 4 所示”。 1 1 有承 l i 淘龄器 7 i j s p a p p 服务器 i ”。“ i ,一、 、一 数 4 啊l 业 6 3 据 库 一 图2 4j s pm o d e l1 结构 2 2 2 3j s pm o d e l2 模式 j s pm o d e l2 模式是结合j s p 与s e r v l e t 各自的特点,为用户提供动态的网页 服务。它特出了j s p 和s e r v l e t 两种技术形式的各自特点特点,用j s p 负责表示层 代码的实现,将其它诸如流程控制的任务交给s e t v l e t 来完成。在这里,s e r v l e t 是作为控制器来使用的。它负责处理用户发来的h t t p 请求,创建j s p 所需的的 j a v a b e a n ,然后再根据处理结果选择适当的j s p 页面返回给用户。业务逻辑从j s p 页面中分离开来,它之需要检索由s e l - v l e t 生成的j a v ab e a n 对象,从s e r v l e t 中获 取动态生成的内容,将其插到静态页面中来。图2 5 给出了j s pm o d e l2 的w e b r o 口1 处理流程“。 8 浙江大学硕十学位论文第2 章系统框架构建相关理论 1 请求 s e r v l e t a p p 服务器 ,r i j 4 夕、 一 浏 、 览 1b 。 数 i - 6 响应凹5 7 剧1 3 据 器 库 w e b 服务器 图2 5j s pm o d e l2 结构 2 2 3 基于m v c 的s t r u t s 框架 2 2 3 1s t r u t s 框架体系结构 s t r u t s 将各个组件,s e r v l e t ,j s p 还有标签库t a g l i b 整合在一个完整的框架体 系内,它具备了m v c 模式所提出的“分离业务逻辑代码和表现逻辑代码”的能 力。在s t r u t s 框架中,模型一般是由实现业务逻辑的j a v a b e a n 或e j b 组件构成, 控制器由框架自带的a c t i o ns e r v l e t 和开发人员扩展后的a c t i o n 来实现,视图一般 r n 0 1 则是由一组j s p 文件构成“。其体系结构如图2 - 6 所示。 9 浙江大学硕士学位论文第2 章系统框架构建相关理论 图2 - 6s t r u t s 体系结构 ( 1 ) 视图( v i e w ) 在s t r u t s 框架中,视图一般是由j s p 页面和t a g l i b 标签库共同组成的,利用它 们可以方便快捷的构建应用系统的表示层界面。利用这些,加上开发人员自己根 据需要建立的标签库,可以方便快捷的创建完全国际化的用户使用界面。同时可 以通过a c t i o n f o r mb e a n 实现数据的传递。在j s p 文件中不包括任何没有业务逻 辑,也没有其它的模型信息。 ( 2 ) 模型( m o d e l ) s t r u t s 框架中没有提供特定的模型组件,可由开发选择不同的实现技术或者组 件来完成,如h i b e r n a t e 框架或e j b 。通过第三方软件的加入,可以很好的完成持 久化的工作。 ( 3 ) 控制器( c o n t r o l l e r ) 控制器组件的作用是接收来用用户的h t t p 请求,然后觉得执行那个业务逻 辑功能模块,最后根据处理结果,返回相应的视图组件。控制器的核心组件是 a c t i o n s e r v l e t ,它通过查找在s t r u t s c o n f i g x m l 中的定义的a c t i o n m a p p i n g 信息来 对请求进行转发。 2 2 3 2s t r u t s 的配置文件和主要组件 1 0 浙江大学硕士学位论文第2 章系统框架构建相关理论 s t r u t s 应用采用两个基于x m l 的配置文件来配置,分别是w e b x m l 和 s t r u t s e o n f i g x m l 文件。w 曲x m l 文件是配置所有w e b 应用的,而s t r u t s e o n f i g x m l r 0 0 1 文件是s t r u t s 专用的配置文件”“。 ( 1 ) w 曲x m l w e b x m l 是j a v as e r v l e t 要求的w e b 应用部署描述符。w e b 容器使用这个文件 来载入和配置应用。w e b 应用部署描述符的目的和格式在s u ns e r v l e t 规范中定义, 它对w e b 容器如何配置s e r v l e t 和应用需要的其他高层次对象进行设置。s t r u t s 框 架有两个组件需要从应用部署描述符中配置:a c t i o n s e r v l e t 和标签库( 可选) 。虽 然大多数s t r u t s 应用的确需要使用标签库,但它也不是严格要求的,例如,使用 x l s t 的应用不需要配置标签库。 ( 2 ) s t r u t s e o n f i g x m l s t r u t s e o n f i g x m l 是用于建立c o n t r o l l e r 和m o d e l 之间关系的配置文件,是s t r u t s 框架的核心部署描述符。它用来载入和配置s t r u t s 框架使用的各种组件。它描述 了c o n t r o l l e r 中用户请求与业务处理逻辑的对应法则,同时它还描述了客户提供 的数据与a c t i o n f o r m 组件的对应映射关系。从效率的角度出发,s t r u t s 配置文件 中的信息在系统启动时就读入并存在内存中。s t r u t s 配置和s t r u t s 的组件 a c t i o n s e r v l e t 一起工作,来对应用进行控制。 对于s t r u t s 如何控制,处理客户请求,可以通过对s t r u t s 的四个核心组件的介 绍来具体说明。这几个组件就是:a c t i o n s e r v l e t ,a c t i o nc l a s s e s ,a c t i o n m a p p i n g ( 此 处包括a c t i o n f o r w a r d ) ,a c t i o n f r o mb e a n 。 ( 1 ) a c t i o n s e r v l e t a c t i o n s e r v l e t 继承自j a v a x s e r v l e t h t t p h t t p s e r v l e t 类,其在s t r u t sf r a m e w o r k 中 扮演控制器的角色。控制器a c t i o n s e r v l e t 主要负责将h 1 v r p 的客户请求信息组装 后,根据配置文件的指定描述,转发到适当的处理器。 ( 2 ) a c t i o nc l a s s e s 一个a c t i o n 类的角色,就像客户请求动作和业务逻辑处理之间的一个适配器 ( a d a p t o r ) ,其功能就是将请求与业务逻辑分开。这样的分离,使得客户请求和 a c t i o n 类之间可以有多个点对点的映射。 ( 3 ) a c t i o nm a p p i n g 在s t r u t s 中,与动作和请求信息相对应的映射配置信息是存储在 s t r u t s e o n f i g x m l 中的。这些配置信息在系统启动的时候被读入内存,供系统在运 行期间使用。在内存中,每一个 元素都与a c t i o n m a p p i n g 类的一个实例对 浙江大学硕士学位论文第2 章系统框架构建相关理论 应。s t r u t s c o n f i g x m l 配置信息被转换为一组a c t i o n m a p p i n g ,而后者又被放入 a c t i o n m a p p i n g s 容器中。a c t i o n m a p p i n g 包含有关特定事件如何映射到特定a c t i o n 的信息。a c t i o n s e r v l e t 通过e x e c u t e ( ) 方法将a c t i o n m a p p i n s 传递给a c t i o n 类。 ( 4 ) a c t i o n f o r mb e a n a c t i o i l f o 彻的主要功能就是为a c t i o n 的操作提供与客户表单相映射的数据 ( 如果在客户指定的情况下,还包括对数据进行校验) 。a c t i o l l f o m 负责对系统数 据状态的保持,而a c t i o n 则负责根据业务逻辑的需要,对数据状态进行修改,在 改变系统状态后,a c t i o i l f 伽m 自动的回写新的数据状态并保持。 2 2 3 3s t r u t s 的工作流程 系统在应用启动时便会自动加载并初始化a c t i o n s e r v l e t ,然后a c t i o n s e r v l e t 会 从s t r u t s e o n f i g x m l 中读取各个a c t i o n 类的配置信息,并把它们存放到各种配置 对象中。例如每个a c t i o n 的映射信息都会存放相应的a c t i o n m a p p i n g 对象中。当 a c t i o n s e r v l e t 接收到一个用户发来的请求时,将执行如下流程: 检索和用户请求路径相匹配的a c t i o n m a p p i n g 实例,如果没有这样的匹配 实例,就向用户返回请求路径无效的提示信息。 如果与a c t i o n 类相应的a c t i o n f o r m 实例还不存在,便就创建一个 a c t i o n f o r m 对象,并将用户通过页面提交的表单数据存放在这数据保存到 a c t i o n f o r m b e a n 中,以供后续组件使用。 根据s t r u t s e o n f i g x m l 中配置信息的v a l i d a t e 属性,确定是否要进行表单验 证,如果需要,便调用a c t i o n f o mb e a n 的v a l i d a t e ( ) 方法进行表单数据的 验证。 如果a c t i o l l f o mb e a n 的v a l i d a t e ( ) 方法最终返回n u l l 或者返回一个不包 a c t i o n m e s s a g e 的a c t i o n e r r o r s 对象,则表单验证成功。可以进行后面的步 骤了。 a c t i o n s e r v l e t 类查找与a c t i o n 类对应的a c t i o n m a p p i n g 实例,根据其中包 括的映射信息决定将用户请求转发给哪个a c t i o n 类执行。如果相应的 a c t i o n 类的实例不存在,就先创建这个a c t i o n 实例,然后再调用a c t i o n 的e x e c u t e ( ) 方法。 a c t i o n 类的e x e c u t e ( ) 方法最终会返回一个a c t i o i l f o 刑a r d 对象,其中封装 了下一步流程的跳转信息,然后a c t i o n s e r v l e t 根据跳转信息再把客户请求 转发给a c t i o i l f o n v a r d 所包含的j s p 组件。 1 2 浙江大学硕士学位论文第2 章系统框架构建相关理论 a c t i o n f o r w a r d 对象指向的j s p 组件生成动态网页,返回给客户。 对于以上流程的第4 步,如果表单验证失败,也就v a l i d a t e ( ) 方法最终返回一个 包含一个或多个a c t i o n m e s s a g e 的a c t i o n e r r o r s 对象,此时a c t i o n s e r v l e t 将直接 把请求转发给a c t i o n m a p p i n g 中i n p u t 属性所指向的j s p 组件。而且,a c t i o n s e r v l e t 不会创建a c t i o n 类实例并调用其e x e c u t e ( ) 方法。s t r u t s 的工作流程( 如图2 7 所示) 。 j 。tj a c t i o n 。s ,e r ? v 。l i e 。t i j :。| a c t i o n f 。i i i e ,;。,一,。、i ,4 l r e q u e s t a r r i v e s 。弋训和g 7 y 卜 c r e a t ea c t i o n f o r mr e t u r ne r r o r t c r e a ta c t

温馨提示

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

评论

0/150

提交评论