(计算机科学与技术专业论文)基于xquery的web应用开发技术研究.pdf_第1页
(计算机科学与技术专业论文)基于xquery的web应用开发技术研究.pdf_第2页
(计算机科学与技术专业论文)基于xquery的web应用开发技术研究.pdf_第3页
(计算机科学与技术专业论文)基于xquery的web应用开发技术研究.pdf_第4页
(计算机科学与技术专业论文)基于xquery的web应用开发技术研究.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(计算机科学与技术专业论文)基于xquery的web应用开发技术研究.pdf.pdf 免费下载

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

文档简介

j 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 签名:堡拯嗍鱼丛:刨 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:皇盘竣导师签名: 摘要 摘要 随着网络时代的到来,互联网已经成为了一个重要的信息处理平台。如何在 互联网上更加快捷、方便地交互和处理数据已经成为开发人员和用户的共同愿 望。当今x m l 已经成为i n t e r n e t 上信息传输和数据交换的实际标准。x q u e r y 语 言作为标准的x m l 查询语言,在查询、操作x m l 数据方面具备独特的优势, 因此其不仅可以应用于数据查询领域,同时有望通过功能扩展,发展成为更加强 大的网络开发工具。 当前,x q u e r y 在w e b 应用领域的应用,往往需要借助其他宿主语言来实现。 本文提出了一种基于x q u e r y 的w e b 服务开发方法和服务器网页编程方法,通过 程序转换利用现有的成熟的a x i s 框架和j 2 e ew e b 应用开发框架辅助x q u e r y 实现w e b 服务开发和服务器网页编程功能,并通过扩展x q u e r y 语言使其支持对 会话对象( s e s s i o n ) 的访问与更新操作和网页转发机制,从而使x q u e r y 能够实 现有状态的w e b 服务开发以及支持会话处理和转发机制的服务器网页编程。 本课题还开发了一套x q 4 w e b 系统,用于支持x q u e r yw e b 服务程序和动态 网页程序在w e b 服务器的部署工作,利用x q 4 w e b 系统,x q u e r y 程序员在相当 大的程度上,仅仅利用x q u e r y 语言就能够开发出w e b 应用系统,从而有可能不 使用j s p 等语言来开发w e b 应用服务程序。 关键词x m l :x q u e r y ;w e b 服务;网页编程 北京t 业大学丁学硕士学位论文 a b s t r a c t 1 1 1w e be r a ,i n t e m e th a sb e c o m ea ne x t e n s i v ep l a t f o r mf o ri n f o r m a t i o ni n t e r a c t i o n i ti st h ec o m m o nd e s i r e f o rb o t hd e v e l o p e ra n du s e rt ot r a n s f e ra n dp r o c e s s i n f o r m a t i o ni nam o r ee f f i c i e n tw a y w i t hx m l h a sb e c o m i n gaw i d e s p r e a dd a t a e n c o d i n gf o r m a tf o rw e ba p p l i c a t i o n ,i n t e g r a t i n gn a t i v ex m l p r o c e s s i n gm e t h o di n t h e s ep r o g r a m m i n ga r e a si se x t r e m e l yi m p o r t a n t x q u e r y , a st h eq u e r yl a n g u a g eo f x m l ,w h i c hh a sb e e nb r o a d l ya c c e p t e db yi n d u s t r ya n db e c o m et h ew 3 cs t a n d a r d , h a so b v i o u sa d v a n t a g e si np r o c e s s i n gx m ld a t a t h e r e f o r e ,b e s i d e su s i n gx q u e r y f o r d a t ai n q u i r y , i ta l s oc a nb ed e v e l o p e dt oam o r ep o w e r f u ll a n g u a g ef o rw e b p a g e d e s i g na n d n e t w o r kd e v e l o p m e n tb yf u n c t i o ne x t e n s i o n t h ep a p e rp r o p o s e s an e ww a yd e v e l o p i n gw e bs e r v i c ea n dw e b p a g e p r o g r a m m i n gb ye x t e n d e dx q u e r y t h ew a y i se x t e n d i n gx q u e r yf o rd e v e l o p i n gw e b a p p l i c a t i o na n dt r a n s f o r m i n gx q u e r y t oj a v aa n du s i n ga x i sa n dj 2 e ef o rj a v at o d e v e l o pw e bs e r v i c ea n dw e b p a g ep r o g r a m m i n g t h ee x t e n d e dx q u e r ys u p p o s e s f u n c t i o nf o rw e bs e r v i c ea n dw e b p a g ep r o g r a m m i n ga n dq u e r y i n ga n du p d a t i n g h t t ps e s s i o n sa n dn e t p a g ef o r w a r d t h i sp a p e ra l s oi n t r o d u c e s an e ww e bd e v e l o p m e n tp l a t f o r m x q 4 w e b , p r o p o s e st h a tw ec a nd e v e l o pw e ba p p l i c a t i o nb ye x t e n d e dx q u e r ya n ds h o w st h e p r a c t i c a b i l i t ya n ds i m p l i c i t yo f t h a t k e y w o r d sx q u e r y ;x m l ;w e bs e r v i c e ;w e b p a g ep r o g r a m m i n g 。 目录 目录 摘要i a b s t r a c t i i 第1 章绪论1 1 1 课题背景1 1 1 1x m l 与x q u e r y l 1 1 2x q u e r y 更新功能规范2 1 1 3x q u e r y 相关扩展研究3 1 1 4w e b 服务3 1 1 5 目前流行的服务器端网页编程开发环境4 1 1 6a p a c h et o m c a t 4 1 1 7 g e o q u e r y 引擎5 1 2 研究目的与意义7 1 3 课题来源7 1 4 本文工作7 1 5 本文结构8 第2 章面向w e b 服务的x q u e r y 扩展与实现9 2 1 需求分析9 2 1 1 问题讨论9 2 1 2 研究目标9 2 1 3 需解决的关键问题9 2 2 a x i s 介绍1 0 2 2 1 a p a c h ea x i s :1 0 2 2 2 使用a x i s 开发w e b 服务1 1 2 2 3a x i s 对w e b 服务状态( s e s s i o n ) 管理1 2 2 3 系统设计原理1 3 2 3 1 研究思路与方案j 1 3 2 3 2 系统结构图1 4 2 4 面向w e b 服务的x q u e r y 扩展1 5 2 。4 1 命名空间定义15 2 4 2 支持对s e s s i o n 的访问1 5 2 4 3 支持对s e s s i o n 的更新_ 16 2 5x q u e r y - j a v a 的程序转换1 6 2 。5 1 一个x q u e r y - j a v a 的程序转换例1 6 2 5 2 根据x q u e r y 程序生成j a v a 程序的过程;18 2 6 对g e o q u e r y 引擎数据源的扩展_ 2 0 2 7 本章小结2 l 第3 章面向服务器网页编程的x o u e r y 扩展与实现2 3 i 北京1 二业大学工学硕士学位论文 3 1 需求分析2 3 3 1 1 问题讨论2 3 3 1 2 研究目标2 3 3 1 3 需解决的关键问题2 3 3 2j a v as e r v l e t 介绍2 4 3 2 1s e r v l e t 简介2 z i 3 2 2h t t ps e r v l e t 的创建2 5 3 2 3j a v as e r v l e t 对s e s s i o n 的管理2 6 3 2 4s e r v l e t 转发机制用法2 7 3 3 系统设计原理2 7 3 3 1 研究思路与方案2 7 3 3 2 系统结构图2 8 3 4 面向s e r v l e t 软件开发的x q u e r y 扩展2 8 3 4 1 命名空间定义2 8 3 4 2 对s e s s i o n 的访问2 9 3 4 3 对s e s s i o n 的更新2 9 3 4 4 对s e r v l e t 转发机制的支持2 9 3 5x q u e r y - j a v as e r v l e t 程序转换3 1 3 5 1 一个x q u e r y - j a v as e r v l e t 的程序转换例子3 1 3 5 2 根据x q u e r y 程序生成j a v as e r v l e t 程序的过程3 2 3 6 对g e o q u e r y 引擎数据源的扩展3 5 3 7 本章小结3 6 第4 章x 0 4 w e 卜基于x q u e r y 的w e b 应用开发工具3 7 4 1 需求分析3 7 4 1 1 系统功能概述3 7 4 1 2 系统功能详细描述。3 7 4 1 3 系统用例描述3 8 4 2 系统设计原理3 8 4 2 1x q u e r y 程序的w e b 服务开发3 9 4 2 2x q u e r y 程序的s e r v l e t 软件开发3 9 4 3 详细设计4 0 4 3 1w e b 服务开发功能的序列图设计。4 0 4 3 2 开发s e r v l e t 软件功能的设计4 2 4 3 3 重要接口设计4 4 4 4x q 4 w e b 系统支撑环境4 7 4 5x q 4 w e b 系统完成情况4 7 4 6 本章小结4 7 第5 章x 0 4 w e b 系统测试4 9 5 1x q 4 w e b 系统开发w e b 服务实例4 9 5 1 1 运行环境准备4 9 5 1 2 编写一个x q u e r y 程序文件x q 3 x q 。4 9 5 2x q 4 w e b 系统开发s e r v l e t 软件实例51 5 2 1 运行环境准备- :51 l v 目录 5 2 2 用x q u e r y 程序编写的购书网站案例5 1 5 3x q 4 w e b 主界面图5 6 5 4 实验结果分析5 6 5 5 本章小结5 7 v 锣矾的盯 : 一 一 一 一 一 一 果 成 究 研 的 得一 一 取 问 期 位一 学 献士 论文硕谢 考读 结参攻致 北京1 二业大学工学硕士学位论文 第1 章绪论 1 1 课题背景 1 1 1x m l 与x q u e r y 第1 章绪论 随着网络时代的来临,网络传输的信息量不仅庞大而且信息的模式多种多 样。为了能够充分和有效地表示w e b 网络上丰富的数据,一种兼具可扩展性及 灵活性的通用数据传输格式一一可扩展标记语言( x m l ,e x t e n s i b l em a r k u p l a n g u a g e ) n 矗1 应运而生。由于x m l 适合网络应用的需要,因此在当今越来越多 的应用领域中,x 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 3 c 的x m l 工作组于1 9 9 8 年2 月正式推出了x m l1 0 版本。x m l 具有一些被公认 的优点:纯文本表示,具有平台无关性:信息的内容与信息的表示是分开的,能 够满足各种不同的应用需求等。x m l 另一个巨大优势就是其具备自描述性,通 过x m l 文件的d t d ( d o c u m e n tt y p ed e c l a r a t i 彻文档类型声明) 或x m l s c h e m a 就可以定义数据集的结构信息d 3 。 x m l 作为一种文档标记语言,已被广泛接受和使用,各大软件生产商特别 是数据库生产商纷纷把支持x m l 作为一个重要的发展方向h 1 。 由于x m l 能够根据具体应用灵活地表现异构数据源中的各种信息,包括应 用程序之间的数据交换、结构化和半结构化的文档以及数据库中数据的输出,越 来越多的应用系统开始采用x m l 进行信息的存储、交换和表现。因而开发人员 迫切需要一种灵活易用、针对x m l 数据源的查询语言,该语言能够高效地存取 x m l 信息,并能够提供跨越不同数据源的基于x m l 信息的查询检索能力。 虽然x s l t 和x p a t h 可以在一定程度上满足上述需求,但是其书写的复杂程 度和功能的不完善使其远远不能达到人们的要求。人们需要的是一种类似于s q l 语言的、简单且易于编写的x m l 数据查询语言。因此,w 3 c 的x m l 查询工作 组制定出了x m l 查询语言规范x q u e r y1 0 畸1 。 x q u e r y 是x m lq u e r y 的缩写。x q u e r y 是一种基于x m l 的功能强大的数据 查询语言,适用于查询各种类型的x m l 数据源,它能够从x m l 文档中选择并 提取数据,进而把查询结果重构为用户所需的新的x m l 文档。因为s q l 语言是 对建立在关系代数基础上的数据表进行操作的语言,而x q u e r y 则是对建立在 北京t 业大学 学帧士学位论文 x q u e r y1 0 和x p a t h2 0 数据模型( x d m 3 ) 上的x m l 数据进行查询的语言, 所以x q u e r y 极有可能成为“x m l 中的s q l 。x q u e r y 是x p a t h 的一种扩展, 但与x p a t h 不同的是,x q u e r y 提供了程序设计功能和一系列的数据类型。x q u e r y 汲取了多种查询语言的精华,体现出多种查询语言的优点。x q u e r y 设计优良、 使用灵活,可以预计,x q u e r y 相关技术的不断成熟和发展将会对x m l 的应用 产生巨大的影响。 1 1 2x q u e r y 更新功能规范 相对于关系数据库和s q l 语言来说,目前作为w 3 c 推荐标准的x q u e r y1 0 提供了对于x m l 文档的查询和构造功能。但作为一种数据操作语言,x q u e r y 语言仍需要具备对数据的更新功能。例如,s q l 语言就提供了对于关系数据库 的插入( i n s e r t ) ,删除( d e l e t e ) ,修改( u p d a t e ) 等更新功能。因此,w 3 c 组织 提出了x q u e r y 更新功能规范口3 。 x q u e r y 更新功能规范1 o 所提供的对于x q u e r y l 0 的扩展主要包括以下方 面: 1 、更新功能规范提供了多个新的表达式,包括:插入( i n s e r t ) ,删除( d e l e t e ) , 替换( r e p l a c e ) ,重命名( r e n a m e ) 等,并且规定了这些表达式的语法和语义规 则。 2 、更新功能规范将表达式划分为以下几种新的类型:更新表达式、普通表 达式、空表达式。 3 、更新功能规范定义了每种类型的表达式可以使用的位置。因此,对于 x q u e r y l 0 中存在的表达式做了语法和语义上的相应扩展。 基于上述扩展,该规范提供了对于x m l 文档实例执行以下任意一个或多个 操作: 插入节点( 或节点序列) ; 。 删除节点( 或节点序列) ; 在保持其他节点特征( 包括节点内容和节点属性) 的情况下来修改节点特征; 因此,该规范使得x q u e r y 语言具备了对于x m l 文档对象的更新功能,可 以用于对x m l 对象的持久修改。 另外,对于一组更新操作,w 3 c 的x q u e r y 更新功能是以快照为单位执行的: 通常以一个x q u e r y 查询为一个快照,也就是在查询结束后,完成更新指令序列 中的所有更新。 2 第1 章绪论 1 1 3x q u e r y 相关扩展研究 在x q u e r y 语言的下列相关研究中,人们正在通过对其语言功能的扩展来适 应不同的应用需求,以求在w e b 软件开发的不同领域发挥其抽象描述能力强等 特点叫。 x q u e r y p 四1 :该研究在x q u e r y 语言及其更新功能规范的基础上扩展了过程 型语言的特征,使其在支持函数式程序设计范型的同时,亦能支持过程型程序设 计范型。 b e a 公司开发的x q s e 系统n 们和x q u e r y p 相似,增加了过程型语言的功能, 力求将x q u e r y 语言发展为通用程序设计语言。 d x q n 则是基于x q u e r y 更新功能和x q u e r y p 所进行的分布式计算功能扩 展,能够支持分布式应用程序的开发,允许以同步或异步的方式调用远端的d x q 程序,并且可以传递d x q 程序到远程服务器上执行。 x q u e r y d n 2 1 是基于x q u e r y 的分布式查询扩展,通过增加新的e x e c u t e 表达 式,支持分布式数据查询的优化,允许将子查询命令传递到指定的服务器中执行。 论文 1 3 发展了支持x q u e r y 开发浏览器客户程序的系统。 论文【1 4 】提出了仅仅利用x q u e r y 语言来开发三层框架的企业应用系统的方 法。 上述工作主要是为x q u e r y 语言增加过程型语言的功能或实现分布式查询功 能扩展,从而在不同的领域发挥x q u e r y 对于x m l 数据处理的抽象描述能力。 1 1 4w e b 服务 w e b 服务【1 孓1 7 1 ( w e bs e r v i c e ) 是基于x m l 和h t t p 的一种服务,其通信 协议主要基于s o a p ,服务的描述通过w s d l ,通过u d d i 来发现和获得服务的 元数据。 s o a p 是简单对象访问协议( s i m p l eo b j e c ta c c e s sp r o t o c 0 1 ) ,s o a p 定义 一个x m l 文档格式,该格式描述如何调用一段远程代码的方法。应用程序创 建一个描述希望调用的方法的x m l 文档,并传递给它所有必需的参数,然后 应用程序通过网络将该x m l 文档发送给那段代码。代码接收x m l 文档、解 释它、调用请求的方法,然后发回一个描述结果的x m l 文档。 w s d l 是w e b 服务描述语言( w e bs e r v i c e sd e s c r i p t i o nl a n g u a g e ) ,是一 个描述w e b 服务的x m l 词汇表。编写一段接收w s d l 文档然后调用其以前 从未用过的w e b 服务的代码,这是可能的。w s d l 文件中的信息定义w e b 服务的名称、它的方法的名称、这些方法的参数和其它详细信息。 u d d i 是统一描述、发现和集成( u n i v e r s a ld e s c r i p t i o n ,d i s c o v e r y , a n d 3 北京丁业大学工学硕七学位论文 i n t e g r a t i o n ) 协议向w e b 服务注册中心定义s o a p 接口。如果有一段代码希望 作为w e b 服务部署,u d d i 规范定义如何将您的服务描述添加至注册中心。如 果在寻找一段提供某种功能的代码,u d d i 规范定义如何查询注册中心以找到您 想要的信息。 1 1 5 目前流行的服务器端网页编程开发环境 目前流行的服务器端网页编程开发环境主要有以下几种: a s p 全名a c t i v es e r v e rp a g e s ,是一个w e b 服务器端的开发环境,利用它 可以产生和执行动态的、互动的、高性能的w e b 服务应用程序。a s p 采用脚本 语言v b s c r i p t ( j a v as c r i p t ) 作为自己的开发语言。 p h p 是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用c 、j a v a 和p e r l 语言的语法,使w e b 开发者能够快速地写出动态产生页面。它支持目前 绝大多数数据库。还有一点,p h p 是完全免费的,不用花钱,可以从p h p 官方 站点( h t t p :w w w p h p n e t ) 自由下载。而且程序员可以不受限制地获得源码,甚至 可以从中加进自己需要的特色。 j s p 是s u n 公司推出的新一代网站开发语言j a v as e r v e rp a g e 。j s p 可以在 s e r v e r l e t 和j a v a b e a n 的支持下,完成功能强大的站点程序。 三者都提供在h t m l 代码中混合某种程序代码、由语言引擎解释执行程序 代码的能力。但j s p 代码被编译成s e r v l e t 并由j a v a 虚拟机解释执行,这种编译 操作仅在对j s p 页面的第一次请求时发生。在a s p 、p h p 、j s p 环境下,h t m l 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 h t m l 页面只依赖于w e b 服务器,而a s p 、p h p 、j s p 页面需要附加的语言引 擎分析和执行程序代码。程序代码的执行结果被重新嵌入到h t m l 代码中,然 后一起发送给浏览器。a s p 、p h p 、j s p 三者都是面向w e b 服务器的技术,客 户端浏览器不需要任何附加的软件支持。 由于x m l 是互联网数据交换标准,而x q u e r y 是x m l 数据查询与更新的 标准语言,使用x q u e r y 处理x m l ( 包括x h t m l ) 简单直观。因此,x q u e r y 在进行w e b 应用开发时具有天然的优势。当然,作为函数式语言的x q u e r y 往往 难以描述过于复杂的算法,这是x o u e r y 与上述流行语言的劣势。 1 1 6a p a c h et o m c a t t o m c a t 是一个免费的开源的s e d v e t 容器,它是a p a c h e 基金会的j a k a r t a 4 第1 章绪论 以实现。 对于不同性质的数据源,分别采用了事务处理或序列化的方法来实现x m l 数据的更新。 1 2 研究目的与意义 目前,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 ) 已经逐渐成为i n t e r n e t 上数据 交换的标准。w e b 服务技术就是建立在被大多数企业支持的标准的x m l 基础上 的。x q u e r y 作为x m l 的查询语言,在2 0 0 7 年1 月已经成为w 3 c 的推荐标准, 于是对于x q u e r y 应用拓展的研究也成为了新的热点。因此我们希望能够对 x q u e r y 语言进行拓展,为x q u e r y 程序员提供一种高级开发工具基于 x q u e r y 的w e b 应用软件开发平台,使x q u e r y 语言可以作为一种编程语言应用 到w e b 服务和动态网页开发中。采用x q u e r y 语言进行w e b 应用开发具有以下 意义: 首先,x q u e r y 语言是操作x m l 的推荐标准,其对x m l 数据的操作就像s q l 语言对于关系数据的操作一样直观、简单。因此使用x q u e r y 生成和操作静态网 页编程语言x h t m l 1 8 - 2 0 】具有天然的优势。 第二,x q u e r y 是函数式语言【2 1 】,而w e b 服务的实质是为用户提供程序的远 程调用功能,因而作为函数式语言的x q u e r y 适合用来开发w e b 服务。 第三,通过x q u e r y 语言的功能扩展,来支持w e b 动态网页编程和w e b 应 用服务软件的开发,使得开发者在相当大的程度上,仅仅利用x q u e r y 语言就能 够开发出w e b 应用系统,从而有可能不用j s p 珏2 3 1 等语言来开发w e b 应用服 务程序。 , 1 :3 课题来源 本研究得到北京市自然科学基金( 项目编号:4 0 8 2 0 0 3 ) 的支持。 1 4 本文工作 本文将研究基于x q u e r y 语言的w e b 服务开发技术和服务器网页编程技术, 并论述了基于x q u e r y 的w e b 应用软件开发平台:x q 4 w e b 的设计与实现。具 体内容如下: 1 、面向w e b 服务的x q u e r y 语言扩展及其实现技术 7 北京工业大学t 学硕士学位论文 曼曼! 曼! ! 曼曼! ! 皇鼍! 皇曼皇曼曼置量鼍曼曼曼鼍i i i i i l l 2 、面向服务器网页编程f 2 4 出】的x q u e r y 语言扩展及其实现技术 3 、设计和实现基于x q u e r y 的w e b 应用开发工具一x q 4 w e b 经过扩展的x q u e r y 语言实现了w e b 服务开发功能和服务器网页编程功能, 利用x q 4 w e b 系统,x q u e r y 程序员不需要学习j 2 e e 等w e b 应用开发技术仅 使用x q u e r y 语言就可以进行w e b 服务开发和动态网页编程。 1 5 本文结构 本文的内容组织如下: 第1 章绪论。主要介绍课题的背景,来源,基于x q u e r y 的w e b 软件开发 平台的研究目的和意义,以及本文的内容和结构。 第2 章面向w 曲服务的x q u e r y 扩展与实现。主要介绍实现w e b 服务的 x q u e r y 函数,扩展后x q u e r y 对w 曲服务中s e s s i o n 对象的访问和更新。 第3 章面向服务器网页编程的x q u e r y 扩展与实现。主要介绍实现s e r v l e t 软件的x q u e r y 函数,扩展后x q u e r y 对s e r v l e t 中s e s s i o n 对象的访问和更新以 及对s e r v l e t 转发机制的支持。 第4 章x q 4 w e b 一基于x q u e r y 的w 曲应用开发工具。主要论述基于 x q u e r y 的w e b 应用开发工具的功能需求、框架、设计思路和实现方式。 第5 章x q 4 w e b 系统测试。通过利用x q 4 w e b 系统开发w e b 服务和动态 网页编程的实例介绍了x q 4 w e b 系统开发w e b 应用的工作流程。 8 第2 章面向w e b 服务的x q u e r y 扩展与实现 第2 章面向w e b 服务的x q u er y 扩展与实现 2 1 需求分析 2 1 1 问题讨论 使用x q u e r y 开发w e b 服务面临两方面问题。 首先,x q u e r y 语言没有提供对w e b 服务开发功能的支持,若想使用x q u e r y 开发w e b 服务,就要对x q u e r y 语言功能进行相应扩展。 第二,使用x q u e r y 开发w e b 服务需要相应的w e b 服务器作为支撑环境。 解决这个问题有两个方法:1 、开发一个w e b 服务器作为x q u e r y 语言的支撑环 境。2 、将x q u e r y 转换成其他w e b 服务开发语言,利用该语言的支撑环境间接 实现x q u e r y 的w e b 服务开发。本文将采用第二种方法实现x q u e r y 的w e b 服 务开发,将x q u e r y 转换成j a v a ,利用a p a c h ea x i sw e b 服务开发框架间接实 现x q u e r y 的w e b 服务开发功能。 2 1 2 研究目标 本章将研究基于x q u e r y 语言的w e b 服务开发技术,提供一种方法使 x q u e r y 程序员能够通过编写x q u e r y 程序开发w e b 服务。 2 1 3 需解决的关键问题 要实现研究目标,需要解决以下问题: 1 ) 扩展x q u e r y 语言的w e b 服务开发功能。包括定义支持w e b 服务开发 的x q u e r y 函数命名空间,扩展x q u e r y 语言使其支持对s e s s i o n 的访问与 更新,使其能够用于开发有状态的w e b 服务。 2 ) 设计并实现从x q u e r y 程序到j a v a 程序的程序转换规则。 3 ) 在x q u e r y 执行引擎中扩展面向s e s s i o n 数据的数据源模块。 9 北京工业大学工学硕士学位论文 2 2a x i s 介绍 2 2 1 a p a c h ea x i s a p a c h ea x i s 是a p a c h ew e bs e r v i c e 项目中的子项目之一,它是a p a c h e s o a p 项目的延续。a x i s 的主要功能是作为一个s o a p 的实现来让开发者通过 它来构建自己的w e bs e r v i c e ( 支持j a v a 和c h ) 。随着w e bs e r v i c e s 以及 s o a 的不断发展,越来越多的人投入到了相关技术的实现、开发和标准的制定 的工作中。a p a c h ea x i s 凭借它强大的功能和稳定性倍受开发人员的青睐,成为 了用于实现w e bs e r v i c e s 的主要途径。 a x i s 框架是基于j a v a 语言的最新s o a p 规范( s o a p1 2 ) 和s o a pw i t h a t t a c h m e n t s 规范( 来自a p a c h eg r o u p ) 的开放源代码实现。有很多流行的开 发工具都使用a x i s 作为其实现支持w e b 服务的功能,例如j b u i l d e r 以及著名的 e c l i p s ej 2 e e 插件l o m b o z 。a x i s 的最新版本是1 1 。图2 1 是a x i s 核心引擎的 体系结构图。 t r a n s p o r t g l o b a ls e r v i c e 、舀i 2 :多 r e q u e 积 蘸一 一 a x i se n g i n e ”。 图2 - 1a x i s 核心引擎的体系结构图 整个a x i s 项目包括以下几个部分: 1 消息流子系统 消息流子系统提供了灵活的消息传递框架,这个消息传递框架包括处理程 序、链、序列化程序和反序列化程序。处理程序是一个处理请求、响应和 1 0 幽僦q=:建ts 一磊 兽 , k r m _ , 坤怖 盯川怕 船 吾 第2 章面向w e b 服务的x q u e r y 扩展与实现 故障流的对象。处理程序可被组合在一起成为链,而且可以使用一个灵活 的部署描述符来配置这些处理程序的顺序。 2 传输框架子系统 提供了一个传输框架,这个传输框架可以帮助创建自己的可插式传输发送 器和传输侦听器。 3 数据编码子系统 a x i s 完全按照x m ls c h e m a 规范提供各种数据类型的自动序列化,并 且提供功能扩展接口来使用您自己定制的序列化器和反序列化器。 4 其他 a x i s 完全支持w s d l 以及日志记录、出错以及故障处理机制。它同时 提供一些工具用来将w s d l 文档转换成客户端的调用框架以及根据类来 产生w s d l 定义文档。 a x i s 目前版本支持的标准是:w 3 cs o a p1 1 和1 2 ;w s d l1 1 ;s a a j1 1 ( s u n 公司:s o a p w i t h a t t a c h m e n t s a p if o rj a v a ) ;j a x r p c ( s u n 公司:j a v a a p if o rx m l b a s e dr p c ) 1 o 。 2 2 2 使用a x i s 开发w e b 服务 使用a x i s 开发w e b 服务主要分为三个步骤: 1 、编写w e b 服务程序 2 、写w s d d 部署文件 3 、将文件部署到w e b 服务器 下面以一个例子说明如何使用a x i s 开发j a v aw e b 服务。 编写j a v a 程序并编译 p u b l i cc l a s ss e r v i c e p u b l i cs t r i n gt e s t m e t h o d ( ) r e t u r n ”h i 。y o u m er e a c h e dt h et e s t m e t h o d ”: ) ) 编写d e p l o y w s d d 部署文件 北京工业大学1 二学硕士学位论文 该部署文件描述了将s e r v i c e 类部署为w e b 服务, ,定义了w e b 服务名称为s e r v i c e , 表示将j a v a 类s e r v i c e 部署为w e b 服务, 表示将s e r v i c e 类中的所有方 法部署为w e b 服务,表示所有方法。将编译好的s e r v i c e c l a s s 文件和 d e p l o y w s d d 文件部署到t o m c a t 相关路径下,执行部署命令即可部署成功。 2 2 3a x i s 对w e b 服务状态( s e s s i o n ) 管理 在w e bs e r v i c e 中没有一种管理s e s s i o n 的标准方法,只有两种公认的技术, 一种是依靠h t t p 和h t t pc o o k i e s ,另一种,或许也是最重要的一种方法,就是 用s o a ph e a d e r s 。a x i s 能帮助开发人员实现这两种技术。 大多数对a x i sw 曲s e r v i c e 的管理是通过o r g a p a c h e a x i s m e s s a g e c o n t e x t 的 一个实例来完成的。在一个a x i sw e bs e r v i c e 中可以通过调用m e s s a g e c o n t e x t 类 中的静态方法来得到m e s s a g e c o n t e x t 的一个实例: p u b l i cc l a s ss e s s i o n s e r v i c e p u b l i cs t r i n ge c h o ( s t r i n gi n ) m e s s a g e c o n t e x tm c =

温馨提示

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

评论

0/150

提交评论