(计算机应用技术专业论文)基于rest的atom发布协议研究及其应用.pdf_第1页
(计算机应用技术专业论文)基于rest的atom发布协议研究及其应用.pdf_第2页
(计算机应用技术专业论文)基于rest的atom发布协议研究及其应用.pdf_第3页
(计算机应用技术专业论文)基于rest的atom发布协议研究及其应用.pdf_第4页
(计算机应用技术专业论文)基于rest的atom发布协议研究及其应用.pdf_第5页
已阅读5页,还剩84页未读 继续免费阅读

(计算机应用技术专业论文)基于rest的atom发布协议研究及其应用.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第1 页 摘要 “r e s t ( r e p r e s e n t a t i o n a ls t a t et r a n s f e r ,表示性状态转移) 一词是2 0 0 0 年由r o y t h o m a sf i e l d i n g 在其博士论文中提出的。近年来,国内外都开始了 基于r e s t 的研究。但是由于r e s t 只是一种设计原则,所以无论研究r e s t 或实现遵循r e s t 原则的应用都存在很大的困难和模糊性。 a t o m 发布协议( a t o mp u b l i s h i n gp r o t o c 0 1 ) 是一种重要的内容发布和管 理新标准,是一种由i e t f 发布的基于h t t p 协议运用h t t p 方法( g e t ,p o s t , p u t ,d e l e t e ) 创建和编辑w e b 资源的应用层协议。a t o m 发布协议实际就 是基于r e s t 的w e b 服务协议,它对r e s t 。的诸多方面进行了严格的控制和 规范化。因此研究a t o m 发布协议,就是研究r e s t 的核心价值。 本文首先阐述了r e s t 以及a t o m 发布协议的基本概念。然后基于r o a ( 面向资源的架构) ,从h t t p 和u r i 等r e s t 基本特性,对a 1 的m 发布协 议进行了分析,给出实现一个具体的a t o m 发布协议演示系统的需求分析, 并使用基于r e s t 的应用框架r u b yo nr a i l s 进行了系统设计,使用r a i l s 实 现了对a t o m 发布协议演示系统。最后,对a t o m 发布协议演示系统用目前 两种流行的a t o m 发布协议客户端进行了运行和测试。最终验证了以m v c ( 模型、视图和控制器) 实现a t o m 发布协议的正确性。 关键词:r e s t ;a t o m 发布协议;r o a ;r u b y o n r a i l s a b s t r a c t “r e s t ,( r e p r e s e n t a t i o n a ls t a t et r a n s f e r ) w a sp u tf o r w a r db yd r r o y t h o m a sf i e l d i n gi nh i sd o c t o r a ld i s s e r t a t i o ni n 2 0 0 0 r e s e a r c h e so nr e s ta r es t a r t e di nr e c e n ty e a r s h o w e v e r , b e c a u s er e s ti sj u s t ad e s i g np r i n c i p l e , t h e r ee x i s tg r e a td i f f i c u l t y a n df u z z i n e s si nr e s e a r c ho rr e a l i z a t i o no fr e s t a p p l i c a t i o n 一 a t o mp u b l i s h i n gp r o t o c o l ( a p p ) i san e wa n di m p o r t a n ts t a n d a r d o fc o n t e n tp u b l i s h i n ga n dm a n a g e m e n t ,w h i c hi s a l la p p l i c a t i o n - l a y e rp r o t o c o l i s s u e db vi e t fb a s c do nh 订pp r o t o c o l ,u s i n gh t t pm e t h o d s ( g e t ,p o s t ,p u t a n dd e l e t e ) t oc r e a t ea n de d i tw e br e s o u r c e s a c t u a l l y , a p p i saw e bp r o t o c 0 1b a s e do nr e s tb ys t r i c t l yc o n t r o l l i n g a n dr e g u l a t i n gr e s ti nm a n ya s p e c t s t h e r e f o r e ,r e s e a r c h o na p pi st h ec o r ev a l u e o ft h e r e s e a u r e l l 0 nr e s 思 f i r s t l v t h eb a s i cc o n c e p to ft h er e s ta n da p pi s i n t r o d u c e di nt h i st h e s i s s e c o n d l y ,a c c o r d i n g t ot h eb a s i cn a t u r eo fr e s to nm w a n du r i , a p pi sa i l a l v z e db a s e do nr o a ( r e s o u r c e - o r i e n t e da r c h i t e c t u r e ) ,a n d t h e r e q u i r e m e n ta i l a l y s i so fad e m o n s t r a t i o ns y s t e mo fa p pi s g i v e n t h i r d l y , t h es v s t e i i li sd e s i g n e da n di m p l e m e n t e db yr u b yo nr a i l s f i n a l l y , t h e s y s t e m i st e s t e dr e s p e c t i v e l yb yu s i n gt w op o p u l a r a p pc l i e n t s t h er e s u l t sp r o v e t h ec o r r e c t n e s so ft h es y s t e mi m p l e m e n t e db ym v cp a t t e r n ( m o d e l ,v i e w , c o n t r o l l e r ) k e yw o r d s :r e s t ;a t o mp u b l i s h i n gp r o t o c o l ;r o a ;r u b y o n r a i l s 西南交通大学学位论文创新性声明 本人郑重声明:所呈交的学位论文,是在导师指导下独立进行研究工作 所得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。 本学位论文的主要创新点如下: 第一,本文首次运用了r e s t 最新的研究:r o a 的分析和设计方法。 第一,本文直接将r e s t 的理念与r e s t 的框架相结合,具体运用在a t o m 发布协议上。 第三,本文首次提出了以m v c 模式实现a t o m 发布协议的观点,对于实 现a t o m 发布协议具有较强的指导和借鉴意义。 西南交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学 校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权西南交通大学可以将本论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或扫描等复印手段保存和汇编本学位 论文。 本学位论文属于 1 保密口,在年解密后适用本授权书; 2 不保密吼使用本授权书。 ( 请在以上方框内打“ ) 学位论文作者签名:跞毛 日期:硒g 7 冶 上1,j 讫 a 岁 嗡了 名 _ 戳 巧 j p ) 勘 导期指日 西南交通大学硕士研究生学位论文第1 页 第1 章绪论 1 1 国内外的研究现状与存在的问题 1 1 1r e s t 的研究现状 “r e s t ”代表r e p r e s e n t a t i o n a ls t a t et r a n s f e r ( 表示性状态转移) 。它是2 0 0 0 年由r o yt h o m a sf i e l d i n g 1 j 在其博士论文( ( a r c h i t e c t u r a ls t y l e sa n dt h ed e s i g n o f n e t w o r k b a s e ds o f t w a r ea r c h i t e c t u r e s ) ) 的第五章首次提出的。r o yf i e l d i n g 的博士论文是提出r e s t 概念的基础文献。r i c h a r d s o n 等【2 j 撰写的( ( r e s t f u l w e bs e r v i c e s ) ) 一书详细阐述了如何从概念走向实际设计,比较全面地介绍如 何构建r e s t 风格的w e bs e r v i c e s ,并且提出了r o a ( r e s o u r c eo r i e n t e d a r c h i t e c t u r e ,面向资源的架构) 的新概念。 在国内,姚鹤岭【3 】在其博士论文基于r e s t 的g i sw e b 服务研究中 首次将r e s t 与g i s ( g e o g r p h i c a li n f o r m a t i o ns y s t e m ) 联系在一起,为继续向 该方向研究打下了基础。詹掣4 】在其博士论文基于a j 栅s t 的g i sw e b 服务研究与实现中结合r e s t 和a j a x 【5 j ( a s y n c h r o n o u sj a v a s c r i p ta n d x m l ) 的各自优点,形成新的g i sw e b 服务架构。此外,软件世界2 0 0 7 年第1 7 期有一个r e s t 专题,对r e s t 的概念、开发r e s t 风格的w e bs e r v i c e s 的框架,以及与s o a p 6 】( s i m p l eo b j e c ta c c e s sp r o t o c 0 1 ) 协议栈的对比进行 了阐述【7 一。在w 曲服务方面,黄宁海【l o 】在其硕士学位论文基于r e s t 的轻 量级j 2 e e 架构实现提出了基于r e s t 的轻量级架构的概念。 1 1 2a t o m 发布协议的研究现状 2 0 0 5 年1 2 月,互联网工程任务组( i n t e r n e te n g i n e e r i n gt a s kf o r c e ,i e t f ) 发布了a t o m 联合格式( a t o ms y n d i c a t i o nf o r m a t ,r f c 4 2 8 7 ) j i l l 2 0 0 7 年 l o 月,i e t f 又发布了a t o m 发布协议( a t o mp u b l i s h i n gp r o t o c o l ,a p p ) u 2 。 其目标是提供“用于表示的提要格式和用于编辑w e b 资源的协议,如w e b l o g 、 在线日志、w i k i 以及类似的内容”。 目前a t o m 发布协议研究的文献资料较少。其中最重要的文献资料为m m 开发者网站上的认识a t o m 发布协议系列 的3 篇文章以及若干篇关于“a t o m 西南交通大学硕士研究生学位论文第2 页 技巧 的文章( 侧重于现存的a t o m 发布协议服务器的互操作) i 3 - l s 】。专门的 著作以2 0 0 6 年d a v ej o h n s o n 所著的( ( r s sa n d a t o mi n a c t i o n ) ) 为代表【l 引。 国内目前还有没有a t o m 发布协议的相关研究。国外a t o m 发布协议的研 究主要集中在【l7 1 。大致分为两类: ( 1 ) 以r o l l e r 为首的几个博客系统以及几个a t o m 发布协议测试服务器 上。 ( 2 ) g o o g l e 的g d a t a 的a p p 扩展。g d a t a 目前已被用在了g o o g l e b l o g g e r 、g o o g l ec a l e n d a r 、g o o g l en o t e b o o k 等w e b 应用上。 1 1 3 研究背景与存在的问题 近年来,国内外都开始了基于r e s t 的研究。但是由于r e s t 只是一种 设计原则,而不是一种架构,所以无论研究r e s t 或实现遵循r e s t 原则的 应用都存在很大的困难和模糊性。由于对r e s t 理论理解不精确,一些知名 的w e b 服务提供商甚至推出了r e s t - r p c i l 8 】混合的w e b 服务,如:d e l i c i o u s a p i 、f l i c k rw e ba p i ,它们都被说成是r e s t 式架构的w e b 服务。可以看出, 连世界级的w e b 服务提供商和w e b 2 0 先驱( 如d e l i c i o u s 和f l i c k r ) 都存在 这样的问题,更不用谈对于初涉r e s t 领域的机构和组织了。可以推断,在 达到真正理解并成功运用r e s t 之前,无论国外还是国内都需要花很长的时 间实践与研究,而随之付出的代价也是无法估计的。 a t o m 发布协议是一种重要的内容发布和管理新标准,是一种基于h t t p 【l 卅协议运用h t t p 方法( 如g e t 、p o s t 、p u t 和d e l e t e ) 创建和编辑w e b 资源的应用层协议。a t o m 发布协议实际就是基于r e s t 的w e b 服务协议, 它对r e s t 的诸多方面进行了严格的控制和规范化。因此,研究a t o m 发布 协议,就是研究r e s t 的核心价值和原则。尽管协议级r e s tw e b 服务对于 构建更灵活高效的r e s tw e b 服务、对于构建诸如d e l i c i o u s 的书签w e b 服 务和f l i c k r 的照片共享w e b 服务都有所约束,但是它的确可以以一种标准的 方法解决大部分发布和管理的问题。例如p h o t o f r i e n d 【2 0 】就是与f l i c k r 功能类 似的a t o m 发布协议实现,而b l o g m a r k s t 2 1 】是与d e l i c i o u s 功能类似的a t o m 发 布协议实现。 a t o m 发布协议或许对于今天国内的w e b2 0 系统尤其重要。国内的w e b 2 0 系统( 如豆瓣网、y o u k u 等) 在系统功能上与国外的w e b2 0 系统上差 距已经很小了,但是在构建w e b 服务方面差距相当大。比如,豆瓣网和y o u k u 西南交通大学硕士研究生学位论文第3 页 根本就不提供w e b 服务a p i ,它们的客户端仅限于浏览器和新闻阅读器。w e b 2 0 的真正意义在于“可编程的w 曲”( p r o g r a m m a b l ew e b ) ,即w e b 是可读写 的。若采取了相应措施实现类似a t o m 发布协议的w e b 服务,将有助于提高 国内w e b 2 0 网站的知名度和增加更多的可用性,如通过a t o m 发布协议客户 端管理照片,媒体和博客文章等。 1 2 论文的研究内容 本论文的研究将以a t o m 发布协议为中心,采用r o a 的分析与设计方法, 使用r u b yo nr a i l s 应用框架,解决a t o m 发布协议实现的关键问题,并进行 协议测试与互操作测试。 本论文将对如下工作展开研究: ( 1 ) r e s t 的基本概念和a t o m 格式与a t o m 发布协议的基本概念。 ( 2 ) 基于r e s t 的应用框架r u b y o n r a i l s 重要路由机制的研究。 ( 3 ) 基于r e s t 的r o a 分析和设计方法在a t o m 发布协议中的实际运 用。 ( 4 ) a t o m 发布协议的m v c 实现方法以及a t o m 发布协议的测试。 1 3 论文的结构 本论文共分为6 章。 第1 章绪论:简要介绍了r e s t 和a t o m 发布协议的研究现状,并分析了 当前r e s t 风格w e b 服务存在的问题,确立了本文的研究方向基于r e s t 的a t o m 发布协议研究及其应用。同时介绍了本文的结构安排。 第2 章r e s t 和a t o m 协议分析:介绍了r e s t 的基本概念和a t o m 格 式,并对a t o m 发布协议进行简要分析。 第3 章a t o m 发布协议演示系统的分析与总体设计:基于r o a ( 面向资 源的架构) ,从h t t p 和u r i 等r e s t 基本特性,对a t o m 发布协议进行了 分析,给出一个具体的a t o m 发布协议演示系统的需求分析。 第4 章a t o m 发布协议演示系统设计:继续延续第3 章的r o a 分析设 计方法,从高层的角度引入基于r e s t 的应用框架r u b yo nr a i l s ,并侧重于 a t o m 发布协议演示系统服务器端进行了系统设计。 第5 章a t o m 发布协议演示系统服务器端的实现:使用r a i l s 框架实现 西南交通大学硕士研究生学位论文第4 页 了对a t o m 发布协议演示系统。 第6 章a t o m 发布协议演示系统的的运行和测试:使用基于p y t h o n 的测 试工具a p p c l i e n t t e s t 对系统进行了协议测试,并利用a t o m 发布协议客户端 a t o m m i c 进行了运行演示,最终验证了系统的正确性。 最后,在结论与展望部分,总结归纳了论文的内容、进一步的研究方向, 结合a t o m 技术展望了r e s t 风格w e b 服务的发展趋势和可能的发展方向。 西南交通大学硕士研究生学位论文第5 页 2 1r e s t 第2 章r e s t 和a t o m 协议分析 2 1 1r e s t 定义 r e s t ( r e p r e s e n t a t i o n a ls t a t et r a n s f e r ) 一词是2 0 0 0 年由r o yt h o m a s f i e l d i n g 在其博士论文“a r c h i t e c t u r a ls t y l e sa n dt h ed e s i g no fn e t w o r k b a s e d s o f t w a r ea r c h i t e c t u r e s ”中提出的。 r e s t 本身不是标准,而是为分布式超媒体系统设计的一种架构风格。基 于w e b 的架构,实际上就是各种约束的集合,这些约束共同组成了w e b 架构。 比如h t t p 协议、客户端服务器模式,这些都是约束。每当在原有约束的基 础上增加新的约束,就会形成新的架构。而r e s t 正是这样一种架构风格, 它结合了一系列的约束,从而形成了一种新的基于w e b 的架构风格。 r e s t 以w w w 协议为基础,添加了如下6 个约束: ( 1 ) 客户一服务器 该约束通过分离用户接口和数据存储这两个关注点,使得不同用户终端 享受相同数据成为了可能,改善了用户接口跨多个平台的可移植性,并且通 过简化服务器组件,改善了系统的可伸缩性。 ( 2 ) 无状态性 无状态性是在客户一服务器约束的基础上添加的又一层约束。它要求通 信必须在本质上是无状态的,即从客户到服务器的每个请求都必须包含理解 该请求所必须的所有信息。 ( 3 ) 缓存 为了改善无状态性带来的网络的低效性,添加了缓存约束。缓存约束允 许隐式或显式地标记一个响应中的数据,这样就赋予了客户端缓存响应数据 的功能,以后的请求就可以共用缓存的数据,部分地消除了一部分交互,增 加了网络的效率。 ( 4 ) 统一接口 r e s t 架构风格的核心特征就是强调组件之间有一个统一的接口,在 西南交通大学硕士研究生学位论文第6 页 r e s t 世界里,网络上所有的事物都被抽象为资源,通过通用的链接器接口 对资源进行操作。这样设计的好处是保证系统提供的服务都是解耦的,极大 地简化了的系统,从而改善了系统的交互性和可重用性。并且r e s t 针对w e b 的常见情况做了优化,使得r e s t 接口被设计为可以高效地转移大粒度的超 媒体数据。 ( 5 ) 分层系统 分层系统规则的加入提高了各种层次之间的独立性,为整个系统的复杂 性设置了边界,通过封装遗留的服务,使新的服务器免受遗留客户端的影响, 这也就提高了系统的可伸缩性。 ( 6 ) 按需代码 r e s t 允许对客户端功能进行扩展。比如,通过下载并执行a p p l e t 或脚本 形式的代码,来扩展客户端功能。但这在改善系统可扩展性的同时,也降低 了可见性,所以它只是r e s t 的一个可选的约束。上述6 个约束附加上之后, r e s t 架构风格就形成了。 2 1 2r e s t 的重要元素 r e s t 是针对w e b 应用而设计的,其目的是为了降低开发的复杂性,提 高系统的可伸缩性。r e s t 提出了如下设计准则: ( 1 ) 网络上的所有事物都被抽象为资源( r e s o u r c e ) ; ( 2 ) 每个资源对应一个惟一的资源标识符( r e s o u r c ei d e n t i f i e r ) ,一般称 为u r i ( u n i f i e dr e s o u r c ei d e n t i f i e r ,统一资源标识符) ; ( 3 ) 通过通用的连接器接口( g e n e r i cc o n n e c t o ri n t e r f a c e ) 操作资源; ( 4 ) 对资源的各种操作不会改变资源标识符; ( 5 ) 所有的操作都是无状态的( s t a t e l e s s ) 。 下面对于r e s t 的中的几个重要数据元素:资源( r e s o u r c e ) 、资源标识 ( r e s o u r c ei d e n t i f i e r ) 以及表示( r e p r e s e n t a t i o n ) 进行说明。 1 资源 r e s t 架构中的关键就是“资源”的概念。任何可命名的信息都可看作是一 个资源:如文档、图片、临时的服务、其它资源的集合、非虚拟对象等等。 换句话说,任何可能成为服务的超文本参考的目标都必须适合于资源的定义。 个资源是一组实体的概念化的映射, 体。更精确地说,设一个资源记为r , 而不是某个特定时间点映射的具体实 一个成员函数记为m r ( t ) ,t 代表时 西南交通大学硕士研究生学位论文第7 页 间,在某个特定时间t 的时刻,m r ( t ) 映射为一组实体或相等的一组值。这 些值可以是资源的表示或资源标识,那么r 可以看作是一个经常变化的成员 函数m r ( t ) 。 2 资源标识 r e s t 使用资源标识来标志一个特定资源。r e s t 连接器提供一个通用接 口来对资源的一组值进行存取和操作,不管这个成员函数是如何定义,或者 处理请求的软件的类型如何。命名资源标识的依据必须保证映射语义有效性 不随时间变化而变化,比如,保证成员函数不变化。 3 表示 r e s t 组件在资源上的动作主要包括:( 1 ) 使用一个“表示”去捕捉该资源 的当前或趋向状态;( 2 ) 将该“表示“传递于组件之间。 一个“表示”就是一系列的字节,加上表述这些字节表示元数据。对于一 个表示来说还有一些其它常用的名称( 尽管不太精确) ,包括:文档、文件、 h t t p 消息实体、实例、或变量。一个表示包括数据、表述数据的元数据, 有时还包括描述元数据的元数据( 一般为了确认消息的完整性) 。元数据以“名 称一值”对的形式出现,名称对应于定义值结构和语义的标准。应答消息可能 包括表示元数据和资源元数据。表2 1 是对r e s t 数据元素的总结。 表2 1r e s t 的数据元素 数据元素现代w e b 实例 资源一个超文本引用意图指向的概念上的目标 资源标识符u r l 、u r n ( u n i f o r m r e s o u r c e n a m e ,统一资源名称) 表示h t m l 文档、j p e g 图片 表示元数据媒体类型、最后修改时间 资源元数据 源链接、a l t e r n a t e s 、v a r y 控制数据 i f - m o d i f i e d s i n c e 、c a c h e c o n t r o l 2 2r e s t 开发框架 2 2 1 概述 r e s t 为构建下一代高性能、高可伸缩性、简单性、可移植性、可靠性的 w e b 程序提供了一个架构风格上的准则。w e b 是简单的,w e b 更是可编程的。 r e s t 利用简单的h i q p 、u r i 标准和x m l 语言构建起轻量级的w e b 服务, 西南交通大学硕士研究生学位论文第8 页 从而大幅度地提升了开发效率和程序性能。由于r e s t 设计哲学变得越来越 流行,许多r e s t f u l 框架如雨后春笋般涌现出来,其中包括r u b y o n r a i l s 框 架。 2 2 2r u b yo nr a i l s r o r 是r u b y o nr a i l s 的缩写,r a i l s 是一个相对较新的应用程序框架,用 于编写网络应用程序。它基于计算机软件语言r u b y ,给程序开发人员提供强 大的框架支持,使w e b 应用的开发、部署和维护变得更容易。r u b yo nr a i l s 包括两部分内容【2 2 】:r u b y 语言和r a i l s 框架。 1 r u b y 语言及其特点 r u b y 语言是- - f 通用的、面向对象的和解释性的编程语言,与p y t h o n 、 s m a l l t a l k 和p e r l 三种编程语言有些类似。r u b y 语言起源于日本,研发者是松 本行弘,他开发r u b y 语言的初衷是希望提高编程的效率 2 3 1 。r u b y 语言的主 要特点如下 2 4 】: ( 1 )纯面向对象语言 ( 2 )解释型脚本语言 ( 3 )动态载入 ( 4 )自动内存管理机制 ( 5 )多精度整数 ( 6 )迭代器和闭包 ( 7 )开源项目 2 r a i l s 框架及其特点 r a i l s 框架首次提出是在2 0 0 4 年。r a i l s 结合了p h p 体系的优点( 如:快 速开发) 和j a v a 体系的优点( 如:程序规整) 。r a i l s 是一个更符合实际需要 的而且更高效的w e b 开发框架。r a i l s 框架有6 大特点【2 5 】。 ( 1 ) 全栈式m v c 框架 通过r a i l s 可实现m v c ( m o d e l ,v i e wa n dc o n t r o l l e r ) 模式中的各个层次, 并使它们无缝地协同运转。在实际开发一个m v c 模式的w e b 应用项目时, 如果使用j a v a 开发需用到s t r u t s ( m o d e l 层) 、h i b e r n a t e ( c o n t r o l l e r 层) 和s p r i n g ( v i e w 层) 3 个框架,而且需要额外整合3 个框架开发出的内容。而使用r u b y 语言开发相同项目时,只需用到r a i l s 框架即可完成。 ( 2 ) 约定优于配置 西南交通大学硕士研究生学位论文第9 页 这意味着在r a i l s 中不会出现x m l 配置文件。r a i l s 使用w e b 应用多年 来积累的常见约定( 命名规则) 来代替x m l 配置文件,r a i l s 内部的映射与 发现机制根据这些约定可实现对象间的关联。 ( 3 ) 更少的代码 使用约定来代替x m l 配置文件说明r a i l s 本身已完成了大量底层工作, 为使用更少代码实现应用程序提供了可能。此外,代码量的缩减也减少了出 现b u g 的可能,降低了维护和升级程序的难度。 ( 4 ) 生成器 r a i l s 使用的实时映射技术和元编程技术,免去了开发人员在开发过程中, 编写大量样板文件代码的烦恼,在少数需要使用样本文件代码的时候,开发 人员可通过r a i l s 内建的生成器脚本实时创建,而不通过手工编写可使开 发人员更专注于系统逻辑结构。 ( 5 ) 零周转时间 使用r a i l s 开发w e b 应用系统,可通过浏览器即时查看程序运行结果, 节约了大量时间。 ( 6 ) 支架系统 r a i l s 支架系统可自动为任何相关的数据库表创建一套包含标准c r u d ( c r e a t e ,r e a d ,u p d a t ea n dd e l e t e ) 操作和前台视图的系统。通过支架系统,开 发人员可方便快捷地操纵数据库中的数据表。此外,r a i l s 也允许开发人员使 用自己设计的代码或视图来替换自动生成的代码或视图。 2 3a t o m 联合格式 2 0 0 5 年1 2 月,i e t f 正式把a t o m 作为一个i n t e m e t 标准发布,即正式的 r f c 4 2 8 7a t o m 联合格式( r f c 4 2 8 7a t o ms y n d i c a t i o nf o r m a t ) ,即a t o m l 0 。 a t o m 联合格式是一种基于x m l 2 6 1 的w 曲内容和元数据的联合格式。 2 3 1a t o m1 0 的标准特性 a t o m1 0 的标准特性包括以下内容【2 刀: ( 1 ) 单个记录能够独立于f e e d 存在,为采集和发布联合内容提供了全新 的选择。 ( 2 ) 与i s o 一8 6 0 1 和x m ls c h e m a 兼容的时间戳。 西南交通大学硕士研究生学位论文第10 页 ( 3 ) 使用x m l :b a s e 支持相对u r i 。 ( 4 ) 通过使用i n t e r n a t i o n a l i z e dr e s o u r c ei d e n t i f i e r s ( m i s ) c 2 8 】和x m l :l a n g 增强 了国际化。 ( 5 ) 可访问性( a c c e s s a b i l i t y ) 特性使残障人士更容易使用f e e d 。 ( 6 ) 类h t m l 的动态可扩展链接机制可以将f e e d 或e n t r y 链接到外部资 源。 ( 7 ) 自参考( s e l f - r e f e r e n t i a l ) f e e d 有助于简化订阅过程。 ( 8 ) 可以标识a t o m1 0 文档的m i m e 媒体类型。 ( 9 ) 对x m ld i g i t a ls i g n a t u r e s 和x m le n c r y p t i o n 提供内建支持。 ( 1 0 ) 验证a t o m1 0 文档示例的非标准r e l a x n g 模式。 ( 1 1 ) 兼容r d f 的核心子集。 总之,a t o m 内建的种种特性是这种格式能够支持更广泛的联合应用,并 克服了现有联合标准家族中普遍存在的很多技术不足。 2 3 2a t o m 通用结构 a t o m 定义了一些通用的结构、属性和元素以便在整个格式中重用,其中 最重要的是d a t e 、t e x t 和p e r s o n t 2 9 1 。 ( 1 ) d a t e 结构d a t e 比较简单,d a t e 结构被定义为包含日期的一个 元素,日期格式遵循r f c3 3 3 9 规范的i s 0 8 6 0 1 格式【3 0 】。 ( 2 ) t e x t 结构| t e x t 结构是一个包含文本的元素,而类型属性表明文 本的存储方式。如果类型属性是“t e x t ”,那么这个元素就包含普通文本,并且 没有任何类型的标记。如果它是“h t m l ”,那么这个元素包含文本和转义的 h t m l 3 1 1 标记。如果类型是c c x h t m l ”,那么这个元素包含x h t m l 3 2 1 、x m l 元 素以及文本形式的非转义的x h t m l 标记。 ( 3 ) p e r s o n 结构一些结构可以包含一个以上的x m l 元素。例如, a t o m 定义了一个p e r s o n 结构,用来描述作者和投稿人,一个p e r s o n 结构必 须包含一个名字,可能包含一个e m a i l 地址和一个u r l 。 2 3 3a t o m 元素 a t o m 要求每个f e e d 和e n t r y 都包括三个元素【2 2 】: 西南交通大学硕士研究生学位论文第11 页 ( 1 ) 惟一的标识符,可以与b l o g 记录或者用记录表示的其他w e b 资 源的u r i 一样简单,也可以像真正的1 2 8 位全球统一标识符( g u ) 那样 复杂。 ( 2 ) 标题( t i t l e ) ,简短的、人类可读的记录主体行:允许使用空字符 串( 用空的标题元素表示,如 ) 。 ( 3 ) 时间戳,表示上一次更新的时间。 f e e d 级别的必需元素包括: ( 1 ) f e e d 必须包含个 元素。 ( 2 ) f e e d 必须包含一个带有r e l = “s e l f 的 元素,它包含一个指向 f e e d 本身的链接。对于只有一份n e w s f e e d 文档拷贝的程序来说,通过这种方 式可以找到这个n e w s f e e d 的u r l 。 ( 3 ) f e e d 必须包含一个独立的替代链接,也就是说一个带有 r e l = “a l t e r n a t e ”的 元素通常,f i e e d 替代链接会引用这个f e e d 的替代 描述,例如提供这个f e e d 的网站的主页。 ( 4 ) 作者必须在f 宅e d 级或者每个单独的记录中进行指定。 e n t r y 级的必需元素包括: ( 1 ) 每个记录必须包含一个 元素。 ( 2 ) 如果记录没有 元素,它必须要有一个替代链接。记录的替 代链接是一个固定链接并指向这个记录的w e b 描述。 ( 3 ) 针对不同的语言和内容,一个记录可以有多个替代链接,但是一个 记录不能为一组语言和内容类型包含一个以上的替代链接。 ( 4 ) 如果内容不易阅读,这个记录必须为它包含一个 元素, 比如说,如果没有 元素, 元素包含了非文本内容,或者 元素引用了其它地方的内容。 ( 5 ) 和 元素也可以包含扩展元素。只要在x m l 命名空间 定义,就可以加入新的x m l 元素。 2 3 4a t o m 标识符 a t o m 格式要求为每个f e e d 和e n t r y 提供一个唯一而且固定的标识符。每 个 和 元素必须包含一个含有a t o m 标识符的 元素。a t o m 标 识符必须: ( 1 ) 唯一。一个a t o m 必须是全局唯一的。 西南交通大学硕士研究生学位论文第12 页 ( 2 ) 固定不变。当f e e d 或者e n t r y 被重新发布、输出到其他系统、或者 是重新放置到其他主机时,a t o m 是不能改变的。 ( 3 ) 符合i r i 格式。a t o m 必须是一个有效的r f c 3 9 8 7 标准的i n t e r n e t 资源标识符( i n t e r n e tr e s o u r c ei d e n t i f i e r ,u ) ,i r i 是u r i 的特殊格式,允许 包含u n i c o d e 字符。 2 3 5a t o m 的内容模型 要在a t o m 记录中包含内容,可以使用 元素。 元素和 t e x t 结构相似却更复杂,因为它被设计成要支持6 种内容类型。这些内容类型 可以包含在记录体的内部,或者由u r i 指定的一个外部的w e b 位置。下面是 6 种a t o m 支持的内容类型【2 2 j : ( 1 ) 普通文本没有任何标记或转义标记的文本。 ( 2 ) x h t m i 一可以包含x h t m l 标记的文本。由于x h t m l 标记是 有效的x m l ,所以它需要被转义。如果在f - e e d 中使用x h t m l ,应首先在 x h t m l 命名空间。 ( 3 ) 带有转义的h t m l 文本可以包含h t m l 标记的文本。 ( 4 ) ) ( 】i 一可以从声明的x m l 命名空间中包含x m l 内容,可以设 置类型属性为x m l 数据的内容类型( 注意x m l 数据的内容类型必须以 “+ x m l ”“x m l ”结尾) 。 ( 5 ) 任何类型的内部内容只要设置类型属性为数据内容类型, 元素就可以包含使用b a s e 6 4 进行编码的任何内容类型的数据。 ( 6 ) 任何类型的外部内容一你可以在 元素的s r g 属性中提供 一个远程内容的链接,并设置类型为远程内容的内容类型, 元素就 可以引用远程内容。要在 元素中指定内容类型,需要使用类型属性。 和t e x t 结构中的类型属性一样,类型可以是t e x t 、x h t m l 或h t m l 。 2 4a t o m 发布协议 在过去几年中,w e b 内容联合技术在互联网上以及防火墙后面变得越来 越重要。2 0 0 5 年7 月,i e t f 的a t o mp u b l i s h i n gf o r m a ta n dp r o t o c o l 工作组( 简 称为“a t o m p u b ”) 发布了两个标准规范中的第一个,目标是提供“用于表示的 提要格式和用于编辑w e b 资源的协议,如w e b l o g 、在线日志、w i k i 以及类 西南交通大学硕士研究生学位论文第1 3 页 似的内容。”此后,通常被称为a t o m1 0 的a t o m 联合格式( s y n d i c a t i o n f o r m a t ) ,部署到了成千上万个网站上,并得到了市场上所有主要联合平台 的支持。2 0 0 7 年1 0 月,仅仅一年多后,两个规范中的第二个也宣告完成,即 a t o m 发布协议( p u b l i s h i n gp r o t o c 0 1 ) 。 a t o m 发布协议是一种重要的内容发布和管理新标准。本节从高层概述了 该协议及其基本操作和能力。 2 4 1a t o m 发布协议高层概述 a t o m 发布协议是一种基于h t r p 的用于创建和编辑w e b 资源的方法。 它基本上围绕着这样一种观念设计,即利用h t t p 协议提供的基本操作( 如 g e t 、p u t 和d e l e t e ) 传输表示b l o g 项、博客、w i k i 页面、日程记录等 内容的a t o m1 0f e e da n de n t r y 文档实例【2 引。 a t o m 发布协议的核心是可编辑资源集合的概念,用a t o m1 0f e e da n d e n t r y 文档表示。集合有一个惟一的u r i 。向这个u r i 发出h 1 曙g e t 请求 将返回a t o mf e e dd o c u m e n t 。为了在f e e d 中创建新记录,客户机需要向集合 的u r i 发送h t t pp o s t 请求。这些新创建的记录将分配惟一的编辑u r i 。 要修改这些记录,客户机只需要从集合中检索资源,修改后再放回去。要从 f e e d 中删除记录,只需要向适当的编辑u r i 发送h t t pd e l e t e 请求。所有 0 n t e t ac o w a n t 稻l 哟h t t pd e l e t e 操作都是用简单的h t t p 请求完成的,通常不会比简单的文本编辑器和命令 f e e d 更难。图2 2 为使用简单的h t t p 方法发布和管理内容的a t o m 发布协议。 图2 - 2 使用简单的h t t p 方法发布和管理内容的a t o m 发布协议 2 4 2a t o m 发布协议基本操作 2 4 2 1 发现可用的集合 使用任何支持a p p 服务的第一步都是确定有哪些集合可用以及这些集合 西南交通大学硕士研究生学位论文第14 页 可能包含什

温馨提示

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

评论

0/150

提交评论