




已阅读5页,还剩88页未读, 继续免费阅读
(计算机软件与理论专业论文)构件化新一代表示层设计开发技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 j a v ae e 是当前最为主流的企业应用体系架构之一,其多层设计思路与开放 的体系为企业应用的设计开发与维护提供了巨大支持,且在持久层,业务层,逻 辑层等各层均出现了非常成熟的软件设计框架与实现工具,但是,作为最终用户 直接使用,改动变化最为频繁的表示层却长期缺乏良好的设计框架与构件化的开 发平台,使得表示代码与逻辑代码难以明确分离,不能在异构的浏览器环境下提 供统一的用户体验,技术学习成本巨大,无法适应用户快速的需求变更 本论文正是针对上述问题,以x m l c 技术与e c l i p s ep l u g i n 等技术为基础,以 构件化设计的理念,对企业应用开发的表示层设计开发问题作了创新性和探索性 研究。主要研究内容为: 1 详细研究了x m l 编译器的思路及其技术实现,并创造了表示层运行期动 态链接的x a s 表示层引擎技术。 2 详细研究了现有主流的富客户端表示层技术,如a p p l e t ,a j a x 的基本 原理与现有框架,并在结合x m l c 技术和构件化设计思想的基础上,定制了统一 的x a s l 0 表示层构件包接口。 3 利用e c l i p s er c p 开发方式与p l u gi n 技术相结合,为表示层开发提供基本 的快速构件化表示层开发平台x a ss t u d i o 。 4 充分考虑了该平台的后期扩展性,为后续版本开发留下接口。 本文首先介绍了本研究的目标、相关背景、研究意义以及目前国内外表示层 开发技术的研究情况,分析了现代表示层设计方法与面临的挑战;而后结合作者 的一些工程项目实践和科学研究面临的实际问题提出问题域并以创新点为序依次 介绍了表示层的编译和x m l 动态链接引擎技术,构件化表示层接口规范体系设计 以及基于e c l i p s e 的开发环境重构。 本文最后对于已经实现部分的相关性能作了初步的测试,并对测试结果作了 简要分析,对未来的研究方向作出了展望。 关键词:构件,表示层,x m l c ,a j a x ,e c l i p s e a b s t r a c t a b s t r a c t i nt o d a y sw o r l d ,j a v ae ei so n eo f t h em o s tm a i n s t r e a mo f e n t e r p r i s ea p p l i c a t i o n a r c h i t e c t u r e i t sm u l t i l a y e r e da n do p e ns y s t e ma r c h i t e c t u r ef o r t h ea p p l i c a t i o n d e s i g n ,d e v e l o p m e n ta n dm a i n t e n a n c ep r o v i d e dt r e m e n d o u ss u p p o r t ,a n dh a sh a dm a t u r e f r a m e w o r ko ft h es o f t w a r ed e s i g na n di m p l e m e n t a t i o nt o o l si nt h ep e r s i s t e n c el a y e r , b u s i n e s sl a y e r , l o g i c a ll a y e ra n ds oo n b u ti np r e s e n t a t i o nl a y e rt h ee n d - u s e r sd i r e c t l y u s e dl a y e r , c h a n g e sh a v el o n gb e e nt h em o s tf r e q u e n ta n dl a c ko f ag o o df x a m e w o r kf o r t h ed e s i g na n dc o m p o n e n t - b a s e dd e v e l o p m e n tp l a t f o r m ,p r e s e n t a t i o nl c l g i cw i t ht h ec o d e i sd i f f i c u l tt oc l e a r l ys e p a r a t e , h e t e r o g e n e o u se n v k o n m e n ti nt h eb r o w s e rc a nn o t p r o v i d eau n i f i e du s e re x p e r i e n c ea n dt h ee n o r m o u sc o s t so ft e c h n o l o g i c a ll e a r n i n g m a k ep r o g r a m m e rw i l ln o tb ea b l et om e e tt h ed e m a n df o rr a p i dc h a n g e t 1 l i sp a p e rw i l la d d r e s st h ea b o v ei s s u e s b a s e do nx m l ct e c h n o l o g y , e c l i p s e p l u g i nt e c h n o l o g ya n dc o m p o n e n td e s i g n t h i n ka b o u tt h ee n t e r p r i s e - l e v e la p p l i c a t i o n d e s i g na n dd e v e l o p m e n ti s s u e sa n dm a k ei n n o v a t i v ea n de x p l o r a t o r yr e s e a r c h m a i n c o n t e n t sa r e 1 x m l cd e t a i l e ds t u d yo f d e s i g na n dt e c h n o l o g y 2 a j a xd e t a i l e ds t u d yo ft h eb a s i ct e n e t so ft h ee x i s t i n gf r a m e w o r k , x m l c t e c h n o l o g yi n t e g r a t i o n ,d e v e l o p m e n tx a s l 0p r e s e n t a t i o nl a y e rc o m p o n e n t s ,s h i e l d i n g b r o w s e rh e t e r o g e n e o u sp r o b l e m 3 e c l i p s er c pd e v e l o p m e n tm o d bw i t ht h eu s eo ft e c h n o l o g ya b o v e , s a i dt h e p r o v i s i o no fb a s i cl a y e rf o rt h er a p i dd e v e l o p m e n to fc o m p o n e n t - b a s e dd e v e l o p m e n t p l a t f o r mx a s s t u d i o 4 f u l l yc o n s i d e r e di nt h el a t es c a l a b i l i t yo ft h ep l a t f o r m , w a sd e v e l o p e df o rt h e f o l l o w - u pv e r s i o ni n t e r f a c e t l l i sa r t i c l ef i r s ti n 仃o d u c e dw i t ht h ea i mo ft h ep r e s e n ts t u d yi n d i c a t e dt h e p r e s e n t a t i o nl a y e r , c o m p o n e n td e s i g nt h e o r ya n dt h er e l e v a n tb a c k g r o u n da n d s i g n i f i c a n c e t h e nl a y e ro nt h ed e v e l o p m e n to f t e c h n o l o g ya th o m ea n da b r o a d ,s a i dt h e s t u d y ,s a i da n a l y s i so fm o d e r nd e s i g na n dd e v e l o p m e n tl e v e l ,a n dt h ec h a l l e n g e sf a c e d a n dp r a c t i c ea n dt h ea u t h o ro fan u m b e ro fs c i e n t i f i cr e s e a r c hp r o j e c t sa n dt h ep r a c t i c a l t t p r o b l e m s ,r a i s i n gq u e s t i o n sd o m a i n a n dt h e n , t h ep a p e r sk e yi n n o v a t i o n s :d e s c r i b e s t h eb a s i ct e n e t so ft h ex m l c o m p i l e rt e c h n o l o g y , c o m p o n e n t - b a s e ds u p p o r tf o rt h e e v e n t u a l d e v e l o p m e n t ;d e s c r i b e st h ec o m p o n e n tt e c h n o l o g yo ft h em a n yi d e a sa n d a j a xf r a m e w o r ka n dd i $ c u s st h ea d v a n t a g e sa n dh o wt ou s et h e s ef r a m e w o r k st ob u i l d c o m p o n e n tc o m p l e t ep a c k e tl x a s l o ;d e s e r i b e st h ef r a m e w o r ka n dt h ee c l i p s er c p d e v e l o p m e n t , d i s c u s s e di nd e t a i lh o w t ob u i l da no p e np l a t f o r mf o rt h ed e v e l o p m e n to f t h ec o m p o n e n t so f p r e s e n t a t i o nl a y e r s a tl a s ts u m m a r i z e st h et e x to ft h i sa r t i c l et o e x p l a i nt h em a i np r o b l e m sw i t h i n n o v a t i o n s ,a n df u t u r ew o r ki nt h ef u t u r e k e y w o r d s :c o m p o n e n t , p r e s e n t a t i o nl a y e r , x m l c ,a j a x ,e c l i p s e i i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:日期:年月 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘广允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:导师签名: 日期:年月日 第一章绪论 1 1 研究目标 第一章绪论 通过对当前w e b 表示层技术的研究,融合x m l c ,a j a x ,a p p l e t 等技术手段, 采用构件化的软件开发方法,创建新一代表示层开发技术及其引擎平台,并提供 相关构件包和技术文档的支撑,以显著降低w e b 应用表示层的开发复杂性,规避 多种浏览器的异构性,吸取c s 应用与开发过程中的优势,从而大幅提升开发效 率,有效增进w e b 应用的用户体验,提高w e b 应用的性价比,填补j 2 e e 架构中 表述业务交互的架构空白,以标准化自动化的作业方式,低成本、快速实现业务 交互层的用户需求,快速响应需求变化。 1 2 研究背景 1 2 1 软件构件化 在软件行业,生产一直受到效率低与质量控制问题的困扰。早期软件都是凭 借个人的聪明才智采用手工方式生产,效率低,成本高,开发大型系统的失败率 极高。据美国国家标准和技术研究院的一份报告显示,占据世界软件销售额8 5 的是大型的专用软件,而其开发的失败率却高达7 0 。正是在这样一个背景下, 软件构件化技术此时就应运而生。构件化技术的目的是彻底改变软件生产方式, 从根本上提高软件生产的效率和质量,提高开发大型软件系统尤其是商用系统的 成功率。有了软件构件之后,应用开发人员就可以利用现成的软件构件装配成适 用于不同领域、功能各异的应用系统。 其实,构件化的软件复用并不是一个新的概念,早在1 9 6 8 年n a t o 举行的首 次讨论软件工程的学术会议上就己正式提出。在这次会议上,构件化之父d m c l l r o y 发表题为“m a s s p r o d u c e ds o f t w a r ec o m p o n e n t ”,提出了建立生产软件构件的工 厂,重复使用软件构件构造复杂系统的建议。, 由于受到标准和计算能力的限制,构件化技术在在提出了几十年后并没有形 成一个比较成熟产业。相反,软件开发的主流方法在这几十年中先后被结构化的 电子科技大学硕士学位论文 软件开发思想和面向对象的软件开发思想所主导。然而,结构化的软件开发仅仅 停留在函数级的复用,大量函数的复甩,反而造成了系统结构混乱,效率低;面 向对象的软件开发技术,通过类、封装和继承等思想,实现了数据抽象和信息隐 蔽,达到了代码级的复用,但是由于复用的颗粒较低,软件复用的潜力远远没有 发挥出来。随着i n t e m e t 的发展和软件技术的发展,构件标准正逐步形成,计算能 力也已经不再是瓶颈,因此当前的软件开发思想,尤其是复用的思想,正逐步被 构件化开发思想所主导。基于构件技术的开发,将彻底打破上述结构化软件开发 和面向对象软件开发的固有模式,使得软件的开发完全可以构筑在“构件组装”的模 式之上。这样,软件技术人员可以摆脱“一行行写代码”的低效环节,直接进入“一 块块搭配构件”的更高阶段。这种新的生产方式,以“构件”取代“代码”成为软件的 “信息原子”( 基本结构单元) 。作为软件代码的集合,构件可以完成一个或多个功 能的特定服务,也为用户提供了多个接口。并且随着构件库的不断充实和完善, 灵活的构件、。集成式的软件结构,将把搭积木式的“组装软件”从梦想变为现实,实 现契合互联网时代应用需求的全部软件功能。 需要指出的是,基于构件的应用软件开发的核心问题是:如何提取可复用构 件以及如何组装成系统并能实现互操作,目前探讨的软件体系结构、构件模型, 均较为成功地解决了构件之间的接口的互操作性问题,但是对于具体领域的构件 化还处于研究和尝试阶段。近年来国际上各种软件公司正在开发各种中间件产品 或领域构件,但它们离集成应用软件所需要的构件还有很大距离,常常是不能拿 来就用。针对基于构件的应用软件开发过程,我国软件界前驱者提出以下三个阶 段的生命周期:第一阶段为需求获取,采用仿真办法,描述客观世界的人工系统。 第二阶段是分析客观系统,设计出逻辑系统,即所称的领域分析。第三阶段为系 统集成,找到合适构件类,将其生成实例,用过程控制语言描述出系统中的各子 系统;配置用户喜爱的操作界面;生成各种输入输出构件实例等。最后集成系统, 通过实际运行,不断修改,直到用户完全满意为止。这种方法也能适应今后系统 的演化,一旦领域软件系统形成后,在开发同一领域的应用软件时仅仅是第三阶 段的工作,用户自己可以来完成,维护工作也大大减轻。 值得指出的是,构件技术的研究正被许多国家的政府部门所重视,认为构件 技术是软件产业的发展方向而大力支持,美国总统信息顾问委员会向美国总统提 出构建“美国国家级构件库”的建议;美国空军电子系统中心与美国航空航天局 合作建立了“可复用防务软件的中央档案库”项目,以促进国防项目中的软件复 用;中国信息产业部也做出构建“中国国家级构件库”的决定。 2 第一章绪论 1 2 2 表示层技术 随着互联时代的到来和确立,整个软件行业正经历着从c s 结构到w e b 应用的b s 结构的巨大变革。“b ”,就是浏览器,负责用户界面;“s ”,即是指服 务器,进行业务逻辑的处理。采用b s 结构的应用系统,无需在客户端安装软件, 只要能上网,用户在任何地方都可以访问系统。 b s 之间是通过标记语言来完成信息的传递的。目前应用最为广泛的、实现信 息传递的就是h t m l 语言。需要指出的是,在h t m l 诞生的时候,并没有考虑到 页面动态变化的因素,因此它最初是作为一种描述静态文本的格式和技术为大家 所接受。但是,现今的w e b 应用程序是动态的,即它的内容随着用户的操作是动 态变化的,我们就必须对文档标记语言中的信息进行动态的更改,这种更改的方 法就被称为w e b 表示层技术。 在基于j 2 e e 架构的w e b 应用中,流行的w e b 表示层技术主要包括s e r v l e t ,j s p , t a g l i b s 。x m l c 和a j a x 。 s e r v l e t 、j s p 和t a g l i b s 作为传统的w 曲表示层技术,已经在许多大中型w e b 应用中取得了成功,并会在目前市场上继续被大量采用;订l c 是最近兴起的、 并获得大量好评的表示层技术,它从真正意义上实现了页面设计和程序逻辑的分 离;a j a x 技术,为基于b s 结构的应用提供了更加灵敏的、类似“桌面应用”的 用户界面。 1 3 国内外对比 目前市场上已经出现的、比较有影响力的表示层开发平台包括国内的e o s 、 国外的o p e n l a s z l o 平台和b e r y l x m l g u i 平台。 ( 1 ) 上海普元的e o s e o s 是上海普元软件开发公司针对不断变化的需求而设计的面向构件的中间 价平台。在这个平台的基础上,可以通过既有的一些构件的功能,来订制新的系 统。e o s 针对w c b 应用开发,推出了可视化页面开发平台e o sr i c h w e b 。 e o sr i c h w e b 提供了可视化页面开发与调试工具,从某种程度上来说使开发 人员从繁琐、复杂、费时的页面开发中得到了一定程度的解放。开发人员在某些 应用中可以通过“所见即所得”的对控件拖拉方式实现页面开发一设计视图模式。 ( 2 ) o p e n l a s z l o 可视化开发平台 电子科技大学硕士学位论文 o p e n l a s z l o 平台采用x m l 语法和j a c a s c r i p t 技术允许w e b 开发人员快速、简 单地构建出漂亮的w e b 应用程序。这些w e b 应用程序可以运行在当前任何流行的 浏览器与桌面操作系统。w e b 开发的简单性是o p e n l a s z l o 平台的一个最大特点, 一个中等规模的w e b 应用甚至只需要一个源程序文件就可以实现;其次,开发人 员在进行w e b 开发过程中可以将他们认为能够在以后开发中复用的代码片断封装 成构件的形式放入构件库中。 ( 3 ) b e r y l x m l g u i b e r y lx m lg u i 是目前在国外非常火热的、适用s w i n g 开发图形用户界面的 一个可视化开发平台;b e r y lx m lg u i 平台的理念就是让界面设计人员能够以零 件组装的方式进行界面的开发。它适用x m l 来存储用户界面。b e r y l x m l g u i 平 台能够避免把界面设计代码与程序逻辑代码混杂在一起。这种混杂在程序规模比 较小时还可以为开发人员接受,但是随着应用程序的增大,这种混杂会使源代码 变得不易阅读。应该说,b e r y lx m lg u i 平台在进行c s 结构应用程序的界面开 发上的成功,很大程度上得益于这种界面代码和程序逻辑代码的分离。 然而,就本项目提出的b s 应用的表示层构件化开发这一领域来说,上述三 个主流的构件化开发平台还不能满足当前b s 应用程序的开发,尤其是不能满足 b s 应用的快速开发要求。 ( 1 ) 不论是e o s 还是o p e n l a s z l o 平台,在进行表示层开发时,所选用的技 术仍然是传统的表示层技术,也就是不可能实现真正以上的页面设计和程序逻辑 设计的彻底分离,因而页面设计和程序逻辑设计不能够并行的进行。这种页面设 计和程序逻辑设计的耦合,会使大量的页面代码和程序逻辑代码穿插在一起,极 大地降低了代码的可读性和可维护性。前面提到,采用o p e n l a s z l o 平台进行w e b 开发时源程序代码是相当小的,开发人员依然抱怨在这些很小的源程序代码中, 有大量的页面代码和程序逻辑代码穿插在一起,反而降低了开发w e b 应用的效率。 ( 2 ) 从o p e n l a s z l o 平台目前提供的+ w e b 应用开发的功能来看是比较丰富的, 基本满足了一般信息系统开发的需求,并且允许开发人员自行开发可复用的界面 构件。但是,随着该平台使用的深入,开发人员开始抱怨他们他们找不到合适的 构件模型,这种自行开发大量构件的工作延缓了项目开发的进行。设计人员能够 自行往构件库中添加富有特色的构件这是二种好的机制没,但是,如果将完善构 件库的工作基本交由设计人员来完成,这反而会使设计人员感到苦恼和反感。 ( 3 ) 前面提到,b e r y lx m lg u i 平台避免了界面设计和程序逻辑代码的混合, 它实现了界面设计和程序逻辑设计实现了真正意义上的并行开发。但是,遗憾的 4 第一章绪论 是,b e r y lx m lg u i 平台的定位是c s 结构应用程序的开发平台,它并不能完成 当前非常火热的b s 结构应用程序的开发。 通过以上的分析,我们发现不论是e o s 还是o p e n l a s z l o ,虽然它们上已经有 了一定的客户群,但无论是从市场反响来看,还是通过对平台自身的分析来讲, 它们还不能被称为成熟的表示层构件化开发平台。这也正我们提出x a s 的初衷。 相比于e o s 和o p e n l a s z l o ,x a ss t u d i o 在实现表示层技术时,吸收并发展了 当今热门的x m l c 技术,创造了x a s 表示层引擎技术。基于x a se n g i n e 技术的 x a cs t u d i o 表示层开发,将页面逻辑的设计和程序逻辑的设计完全独立开来,页 面设计人员与程序逻辑编写人员可以并行的进行开发,程序逻辑设计人员不必关 心页面设计人员在后续开发中对页面作的任何改动,使得整个b s 应用的开发适 应快速的需求变化。其次,页面设计人员可以忽略浏览器差别而带来的需要特殊 处理问题或者多国语言支持问题,全部交由x a se n g i n e 去动态识别,链接,展现。 在构件化开发方面,我们吸取了o p e n l a s z l o 的教训,为w e b 应用程序开发人 员提供了丰富的构件化模型,这些构件中有类似c s 应用的界面构件,也有针对 b s 结构应用自身的界面特点所设计出来的构件。x a cs t u d i o 平台的构件库是在 分析了目前所有类型的b s 结构的应用程序的基础上开发出来的,因而适用于当 今市场上绝大多数类型的b s 应用程序表示层的开发。同时,库中每一类构件都 有统一的接口,使得开发人员在进行构件化开发时能够感觉的得心应手,体会到 构件化为它们带来的实质好处。除此之外,我们也吸收了o p e n l a s z l o 的优点,允 许设计人员将他们自行设计的、针对特定应用的构件添加一个自定义构件库中。 针对不少用户抱怨的采用e o sr i c h w e b 平台开发的应用程序的界面反应不如 c s 结构的应用程序界面灵敏的问题,x a cs t u d i o 采用了a j a x 技术和a p p l e t 技 术为基础。基于异步模式,浏览器就不必等用户请求操作,也不必更新整个窗口 就可以显示新获取的数据,从而为b s 结构的应用程序提供了灵敏的响应界面。 综合以上的分析和对比,可以很明显的看出,x a s 的设计理念是在吸取当前 表示层最为完善和成熟的表示层构件化开发平台优势的基础上,有效屏蔽了其存 在的主要问题。构件了较为先进的底层引擎和丰富的构件库,使设计人员“以搭 积木的方式进行b s 应用程序的开发”成为了可能,使得页面设计和程序逻辑设 计的实现了真正意义上的分离,页面设计和程序逻辑设计可以并行进行。 电子科技大学硕士学位论文 1 4 问题域 当前表示层开发技术及其开发过程普遍存在下面一些的问题; 开发人员不仅要设计h t m l 代码,还要编写j a v a 代码,不仅要实现业务逻辑, 同时还要考虑表示层的风格、样式方面的问题,把表示层和逻辑层的工作集中 到同一个开发人员身上,这必然增加开发人员的工作量。 表示层技术繁多,掌握这些技术的学习曲线比较陡峭,且开发难度也比较高, 但在工程实践中,最终用户要求修改最多的恰恰是表示层,缺乏统一的,构件 化的开发模式严重限制了生产效率的提高。 如果需要对系统进行本地化的操作,以及面对浏览器版本差异的问题时,需要 程序员本身具备非常专业的知识,且由于缺乏统一的解决方案件,运行过程中, 错误较多。 h t m l 代码与j a v a 代码,j a v a s e r i p t 代码在程序中交替出现且强耦合,使得代码 的可读性降低。,一旦逻辑有所变化,可能牵涉大量页面需要修改 1 5 关键创新点 本研究正是为了解决以上提到的在现在b s 企业应用中普遍存在的,表示层 开发问题而展开的,本研究创造并提出了一个比较完整的解决方案,包括解析并 展现表示层的动态表示引擎技术,表示层构件化开发的构件包设计,以及基于以 上基础量身定制的表示层开发调试环境,其主要创新点如下: 以x m l 编译器为基础,设计和开发了动态表示层引擎( x a se n g i n e ) 技术 该引擎可以将x m l ,x h t m l 文档按照规则编译为类对象,并在运行时通过 引擎动态的与修饰程序( d i s p l e t ) 连接,其有效解决了浏览器异构差异问题与数据 表示代码与逻辑控制代码有效分离的问题;且由于采用了预编译与多线程设计, 效率可略高于现有表示技术。 以构件化设计思想为指导,设计了全新的表示层构件包 该构件包在吸收标签技术优势的基础上,将构件化开发思想引入表示层开发 领域,设计了新的表示层构件包与构件包开发规范,其粒度大于现有的标签,可 以提供功能强大的表,树等c s 模式级别的构件,并为第三方开发提供了规范和 接口。 6 第一章绪论 设计了专门用于本表示层技术的集成开发环境 采用e c l i p s er e p 技术与p l u gi n 技术设计开发x a ss t u d i o 表示层开发平台, 该平台具有界面亲和力强,程序员学习周期短,可以与现有通用的e c l i p s e j a v a 开 发平台无缝衔接联合开发等优势。 1 6 本章小结 本章首先明确了本研究的研究目的与研究背景,并分析了国内外现有表示层 开发技术的优劣,在此技术上,提出了问题域与本研究的主要创新点,为后续研 究提出了纲领,也为本文后续章节的组织列出了提纲,本文后续三个章节将按照 创新点的顺序,依次叙述x a se n g i n e 技术,x a sc o m p o n e n t s 技术,以及x a ss t u d i o 技术的相关研究情况。 7 电子科技大学硕士学位论文 第二章x a se n g i n e 技术研究 x m l 技术的出现为w 研l dw i d ew e b 提供了一个强大的数据格式来表现各种 数据结构,x m l 可以用于表现文档、数据结构,以及任何有特殊要求的复杂符号。 当前,x m l 工具对于显示基于文本的文档已经非常成熟了,但是并没有工具可以 用于显示所有类型的x m l 文档,比如数学符号,图形,混合文档。x a s 引擎是 一个可以解决该问题的框架,它是一个通用的模型,通过一种机制将x m l 元素与 一个对应的修饰模型( 可将其称为d i s p l e t ) 关联起来,d i s p l e t 并非仅仅提供元素 可视化的功能,其还将与x m l 文档的行为绑定,提供对行为的反映和支持,同时, 绑定功能并非是静态的,而是动态的,绑定什么修饰程序不仅仅与x m l 元素有关, 还与浏览器,区域,性能要求等参数相关。本章我们将先介绍x m l 基础,然后讨 论x m l 编译器以及动态文档机制,并在此基础上提出x a s 框架,以解决表示层 设计,开发中存在的问题。 2 1x m l 及其相关标准 基于x m l 的架构体系是用于定义和验证x m l 数据的内容和结构的文档, 就像数据库架构定义和验证组成数据库的表、列和数据类型一样,其通过x m l 定 义( x s d ) 语言定义和描述x m l 数据类型,通过x m l 元素( 元素、属性、类型 和组) 定义数据类型的有效结构、有效数据内容和关系,并为属性和元素提供默 认值。使用x m l 架构可以保证应用程序和单位之间共享数据类型的一致性。因 此基于x m l 的架构体系被广泛用于分布式网络环境应用的设计开发中,在本研究 中也将x m l 及其相关技术标准作为一个基本点,以下将x m l 及其相关技术做一 个简单介绍。 2 1 1x m l x m l 是e x t e n s i b l em a r k u pl a n g u a g e 的缩写,即可扩展标记语言,是w e b 上 表示结构化信息的一种标准文本格式。x m l 同h t m l 一样,都来自s g m l ( 标准 通用标记 第二章x a se n g i n e 技术研究 语言) ,s g m l 是一种在w e b 发明之前就早已存在的用标记来描述文档资料的通用 语言,但s g m l 十分庞大且难于学习和使用,鉴于此,人们提出了h t m l 语言。 但近年来,随着w e b 应用的不断深入,h t m l 在需求广泛的应用中已显得捉襟见 肘,有人建议直接使用s g m l 作为w e b 语言。但s g m l 太庞大了,学用两难尚且 不说,就是全面实现s g m l 的浏览器也非常困难。于是w e b 标准化组织w 3 c 建 议使用一种精简的s g m l 版本“l 。x m l 与s g m l 一样,是一个用来定义 其他语言的元语言。与s g m l 相比,x m l 规范不到s g m l 规范的1 1 0 ,简单易 懂,是一门既无标签集也无语法的新一代标记语言。x m l 的具有的优良特性如下 所述: 可扩展性:x m l 允许使用者创建和使用他们自己的标记而不是h t m l 的有限 词汇表。企业可以用x m l 为电子商务和供应链集成等应用定义自己的标记语言, 甚至特定行业一起来定义该领域的特殊标记语言,作为该领域信息共享与数据交 换的基础。 灵活性:h t m l 很难进一步发展,就是因为它是格式、超文本和图形用户界 面语义的混合,要同时发展这些混合在一起的功能是很困难的。而x m l 提供了 一种结构化的数据表示方式,使得用户界面分离于结构化数据。所以,w e b 用户 所追求的许多先进功能在x m l 环境下更容易实现。 自描述性:x m l 文档通常包含一个文档类型声明,因而x m l 文档是自描述 的。不仅人能读懂x m l 文档,计算机也能处理。讧l 表示数据的方式真正做到 了独立于应用系统,并且数据能够重用。x m l 文档被看作是文档的数据库化和数 据的文档化。 简明性:只有s g m l 约2 0 的复杂性,但却具有s g m l 功能的约8 0 。x m l 比完整的s g m l 简单得多,易学、易用并且易实现。另外,x m l 也吸收了人们 多年来在w e b 上使用h t m l 的经验。 x m l 支持世界上几乎所有的主要语言,并且不同语言的文本可以在同一文 档中混合使用,应用x m l 的软件能处理这些语言的任何组合。所有这一切将使 x m l 成为数据表示的一个开放标准,这种数据表示独立于机器平台、供应商以及 编程语言。它将为网络计算注入新的活力,并为信息技术带来新的机遇。目前, 许多大公司和开发人员已经开始使用x m l ,包括b 2 b 在内的许多优秀应用已经证 实了x m l 将会改变今后创建应用程序的方式,其作用主要体现在: x m l 可以从h t m l 中分离数据,在不使用x m l 时,h t m l 用于显示数据, 数据必须存储在h t m l 文件之内;使用了x m l ,数据就可以存放在分离的x m l 9 电子科技大学硕士学位论文 文档中。这种方法可以让程序员集中精力去到使用h t m l 做好数据的显示和 布局上,并确保数据改动时不会导致h t m l 也需要改动。这样可以方便维护 页面。x m l 数据同样可以以“数据岛”的形式存储在h t m l 页面中。 x m l 用于交换数据,通过x m l ,可以在不兼容的系统间交换数据,在现实生 活中,计算机系统和数据库系统所存储的数据有n 种格式,则交换他们需要 n a n 种转化方法,对于开发者来说,最耗时间的十九在遍布网络的系统间交换 数据。把数据转化为x m l 格式存储将大大减少交换数据的复杂性,并且还可 以使得这些数据能被不同的程序读取。 x m l 可以用于共享数据,通过x m l 纯文本文件可以用来共享数据,既然x m l 数据是以纯文本格式存储的,那么x m l 提供了一种与软件和硬件无关的共享 数据方法,这样创建一个能够被不同的应用程序读取的数据文件就变得简单 了。同样,升级操作系统,服务器,应用程序,更新浏览器就要容易得多。 x m l 可以用于存储数据,利用x m l 纯文本文件可以用来存储数据,大量的 数据库可以存储到x m l 文件或者数据库中,应用程序可以读写和存储数据, 一般的程序可以显示数据。 x m l 可以充分利用数据,使用x m l ,数据可以被更多的用户使用,既然x m l 是与软件,硬件和应用程序无关的,所以可以使用自定义x m l 数据的程序范 文非常广阔,而并非标准的基于h t m l 的浏览器。 x m l 可以用于创建新的语言,x m l 是w a p 和w m l 语言的母语,无线标记 语言( t h ew i r e l e s sm a r k u pl a n g u a g e ) 用于标识运行于手持设备上的i n t e m e t 程序,但是并没有采用新的设计,而是在x m l 的优势上继承和裁剪。 2 1 2x h t m l x h t m l 是t h ee x t e n s i b l eh y p e rt e x tm a r k u pl a n g u a g e 的缩写,与h t m l 比 较相象,可以将其看作一个扮演着类似x m l 的,其出现的目的就是为了解决h t m l 所存在的众多问题,并作为一种从h t m l 到x m l 的过度。 h t m l 发展到今天存在三个主要缺点:不能适应现在越多的网络设备和应用 的需要,比如手机、p d a 、信息家电都不能直接显示h t m l :由于h t m l 代码不 规范、臃肿,浏览器需要足够智能和庞大才能够正确显示h t m l ;数据与表现混 杂,这样你的页面要改变显示,就必须重新制作h t m l 。因此h t m l 需要发展才 l o 第二章x a se n g i n e 技术研究 能解决这个问题。2 0 0 0 年底w o r l dw i d ew e bc o n s o r t i u m ) 组织公布发行了x h t m l 1 0 版本,与h t m i a 0 比较的主要作了如下限制与要求: 文档必须是编排良好的 元素和属性名必须小写 对非空元素,必须使用结束标签 属性值必须在引号中 无属性最小化 空元素必须有结束标签或以“胁“结束 属性值中的空白字符处理,用户代理程序将删去引导和后序空白符 i d 为唯一指定标识符,b r n l o 属性不被正式支持 x h t m l 规定具有两个一致性: 文档一致性:一个严格遵循x h t m l 的文档必须经过附x h t m l - 1 o - s t r i c t 、 x h t m d - 1 0 - t r a n s i t i o n a l 、x h t m l - 1 0 f r a m e s e t 三个d t d 之一的验证;文档的根 元素必须是 ;文档的根元素必须用x m l m 属性 x m l n a m e s i 指定x h t i v i l 名址。x h t m l 的名址在h t t p :w w w w 3 o r g 1 9 9 9 x h t m l 中定义:在根元素之前,必须有 一个d o 咖e 声明。 下面是一个最小的x h t m l 文档示例: v i r t u a ll i b r a r y m o v e dt o v l i b o r 2 电子科技大学硕士学位论文 用户代理程序一致性:一个遵从的用户代理程序必须必须能够分析和评估 删l 文档的编排良好性;如其宣称自己是一个带验证能力的用户代理,它还必 须依照x m l 文档引用的d t d 来验证文档;当用户代理程序宣称支持规范书定义 的功能f a c i l i t i e s 时,它必须按功能的定义来支持;当用户代理程序按一般的x m l 来处理x h t m l 文档时,它应当只将i d 类型的属性( 如多数x h t m l 元素的i d 属 性) 识别成片段标识符;如遇到一个不识别的元素,必须显示元素的内容。如遇到 一个它不识别的属性,必须忽略整个属性的定义( 即属性及其值) ;如遇到一个不识 别的属性值,必须使用属性的缺省值;如遇到一个实体引用( 不是预定义了的实体) , 用户代理程序没有处理过其声明( 如果声明是在用户代理程序没有读到的外部子集 中就会发生) ,实体引用应该以字符显示( 以& 符号开始,以半冒号结束) ,以编排成 实体引用。 2 1 3d o m d o m 即d o c u m e n to b j e c tm o d e l ( 文档对象模型) ,本文主要研究是w 3 cd o m , w 3 cd o m 可以看作是一个平台或语言中立的( 1 a n g u a g e n e u t r a l ) 界面,它允许程 序和脚本动态的访问以及更新文档的内容、结构、脚本程序,并提供了一组描述 h t m l 及札文件的标准对象和一个用来访问和操作这类文件的标准界面。 w 3 cd o m 分为3 部分( c o r e 核心。x m l , 和h t m l ) 及不同等级( d o m 等 级1 2 3 ) : 核心d o m 定义了一组可用于任何结构文档的标准对象。 x m ld o m 定义了一组x m l 文件的标准对象。 h t m ld o m 定义了一组h t m l 文件的标准对象。 d o m l e v e l1 :包含了一些接口,用于表示可从x m l 文档中找到的所有不 同类型的信息。还包含使用这些对象所必需的方法和属性。 d o ml e v e l2z 添加了名称空间支持,允许开发人员检测和使用可能适用 于某个节点的名称空间信息,还增加了几个新的模块,以支持级联样式表、事件 和增强的树操作。 d o ml e v e l3 :包括对创建d o c u m e n t 对象( 以前的版本将这个任务留给实 现,使得创建通用应用程序很困难) 的更好支持、增强的名称空间支持,以及用 来处理文档加载和保存、验证以及a t l l 的新模块。 x m ld o m 是x m l 的文件对象模型,其定义了一组x m l 标准对象,并定 第二章x a se n g i n e 技术研究 义了访问和控制x m l 文件的标准方式。x m l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国二苯基氯磷行业市场调查报告
- 2025年 中国铁路青藏集团有限公司招聘考试笔试试题附答案
- 2025年 锡林郭勒盟市级机关遴选考试笔试试题附答案
- 2024年中国钌粉行业市场调查报告
- 中国智能垃圾分类技术行业市场占有率及投资前景预测分析报告
- 写字楼可行性分析报告
- 2024年中国磷酸铵盐干灭火剂行业调查报告
- 2025年中国进口食品行业市场调查研究及投资前景预测报告
- 2025年中国电力巴士行业发展监测及投资战略规划研究报告
- 2024-2030年中国凳类家具行业市场深度研究及投资战略咨询报告
- 法律职业伦理试题及答案
- 2025年国家公务员考录《申论》真题及参考答案(行政执法卷)
- 2024珠海农商银行社会招聘笔试历年典型考题及考点剖析附带答案详解
- 2025年公路水运工程重大事故隐患判定标准
- 车间物料员员试题及答案
- 2025国内外虚拟电厂实践经验分析及高质量发展相关建议报告-国网能源院
- 锚杆锚固质量无损检测技术规程
- 老年痴呆健康知识讲座课件
- 2025年中考语文二轮复习:散文阅读 专题练习题(含答案)
- 云南楚雄州金江能源集团有限公司招聘笔试题库2025
- 高中生物2015-2024年10年高考真题专题分类汇编-专题14体液调节考点2激素调节的过程
评论
0/150
提交评论