(土壤学专业论文)基于j2ee构架的农技推广发展监测系统的设计与实现.pdf_第1页
(土壤学专业论文)基于j2ee构架的农技推广发展监测系统的设计与实现.pdf_第2页
(土壤学专业论文)基于j2ee构架的农技推广发展监测系统的设计与实现.pdf_第3页
(土壤学专业论文)基于j2ee构架的农技推广发展监测系统的设计与实现.pdf_第4页
(土壤学专业论文)基于j2ee构架的农技推广发展监测系统的设计与实现.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

(土壤学专业论文)基于j2ee构架的农技推广发展监测系统的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 f i n t e m e t 的迅速发展为人们获取信息和服务提供了新的途径。交互性和事务性的需求推 动网络从一个信息发布平台向一个网络应用程序平台演变,传统的基于单机的应用和计算 逐步延伸到基于w e b 的应用。 农业部农技推广发展监测系统改变了传统的数据上报工作方式,采用灵活的基于w e b 、 的三层体系结构实现。r 厂。 本文针对系统对灵活性、稳定性、可扩展性的需求,采用基于j 2 e e 多层构架,遵循 m v c 设计模式的设计方法,在程序设计过程中利用基于u m l 的c a s e 工具r a t i o n a lr o s e 进 行面向对象软件分析和设计,在较短的时间内成功的实现了系统功能。本文在对系统设计 和实现中采用的技术、原理和方法进行剖析的基础上,介绍了系统的设计与实现的具体过 程,此过程对于基于j 2 e e 构架的w e b 应用的开发具有普遍适用性。 为了实现壅垫建亡蕉壁鳖涮压统灵活可变的上报报表格式要求和严格的平衡关系验 证要求,本文提出活动报表结构和平衡关系表达结构,并设计相应算法。( 改变了传统上报 报表因结构和内容改变,相应w e b 页面、程序和数据库结构随之改变的方式,实现在上报 报表灵活改变时不需改动程序和数据库结构,前端的w e b 页面由程序自动生成。这种结构 满足了内容、平衡关系可变的上报报表的要求,大大减少维护工作量,并且由于平衡关系 的限制,保证了上报数据的准确性。 目前,农技推广发展监测系统己在农业部正常运行。广一r 一 关健词:j 2 e em v c 设计模式 u m l 活动报表 4 a b s t r a c t 1 1 1 e q u i c kd e v e l o p m e n t o fi n t e r n e t b r i n g s an e ww a yf o r p e o p l e t o g e t i n f o r m a t i o na n ds e r v i c e 1 1 1 ec o m m u t a t i v ea n dt r a n s a c t i o n a ld e m a n d sd r i v et h e i n t e r n e tc h a n g i n gf r o mw e bi n f o r m a t i o ni s s u a n c ep l a t f o r mi n t ow e ba p p l i c a t i o n p l a t f o r m ,a n d t r a d i t i o n a la p p l i c a t i o n sa n dc a l c u l a t eb a s eo ns i n g l ec o m p u t e rh a sb e e n e x t e n d e dt oa p p l i c a t i o no nt h e 脯6 a g r i c u l t u r a lt e c h n o l o g yp r o m o t i o nd e v e l o p m e n tm o n i t o r i n gs y s t e mc h a n g e t h et r a d i t i o n a lw a yo fs u b m i t r i n gd a t a ,u s i n gf l e x i b l et h r e et i r e sa r c h i t e c t u r et o i m p l e m e n t t os a t i s f yt h ed e m a n d s o f f l e x i b i l i t y 、s t a b i l i t ya n de x t e n s i b i l i t yo f t h es y s t e m , t h i sa r t i c l eu s i n gj 2 e e a r c h i t e c t u r e ,f o l l o w i n gm v cd e s i g np a t t e ma n dc a r r y i n go u t o b j e c t o r i e n t a n a l y s i s a n d o b j e c t o r i e n t d e s i g nu t i l i z i n g u m lc a s e t o o l - - r a t i o n a lr o s e ,a n ds u c c e s s f u l l yi m p l e m e n tt h ef u n c t i o no fs y s t e mi ns h o r t t i m e a f t e ra n a t o m i z et h et e c h n i c a l 、p r i n c i p l e sa n dm e t h o d so ft h es y s t e md e s i g n a n d i m p l e m e n t ,t h i sa r t i c l ei n t r o d u c e t h ef u l ld e s i g na n d i m p l e m e n tp r o c e s s t or e a l i z et h ef l e x i b l ea n d c h a n g e a b l es u b m i tr e p o r ta n d s t r i c tb a l a n c ev a l i d a t i o n o f a g r i c u l t u r a lt e c h n o l o g yp r o m o t i o nd e v e l o p m e n tm o n i t o r i n gs y s t e m ,t h i sa r t i c l e b r i n gf o r w a r dd y n a m i cr e p o r ts t r u c t u r ea n db a l a n c ee x p r e s s i o ns t r u c t u r e ,a n dd e s i g n t h e c o r r e s p o n d i n ga r i t h m e t i c ,c h a n g i n gt r a d i t i o n a lw o r km o d et h a t w i l lc h a n g e p r o g r a m m i n gc o d e 、w e bp a g ea n dd a t a b a s es t r u c t u r ew h e nr e p o r tc h a n g i n gt ob e m o l ea u t o n o m i c t l l i ss t r u c t u r es a t i s t i e st h ed e m a n do fc h a n g e a b l ec o n t e n ta n d b a l a n c er e l a t i o i l so fs u b m i tr e p o r t ,a n ds h o r t e nt h ew o r k l o a do fm a i n t e n a n c e b e c a u s eo ft h er e s t r i c t i n go fb a l a n c er e l a t i o n s h i p ,i t sm a k et h es u b m i td a t am o l e a c c u r a t e n o w ,a g r i c u l t u r a lt e c h n o l o g yp r o m o t i o nd e v e l o p m e n tm o n i t o r i n gs y s t e m h a v eb e e ns u c c e s s f u lr u n n i n gi na g r i c u l t u r em i n i s t r yo fc h i n a k e y w o r d s :j 2 e e m v c d e s i g np a t t e m u m lf l e x i b l er e p o r t 5 基于j 2 e b 构架的农技推广发展监测系统的设计与实现 1 研究概述 1 1 研究背景 随着i n t e m e t 和w e b 技术的蓬勃发展,网络已经从一个信息发布平台向一个网络应用 程序平台发展( 姚绍文等2 0 0 1 ) 。人们不仅可以通过浏览i n t e r n e t 上的网页获取所需信息, 而且网络为人们提供越来越多交互性服务,如网上购物、网上医疗、网上预定车票及旅馆 等服务。i n t e m e t 和w e b 技术的发展逐步改变了人们的日常生活和工作方式,成为信息时 代发展的动力。 w e b 应用以其开放性、广泛访问性、灵活性日益受到企业的重视,市场的竞争使得企 业必须在晟短的时间内适应不断变化的业务流程,快速的开发和分发应用系统以尽早的获 得竞争优势,w e b 应用无疑是最好的解决途径( 江左文等2 0 0 1 ) 。企业不仅需要建立新的 w e b 系统适应新的变化,对企业的遗产系统、原有数据及业务逻辑也应保留。基于 c l i e n t s e r v e r 两层结构的胖客户端实现方法的可扩展性差、可维护性差等缺点相对于灵活 需求之间的矛盾日益突出,而开发多层应用由于涉及到众多系统级服务的编码,工作量和 复杂度很大。j 2 e e ( j a v a2e n t e r p r i s ee d i t i o n ) 技术正是应企业的这种需求而诞生的,它提 供了一种基于组件的多层分布式方法去设计、开发、装配和部署企业级应用程序,并提供 了中间层集成框架,使开发人员将精力集中于业务逻辑的开发,系统级服务由中间层应用 服务器负责。大幅降低了开发时间和费用。( m o n i e a p a w l a n 2 0 0 1 ) 目前,基于j 2 e e 构架的系统多数被银行、邮政、电信和网站等大型复杂应用所采用( 李 永强,岑衍强2 0 0 1 ) 。然而,基于j 2 e e 构架应用的可靠、可扩展、可伸缩、可移植的特点 以及并不太高的工作量和复杂度。不仅吸引着企业级用户,而且越来越受到中等规模和复 杂度应用的重视。 本文正是在此技术背景下,在农业部农技推广发展监测系统的设计与开发中,采用基 于j 2 e e 构架的w e b 应用解决方案。充分利用先进技术,在保证系统的灵活性、可靠性和 可扩展性的同时降低开发成本和系统复杂度。 目前。基于w e b 的数据上报报表通常采用将报表结构嵌入w e b 页面的的方式实现, 后端数据库结构与前端报表结构相对应一旦上报报表的结构改变,相应的w e b 页面、后 6 端数据库以及中间传递数据的程序都将改变,因此这种固定报表的实现方式不能适应上报 报表内容经常变化的需求,而且上报报表数据的平衡关系控制也很难实现。在这种背景下, 针对农技推广发展监测系统对灵活可变的上报报表的需求本文设计了活动报表和平衡关 系表达,实现了灵活的上报报表和平衡关系验证,满足了系统的特定要求。 1 2 研究内容 本文在深入分析开发基于j 2 e e 构架的w e b 应用系统所涉及的相关技术的基础上针 对农技推广发展监测系统,介绍了基于j 2 e e 构架、遵循m v c 设计模式、利用基于u m l 的可视化建模工具r a t i o n a lr o s e 进行系统分析、设计和实现的具体过程。 同时针对系统对活动报表和平衡关系验证的要求,本文介绍了活动报表的设计思想和 设计方案以及活动报表的数据结构、数据库结构和平衡关系表达结构和相应的算法,实 现在不改动w e b 页面、程序和数据库结构的条件下,上报报表结构以及平衡关系的灵活可 变。 1 3 研究意义 农业部农村经济体制与经营管理司为了推广农技推广体系发展监测工作,需要每年不 定期要求下属部门上报发展监测数据,用于统计分析。及时了解工作情况,为下一步工作 莫定基础。如果采用c l i e n t s e r v e r 模式的开发方式。一方面加重了地方的负担。需要配置 相应的计算机设备运行客户端软件;另一方面要求上级单位为每一个地方单位安装客户端 软件并进行配套的培训和维护对于具有几百个分散在全国各地的用户的系统升级和维护 将是非常困难的 为了满足系统可扩展性、灵活性和稳定性要求,系统的建立采用了先进的j 2 e e 技术, 中问层应用服务器采用了b e aw e b l o g i e 中间件,使开发集中于业务逻辑的建立,减轻了 开发复杂度和工作量,缩短了开发周期;系统的设计中采用了m v c 设计模式,充分利用 前人的开发经验,使系统结构良好、易懂、易扩展,为系统的维护和扩展打下了良好的基 础;系统采用面向对象的分析设计方法,利用基于u m l 的可视化建模工具r a t i o n a lr o s e , 在面向对象软件开发的各个阶段,提供了清晰的u m l 表达和完善的工具。使软件开发的 各个阶段的工作清晰文档完备统一,系统开发周期可控、可管理;针对系统灵活可变的 上报报表要求,系统设计了活动报表数据结构和平衡关系表达结构以及相应的算法改变 固定报表灵活性差、维护工作量大的缺点,系统具有专门上报报表维护页面,由系统管理 员负责维护,上报报表的格式由w e b 页面自动生成,使之很好的满足用户每年、每批上报 数据和验证的灵活性可变性要求。现在此系统现已在正常稳定的运行中。 1 4 相关技术综述 1 4 1w e b 技术发展综述 i m e r n e t 的迅速发展为人们获取信息和服务提供了新的途径。i n t e m e t 上的网页最初由 h t m l 写成,为人们提供了一种获取信息的方式,然而人们不只满足于信息的浏览与获取, 事务性、交互性的需求直接推动了v b s c r i p 、j a c a s c r i p 、j a v a a p p l e t 等浏览器端技术,为网 页提供了初步的交互性c g i 、a s p 、p h p 、j s p 等服务器端技术的出现使得网页具有更强 的事务处理能力,为发布交互式和实时信息提供了技术支持。 目前w e b 应用模式一般采用c g i ( c o m m o ng a t e w a yi n t e r f a c e ) 、a s p ( a c t i v es e r v e r p a g e ) 、p h p ( p e r s o n a l h o m e p a g e ) 、j s p ( j a v a s e r v e r p a g e ) 等技术访问数据库。c g i 技术 对于每个来自客户端的请求都在服务器端产生与之对应c g i 程序的独立进程,当客户端请 求多时,会造成服务器端极大的负担。采用基于c g i 技术的w e b 应用模式不具备可扩展 性,并且可移植能力差,对于复杂数据处理、信息统计的处理能力差。a s p 、p h p 技术克 服了c g i 技术对复杂事务处理能力差、可扩展能力差的缺点,但由于只能在相应的w e b 服务器上工作,可移植性差( 罗新星,江景佼2 0 0 1 ) 。i n t e m e t 是由各种类型的计算机及运行 在硬件平台上的各种操作系统组成的异构网络互连而成,w e b 技术的平台局限性必然造成 可移植性和可扩展性差的弊端。j s p 技术是基于j a v a 的服务器端动态页面技术。继承j a v a 的所有特性具有卓越的跨平台能力。特别适合开发具有平台独立性的w e b 应用( 李真文, 杨学良2 0 0 1 ) 。作为j 2 e e 的组成部分,j s p 页面可以访问所有的j 2 e e 组件,包括j a v a b e a n s , 企业级j a v a b e a n 组件和j a v a s e r v l e t 。j s p 页面执行时被编译成s e r v l e t ,具有服务器端的、 可伸缩的j a v a 应用程序优点。通过j 2 e e j s p 有多种方法与企业级系统交互,可满足不同 层次的企业应用需求,是目前最为灵活、功能最为强大的服务器端页面技术( 张玲等2 0 0 1 ) 。 本系统在数据的展现层采用了j s p 技术。 1 4 2 两层c s 结构向三层( 多层) 结构的转变 9 0 年代以来,客户机朋务器( c l i e n t s e r v e r ) 结构替代了原来的基于资源共享、分时 模式的主机,终端( h o s t t e r m i n a l ) 结构,成为应用程序开发体系结构的主流,但随着i n t e r n e t 8 的不断发展,基于c l i e n t s e r v e r 开发模式的企业级应用随着应用复杂度的不断扩大,其自 身局限性逐渐显现,限制了企业更快更灵活的发展,也使自身极难维护。不利于保护已有 的投资( 贾文峰白琳2 0 0 1 ) 。为了降低开发维护的复杂度,保证应用的可扩展性和可移植性, “胖客户机”演变为包含表示逻辑的“瘦客户机”和包含商业逻辑的服务器,两层的 c l i e n t s e r v e r 应用模型的转向了更灵活的三层和多层应用模型( 段靖荒等2 0 0 1 ) ( 范孝民,石 玉2 0 0 2 ) 。最初的应用服务器( 即三层c l i e n t s e r v e r 结构) 它支持分布式事物处理,并缓解 了客户端的复杂性。但由于没有和w e b 技术结合起来,该模型中的各客户端需要维护,且 局限于特定的应用服务器,不同应用服务器间的组件难以复用( 罗新星,江景佼2 0 0 1 ) 。随 着w e b 技术的发展,出现了基于w e b 的三层应用模式,它由w e b 浏览器、w e b 服务器、 数据库服务器组成,解决了“胖客户机”的问题,提供了一个低成本、开放的实施平台。 s u n 公司的j 2 e e 标准提供了多层结构的支持企业级应用的构架,以及中间层集成框 架,将前端客户端与后端数据端隔开,克服了两层c l i e n t s e r v e r 结构难扩展、难维护的缺 点,充分满足系统可靠性以及可扩展性的需求。 1 4 3j a v a 及j 2 e e 发展综述 j a v a 语言是1 9 9 5 年s u n 公司推出的可以在不同操作平台的网络环境中开发软件的新 一代面向对象编程语言。j a v a 采用的虚拟机技术使其具有强大的可移植性和安全性,为建 立复杂的、可扩展、可移植的w e b 应用提供了强有力的支持,被称为一种划时代的程序设 计语言( j o s e p h1 9 9 9 ) 。j a v a 技术在i n t e m e t 以及w 曲应用软件的发展中起着重要的推动作 用,为使其进步提高,使其应用于网站建设时更加规范化、更加高效,s u n 公司推出了 j a v a 2 平台的企业版( 即j 2 e e ) ,指明了如何更加简易的应用j 2 e e 。而不用再像以前那样 需要进行复杂的编程过程( 万祝盛,侯文勇2 0 0 0 ) 。 j 2 e e 提供了基于组件的多层体系结构,使得j 2 e e 应用程序兼有组件技术和多层体系 结构的优点编写十分简单,因为业务逻辑被封装成可复用的组件,并且j 2 e e 服务器以 容器的形式为所有得组件类型提供后台服务,使开发者将精力集中在业务逻辑的开发中, 而不必关心底层细节。( m o n i c ap a w l a n2 0 0 1 ) 1 4 4 数据上报工作方式发展综述 部署和收集下级部门的上报数据是政府各部门日常工作的重要内容之一用于对本部 门工作的宏观系统了解,并作为指令政策的制定依据,因此数据的准确性和及时性最为重 要传统的工作方式为上级主管部门制定数据上报报表下发给下级部门,并在规定的时 9 间内收回上报报表报表的运送手段主要为邮寄或传真,收集上的报表数据如果要在计算 机上统计还需要将报表重新录入,时间周期长,并且上报数据没有经过平衡关系校验,准 确性不能保证。计算机技术的发展,使数据上报工作采用计算机实现成为可能。基于 c l i e n t s e r v e r 两层结构的数据上报系统使数据上报工作进一步实现自动化,但这种结构要 求每个客户端都要安装客户端数据上报软件,当上报报表发生变化或其它需求变化时。需 要改动每个客户端,当客户端数量多且距离远时,这种维护的工作量巨大。但上报报表是 会经常发生变化的,c l i e n t s e r v e r 两层结构不能适应这种经常变化。随着i n t e r n e l 的发展, 基于浏览器的瘦客户端三层结构以其广泛访问性、灵活性受到人们的重视。这种结构使客 户端只要安装了浏览器并能上网,就可以享受到服务,所有的应用变化发生在中间层和数 据库层,可以集中修改,使系统具有更高的灵活性和可扩展性。本系统采用基于j 2 e e 的 三层体系结构实现网上数据的上报工作。 1 0 2 设计与实现基于j 2 e e 构架w e b 应用的相关技术研究 2 1j 2 e e 构架的研究 2 1 1j 2 e e 应用的层次结构分析 j 2 e e 定义了一套标准,可轻松地开发多层的企业应用,克服了两层客户服务器的体系 难于升级、扩展和难于重用的缺点。而在w e b 领域中,可能最重要的就是扩展,因此这种 多层结构适合在i n t e m e t 上应用j 2 e e 应用按功能划分为若干层,每一层服务一个特定目标。 图l 是j 2 e e 应用的分层结构图由图l 可以看到j 2 e e 应用可以划分为客户层( t h ec l i e n t t i e r ) 、w e b 层( t h ew e bt i e r ) 、e j b 层( t h ee n t e r p r i s ej a v a b e a nt i e r ) 、企业级信息系统( t h e e i s t i e r ) 层,但一个给定的应用可以包括j 2 e e 划分的所有层,也可能只包括部分层( s t e p h a n i e 2 0 0 2 ) ( k a s ma n dt h ee n t e r p r i s et e a m2 0 0 0 ) 。例如本系统由于不需要桌面客户端,只有w e b 层、e j b 层、企业级信息系统( t h ee i st i e r ) 层三层。 图ij 2 e e 应用的分层结构图 在两层体系结构中加入中间层可以减小应用系统各部分的耦合,提高系统的可扩展性。 一方面由于业务逻辑被尽可能集中于中间层。客户方可以集中实现不同的表示逻辑,另一方 面由于隔离了后端的具体实现。后端的改变对客户方影响较4 、。中间层通常采用支持j 2 e e 的应用服务器,由其负责系统级服务,开发者只需负责表现逻辑和业务逻辑的编写,安全性、 事务性等系统级管理由应用服务器负责,而在以前,系统级管理所需编写代码工作量是巨大 并且复杂的。 2 1 2j 2 e e 多层组件模型分析 j 2 e e 应用程序根据功能划分为组件,组成应用程序的组件被安装在不同的计算机上, 机器的划分取决于应用程序组件所在的层次。图2 是两个多层应用程序的分层描述。 ( s t e p h a n i e2 0 0 2 ) j 2 e ej z e e a i p f i l c l k t l o r l1 p p i l c l l t l o n2 i囤appllcetlon圈 嚣- 1 c m l i e n 。t 。 冒ie n t e r p r i s e 三s i n ,e 亡要圈叽”l j z l e e s 囊r - v o r , h h i i r z e 嚣嚣 黼。 如图2 所示,一个j 2 e e 应用程序可以包括三层或四层,客户层组件运行在客户机上,w e b 层组件和业务层组件运行在j 2 e e 服务器上,企业信息系统( e z s ) 层软件运行在e i s 服务 器上( 黄贤英2 0 0 z ) 。j 2 e e 多层应用程序通常被认为是三层结构应用程序,因为它们分布在 三种不同的位置:客户机、j 2 e e 服务器和运行数据库或遗产系统的计算机。三层应用程序 通过将多层应用服务器放在客户端和后端存储之间,扩展了两层客户端,服务器模式。 j 2 e e 之所以能提供系统必须的可扩展性、易访问性、可复用性、可管理性和安全性,关 键就在于它所采用的组件技术组件技术是j 2 e e 最核心的技术不仅可以在本地使用,而 且可以跨网被使用不同协议不同平台的客户端使用。组件技术克服了结构化的模块式软件开 发方法造成的软件系统规模庞大、过于复杂、不易集成的缺点,可以快速开发出定制的、易 维护、高质量的应用软件。 1 2 2 1 3j 2 e e 体系结构分析 基于组件和平台独立的多层j 2 e e 体系结构使j 2 e e 应用程序容易编写,业务逻辑被组 织成可复用的组件,并且中间层由j 2 e e 服务器以容器的形式为各组件类型提供底层服务, 程序员不需要自己开发这些服务,只需专心于业务逻辑的开发,因此j 2 e e 体系结构使得 j 2 e e 应用程序具有灵活性、可靠性、可扩展性等优良特性的同时,极大的降低了开发工作 量。 2 2 中间件技术和j 2 e e 应用服务器的选择 中间件是一种系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共 享资源,中间件位于客户服务器的操作系统之上,管理计算机资源和网络通信,其主要功能 是帮助用户灵活、高效的开发和集成复杂的应用软件。j 2 e e 应用服务器是中间件的一类。 基于j 2 e e 构架的j 2 e e 应用程謦在实现中通常采用j 2 e e 应用服务器作为中间层的实现。由 应用服务器自动完成对象组件访问管理、连接管理、垃圾回收、事务管理、错误管理、集群 控制等服务,能使应用结构设计师和程序员们从繁琐的细节中解脱出来,专注于业务逻辑的 设计,从而改善了程序的可靠性降低了开发风险及成本。( 李永强,岑衍强2 0 0 1 ) b e a 的w e b l o g i c 、i b m 的w e b s p h e r e 和b o r l a n d 的a p p s e r v e r 是应用服务器中的代表。 本项目采用b e aw e b l o g i es e r v e r 6 i 中间件来开发系统应用。主要考虑到其所具有的多 种特色和优势。包括: 1 ) 领先的标准 对业内多种标准的全面支持,包括目日、j s p 、j m s 、j d b c 、x m l 和w m l ,使w e b 应用系统的实施更为简单,并且保护了投资,同时也使基于标准的解决方案的开发更加简便。 2 ) 无限的可扩展性 b e a w e b l o g i cs e r v e r 以其高扩展的架构体系闻名于业内,包括客户机连接的共享、资 源p o o l i n g 以及动态网页和e j b 组件群集 3 ) 快速开发 凭借对e j b 和j s p 的支持。以及b e aw e b l o g i cs e r v e r 的s e r v l e t 组件架构体系,可加 速开发,提高投入使用速度。 4 ) 部署更趋灵活 b e a w e b l o g i cs e r v e r 的特点是与领先数据库、操作系统和w e b 服务器紧密集成。 1 3 5 ) 关键任务可靠性 其容错、系统管理和安全性能已经在全球数以千计的关键任务环境中得以验证。 6 ) 体系结构 b e aw e b l o g i cs e r v e r 基于j a v a2e n t e r p r i s ee d i t i o n0 2 e e ) 标准,解决了应用系统中所 有的复杂性问题,让开发者能够专注于开发创新的产品和服务。 2 3j 2 e e 构架中的m v c 设计模式研究 2 3 1 软件开发中使用设计模式的原因 设计模式源自于面向对象程序设计方法,是面向对象程序设计中可复用的关键但它又 是完全基于实践的,是从一再出现的问题背景中抽象出来的问题的固定的解决方案。每一个 设计模式都有系统的命名,解释和评价了面向对象系统中的个重要的和重复出现的设计 ( 陈兆良等2 0 0 1 ) 。这样,只要搞清楚这些设计模式,就可以完全或者说很大程度上吸收了那 些蕴含在模式中的宝贵的经验,对面向对象的系统能够有更为完善的了解。更为重要的是, 这些模式都可以直接用来指导面向对象系统中至关重要的对象建模问题。如果有相同的问题 背景直接套用这些模式就可以了。这可以省去很多的工作( 许幼鸣等1 9 9 9 ) 。现在,很难想 象在一个面向对象的软件开发过程中,没有利用任何的设计模式而从头设计的。特别是像 j d k 这样庞大的类库,到处都可以看到设计模式的踪影( 饶一梅等2 0 0 2 ) 。因此在面向对象程 序开发过程中。使用恰当的设计模式,可以直接吸收利用前人经验,在降低工作量的同时保 证系统的性能和质量。 2 3 2j 2 e e 中m c 设计模式的棱心思想 m v c 设计模式是从用s m a l l t a l k 编程环境中创建用户接口的过程中发展来的,是一种 。 流行的面向对象设计模式。m v c 设计模式的目标是将应用对象( m o d e l ) 与面向对象的数 据表示( v i e w ) 和用户控制( c o n t r 0 1 ) 分开( s u nm i c r o s y s t e m s 2 0 0 1 ) 。 m v c 模式即m o d e l ,v i e w ,c o m r 0 1 l c r ,其中m o d e l 为数据结构和其上的操作,抽象了 应用的状态和功能:v i e w 为在应用的上下文关系中数据的形态,抽象了应用的表现: c o n t r o l l e r 将用户的操作和输入转换为m o d e l 上的功能调用,并根据用户的特征和m o d e l 状 态选择v i e w ,抽象了应用的行为( d e e p a ka l u r2 0 0 2 ) 。 1 4 m v c 设计模式的核心思想是通过c o n t r o l l e r 将数据的表示 c l e w 和数据本身及其处理 m o d e l 分开,这样。相同的数据可以根据不同的用户有不同的展现方式,而且v i e w 和m o d e l 可以交给不同的开发小组开发,可以提高开发效率。m v c 构图如图3 图3m v c 设计模式结构图 2 3 3 使用m v c 设计模式的意义 使用m v c 的好处,一方面分离数据和其表示,使得添加或者删除一个用户视图变得 很容易,甚至可以在程序执行时动态的进行m o d e l 和v i e w 能够单独的开发,增加了程序 了可维护性。可扩展性,并使测试变得更为容易。另一方面,将控制逻辑和表现界面分离, 允许程序能够在运行时根据工作流、用户习惯或者模型状态来动态选择不同的用户界面( 斐 龙,何大可2 0 0 l x 杨健2 0 0 1 ) m v c 设计模式是经过许多大型系统成功验证了的设计模式,其中蕴含了大量宝贵经验。 特别适合本项目开发人员使用j 2 e e 技术开发经验少的特点,可以减少由于经验不足造成的 失败风险。另外。m v c 设计模式也不是一成不变的,可以根据项目的特点进行调整,使之 更好的服务于系统的设计与开发。 洼:圈i t 圈2 图3 引自d e s i g n i n g e n t e r p r i s e a p p l i c a t i o n w i t hj a v a2 e n t e r p r i s e e d i t i o n 3 系统功能介绍 农业部农村经济体制与经营管理司为了推广农技推广体系发展监测工作,需要建立一套 基于w e b 的系统用来网上收集、查询、修改、统计上报数据,以及负责用户和系统的管理 :i 二作。 3 1 系统总体要求 农技推广发展监测系统总体上要满足农业部农村经济体制与经营管理司管理监测农 技推广体系发展情况的工作要求,充分利用互联网迅速、便捷的特点使省级、县级用户实 现数据的网上数据上报、查询功能,上报数据通过互联网提交到农业部信息中心数据库中, 供农村经济体制与经营管理司验收、评审、统计、公布。 农技推广体系发展监测系统总体分为四级用户:系统管理员、省级用户、县级用户和浏 览用户。系统根据每次上报规定的截止日期,划分为两种状态:上报日期截止前状态和上报 日期截止后状态。不同的用户在不同的状态有不同的操作权限。 县级用户在上报时间截止前可以通过网上填报、查询、修改、删除本县所有数据报表, 上报时间截止后,可以查询、打印本县数据,但无权再更改数据。 省级用户享有下属县的所有权限,在上报时间截止前可以通过网上填报、查询、修改、 删除本省内各县所有数据报表,上报时间截止后,省级用户不仅可以查询、打印本省各县数 据,还可以统计本省数据,但无权再更改数据。 系统管理员在上报时间截止前可以浏览各省、各县数据,但不能做改动。上报时间截止 后,省级和县级数据停止填报。系统管理员有权修改、增加、删除、查询、统计、打印数据。 系统管理员还负责用户管理和系统管理,可以增加、删除、修改用户名和密码以及用户权限; 可以确定或修改上报截止日期。 浏览用户无论在截止日期前、后都可以浏览、查询各省、各县上报数据,但不能做任何 修改。 数据上报周期不固定。 1 6 3 2 系统具体功能组成 农技推广体系发展监测系统主要包括以t j l 个功能模块: 夺信息的网上上报模块 令信息的查询、修改和删除模块 夺信息的统计、打印功能模块 夺用户管理和系统管理模块 各模块的具体功能如下: 1 ) 信息的阿上上报模块 上报截止日期前,省级和县级用户在登陆网络并输入正确的口令、密码后,可以选择未 填报报表,填写完毕,按提交按钮提交,数据提交到数据库前不仅要进行数据的审核,如某 些指标需要设定取值范围的上下限,监测县不得重复等,还要验证表格的平衡关系。数据通 过审核后提交数据库。 上报截止日期后,系统管理员在通过口令、密码验证后,可以填报各省、各县所有数据 报表。 2 ) 信息的查询、修改和删除模块 系统管理员和浏览用户可以查询所有数据;省级用户可以查询本省各县数据表;县级用 户可以查询本县数据表。 上报截止日期前,省级用户和县级用户可以修改、删除权限内上报报表数据,上报截止 日期后,系统管理员可以删除、修改所有上报数据。 3 ) 信息的统计、打印功能 系统管理员具有统计全国数据的功能和生成全国统计报表的功能:省级用户具有统计本 省数据的功能。所有撮表具有所见即所得的打印功能。 4 ) 用户管理和系统管理 系统用户分为四级:系统管理员,省级用户,县级用户,浏览用户。系统管理员可以新 建用户、修改用户和删除用户。系统管理员还负责维护上报截止日期以及上报报表的内容。 1 7 3 3 业务工作流程 农技推广发展监测系统流程图如图4 图4 系统流程圈 1 8 4 系统实现 为了在满足系统功能要求的同时保证系统的灵活性、可靠性、可扩展性和可移植性,系 统的实现采用了基于组件技术的多层分布式j 2 e e 体系结构,中间层用b e a 公司的 w e b l o g i c 中间件实现。使开发工作集中于数据上报和处理的业务逻辑,无需为用于在网 络上部署该逻辑的基础结构操心降低了工作量:系统的开发设计过程采用了面向对象的程 序设计方法,并使用基于u m l 的可视化建模工具r a t i o n a l r o s e 实现面向对象的分析和设计; 在系统的设计中采用了s u n 公司提出并倡导的m v c 设计模式。 4 1 系统开发平台 操作系统:w i n d o w s2 0 0 0s e r v e r 数据库:m i c r o s o f ts q ls e r v e r2 0 0 0 开发工具:b e a w e b l o g i c 6 1 :j b u i l d e r4 o :r a t i o n a lr o s e2 0 0 0 ;e d i t p l u s 4 2 使用r a t i o n a lr o s e 结合m v c 设计模式的面向对乐软件开 发过程 随着现代软件工程的复杂度不断提高,项目失败的可能性也相应的增加了。传统的软件 开发方法一瀑布法,可以很好的描述顺序过程,它对于需求定义得很好而且很稳定的问题比 较适宜,但需求的定义很少是不变的。面向对象开发技术是对现实世界的模拟,它通过对象 模型给出问题解决的方案,并通过模型与现实世界的不断反复得出一个更健壮、更灵活的系 统 j a v a 是一种纯面向对象的编程语言,是j 2 e e 构架的基础,因此开发基于j 2 e e 构架的 w e b 应用要采用面向对象的程序设计方法,遵循面向对象的软件开发过程。 面向对象的软件开发过程大体上划分为面向对象的分析( o b j e c t o r i e n t e da n a l y s i s ,o o a ) 、 面向对象的设计( o b j e c to r i e n t e dd e s i g n ,o o d ) 、面向对象的实现( o b j e c to r i e n t e d p r o g r a m m i n g ,o o p ) 三个阶段。f 印曼2 0 0 0 ) 与传统的程序设计方法相比,面向对象的问题求解具有更好的可重用性、可扩展性,而 可重用性是面向对象软件开发的核心,也是面向对象程序设计方法关注的问题,目前。o o 1 9 技术的研究人员们正在尝试在面向对象分析与设计中定义与使用“设计模式( d e s i g n p a t t e r n s ) ”f j a m e sg o o d w i l l2 0 0 0 ) 。农技推广发展监测系统是基于j 2 e e 体系结构的三层 w e b 应用,在面向对象设计过程采用了s u n 公司推荐的m v c 设计模式作为程序设计的主 体框架。m v c 设计模式是经过许多大型跨国项目验证过的较为成熟的设计模式,凝结了许 多优秀的思想与经验,本项目采用m v c 设计模式不仅省去了分析设计的工作时间,而且吸 收了蕴含在模式中的宝贵经验和优秀思想,提高了面向对象分析和设计成果的质量,为项目 的顺利实施奠定了良好的基石。 u m l 是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工 程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计。还支持 从需求分析开始的软件开发的全过程( 杨顺样等2 0 0 1 ) 0 9 e n d yb o g g s2 0 0 0 ) 。 u m l 和m v c 设计模式可以在系统面向对象设计过程中和谐的融合在一起,结合两者 优点,充分保证系统分析和设计工作的质量和效率。 4 2 1 基于u m l 的可视化建模工具r a t i o n a lr o s e 在面向对象程序设计过程中,如果应用是由成千上百个对象组成,单凭简单分析是难以 完成的。尤其对有一定复杂,有一套完善技术体系,能体现灵活性和扩展性的基于j 2 e e 体 系结构的企业级应用,可视化建模工具是必不可少的。正如建筑师在修建工程时要先规划好 建筑蓝图可视化建模将模型中的信息用标准图形元素直观显示出来是软件工程中的“蓝 图”。 r a t i o n a l 公司推出的r a t i o n a lr o s e 是目前最好的基于u m l 的c a s e ( 计算机辅助软件 工程) 工具。它把u m l 和谐地集成进面向对象的软件开发过程中。不论是在系统需求阶段, 还是在对象的分析与设计、软件的实现与测试阶段,它都提供了清晰的u m l 表达方法和完 善的工具,方便建立起相应的软件模型。0 9 e n d yb o g g s2 0 0 0 ) 利用u m l 可以开发几种不同 的可视框图,表示系统的不同方面r a t i o n a lr o s e 支持开发这些模型的大部分,包括u s e c a s e 框图s e q u e n c e 框图,c o l l a b o r a t i o n 框图。c l a s s 框图s t a t et r a n s i t i o n 框图,c o m p o n e n t 框图和d e p l o y m e n t 框图。 这些模型框图表示系统的不同方面,每个框图有一定的用途和使用对象。例如u s ec a s e 框图显示使用案例与角色问的交互。表示从用户角度对系统的要求,用于需求分析阶段; s e q u e n c e 框图表示使用案例中的功能流程,对项目各方面人员都有用;c l a s s 框图显示系统 中类与类之间的交互及类内的属性和方法,用于开发阶段。但在一个特定的系统中,并不要 求用到以上所有框图应根据项目需求和技术特点采用不同的框图。 2 0 使用r a t i o a a lr o s e 创建模型是进行面向对象程序设计的有力工具,在软件工程中,它 能够把模型与实际应用紧密地联系起来。通过模型与代码之间的映射,可以直接为不同的程 序开发环境生成系统结构的框架通过建立模型和代码间的映射,可以确保代码改进时模型 也随之更新了,而且通过模型与代码间的自动连接,建模工具可以确保良好的设计实施。 4 2 2 使用r a t i o n a l r o s e 进行系统的面向对象分析( o o a ) 过程 面向对象分析的主要作用是明确用户的需求,并用标准化的面向对象的模型规范地表述 这一需求。分析阶段的工作应该由用户和开发人员共同协作完成。 设计人员将从用户那里收集到的信息反映到使用案例图中。使用案例图( u s ec a s e d

温馨提示

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

评论

0/150

提交评论