




已阅读5页,还剩63页未读, 继续免费阅读
(计算机系统结构专业论文)基于saml的认证和授权系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
兰三! 垒坚! 塑坠至塑堡壑墨笙箜里壅墨塞塾 摘要 题名:基于s a m l 的认证和授权系统的研究与实现 硕士研究生姓名:吴鹏 导师姓名:吉逸 学校名称:东南大学 “基于s a m l 的认证和授权系统的研究与实现”论文是结合科技部十五重大科技攻关项目:“网络 教育关键技术及示范工程”的“非实时教学系统”课题进行的。论文旨在研究w e b 服务的关键技术,并 结合s a m l 规范和单点登录技术,提出了基于s a m l 规范的认证和授权系统的应用模型,实现了一个 有效的、符台s a m l 规范的认证和授权系统。 论文从w e b 服务入手,首先介绍了w e b 服务的关键技术,如h t t p 协议、x m l 规范、s o a p 规范、 w s d l 规范和u d d i 规范等。然后,详细介绍了w e b 服务的主要安全技术,如s s l 协议、x m l 的加密 规范和x m l 的签名规范等,并重点研究了安全声明标记语言( s a m l ) 规范和单点登录( s i n g l es i g n o n ) 技术。 在相关理论分析的基础上,本文介绍了基于s a m l 的认证和授权系统的设计和实现,针对实际应用 的需求,建立了基于s a m l 的认证和授权系统的框架体系和功能模块关系,详细阐述了系统的实现,各 个模块的功能和设计,分析了系统在实际应用中可能遇到的安全问题,并且提出了相应的对策和解决方 法,最后论文给出了基于s a m l 的认证和授权系统应用情况,并总结了系统的特点。 关键字:安全声明标记语言( s a m l ) 、w e b 服务、x m l 、认证、授权、单点登录 东南大学硕士学位论文 a b s t r a c t r e s e a r c h a n di m p l e m e n to fa l la u t h e n t i c a t i o na n da u t h o r i z a t i o ns y s t e mb a s e do ns a m l p e n g w u d i r e c t e db yj iy i s o u t h e a s tu n i v e r s i t y t h i sp a p e r , “r e s e a r c ha n di m p l e m e mo fa na u t h e n t i c a t i o na n da u t h o r i z a t i o ns y s t e mb a s e do ns a m l ”,i s i n t e g r a t e dw i t ht h e “n o n r e a lt i m ee d u c a t i o ns y s t e m ”s u b j e c t ,w h i c hi sas u b s y s t e mo f m o s t s ( m i n i s t r yo f s c i e n c ea n dt e c h n o l o g y ) n a t i o n a lk e yt e c h n o l o g i e sr & dp r o j e c to f t h et e n t hf i v e - y e a rp l a n :“n e t w o r k e d u c a t i o nk e yt e c h n o l o g ya n dd e m o n s t r a t i o np r o j e c t ”t h et h e s i si sa i m e dt or e s e a r c hi n t ot h ek e y t e c h n o l o g i e so f w e bs e r v i c e s ,b r i n gf o r w a r da na u t h e n t i c a t i o na n da u t h o r i z a t i o nf r a m e w o nt h a ti sb a s e do nt h e s t a n d a r do fs a m l ( s e c u r i t ya s s e r t i o nm a r k u pl a n g u a g e ) a n dt h et e c h n o l o g yo fs s o ( s i n g l es i g n 。o n ) ,a n d f i n a l l yb u i l d sa ne f f e c t i v ea u t h e n t i c a t i o na n da u t h o r i z a t i o ns y s t e mb a s e do as a m l - t h et h e s i ss t a r t sw i t ht h er e s e a r c ho f w e bs e r v i c e s ,f i r s t ,t h ek e yt e c h n o l o g i e so f w e bs e r v i c e si s i n t r o d u c e d ,a n dt h e ni td i s c u s s e st h es e c u r i t yt e c h n o l o g i e so f w e bs e r v i c e s i na d d i t i o n ,t h i sp a p e rd e s c r i b e st h e s t a n d a r do fs a m la n dt h et e c h n o l o g yo fs s o , b a s e do nt h er e l a t i v et h e o r e t i ca n a l y s i s ,t h i sp a p e ri n t r o d u c e st h ed e s i g na n di m p l e m e n to f t h e a u t h e n t i c a t i o na n da u t h o r i z a t i o ns y s t e mb a s e do ns a m l t h es y s t e mf f a m e w o na n dt o t a lm o d u l er e l a t i o na r e f i r s tb u i l du p ,t h e n ,i ti st h ep r e s e n t a t i o n so f f u n c t i o n sa n di m p l e m e n t si ne a c hs y s t e mm o d u l e t h ea r t i c l ea l s o d i s c u s s e ss o m es e c u r i t yp r o b l e m sw h i c hm a yb ee n c o u n t e r e di nt h ea p p l i c a t i o nf o rt h i ss y s t e ma n dg i v e st h e s o l u t i o n so f t h e s ep r o b l e m s i nt h i sa r t i c l e ,i ta l s og i v e sa na p p l i c a t i o nf o rt h es y s t e mi nt h ed i s t a n c ee d u c a t i o n - a tt h el a s to f t h i sp a p e r , t h em a i nf e a t u r e so f t h i ss y s t e ma r eg i v e n k e y w o r d s :s a m l ,w e bs e r v i c e s ,x m l ,a u t h e n t i c a t i o n ,a u t h o r i z a t i o n ,s s o i i 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示了 谢意。 研究生签名:盖皇盗日期:2 q q 生! 月 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复 印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和 纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布 ( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办 理。 研究生签名:差丝导师签名:缝日期:2 q 垒堡! 旦 基于s a m l 的认证和授权系统的研究与实现 1 1 研究背景 第一章绪言 在i r l t e m e t 技术飞速发展的今天,网络应用服务和资源越来越丰富多样。但随之而来的安全问题使 得各个应用系统选择各种各样的认证和授权等安全技术( 如口令、数字证书、访问控制列表等) 来保护 自身的应用服务、资源和系统的安全。我们将使用了安全保护技术的应用系统称为受到安全保护的应用 系统,简称安全系统。各个安全系统一般只能以各自系统为边界提供安全服务,应用服务和资源被孤立 起来,跨系统间的互操作很难实现。随着i n t e m e t 应用的普及,人们又迫切地需要能够跨系统透明地访 问受保护的应用服务和资源。例如,实现采用不同安全机制的企业间基于网络的数据交换和业务协作; 实现完全独立的远程教育系统间的受保护资源的共享:实现用户在采用不同登录机制的门户站点、用户 社区和齑业艘务中的一次登录和身份透明快速地转换等。 现有的安全解决方案很难满足以上需求,因为用户的安全信息很难从一个安全系统传递到另个安 全系统,用户在访问资源过程中需要进行多次认证和授权。如何提高跨系统边界的安全信息互操作性, 使得一个安全系统可以从其他安全系统中获取有关用户信息等授权参考数据,是解决这一问题的关键所 在。这需要有一个统一的数据表示和交互规范,为此,结构化信息标准促进组织( o a s i s ) 的安全服务 技术协会( s e c u r i t y s e r v i c e t e c h n o l o g y c o m m i t t e e ,s s t c ) 提出了安全声明标记语言( s e c t t r i t y a s s e r t i o n m a r k u pl a n g u a g e ,简称s a m l ) 这一概念和它的参考标准,该标准为实现不同安全系统的安全信息互操 作提供了统一规范和解决框架。s a m l 标准使得跨系统透明地访问受保护应用服务和资源成为可能。 在远程教育环境中,有多种应用系统,譬如实时教学系统、媒体点播系统、协作学习系统、资源管 理系统、教学教务系统、网上考试系统等等。各个应用系统般都相对独立运行,采用各自的安全认证 和授权技术,用户只有通过注册、认证、授权才能进入应用系统,访问系统内的教学资源。如果从一个 系统进入另一个系统,用户需要重新进行登录、认证。用户不能跨系统透明地访问资源。开发实现基于 s a m l 的认证和授权系统正是为了解决这问题,使得在各个应用系统之间能够安全快捷地交换用户的 有效信息,让用户方便透明地跨系统访问资源。 2 论文的项目来源及研究目标 “基于s a m l 的认证和授权系统的研究与实现”是结合科技部十五重大科技攻关项目“网络教育关 键技术及示范工程”中的“非实时教学系统”课题进行的。 本文的主要研究目标是结合网络教育环境中各个应用系统对跨系统访问资源的需要,对s a m l ( s e c u r i t r 7 a s s e r t i o nm a r k u pl a n g u a g e ) 标准规范,w e b 般务( w e bs e r v i c e ) 的概念、关键技术和架构, 以及相关的安全技术做一定的研究,并在这些理论研究的基础之上,实现一个基于s a m l 的认证和授权 系统( 统身份认证、单点登录、资源的授权访问) 。 1 3 论文的组织结构 本篇论文主要围绕基于s a m l 的认证和授权系统的研究与实现展开讨论,全文分五个章节,具体如 下: 第一章绪言。主要介绍了论文的研究背景、目标和结构等。 第二章w e b 服务的关键技术。主要介绍了实现w e b 服务的关键技术以及为w e b 服务提供安全保 障的技术,这些技术包括h t r p 协议、x m l 规范、s o a p 规范、w s d l 规范、u d d i 规范、s s l 协议和 _ = _ _ := _ - _ _ _ 壅童查堂婴主兰垒笙苎 一系列基于x m l 的安全技术,在这一章的最后部分还介绍了单点登录技术。 第三章s a m l 规范。主要介绍了s a m l 规范,概括了s a m l 的组成、结构、安全和s a m l 的应 用模式。 第四章系统的设计与实现。主要讨论了基于s a m l 的认证和授权系统的结构,设计实现的细节, 系统可能遇到的安全问题及对策,以及系统的应用和系统的特点。 第五章结束语。 2 基于s a m l 的认证和授权系统的研究与实现 第二章w e b 服务的关键技术 随着i n t e r n e t 的蓬勃发展,基于i n t e m e t 的商务交易和远程教育应用越来越迫切地需要实现跨系统的 应用对接。然而,目前大多数基于w e b 的这些应用在处理应用提供者和应用使用者之间的联系方式上各 不相同。如何将这些应用低代价方便地连接在一起,从而实现大范围的跨系统的应用对接,这是摆在开 发人员面前的一大问题。对于不同的应用,它们的开发语言不同,部署平台不同,通信协议也可能不同, 对外交换的数据格式也有着很大的差异。如何去解决语言差异、平台差异、协议差异、数据差异所带来 的高代价的系统集成是这个问题的关键。 从1 9 9 8 年开始发展的x m l 技术及其相关的技术己证明有可能解决这个问题,而近期开始蓬勃发展 的w e b 服务技术则正是基于x m l 技术的针对这一问题的最佳解决方案。w e b 服务的主要目标就是在现 有的各种异构平台的基础上构筑一个通用的与平台无关、语言无关的技术层,各种不同平台之上的应用 依靠这个技术层来实施彼此的连接和集成。如果需要用一句话来概括w e b 服务与传统w e b 应用技术的 差异的话,那就是:传统的w e b 应用技术解决的问题是如何让人们来使用w e b 应用所提供的服务,而 w e b 服务则要解决如何让计算机系统来使用w e b 应用所提供的服务。 归纳起来,w e b 服务具有以下特点: 基于x m l 通过使用x m l 作为所有w e b 服务协议和新技术的数据表示层,这些技术就能够在核心层具备互操 作能力。而在数据传送中,x m l 消除了协议特有的网络、操作系统以及平台绑定限制。 松散耦台 w e b 服务的用户不直接与w e b 服务关联,w e b 服务接口能够随时变化,而不会降低客户和服务交互 的能力。紧密耦合的系统是指客户和服务器在逻辑上紧密地相互结合,如果一个接口改变,另一个也必 须更新。采用松散耦合体系结构使软件系统更加便于管理,并且使得不同系统间的集成更加容易。 粗粒度 面向对象的技术( 诸如j a v a ) 通过独立的方法指明其服务。独立的方法是过分细化的操作,以致于 不能在一个共同的级别上提供有用的能力。从头开始创建一个j a v a 程序需要创建几个细粒度的方法,然 后将这些方法组合成由客户或者其它服务使用的粗粒度服务。这些方法指明的业务功能和接口应该是粗 粒度的。w e b 服务技术提供了一种定义粗粒度服务的方法,这些服务可访问适量的业务逻辑。 同步或异步的能力 同步是指将客户绑定到服务的执行。在同步调用中,客户在继续执行前要阻塞并等待服务完成其操 作。异步操作则允许客户激活服务然后运行其它功能。异步客户在稍后的时间点上获取其结果,而同步 客户在服务结束的时候获取其结果。异步能力是启用松散耦合系统的一个关键因素。 支持远程过程调用( r p c ) w e b 服务允许客户使用基于x m l 的协议调用远程对象上的过程、函数和方法。远程过程指明w e b 服务必须支持的输入和输出参数。近年来,运用e j b ( e n t e r p r i s ej a v a b e a n s ) 和n e t 进行组件开发逐渐 成为体系结构和企业部署的一部分。这两种技术通过一些r p c 机制使软件成为分布式的和可访问的。 w e b 服务通过提供它自己的服务( 这些服务和传统组件的服务等价) 或者将传入的调用转化成对e j b 或 者n e t 组件的调用来支持r p c 机制。 支持文档交换 x m l 的主要优点是它不仅仅是数据的通用表示方式,也是复杂文档的通用表示方式。这些文档可能 很简单,比如在表示一个当前地址的时候:同时也可能是复杂的,比如在表示整个一本书或r f q 的时候。 w e b 服务支持文件的透明交换,极大地方便了业务集成。 w e b 服务的体系结构是由五种类型的技术层次实现的( 如图2 - 1 所示) ,w e b 服务的技术堆叠在一起, 一种技术依赖相邻的下一种技术。这些技术完全是基于标准的技术,只有基于标准,所有开放厂商才有 相同的准则,才能够在各自的平台上开发出具有跨平台互操作能力的软件产品和解决方案。标准是达成 3 东南大学硕士学位论文 跨平台互操作能力的灵魂。 图2 - 1w e b 服务的技术层次 发现 发现层为客户提供了一种获得服务提供者描述的机制。u d d i 有一种应用于w e b 服务的被广泛认可 的发现机制。 描述 由服务提供者提供对服务的描述。w s d l 是提供服务描述的工业标准。 封装 由传输层在网络中传递的应用程序数据必须以各方都能理解的格式进行封装。这包括了选择可理解 的数据格式和对数据的编码等等。 h t m l 是一种封装的格式,但是由于h t m l 偏重于信息的表示形式而不能很好地表达信息的含义, 所以不适合于w e b 服务。x m l 现在是绝大部分w e b 服务封装格式的基础,因为x m l 适合表达传递信 息的含义,而且x m l 分析器也已经很普遍地应用了。s o a p 是一种基于x m l 的常见的封装格式。 传输 传输层提供在网络层之上支持从应用到应用的通信的各种技术。这些技术包括像t c p 、h t t p 和 s t m p 等这样的协议。传输层的主要任务是在网络的两个或多个节点之间传输数据。 网络 w e b 服务技术层次中的网络层与t c p i p 网络模型中的网络层完全相同。网络层提供了支持基本通 信、寻址和路由的关键功能。 根据w e b 服务的特点和基于s a m l 的认证和授权系统应用实际需要,在系统实现过程中选择使用 w e b 服务的技术和架构。本章将重点讨论包含在w e b 服务架构五种技术层次内的,支持w e b 服务实现 的关键技术,以及在w e b 服务架构的技术层次之外的,为w e b 服务提供安全保证的规范。 2 1w e b 服务的网络传输技术h t t p 协议 2 1 1 h t t p 概述 h t t p ( h y p e r t e x t t r a n s f e r p r o t o c 0 1 ) 译为超文本传输协议。最初它只是一个面向对象的应用级协议, 而并非专用于超文本、超媒体的传输,但其精巧快速,特别是通用、无状态性以及面向对象的特点,使 之非常适合于分布式协作化超文本、媒体系统。因此取名为超文本传输协议。其实h t t p 经过扩展可用 于许多任务当中,如名字服务器、分布式对象管理系统等。当前h r r p 广泛用于i n t e m e t ,在w e b 服务 器和客户机之间提供超文本链接。 超文本技术随着八十年代多媒体计算机技术的兴起而蓬勃发展起来。超文本提供了将“声、文、图” 结合在起、综合表达信息的强有力手段。同时,作为一种接口技术,超文本提供了非常直观、灵活的 人机交互方法,开拓了许多应用领域。理解超文本最简单的方法就是与传统文本相比较。传统文本,无 论是书本,还是计算机的文本文件,都是线性的,读者在阅读时,必须一页一页顺序地读,读者没有选 择的余地。超文本与此不同,它不是一个线性的结构,而是一个非线性的网状结构。在制作超文本时, 4 墨主! 坐! 塑坠堡塑堡壑墨篓塑堑塑皇塞翌 可将写作素材按其内部的联系划分成不同层次、不同关系的模块单元,然后用制作工具将这些模块单元 组成一个网状结构。读者在阅读时,就不必象读线性文章时以顺序方式向下读,而是有选择地读自己感 兴趣的部分。 2 1 2h t t p 的运作方式及消息结构 h t t p 支持客户机( 浏览器) 与服务器间的通信,相互传送数据。一个服务器可以为分布在世界各 地的许多客户机服务。h t t p 采用请求、响应的握手方式,其基本的运作由以下四步组成: 1 ) 连接:客户机与服务器建立连接; 2 ) 请求:客户机向服务器提出请求; 3 ) 响应:如果请求被接收,则服务器送回应答,在应答中包括状态码和所要的响应信息; 4 ) 关闭:客户机与服务器断开连接。 其中“客户机”与“服务器”是一个相对概念,只存在于某个特定的连接期间,而非专用程序,即 在某个连接中的“客户机”在另一个连接中可能作为“服务器”。这也就是说对于h t t p 中的程序,应具 有“客户机”与“服务器”的双重功能。在i n t e m e t 上的通信一般是建立在t c p i p 连接上的,h t t p 的 连接也不例外,其缺省端口是t c p8 0 ,当然其它端口也可以使用。 h t t p 的消息有两类,即“客户机”发出的请求消息与“服务器”发出的响应消息。h t t p 的请求消 息采用了开放式的方法库形式,即方法可以扩充。用方法表示请求的目的,用u r i 表示某个方法用在哪 个资源上,消息的传送格式与i n t e m e t m a i l ( i n t e m e t 邮件) 和m i m e ( m u l t i p u r p o s e i n t e r n e t m a i l e x t e n s i o n s , 多用途i n t e m e t 邮件扩展) 相似。 完整的请求消息格式如下: 完整的响应信息格式如下 鬻黧熏瓣鬻鬻鬻熬骥鬻鬻;黎黍 2 1 3 h t t p 的主要特点 1 ) 简单 h t t p 本身既简单,又能有效地处理大量请求。在客户机与服务器连接后,客户机必须传送的信息 只是请求方法和路径。正是因为h t t p 协议简单,使得h t t p 服务器程序规模小,而且简单。因此经由 h t t p 的通信速度很快,与其它协议相比,时间开销小得多。 2 ) 灵活 h t t p 允许传输任意类型的数据对象。c o n t e n t t y p e 表示正在传输数据的数据类型。如果把数据看成 是在“罐”里的东西,那么c o n t e n t t y p e 是贴在罐上的标签,它告诉用户里面装的是什么东西。 3 ) 无连接 h t t p 是一个无连接协议。它的含义是限制每次连接只处理一个请求,客户机与服务器连接后提交 一个请求,在客户机收到应答后马上断开连接。使用这种无连接协议,在没有请求时,服务器不会在那 里闲等着,服务器更不会在完成一个请求后还把着原来的请求不放。对于无连接协议而言,服务器一方 实现起来比较容易,又能充分利用网上的资源。 4 ) 无状态 h r r p 是无状态的协议。这既是优点也是缺点。一方面,由于没有状态,协议对事务处理没有记忆 能力。如果后续事务处理需要前面处理的有关信息,那么这些信息必须在协议外面保存,势必导致每次 5 一一 查童奎兰堡主堂垡堕三 一 连接要传送较多的信息a 另一方面,也正是由于缺少状态使得h t t p 累赘少,运行速度高,服务器应答 快。 5 ) 元信息 h t t p i 0 对所有事务处理都加了头信息。也就是说,在主要数据前加上一块信息,我们称之为元信 息,即信息的信息。它使服务器能够提供传送数据的有关信息。例如,传送对象是哪种类型,是用哪种 程序语言构造的等等。人们还可以利用这些元信息进行有条件的请求,或者报告一次事务处理是否成功 等。 正是由于h t t p 具有上述的特点,目前它广泛应用于w e b 应用,它是w e b 服务的网络传输技术之 2 2w e b 服务的数据表示技术_ x m l 规范 9 0 年代初的w e b 诞生推动了i n t e m e t 及其应用的发展。尤其是在1 9 9 5 年出现j a v a 以后,w e b 技术 及其应用以令人惊异的速度发展。同时w e b 应用开发者开始体验到现有的h t m l 局限性,因为h t m l 并不具备大规模w e b 应用所需的可扩展性、结构化和数据验证等特性。为此,从1 9 9 6 年开始,w 3 c ( w o n d w i d ew e bc o n s o r t i u m ) 的一个工作组致力于设计一个超越h t 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 ,可扩展标记语言) 。1 9 9 8 年2 月,w 3 c 发布了x m l1 0 作为 其推荐标准。它给w e b 应用乃至网络计算注入了新的活力。 2 2 1x m l 概述 x m l 是s g m l 的一个优化子集。s g m l 是i s o ( 国际标准化组织) 在1 9 8 6 年推出的一个用来创建 标记语言的语言标准。s g m l 为出版业提供了一种将数据的内容与显示分离开来的数据表示方法,使得 数据独立于机器平台和处理程序。s g m l 的确在许多大型出版系统中很有用,但是它的复杂性使其难以 直接应用到i n t e r n e t 上,而h t m l 是专为w e b 上发布超文本而设计的标记语言,它是用s g m l 定义标 记语言的一个典型例子,但是h t m l 本质上主要关注w e b 浏览器如何在页面上安排文本、图象和按钮 等,过多地考虑外观使其缺乏对结构化数据的表示能力。另外,h t m l 中有限的标记不能满足很多w e b 应用的需要,如基于w e b 的大型出版系统和新一代的电子商务,而为各种应用需要不断地往h t m l 中 增加标记显然不是最终的解决方法,究其原因是h t m l 缺乏可扩展性。解决方案应该是简化s g m l 使 之能应用到w e b 上。在此背景下,作为w e b 上使用的s g m l 的个优化子集,x m l 应运而生。 同s g m l 类似,x m l 是一种元标记语言,使用者可按需创建新的标记,x m l 的可扩展性就在于此。带 标记的元素是x i v l l 文档的构造块,这种元素可以有若干个属性,并可以包含零个或多个子元素。这些子元 素可以是文本数据,也可以是带标记的元素。 x m l 文档可以在它的文档类型声明( d o c u m e n t t y p e d e c l a r a t i o n ) 里声明某个d t d ( d o c u m e n t t y p e d e f i n i t i o n ,文档类型定义) 。d t d 是关于x m l 文档中出现的标记和元素结构的语法约束,它可用来验证一 个x m l 文档。d t d 是一系列关于元素类型( e l e m e n tt y p e ) ,属性( a t t r i b u t e s ) ,实体( e n t i t i e s ) 和符号 ( n o t a t i o n s ) 的定义。它定义了文档所需的标记,比如可在文档里使用的元素类型,这些元素之间可能的 联系。 我们知道,d t d 缺乏对x m l 文档的内容及其语义的约束机制,这将限制x m l 处理器进行有效的类型 检验,应用软件开发者将不得不专门编写有关类型检验的代码。因此有必要为x m l 建立一个更全面的有效 性约束机制,使x m l 处理器更好地进行有效性检验。这样就产生了x m ls c h e m al a n g u a g e 。用s c h e m a l a n g u a g es c h e m a 书写的x m l 文档定义了相应x m l 文档的规则,以约束其数据元素及其关系。首先,s c h e m a 文档从数据结构和数据类型两方面更严格地约束相应的x m l 文档,它可以定义d t d 所无法定义的规则,而 d t d 仅从结构上对x m l 文档进行有限的约束。其次,d t d 语言有其独立的语法形式,而x m ls c h e m a l a n g u a g e 实际上是x m l 语言的一个应用( 类似h t m l 与s g m l 语言的关系) ,因此,s c h e m a 文档本身就是一 6 至主! 坐! 堕坠堡! ! 堡壑墨堑塑墅茎兰壅翌 个x m l 文档,可以用x m l 工具进行分析,这样s c h e m a 文档也就可以用现有的d t d 语言加以描述。 2 2 2 x m i ,和h t m l 的区别 s g m l 、x m l 、h t m l 这三种标注语言的相互关系可以描述为:x m l 是s g m l 的一个子集,而h t m l 是s g m l 的一个具体应用实例,同样。h t m l 也是x m l 的一个应用实例,具体地来说,h t m l 是由 x m l 或s g m l 定义出来的。目前,x m l 已经开始被广泛地采用,并且得到越来越多的数据库、i n t e m e t 软件厂商的支持。x m l 在w e b 应用的实现方面可以取代h t m l ,主耍是源于x m l 和h t m l 的以下本 质区别: 1 ) h t m l 是面向表示的,而x m l 是面向内容的。于是,x m l 文档就更多地反映了文档的内容和 逻辑结构信息;而h t m l 只能反映在表示上表现出来的部分结构信息,而且这些结构信息是脱离内容 的。 2 ) h t m l 的标注( t a g ) 是有限的,而x m l 的标注是可扩展的。要使用h t m l 有限的标注来表示 复杂的内容是不可能的;而使用x m l ,用户可以自定义标注。来表示自己想要表示的内容及其结构。 3 ) h t m l 文档不能提供任何关于整个文档内容、结构的信息,除非扫描整个文档:而x m l 文档可 以通过提供d t d 或是x m ls c h e m a 文档来说明文档的可能的限制结构。于是,x m l 文档可咀提供更多 的关于内容的模式信息。 4 ) h t m l 是w e b 显示数据的通用方法,丽x m l 提供了一个直接处理i n t e m e t 数据的通用方法。h t m l 着重描述w e b 页面的显示格式,而x m l 着重描述的是数据的内容及其结构,更深层次地看,描述的是 i n t e m e l 上共享交换的内容。 由于x m l 和h t m l 有着本质上的不同具体地说,就是x m l 比h t m l 提供了更多的对于内容 和结构的说明和限制的机制,使得存储、查询、管理x m l 文档相对而言更容易。总之,x m l 使用一个 简单而又灵活的标准格式,为基于w e b 的应用提供了一个描述数据和交换数据的有效手段。h t m l 描述 了显示全球数据的通用方法,而x m l 提供了直接描述处理全球数据的通用方法。 2 2 3 x m l 的主要特点 x m l 是一种自描述的数据共享机制,其主要特点如下: 1 ) 自描述性 这个特性使差异性可以存在,使计算机可以在没有人为干涉的情况下,理解数据的含义。 2 ) 可扩展性 文档通过d t d 或x m l s c h e m a 来定义文档结构,使其它信息系统能自动了解文档的内容。 3 ) 可校验牲 用户可以通过d t d 或x m l s c h e m a 来校验x m l 文档的格式是否满足d t d 或x m l s c h e m a 的约束。 4 ) 层次结构 能够保证信息的层次性描述。比如,一个商品可以有品名、商品代码和价格,价格又可以有基本价 格、商品税和运输费等。 5 ) 丰富的链接定义 对应于h t m l 单一的单向单通道链接,x m l 提供各种不同的链接,如一对多、多对一和双向链接。 6 ) 多样的样式表支持 x m l 把数据内容与它们的表现形式分开。这样既可以只关心数据的逻辑结构,也可以通过样式表来 格式化数据的表现,甚至可以定义自己的个人样式表来显示各种不同的x m l 数据。 2 2 4 x m l 的相关应用 睫着x m l 在i n t e m e t 应用中的不断普及,x m l 从w e b 网站的内容管理、内容描述起步,逐渐发数 7 东南大学硕士学位论文 到其它基于i n t e m e t 的应用中。这些所有x m l 相关的应用如下: 1 ) 内容管理发布 人们依靠x m l 的可自定义可扩展的能力来描述整个w e b 世界上种类繁多、样式丰富多彩的数据内 容,依靠一次描述、多次表现的x m l 标准应用模式使得基于x m l 的内容能够以多种形式进行信息发布。 这些发布方式包括w e b 网站内容发布、电子出版内容发布以及其他出版业内容发布等。 2 ) 电子商务应用 在这个领域中,x m l 一般承担了以往e d i 所承担的角色,人们依靠x m l 来描述交换商务事务信息, 实现分布式的电子商务应用的交互。由于x m l 是可定制的可扩展的,人们制定了很多用于特定领域的 商务事务信息描述规范,诸如本文所描述系统所实现的s a m l 规范。 3 ) 数据层集成 对于当代电子商务而言,商务数据的交换是应用的关键环节,随着在电子商务应用中( 比如b 2 b , b 2 c 应用,尤其是b 2 b 中) 商务信息交换的应用模式不断为主流应用开发所接受,面向通用领域的数据 集成数据交换应用也成为了一个重要的x m l 应用领域,在这方面,不少电子商务应用领域( 尤其是b 2 b 应用) 的解决方案在陆续进入这更为泛化的领域。 4 ) 应用层集成 当x i v l l 在经历了电子商务应用的经验之后;人们逐渐地不仅在数据层上完成应用系统( 尤其是商 务系统) 的连接,同时希望能在业务层或者函数层上完成系统的互联,这也就是人们常说的i n t e r n e t 环 境的应用的广泛互联,w e b 服务的相关技术正是致力于完成这一应用需求。 5 ) 系统配置信息描述 随着x m l 在各种各样应用开放中的延伸,原先在系统软件、应用软件中使用文本文件、p r o f i l e 文 件或者是i n i 文件形式进行系统、应用配置信息管理的方式逐渐被使用x m l 文档的管理方式所替代。 2 3w e b 服务的调用技术s o a p 规范 2 3 1s o a p 产生背景和原因 简单对象访问协议( s i m p l eo b j e c t a c c e s sp r o t o c a l ,s o a p ) 最初是由v s e r l a n ds o f t w a r e 的d l i v ew i n t e r 创建的基于x m l 的r p c 机制的想法。1 9 9 9 年后期,此想法在d e v e l o p m e n t o r 的w i n e r ,d o nb o x 和 m i c r o s o f t 的共同努力下,发展成了s o a p 版本0 9 。其主要目的是为了使用h r r p 协议来调用远程的c o m 对象,以跨越网络和防火墙的限制,提升c o m 的使用能力。随着i b m 等公司的加入,s o a p 慢慢不再 局限于w i n d o w s 平台,被衍生到了j a v a 平台,该协议也不再仅仅是h t t p ,s m t p 、f t p 等可以被使用 了,s o a p 这种跨平台、跨语言、跨协议地完成对象互联的方法渐渐显露出了它的优越性。s o a p 可以 看成是分布式对象访问技术的一个新的特性。 在主流的分布式对象技术中,无论是c o r b a 中的组件模型,还是c o m + 中的c o m d c o m ,或是 j 2 e e 中的e j b 都为分布式对象操作提供了一个很优秀的解决方案和技术架构。然而现代应用的需求绝 不会希望解决方案被束缚在一个平台之中,一个企业所挑选的各种软件产品很可能会涉及到各种组件平 台,这可能是因为时间的因素,也可能是因为部门的因素,当然更可能是因为竞争的因素,而b 2 b 商务 的全球化需要企业从内部到外部实现广泛的系统互联,从e a i 到b 2 b i ,异构系统、异构组件平台的互 联是一个迫切需要解决的问题。 随着s o a p 的出现,人们越来越发现这是解决不同组件平台互联的一个理想技术,此时,x m l 已 经得到广泛的应用,大多数平台已经有了能够使用的x i v l l 的处理器,使用x m l 重新描述和和包装各自 远程组件访问协议,以使得各种组件平台的远程访问协议都能通过同一个标准的消息进行传输,这就是 s o a p 的初始概念。 虽然各种组件平台都有其自身的远程对象调用协议,c o r b a 是i i o p ,c o m + 是o r p c ,而j 2 e e 是 r m i ,然而它们都能够将这些协议中的数据重新包装成s o a p ,也就是说,每个平台需要有一个协议适 基于s a m l 的认证和授权系统的研究与实现 配器,以实现从自身协议到s o a p 协议的转化,如此它们就能够通过s o a p 协议互相调用了。为什么不 是r m i 、不是i i o p 、不是o r p c 成为s o a p 这种角色呢? 原因就在于这些都是平台规范,而s o a p 是 与平台无关的纯消息协议规范,而且又是基于应用广泛的、与平台无关的数据规范描述规范x m l 的, 能够顺利地在各个平台进行实施。 当然,并不是说,各个平台上的应用将本需要通过i i o p 、o r p c 或者r m i 的调用消息使用s o a p 重新表现和包装之后,就能够实现互相的调用了,这只是第一步,通道准备。其次,我们还需要规定统 一的数据映射和编码机制,统一的r p c 机制等,如此一个平台发出的消息另一个平台才能识别。这才是 s o a p 的核心。 2 3 2 s o a p 组成 s o a p 规范由四个部分组成: s o a p e n v e l o p ( s o a p 封套) :它构造定义了个整体的表示框架,可用于表示在消息( m e s s a g e ) 中的是什么,谁应当处理它,以及这是可选的还是强制的( 所谓可选的就是可以由目标应用程 序自己选择是否处理,而强制则是表明必须处理,如果无法处理,则需要返回错误) 。 s o a pe n c o d i n gr u l e s ( s o a p 编码规则) :它定义了一个数据的编序机制,通过这样一个编序机 制来定义应用程序中需要使用的数据类型,并可用于交换由这些应用程序定义的数据类型所衍 生的实例。例如,可能应订单服务的需要,使用s o a p 编码规则定义了订单的数据类型,并可 以在订单生成的客户端与订单服务之间交换订单实例。 s o a pr p cr e p r e s e n t a t i o n ( s o a pr p c 表示) :它定义了一个用于表示远端过程的调用和响应的 约定。 s o a p b i n d i n g ( s o a p 绑定) :它定义了一个使用底层传输协议来完成在结点间交换s o a p 封套 的约定。 为了简化s o a p 的复杂度,这四部分在功能上是正交的。特别的,封套和编码规则是被定义在不同 的x m l 命名空间( n a m e s p a c e ) 中,这样有利于通过使用模块化的设计获得实现的简明性。 在s o a p 规范中,还定义了两种s o a p 绑定( b i n d i n g ) ,用于描述s o a p 消息如何通过带h t t p 扩 展框架( h t t pe x t e n s i o nf r a m e w o r k ) 的h t t p 消息进行传输,或者是如何通过不带h t t p 扩展框架的 h 1 v r p 消息进行传输。 2 3 3s o a p 基本概念 1 ) 协议 s o a p :关于s o a p 消息的格式和处理规则为沿着s o a p 消息传输路径交换消息而需要的,不 同应用程序之间生成和接收s o a p 消息的交互过程的简单控制机制的一整套规范和约定。 s o a p 绑定:它为传输的需要而将s o a p 消息在另一个底层网络传输协议之上或之内传输的一 整套规范和规则。典型的s o a p 绑定包括在h t t p 消息中传送s o a p 消息或直接在t c p 之上传 送s o a p 消息等。 s o a p 结点:s o a p 结点根据s o a p 定义的整套规范来处理s o a p 消息。s o a p 结点有责任遵 守s o a p 消息交换的规则以及提供通过依赖底层协议的s o a p 绑定来访问的服务。任何不符合 s o a p 约定的情况都将导致s o a p 结点产生一个s o a p f a u l t 。 2 ) 数据封装 s o a p 消息:s o a p 消息是在对等s o a p 结点间通信的基本单位。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学位计算机试题及答案
- 股权跨境交易资产评估与交易结构设计合同
- 网红咖啡连锁店区域代理加盟及系统化技术培训协议
- 越南建筑承包工程合伙合同
- 影视音乐版权改编授权及海外收益分成协议
- 重大活动专用接送车服务补充协议
- 智慧城市智慧环保监测总包合同
- 货币市场基金销售渠道补充协议
- 网红奶茶品牌区域代理加盟及产品品质管控合作协议
- 校招运维工程师笔试题目及答案
- 2024年湖南省高中学业水平合格性考试英语试卷真题(含答案详解)
- 《内科胸腔镜术》课件
- 2024年《体育基础理论》考试题库(含答案)
- CJJ 33-2005城镇燃气输配工程施工与验收规范
- 《市场营销:网络时代的超越竞争》第4版 课件 第9章 通过构建渠道网络传递顾客价值
- 农民工工资代付款方协议模板
- 药物合成反应-9合成设计原理
- 跨学科阅读纲要智慧树知到期末考试答案章节答案2024年山东师范大学
- 2025届湖南省数学高一下期末学业水平测试试题含解析
- 哮病-《中医内科学》教案
- 《阵列式消声器技术要求》(T-CAEPI 17-2019)
评论
0/150
提交评论