(控制理论与控制工程专业论文)基于web的开发框架与应用生成器技术研究.pdf_第1页
(控制理论与控制工程专业论文)基于web的开发框架与应用生成器技术研究.pdf_第2页
(控制理论与控制工程专业论文)基于web的开发框架与应用生成器技术研究.pdf_第3页
(控制理论与控制工程专业论文)基于web的开发框架与应用生成器技术研究.pdf_第4页
(控制理论与控制工程专业论文)基于web的开发框架与应用生成器技术研究.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

摘要 随着i n t e m e t 与分布式对象计算技术的飞速发展,企业和政府都希望把原来的传 统业务通过w e b 来展现,对基于w e b 的企业级应用呈现出臣大的需求。由于w e b 技术本身不够成熟,w 曲应用常常变得越来越复杂,难以控制;而需求的多变性也 往往让开发者或维护人员怨声载道。论文以几个基于w 曲的课题为背景,从项目开 发中存在的问题入手,进行相关理论研究和技术实现,提出了相应的解决策略。y 本文的研究目的在于两点:第一,控制企业级w 曲应用的复杂度,提高软件的 质量,增强软件的可扩展性:第二,适应企业需求的多变性,提高w e b 应用软件开 发的效率,增加软件的自适应性和可复用性。 针对登垒应且的复杂性,论文分析了人们解决复杂问题的经验:层模式,同时 考虑到w e b 应用的交互性和特殊性,分析了经典的m v c 模式并将它解耦, 得到分 层m v c 模式。论文描述了分层m v c 模式和它的应用实例,介绍了它的一种实现框 架s t r u t s ,对这种框架的控制作用做了详细的分析,并用一个实际的例子做了阐述。 针对需求的多变性,论文提出了一种基于数据库的可复用的应用生成器的思想, 这种思想方法在国内的w e b 应用中还是空白。论文以生成式复用方式的为指导,分 析了应用程序不能满足变化性需求的原因,提出了一种基于数据源的w e b 应用生成 器,详细论述它的原理和实现。这种思想和方法在项目中被证明是正确的和有效的。 论文在展开论述之前对w e b 技术作了综述,论述之后对论述前提出的问题作了 回答,总结了文章的贡献和创新之处,并指出了若干遗留问题和进一步的研究方向。 关键词:复用;模式;框架:层;模型视图控制器:应用生成器:s t r u t s 、。v 。,囊、 v 华中科技大学硕士学位论文 = = = = = = = ;= ;= = ;= ! = = = = ;= = = = = = = = ;= i = 2 = a b s t r a c t w i t ht h e r a p i dd e v e l o p m e n to fi n t e r n e t a n dd i s t r i b u t e do b j e c tt e c h n o l o g i e s ,b o t h e n t e r p r i s e sa n dg o v e r n m e n th o p e t op r o v i d et h e i rt r a d i t i o n a ls e r v i c e st oo t h e r sb a s i n go n t h ew e b ,a n dat r e m e n d o u sr e q u i r e m e n tf o re n t e r p r i s ea p p l i c a t i o n so nw e be m e r g e s a st h e w e b t e c h n o l o g yi sn o tm a t u r e ,w e ba p p l i c a t i o n sa l w a y sg e tm o r ea n d m o r ec o m p l e xa n d a r ed i f f i c u l tt ob ec o n t r o l l e d a n dt h er e q u i r e m e n t sv a r i a b i l i t ya l s om a k et h ec o m p l a i n t s o ft h ed e v e l o p e r sa n ds y s t e ma d m i n i s t r a t o r sb eh e a r de v e r y w h e r e t h i sp a p e ri si nt h e b a c k g r o u n do f s e v e r a lw e b - b a s e dp r o j e c t s ,i tb e g i n sw i t ht h ep r o b l e m si nt h ed e v e l o p m e n t o f p r o j e c t s ,a n a l y z e st h er e l a t e dt h e o r ya n dd o i n gt h ep r a c t i c e s ,a n di tg i v e sc o r r e s p o n d i n g s t r a t e g i e sf o rr e s o l v i n g t h ep u r p o s eo ft h i sp a p e ri si nt w op o i n t s :f i r s t ,t ok e e pt h ec o m p l e x i t yo f aw e b a p p l i c a t i o na ta l le n t e r p r i s el e v e lu n d e rc o n t r o l ,i m p r o v et h eq u a l i t i e so f t h es o f t w a r ea n d e n h a n c et h ee x p a n s i b i l i t y ;s e c o n d l y , t oa d a p tt ot h ee n t e r p r i s e sc h a n g e f u lr e q u i r e m e n t s , a n dt or a i s et h ee f f i c i e n c y , a d a p t a b i l i t y , a n dr e u s a b i l i t yo f w e b a p p l i c a t i o n i no r d e rt oc o n t r o lt h ec o m p l e x i t yi nw e ba p p l i c a t i o n s ,l a y e rp a r e m ,ap i e c eo f e x p e d e n c e so fp e o p l e t os o l v ed i f f i c u l t p r o b l e m s ,i sa n a t o m i z e d a tt h e s a m et i m e , c o n s i d e r i n gt h ep a r t i c u l a r i t ya n dc o m m u n i c a t i o nn e e do fw e ba p p l i c a t i o n s ,t h ec l a s s i c a l m v c p a t t e mh a sb e e na n a l y z e d ,a n dt h ec o u p l i n gi nt h ep a t t e r nh a sb e e nu n t i e d ,w eg e t l a y e r e dm v cp a t t e r n a tt h ee n d t h e r ei sad e s c r i p t i o no f t h e l a y e r e dm v cp a t t e r na n d a l l a p p l i c a t i o ne x a m p l ei n t h ep a p e r , a n da 1 1 i m p l e m e n t a t i o nf r a m e w o r ko ft h i sp a t t e r ni s i n t r o d u c e d t h ee f f e c to f t h ec o n t r o l l e ri sa n a l y s e di nd e t a i l ,w i t ha ne x a m p l ei np r a c t i c et o e x p l a i n c o n s i d e r i n gt h er e q u i r e m e n t sv a r i a b i l i t y , a ni d e ao f a l la p p l i c a t i o ng e n e r a t o r ,w h i c h i sb a s e do nd a t a b a s ea n dc a nb er e u s e ,i sp r e s e n t e d t h i si d e ai su s e dr a r e l yi nd o m e s t i c w e ba p p l i c a t i o n s u n d e rt h ed i r e c t i o no f g e n e r a t i v er e u s ew a y , t h ep a p e re x p l a i n st h e r e a s o nw h yt h ec h a n g e f u lr e q u i r e m e n t sc a nn o tb ea d a p t e d ,a n di t e x c o g i t a t e sad a t a s o u r c e b a s e dw e ba p p l i c a t i o ng e n e r a t o r , d i s c u s s e st h ep r i n c i p l ea n di m p l e m e n t a t i o no fi t l i 华中科技大学硕士学位论文 一目= = = = = = = = 目= = = = = = = = ;= = = ;= = = ;= = = = = ;= = = ;= = i nd e t a i l t h et h i n k i n ga n dm e t h o d a r ep r o v e dt ob er i g h ta n de f f e c t t h e r ei sas u m m a r i z a t i o nf o rw e bt e c h n o l o g yb e f o r ed i s c u s s ,a n dt h e r ei sas u m u pi n t h ee n do ft h ed i s s e r t a t i o n t h eq u e s t i o n sa s k e di nt h eb e g i n i n gh a v eb e e na n s w e r e d i nt h e e n d ,t h ec o n t r i b u t i o na n di n n o v a t i o ni nt h ep a p e ra l ec o l l e c t e d 。a n ds o m e r e m a i n p r o b l e m s a r ep o i n t e do u tw i t ht h ed i r e c t i o no f t h en e x tr e s e a r c hs t e p s k e yw o r d :r e b s e ;p a t t e r n ;f r a m e w o r k :l a y e r ;m o d e l v i e w - c o n t r o l l e r a p p l i c a t i o ng e n e r a t o r ;s t r u t s m 华中科技大学硕士学位论文 1 1w e b 技术综述 1绪论 1 1 1w e b 技术的发展与现状 举世瞩目的i n t e m e t 是由美国2 0 世纪6 0 年代的a r p a n e t 发展和演化而成的。 互联网技术的发展大致经历了三个阶段: 起始阶段( 2 0 世纪7 0 8 0 年代) 计算机用t c p i p 协议连接起来,实现了资源共享、分布式控制技术、分组交换 技术、通讯处理机、分层网络通信协议,解决了两个问题:互通性和互操作性。这 段时期的网络服务范围较小,主要的运用是电子邮件。 w e b 阶段( 2 0 世纪9 0 年代现在) w e b 应用使用超文本传输协议( h y p e r t e x t t r a n s f e rp r o t o c 0 1 ) 在浏览器和服务器 端的应用程序之间传递数据,成千上万网站上的网页链接起来,i n t e r n e t 对全社会开 放,技术的发展逐渐改变了人们的行为习惯,形成了网络文化。w e b 主要的工作方 式是浏览器与服务器相互作用呈现用户需要的信息。 智能网络( 现在) 网页由过去的静态变为动态,显示给用户的信息更加智能化。网格计算( g r i d ) 、 网络服务( x m l s o a p u d d i ) 、c l i e n t s e r v e r 、s e r v e r s e r v e r 、c l i e n t - c l i e n t ( p 2 p ) 、n e t 、 j 2 e e 等技术日益受到重视。 目前,全球的互联网用户超过亿,互联网的使用量每1 0 0 日增加一倍。c n n i c ( 中国互联网络信息中心h t t p :w w w c n n i c n e t c n ) 的历年互联网络发展状况统计报告 中的数据表明,截至9 7 年l o 月3 l 号,我国的上网计算机还不足3 0 万,人数仅6 2 万:而到2 0 0 2 年6 月3 1 日,上网计算机超过1 6 0 0 万,人数超过4 5 0 0 万:截至2 0 0 2 年1 2 月3 1 日,仅仅6 个月时间,上网计算机突破2 0 0 0 万,上网人数达到5 9 1 0 万。 爆炸式的增长反过来大力推动了w e b 技术的再次飞跃,网络化、智能化、个性化将 成为未来网络计算新趋势。 在高速发展的同时,互联网络目前呈现出如下的多元化的现象: 华中科技大学硕士学位论文 操作系统多元化 使用较多的有s o l a r i s ,u n i x ,w i n d o w s 和l i n u x 。 应用服务器多元化 应用较为广泛的有j a k a r t a 公司的a p a r c h ,i b m 的w e b s p h e r e ,m i c r o s o f t 公司的 s 和b e a 公司的w e b l o g i c 。 编程语言多元化 较为主流的有c g i ,a s p ,p e r l ,j s p 和p h p 。 数据库支持多元化 m ss q ls e r v e r ,o r a c l e ,m y s e l ,d b 2 等也处于割据状态a 1 1 2w e b 应用的结构和原理 w e b 的工作基于客户机朋匣务器计算( c l i e n t s e r v e rc o m p u t i n g ) 模型,由w e b 浏 览器( 客户机) 和w e b 服务器( 服务器) 构成,两者之间采用超文本传送协议( h y p e r t e x t t r a n s f e rp r o t o c o l ,缩写:i f l q p ) 进行通信,m i p 协议的作用原理包括四个步骤: 连接,请求,应答,关闭连接。当客户机与服务器连接后,客户机向服务器提出请 求( r e q u e s t ) ,服务器根据客户机的请求,完成处理并给出响应( r e s p o n s e ) ,响应完 成后连接关闭( 见图1 1 ) 。 客户机服务器 图1 1 客户机,服务器模型 客户机和服务器统一使用t c p i p 协议,统一分配p ,使得它们之间的逻辑连接 变成简单的点对点连接。w e b 中的服务器一般由h t t p 服务器和后台数据库以及相 应的处理程序组成,而浏览器是与w e b 服务器产生连接的客户端程序,它的端口为 t c p 的8 0 端口。统一资源定位器( u n i f o r mr e s o u r c el o c a t o r ,缩写:u r l ) 实现了 单一文档能在整个国际互联网主机中的定位,使客户机可以很容易地在网上找到目 标文件。通过w e b 服务器的通用网关接口( c o m m o ng a t e w a yi n t e r f a c e ,缩写:c g i ) 2 华中科技大学硕士学位论文 :一= = = = = = = ;= = = = = ;= = ;= 口= = = = = ;= = ;= 自= = g = = = 或者服务器端的脚本程序,客户机可以很好的与后台的各种类型数据接口i 。 w e b 平台是一个调度任务集中,以客户为中心的应用程序平台,它是一个分布 式、开放、适用性强、高性能、端到端的平台。在典型的w e b 应用结构见图1 2 中, 前端是客户端,然后是w e b 服务器,事务层和数据逻辑层放在中间组件层,后台是 数据库服务器。 图1 2 典型的w e b 应用结构 1 1 3 基于w e b 页面的动态技术概述 基于w e b 页面的动态技术分为两类:网页的动态表现技术与网页的动态内容技 术。动态表现技术主要有d h t m l 技术、v r m l 技术与f l a s h 技术等,动态内容技术 主要有c g i 、i s a p i 、a s p 、p i - i p 和j s p 。下面主要针对这几种动态内容技术进行介 绍。 c g i ( c o m m o ng a t ei n t e r f a c e ) :标准c g i 使用命令行参数或环境变量来表示服 务器的详细请求,服务器与浏览器间的通信采用标准输入输出方式。当服务器接收 浏览器发来的c g i 请求时,创建一个子进程启动c g i 程序( 各进程由它自己的一组 环境变量、运行环境所需要的单独实例、一份程序和供程序使用的一块内存组成) , c g i 执行完毕后,使用标准输出将执行结果返回给服务器。c g i 的输出h t m l 文档、 图象、纯文本、声音或链接等多种类型。目前c g i 采用的语言主要有p e r l 和c 。 i s a p i :微软的专有服务器i i s 的a p i 。i s a p i 的基本框架包括过滤器( i s a p i f i l t e r ) 和扩展或应用程序( i s a p i e x t c n s i o n ) 。i s a p i 扩展一般只被s 装载一次,当后续请求 再来时,系统直接从内存中调用它。s 为每个被接收到的请求建立一个扩展控制块 ( e x t e n s i o n c o n t r o l b l o c k , e c b ) ,e c b 和i s a f i 扩展都与s 运行在同一进程中,i s a p i 扩展可以使用i i s 的所有可用资源,而且i i s 可以快速地处理大量的请求。同时利用 i s a p i 过滤器可以实现身份验证、加密、解密、实时站点流量分析等功能。 a s p ( a c t i v es e r v e rp a g e s ) :a s p 则是微软公司于1 9 9 6 年1 1 月推出的w e b 应用 3 华中科技大学硕士学位论文 = 一= = ;= = = = = = = ;= = = = = = = = = = = = ;= = ;= = = = = = ;= = = = = = = = = 程序开发技术。a s p 更精确的说是一个中间件,这个中间件将w e b 上的请求转入到 一个解释器中,在这个解释器中将所有的a s p 的s c r i p t 进行分析,再进行执行,而 这时可以在这个中间件中去创建一个新的c o m 对象,对这个对象中的属性和方法进 行操作和调用,同时再通过这些c o m 组件再完成更多的工作。 p i - i p ( h y p e r t e x tp r e p r o c e s s o r ) :它的源代码是免费的、开放的,支持跨平台。更 精确的说p h p 是一个纯粹的s c r i p t 翻译器,这也是p h p 需要支持这种或是那种扩充 功能时它一定要与相应系统的m ,库进行再编绎的原因。正因为它是正宗的“翻译器”, 所以它是将s c r i p t 翻译成为需要执行的函数,再去执行它们,外部扩充不能由些“动 态加载”的方式进行,所以只能静态的编绎进p h p 中( 这只能在w i n d o w s 中除外) 。 j s p ( j a v a s e r v e r p a g e s ) :j s p ( j a v a s e r v e rp a g e s ) 是由s u nm i c r o s y s t c m s 公司倡导、 许多公司参与一起建立的一种动态网页技术标准。在传统的网页h t m l 文件 ( * h t m ,h t m l ) 中加入j a v a 程序片段( s c r i p t l e t ) 和j s p 标记( t a 曲,就构成了j s p 网页 一j s p ) 。w e b 服务器在遇到访问j s p 网页的请求时,首先执行其中的程序片段,然后 将执行结果以h t m l 格式返回给客户。程序片段可以操作数据库、重新定向网页以 及发送e m a i l 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器 端执行,网络上传送给客户端的仅是得到的结果。 c g i 、i s a p i 、a s p 、p h p 和j s p 技术的比较可以参见附录表2 1 。 1 1 4 企业级w e b 应用技术概述 随着企业信息化和网络化的需求急剧增大,人们希望网络能提供可靠、高性能、 容错、可升级并且性能良好的服务。目前比较盛行的企业级w e b 应用开发框架主要 有s u n 公司的j 2 e e l 2 1 和微软的n e 一”。 j 2 e e 是第一套成功的企业应用程序开发框架,s u n 用它来满足没有太多费用而 又需要高可用性、高可靠性以及可扩展性的应用的需求。j 2 e e 应用运行在客户层、 中间层和企业信息系统层三个层次上,其中中间层分为w e b 层( 提供用户界面) 和 e j b 层( 提供业务逻辑) 两个子层。j 2 e e 使用e j bs e r v e r 作为商业组件的部署环境, 提供了分布式计算环境中组件需要的服务,例如组件生命周期的管理、数据库连接 的管理、分布式事务的支持、组件的命名服务等。j 2 e e 中定义了多种服务,包括j s p 和s e r v l e t 容器、e j b 容器、j d b c 、j n d i ( 名字目录服务) 、j t s ,j 1 a ( 事务服务) 、 4 华中科技大学硕士学位论文 j m s ( 消息服务) 等。目前,基于j 2 e e 的应用服务器主要有b e a w c b l o g i c 、i b m w c b s p h e r e 、o r a c l e9 i a s 、s u n i p l a n c t 、s i l v e r s t r e a me x t e n d 等。j 2 e e 的优势在于j a v a 的“一次编写,随意运行”特性和它的开放性,它是由除了微软之外的软件大公司 共同制定的规范,各个应用厂商可以依据它进行自己的实现。 微软的n e t 应用程序框架在应用服务器上的解决方案代表了另一种思路,可以 说,选择了微软的应用服务器解决方案也就意味着选择了完全的微软平台。微软的 目标是分布式的w e b 应用开发环境,它并没有提供个类似通常所说的应用服务器 的软件或软件包,而是将w i n d o w sn t 2 0 0 0 看做其应用服务器的基础,通过附加一 系列具备中间件功能的软件包来实现应用服务器平台。n e t 战略引入了许多新概念, 包含了一些新的技术,如w e bs e r v i c e s 和c # 语言,但n e t 在很大程度上是微软以 前开发的企业级应用平台d n a 的重新包装。微软在n e t 中提供了一系列企业级服 务器,为部署、管理和建立基于x m l 和w e b 的应用构筑了n e t 服务器结构,包括 a p p l i c a t i o nc e n t e r 、b i z t a l ks e r v e r 、c o m m e r c es e r v e r 、e x c h a n g es e r v e r 、s o l s e r v e r 等。微软的优势在于它占有了9 0 的桌面操作系统,而微软的n e t 计划就是要将微 软在p c 市场上的优势推广到互联网上,同时它也学习s u n 的战略将其特有的技术 标准化。 1 2s e r v l e t j s p 相关技术简介 s e r v l e t j s p 技术是基于j a v a 的w e b 开发技术,它们都必须在特定的环境下才能 运行。它们是本文涉及的主要技术。 1 2 1s e r v l e t j s p 应用层次模型 s e r v l e t 是在服务器端执行的小程序,没有m a i n 方法,不提供用户界面,只有 些特定的方法i n i t 0 、s e r v i c e 0 和d e s t r o y ( ) 用于启动、执行和退出。s e r v l e t 的一个主要 用途是代替传统的c g i 来实现动态数据交换。早期人们利用s e r v l e t 来输出h t m l 网页,在i a v a 代码中嵌入了大量的h t m l 语句。j s p ( 参见1 1 3 ) 是完全基于s e r v l e t 的技术,j s p 文件被j s p 引擎转换成对应的s e r v l e t 程序代码后,再被编译成类文件 加载执行。它的出现使得开发者可以在h t m l 页面中嵌入大量的j a v a 代码。 s c r v l e t j s p 应用的层次模型主要有两层模型( 见图1 3 ) 、三层模型( 见图1 4 ) 5 华中科技大学硕士学位论文 和n 层模型( 见图1 5 ) 。两层模型允许j s p 直接访问数据库或其它应用程序等外部 资源;三层模型在j s p 与外部资源之间添加了j a v a b e a n ,有助于页面与逻辑的分离; n 层模型在服务器最前端增加一个j s p 或s e r v l e t 作的基本控制器层,对请求进行分 发,也有人将n 层模型称为m v c d ( m o d e l - v i e w - c o n t r o l l e r - d a t a b a s e ) 模型。 图1 3 两层模型 图1 4 三层模型 1 2 2j s p 模型1 图】5n 层模型 简单的说,j s p 模型1 ( 见图1 6 ) 将事务逻辑( b u s i n e s s l o g i c ) 和表示代码 ( p r e s e n t a t i o nc o d e ) 融合在一起( 如在h t m l 中) :j s p 模型2 ( 见图2 9 ) 则提倡最 大限度地将所有的代码放到内容表示之外。 6 华中科技大学硕士学位论文 一= = 。= = = = 2 = = = = = = ;= = ;= 自= = = = = ;= = = = = = = ;= 口 图1 6j s p 模型1 模型1 的优点是如果应用改变了,只需维护一个文件:而它最大的缺陷是可读 性差,h t m l 和j a v a 代码会相互混杂,难以维护。 1 2 3j s p 标志扩展机制 j s p 技术提供了标志( t a g ) 扩展机制f 4 l ,使开发者能定义自己的标志,并将自定 义的标志合成标记库,使j s p 网页作者能在网页中使用这些标志。j s p 引擎在处理 j s p 文件时若遇到某一标志,会实例化一个该标志的相应处理类的实例,并在需要时 调用该标志实例提供的方法。开发者需继承t a g s u p p o r t 类或b o d y t a g s u p p o r t 类,并 覆盖其中的一些方法,来使j s p 引擎完成自定义的标志解释。使用j s p 的标志扩展 机制主要有三个步骤:编写标志处理类、创建标志库描述文件、编写使用标志的j s p 文件。 1 2 4s e r v l e t j s p 中的共享对象技术 像j a v a 程序有类级别变量、方法级别变量一样,w e b 应用程序有四个级别的共 享对象1 5 】存放地,分别是页面( p a g e ) 对象、请求( r e q u e s t ) 对象、会话( s e s s i o n ) 对 象和应用程序c a p p l i c a t i o n ) 对象,它们都是以数据结构键,值对的形式保存的。应 用程序对象中的共享对象是全局性的,在整个应用程序的生命周期内有效,属于所有 的上网用户;会话对象中的共享对象是在一个会话期内有效,属于用户的当前会话; 请求对象中的共享对象在一个请求期内有效,属于用户发送的当前请求;页面对象 中的共享对象只属于当前页面的执行实例。共享对象的有效范围、具体访问方法、 辅助显示手段和多线程下的实现策略可以参见附录表2 2 和表2 3 。 7 华中科技大学硕士学位论文 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 目 1 2 5s e r v l e t d s p 的支持环境 s e r v l e t j s p 的支持环境主要指支持他们的w e b 服务器和集成开发工具a 在众多 的支持s e r v l e t j s p 的服务器中,比较重要的有:a l l a i r ej r u n 、a p a c h e t o m c a t 、b e a w e b l o g i c 、i b mw e b s p h e r e 、i p l a n t w e bs e r v e r 、j a v a s e r v e rw e bd e v e l o p m e n t 飚t 以及 j a v aw e bs e r v e r 。支持s e r v l e t j s p 的集成开发工具主要有a l l i a r e j r u ns t i d i o 、i b m w e b s p h e r e s t u d i o 、b o d a n dj b u i l d e r 、n e t b e a n sw e bm o d u l e 以及o r a c l ej d e v e l o p e r 。 1 3 课题的背景、目的和意义 本课题起源于基于w e b 的浙江省暂住人口旅馆业系统,该系统以s q l s e r v e r 作 数据库服务器,r e s i n 作w e b 服务器,客户端使用普通浏览器,由于系统设计时对需 求的变化和应用的复杂程度考虑不足,导致开发出的系统存在一些不足: 1 对用户而言,它不能满足个性化的查询统计需要。 2 对其它他开发者而言,该应用包含了大量的页面,页面中大量的h t m l 、 j a v a s c r i p t 、j a v a 代码混用( j a v a b e a n 中也混有h t m l 代码) ,使其他开发人员难以 读懂他人程序,也无法从整体上把握w e b 应用的流程,导致了协作开发和维护的障 碍。 3 另外,由于w e b 程序的特点,用户可以从任意页面进入应用,为了避免这一 点,网页中不得不包含了大量的用户状态校验,使系统更加复杂。 4 页面与业务处理逻辑耦合紧密,修改任一方都会影响到另一方,致使改变程 序的外观很难。 5 每个j a v a b e a n 的实现非常具体,完全的黑箱复用难以实现,新增的功能几乎 仍然需要重新开发,虽然可以部分地拷贝和参考其它j a v a b c a n 的代码。 在后来开发基于w e b 的公司管理系统时,我们采用了j s p 模型1 来开实现,开 发速度很快,该系统目前运行良好。但是在开发中我们仍然遇到或制造了前面所说 的一些问题,另外我们还发现: 6 页面很难调试,找b u g 难。 7 页面的特效对开发很有用,但是我们缺少这方面的积累。 本课题针对这些问题,研究w e b 应用开发的特点、模式以及如何高效开发易于 8 华中科技大学硕士学位论文 扩展、具有一定的自适应性的复杂多变的w e b 应用系统。本课题主要致力于研究如 下两个问题: 1 如何从总体上控制和开发复杂的w e b 应用 2 如何使w e b 应用系统能适应需求的变化性 目前,国内的基于j a v a 技术的w e b 应用研究尚处于探索阶段。而j 2 e e 框架刚 推出不久,技术的复杂度掩藏了它解决w e b 应用中种种问题的思想。在此时我们着 手于这方面的研究不仅可以解决复杂多变的w e b 应用开发问题,更重要的是掌握解 决问题的思想,以利于更加高效地构建基于w e b 的、运行稳定、易于维护的复杂多 变的大型应用系统而这方面的需求,是信息网络化发展的必然趋势。 1 4 本论文的组织结构 本论文共分六章,本章是绪论,对w e b 应用技术进行了综述,简述了本文的研 、 究涉及到的一些重要知识点,介绍了课题的背景和论文的组织;第二章主要针对企 业级的w e b 应用分析了分层m v c 模式的理论基础和实践原理;第三章详细分析了 基于j s p 技术的实现了分层m v c 模式的s t r u t s 框架,并举了实例来说明框架对w e b 应用的控制作用;第四章主要讲述基于数据库的,能满足用户多变需求的应用生成 器,介绍了它原理和实现方法;第五章总结了本文的贡献和创新之处、研究中遗留 的问题和进一步研究方向。 9 华中科技大学硕士学位论文 = 一= g = = = = 4 = = = 目= = = = = = = = ;= = = = = = = = = = = = = 2 = = 2w e b 应用开发模式 2 1w e b 应用开发面临的难题 当前,软件的趋势是朝着更大更复杂的系统发展。这部分的是因为计算机的处 理能力每年都在增大,导致用户对它的期望更多。同时,这种趋势也受到为交流各 种信息( 从纯文本到格式化文本到图像到图表再到多媒体) 而不断扩大互联网的使 用的影响。在产品版本的不断升级过程中,客户了解到产品是如何被改进的,因此 他们对越来越复杂的软件的胃口也就越来越大。客户需要更符合他们的需求的软件, 但是,这种需要反过来又使得软件越来越复杂。客户需要越来越快速的软件开发过 程,总之,用户对强大、复杂软件的需要与软件开发的当前状况并不一致。 1 复杂性。在软件系统的开发中,应用域( 如金融系统,交通控制系统,政务 系统,商务系统等) 通常都包括许多软件开发人员所不熟知的概念,而求解域( 如 用户界面工具包,中间件,数据库管理系统,交易处理系统) 通常是不成熟的,并 且会给开发人员带来很多具有挑战性的实现技术。结果,系统和开发项目都变得复 杂,并且涉及到许多不同的组件、工具,方法和人员之间的协作。 2 多变性。当开发人员从使用者那里增进了对应用领域的了解后,他们更新系 统的需求:当开发人员对正在出现的技术或者现行技术的缺陷了解得更多后,他们 会调整系统设计和实现;当质量控制发现系统中的缺陷和用户要求增加新功能时, 开发人员修改系统及与之相关的产品,从而导致不断的变化。 3 时间不足。一般而言,客户方的需求都比较迫切,几乎没有客户能忍受太长 的开发的期限,因此开发者为了兼顾客户和自身,估计出的项目开发时间常常不足。 s t a n d i s h 集团针对美国大约8 0 0 0 个软件项目进行了调查研究,结果表明:所有软件 项目中令人惊讶地有8 4 未能按时完成、按预算完成或者安装所有预先要求的特性; 所有项目中有超过3 0 在完成之前被取消了,其他则明显超过了期限,并且( 平均 来说) 超过了预算的1 8 9 。人月神话的作者f r c d e r i c kp b r o o k s ,j r 说“失败在软 件业是件常事,而时间估计不足引起的问题比所有其他的问题加起来还要多。”。 由于软件业的发展还不成熟,在软件业中,很多的情况下开发者们先开发用户 1 0 华中科技大学硕士学位论文 需要的应用,满足一些需求,开发完后再回过头来考虑应用的构架,如同“盖好屋 顶之后重建地基”,这种现象在软件业中称为“特色蠕变”现象。在w e b 应用中这种 现象更为常见:特别对于开发新手、小规模的公司、新技术的狂热爱好者,一边摸 索一边开发w e b 应用系统,很少能在项目开发初期制定整体的体系结构和系统扩展 计划,经验不足、人手不够、时间压迫常常是导致项目失败的原因。而正由于这样 的恶性循环,使得我国的大多数w e b 应用仍处于初级阶段,技术得不到发展,w e b 开发者们的技术进步依赖于追随国外技术开发者或者大公司的动态。这种被动的状 态急待改善。我们需要掌握w e b 应用研究的科学的方法和实践。 2 2 软件体系结构模式 “业余的软件工程师总是在寻找某种神奇的、令人激动的方法或工具,希望它 们的应用能使得软件开发变得轻而易举。而专业的软件工程师知道并不存在这样的 万能方法或工具。” g r a d yn o o c h f 6 1 ,o b j e c t - o r i e n t e da n a l y s i sa n dd e s i g n 在对w e b 应用系统有了初步的认识和实践后,要开发能解决上述难题的系统仍 然是个复杂而漫长的过程。对各种领域需求的调查与理解是漫长的;w e b 应用系统 的体系结构的创建、测试、改进的过程是漫长的;基于构架的组件的实现与验证是 漫长的;w e b 系统的集成、测试以及兼顾新旧系统的整合也是漫长的。为了是所作 的开发工作不付诸东流,w e b 应用体系结构的建立显得尤为重要,因为它是后续开 发的基础。 相对于w e b 应用的开发,普通的桌面应用程序的开发和信息系统的开发显得更为 成熟。要开发出高质量的w e b 应用系统,必然需要借助于已有的成熟的软件系统的经 验。而软件体系结构模式正是无数开发者经验的提炼,它描述了软件系统基本的结构 化组织方案。为更好地设计w e b 应用构架,首先需要认识软件体系结构及模式。 软件体系结构( s o f t w a r ea r c h i t e c t u r e ) 是对子系统、软件系统组件以及它们之间 相互关系的描述。子系统和组件一般定义在不同的视图内,以显示软件系统的相关 功能属性和非功能属性。系统的软件体系结构是一件人工制品。它是软件设计活动 的结果。 1 l 华中科技大学硕士学位论文 = = = 2 = = = = = = = = = = = ;= = = = ;= = # = ;= = ;= = ;= = = = ; 功能属性( f u n c t i o n a lp r o p e r t y ) 用来处理系统功能性的特定方面,并且通常与特 定的功能需求相关。功能特性可以通过特定的功能使用户直接可以看到应用程序, 也可以通过它的实现来描述,例如用来计算功能的算法。 非功能属性( n o n - f u n c t i o n a lp r o p e r t y ) 定义了末被功能属性描述覆盖的系统特征a 非功能属性通常解决与一个软件系统的可靠性、兼容性、开销、重用性、易用性、 维护或者开发有关方面。 当设计软件体系结构时,非功能属性非常重要。首先,软件系统随着时间演化。 它们必须相应地改变技术、需求和系统环境。因此仅仅恰当分解全部应用任务时远 远不够的系统还必须为变化、扩展和适应做准备。其次,软件系统的功能性必 须遵从总体需求,例如,为了它的总体可操作性、可靠性或效率。为了满足这种需 求,需要恰当地设计软件体系结构。 软件构造基于几个基本原理。因为随着时间地推移有关原理已经变得模糊,所 以现在称这些原理为启用技术( e n a b l i n gt e c h n i q u e ) 。软件体系结构地一些最重要的 启用技术有i 7 1 : 1 抽象( a b s t r a c t i o n ) 2 封装( e n c a p s u l a t i o n ) 3 信息隐藏( i n f o r m a t i o nh i d i n g ) 4 模块化( m o d u l a r i z a t i o n ) 5 事务分离( s e p a r a t i o n o f c o n c e r n s ) 6 耦合和内聚( s e p a r a t i o n a n dc o h e s i o n ) 7 充分性、完整性和原始性( s u f f i c i e n c y ,c o m p l e t e n e s s a n dp r i m i t i v e n e s s ) 8 策略和实现的分离( s e p a r a t i o n o f p o l i c y a n d i m p l e m e n t a t i o n ) 9 接口和实现的分离( s e p a r a t i o n o f i n t e r f a c e a n d i m p l e m e n t a t i o n ) 1 0 单一引用点( s m s l e p o i n t o f r e f e r e n c e ) 1 1 分而治之( d i v i d e a n d c o n q u e r ) 而体系结构模式继承并发扬了上述的启用技术,以实践经

温馨提示

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

最新文档

评论

0/150

提交评论