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

(计算机软件与理论专业论文)一种基于组件的web应用建模方法.pdf.pdf 免费下载

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

文档简介

摘要 互联网架构的飞速发展,促进了w e b 应用的广泛应用。w e b 应用在国计民 生、商业领域和个人生活中发挥着日益重要的作用。现今,w e b 应用已发展成 为一种成熟而又复杂的分布式系统,并且日趋专业化和协作化,针对它的分析、 建模及测试工作给软件工程领域带来了极大的挑战。 本文提出一种基于组件的w e b 应用的建模方法。该方法用于其设计阶段, 先将w e b 应用组件划分为视图组件和服务器端组件,其中视图组件封装w e b 页面的行为,服务器端组件封装业务逻辑处理,然后给出w e b 应用的u m l 组 件结构模型和行为模型。该组件模型既提高了w e b 页面的抽象层次,又统一了 w e b 页面与w e b 应用后台服务器中组件的描述方式。 u m l 模型虽然图形表示能力很强,有很好的易用性及可理解性,但其半形 式表示方法缺乏精确的语义,产生的规格说明往往不够精确和完整,从而造成 系统的不完善。如果提供精确的软件规格说明,将有利于对系统实现的精确描 述,使误解引起的错误减少,而软件形式方法正是基于严格精确的数学逻辑模 型,可以进行高度抽象的推理与证明过程,并且能够对形式规格说明进行正确 性证明。但是形式规格说明中的数学概念抽象,从而导致规格说明难以阅读。 由于图形化规格说明和形式方法在软件开发过程中有各自的优缺点,将两者结 合起来,则可以产生既容易理解又精确的软件规格说明。 为了提高u m l 组件模型的精确性,本文采用u m l 与形式语言o b j e c t - z 相 结合的方法来描述w e b 应用组件,将结合o c l 表达式的w e b 应用的u m l 组 件模型,转换成o b j e g t z 的形式规格说明。并开发了基于x m i ( x m lm e t a d a t a i n t e r c h a n g e ) 的工具w 曲m o f ,实现了w e b 应用的u m l 模型到o b j e c t - z 形式规 格说明的自动转换。 关键词:w e b 应用,组件,视图活动流,u m l ,o c l ,o b j e c t z v a b s t r a c t t h ee x p o n e n t i a lg r o w t ho ft h ew e ba n dt h er a p i dd e v e l o p m e n to fi n t e r - n e t b a s e da r c h i t e c t u r e sh a v es e tt h es t a g ef o rt h ep r o l i f e r a t i o no fav m e t yo fw e ba p - p l i c a t i o n s a n dw e ba p p l i c a t i o n sp l a yam o r ea n dm o r ei m p o r t a n tr o l ei ng o v e m m e n - t a la n dc o m m e r c i a lf i e l d sa n da l s oi no u rd a i l yl i f e n o w a d a y sw e b a p p l i c a t i o n sh a v e b e e nd e v e l o p e di n t oak i n do f m a t u r ea n de x t r e m e l yc o m p l e xd i s t r i b u t e ds y s t e m s ,a n d t h ee m e r g i n gt r e n d sf o rw e ba p p l i c a t i o nr e v o l v ea r o u n ds p e c i a l i z a t i o na n dc o o p e r a - t i o n t h ea n a l y s i s ,m o d e l i n ga n dt e s t i n go fw e ba p p l i c a t i o n sa leg r e a tc h a l l e n g e si n t h ea r e ao fs o f t w a l ee n g i n e e r i n g t h i sp a p e rp r o p o s e sac o m p o n e n t - b a s e dm o d e l i n ga p p r o a c hf o rw e ba p p l i c a t i o n s i nt h ed e s i g np h a s e i nt h i sa p p r o a c h ,aw e ba p p l i c a t i o ni sf as td i v i d e di n t ot w oo a t e - g o r i e so fc o m p o n e n t s :s e v e rc o m p o n e n t , w h i c he n c a p s u l a t e sb u s i n e s sl o g i cp r o c e s s a n dv i e wc o m p o n e n t , w h i c he n c a p s u l a t e st h eu s e rb e h a v i o ro fw e bp a g e so nt h e b r o w s e rs i d e a n dt h e nau m lc o m p o n e n tm o d e lo faw e ba p p l i c a t i o ni sg i v e n ,i n - e l u d i n gas t r u c t u r em o d e la n dab e h a v i o rm o d e l t h e s em o d e l se n h a n c et h ea b s t r a c - t i o nl e v e lo fw e bp a g e s a n dp r o v i d eau n i f o r md e s c r i p t i o nm e t h o df o rb o t hk i n d so f c o m p o n e n t s a l t h o u g hu m lm o d e l sw h i c hh a v eg o o dg r a p h i cn o t a t i o n s ,a l ee a s yt ou s ea n d u n d e r s t a n d , t h e ya l ew e a ka tp r e c i s ed e s c r i p t i o nw i t ht h e i rs e m i - f o r m a ln o t a t i o n s a n dt h es p e c i f i c a t i o ng e n e r a t e db yu m lt o o l sg e n e r a l l yi si m p r e c i s ea n di n c o m p l e t e , w h i c hl e a d st oa ni n c o m p l e t es y s t e m b a s e do np r e c i s em a t h e m a t i cl o g i cm o d e l f o r m a lm e t h o d sp r o v i d ea b s t r a c tr e a s o n i n ga n dp r o v i n g ,a n dc a ng e n e r a t ep r e c i s e s o f t w a r es p e c i f i c a t i o n ,w h i c hf a c i l i t a t e st od e s c r i b eas y s t e mp r e c i s e l y a n df o r m a l m e t h o d sf u r t h e rr e d u c es o f t w a r eo r r o l 3 ,a n dc a r tp r o v et h ef o r m a ls p e c i f i c a t i o n s c o r r e c t n e s s t h ed i s a d v a n t a g eo ff o r m a lm e t h o d si si t sp o o rr e a d a b i l i t y ,a n dt h e n e e d sf o ram a t h e m a t i c a lb a c k g r o u n d t h ei n t e g r a t i o no fu m lm o d e l sa n df o r m a l m e t h o d s ,s h a r i n gt h em e r i t so fb o t hm e t h o d s ,c a l lg e n e r a t ep r e c i s es p e c i f i c a t i o n s w h i c ha l ea l s oe a s yt ou n d e r s t a n d b a s e do nt h ea b o v ei n t e g r a t i o nm e t h o d o l o g y ,i no r d e rt oi n c r e a s et h ep r e c i s e - v i h e s so fl r m lm o d e l s ,t h i sp a p e re m p l o y sad e s c r i p t i o nm e t h o df o rw e ba p p l i c a t i o n s c o m b i n i n gu m la n do b j e c t - z ,a n dat r a n s f o r m a t i o nm e t h o df r o mu m lm o d e l s w i t ho c lp r e d i c a t e st oo b j e o t - zs p e c i f i c a t i o n s a n dw ed e v e l o p e dt h es o w a r e n a m e dw e b m o ft os u p p o r to u rm e t h o d b a s e do nx m i t e c h n i q u e s ,w e b m o fr e a l - i z e sa l la u t o m a t i ct r a n s f o r m a t i o nf r o mu m lm o d e lt oo b j e c t zf o r m a ls p e c i f i c a t i o n k e y w o r d s :w e ba p p l i c a t i o n ,c o m p o n e n t ,v i e wa c t i v i t yf l o w ,u m l , o c l ,0 b j e c t z v i i 原创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发 表或撰写过的研究成果。参与同一工作的其他同志对本研究所做的 任何贡献均已在论文中作了明确的说明并表示了谢意。 签名:庭煎盈日期:避:;:! f 本论文使用授权说明 本人完全了解上海大学有关保留、使用学位论文的规定,即: 学校有权保留论文及送交论文复印件,允许论文被查阅和借阅;学 校可以公布论文的全部或部分内容。 ( 保密的论文在解密后应遵守此规定) 签名:_ 2 丝导师签名:孓萝塑叁焦日期: 撕毒1 y 1 1 w e b 应用简介 第一章绪论 w e b 及基于互联网架构的飞速发展,促进了w e b 应用的广泛应用。w e b 应 用是一种基于w 3 c 标准及技术的软件系统,它通过一个用户界面即w e b 浏览 器向用户提供诸如信息和服务等特定资源。 w e b 应用在国计民生、商业领域和个人生活中起着越来越重要的作用。我 们上网时都在与各种各样的w e b 应用系统打交道,例如网上银行、房地产服务、 发票管理系统、企业成员管理系统、交互讨论组及聊天室、博客系统和w i l d 系统等等。 w e b 应用建立在万维网之上,为用户提供了多元化的交互环境。它们完全 是跨平台的,并且可以在世界的任何一个地方使用,唯一所需的客户端软件便 是w e b 浏览器。w e b 应用与传统软件系统一个很明显的区别在于w e b 相关的 技术与标准的使用。 目前绝大多数的w e b 应用均遵循图1 - 1 中的n 层架构: 图1 - 1w e b 应用的软件n 层架构 w e b 应用的n 层架构允许我们以任意层数构建w e b 应用。在w e b 应用的 n 层架构通常包括三层:数据层提供应用数据的访问;业务层在应用服务器中 主管业务逻辑;表现层在客户端呈现请求输入及输出。另外,防火墙、缓存机 制像代理等安全机制,可根据具体要求集成到请求响应流中。 w e b 应用具有如下几个特点: ( 1 ) 复杂的分布式架构。w e b 应用的通用架构采用客户端服务器模式,其中 包含三个组成模块:一个或多个w e b 服务器,网络连接,客户端浏览器。 ( 2 ) 不同熟练水平的使用者。由于互联网的开放性,任何人均可使用。 ( 3 ) 无限制的用户数量。一些大型的w e b 应用可能在同一时间段内需要向数 以百万的用户提供服务。 ( 4 ) 对安全及隐私的支持。由于互联网是一个开放式系统,w e b 应用需要保 护其用户的信息及隐私的保护。 ( 5 ) 信息资源的异构性。w e b 应用需要处理并集成层次化的复杂数据,以及 非结构化与半结构化的数据,且w e b 应用程序可能驻留在不同的服务器上。 ( 6 ) 动态性。新技术不断涌现,如c g i ,j s p ,a s p ,a j a x ,r u b y ,s t r u t s , j s f ( j a v as e r v e rf a c e s ) 等、浏览器及网络基础设施不断更新、用户需求的频繁变 更和w e b 应用本身具有的动态性,如图形用户界面根据用户输入、用户的状态 数据和服务器的状态数据的不同而有所不同。 1 2 w e b 应用建模方法综述 由于w e b 应用在我们日常生活中的重要性,其开发及质量备受关注。而如下 三项研究调查表明,并非所有的w c b 应用都符合客户需求。 早在1 9 9 5 年,一项由3 4 0 家奥地利公司参与的研究表明,多达2 3 的公司认为 w e b 应用需求文档的编写是w e b 应用开发过程的主要环节。而且,一半以上的公 司均认为在需求管理方面存在很大问题。 1 9 9 4 年,以s t a n d i s h i x 组为指导的研究人员对8 0 0 0 多个项目进行调查,结果 表明,3 0 的项目在完成之前停工,剩下7 0 的项目均不满足客户的需求。在一 半以上的项目案例中,与需求相关的问题本都是很容易发现的,包括用户参与太 少、不完全不稳定的需求、不切实际的需求、不清晰的目标、不切实际的进度安 排。 根据c u t t e r 集团在2 0 0 0 年有关w e b 应用开发的研究报告,只有1 6 的w e b 应用 完全满足客户需求,而已实现的5 3 的w e b 应用没有达到所需的性能要求【l 】。 2 由此可见,需求规格说明的正确与否在w e b 应用开发过程中起到了决定性的 作用。另外,模型是对系统的抽象描述,有利于我们分析和理解系统,建模的目 的是以一种形式化的方法来描述客户的需求规格,可以帮助我们更好地理解目标 系统,并且降低了系统开发的复杂度。 目前w e b 应用的模型主要从静态结构与动态行为方面分别描述内容、超文 本、表示层,从而描述整个w e b 应用。w e b 应用的内容模型用于捕捉类似非w e b 应用程序中的信息及应用逻辑;超文本模型描述基于内容的所有可能的导航信 息;表示模型将超文本内容映射到页面及超链接中,从而描述图形用户界面。 为了更好地理解和分析w e b 应用系统,各大学术机构和企业单位相继提出了 多种建模方法,它们主要从开发和测试角度来对w e b 应用建立模型。其中,比较 有代表性的开发模型有以下几类: ( 1 ) 面向数据方法该方法源自数据库系统领域,其代表有关系管理方法 ( r m m ) 、h e r a 、w e b 建模语言。它们主要基于e r 模型,并采用一些特定的概念 对w e b 应用超文本层次建立模型,主要关注对象是数据库驱动的w e b 应用。 ( 2 ) 面向超文本方法此类方法集成考察w e b 应用的超文本特性。其代表有 超文本设计模型( i - i y p e r t e x td e s i g nm o d e l ) 、h d m 1 i t c 。 ( 3 ) 面向对象方法此类方法主要基于u m l ,包括面向对象超媒体设计方 法、基于u m l 的w e b 工程、面向对象w e b 解决方案、面向对象超媒体方法等。 ( 4 ) 面向软件方法它主要从传统软件开发的角度来观察w e b 应用,并采用 一些经典的软件工程技术。比较突出的方法有w e b 应用扩展,它以页面为中心, 使用u m l 扩展机制集中考虑w e b 应用的功能性方面。在软件工程领域,基于组件 的软件开发方法由于具有提高软件复用层次、软件开发效率及软件质量等优点, 得到了广泛应用,w e b 应用开发也采用软件工程面向组件的技术。比如说,搜索 引擎、标签等已经成为新一代协作w e b 应用的标准组件。尤其是j s f 的出现,提 升了w e b 应用在页面设计方面的复用层次,通过提供丰富的用户界面组件( 如文 本框、列表框、数据网格等) ,使得w e b 应用的开发变得更快捷。 ( 5 ) 模型驱动开发方法该方法不仅提倡在软件开发过程中使用模型,还强 调在开发各阶段的模型转换。w e b 软件架构正是一种在w e b 领域中采用模型驱动 架构思想的方法。 各种建模方法都有相应工具来支持w e b 应用的开发,都涉及建模语言的使 用。u m l 建模语言未来可能成为“统一w e b 建模语言”【l 】。 如前面所述,w e b 应用的分布性、异构性、并发性,使得我们不能按照传统 的软件测试技术来测试w e b 应用。尤其是w e b 应用的动态特性,不仅表现在用户 界面和内容的动态显示,如滚动新闻,还表现在用户操作的多样性。在传统软件 中,程序控制流完全由程序控制,用户只能通过输入数据来影响控制流,控制流 图可以通过程序代码的静态结构得出。而且,传统程序中的控制流可以描述用户 可能执行的所有语句序列。而w e b 页面的导航元素十分灵活,且w e b 应用可以从 多个浏览器窗口并发访问,所以w c b 应用的控制流异常复杂。当用户访问一个 w e b 应用时,可以在不告知程序控制器的情况下中断正常的控制流,比如说,按 下浏览器中的“后退”或“刷新”按钮,或者直接在浏览器地址栏中修改u r l 地址。这些操作会引起控制流的任意改变,从而产生一些传统软件控制流无法表 示的控制路径。甚至客户端浏览器的配置也会影响到w e b 应用的行为,比如说用 户关掉浏览器的c o o k i e 功能,由此可能产生异常操作。 除了开发模型,各学术机构、研究团队、企业单位等还提出了各种针对w e b 应用的测试模型。 文献【2 】提出的基于有穷自动机对w e b 应用进行建模和产生测试用例的方法, 在不同层次上对w e b 应用子系统建立有穷自动机模型,由有穷自动机的状态序列 生成测试用例。尽管这种方法从系统层面阐述了w e b 应用的自动测试问题,并将 w e b 应用各种元素之间的连接关系分为八大类,但是它没有考虑到组件之间的交 互与组合。 文献 3 】提出了一种新型测试模型,用u m l 类图来描述w e b 页面之间的关系, 并提出一种单元测试及集成测试策略,测试对象主要为客户端及服务器页面。 文献【4 】提出一个面向对象w c b 钡1 试模型( w a t m ) ,使用不同模型来描述 w e b 应用的不同方面( p e r s p e c t i v e ) 。该测试模型从对象、行为、结构方面来表示 w e b 应用。 文献【5 】给出一个u m l 模型,主要考虑页面、超链接、定义一使用、所有使 用和所有路径的基于数据依赖测试。在这种方法中,一个测试用例是一个附加表 单输入数据的页面序列。 文献【6 】利用存储在日志文件中的用户会话信息自动产生测试用例。这些测 试模型主要考虑的是w e b 应用的外部行为、页面访问序列及页面之间的导航 等。作者的观点是,相比w c b 应用在服务器中各组件之间的交互,w e b 应用的 外部行为更容易观察和监测。 4 综上所述,目前w e b 应用开发和测试过程中,大多数的开发模型和测试模型 或基于面向对象思想,或采用u m l 或u m l 扩展的图形表示方法,或者是用f s m 来建立模型。 1 3 基于组件的软件开发方法 在软件开发领域,日趋成熟的组件技术引发的一场新的革命正在兴起。计 算机的不断发展为计算机及网络应用提供了大量技术先进、功能强大的应用软 件系统,同时也给软件开发者和用户带来了相应的问题:软件系统规模庞大, 研制周期长,维护费用高;软件系统过于复杂,在一个系统中集成了各种功能, 大多数功能不能灵活地装卸、单独升级或重复利用;应用软件不易集成,即使 各应用程序是用相同的编程语言编写的,并且运行在相同的计算机上,特定应 用程序的数据和功能也不能提供给其他应用程序使用;开发预算和开发进度时 常超出预定的限制条件、维护成本增长过快、不恰当的功能设计、拙劣的性能、 不断膨胀的b u g 和代码量、不兼容、重复开发等等。这些问题在最严重的情况 下就会导致所谓的“软件危机 。 要克服上述困难,实现全行业范围内的软件“即插即用”,关键是实现软件 系统的可操作性、可扩展性、语言独立性和跨平台的操作能力。作为解决这类 问题的一种方案,面向对象的程序设计思想2 0 多年来得到很大发展。孤立的面 向对象思想虽然功能强大,但目前其发展已接近极限,结果是产生了大量的“对 象孤岛”。将面向对象思想与组件编程思想相结合发展起来的基于对象的组件软 件结构为这一领域开辟了新的道路。 2 0 世纪6 0 年代末到8 0 年代初,结构化的模块式软件开发思想占主导地位, 当时的组件的含义是指一些定义良好的方法包或功能模块。 2 0 世纪8 0 年代起,面向对象的软件开发思想迅速发展起来。面向对象方 法是一种模块化程序设计方法,它的主要思想是将系统视为若干个交互的对象。 面向对象是现实世界模型的自然延伸,现实世界中任何实体都可以看作是对象, 对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物, 任何对象都是某一类事物的实例。所有面向对象编程语言都支持三个概念:封 装、多态性和继承。所谓封装,就是用一个自主式框架把对象的数据和方法融 合在一起形成一个整体,对象的行为由它所属的类决定,即通过一个操作集合 来封装对象的行为。多态性就是多种表现形式,具体来说就是“一个对外接口, 多个内在实现方法”。继承是指一个对象直接使用另一对象的属性和方法,通过 一种增量的方式来更新一个类的定义。继承一个给定的类的类,被称为子类, 被继承的类称为超类,这时的软件组件的含义就是类库。类虽然提供了封装性、 多态性和继承性,但需要依赖于具体的编程语言,耦合度高,且需要用户对类 库的结构和宿主语言有较深入的了解,因此不能完全达到软件重用的可移植性 和互操作性要求。 2 0 世纪9 0 年代后,组件的内涵进一步加强,聚合性、独立性和重用性进 一步提高。目前,基于对象的组件软件体系结构中的组件是指可方便地插入到 语言、工具、操作系统、网络系统中的二迸制代码和数据。 在基于组件的软件开发思想中,一个软件系统是由一个组件集合构成。一 个组件是可执行软件系统中的具有一定功能、可明确辨识、可分离的软件单元, 可以与其它组件实现交互操作。在结构上,组件是语义描述、通信接口、实现 代码的复合体。组件作为一个封装的实体,只能通过其接口与外部环境交互。 接口是一个操作集合,描述构件所需服务或可提供的服务。组件是通过接口来 依赖系统中的其它元素,因此可以通过组件的供应接口及需求接口将它们连接 起来。但是组件是被封装起来的,并且要做到尽可能的独立,组件及子系统可 以被灵活地复用和替换,组件在实现阶段可单独部署和重新部署,比如说更新 一个已经存在的系统。 在设计阶段,为了更精确地描述组件规格说明,在其接口操作中通常加上 契约,或称不变式,即前置条件及后置条件的谓词表达式。在进行了必要的安 装和配置工作之后,组件就能以接口规定的方式来使用,如果要与其他组件协 同工作,就必须得到其接口的细节信息。 基于组件开发方法是对面向对象技术的发展和升华,它体现的是粗粒度、 松耦合及更高层次上的抽象。基于组件开发的优点在于提升软件复用层次,缩 短软件开发周期,提高软件质量,降低开发成本等。 1 4 课题研究内容及意义 本课题所属项目是基于规格说明的w e b 应用测试方法研究。如上一节所述, 国内外很多研究小组及企业单位对w e b 应用的建模及测试进行了大量的研究, 也因此产生了大量的开发模型及测试模型。这些模型从不同的方面对w 曲应用 的特性进行描述。 6 本文在前人已取得的研究成果及w e b 应用相关技术j s f 基础之上,从组件 角度给出了一个既有利于开发又可用于测试的w e b 应用的系统级模型。该组件 模型由静态组件结构模型及动态行为模型组成。 根据软件工程领域中基于组件的开发思想,该组件模型将w e b 应用中的 w e b 页面封装成一个视图组件,将w e b 页面中的表单提交、按钮、超链接事件 的触发封装成视图组件的接口方法。在行为建模过程中,使用一种类似于状态 机的视图活动流( 并用u m l 状态图描述它的图形表示) 描述w e b 应用的行为。 本文提出的组件模型,是从一个较高的抽象层次对w e b 应用进行整体上的描述。 为了得到一个精确的w e b 应用组件模型,本文采用u m l 语言与形式语言 o b j e e t - z 相结合的方法来描述组件结构及其动态行为。即先通过u m l 建模工具 m a g i e d r a w 建立组件模型,其中包含o c l 表达式,用以描述操作的前置条件, 后置条件及不变式等约束谓词。然后制定u m l 组件模型到o b j e c t z 形式规格 说明的转换规则,将u m l 模型转换成o b j e c t z 形式规格说明。为了支持本文 提出的理论方法,开发了基于x m i ( x m lm e t a d a t ai n t e r c h a n g e ) 的支持工具 w e b m o f ,实现了从w e b 应用的u m l 模型到o b j e c t - z 形式规格说明的自动转 换。 7 第二章w e b 应用相关技术及u m l 本章先介绍一些与w e b 应用相关的软件技术及其用户界面特性。然后简单 介绍统一建模语言u m l ( u n i f i e dm o d e l i n gl a n g u a g e ,简称u m l ) 及对象约束语 言( o b j e c tc o n s t r a i n tl a n g u a g e ,简称o c l ) ,其中详细叙述本文所使用的u m l 组件模型。 2 1w e b 应用相关技术 w e b 应用建立在互联网基础设施之上,w e b 新技术的层出不穷和日新月异推 动了w e b 应用的飞速发展。主要的w e b 技术有如下几项: 标记( t a g ) 、超文本和超媒体的应用是w e b 应用软件与传统软件的一大不同 点,其中超文本的非线性是w e b 应用建模需考虑的因素之一。 基于二层架构的通信模型客户服务器架构奠定了用户与w e b 应用之间 通信的坚实基石,虽然一个w 曲服务器的处理过程可能要求集成其它系统,比如 说数据库、应用服务器等等,但w e b 应用的n 层架构主要还是基于客户服务器模 型。比如说一个w e b 浏览器发出一个请求,该请求触发w 曲服务器的一个响应, 这一个过程中,各种协议担任着主要角色,尤其是h 【 1 1 p 协议,还包括s m t p 、 r t s p 等。这些协议规定客户端如何发出一个请求、服务器端应该做出何种响应, 以及处理过程细则等。通信模型的技术还包括会话跟踪、u r l 重写、c o o k i e s 技 术。 客户端技术主要有j a v aa p p l e t s 、a o t i v e xc o n t r o l s 、h t m l 、x m l 以及各种诸 如w i n z i p ,a c r o b a tr e a d e r , s 类用以扩展w e b 浏览器功能的辅助软件。 服务器端技术则主要包括u r i 处理程序( 一种特殊的应用程序,用于处理 h t t p 请求及传递请求资源) 、s s i 、c g i 、服务器端脚本、a s p 、j s p 、s e r v l e t s 、 a s p n e t 、j s f 、w 曲服务、s c a p 、w s d l 、u d d i 。 中间件技术,如用于处理应用逻辑的应用服务器,企业j a v a b e a n s 等。 2 2 w e b 应用用户界面特性 w e b 应用用户界面由一些独立的w e b 页面表示,一个w e b 页面是在单个浏览 器窗口中显示的信息。w e b 页面可以是静态h t m l 文件、j s p 或由j a v as e r v l e t 动态 生成。w e b 页面中的元素分为静态元素及交互元素。 静态元素是指在界面上只用于标识及展示信息、只起展示效果和位置的作 用、不发生任何直接交互行为的对象,如标题标签、信息发布区域、静态页面等。 它们仅存在被启动、包含和被包含的关系,以及自身产生和消除的行为,其展示 的内容由初始值来确定。由于静态对象不会主动引发与其它对象的交互行为,所 以它们之间不会发生任何关联,可认为是彼此独立的对象。 交互元素是指界面上可直接、间接交互或可以引发交互行为的实体元素。从 交互行为上看,它们之间存在着如调用、导航等关联关系。交互元素包括表单、 超链接、按钮、列表框、表格等。其中超链接分为静态超链接与动态超链接。静 态超链接是指一个网页指向一个目标页面的不带参数的链接关系,动态超链接是 指在一个页面中带参数的导航到一个动态页面的链接。 与传统桌面图形用户界面( g r a p h i ou s e ri n t e r f a o e ,简称g u i ) 相比,w e b 应用 中的用户界面具有如下特点: ( 1 ) w e b 用户界面中的导航比g u i 更灵活,且导航形式更多样。w e b 页面既可 以利用一些传统的导航形式,也可以由声音、浮动动画、视频等引发导航,而 g u i 中一般只有固定、单一的传统导航形式。 ( 2 ) w e b 用户界面具有页面包含性和嵌套性。在w e b 应用的设计中,可以用 已有的页面组成新的页面,以提高页面设计的重用性。而在g u i 的设计中,只能 采用传统的手工、重复设计或设计用户控件的方法,其重用性要稍微弱一些。 ( 3 ) w e b 用户界面需求以及布局的多变性。g u i 通常围绕一个或多个明确的任 务选定界面元素,按照预先设计的要求完成界面的布局。界面设计完成后很少发 生改变,即使有改变也是有限的。但w e b 应用在很大程度上是以信息展示为中心, 输入操作较少,展示的信息每时每刻都会发生变化,网页布局经常随信息的改变 而改变。另外,对于一个综合性的网站来说,网页改版也是经常发生的事情。用 户需求和网页布局的多变需要一个很好的快速原型开发工具提供支持。 ( 4 ) w e b 应用具有两层或多层特定的体系结构。与传统的客户服务器体系结 构相比,w e b 应用的客户端大都是基于浏览器的瘦客户,它更多的是负责信息和 结果的显示,而应用逻辑、数据及处理的任务都放在服务器端。这种特定的体系 结构要求界面设计应具有不同抽象层次1 7 l 。 9 2 3w e b 应用框架 w e b 应用框架通常采用模型视图控制器( m o d e l v i e w - c o n t r o l l e r ,简称 m v c ) 架构模式,尤其是第二架构模式,并在j 2 e e 或。n e t 平台上开发实现。 m v c 模式,即把一个应用的输入、处理、输出流程按照模型、视图、控制器的 方式进行分离。模型是指从现实世界中挖掘出来的对象模型,是应用逻辑的反 映。它封装了数据和对数据的操作,是实际进行数据处理和计算的地方,如 j a v a b e a n s 。视图是应用和用户之间的接口,它负责将应用显现给用户并显示模 型的状态。对于w e b 应用来说,视图可以概括为h t m l 界面、j s p 、x m l 和 a p p l e t 等。控制器负责视图和模型之间的交互,控制对用户输入的响应方式和 流程,它主要负责两方面的动作:把用户的请求分发到相应的模型;将模型的 改变及时反映到视图上,如s e r v l e t 。图2 1 描述了j a v aw e b 应用的m v c 2 架 构模式。 c l i e ms i d e铀n , e rs i d e ,、 鼬叩辫t,c o n t c o l l e r a c c e s sa n du p d a t e 。 b m r,( s e r v l e ( ) 曩一 c n ;h 扭枷 假兀e w 岫l e + | 1 e 岫c l 面c e 靠面 ( j a 舭v a j 3 e 猫k ) 匠赢 d a t a b a s e 卜、 z n p d a w r b s p o l 篮e、- _ 一,a 0 霸 ( j 卵触h 虹) 图2 - 1 j a v aw e b 应用m v c - 2 架构模式 大部分用过程语言比如a s p 、p h p 开发出来的w c b 应用,初始的开发模板 就是混合层的数据编程。例如,直接向数据库发送请求并用h t m l 显示,开发 速度往往比较快,但由于数据页面的分离不是很直接,因而很难抽取业务模型, 且模型的重用性低,导致产品设计弹性力度很小,很难满足用户的变化性需求。 m v c 要求对应用分层,将模型、视图、控制器三者分离,提高了灵活性和 复用性。c 的优点体现在如下几个方面: 首先,具备多个视图对应一个模型的特性。在目前用户需求的快速变化下, 可能提出使用多种方式访问应用的要求。例如,订单模型可能有本系统的订单, 也有网上订单,或者其他系统的订单,但对于订单的处理都是一致的。如果按 照i v c 设计模式,一个订单模型对应多个视图即可解决问题。这样便减少了 1 0 代码的重复率,从而减少其维护量,一旦模型发生改变,也易于维护。而由于 模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口。 其次,由于一个应用被分离为三层,因此有时改变其中一层就能适应需求 的改变,例如一个应用的业务流程或者业务规则的改变只需改动m v c 的模型 层。 再次,控制层的概念也很有用,由于它把不同的模型和不同的视图组合在 一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。 最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层的各 应用间具有某些相同的特征,有利于工程化、工具化地产生管理程序代码。 m v c 架构模式是目前w e b 应用的一个通用软件框架。尽管如此,m v c 仍存在 一些不足之处: ( 1 ) 增加了系统结构和实现的复杂性。对于简单的界面,严格遵循m v c , 使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操 作,降低运行效率。 ( 2 ) 视图与控制器间过于紧密的连接。视图与控制器是相互分离却联系紧 密的部件,若没有控制器的存在,视图的应用是很有限的,反之亦然。这样就 妨碍了他们的独立重用。 ( 3 ) 视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能 需要多次调用才能获得足够的显示数据。对未变化数据的频繁访问毫无必要, 也将损害操作性。 2 4 j s f 简介 j s f 是一个基于j a y a 的w e b 应用框架,侧重于用户界面的创建和管理它与 现有的技术相互补充,相得益彰。j s f 将丰富强大的u i ( u s e ri n t e r f a o e ) 组件( 如文 本框、列表框、分页面板、数据网格等) 引入w e b 开发领域,使w e b 应用开发更 加容易。 j s f 将w e b 应用程序的用户界面抽象成用户接口组件模型,而将用户界面中 的元素抽象成可被容器管理的用户接口组件。一个用户接口组件代表了用户接口 中一个可配置、可重用的元素,它既可以表示一个简单的控件( 比如按钮或者文 本输入框) ,也可以表示一个组合控件( 比如一张表) 【8 】o j a v as e r v l e t 是j s f 的基础,它定义了如何用服务器端组件( s e r v l e t ) 来封装 和实现w e b 应用程序;j a v as e r v e rp a g e s ( 简称j s p ) 在s e r v l e t 的基础上提供了页 面模板创建文本内容( 如h t m l ) 的机制,它能与j s f 很好地集成;j s p 标准标 签库( j s t l ) 定义了一套标准的j s p 操作( 被称之为标签) ,简化了j s p 页面的开 发,它能与j s f 的标签库相互补充。j s f 的m v c 2 模型如图2 2 所示。 c o n t r o l l e r c o r 桶g i 一 每刊= i l k s i n e s s o b i e c b e i b , j d o 卟 d e l e g a t e sj a v a b e a n s * c o n v e r t e r s l d b c v a h d a n * r e n d e r e r s l r 啪w c e s 1 a v a b e a n s * p r o p e r t yf i l e s x m l l 鲥m o d e l 图2 2j s f m v c - 2 模型 j s f 主要包括两大方面的内容:一个a p i 集合,用来表示用户接口组件、管理 组件的状态、处理事件和验证输入、定义页面间的导航以及支持国际化;一个j s p 的自定义标签库,用来在j s p 页面中显示j s f 接口。其中a p i 集合是j s f 的核心组成 部分。可以把j s f 看成是s t r u t s 与s w i n g ( 基于j a v a 篚j 桌面应用程序的标准用户接口) 的组合:j s f 像s t r u t s 样遵循m v c 体系结构,通过一个控制器s e r v l e t 来管理应用 程序的生命周期;而像s w i n g 那样提供了一个可扩展的组件模型,此组件模型还 包含了一个重要功能渲染组件( c o m p o n e n tr e n d e r i n g ) 。所谓渲染组件就是把 组件所包含的信息转换成客户端能够接受的表达形式,比如对于w c b 浏览器而言 就是h t m l 页面,而对于手机等无线移动设备所使用的w a p 浏览器而言就是 w m l 页面,每个组件都具有各自的渲染组件功能。 j s f 的提出大大促进了w e b 应用的开发效率,其优点主要表现如下: 其一,利用j s f 所提供的组件模型,结合所定义的j s p 自定义标签库,可以方 便地创建用户接口。 其二,组件中封装了事件处理、输入验证等操作,利用j s f 所提供的运行环 境可以很容易地将客户端事件与服务器端的事件处理程序绑定。 其三,j s f 所提供的框架具有很好的可扩展性,能够使开发人员实现可重用 的自定义组件。 其四,j s f 的提出进一步细化了开发人员的分工,在页面设计人员和代码开 发人员的基础上引入了组件开发人员的概念他们负责创建可重用的用户接 口对象,这有利于项目的团队开发,加快开发进度。 此外,组件开发人员可以进一步演化成第三方的组件开发提供商,专门提供 高质量的组件,提高行业的整体开发水平。 2 5u m l 及o c l 简介 2 5 1u m l 简介 统一建模语言是对象管理组( o b j e c tm a n a g e m e n tg r o u p ,简称o m g ) 制定的绘 制软件蓝图的标准语言,可以用u m l 对软件密集型系统的制品进行可视化、详 述、构造和文档化 9 1 。它是一种富有表达力的半形式建模语言,可以描述开发所 需要的各种视图,然后在此为基础装配系统。作为一种主流的软件开发建模语言, u m l 主要如下四大优点:在软件开发的过程中,可以从不同抽象层次对一个软 件系统进行描述;从不同的视图角度来对一个软件系统进行建模;对系统进行模 块化描述;通过使用构造型、标记值、约束,用户可以扩展u m l ,根据系统需 要建立特定的图形对象。 u m l 中的图分为两类:结构图和行为图。结构图描绘系统组成元素的静态 结构。有如下几种不同类型的结构图。 ( 1 ) 类图( c l a s sd i a g r a m ) 展示了系统中的静态事物,它们的结构以及它们 之间的相互关系。 ( 2 ) 组件

温馨提示

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

评论

0/150

提交评论