




已阅读5页,还剩84页未读, 继续免费阅读
(计算机应用技术专业论文)xl+web服务平台的初步实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
x lw e b 服务平台的初步实现 摘要 当前,w 曲服务研究已经成为一个热点,相关的技术不断涌现,如:s o a p 、 w s d l 、u d d i 、x l a n g 、w s f l 等。这些技术大大推动了w e b 服务的发展, 也不断提出新的挑战。目前用于开发w e b 服务的语言通常是传统的编程语言 ( 如:j a 、,a 、c 拌) ,虽然这些传统语言功能强大,但要想使w e b 服务获得更好 的可扩展性、安全性、可靠性,使开发效率得到有效提高还存在定的困难。 为了在定程度上解决这些问题,d a n i d af l o r e s c u 等人提出了一种专门为实现 w e b 服务而设计的语言一一x m ll a n g u a g e ( x l ) 。本文从x m ll a n g u a g e 语言规 范出发,详细讨论了实现这种新语言的步骤和关键技术。 x l 语言专门为w e b 服务构建,它小巧轻便并且完全与w 3 c 标准( 比如 x o u e r y 查询语言、x m l 协议、x m l s c h e m a 等) 兼容。x l 的一个关键特征 是使程序员可以专注予应用程序的逻辑开发,而不需要纠缠干底层复杂的细节 ( 如通讯协议、数掘整合等) 。在语法上,这种语言提供了一种高层的、声明性 的语句编程风格,用具有这种风格的语句编程不仅可以实现啊曲服务的行为方 法( 比如日志、错误处理、工作量管理和事件等) ;还可以自动实现大部分性能 优化策略( 如缓存,平行处理等) 。基于以上这些特点,利用x l 语言进行w e b 服务开发,其开发效率、软伴陛能等方薅都可以得到明显讷提高。 本文在对x l 语言的语法、语义进行详细分析的基础上,提出了实现该语言 的体系结构,该体系结构是基于x q u e f y 查询引擎的,主要包含编译器和虚拟 机。对编译器和虚拟机的各个关键部分( 如语法树,上下文等) ,文章都做了详 细的分析。在这些理论基础之上,我们用j a v a 初步实现了用于编译运行该语言 的服务平台。作为一种尝试,语法树和语句树利用x m l 文档进行表示;服务 器按s e r v l e t 的方式进行设计;x l 程序的执行方式采用的是对x m l 文档进行 解释执行的方法。 由于x l 语言规范的制定还处于初期阶段,有很多不完善的方面,本文所实 现的平台也仅是个初级的模型,还有很多工作要做,所以文章最后对进一步工 作迸行了探讨。 x l 、b 服务平台的初步实现 关键词:w e b 服务;x m l l a n g u a g e ;程序设计语言;x q u e r y ;编译 l l 兰! ! 塑坚箜兰鱼堕望生兰塾 一 a b s t r a c t c u r f e n t ,w e bs e i c e sa r ev e r yp o p u l a ra i 】dc o r r e s p o n d i n gt e c h n o l o g i e s 印p e a r o n ea r e ra n o t h e r ( e g ,s o a p ,u d d i ,x l a ng ,w s f l ) w h 订ea i ic h e s et e c h n 0 1 0 9 i e s 伊e a t l ya c c e l e r a t et h ed e v e l o p m e n to fw e bs e r v i c e s ,t h e yc o n s t a n t l yp u tf o r w a r dn e w c h a l l e n g e s t h ep r o g r a m m i n gl a n g u a g eu s e dt od e v e l o pc u r r e n tw e bs e r v i c e s a r e a l m o s tt r a d i t i o n a lp r o g r a m m i n gl a n g u a g e ( e - gj a v a ,c 群) t h e ya r ep o w e r f u i ,b u tt h e y 啪te n a b l et h ew 曲s e r v i c e st oa c h i e v eh i g hs c a l a b i i i t y ,s e c u r i t ya n da v a i l a b i l i ty , a l l dt oi n c r e a s e 印p l j c a t i o nd e v e l o p e r s p r o d l l c t i v i t y lj no r d e rt os o l v ea b 。v e p r o b l e m si nac e r t a i nd e g r e e ,t h i sa r t i c l ed e s e r i b ean e wp r o g m m m i n gl a n g u a g e d e s i g n e df o rt h ei m p l e m e n t a t i o no fw 曲s e n r i c e s ll a n g u a g e ( x l ) w h i c hw a s p r o p o s e db yd a n i d af l o r e s c u b a s e do nt l l er e p r e s e n t a t i o no fx m ll a n g u a g e ,t h i s a n i c l ed e s c r i b e sm e 蛐e p sa n dk e yt e c h n o l o g i e so fi m p i e m e n t a t i o no ft h i sn e w p r o g r a m m i n gl a i l g u a g e x li sd e s i g n e df o r 协ei m p l e m e n t a t i o no fw 曲s e r v i c e s x li sp o r t a b l ea n df u l l y c o 翔p l j a n 、v 主t hw 3 cs t a ;l l d a r d ss u c ha sx q u e 踢x m lp r o t o c o l ,a 1 1 dx m l s c h e m a o n eo ft h ek e yf e a t u r e so fx li st h a ti ta l i o w sp r o g r a m m e r st oc o n c e n t r a t eo nt h e j o g i co f m e l r 印p i i c a t i o ni n s t e a do f i o w - i e v e lt h j n g ss u c ha sc o m m u n i c a t i o np r o t o c o l a n dd a t ai n t e g r a t i o n x lp r o v i d e sh i g h l e v e la n dd e c l a r a t i v ec o n s t r u c t sf b ra c t i o n s w h j c ha r et y p j c a i j yc a 删e do u ti nm ej m p i e f n 锄t a t j o no f aw 曲s e n ,i c 爿e g ,l o g g i n g , e 邶rh a n d l i n g ,w o f k l o a dm a 工l a g e m e n t ,e v e n t se t c i s s u e ss u c h8 sp e r f o r n l a n c e t u n i n g ( e g ,c a c h i n g ,h o r i z o n t a lp a r t i t i o i l 王n g ,e t c ) a l s oa f ec 谢e dd u ta u t o m a t i c a i l y b ya ni m p l e m e n t a t i o no ft h el a n g u a g e 1 1 1 i sw a y ,t h ep m d u c t i v i t y o ft h e p r o g r a m m e r s ,t h ea b i l i t yo fe v o l u t i o no ft h ep r o g 删m s ,a l l dt h ec h a n c e st oa c h i e v e 9 0 0 dp e 、0 m l a i l c ea r es u b s t a n t i a i i ye l l l l a n c e d a n e rt h es y n t a xa l l ds e m a n t j c s0 fx la r ed e s c r i b e d i t sa r c h i t e e t u r ei sp r o p o s e d t h ea r c h i t e c t u r ei sb a s e do nt h eq u e r ye n g i n eo fx q u e f ya n di ti sc o m p o s e do f x l c o mp ij e fa n dx l v i r t u a lm a c h i n e t h ea r t i c l ep r e s e n t st h ed e t a i l e d8 n a l y s i so f k e yp a n si nx l - c o m p i l e ra n dx l v i n u a lm a c h i n e ,s u c ha ss y n t a xt r e e ,c o n t e x te t c l x lw e b 服务平台的初步实现 o nt h eg r o u n do fa b o v et h e o r i e s ,ap l a t f o 肿w h i c hc o m p i l e sa n dr u nx li sp r i m a r i l y i m p l e m e n t e db yj a v a a sa na t t e m p t ,s y n t a xt r e ea n ds t a t e m e n tt r e e8 r er e p r e s e n t e d b yx m l ;s e r v i c ei sd e s i g n e db yt h ew a yo fs e r v l e t ;t h e 、v a yo fe x e c u t i o no fx l i s t h ew a yv v h i c hx m ld o c u m e n t sa r ei n t e i p r e t e da n de x e c u t e d t h es p e c i 6 c a t i o no fx li sj u s tt h e 矗r s tv e r s i o na n dh a sal o to ff a u l t i n e s s ,t h e p l a t f o m li m p i e m e n c e db yj a v ai sa i s oj u s tae i e m e n t a r ya n dc o a r s em o d e i t h e r ea r e a1 0 to f w o r k st od o s oa tt h ee n do f t h i sa r t i c l e ,r e i a t e dm f t h e rw o r k sa r ed i s c u s s e d k e yw o r d s :w 曲s e r v i c e s ;x m ll a l l g u a g e ;p r o g r a m m i n gl a n g u a g e ;x q u e r y ; c o m p i l e 独创性声明 v 7 6 s 6 3 7 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获 锹善俄其他教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示谢意。 学位论文作者签名 缪荔出 签字日期:j 。穆年,月。日 学位论文版权使用授权书 本学位论文作者完全了解施法茎有关保留、使用学位论文的规定 有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和 借阅。本人授权客终天药以将学位论文的全部或部分内容编入有关数据库进行 检索,可以采用影印、缩印或扫描等复制手段保存,汇编学位论文 ( 保密的学位论文在解密后适用本授权书) 学位论文作者纭劣毒以 签字日期:沙哆年j 月,奄日 学位论文作者毕业去向 工作单位: 通讯地址: 导师獬:物曹 u 签字日期: 矽钟多年j 月e 日 电话 邮编 第一章引言 第一章引言 1 研究背景与动机 1 1 1 计算机技术发展与w e b 服务 最近几十年来,信息处理技术飞速发展,编程领域与硬件技术方面的变革 带来了更为强大更为有用的技术。 2 0 世纪6 0 年代,软件开发工作比想象的要复杂得多,通常无法按期完成, 成本大大超过预算,最后的产品还不可靠。到了7 0 年代,为了使生成的程序清 晰、正确和易于修改,产生了结构化编程的思想。这种思想与同一时期产生的 相关学科结构化系统分析与设计,使得软件技术有所改进。到了2 0 世纪8 0 年 代和9 0 年代广泛使用面向对象编程技术之后,软件,1 :发人员彳最终得到大大改 进软件开发过程的工具,使得软件开发不再是一种折磨,生产率也得到了很大 的提高。这种面向对象编程不像过程性编程那样所开发的代码复用性差,它可 以将代码组织和包装成粪,便于复用软件组件,开发人员可以将类组织成类库, 然后提供给开发其他项目的开发人员。 随着网络的发展,大型应用程序通常要在不同的计算机上进行并发工作, 这就产生了分布式系统。为了让分布式系统正确工作,整个网络中不同计算机 上执行的应用程序组件( 通常包装成编程对象) 要进行通信。许多公司和组织 开发了自己的分布式组件通信技术。比如,o m g 的公用对象请求代理体系结构 ( c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ,c o r b a ) 、微软公司的分稚式组 件对象模型( d i s t f i b t l t e d c o m p o n e n t o b j e c t m o d e l ,d c o m ) 、s 斛公司的i n t e m e 对象请求代理间协议上的远程方法调用( r m i 1 1 0 p ) 和i b m 公司的分布式系统 对象模型( d i s t r i b u t e ds y s t e m0 b j e c tm o d e i ,d s o m ) 等,这垡技术的都能使不 同语言、不同实现版本和不同地点的程序能够象在同一计算机上一样进行通讯。 但是这些技术之间的相互操作性( 与不同厂家和平台的软件之间共享数据和相 互通信的能力) 非常有限。例如,两个最流行的技术d c o m 与c o r b a 就很难 相互通信。d c o m 与c o r b a 组件通常通过c o m c o r b a 桥进行通信的。如 x lw 曲服务平台的初步实现 果d c o m 与c o r b a 的基础协议发生变化,则编程人员必须修改这个桥,反映 所做的改变。这些问题影响了分布式计算絮助业务过程集成与自动化的能力。 随着万维网的出现,应用程序的运行环境一下予扩大到全球几亿台计算机 之间,电子数据交换在这样的情况下出现。许多公司利用电子数据交换 ( e l e c t r o n i cd a t ai n t e r c h a n g e ,e d i ) 技术连接业务伙伴,帮助管理供应链。但是 e d i 系统不是标准化的,因此与多个客户和伙伴丌展业务的供应商与经销商可 能需要在每个关系中使用不同的e d i 连接。另外,e d i 系统很难维护,因为它 们是驾翁褐釜的。 为了克服以上所说的一系列缺陷,w e b 服务出现了,w e b 服务扩展面向对象 模式,使对象可以表示成、v e b 服务。每个w e b 服务都是一个自我包含的对象, 可以在其他应用程序中复用。另外,w 曲服务建立在开放标准之上,因此遇到 的不兼容问题很少。它通常利用i n t e r n e t 和w c b 协议进行操作,扩展w e b 功能, 包括计算机程序之间的直接通讯,即使这些程序用不同语言编写,在不同平台 上运行。所以理论上,w e b 服务可以让任何两个软件组件相互通信,不管组件 用什么技术生成,放在什么平台上。总之w e b 服务给企业带来了以下几方面的 好处。 w 曲服务使用开放标准,使不同语言和不同平台的组件可以互相通信。 w 曲服务能促进模块化编程方法,使公司可以复用同一u 曲服务与多个公 司通信。 w e b 服务的实现比较便宜,因为它们用现有基础结构( 如w e b 网络) 交换 信息。 w 曲服务可以大大减少企业应用集成( e a i ) 和企业对企业( b 2 b ) 通信成 本,从而为公司带来实在的投资回报。 w 曲服务可以递增实现,而不是一次性完成。这样可以减少采用w c b 服务 的成本,减少技术切换造成的公司混乱。 虽然w e b 服务带来了许多好处,但同时也给应用程序丌发人员和i t 人员带 来了许多挑战。这些挑战主要有以下几个方面。 推动w e b 服务的s o a p 、w s d l 和u d d i 标准还没有最终标准化 w 曲服务没有安全过程,它使用的s o a p 协议设计时没有提供安全性,许 第一章引言 多公司不敢在防火墙之外采用、v e b 服务。 服务质量( q o s ) 问题。调用w e b 服务之前,客户通常要验证这个服务是否 能够满足预期需要。w e b 服务的服务质量问题包括响应时间慢、更新不及 时和无法处理大量请求等。 1 1 2w e b 服务相关语言研究现状 为了更好、更方便地实现w e b 服务,当前各大公司纷纷推出自己的语言, 比如说i b m 的w s f “16 1 ,h p 的w s c “ ,微软的x l a n g 踟和由b e a 、i n t a l i o 、 s a p 和s u n 共同组成的小组开发的w s c i 。 w s f l 用于描述如何由现有w e b 服务构建新的w e b 服务来实现业务处理。 它的构建方式可分为两种:说明业务处理的逻辑流程。定义参与构建的w e b 服务之间如何进行交互。由此可见w s f l 是一种描述w e b 服务如何组合的x m l 语言。为了更好说明它的这种基于数据流韵特征,下两介绍几个重要概念。 流模型:描述如何利用现有的w e b 服务提供的功能来组合成新的w e b 服务, 也就是所谓的流组合。在这种情况,w s f l 采用的是对这些现有w e b 服务 提供的功能的执行顺序迸行建模,其中执行顺序是通过在w e b 服务之间定 义控制流连接和数据流连接来实现的。流模型具有很多优点,尤其在对基 于、v e b 服务的业务处理的建模上非常有效。 全局模型:它不提供一个执行顺序的规范说明,而是提供组成的w e b 服务 如何进行交互的描述,这些交互被建模成参与组成的、e b 服务端点接口之 间的链接,每个链接对应到一个接口操作,所谓的接口操作就是一个w c b 服务使用另个w e b 服务提供的功能时所发生的调用。 递归组合:w s f l 对功能进行了扩展使得可以对w e b 服务进行递归组合, 在w s f l 中每个通过组合而成的、v e b 服务( 流模型或全局模型) 本身都可 以成为一个全新的w c b 服务,它也可以成为组成另一个、v e b 服务的组成成 分。 层次与点对点的交互:参与组合的、v e b 服务之间的交互模式几乎都得到 w s f l 的支持,尤其是层次交互和点对点交互。层次交互在参与者之间具 x lw e b 服务平台的初步实现 有相对稳定、长期的关系时比较常用;而点对点的交互则常用于关系不稳 定、常被动态建立的情况。 从以上可看出,w s f l 是一种x m l 语言,但是x l a n g 却更像是一种协议 规范。x l a n g 是用来跟踪通讯协议的执行状态和监视处理在消息流执行过程 中产生的协议错误。x l a n g 除了可以对、v e b 服务提供的接口进行描述之外, 还可以定义消息接收后的执行行为,这些执行行为和具体的商业数据无关,比 如说对于定单购买的协议。卖方有个可以接收定单和验证信息的服务,当服务 端接收到请求的时候,要判断是接受定单还是不接受( 比如没有库存的时候应 该拒绝接受) 。显然服务端所进行的判断对外部来说是不透明的,然而,我们希 望这些判断执行在外部的通信协议中要有所反映,也就是说,协议要求具有类 似于用于决定商业行为的s w i t c h 结构,只是判断条件是不透明而已。具体的规 范说明见文档 1 8 】。 本节简单介绍了w s f l 和x l a n g 语言的关键特征,对于其他的语言可参 考相关文档。总之,这些语言都直接支持x m l 和w e b 服务规范,但它们都只 是在现有的w e b 服务上进行的一种扩展和延伸,只能对现有的w e b 服务进行集 成,而且还要经常借助其他语言( 如j a v a ) 的帮助,单纯靠这些语言是不能进 行、v e b 服务行发的,由此可见它们不是一种专门用柬开发w 曲服务程序的语言。 我们希望能有这么一种专门为开发w e b 服务而设计的语言,利用这种语言,丽 不需要借助其他传统语言语言的帮忙就可以实现复杂的w e b 服务。 1 2 当前w e b 服务存在的一些问题 w e b 服务已经被认为是i n 把m e t 上开发应用程序和集成现有应用的种新方 式。它的基本思想是独立的软件组件通过交换x m l 消息来达至通讯的目的a 这种技术在跨机构的业务处理上是非常有效的,比如客户关系维护,供应链管 理。电子商务,在线购物和在线游戏等。迄今为止,大部分w e b 服务都是用j a v a 来实现的。甚至有的w c b 服务是各种范例的混合体,这些范例不可避免地包含 了逻辑上独立、代价上昂贵、还易于出错的中间过程处理。 造成这种结果的一个最主要原因是x m l 的类型系统与j a v a 的类型系统不 4 第一章弓i 亩 兼容。这种不兼容直接导致需要在业务逻辑中加入大量的整合代码对x m l 数 据和i a v a 对象进行相互转换。 j a v a 的另一个缺点是在以网络为中心的环境中并不总是擅长处理服务需求 质量等问题。更进一步说,是需要添加大量的像日志、数据存取,安全性、授 权、事务支持等附加功能,这些功能都不是 a v a 丌发工具包的内容。为了克服 这些缺点,j 2 e e 已经被设计成i a v a 的拓展来提供大量的附加功能,然而j 2 e e 类型系统仍然和x m l 类型系统不致,另外j 2 e e 是个相当复杂的编程模型, 而且新的技术不断增加进来,不是一种能快速学习和使用的技术,所以它没有 j a v a 那么流行。 所阱基于这些传统编程语言( 如:j a 、,a 、c # ) 和技术建立起来的x m lw e b 应用程序不可避免地必须处理以下情况: x m l j a v a 的不匹配:在x m l 数据能被j a v a 程序处理之前,它必须转换 成j a v a 对象( 或其他语言的内部表示形式) ;类似的,处理结束之后,j a v a 对象必须转换回x m l 数据。 j a v a 一数据库的不匹配:j a v a 对象必须经过象j d b c 【2 0 l 一样的接口来回整合 才能达到对数据厍韵存取与更新。 除了以上叙述的两种不匹配外。程序员还面临着另外个严重影响、阮b 服 务效率和性能方面的问题:在应用层中,经常混合进一些语义上完全和业务逻 辑不一致的行为动作,给升级带来困难,比如在一些程序中将底层协议、数据 验证、数据转换、数据清除、性能优化方面的代码和实际的应用逻辑代码混合 在一块,当增加或者改变用户需求时,编程人员往往不得不重写大量代码:如 果数据量大大增加或负载增加时,性能将难以保证。 为了消除这种缺陷或尽量克服它们的不足,一系列的的编程语言陆续被提 出并实现,比如前面提到的w s f l ,w s c l ,x l a n g 和w s c i 。但他们所实现 的功能并没有比采用i a v a 所带来的更加的强大和丰富。 2 0 0 2 年d a l l j d af 1 0 r e s c u 等人提出了x e ,语言规范草案,该语言目前还处 于起步阶段,但从需求中可以看出它在一定程度上可以简化以上问题处理。x l 直接支持“l 、其他的w 3 c 标准以及w e b 服务规范。和 a v a 一样,x l 提供 了一个非常强大的编程模型:实际上,大量的语句语法( 如循环、条件等) 均 x l 、v e b 服务平台的初步实现 采纳于j a v a ,另外x l 也象j a v a 一样非常轻便、易于使用,而且还为常规的一 些工作如日志、安全等提供高层的编程模式,程序员可以直接使用这些模式, 不仅可以提高开发效率,还使得程序易于维护。 x l 的实现集合了计算机不同领域的技术,尤其是数据库系统2 ”、编译原理 【2 3 1 【2 4 1 、分布式系统和数据流方面的技术。在开发中使用的是声明性的、高级的 编程风格,通过这样一种高级的编程方式,扩展性、高效率、安全性及w e b 服 务的质量都可以得到较好的保证:在执行中x l 程序被转化成个核心的、基 本的语句集,接着进行优化,然后以动态的、灵活的方式解释运行。但是利用 i a v a 语言和当前的中间件架构是很难保证这些性能的,因为在这样的程序模型 中,抽象的级别太低且对库函数的调用是黑盒操作,不能被优化。总之,一种 类似x l 的、抽象级别较高的编程模型不仅能大大提高程序员的效率,还能提 高性能和降低管理及操作成本。 1 3 研究重点和主要内容 本文以安徽省教育厅自然科学研究项目一x q u e r y 引攀及基于x q u e r y 的 信息集成软件开发工其包研究为背景,以d a n i d af i o r e s c u 提出的关于x l 的 规范和实现构想为基础,对它进行了扩展并实现,目的在于要使得用x l 开发 的w 曲服务具有有以下优点: 通过高级的编程方式替代常规的方式来提高程序员的开发效率。在过去, 程序员进行程序编写的时候,除了要实现业务逻辑外,往往还要兼顾其他 像日志管理、事务等这些琐碎但重要的功能。举个简单的例子,如果某个 程序要对远程的计算机进行访问,那么程序员除了实现本身的业务逻辑外 还要对通讯协议进行编程,这样的开发效率最然低下。后来为了简化程序 员的负担,出现一些现成的组件或包,只要程序员稍加修改、配置就可以 直接拿来使用,这在一定程度上确实提高了开发效率。但现在我们试图通 过这种高级的、声明性的编程方式,达到屏蔽底层的细节柬进一步简化程 序员的工作,使得开发效率得到更进一步提高。 获得,e b 服务的高安全性,扩展性和有效性。w e b 服务模型本身就要求是 矗 第一章0 l 言 个良好的、高度分布式的、面向服务的体系结构,而且随着业务的发展, 一个w e b 服务要能够易于扩展、升级。所以高安全性、扩展性和有效性也 是目标之一。 与所有的w 3 c 标准( 比如x m l 、s o a p 、w s d l ) 兼容,这样基于x l 的 w e b 服务就可以跟用其他语言编写的w e b 服务交互。为了优化x l 程序, 除了借鉴w e b 服务的相关技术外,我们还借鉴了数据库系统、编译器构造, 数据流等设计技术。 根据以上这些目标,本文研究重点主要在以下几个方面。 语言规范自身的复杂性;目前x l 还处于开始阶段。对于这样个目的在于 建立w e b 服务的语言,其所包含的技术和规范是我们研究的主要内容。x l 语言是为了方便程序员使用。但又不失功能的丰富和强大,它采用一种高 层次的、说明性的语句来表达编程者“我要做什么”,所以,如何把用户所 表达的高层次的抽象语义转化为可被计算机处理的规范化的语义信息,是 该语言编译实现的一个难点。 数据模型的讨论;为了实现以上x l 的一系列目标,必须要有一个方便使 用,功能强大的数据模型的支持,这样的数据模型的支持必须依赖于一整 套完整的代数体系结构。由于x l 是对x q u c r y 的一种扩展,所以除了构建 x l 自身的数据模型,还应该结合x q h e r y 的数据模型,所以对x q u e r y 数 据模型必须进行一些修改,使得它除支持除查询功能外,还支持对x m l 树 进行插入、删除、移动、重命名和替换等更新操作。 x l 中w e b 技术的探讨:、e b 服务立足于i n t e r r 擒t ,是一种分布式的、面向 服务的体系结构,为了使x l 具有较强大的网络功能和基本的w e b 服务功 能,我们借鉴其他一系列的技术( 如:数据流,分布式系统) ,对这些技术 的分析讨论也是本文的一部分。 优化:要作为一种w 曲服务平台,效率非常重要。在论文最后,根据系统 的体系结构和性能分析结果对x l 平台代码的优化做了简单的阐述;另外由 于x l 实现是基于师兄谢铉洋完成的x q u e r y 查询引擎来1 2 封实现的,所以还 对x q u e r y 的优化提出了一些看法。 x lw e b 服务平台的初步实现 1 4 论文的成果和组织 本文通过讨沦对x q u e r y 进行扩展得到的x l 语言的方方面面,主要在以f 几个方面获得一定的研究成果。 1 对当前w e b 服务的技术进行讨论,给出了发展w e b 服务所面临的一些问题, 以及这些问题如何解决的一些办法。为以后研究做了一些探索往的工作。 2 讨论了x l 语法语义,描述了这种新语言- 的提议草案,为发展、v e b 服务提供 了一些想法,为设计者提供一种理论模板。 3 基于该x l 语言规范,提出了种体系结构,并初步实现了浚体系结构。 4 为x l 语言服务器进行性能分析,给出了一些优化策略,为今后的工作打下 基础。 本文的组织方式如下: 1 第二章:介绍了什么是w e b 服务以及相关的重要技术。 2 第三章:重点介绍了x l 语法语义,用x l 语言书写的w 曲服务的特点、结 构,说明了用这么一种语言可以让程序员只关注业务逻辑的实现过程,而不 需要关注或花太多的精力关注些较底层的细节。 3 第四章:对x q u e r y 查询引擎的体系结构、x q u e r ) r 的数据模型进行简单的 介绍,然后重点介绍了x l 语言的设计原则、数据模型,以及提出x l 体系 结构模型并对该体系结构模型进行分析解释,说明各个部分的功能特点,最 后举了一个例子程序。 4 第五章:给出词法语法分析过程,介绍采用的语法词法分析器,并给出了 x l 语法范式。最后介绍语法树的结构特点。 5 第六章:本章主要是对x l 虚拟机在运行时涉及到的各个模块( 比如上下文, 语法树,语句树,管理模块) 进行分解分析重点是在分析它们如何被实现。 6 第七章:给出服务器的设置步骤以及客户端调用手册,分析他们交互的消息 格式及规范。最后还对性能进行了简单分析。 7 第八章:总结全文,指出进一步研究的方向。 8 第二章w c b 服务概述 第二章w e b 服务概述 2 1 什么是w e b 服务 w e b 服务是一段位于i m e m e t 上的业务逻辑,可以通过基于标准的i n t e r n e t 协议( 如,h t t p 或s m t p ) 访问。使用w e b 服务可以象登录到一个站点那么 容易,也可能像解决一个多组织商业谈判问题那么复杂。w e b 服务的出现改变 了企业应用集成的模式,使传统的静态集成转变成动态集成。 以下归纳总结w 曲服务具有的行为特征: 基于x m l :通过使用x m l 【lj 作为所有w e b 服务协议和新技术的数据表示 层,这些技术就能够在核心层具备互操作能力。而在数据传送中,x m l 消 除了协议特有的网络、操作系统以及平台绑定限制。 松散耦合:w 曲服务的用户不直接与w e b 服务关联,w e b 服务接口能够随 时变化,而不会降低客户和服务交互的能力。紧密耦合的系统是指客户和 服务器在逻辑上紧密地相互结合,如果一个接口改变,另一个也必须更新。 采用松散耦合体系结构使软件系统更加便于管理,并且使得不同系统间的 集成更加容易。 粗粒度:面向对象的技术( 如j a v a ) 通过独立的方法暴露其服务。独立的 方法是过分细化的操作,以至于不能在一个共同的级别上提供有用的能力。 从头开始创建个j a v a 程序需要创建几个细粒度的方法,然后将这些方法 组合成由客户或其他服务使用的粗粒度服务。这些方法暴露的业务功能和 接口应该是粗粒度的。w 曲服务技术提供了一种定义粗粒度服务的方法, 这些服务可访问适量的业务逻辑。 同步或异步的能力:同步是指将客户绑定到服务的执行。在同步调用中, 客户在继续执行前要阻塞并等待服务完成其操作。异步操作则允许客户激 活服务然后运行其他功能。异步客户在稍后的时削点上获取其结果,而同 步客户在服务结束的时候获取其结果。异步能力是启动松散耦合系统的 个关键因素。 譬 x lw e b 服务平台的初步实现 r p c 支持远程过程调用:w e b 服务允许客户使用基于x m l 的协议调用远 程对象上的过程、函数和方法。远程过程暴露w e b 服务必须支持的输入和 输出参数。w e b 服务通过提供它自己的服务( 这些服务和传统的组件的服 务等价) 或将传入的调用转化成对e 帕或者n e t 组件的调用柬支持r p c f 2 】。 支持文档交换:x m l 的主要优点是它不仅是数据的通用表示方式,也是复 杂文档的通用表示方式。这些文档可能很简单,比如在表示个当前地址 的时候;同时也可能是复杂的,比如在表示一本书籍信息的时候。w 曲服 务支持文件的透明交换,极大地方便了业务集成。 2 2 相关的x m l 和w e b 技术 在x l 的设计中一个重要的需求是与现有的x m l 与w e b 服务的技术相兼 容,这些技术构成,c b 服务的核心,下面详细说明这些技术。 2 。2 1x m l 抽象的数据模型 对于x m l ,人们通常认为它仅仅是一种表示数据的语法。起初负责x m l 草案的小组的确是把x m l 当作一种数据与文档的表示方法,而不是当作一种 逻辑的数据模型来进行制定,不过当前w 3 c 正在为x m l 制定一套标准的、逻 辑的、抽象的数据模型,这种抽象的数据模型可以获得逻辑,物理上的数据独立 性。换句话说,就是程序员可以专注于数据的抽象表示,而不需要关心数掘的 物理表示,所以数据的物理表示可以被改进但却不会影响到应用程序。这些独 立性带来的好处在过去的3 0 年中已经在数据库领域中获得成功应用。 x m l 标准的制定也充分利用了数据的逻辑物理独立性的思想,w 3 c 标准 中的x s l :r 【3 1 、x q u e r y 查询语言【4 1 都是用x m l 抽象的数据模型捌来描述的。 w 3 c 的x m l 数据模型以e 瓜的方式来表示一系列的实体及他们的关系。 其中实体表示数据本身( 如节点,值,序列) ,关系表示实体之间的父子或属性 关系。x m l 文档通过一般的数学结构建模来获得对应的数据模型,比如采用节 点顺序树这样的结构模型。在数据模型中。内部节点属于文档、元素、属性、 注释、处理指令或命名空间中的一种,并且具有节点标识符属性;对于节点顺 第二章w e b 服务概述 序树的值叶子节点可以是x m l s c h e m a l 6 基本类型( 如:i n t e g e r 、d e c i m a l 、s t r i n g 、 d u r a t i o n ) 中的一神。在订l 数据模型中很关键的一个概念是序列,序列总是 单层的,不存在相互嵌套,也就是说序列中的序列会被自动消除嵌套,比如: 序列( a ( b 、c ) d ) 将自动的转化成( a 、b 、c 、d ) 。另一个重要的概念是 可以通过数据模型获得文档的拓扑节点顺序,这个顺序可以在计算中被查询和 利用。 2 2 2 x m ls c h e m a 和x m l 类型系统 数据模型仅描述了一棵顺序树基本的组成成分。而x m ls c h e m a 6 7 描述的是 对顺序树的结构化和内容的约束;另外x m ls c h e m a 还描述了x m l 数据模型 所支持的简单的数据类型、用户自定义的复杂类型和支持用户自定义的完整性 约束,例如,引用一致性,词法约束等。 x m l 类型系统涉及到在x m ls c h e m a 中对展现的结构化信息类型的约束, 使用这样的类型系统目标在于要达到三个目的: 1 进行类型检查:给定一个表达式和输入数掘的类型,可以静态地检查表 达式是否产生错误。 2 允许类型自动推理:给定一个x m l 表达式和输入数据的类型,类型系统 能够自动的推理出结果的数据类型。 3 ,类型系统能够检查类型包含关系,在以下情况,这是个非常有用的特征: 给定一个x m l 表达式和输入数据的类型,可以自动的检查表达式求值结果是 否是预期的类型。 更多关于类型系统的信息可查看【1 6 】。 2 2 3x m l 表达式和x q u e r y w 3 c 标准对x m l 表达式和x m l 查询7 1 进行扩充从而产生了x q u e r ) r 查询 语言。x q u e r y 是种能从x m l 文档中获取特定数据的查询语言,它起源于 x m l 数据查询语言q u i l t f 8 1 ,并将x p a t h 版本2 o 5 1 作为其子集。q u i l t 有很多非 常优秀的特性,集s q l 、0 d m g 、x p a t h i o 【9 j 、x q l 以及x m l - q l 的诸多特 x lw e b 服务平台的初步实现 性于一身,然而随着存储在x m l 文档中的信息量的增长,要想高效地存取x m l 文档中的信息,q u i l t 显露出了它的不足。于是全新的x q u e r y 查询语言诞生了。 x o u e r y 规范是在1 9 9 8 年、由w 3 c 发起的查询语言专题讨论会上正式启动的, 到现在为止标准化工作尚未完成。t h ex m lq u e r yw o r k i n gg r o u p 在2 0 0 】年1 2 月2 0 日发布了x o u e r y 规范工作草案,获得最新工作草案见 h t l p :w w w w 3 9 o 唱厂r r x q u e r ) 】。x q u e r y 是一种功能型的语言。和其他功能型 的语言一样,x q u e r y 表达式包含由变量和常量开头的一阶谓词和二阶谓词。一 阶谓词的典型例子是:逻辑、算术、字符串操作和像联合、相交和相差等面向、 集合的操作。二阶谓词的例子是:映射和排序。特别要提到的是作为一阶渭词 的f l w r 表达式【5 】它是一种基于特定模式构造的x m l 表达式,类似于s q l 中的s e l e c 卜f r o m w h e r e 查询。和s q l 查询一样,一个f l w r 表达式用 一个特别的语句来定义变量及也们相关的域( x q u e 咿中的f o r 语句对应s q l 语句中的f r o m 语句) ,用一个特别的语句来对变量进行基于谓词的过滤( 两 种语言中都是w h e r e 语句) 最后用另一个语句来说明返回值的结构( x q u e r y 中的r e t u r n 语句对应s q l 语句中的s e l e c t 语句) 。路径表达式x p a t h 【9 j 用 来在x m l 树中进行导航定位。 x m l 查询使用的是声明性的语句,它处理的是x m l 数据。一个查询 是由前序( 包含函数定义本建类型声明,函数声明和x m l s c h e m a 导入) 和 用于产生返回值的主表达式构成。然而,复杂的w e b 服务所包含的业务逻辑并 不能仅用几个声明性的语句或几个简单的x m l 查询就能描述清楚的,所以如 果要达到功能足够强大的蝗步对x q u e r y 进行扩展是必要的。 2 2 4x m l 协议( s o a p ) s o a p ( s i m p l eo b j e c ta c c e s sp m t o c o i ,简单对象访问协议) 1 q 提供了一个 标准的包装结构用于在多稃椿准i n t e m e t 技术上( 包括s m t p ,h t t p ,f t p ) 传输 x m l 文档,它是w e b 服蚕轰宁一个非常重要的、标准的x m l 协议。最 初制定x m l 协议( s o a p j 捧准的焦点主要集中在试图创建一种简单的、基于 x m l 的消息协议,这种协议i 奠景容易通过脚本语音和x m l 工具或w e b 服务 第二章w e b 服务概述 工具就能进行编写和部署。s o a p 还定义了用于x m l 传输非x m lr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年制作工具行业研究报告及未来行业发展趋势预测
- 建筑设备安装与调试方案
- 2025年圆珠笔行业研究报告及未来行业发展趋势预测
- 2025年收纳盒行业研究报告及未来行业发展趋势预测
- 2025年再生塑料行业研究报告及未来行业发展趋势预测
- 危急值试题 (附答案)
- 高速公路路基施工方案
- 单位主要负责人及安全管理人员安全培训测试题库(附参考答案)
- 三基培训考试麻醉科学麻醉恢复室真题(附答案)
- 公园绿色建筑设计方案
- 农业模型PPT讲稿课件
- 公开课教学评价表
- 消防验收规范标准(最新完整版)19844
- 教研工作手册
- 电工电子技术基础教学大纲
- 独树一帜的中国画(课堂PPT)
- 制钵机的设计(机械CAD图纸)
- 生产设备控制程序
- 艾草深加工项目可行性研究报告写作范文
- LCM不良命名规范
- 《融资租赁业务介绍》PPT课件.ppt
评论
0/150
提交评论