




已阅读5页,还剩68页未读, 继续免费阅读
(计算机软件与理论专业论文)基于ajax的电信运营支撑系统的设计与实现技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京邮电大学硕士研究生学位论文 摘要 摘要 当前,随着w e b 2 0 概念的提出,a j a x 技术作为富互联网应用程序( r i c hi m e m e t a p p l i c a t i o n s ,r a ) 实现技术中的一种,已成为w e b 技术领域的研究热点。并且这股研究 热浪在g o o g l e 推出g o o g l em a p ,g m a i l 等应用后达到了前所未有的高度。a j a x 的“异步请 求”和“按需获取”的特点让人们看到了改变w e b 应用系统下,浏览器操作方式单一、呆板 的希望。a j a x 涉及到的关键技术包括j a v a s c d p t 、x m l h t t p r e q u e s t 、d o m 、x m l 等, 并通过x m l h t t p r e q u e s t 对象来发送异步请求。本文结合作者参加的电信运营支撑系统的 实践,研究论述了a j a x 以及页面组件( h t m lc o m p o n e n t ,h t c ) 在系统中的设计与实 现技术。实验证明,使用a j a ) 【技术及其相应设计模式的电信运营支撑w e b 应用系统的解 决方案所构建的具有桌面应用系统风格( d e s k t o p 1 i k e ) 的系统,具有极强的人机交互操作 能力,可以显著地改善传统w e b 系统用户的使用体验。 关键词:a j a x ,h t c ,异步交互,富客户端,运营支撑系统 南京邮电大学硕士研究生学位论文 摘要 a b s t r a c t n o w d a y s ,州lt h ec o n c e p t i o no fw e b 2 0c o m i n go u t ,a j a x ,a so n eo ft h er i c hi n t e r a c t a p p l i c a t i o n ( r t a ) i m p l e m e n t a t i o nt e c h n o l o g y , b e c o m e st h eh o tr e s e a r c ht o p i co ft h ew e b t e c h n o l o g yf i e l d s a n dt h eh e a tw a v eh a sr e a c h e dau n p r e c e d e n t e dl e v e ls i n c et h eg o o g l e c o m p a n yb r o u g h to u tt h ea p p l i c a t i o np r o d u c t ss u c ha st h eg o o g l em a p 、g m a i la n ds oo n t h e a s y n c h r o n o u sr e q u e s t a n d r e q u i r e dr e t r i e v e c h a r a c t e r i s t i c so fa j a xm a k ep e o p l eg e tt h e h o p eo fc h a n g i n gt h es i m p l i c i t ya n df o r m a l i t yo ft h eb r o w s e ro p e r a t i o ns t y l eo ft h ew e b a p p l i c a t i o ns y s t e m t h ek e yt e c h n o l o g i e so fa j a xi n v o l v e j a v a s c r i p t 、x m l h t t p r e q u e s t 、 d o m 、x m la n de t c ,a n dw i t ht h ex m l h t t p r e q u e s to b j e c t , a j a xs e n d st h ea s y n c h r o n o u s r e q u e s t 。t h i sp a p e rr e s e a r c h e sa n dd i s c u s s e st h et e c h n o l o g i e so fd e s i g n i n ga n di m p l e m e n t i n g w e ba p p l i c a t i o ns y s t e m su s i n g 钨a xa n dh t m l c o m p o n e n t ( h t c ) ,b e n e f i t i n gf r o map r o j e c to f d e v e l o p i n gp r a c t i c a l l yat e l e c o mo p e r a t i o n a ls u p p o r ts y s t e m ( o s s ) e x p e r i m e n ts h o w st h a t t h es o l u t i o ns c h e m eo fo s s u s i n ga j a x a n dt h er e l a t i n gd e s i g np a t t e r nm a yb u i l d an i c ed e s k t o p l i k ew e b s y s t e mw i t hs t r o n g m a l l - m a c h i n ei n t e t a c t i v e a b i l i t y , a n d i tw i l l m a k eu s e r sh a v et h eb e t t e re x p e r i e n c e st h a nt h et r a d i t i o n a lw e b s y s t e m k e y w o r d s : a j a x ,h t c ,a s y n c h r o n o u si n t e r a c t i v i t y ,r i c hc l i e n t ,o p e r a t i o ns u p p o r ts y s t e m 2 南京邮电大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的 地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包 含为获得南京邮电大学或其它教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了 明确的说明并表示了谢意。 豁a 磋嗍 南京邮电大学学位论文使用授权声明 亟i 。_ 南京邮电大学、中国科学技术信息研究所、国家图书馆有权保留 本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其 他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一 致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布 ( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权 南京邮电大学研究生部办理。 研究生签名:比乏 导师签名:逝日期:柚 南京邮电大学硕士研究生学位论文第一章序论 第一章序论 1 1 本课题研究背景 随着信息革命和知识革命的席卷全球,当今社会已是一个信息化,数字化的社会,网 络信息化正在延伸到社会的每一个角落,这种趋势已成为一种不可抗拒的时代潮流。全球 性的网络化、信息化进程深刻地改变了人类的生存方式:一方面,i n t e m e t 技术应用的飞速增 长给人们生活工作的各个层面带来了深刻的影响:另一方面,信息网络时代的到来给企事业 各个部门的工作提出了快捷、高效的要求。网络对于企业来讲不仅是一种高效的通信方式, 而且是企业提高工作效率,降低成本,快速实施客户需求响应的手段。从全球范围来看, 企业办公的网络化、自动化、电子化己是一个企业是否能够持续高速发展的基本标志。 2 0 世纪9 0 年代成熟起来的c s 体系结构的应用系统由于有着诸多的弊端,从而使的如 今大量的企业应用使用了b s 模式的企业架构,取得了非常显著的经济效益。但是随着企 业信息化程度的提高,现实应用中对现有b s 模式下的企业应用提出了更高的要求。传统 的w e b 应用总是基于网络的请求响应的模式,是“瘦客户端 技术,相对于c s 体系结构 的“胖客户端 技术,系统界面的人机交互能力非常有限。在用户提出服务请求时,用户 浏览器总是处于整个页面的刷新等待状态,即使用户所要获取更新的数据只是很小的一部 分数据,这在前台浏览器需要对服务器进行大量的数据业务请求时,频繁的浏览器数据刷 新,往往服务器的负担比较重。冗余数据的网络传送也会造成网络堵塞,这在企业应用中 存在大量用户的并发请求的情况时,尤其是在具有大量而频繁前后台数据交互的情况下, 服务器的对客户的数据响应速率问题也会变的更加严重,另外大量而频繁的前后台数据传 送对企业网络吞吐量的要求也十分的显著,这往往成为企业架构应用推广实用的瓶颈。 在这种情况下,w e b 2 o 的局a ) ( 技术为我们带来了解决该问题的途径。a j a x 的突出特征 就是“异步请求 和“按需获取 。“异步请求 指的是在客户端浏览器发出对服务器的业 务请求后,浏览器页面无需处于“白屏”的刷新等待状态,浏览器仍然可以接收用户的其 他操作请求,浏览器和服务器可实现并发工作;“按需获取 指的是浏览器可以向服务器 提交“局部数据请求,而不再是整个页面的刷新显示,减轻服务器负担和网络上的冗余 页面代码的传送,使页面可以实现“局部刷新”。当前在w e b 系统中,借助a j a x 技术的应用 主要有以下几个方面【】: 1 数据验证 l 南京邮电大学硕士研究生学位论文 第一荤序论 传统的数据验证通常有两种方式:一种是在用户填写后直接提交表单,这种方式需要 将整个页面提交到服务器端进行验证;第二种方式是用户在输入表单信息后,可以通过点 击相应的验证按钮,打开一个新窗口查看验证结果。这两种方式都有它们的缺点,前者整 个验证过程不仅时间长而且造成了服务器不必要的负担,而后者需要新开一个浏览器窗口 或者对话框,还需要专门编写验证的页面,比较耗费系统资源。而采用a j a x 技术,整个 过程不需要弹出新窗口,也不需要提交整个页面到服务器,整个过程简洁快速。 2 按需获取数据 分类树或者树形结构在w e b 应用系统中使用得非常广泛。以前为了不重复载入页面 以及避免向服务器频繁发送请求,总是一次性将分类结果中的数据一次性全部读取出来并 写入数组,但是如果用户只对分类树中的一部分数据进行操作的话( 这种情况很普遍的) , 那么读取的数据中就会有相当大的冗余,浪费了用户的资源。应用a j a x 技术则可以在用 户点击要操作的分类结点时,浏览器向服务器发送异步数据请求,并将返回数据对操作结 点进行局部刷新。改进分类树的实现机制。这样就不会存在页面冗余数据的加载,大大缩 短了用户的等待时间。 3 自动更新页面 在w e b 应用中有很多数据的变化是十分迅速的,例如最新的证券交易信息,天气预 报以及聊天室内容等。在a j a x 出现之前,用户为了及时了解相应的内容必须不断刷新页 面,查看是否有新的内容变化,而不管服务器后台是否有最新的信息变化。应用a j a x 可 以改善这种这种情况,页面加载以后,会通过a j a ) 【引擎进行定时的轮询,向服务器发送 请求,查看是否有最新的消息。如果有则将新的数据( 而不是所有数据) 下载并且在页面 上进行动态的更新。 显然上述应用总是局限于w e b 应用系统的个别实现技巧,更好的改善了用户的使用 体验,但是没有能够上升到软件体系结构的设计层面。随着g o o g l e 推出的一系列让人惊 奇的基于a j a x 的应用如:g o o g l em a p ,g r n a i l ,g o o g l es u g g e s t 等,人们才开始认识到a j a ) 【 技术在构建集“胖客户端系统和“瘦客户端 系统众多优点的“富客户端 ( r i c hc l i e n t ) w e b 系统上的强大功能。使得a j a x 技术的研究成为炽手可热的研究热点。 1 2 论文工作和成果 本论文议题源于作者参加的中兴通讯软创为电信运营商提供的电信运营支撑系统设 计解决方案。 2 南京邮电大学硕士研究生学位论文第一荤_ | 予论 本文讨论了目前处于研究热点的a j a x 技术以及页面组件( h t c ) 技术,结合作者参 加的项目实践,对基于a j 觚的电信运营支撑系统的设计与实现技术进行了研究。由于传 统的w e b 应用系统用户请求方式单一,系统用户交互能力薄弱,a j a x 作为一种w e b 系统 异步交互技术,近来开始受到人们的重视和广泛研究。并有着显著的应用成果。本文作者 详细讨论研究了a j a x 技术以及w e b 组件技术在电信运维支撑系统中构建“富客户端 系 统的的研究和实现。 本论文的组织结构安排如下: 第一章简要叙述了论文课题的研究背景,a j a x 技术当前的应用现状和论文工作情况。 第二章论述了w e b 技术及应用的发展趋势。 第三章论述了论文的设计方案中涉及到的相关技术。主要有a j a x 技术,包括a j a x 的概念,特点核心技术等。这一章还论述介绍了w e b 组件技术和x m l 技术以及各自的 应用特点。 第四章着重研究论述了采用a j a x 技术以及页面组件技术( h t c ) 在电信运营支撑资 源管理子系统中的设计与应用。该章节先简要对系统进行了介绍,并对其应用特点进行了 分析,然后详细论述了a j a x 及相关技术在系统中的设计和应用。主要包括a j a x 引擎的设 计、h t c 多功能表单的设计以及服务器端的接口设计与应用等。 第五章结合第四章的设计方案给出了一个使用a j a x 等技术的设计方案模型验证。论 证了设计的可行性。 第六章简要的对论文进行了总结现有的工作,并展望了需要进一步深化的内容。在论 文的附录部分作者附上可部分方案模型的部分代码并进行了解析。 南京邮电大学硕士研究生学位论文 第二章w e b 应用技术 第二章w e b 应用技术 2 1w e b 技术 2 1 1w e b 技术发展概述 w e b 的前身是1 9 8 0 年t i m b e m e r s - l e e 负责的e n q u i r e ( e n q u i r e w i t h i n u p o n e v e r y t h i n g 的简称) 项目。1 9 9 0 年1 1 月,第一个w e b 服务器n x o c 0 1 c e r l l e l l 开始运行,t i mb e r n e r s l e e 在自己编写的图形化w e b 浏览器”w o r l d w i d e w e b ”上看到了最早的w e b 页面。1 9 9 1 年, c e r n ( e u r o p e a np a r t i c l ep h y s i c sl a b o r a t o r y ) 正式发布了w e b 技术标准。目前,与w e b 相关的各种技术标准都由著名的w 3 c 组织( w r o r l dw i d ew e bc o n s o r t i u m ) 管理和维护。 从技术层面看,w e b 架构的精华有三处:用超文本技术( h 谢l ) 实现信息与信息的 连接:用统一资源定位技术( i j l r j ) 实现全球信息的精确定位;用新的应用层协议( 哪) 实现分布式的信息共享。这三个特点无一不与信息的分发、获取和利用有关。其实,t i m b e m e r s l e e 早就明确无误地告诉我们:”w e b 是一个抽象的( 假想的) 信息空间。也就 是说,作为i n t e r a c t 上的一种应用架构,w e b 的首要任务就是向人们提供信息和信息服务 w 曲是一种典型的分布式应用架构。w 幻应用中的每一次信息交换都要涉及到客户 端和服务端两个层面。因此,w e b 开发技术大体上也可以被分为客户端技术和服务端技 术两大类。 1 客户端技术 w e b 客户端的主要任务是展现信息内容,而h t m l 语言则是信息展现的最有效载体 之一。最初的h t m l 语言只能在浏览器中展现静态的文本或图像信息,浏览器中最早的 动态图像是h t m l 页面中嵌入的二维动画的g i f 图像。1 9 9 5 年随着j a v a 语言的问世,由 于j a v a 的平台无关的特点,让人们一下予找到了在浏览器中开发动态应用的捷径。1 9 9 6 年,著名的n e t s e a p e 浏览器在其2 0 版中增加了对j a v aa p p l e t s 和j a v a s c r i p t 的支持, m i c r o s o f t 的i e3 0 也在这一年开始支持j a v a 技术以及v b s c r i p t 脚本语言。真正让h t m l 页面动感无限的是c s s ( c a s c a d i n gs t y l es h e e t s ) 和d h t m l ( d y n a m i ch t m l ) 技术。 c s s 大大提高了开发者对信息展现格式的控制能力。d h t m l 技术无需启动j a v a 虚拟机 或其他脚本环境,可以在浏览器的支持下,获得更好的展现效果和更高的执行效率。随后 为了能在h t m l 页面中实现音频、视频等更为复杂的多媒体应用,相继出现了q u i c k t i m e 4 南京邮电大学硕士研究生学位论文第二苹w e b 应用技术 插件、a c t i v e x 控件、r e a l p l a y e r 插件等相关技术,同样值得一提的还有f l a s h 插件的横空 出世。 h t m l 语言是我们建立网页的工具和基础,从它出现发展到现在,规范不断完善, 功能越来越强。但是依然有缺陷和不足。结合x m l 的广泛应用和推广,2 0 0 0 年底,w 3 c 组织公布发行了x h t m l1 0 版本。x h t m l1 0 是一种在h t m l4 0 基础上优化和改进的 的新语言,目的是基于x m l 应用。它采用x m l 的d t d 文件格式定义,并运行在支持 x m l 的系统上。 2 服务端技术 与客户端技术从静态向动态的演进过程类似,w e b 服务端的开发技术也是由静态向 动态逐渐发展、完善起来的。最早的w e b 服务器简单地响应浏览器发来的h t t p 请求, 并将存储在服务器上的h t m l 文件返回给浏览器。第一种真正使服务器能根据运行时的 具体情况,动态生成h t m l 页面的技术是大名鼎鼎的c g i ( c o m m o ng a t e w a yi n t e r f a c e ) 技术。早期的c g i 程序大多是编译后的可执行程序,其编程语言可以是c 、c + + 、p a s c a l 等任何通用的程序设计语言。为了简化c g i 程序的修改、编译和发布过程,p e r l 、p y t h o n 等脚本语言的诞生提供了实现c g i 应用的可行方式。1 9 9 4 年,r a s m u sl e r d o r f 发明了专 用于w e b 服务端编程的p 肿( p e r s o n a lh o m ep a g et o o l s ) 语言。p h p 语言将h t m l 代码 和p h i 指令合成为完整的服务端动态页面,w e b 应用的开发者可以用一种更加简便、快 捷的方式实现动态w e b 功能。1 9 9 6 年,m i c r o s o f t 借鉴p 肿的思想,在其w e b 服务器i i s 3 0 中引入了a s p 技术。借助m i c r o s o f tv i s u a ls t u d i o 等开发工具在市场上的成功,a s p 迅速成为了w i n d o w s 系统下w e b 服务端的主流开发技术。1 9 9 7 年,s e r v l e t 技术问世,随 后,j s p 技术诞生。s e r v l e t 和j s p 技术( 还可以加上j a v a b e a n 技术) 让j a v a 开发者同时 拥有了类似c g i 程序的集中处理功能和类似p h p 的h t m l 嵌入功能,并最终成为后来的 j 2 e e 平台的两个核心技术。 2 1 2 两个重要的w e b 开发平台 在这里我们需要着重介绍一下w e b 应用开发的两个最重要的开发平台:j 2 e e 和n e t 平台。从某种意义上说,也正是这种针锋相对的竞争关系促使了w e b 开发技术以前所未 有的速度提高和跃进。 1 9 9 9 年,s u n 正式发布了j 2 e e 的第一个版本,它是纯粹基于j a v a 的解决方案。紧接 着,遵循j 2 e e 标准,为企业级应用提供支撑平台的各类应用服务软件争先恐后地涌现了 5 南京邮电大学硕士研究生学位论文 第二章w e b 应用技术 出来。i b m 的w e b s p h e r e 、b e a 的w e b l o g i c 都是这一领域里最为成功的商业软件平台。 随着软件开源运动的兴起,j b o s s 等开源世界里的应用服务新秀也吸引了许多用户的注意 力。到2 0 0 3 年时,j 2 e e 体系及相关的软件产品已经成为了w e b 服务端开发的一个强有 力的支撑环境。 和j 2 e e 不同的是,n e t 平台是m i c r o s o f t 的一个强调多语言间交互的通用运行环境。 2 0 0 1 年,e c m a 通过了m i c r o s o f t 提交的c 撑语言和c l i 标准,这两个技术标准构成了n e t 平台的基石,它们也于2 0 0 3 年成为了i s o 的国际标准。2 0 0 2 年,m i c r o s o f t 正式发布n e t f r a m e w o r k 和v i s u a ls t u d i on e t 开发环境。n e t 平台及相关的开发环境不但为w e b 服务 端应用提供了一个支持多种语言的、通用的运行平台,而且还引入了a s p n e t 这样一种 全新的w e b 开发技术。a s p n e t 超越了a s p 的局限,可以使用v b n e t 、c # 等编译型语 言,支持w e bf o r m 、n e ts e r v e rc o n t r o l 、a d o n e t 等高级特性。可以说n e t 平台,尤 其是n e t 平台中的a s p n e t 的确不失为w ,e b 开发技术在w i n d o w s 平台上的一个集大成 者。 2 2w e b 应用及其体系结构 2 2 1 传统w e b 应用体系结构 随着h n t e m e t 兴起和w e b 技术的发展,w e b 应用得到了很大程度的推广,基于w e b 技术的应用系统也日益复杂,这同时也推动了b s ( 浏览器朋艮务器) 模式软件体系结构 的应用和发展。在这里我们有必要首先对c s ( 客户端,服务器) 模式的软件体系结构进行简 要的介绍。 c s 软件体系结构式2 0 世纪9 0 年代成熟起来的“胖客户端”技术,基于c s 体系结 构的系统主要有客户机程序和数据库服务器以及连接网络组成。这种体系结构具有强大的 数据操作和事务处理能力,系统中的功能构件充分隔离,客户应用程序的开发集中于数据 的显示和分析,数据库服务器的开发则集中于数据的管理。但c s 体系结构的缺点也很明 显,比如客户端的程序设计往往比较复杂,用户的界面风格不一,使用比较繁杂,不容易 推广,客户端软件的移植,升级和维护都比较困难。而且由于客户端和服务器端直接连接, 服务器将消耗部分系统资源用于处理与客户端的连接工作。另外c s 结构中,数据库服 务器成为系统可靠性的极大隐患。如数据库服务器因为某种原因停止工作,那么整个系统 将趋于瘫痪。 6 南京邮电大学硕士研究生学位论文第二苹w e b 应用技术 而基于w e b 技术的b s 体系结构一般设计为多层结构。在这种体系结构中,以客户 界面表现层、中间业务逻辑层和后端数据库服务器层三层体系结构应用最多( 见图2 1 ) 。 这种体系结构的系统安装,修改和维护全在服务器端解决。它能够满足应用程序的两种需 求,即可伸缩性( 或可扩展性) 和i n t e m e t i n t r a n e t 应用。还提供可异种机,异种网,异种应 用服务的联机,联网,统一服务的最现实的开放性基础。 表 服务请求 中 数据请求 数 i 现 1 间 据 层请求结果请求结果 层 层 用户界面业务逻辑数据存储 图2 1 典型三层结构b s 框架模型 b s 系统用户在使用时,仅仅需要一个浏览器就可以了,真正达到了村瘦客户端”的 功能,而且在运行时自动升级。可以看出,三层结构应用软件的特点是用户界面与应用逻 辑位于不同的平台上,并且应用逻辑被所有用户共享。由于用户界面与应用逻辑位于不同 的平台上,那么系统必须提供用户界面与应用逻辑之间的连接,它们之间的通信协议是由 系统自行定义的。这个协议必须定义正确的语法、语义以及同步规则,保证传递数据的正 确并且能够从错误中恢复过来。应用逻辑被所有用户共享是两层结构应用软件与三层应用 软件之间最大的区别。中间层即应用服务器是整个系统的核心,它必须为处理系统的具体 应用而提供事务处理、安全控制以及为满足不同数量客户机的请求而进行性能调整的能 力。应用服务器软件可以根据处理逻辑的不同被划分为不同的模块,从而使客户机方应用 程序在需要某种应用服务时只与应用服务器上处理这个应用逻辑的模块通信,并且一个模 块能够同时响应多个客户机方应用程序的请求。 和c s 体系结构相比,b s 体系结构的这种“瘦客户端”模式使系统的开发和维护 成本大大降低,客户端负载比较轻,系统升级容易,灵活性更好,并且b s 系统具有更好 的可移植性,用户界面更加简洁统一。但不可否认,传统的b s 系统在用户使用上有几大 缺点: 7 南京邮电大学硕士研究生学位论文 第二章w e b 应用技术 1 操作界面单一,人机交互能力弱,缺乏窗口化的操作界面; 2 w e b 界面在图形表达能力上总是不能尽情发挥; 3 服务器冗余请求,界面不必要刷新过多,用户等待时间较长; 2 2 2 富因特网应用程序 2 0 0 3 年之后,伴随这w e b 2 0 概念的提出,“富客户端”( r i c hc l i e n t ) 技术逐渐得到 人们的认可并被大量应用于系统中。并且这种利用具有很强交互性的富可客户端技术来为 用户提供一个更高和更全方位的网络体验的系统被称为富因特网应用程序( r i c hi n t e m e t a p p l i c a t i o n s ,r a ) 。r i a 集成了桌面应用的交互性和传统w e b 应用的部署灵活性与成本 分析,以创建单一而完整的用户体验。富客户端技术使创建r i a 成为可能,它充分利用 本地机器的处理能力来处理数据,而不需要把某些数据发送到服务器处理,充分利用了本 地机器的资源,使用户具有窗口应用系统类似的使用体验,系统交互能力更强。 r i a 的另一个好处在于,数据能够被缓存在客户端,从而可以实现一个比基于h t m l 的响应速度更快且数据往返于服务器的次数更少的用户界面。下图2 2 给出了一个典型 的r i a 体系结构。x m l 通常被用作数据传输的格式,有时也被用来描述窗体的布局。在 很多的实例中,客户端可以保持与数据源的连接,这样服务器能够实时地对客户端数据进 行更新【2 2 1 。对一个数据的访问可以通过w e b 服务调用来完成。 w e bb r o w s e r 圈 a p p l i c a t i o n c 嘣阳因a 嚣啪nh 赢 _ 1g a t e w a yil s e r v e r ll 图2 2 一个典型的r i a 体系结构 r i a 系统模型中,界面可以分解成许多个既可以和用户直接交互,又可以和服务器 进行通信的小单元模块。服务器收到请求后由上至下的创建客户端界面,你不用预测事 件的顺序。由于每个组件都是独立的,就没有必要因为一个请求而做出影响整个视图的反 应。要使每个组件都具有向服务器传送信息的能力需要每个组建知道如何处理服务器传递 8 南京邮电大学硕士研究生学位论文 第二苹w e b 厦用技术 回来的信息。在k i a 中,客户端和服务器端交互数据可以是不同步的,这样你就可以控 制组件创建信息发送给服务器和处理服务器的响应,可以更为零散的控制程序的功能,降 低其间的耦合度并且组建面向服务的程序结构。 这种从传统一个个相对独立的w e b 页面为中心转移到以页面组件为中心的设计,使 客户层的设计提升到一个新的层次,并且会使客户层变得更加灵活。服务器不再以整个页 面为服务响应的最小“粒度 ,而是更小的页面单元模块。这同时也使程序的性能得以提 高。 当前主要的“富客户端 技术主要有m a c r o m e d i a f l a s h ,j a v a a p p i e r 以及a j 8 x 等, 并都有一些成熟的基于这些技术的r i a 系统应用,且当前以a j a x 的研究最为热点、应用 最为流行。 9 南京邮电大学硕士研究生学位论文第三章相关技术及理论研究 3 1 a j a x 技术 3 1 1 概述 第三章相关技术及理论研究 q a x 是异步j a v a s c r i p t 和x m l ( a s y n c h r o n o u sj a v a s c r i p t & x m l ) 的缩写,a j a x 不 是一种技术,而是几种技术合在一起形成的功能强大的新技术。在对其定义时,包含的内 容有【l 】: 基于x h t m l 和c s s 标准的普通内容表示: 使用文档对象模型( d o md o c u m e n to b j e c tm o d e l ) 进行动态显示和交互: 使用x m l 和x s l t 进行数据交换和操作; 使用x m l h t t p r e q u e s t ( 或x m l h t t p ) 与服务器进行异步通信; 使用j a v a s c r i p t 绑定一切; 它的核心理念在于使用j a v a s c r i p t 对象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 对象提供浏览器支持的是微软公司并在i n t e r a c te x p l o r e r5 中首次引入了该对象。微软在 1 9 9 8 年开发的w e b 版o u t l o o k 时就已经以a c t i v e x 控件的方式为x m l h t t p r e q u e s t 提供 了支持。但真正点燃a j a x 技术革命的还要算g o o g l e 公司推出的g o o g l em a p ,g m a i l 以 及g o o g l e s u g g e s t 等应用。基于a j a x 的这种w 曲异步通信特点,所以也可以说a j a x 创建 了一种新的体系结构,可以显著改变传统的w e b 应用系统的架构方式这种新的体系结构 的主要的核心要点如下: 1 较少的服务端事件:使用a j a x 技术w e b 应用中组件可以发出较小的请求,获取 少量信息,然后通过d o m 变换更新部分页面,而非刷新整个页面。 2 异步请求:浏览器在向服务器提交请求后,不会影响浏览器继续操作。用户可以 继续使用应用系统的其他部分,而u i 会更新以提醒用户请求已经发出。 3 请求的定制更加容易:可以根据用户的操作向服务器回传指令。浏览器捕获的大 部分用户事件如:鼠标单击,鼠标移过,键盘按下等任何用户事件都能够触发一个异步请 求。 显然a j a x 的核心优点在于可以构建具有桌面应用程序外观和交互能力的w e b 应用系 1 0 南京邮电大学硕士研究生学位论文 第三章相关技术及理论研究 统【2 1 。与传统w e b 系统相比,带给用户更好的使用体验。 3 1 2a j a x 特点 传统的w e b 应用采用同步交互过程,这种情况下,用户首先向w e b 服务器发送一个 请求,然后w e b 服务器根据用户得请求内容,执行相应得操作,并向用户返回结果( 如 下图3 1 所示【l 】) 。在用户发出w e b 请求后到服务器返回请求结果的这段时间内,浏览器 网页呈现“白屏 状态,只要是采用h t m l 进行的w e b 传输和展现技术,无论是基于哪 种服务器技术( a s p ,a s e n e t , j s p , p h p ) ,w e b 应用中采用的都是这种模式,见应用模型。 在网页需要更新内容较少,或者服务器处理时间较短的情况下,这种模式没有什么不妥, 但是,在服务器处理时间较长,或者页面需要更新的数据较少,又或者在人机交互较为频 繁的系统中,频繁的刷新整个页面就变得不够理想了。 图3 1 传统w e b 应用交互模型( 同步) 不同于传统的w e b 应用,a j a x 的原则是“按需取数据,它采用了异步交互的工作方 式( 如图3 2 所示【1 1 ) 。在w e b 显示和服务器之间引入了一个轻量中间层,从而改变了同 步交互过程中的“处理一等待一处理一等待的模式。图3 3 给出了传统w e b 应用模型和 a j a x 应用模型的比较 2 1 。后者在用户通过w e b 界面发起服务请求时,使用脚本代码装载 a j a x 引擎,该a j a x 引擎负责转发用户界面和服务器之间的交互,它允许用户和应用系统 之间的交互以异步的方式进行。 使用a j a x 有以下几点好处: 1 减轻服务器的负担。a j a x 的原则是“按需取数据 ,所以这样很大程度上减少了冗 余请求,降低了系统对网络的要求,减轻了服务器的负担。 l l 南京邮电大学硕士研究生学位论文第三章相关技术及理论研究 2 请求无需刷新页面。在读取大量数据时,不会像刷新页面那样出现“白屏”的情 况,a j a x 使用x m l h t t p r e q u e s t 对象发送请求并且得到服务器响应,在不重新载入整个页 面的情况下,可以使用j a v a s c n p t 操作d o m 更新页面。因此在读取数据的过程中,用户 所面对的不是白屏,而是原来的页面内容,只有在数据接收完毕后,才更新相应部分的内 容。增加了用户等待的心理承受能力和实际的等待时间。 3 可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理 相应工作,减轻了服务器的负担,并可以充分利用带宽资源。 4 进一步促进了页面显示和数据的分离,便于界面的组件化处理。 时 服务器 服务器处理服务器处理 n 赫n 一 问 数 谨薹e 呵kk五 矽 湖i 觜黎哼基 基墓 a j a x 引擎 尹ll 飞。 客户端钋理赫显 筛昂 | | f 显7 显 ,、,、,、 浏览器用户界面八弋八弋八f 。 用户撂住 图3 2 基于a j a x 的w e b 应用交互模型( 异步) 1 2 南京邮电大学硕士研究生学位论文 第三章相关技术及理论研究 用户浏览器 l 用户界面 j l h t t p请求嗍+ c s s 数一 r w e b 服务器 上t l 数据库 s e r v e r - - s i d es y s t e m 服务器 传统的w e b 应用模型 用户浏览器 用户晃面 j a v a s c r i p t 扣求h t m 争c s s 数据 a j a x 引擎 jl h t t p请求x m li发据 1r w e b 服务器 上t 数据库 s e r v e r - - s i d es y s t e m 服务器 引入a j a x 的w e b 应用模型 图3 3 传统w e b 应用模型和a j a x 应用模型的比较 可以看出q a x 为w e b 开发带来了新的设计思想,和传统的w e b 相比较,它相当于 在用户界面和服务器之间增加了_ 个中间层,使用户操作和服务器响应异步化,并不是所 有的操作都提交给服务器做只有确定需要从服务器读取数据时,再由匀a x 引擎代为向服 务器请求数据。利用a j a x ,可以使客户端得到丰富的应用体验和交互操作,同时中间层 的引入( 见图3 3 ) ,可以把一些传统由服务器承担的工作转嫁给客户端,充分调用客户端 的闲置处理能力。在这种状态下,胖客户与瘦客户之间的界限将不再分明。 3 1 3a j a x 核心技术 a j a x 主要包括7 项基本技术:x m l h t t p r e q u e s t ,d o m ,x m l ,j a c a s c r i p t ,c s s 和x s l t ,在这里限于篇幅,我们主要论述一下a j a x 开发核心的几项。 1 x m l h t t p r e q u e s t 对象 a j a x 的核心是x m l h t t p r e q u e s t 对象,正是基于该对象,浏览器可以实现无需刷新全 部页面即可向服务器传输或者读写数据。需要指出的是,最早应用x m l h t t p 组件的是 微软公司,为了让开发人员不用通过当前的w e b 页面导航而直接传输数据到服务器上或 者从服务器取回数据,在浏览器i e 5 以上通过允许开发人员在w 曲页面内部使用 x m l h t t p a e t i i v e 组件来扩展自身的功能。这样就可以减少w e b 应用下载冗余的h t m l 1 3 南京邮电大学硕士研究生学位论文第三章相关技术及理论研究 代码,提高服务器响应速度。作为回应,m o z i l l a ( m o z i u a l 0 以上及n e t s c a p e 7 以上) 创 建自有的继承x m l 代理类x m l h t t p r e q u e s t 类。k o n q u e r o r ,s a f a r i v l 2 ( 基于k h t m l 的浏览器) 以及o p e r av 7 6 x 及后续版本也支持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 对象和x m l h t t p 组件是很相似的,方法和属性也类似。表3 1 和表3 2 分别列举出了x m l h t t p r e q u e s t 对象的常用方法和属性: 表3 1x m l h t t p r e q u e s t 对象的常用方法 方法描述 o p e n c m e t h o d , ,u l u ,【a s y n c f l a g , u s c r n 柚 l c 【 建立对服务器的调用,m e t h o d 参数可以是g e t 。 ”p o s s w o r d q ) p o s t ,或p u t ,u r l 可以是绝对或相对u r l ,可 选参数分别为:a s y n c f l a g :是否非同步标记; i i s e r n a m c :用户名;p a s s w o r d :密码 s e n d ( c o n t e n t ) 向服务器发送请求 a b o r t ( ) 停止当前请求 g e t a l l r e s p o n s e h e a d e r s 0 将 盯r p 请求的所有响应酋部作为键值对返回 g e t r e s p o n s e h e a d e r ( h e a d e r l a b e l ”) 返回指定首部的字符串值 s e t r e q u e s t h e a d e r ( l a b l e ,。v a i u c ) 把指定首部设置为所提供的值,在调用该方法前 需调用o p e n 方法 表3 2x m l h t t p r e q u e s t 对象的常用属性 属性描述 o n r e a d y s t a t e c h a n g e 状态改变的时间触发器,每个状态改变都会触 发这个事件触发器 r e a d y s t a t e 对象状态:0 = 未初始化;1 = 正在加载;2 = - 已 加载;3 = 交互中;4 - - - - 完成 r e s p o n s c t c x t 服务器的响应,字符串 r e s p o n s e x m l 服务器的响应。x m l 格式,该对象可以解析未 一个d o m 对象 s m t u s 服务器起返回的 i r r p 状态码 s t a m s t e x l n 1 限状态码的相应文本 正如图3 3 中模型比较所示,使用a j a x 的应用模型,则需要在客户端构建a j a x 引擎。 1 4 南京邮电大学硕士研究生学位论文第三章相关技术及理论研究 一般需要进行如下设置:根据浏览器类型,生成x m l h t t p r e q u e s t 对象,建立对服务器的 调用,设定回调函数,发送服务请求等。 2 j a v a s c r i p t j a v a s c r i p t 是一种通用的脚本编程语言,最早称为l i v e s c r i p t ,由n e t s c a p e c o m m u n i c a t i o n s 和s u nm i c r o s y s t e m s 联合开发,并与n e t s c a p en a v i g a t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司美味大餐活动方案
- 公司爬羊台山活动方案
- 公司搬迁美食活动方案
- 公司旅游两天策划方案
- 公司春季出游活动方案
- 公司春游出行活动方案
- 公司汉服体验活动方案
- 公司组织韶山活动方案
- 公司环保日活动策划方案
- 公司游戏策划方案
- 贸易安全内部培训教材
- 沪科版七年级数学下册知识点
- TDSQL认证考试考题及答案-70分版
- 云南省大理白族自治州(2024年-2025年小学三年级语文)统编版期末考试(下学期)试卷(含答案)
- 2025年日历( 每2个月一张打印版)
- 2023年北京海淀社区工作者考试真题
- 2024年国开电大 高级财务会计 形考任务4答案
- 幼儿园中班数学活动课件:有趣的排序
- 2024年广东省惠州一中学英语七下期末达标检测试题含答案
- 2023-2024学年广西壮族自治区桂林市高二下学期期末质量检测数学试卷(含答案)
- 化妆品行业联合研发合同样本
评论
0/150
提交评论