




已阅读5页,还剩80页未读, 继续免费阅读
(计算机科学与技术专业论文)ajax+web应用的编程模型研究和应用框架实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
a j a xw e b 应用的编程模型研究和应用框架实现 摘要 a j a x 技术正处于迅速发展的阶段,它大大扩展了w e b 应用的能 力。但存在一些问题限制了a j a x 技术的应用。论文介绍了现有a j a x 技术发展现状和问题,仔细分析和总结了a j a x 应用设计理论和方法, 并在此基础上提出了a j a xw e b 应用编程模型。该编程模型分为工具 包,框架和组件三个部分。工具包用来增强j a v a s c r i p t 语言的能力, 如增加继承机制,事件机制,提供跨浏览器支持等。框架提供基础的 应用提供基本服务,如i o c 容器,可配置的a o p ,组件管理机制, 事件绑定机制,安全控制机制等。组件是应用的基本功能单位,开发 者的主要工作就是编写组件。组件分为外壳和内核两个部分。内核是 外壳的私有变量。外壳的目的是防止恶意代码操作组件。内核持有组 件的业务逻辑。组件之间的互操作只有两个途径,一是通过a p p e e v e n t 机制,二是通过组件管理器间接调用其它组件。禁止组件间直接互操 作是也是为了增强组件的安全性。框架的组件管理机制和组件结构一 起构成编程模型的基础安全机制。除此以外,框架还提供了可配置的 安全控制机制。组件被分为w i d g e t 组件和s e r v i c e 组件两大类。w i d g e t 组件提供与用户直接交互的界面,s e r v i c e 组件为其他组件提供公共 的服务。编程模型定义了一个d a t a a c c e s s s e r v i c e 组件,该组件是数 据访问服务组件,为其他组件提供统一的数据访问接口。论文最后依 l i 照编程模型实现了一个简单的a j a xw e b 应用框架,并在此框架上实 现了简单的p e t s t o r e 示例应用。 关键词a j a x ,w e b ,编程模型,j a v a s c r i p t i l l a j a xw e ba p p l i c a t i o np r o g r a m m i n gm o d e l r e s e a r c ha n da p p l i c a t i o nf r a m e w o r k i m p l e m e n t a t i o n a b s t r a c t a j a xt e c h n o l o g yi s a tt h e s t a g eo fr a p i dd e v e l o p m e n t ,w h i c hg r e a t l y e x p a n d e dt h ea b i l i t yo fw e ba p p l i c a t i o n s b u tt h e r ea r es o m ep r o b l e m s r e s t r i c tt h ea p p l i c a t i o no fa j a xt e c h n o l o g y t h ep a p e ri n t r o d u c e st h e d e v e l o p m e n ta n dp r o b l e m so fa j a x t h ep a p e ra n a l y s e st h ed e s i g n t h e o r i e sa n dm e t h o d so fa j a xw e ba p p l i c a t i o n s b a s e do n t h a t , p r o g r a m m i n gm o d e lw a sp r e s e n t t h ep r o g r a m m i n gm o d e l i sd i v i d e di n t o t h r e ep a r t s :t o o l k i t ,f r a m e w o r k sa n dc o m p o n e n t s t h et o o l k i ti su s e dt o e n h a n c ej a v a s c r i p tp r o f i c i e n c y , s u c ha si n h e r i t a n c em e c h a n i s m ,e v e n t m e c h a n i s ma n dc r o s s - b r o w s e rs u p p o r t t h ef r a m e w o r k p r o v i d e st h eb a s i c s e r v i c e sf o rt h ea p p l i c a t i o n ,s u c ha si o cc o n t a i n e r , c o n f i g u r a b l ea o p , c o m p o n e n t sm a n a g e m e n tm e c h a n i s m , e v e n tb i n d i n gm e c h a n i s m a n d t h es e c u r i t yc o n t r o lm e c h a n i s m s a p p l i c a t i o nc o m p o n e n t sa l et h eb a s i c f u n c t i o n a lu n i t s ;t h em a i nt a s ko fd e v e l o p e r si st od e v e l o pc o m p o n e n t s i v t h ec o m p o n e n ti sd i v i d e di n t os h e l la n dc o r et w op a r t s c o r ei sap r i v a t e v a r i a b l eo ft h es h e l l s h e l lc a l l p r e v e n t m a l i c i o u sc o d ef r o mt h e c o m p o n e n t a n d ,c o r eh o l d sb u s i n e s sl o g i co ft h ec o m p o n e n t t h e r ea l e t w ow a y so fi n t e r o p e r a b i l i t ya m o n gc o m p o n e n t s f i r s t ,u s i n ga p p e e v e n t m e c h a n i s m s e c o n d ,i n v o k eo t h e r si n d i r e c t l yb yc o m p o n e n tm a n a g e r p r o h i b i td i r e c ti n t e r o p e r a b i l i t ya m o n gc o m p o n e n t si sa l s ot oe n h a n c et h e s a f e t yc o m p o n e n t s c o m p o n e n tm a n a g e m e n tm e c h a n i s ma n df r a m e w o r k c o m p o n e n t st o g e t h e rc o n s t i t u t et h es t r u c t u r eo fas e c u r i t ym e c h a n i s m i n a d d i t i o n ,t h ef r a m e w o r kp r o v i d e sac o n f i g u r a b l e s e c u r i t y c o n t r o l m e c h a n i s m s c o m p o n e n t sa l ed i v i d e di n t o t w o c a t e g o r i e s :w i d g e t c o m p o n e n t sa n ds e r v i c ec o m p o n e n t s w i d g e tc o m p o n e n t sp r o v i d ed i r e c t i n t e r a c t i o ni n t e r f a c ew i t ht h eu s e r s s e r v i c ec o m p o n e n t sp r o v i d ep u b l i c s e r v i c e sf o ro t h e r s t h ep r o g r a m m i n gm o d e ld e f i n e sad a t a a c c e s s s e r v i c e c o m p o n e n t , w h i c hp r o v i d e s u n i f i e dd a t aa c c e s si n t e r f a c ef o ro t h e r c o m p o n e n t s i nt h ee n d ,as i m p l ea j a xw e ba p p l i c a t i o nf r a m e w o r kh a s b e e ni m p l e m e n t e da n das i m p l ee x a m p l ea p p l i c a t i o n ,t h ep e t s t o r e a p p l i c a t i o n ,h a sb e e nb u i l t k e yw o r da j a x ,w e b ,p r o g r a m m i n gm o d e l ,j a v a s c r i p t v 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:,狻缰盈 日期: 型! z :2 :兰 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在年解密后适用本授权书。非保密论 文注释:本学位论文不属于保密范围, 本人签名:逸缀叁 导师签名:墨l 盔 适用本授权书。 日期: 日期: 2 明2 王r 北京邮电大学硕士研究生毕业论文 第一章概述 w e b 技术是由英国人1 协1 b e r n e r s - l e e1 9 8 9 年提出来用来共享文档。起初这 些文档都是静态的,客户端向服务器发送一个文件名,然后服务器返回这个文件。 经过十多年的发展,越来越多的内容变成动态的,使得w e b 的功能变得越来越 强大。动态w e b 页面可以在服务器端生成( 采用p h p j s p ,a s p 等技术) ,动态 页面也可以在客户端生成( 采用j a v a s s c r i p t ,d o m 等技术) 。动态w e b 技术提供 了与用户交互的能力,在此基础上w e b 逐步从单纯的内容共享受技术发展为一 种应用开发和部署技术,w e b 应用随之出现。 w e b 应用的最大优势是部署,更新和维护成本低,只要有浏览器就可以使用, 而传统的c l i e n t s e r v e r 模式的分布式程序则必须在客户机器上先安装客户端程 序,使得应用的部署,更新和维护都很困难。 但是w e b 应用存在着先天不足,其交互能力比较弱,无法实现丰富多彩的 用户界面,而且其同步请求方式常常阻塞用户界面。而且w e b 应用无法支持如 m i c r o s o f t0 f i i c e 这类独占式应用, w e b 应用基本上只能使用在诸如提交表格这 样的瞬态应用上。 分布式应用的两大模式b s ( b r o w s e r s e r v e r ) 模式和c s 模式之间存在着一条 鸿沟,快速部署和功能强大是鱼与熊掌不可兼得。但需求是无止境的,随着越来 越多的分布式应用采用b s 模式,对客户端变富的要求是越来越强烈,人们希望 分布式应用同时拥有w e b 应用快速部署和桌面应用功能强大的特性。于是 a l ( r i e hi n t e r n e ta p p l i c a t i o n ) ,r i a 是下一代的将桌面应用程序的交互的用户体 验与传统的w e b 应用的部署灵活性和成本分析结合起来的网络应用程序。r i a 中的富客户技术通过提供可承载已编译客户端应用程序( 以文件形式,用h t t p 传递) 的运行环境,客户端应用程序使用异步客户服务器架构连接现有的后端 应用服务器,这是一种安全、可升级、具有良好适应性的新的面向服务模型,这 种模型由采用的w e b 服务所驱动。结合了声音、视频和实时对话的综合通信技 术使r i a ( r 队) 具有前所未有的网上用户体验。 “砌c h ”的概念包含两方面,分别是数据模型的丰富和用户界面的丰富。数据 中的“m c h ”意思是用户界面可以显示和操作更为复杂的嵌入在客户端的数据模 型,它可以操作客户端的计算和非同步的发送接收数据。这种模式相对于传统的 h t m l 页面的优点是程序运行于客户端并且程序更多的是和用户进行交互同时 更少的和服务器进行交互。平衡客户端和服务器端的复杂的数据模型可以让你有 更大的空间去创建更高效和更具有交互性的网络应用程序。“砌c h ”同样也描述了 北京邮电人学硕i :研究生毕业论文 全面提升的用户界面,h t m l 只给用户提供了非常有限的界面控制元素,而r i a ( r n ) 的用户界面提供了灵活多样的界面控制元素,这些控制元素可以很好的 与数据模型相结合。传统的因特网模型使用线性的设计,提供给用户一些选择然 后用户发送选择结果给服务器,这种单一的模式不符合应用程序的灵活交互的要 求和用户的意愿。频繁的服务器请求和页面刷新有很多的缺点包括页面打开缓慢 和降低网络带宽。如果采用富客户界面,可以从以前的服务器响应影响整个界面, 转移到只有收到请求的应用程序部分才会做出相应的变化。这本质上意味着界面 被分解成许多独立的模块,这些模块都会对收到的信息做出相应的反应,有些会 和服务器端进行交互,有些是这些模块之间的通信。 r i a 是一种概念不是具体的技术,实现r i a 的技术有几种,包括a j a x , m a e r o m e d i af l a s h , j a v aw e bs t a r t 等。尽管f l a s h 和j a v aw e bs t a r t 比a j a x 功能更 加强大,但目前a j a x 处于强势地位。因为方面a j a x 技术只依赖于浏览器,f l a s h 需要插件支持( 虽然9 9 的浏览器都装有f l a s h 插件) ,而j a v a w e bs t a r t 还需要 安装客户端。另一方面,a j a x 基本上没有引入新的技术,大量的w e b 开发者能 够比较容易过渡到a j a x 开发上来,而f l a s h 和j a v aw e bs t a r t 有自己的一套开发 方式和语言,使得它们的学习成本比较高。今天大量为人们熟悉的r i a 应用都 是基于a j a x 技术的,如g m a i l ,o o o g l em a p ,w r i t e l y 等等。实际上“a j a x ”这个词 比r i a 更流行,以至于“r i a ”往往专指f l a s hr i a 。而j a v aw e bs t a r t 比f l a s h 更 缺乏竞争力,其前景并不被看好。 1 1 a j a x 技术简介 a j a x ( a s y n c h r o n o u sj a v a s e r i p t + x m l 即异步j a v a s c r i p t + x m l ) 是一个相当新 的术语,它是有j e s s ej a m e sg a r r e t t 在2 0 0 5 年2 月提出来的( 参见文献 1 9 。a j 缸 这个概念很新,但其内涵所包括的技术却不是那么新了。与其说a j a x 是一种技 术,不如说它是一个技术框架,它包括了: 基于x h t m l 和c s s 标准的表示; 使用d o c u m e n to b j e c tm o d e l 进行动态显示和交互; 使用x m l h t t p r e q u e s t 与服务器进行异步通信; 使用j a v a s c r i p t 绑定一切。 这些技术都是相当成熟的w e b 技术,其中最新的x m l h t t p r e q u e s t 在1 9 9 9 年由微软推出。在a j a x 作为一个概念提出之前,就已经有存在一些这样的应用。 如著名的g o o g l em a p ,g o o g l es u g g e s t , g m a i i 等。最早的a j a x 应用可以追溯到微 软的o u t l o o k w e b a c c e s s ,虽然现在很少有人提起它。 2 北京邮电人学硕f 二研究生毕业论文 1 1 ia j “工作原理 a j a x 的核心是j a v a s c r i p t 对象x r n l h t t p r e q u e s t 。该对象在i n t e m e te x p l o r e r5 中首次引入,它是一种支持异步请求的技术。简而言之,x m l h t t p r e q u e s t 使您可 以使用j a v a s e r i p t 向服务器提出请求并处理响应,而不阻塞用户。 通过x m l h t t p r e q u e s t 提供的异步访问能力,在创建w e b 站点时,在客户端 执行屏幕更新为用户提供了很大的灵活性。下面是使用a j 缸可以完成的功能: 动态更新购物车的物品总数,无需用户单击u p d a t e 并等待服务器重新 发送整个页面。 提升站点的性能,这是通过减少从服务器下载的数据量而实现的。例如, 在a n l a z o l l 的购物车页面,当更新篮子中的一项物品的数量时,会重新 载入整个页面,这必须下载3 2 k 的数据。如果使用a j a x 计算新的总量, 服务器只会返回新的总量值,因此所需的带宽仅为原来的百分之一。 消除了每次用户输入时的页面刷新。例如,在a j 戤中,如果用户在分 页列表上单击n e x t ,则服务器数据只刷新列表而不是整个页面。 直接编辑表格数据,而不是要求用户导航到新的页面来编辑数据。对于 a j a x ,当用户单击e d i t 时,可以将静态表格刷新为内容可编辑的表格。 用户单击d o n e 之后,就可以发出一个a j a x 请求来更新服务器,并刷新 表格,使其包含静态、只读的数据。 在x m l h t t p r e q u e s t 对象出现以前,使用j a v a s c r i p t 和d o m 就可以局部改变 页面内容,但由于没有与服务器异步通信的能力,这些技术的作用是极为有限的, 通常被认为是些小把戏。x m l h t t p r e q u e s t 弥补了这缺失的一环以后,小把戏也可 以派上大用场了。 1 1 2h t m l 和x h t m l h t m l ( h y p e rt e x tm a r k u pl a n g u a g e ) 可以算得上是全球最成功的标记语言 了,最新的标准是h t m l 4 0 1 。h t m l 语法比较松散,开发人员使用比较方便, 但机器处理比较麻烦。x h t m l 是以x m l 的语法来规范h t m l ,从h t m l 过渡 到x h m t l 并不困难,但是却大大简化了机器对文档的理解。 a j a x 技术框架包括x h t m l ,但在实际应用中,并没有任何技术障碍限制使 用h t m l 。a j a x 技术框架之所以推荐使用x h t m l 而不是h t m l ,主要是考虑 到能够使用x s l t 技术,以及支持m a t h m l 、s m i l 或s v g 等优点。但在实际的 应用中x s l t 使用得并不多,m a t h m l ,s m i l , s v g 就用得更少了。因此在a j a x 应用中使用h t m l 在一般情况下是没有问题的。但是基于标准化和扩展的原则 北京邮电人学硕1 :研究生毕业论文 的出发,建议尽可能的使用x h m t l 。 关于h t m l 和x h t m l 的详细内容请参考文献 2 】 l 1 3 c s s c s s ( c a s c a d i n gs t y l es h e e t s ) 它是w 3 c 定义和维护的标准,一种用来为结 构化文档( 如h t m l 文档或x m l 应用) 添加样式( 字体、间距和颜色等) 的计 算机语言。目前最新版本是c s s2 1 ,为w 3 c 的候选推荐标准。下一版本c s s3 仍然在开发中。c s s 最大的特点就是将文档元素的布局,样式与文档结构解耦, 使得在不修改文档结构的情况下可以方面的更改文档的显示效果。 关于c s s 的详细内容请参考文献 3 】 1 1 4 d u m d o m ( d o c u m e n to b j e c tm o d e l ) 是一个能够让程序和脚本动态访问和更新 文档内容、结构和样式的语言平台。浏览器使用d o m 解析页面文档,提供了在 浏览器内动态修改文档结构的能力,这正是a j a x 技术支持局部更新页面的重要 技术基础。 关于d o m 的详细内容请参考文献【4 】 1 1 5j a v a s c r i p t j a v a s c r i p t 是一种通用脚本编程语言,基于对象和事件驱动,j a v a s c r i p t 代码 嵌入到静态的h t m l 页面中,实现与用户可交互的动态页面。 1 ) 脚本: 脚本就是一条条的命令,通常保存为a s c i i 码文本文件,提交给计算机由解 释器解释成机器可识别的指令顺序执行,对应的另外一种动态程序实现方式是二 进制方式,将程序语言编译为二进制代码再解释执行。简单讲,脚本就是代码程 序,源程序。 2 ) 基于对象: j a v a s c r i p t 具备一些面向对象编程语言的特征,能够创建自己的对象,扩大 j a v a s c r i p t 的应用。但是它它没有提供象抽象、继承、重载等有关面向对象语言 的功能,所以不是面向对象的语言。 3 ) 事件驱动: 事件是让页面动起来的驱动力,j a v a s c r i p t 代码是对某个事件做出相应的操作 和反应。比如我们在h m f l 页面中做一个表单,用户单击提交按钮。或是我们做 了一个超级链接,用户的鼠标滑过链接文字或是点击了链接文字,这就是事件。 4 北京邮电大学硕e 研究生毕业论文 而j a v a s c r i p t 就能对这些事件做出反应,从而实现与用户的交互,所以说 j a v a s c r i p t 是事件驱动的语言。 关于j a v a s e r i p t 的详细内容请参考文献【5 。 1 2 a j a x 应用发展现状及相关技术 a j a x 作为一个技术组合,除了在浏览器中引入了x m l h t t p r e q u e s t 对象以外, 并没有增加其他的新技术。但a j a x 颠覆了传统w e b 应用的理论,模式和方法, a j a x 技术的潜力还有待进一步挖掘,a j a x 应用的理论,模式和方法还需要发展 和完善。a j a x 技术目前还处于成长期,虽然以a j a x 技术得到越来越多的应用, 但像g o o g l e 这样吧a j a x 技术的使用到极至的例子还是很少,a j a x 在大多数情况 下还是作为一种补充技术出现,a j a 】【成为w e b 应用的主流技术还有一段路需要 走。本节将简要介绍a j a x 技术目前的发展状况,将涉及现有的典型应用,a j 缸 与w e b 2 0 的关系,s o f t w a r ea sas e r v i c e s o a 等方面。 1 2 1 现有应用 最有名的a j a 】【应用几乎都是g o o g l e 的大作,包括g m a i l ,g o o g l es u g g e s t g o o g l em a p s ,可以说这是最广为人知的几个a j a x 应用。2 0 0 4 年初,g o o g l e 就 推出了b e t a 版本的g m a i l 服务。除了大容量以外,g m a i l 最出色的地方是它的 用户截面。它允许用户一次打开多个邮件,并且即使用户在编写邮件时,邮件列 表也能够自动更新。与其他的w e b 邮件系统相比,这是一个巨大的进步。与其 他w e b 界面模仿桌面邮件客户端的邮件服务相比,g m a i l 没有依赖重量级的、 容易出问题的a e t i v e x 控件和j a v aa p p l e l 但在功能上却毫不逊色。这样做所带 来的好处就是完全的跨平台,可以在任何平台、任何地点使用g m a i l 的服务。 此后,在提供更加丰富的交互性方面,g o o g l e 走得更远。例如,当用户键 入字符时,g o o g l es u g g e s t 可以为用户提供与输入字符相符的提示,帮助他们完 成想要键入的搜索字符串;g o o g l em a p s 可以执行交互式的、可缩放的基于位置 的搜索。 与此同时,其他公司也纷纷开始试验使用这一技术,例如f l i c k r 的在线照片 共享系统;y o u o sw 曲操作系统;n e t v i b e s 个人信息门户,以及仿效它的g o o g l e 个性化主页和m i c r o s o f tl i v e 个性化主页。 以上这些应用大都还只能算是初步的尝试。它们仍然是瞬态应用,但是 g o o g l es p r e a d s h e e t s 在线电子表格和刚被g o o g l e 收购不久的w r i t e l y ( 现在,这 两个应用已经被整合成了g o o g l ed o e s & s p r e a d s h e e t s ) ,初步展示了a j a x 技术构 北京邮i 乜人学硕l :研究生毕业论文 建独占应用的能力。这一能力,对m i c r o s o t f t 形成了潜在的危险,关于这一点将 在1 2 3 小节中讨论。 1 2 2w e b 2 u 什么是w e b 2 0 ,现在还没有一个标准答案,很难下一个清晰的定义。有人 认为w e b 2 0 是革命性的概念,也有人认为w 曲2 0 纯粹是炒作。 下面是w e b 2 0 的一种简要定义: “w e b 2 0 是以f l i c k r 、4 3 t h i n g s c o m 等网站为代表,以b l o g 、t a g 、s n s 、 r s s 、w i k i 等社会软件的应用为核心,依据六度分隔、x m l 、a j a x 等新理论和 技术实现的互联网新一代模式。” 这段定义是很容易让人糊涂的。实际上关于w e b 2 0 的介绍是浩如烟海,但 的确没有一个简洁的定义。这可能是w e b 2 0 还在形成中,w e b 2 0 的概念与 w e b 2 0 应用一样处于不断的更新中,但其核心模式可以概括如下: 驾驭集体智慧:有时候我们将这个称为w e b2 0 的核心模式,这个就是 参与的架构,它通过有效的触发网络效应和回馈来创建一个让人们能够 更好使用的系统。 数据是下个”i n t e li n s i d e :这句话表示了数据将变得越来越重要,它 的重要性已经超过了软件本身,这个残酷的现实你必须得接受。 在组合中创新:w e b 正在变成一个由一片片小的数据和服务汇集而成的 集合体,彼此之间松散结合,这样增加了重组的可能性和对系统与信息 的无意识的使用。 丰富的用户体验:w e b 页面的进化将超越现有的h t m l 标识方式,并 且能够拥有完全像软件那样体验,创造交互的新方式。 软件将不会在单一的设备上提供:软件会是博客联盟群体( b l o g o s p h e r e : 数量众多的b l o g 平台和聚合者) 那样的水平模式,或者是像i t u n e s 那 样集成的垂直模式( 服务器场+ 在线商店+ i t u n e s 客户端+ i p o d s 设 备) ,这些都将改变我们软件的前景。 永远的b e t a 版:软件分版本的发行将不复存在,持续更新才是新的规 范。 撬动长尾的力量:有效的通过w e b 来提供对微市场的服务将是”杀手级 商业应用”之一,i n t e r n e t 现在的形式将这种应用变成可能。 轻量高效的软件商业模型:从a m a z o l l ss 3 到r s s 、到r u b y o nr a i l s , 在线软件开发的经济学模式正在发生变化,它给新的玩家提供了强大的新武器来 对抗现有的对手,甚至是整个行业。 6 北京邮电大学硕士研究生毕业论文 w e b 2 0 是一个社会概念,而a j a x 是个技术概念。w e b 2 0 也完全可以用传统 的w e b 技术来实现,很多b l o g 和w i l d 就没有使用a j a x 技术。但在实际应用中 a j 强技术实现w e b 2 0 的重要技术。w e b 2 0 与a j a x 的关系就像s o a 与w e b s e r v i c e 的关系。 a j a x 赋予w e b 富客户端的能力,使得w e b 2 0 提供的服务更接近于打包软 件;a j a x 技术良好的交互能力使得用户能够更加方便的参与其中;a j a 】【技术支持 灵活的符合数据源和数据转换。可以说,没有a i a x 技术,w e b 2 0 就不可能如此 多姿多彩。 1 z 了s a a s s a a s ( s o f l w a r ea sas e r v i c e , 软件即服务) ,是随着互联网技术的发展和应用软 件的成熟,而在2 1 世纪开始兴起的一种完全创新的软件应用模式。它与 “o n - d e m a n ds o f t w a r e ”( 按需软件) ,t h ea p p l i c a t i o ns e r v i c ep r o v i d e r ( a s p ,应用服 务提供商) ,h o s t e ds o f t w a r e ( 托管软件) 所具有相似的含义。它是一种通过i n t e r a c t 提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自 己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和 时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。 a j a x 技术使得s a a s 边界变得更加宽广。有这样一种大胆的设想,将来的计 算机只需要安装一个浏览器,通过浏览器用户可以使用任何应用,而不需要在计 算机上安装其他软件了。虽然s a a s 离这样的理想还差得很远,但它的发展已经 对m i c r o s o f t 构成了威胁。如果通过浏览器就能方便使用很多应用,m i c r o s o f t 拥 有的操作系统优势将大大丧失,m i c r o s o f t 很难利用平台优势打败竞争对手。 m i c r o s o f t 曾经就是利用这一优势打败了n e t s e a p e 和l o t u so 伍c c 。 1 2 4s o a s o a ( s e r v i c eo r i e n t e da r c h i t e c t u r e ,即面向服务的架构) ,它是一种架构模型, 它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署,组合和 使用。服务层是s o a 的基础,可以直接被应用调用,从而有效控制系统中与软件代 理交互的人为依赖性。 s o a 是基于中间件的,而传统情况下,中间件往往要依赖于更多的中间件 才能把数据翻译成一种消费者友好的状态,在传统情况下仅由业务开发者消费和 北京邮电人学硕i :研究生毕业论文 利用这种由i t 组织暴露的s o a 服务实在是太十分困难的。其实,真正存在的问 题是缺乏一种容易的方法来在s o a 上加入一种界面一而这正是把a j a x 技术与 s o a 结合到一起的优点所在。a j a 】【的两个关键特征:一个是客户端编程模型,另 一个是对服务器进行异步调用。这两种关键能力在客户端( 浏览器) 应用逻辑 的能力和在不打断w e b 页面的情况下存取服务器数据的能力,正是它们拓宽了 构建新的更为丰富的w e b2 0 企业应用程序的如此众多的可能性应用领域,从而 可以给s o a 加上一个体面的外观。a j a x 应用可以作为s o a 的用户接口提供用 户界面,也可以用a j a x 技术封装s o a 服务,提供j a v a s c r i p t 的a p i 接口,第三 方可以使用这些a p i 在自己的应用中调用这些s o aj 日务,有名的g o o s e m 叩a p i 就是一个典型的例子。 1 3a j a x 技术现存问题 a j a x 给w 曲注入了强大的动力,但a j a x 中有些技术并不能很好的支持起富 客户端的目标。下面分析了a j a x 技术的4 个问题。 1 3 1 代码管理和客户端结构 代码管理主要是指j a v a s c r i p t 脚本代码的管理。j a v a s c r i p t 语言的设计目标是 简单,轻量级的动态脚本语言,以增强w e b 页面的效果。在传统w e b 中,j a v a s c r i p t 处于辅助的地位,在页面中多是零碎出现,代码量不多,也不存在代码管理的问 题。 在a j 戤应用中,情况就大不一样了,j a v a s c r i p t 处于核心地位,直接决定主 要功能,代码量庞大。j a v a s c r i p t 脚本的管理问题就突显出来了。j a v a s c r i p t 不具 有命名空间,也没有包结构,代码无法分类管理。发布,引用都不方便。也很容 易产生命名冲突,产生所谓s c r i p ts c o p e 问题。 a j a 】【大大增加了w e b 层的复杂性,原来仅仅显示内容的扁平页面变成了具 有一些业务逻辑的客户端。 1 3 2 数据访问接e l x m l h t t p r e q u e s t 对象是最基本的数据访问接口,但其通信粒度太细,开发 人员需要管理通信细节,负担太重。x m l h t t p r e q u e s t 对象也不提供离线数据访 北京邮电大学硕f :研究生毕业论文 问和数据缓存的能力,更没有对象序列化和反序列化的能力。 1 3 3 服务器端和客户端的职贯与结构 传统的w e b 应用,其w e b 层只负责显示内容,这一层是相当薄的。a j 强应 用的w e b 层则比较胖,可以具有一些业务逻辑。这就使得w e b 层和业务逻辑之 间的界线模糊了。合理划分服务器端和客户端的功能是很重要的。划分不好,对 应用的性能有很大的影响,可能会产生如下问题:增加通信量,服务器端负荷过 重或者浏览器资源占用过大等问题。 原来瘦户端的模式向富客户端回归。这对当前分布式应用的主流结构三 层结构并没有影响,富客户端也可以采用三层结构。但w e b 层变厚,w e b 层的 内部结构就变得复杂了。w e b 层的内部结构的划分和设计就变得重要了。 1 3 4 安全控制 传统w e b 应用的安全控制虽然也是一个比较棘手的问题,但是因为所有的 业务逻辑都在服务器端,外界并不容易侵入。而在a j a x 应用中,部分业务逻辑 在客户端,安全控制也需要延伸到客户端。j a v a s e r i p t 代码是动态,解释执行的, 存在很多安全漏洞,如何保证客户端逻辑的安全是个很棘手的问题。 1 4 研究目的、意义和主要工作 本课题研究的主要目的是研究a j a x 客户端编程的理论和方法,设计一个 a j a x 客户端编程模型,并在这些研究的基础上设计和实现一个的a j a x 应用框架。 a j a x 技术正处于迅速发展的时期,其应用越来越普及,目前正处于从试验 到工业化的过程中。任何技术如果需要得到大规模的应用,就必须走标准化的道 路。a j a x 已经给了我们很多惊喜,其能力已经已经被充分展示了。现在是如何 充分应用的a j a x 能力的时候了,良好的编程模型和a j a x 应用框架比眩目的功能 更重要了。m i c r o s o f t ,g o o g l e 都已经推出了a j a x 应用框架,开源社区的d w r 和 z k 也是目前比较优秀的框架。总的来说,a j a x 应用编程模型和框架,还处于百 家争鸣的阶段,在这个领域还有很多工作可以做。尤其是目前主流a j a x 框架都 是基于动态w e b 技术的,纯客户端的a j 缸框架还没有。论文的工作是具有一定 创新性和研究性的。 论文主要工作: 第一章概述简要介绍a j a ) 【技术及其相关技术,发展现状,问题。 第二章则着力研究a j a ) 【的设计理论,编程方法,经验以及问题。为a i a x 应 9 北京邮i 乜人学硕i :研究生毕业论文 用编程模型的设计做理论准备。此章涉及到a j a x 应用设计的多个方面和问题, 包括动态页面技术,a j a x 编程基本原则,a j a x 中的m v c ,客户端和服务器端职 责划分,通信和数据访问,事件机制,控制反转技术,面向方面编程技术以及 a j a x 的安全问题。这些方面和问题都是编程模型设计时必须深思熟虑的。 第三章提出了完整的a j a x 应用客户端编程模型。首先给出了编程模型的几 大目标,然后详细介绍了整体结构到各个组成部分。编程模型的着重考虑了组件 复用度,互操作性和安全性。并给出了一些关键技术的实现代码。 第四章设计了一个编程模型的简单实现,给出了u m l 类图和关键实现部分 的说明。 第五章在第四章实现的应用框架的基础上构建了一个简单的示例应用,以说 明如何使用应用框架。 1 0 北京邮电大学硕l - 研究生毕业论文 第二章a j a xw e b 应用设计理论和方法 a j a x 技术出现以来,已经有不少成功的应用,在工程实践中,也积累一些 宝贵的方法和经验。编程模型的研究应该遵循这些方法和经验。本章将对a j a x 应用的设计理论,方法和经验,以及有争论的问题进行分析和总结,为编程模型 的设计提供理论依据。 2 1 回归静态还是加强动态性 早期的w e b 都是静态的,为了增强w e b 的功能逐渐发展出动态w e b 技术, 动态w e b 技术使得的w e b 不再只是个内容发布和共享平台,而是发展成为一个 应用平台,主流的w e b 应用技术如j 2 e e ,a s p n e t , p h p 等等都是基于动态页面技 术的。a j a x 技术无疑是更加增强了w e b 作为应用平台的资本。有趣的是这一技 术却是纯静态的w e b 技术,不依赖于任何动态w e b 技术,使用a j a x 技术可以开 发出纯静态页面的w e b 应用。但是目前a j a x 技术的主流并不是回归静态页面而 是a j a x 技术与动态w e b 技术的融合。前面提到的几个a j a x 框架,如g w t a s p n e t a j a x ,d w r 和z k 等( d o j o 是工具包而不是框架) 都是基于服务器端动态技术 的。 g w t , a s p n e ta j a x ,d w r 和z k 实际上是传统w e b 应用开发思想的延续。 即客户端代码只是服务器端的附属品,客户端代码由服务器端动态生成。以前仅 是页面内容由服务器端生成,现在页面的行为也完全由服务器端控制。这是很 有趣的,一方面客户端的能力变得更强大,另一方面其独立性却变得更差,与服 务器端耦合度进一步提高。在传统的w e b 应用中,独立的j s 文件还存在复用的 可能性。而在这些新框架中,j s 的复用就很成问题了。可以说,这些框架在设计 思想上就不符合解耦和分散关注的原则。虽然通过自动生成j a v a s c r i p t ,可以让 j a v a 程序员集中精力于j a v a 代码上。但j a v a 与j a v a s c r i p t 不是1 0 0 可转换的, 所以写客户端c o d e 时还是需要注意转换规则。另一方面,j a v a 又不具有 j a v a s e r i p t 的动态特性,生成的j a v a s c r i p t 也就很难具有动态能力了。这实际上是 使用两种语言的交集进行开发。更重要的是,此种方式使得客户端和服务器端的 代码紧密耦合,开发人员也容易模糊两者之间的边界,造成功能划分不合理。 在软件设计中,当某一部分的结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年扶余市博物馆公开选调解说员(4人)考前自测高频考点模拟试题及答案详解(名师系列)
- 2025年上半年甘肃陇南文县教师资证认定模拟试卷及答案详解(必刷)
- 2025年乐山事业单位真题
- “百万英才汇南粤”2025年佛山市高明区公开招聘中小学教师(第四场)模拟试卷附答案详解(典型题)
- 2025年甘肃庆阳华池县事业单位选调工作人员考前自测高频考点模拟试题及1套完整答案详解
- 2025广东广州医科大学附属医院第一次招聘163人考前自测高频考点模拟试题含答案详解
- 2025年淡水养殖产品种苗项目合作计划书
- 2025年高邮市市级机关公开遴选考试真题
- 2025年福建省厦门市体育局所属事业单位厦门市体育运动学校公开招聘4人考前自测高频考点模拟试题附答案详解
- 2025贵州省第二人民医院第十三届贵州人才博览会引才招聘13人模拟试卷及答案详解(有一套)
- 乒乓球比赛裁判员学习用(教学)
- 非口服药物的吸收(生物药剂学与药物动力学课件)
- 《中外美术史》课件
- 七年级语文上册课外阅读之《朝花夕拾》读书分享课件
- 节目组劳务合同模板
- 锅炉培训课件
- 青岛 二年级 数学 上册 第4单元《8的乘法口诀》教学课件
- 广东省东莞市五校2024-2025学年高一上学期第一次联考数学试题(无答案)
- 中华人民共和国标准设计施工总承包招标文件(2012年版)
- PVC-地面中水泥基自流平找平层的施工作业指导书
- 道路施工分包合同范例
评论
0/150
提交评论