(计算机应用技术专业论文)分布式环境下统一身份认证及访问控制策略的研究.pdf_第1页
(计算机应用技术专业论文)分布式环境下统一身份认证及访问控制策略的研究.pdf_第2页
(计算机应用技术专业论文)分布式环境下统一身份认证及访问控制策略的研究.pdf_第3页
(计算机应用技术专业论文)分布式环境下统一身份认证及访问控制策略的研究.pdf_第4页
(计算机应用技术专业论文)分布式环境下统一身份认证及访问控制策略的研究.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(计算机应用技术专业论文)分布式环境下统一身份认证及访问控制策略的研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 当前高校信息化工作快速发展,建设“数字化校园”成为高校现代化发展的 一个重要目标。随着高校信息化的发展,很多高校在校园网中已建立了多个信息 管理系统,如邮件系统、办公自动化系统、教务管理系统等等,今后仍会增加很 多新的应用系统,为高校师生提供多种服务。 校园网应用规模越来越大,用户数量也不断增加。这给信息安全方面带来很 大挑战;一方面是现有一些w e b 运行环境存在着很大安全隐患,例如,网络中的 重要信息以明文传输、身份认证功能没有或者很弱、缺少统一的访问控制管理功 能等,这些系统很容易成为黑客攻击的对象;另一方面是校园网许多用户可能拥 有多个系统的多个账号,使用这些系统时将要重复录入账号、密码等信息,不仅 烦琐,而且容易丢失密码,甚至为了记忆方便,而降低密码强度等。因此,校园 网需要有一个统一的、具有较高安全又有较高效率的分布式环境下的身份认证和 访问控制系统,以保证校园网应用系统的安全。 当前统一身份认证和访问控制已成为研究的热点,并出现了许多基于s 0 a p 的 w e bs e r v i c e s 相关协议,如s a m l 、w s f e d e r a t i o n 、x a c m l 等,并得到了许多著名 企业的支持,但要正确使用这些协议,将是非常复杂的事情。 在综合比较目前已有统一身份认证和访问控制研究和应用的基础上,克服传 统统一身份认证和访问控制系统效率不高,使用复杂等缺点,以r e s t 、a j a x 和 j a v a s c r i p t 虫洞等技术为核心,给出了一个新的基于r e s t 和a j a x 的身份管理系 统( r e s ta n da j a xi d e n t i t ym a n a g e m e n t ,r a i m ) 。 在r a i m 系统中,提出新的、高效的基于a j a x 的身份认证方式,避免了采用 h t t p s 身份认证方法,计算成本太高,服务器性能要求苛刻等缺点。利用 j a v a s c r i p t 虫洞、a j a ) ( 和二次登录等方法,实现一种新的跨域单点登陆和全局注 销。基于角色和r e s t 风格,设计一个适于校园网现状的多级访问控制策略。基于 r e s t 对资源权限定义为三层:w e b 应用系统层、u r i 层和操作层。系统a p i 设计上 没有采用传统的基于s o a p 的w e bs e r v i c e s 服务方式,而是基于更简单高效的r e s t , 设计新的统一身份认证和访问控制w e b 服务a p i 。 关键字:身份认证访问控制 s s or es ta j a x j a v a s c r i p t 虫洞 :查三些奎兰三兰堡:! 兰堡鎏圣 a b s tr a c t t h ei n f o n n a t i o n i z a t i o no fh i g h e re d u c a t i o ni n s t i t u t i o n sh a sb e e n d e v e l o p i n gf a s tr e c e n t l y b u i l d i n gad i g i t a lc a m p u sh a sb e c o m ea ni m p o r t a n t a i mf o r t h em o d e r n i z a t i o no fh i g h e re d u c a t i o ni n s t i t u t i o n s d i f f e r e n t i n f o r m a t i o ns y s t e m sh a v e b e e nb u i l tf o rc a m p u sn e t w o r k ,s u c ha se m a i l s y s t e m ,o as y s t e m ,t e a c h i n gm a n a g e m e n ts y s t e ma n ds oo n a n dm a n yn e w a p p l i c a b l es y s t e m sa r eu n d e rc o n s t r u c t i o nf o rb e t t e rs e r v i n gt h es t u d e n t s a n dt h ef a c u l t y a l o n gw i t ht h ew i d e n i n ga p p l i c a t i o no fc a m p u sn e t w o r k ,t h en u m b e ro f u s e r si si n c r e a s i n g ,w h i c hb r i n g st w op r o b l e m si ni n f o r m a t i o ns e c u r i t y f i r s t ,t h e r ei sp o t e n t i a lh a z a r d1 i e si nt h ew e ba p p l i c a t i o ns y s t e n lf o r e x a m p l e , c l e a r t e x tt r a n s m i s s i o n ,n o o rw e a ki d e n t i t ya u t h e n t i c a t i o n ,n o u n i f i e da u t h o r i z a t i o nm a n a g e m e n t a l lt h e s ea r ei n c l i n e dt ob ea t t a c k e d b yh a c k e r s t h eo t h e rp r o b l e mi st h a td i f f e r e n tu s e r sn e e dt ot y p ei nn a m e s a n dp a s s w o r d sr e p e a t e d l yw h i l ef a c i n gd i f f e r e n ts y s t e m s t h i si sn o tj u s t t r o u b l e s o m eb u ta l s oe a s il yc a u s e sl o s s e so fp a s s w o r d s t h a tm e a n s ,t o e n s u r et h es a f e t yo fc a m p u sn e t w o r ka p p l i c a t i o ns y s t e m , w en e e dau n i f i e d , s a f ea n de f f e c t i v es y s t e mc o n t a i n i n gb o t hi d e n t i t ya u t h e n t i c a t i o na n d a c c e s sc o n t r 0 1 n o w a d a y s ,u n i f o r mi d e n t i t ya u t h e n t i c a t i o na n da c c e s sc o n t r o la r eh o t r e s e a r c hi s s u e s ,a n dm a n yw e bs e r v i c e sp r o t o c o lb a s e do ns o a p ,s u c ha ss a m l , w s f e d e r a t i o n ,x a c m lh a v ee m e r g e da n dw o ns u p p o r tf r o mm a n yf a m o u sc o m p a n i e s h o w e v e r ,t ou s et h e s ep r o t o c o l sc o r r e c t l yi sv e r yd i f f i c u l t o v e r c o m i n gt h e i n e f f e c t i v e n e s sa n dc o m p l e xo ft r a d i t i o n a ls y s t e m r a i mi san e wi d e n t i t y m a n a g e m e n ts y s t e mb a s e do nr e s ta n da j a x ,t a k i n gr e s t ,a j a xa n dj a v a s c r i p t w o r m h o l ea si t sc o r et e c h n i q u e r a i mh a san e w h i g h l ye f f e c t i v ei d e n t i t ya u t h e n t i c a t i o nm e t h o db a s e d o na j a x a v o i du s i n gm 阿p sa u t h e n t i c a t i o nm e t h o d s i t sc o m p u t i n gc o s ti s t o oh i g h ,a n dd e m a n d i n gh i g hp e r f o r m a n c es e r v e r u s i n gt h et e c h n i q u eo f j a v a s c r i p tw o r m h o l e ,a j a xa n ds e c o n d a r yl o g i n ,i ts u p p o r t sc r o s s d o m a i n s s oa n do v e r a l ll o g o u t b a s e do nt h er e s ts t y l e ,i th a sm u l t i l e v e la c c e s s c o n t r o ls y s t e mw h i c hs u i t st h ep r e s e n tc a m p u sn e t w o r k s r e s o u r c ep e r m i s s i o n i sd e f i n e da st h r e et i e r s :w e ba p p l i c a t i o nl a y e r ,u r il a y e ra n do p e r a t i o n l a y e r o nt h ea p id e s i g n ,i td o e s n tu s et h et r a d i t i o n a lw e bs e r v i c e sb a s e d o ns o a p , b u tt a k eas i m p l e r 。m o r ee f f e c t i v er e s tw e bs e r v i c e sa p i k e y w o r d s = i d e n t i t ya u t h e n t i c a t i o n , a c c e s sc o n t r o l ,s s o ,r e s t , a j a x , j a v a s c d p t w o r m h o l e 独创性声明 独创性声明 秉承学校严谨的学风与优良的科学道德,本人声明所呈交的论文是我个人在 导师的指导下进行研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,不包含 本人或其他用途使用过的成果。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明,并表示了致谢。 本学位论文成果是本人在广东工业大学读书期间在导师的指导下取得的,论 文成果归广东工业大学所有。 申请学位论文与资料若有不实之处,本人承担一切相关责任,特此声明。 聊年f 月冲 第一章绪论 1 1 课题的来源 第一章绪论 当前高校信息化工作快速发展,建设“数字化校园”成为高校现代化发展的 一个重要目标。随着网络应用技术的不断发展,基于数字化校园的各种应用系统 越来越多,如数字图书馆、一卡通、网上教学和视频会议等,这些应用系统数量 越来越多,功能也越来越强,但是各个应用系统开发时缺乏统一的规范,应用系 统可能属于多个部门,互不从属,造成了用不同平台、技术水平和结构开发的大 量应用系统共存的现象。 1 各应用系统都有相互独立的身份认证和访问控制策略,用户要进入不同应 用系统时,需要分别录入不同的账号和密码。用户可能会发现,他们需要记住应 用系统的账号和密码也越来越多。这容易产生密码遗忘事情的发生,也可能导致 一些用户为了方便账号和密码的记忆,在多个应用系统中使用相同的账号和密码。 黑客可以从破解的安全级别低的系统中获取账号和密码,并用这些账号和密码进 入安全级别高的系统,对整个校园网的应用系统安全性造成了很大威胁。 2 用户角色和访问控制策略的一致性难以维护。校园网中各个应用系统都有 自己的用户管理系统,它们都按自己的访问控制策略来分配用户权限。当每个应 用系统对自己用户增加、删除和修改权限时,为保持不同应用系统用户角色和权 限一致性和完整性,只有对相关的应用系统进行相互操作,这种操作既复杂又易 出错。容易导致不同应用系统之间的用户角色和权限不一致。 3 新增加的应用系统,由于没用统一身份认证和访问控制策略规范约束,造 成了身份认证和访问控制代码重复开发,并各自独立,不利于跨系统的整合。随 着“数字化校园”建设深入,整合现有应用系统,并为新增加系统提供统一规范 成为一种必然的趋势。 为了解决当前校园网中,应用系统存在的身份认证和访问控制问题,建立一 个为所有应用服务的统一身份认证和访问控制平台,实现统一身份的认证,合理 广东工业大学工学硕上学位论文 的用户权限访问控制是非常必要的。 1 2 国内外研究应用现状 在国内,许多高校提出了建设“数字化校园”的目标,实现这个目标的关键 就是建立一个统一身份认证和访问控制基础设施。一些高校展开了相应的研究工 作,并取得了一定的成果。 1 清华大学的综合信息服务系统 它是清华大学信息服务总平台,为清华大学师生访问不同应用系统提供统一 身份认证平台并实现了服务的漫游“2 翔,极大方便了网上管理和教学等,它的远程 教育系统和网络教学系统都用到了统一身份认证的功能。学校为每个新注册的学 生提供了一个i c 卡、一个用户名和密码。通过用户名和密码,就可以在数字化的 校园中访问权限充许的应用系统和信息。 2 南京大学数字化校园信息门户系统 基于l d a p 和p k i 建立了自己的统一身份认证平台【4 5 1 。采用l d a p 存放数字证 书和用户身份信息,p k i 进行身份认证。使用门户系统服务器作为所有应用系统的 入口点。用户只要使用w e b 浏览器,就可以访问数字化校园的所有信息。它为加入 统一身份认证平台的应用系统提供了一个标准p o r t l 耀序,使用p o r t l c t ,应用系统 就可以无缝的接入统一身份认证平台上。 3 上海交通大学统一身份认证系统 已经采用全校统一的身份认证系统。用户要登录学校应用系统时,先要到网络 信息中心的身份认证网进行身份认证,身份认证通过后,各应用系统还要对身份 认证的结果作进一步检查。通过后方可登录到系统。通过这一身份认证模式,方 便该校师生管理自己的网络帐号,提高校园信息系统的安全性。该校教职工,需 要使用统一身份认证的,都要首先到网络信息中心申请一个个人的e - m a i l 帐号, 通过这个帐号登录到学校各个系统。 4 复旦大学统一身份认证平台 统一身份认证平台为学校人事系统、学工系统、虚拟校园系统、e m a i l 系统等 各种应用系统提供统一的用户管理及身份认证。通过统一的界面和逻辑对各应用 系统中的用户基本信息进行集中管理:为各应用系统提供用户身份认证服务;为 2 第一章绪论 各应用系统提供初步授权。 随着许多企业和校园内部不同应用系统增多,统一身份认证相关工作,已经 成为当前研究的热点,并形成了两大竞争的身份管理标准s a m l 和w s f e d e r a t i o n , 很多业界巨头和著名开源社区对于身份认证、单点登录和访问控制都提出了自己 的解决方案。 1 m i c r o s o f t n e tp a s s p o r t n e t p a s s p o r t 是m i c r o s o t t 提供的一个公共w e b 服务。n e tp a s s p o r t 的关键是 h t t p 重定向,当用户访问p a s s p o r t 参与站点时,会被重定向到p a s s p o r t 登陆页面, 通过认证后,认证信息将保存在用户的c o o k i e s 中。并重定向回用户请求的w e b 站点。n e tp a s s p o r t 要求所有参与的站点,把它们的用户信息存储在微软的服务 器上。 2 i b mw e b s p h e r ep o r t a ls e r v e r m m 的w e b s p h e r e 服务器实现了单点登录,它的实现关键是通过采用l t p a ( l i g h t w e i g h tt h i r d - p a r t ya u t h e n t i c a t i o n ) 对c o o k i e 中的用户信息进行加密来保证 的。所有参与的服务器,享有相同的密钥对,用户访问应用系统时,必须先认证, 当认证通过后,用l t p a 私钥加密用户认证信息,并写回用户的浏览器的c o o k i e s 中,而其它参与服务器拥用这个共享的l t p a 密钥,故可以认证存放在c o o k i e s 中 的用户信息,最终可以确定用户身份是否合法。 3 s u no n ei d e n t i f ys e r v e r s u n 公司的i d e n t i f ys e r v e r 支持自由软件联盟( l i b e r t ya l l i a n c ep r o j e c t ) 发布的基 于s a m l 的l i b e r t y 身份识别标准。它提供了一个开放性的综合网络身份管理方案, 包括目录策略和证书发放等多个功能。 从统一身份认证和访问控制的总体发展水平来看,国内对于统一身份认证技术 的研究,正处于发展阶段,还没有哪个厂家推出成熟的产品。对于校园网数字化 建设来说,不同学校都有自己不同的环境和条件,完全照搬某个学校的模式是行 不通的。 1 3 研究的内容与意义 从校园网的实际情况出发,尽量保持原来系统不修改或较少修改,并把这些系 广东工业大学工学硕士学位论文 统的身份认证和访问控制等平滑地整合到一个统一的身份管理平台上。对于以后 增加的新应用系统,能够提供统一的认证和访问控制服务a p i 。 1 3 1 研究内容 1 身份认证研究,身份认证是w e b 应用系统的第一道关卡,如何有效的保证 身份认证的可靠性、安全性和高效性是实现w e b 应用系统关键。在现有环境下, 受浏览器等因素影响,安全的身份认证主要是基于h t t p s 协议或者双因子身份认 证方法,这些认证方法,安全性虽高,但是认证效率和认证成本也较高。基于a j a x 的特性,提出了另一种高效,成本较低的身份认证方法。 2 跨域单点登录,利用j a v a s c r i p tw o r m h o l e 、a j a x 、二次登录、w e b 拦截 代理等方法,解决分布式环境下,各种应用系统集中统一的跨域单点登陆问题。 用户登陆统一身份认证平台,认证成功后,才能访问其它的应用系统。访问其它 系统时,可以由二次登录获取用户的二次登录凭证,自动帮助用户录入在这个应 用系统的用户名和密码,并提交给原系统的认证模块。需要实现几个关键模块: a 单点登录门户,当用户身份认证成功后,根据该用户角色,形成用户能够 访问的其它w e b 应用系统的个性列表。然后从中选择其中的w e b 系统,进行二次 登录。 b 二次登录,该模块获取用户的二次登录凭证,采用直接登录、模拟表单提 交和代理登录等方法实现帮助用户自动登录。 c w e b 拦截代理和身份认证和访问控制代理,当用户访问w e b 应用系统服务 时,w e b 拦截代理,将截获请求并把请求交由身份认证和访问控制代理处理,根据 代理处理结果,判断该用户是否通过认证和是否有权限访问该w e b 服务,没通过 合法认证则重定向到登录界面。 3 跨域全局注销,在分布式环境下,实现统一身份平台和各w e b 应用系统之 间身份令牌信息的同步,是实现跨域全局注销的关键。利用w e b 应用系统的身份 认证和访问控制代理,定时和统一身份平台进行身份同步,来实现跨域全局注销。 4 访问控制策略,研究基于角色和r e s t 风格,适于校园网现状的三级访问 控制策略。第一级是基本访问控制策略。第二级是扩展访问控制策略,实现w e b 应用系统层、u r i 层和操作层三个层次的多粒度访问控制,对于符合r e s t 风格的 4 第一章绪论 w e b 系统,操作层只有g e t 、p o s t 、p u t 和d e l e t e 四种操作权限,这样极大简化了 访问控制实现的复杂性。第三级是二次鉴权策略,即原有w e b 系统仍保留自己的 访问控制策略。 5 安全性研究,保证身份认证、跨域s s o 、全局注销和访问控制等在分布式 环境下的安全性,是实现统一身份认证和访问控制的一个重要内容。 6 基于r e s t 和a j a x ,设计一种新的身份管理系统。 1 3 2 课题特色之处 1 提出一个高效的轻量级身份认证方式,身份认证是实现统一身份认证和访 问控制系统的第一道关卡,采用h t t p s 和传统远程脚本来实现身份认证存在一些 缺点。利用a j a x 技术,提出了一种轻量级身份认证方法。 2 利用j a v a s c r i p tw o r m h o l e 、a j a x 和二次登录等方法,实现一种新的跨域 s s o 。跨域s s o 登录的实现是统一身份认证和访问控制系统的关键。实现单点登录 有多种方法等。利用j a v a s c r i p tw o r m h o l e 、a j a x 和二次登录等方法,实现一种 新的适合校园网现状的跨域单点登陆。 3 设计一种有效的跨域全局注销。在分布式环境下,利用w e b 应用系统的身 份认证和访问控制代理,定时和统一身份平台进行身份同步,来实现跨域全局注 销。 4 设计一个基于角色和p e s t 风格,适于校园网现状的多级访问控制策略。 提出一个三级访问控制策略,实现了多粒度权限的访问控制。包括基本访问控制 策略、扩展访问控制策略和二次鉴权。扩展访问控制策略基于r e s t 对资源权限定 义为三层:w e b 应用系统层、u r i 层和操作层。 5 为了简单高效的给原有和新w e b 应用系统提供统一的身份认证和访问控制 服务,系统a p i 设计上,没有采用传统的基于s o a p 的w e bs e r v i c e s 服务方式, 而是基于更简单、高效的r e s t ,设计新的统一身份认证和访问控制w e b 服务a p i 。 1 4 论文的组织 针对以上主要任务,对本文内容进行了划分,按如下章节组织,共分五章: 广东工业大学工学硕士学位论文 第一章绪论主要介绍了课题的来源、国内外的研究应用现状、研究的内容和 意义,并分析了课题的特色之处。 第二章对于本课题涉及到的j s o n 、a j a x 、r e s t 和统一身份认证和访问控制相 关技术,进行了介绍。 第三章是介绍r a i m 体系结构及各模块实现功能。r a i m 系统主要包括了身份 凭证、s s o 客户端、统一身份认证和访问控制服务、身份信息及访问控制数据库 和w e b 应用系统五大部份,每一部份又包括了几个模块。 第四章是r a i m 核心设计,包括身份认证、访问控制、s s o 和全局注销等关 键模块设计。 第五章是r a i m 核心实现及部署。 最后对全文的工作进行总结,并对这一研究课题的前景进行展望,对尚需做 的进一步完善工作进行了讨论。 6 第二章相关技术概述 第二章相关技术概述 为了在分布式环境下设计统一身份认证和访问控制,汲及到多种技术和知识, 下面主要阐述了统一身份认证和访问控制的最新技术发展方向:j s o n 、a j a x 、 r e s t 、身份认证、单点登录、访问控制和身份管理标准等技术。 2 1j s o n j s o n ( j a v a s c r i p to b j e c t 谢) 嘲是一种轻量级的数据交换格式。易于人阅读 和编写。同时也易于机器解析和生成。它基于j a v a s c r i p tp r o g r a m m i n gl a n g u a g e , s t a n d a r de c m a - 2 6 23 r de d i t i o n d e c e m b e r1 9 9 9 的一个子集。j s o n 采用完全独立 于语言的文本格式,但是也使用了类似于c 语言家族的习惯( 包括c ,c - 饼,j a v a , j a v a s c r i p t ,p e r l ,p y t h o n 等) 。这些特性使j s o n 成为理想的数据交换语言。j s o n 现 在支持绝大部份的语言,包括j a v a s c r i p t 、c 、c - h 、c 群、j a v a 、p h p 和r u b y 等。 j s o n 内建两种结构:一种是n a m e v a l u e 值对集合。在不同语言中被实现为对 象、记录、结构、字典、哈希表、键表等。另一种是有序值列表。在不同语言中 被实现为数组、向量、列表等。 j s o n 的格式包括对象和数组,对象是属性、值对的集合。一个对象的开始于 “ ”,结束于“) ”。每一个属性名和值间用“:”提示,属性间用“,”分隔。数组 是有顺序的值的集合。一个数组开始于1 ”,结束于“】”,值之间用“,”分隔。值 可以是引号里的字符串、数字、t r u e 、f a l s e 、n u l l ,也可以是对象或数组。这些结 构都能嵌套。 x m l 是一种当前主流的数据交换格式,但x m l 存在很多没法克服的缺点, 而j s o n 能够较好克服x m l 的一些缺点,因此在某些方面要优于x m l 。使用j s o n 表示数据比x m l 要简单的多,非常适合在i n t e r a c t 上传输。例如,一个x m l 数 据如下: 7 广东工业大学工学硕士学位论文 t o m c h a l l e g e a n s w e r t m e j s o n 数据表示如下: a u t h e n t i c a t i o n : u s e r n a m e :”t o m , a u t h s e q :”c h a l l e g e a n s w e r ”, a u t h r e s u l t :t r u e 表示同一个数据,用x m l ,数据共有1 6 0 个字符( 除去换行符后) ,用j s o n , 数据是7 4 个字符。j s o n 表示数据仅有x m l 表示数据的4 6 2 5 。如果要表示的 数据量越大,j s o n 优势将更加明显。 j s o n 概念很简单,就是服务器直接生成j a v a s c r i p t 语句,客户端获取后直接用 e v a l 方法来获得这个对象,这样就可以省去解析x m l 的性能损失。而对于x m l 数据需要使用非常复杂的d o m 来解析x m l 。 j s o n 的另外一个非常重要的优势是“跨域性”,当w e b 应用系统要调用统一 身份认证平台的数据时,可以在w e b 应用系统的页面中使用如下方式: 当s e s s i o n j s 是j s o n 时,会自动反串行化为j s o n 对象,直接在客户端运行。 这就意味着你可以跨域传递信息。而使用x m l h t t p r e q u e s t 却获取不了跨域的信 息,这是由j a v a s e r i p t 同源策略所限制。在后面章节将会利用该特性,实现j a v a s e r i p t 虫洞,并开发出简单、高效跨域s s o 。 正因为j s o n 的这些优点,j s o n 应用也越来越受到重视。g g l c 的m a p s 是 非常经典的w e b 服务,它的数据交换采用的是x m l 吗? 事实上g o o g l em a p s 并没 有采用x m l 传递数据,而是采用了j s o n 方案。 j s o n 虽然相对x m l 有很多优势,但它并不能完全取代x m l ,x m l 优势在 于语法规范,具有很强的通用性。当服务器端和客户端有不同的开发人员。它们 必须协商对象的格式,j s o n 很容易造成错误,而x m l 却很容易实现。 2 2 a j a ) ( 最早是由j e s s ej a m e sg a r r e t t 在2 0 0 5 年2 月提出a j a x ”1 这个词,当g o o g l e m a p s 、s u g g e s t 和g m a i l 等得到了成功的应用,立即引起了人们的重视,人们使用 8 第二章相关技术概述 g o o g l em a p s 时,利用光标在刻度线上来回移动就可以放大或缩小地图。而这一切 都是即时的,无需等待页面刷新。a j a x 是a s y n c h r o n o u sj a v a s c r i p t + x m l 的简写, 它消除了桌面应用与w e b 应用在用户体验上的差距,是w e b 开发的重大变革,通 过a j a x ,用户使用浏览器,就可以异步的和后台服务器方便的交互,而这一切, 用户并不知道。 a j a x 是几项流行技术的结合,a j a x 主要包含如下技术咖:基于标准化的x h t m l 和c s s ;使用文档对象模型d o m ,实现动态显示和交互;利用也和x s l t 进行数 据交换与处理;采用x m l h t t p r e q u e s t 对象来异步获取数据;最后用j a v a s c r i p t 整合以上所有技术。 传统w e b 应用程序工作模型如图2 - 1 所示: 图2 1 传统w e b 应用程序工作模型 f i g u r e2 - it r a d i t i o n a lw e ba p p l i c a t i o nm o d e l 传统w e b 应用程序工作过程: 1 从浏览器的用户界面发出一个h t t p 请求。 2 w e b 服务器接受请求后,按照用户请求,做相应的后台处理,如查询数据 库等操作。 3 w e b 服务器最后返回h t m l 结果给客户端。 传统w e b 应用程序缺点: 1 用户发出请求后,只能是等待,直到服务器返回响应结果为止。 2 用户浏览界面必须刷新才能看到返回结果。 这些因素对实现需要多次交互的身份认证方式来说,明显是不太适合的。 基于a j a x 的w e b 应用程序工作模型如图2 - 2 所示: 9 广东工业大学工学硕士学位论文 客户珊浏览器 用户界面 j _ v n s 。r l b t 调用返回h i k l 数据 f j 举墨碴| “母请求产符串m x m l 教据 x p r l e b 服务器 图2 2 基于a j a x 的w e b 应用程序工作模型 f i g u r e2 - 2m o d e lo f w e ba p p l i c a t i o nb a s da j a x 基于a j a x 的w e b 应用程序工作过程: 1 用户通过某个事件触发j a v a s c r i p t 调用a j a x 引擎。 2 a j a x 引擎创建x m l h t t p r e q u e s t 对象实例,由该对象向服务器发出h t t p 请 求。 3 w e b 服务器接受请求后,做相应后台处理,并将结果以字符串或x m l 格式 返回给i m l h t t p r e q u e s t 对象。 4 x m l h t t p r e q u e s t 对象调用j a v a s c r i p t 的回调函数,由回调函数处理服务 器端返回的数据,并最终将h t m l 结果传递给客户端用户界面。 相对传统w e b 应用程序的优点: 1 用户提交请求后,由a j a x 引擎负责和服务器的数据交互,用户不需等待服 务器是否返回了结果,就可以做其它事情,减少了用户等待时间,实现了异步。 2 用户无需刷新自己的浏览器界面,就可以看到服务器返回的h t m l 结果。 3 克服了对一个任务有多个步骤传统处理方式:请求一等待一响应一请求一 等待一响应。 4 使用非常简单,只需创建一个x m l h t t p r e q u e s t 对象实例,就可以异步和服 务端程序交互,而这些主要由易用的j a v a s c r i p t 完成。 5 得到了绝大部份主流浏览器的支持。 基于a j a x 的w e b 应用程序在用户体验、响应性和可伸缩性方面都远远超过传 统的服务器端w e b 应用程序“。 1 0 第二章相关技术概述 2 3r e s t 2 3 1w e bs e r v i c e s w e bs e r v i c e s 没有一个明确的定义,一般来说w e b 服务是由u r i 标识的软件 应用程序。具有一些特点: 1 使用行业标准,通过i n t e r n e t 交换信息。 2 客户端在调用这些服务时,无需知道目的服务提供者的系统环境及其底层 实现模型。 3 w e b 服务独立于平台,通过暴露诸如服务等应用组件,可以充许任何地方 的任何应用、平台或设备访问它们。 4 w e b 服务支持应用之间的集成和通信,使客户可以通过i n t e r n e t 进行业务 协作和管理业务流程。 w e bs e r v i c e s 正朝两个方向发展,一个是以g o o g l e 、y a h o o 和a m a z o n 等 i n t e r n e t 企业为代表的基于r e s t 的w e bs e r v i c e s ,一个是以i b m 、m i c r o s o f t 等 传统软件企业为代表的基于s o a p 的w e bs e r v i c e s 。 2 0 0 0 年以来,以微软、i b m 为首的一些大公司鼓吹基于s o a p 的w e bs e r v i c e s , 但基于s o a p 的w e bs e r v i c e s 并没有象预期一样辉煌发展。2 0 0 6 年1 2 月5 日,g o o g l e 宣布停止发布新的基于s o a p 的s e a r c ha p i ,而是转而鼓励用户使用新的基于a j a x 和r e s t 的s e a r c ha p i 。 2 3 2r 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 ,表示状态转换) 嘲是由r o yt h o m a s f i e l d i n g 在他的博士学位论文中第一次提出了r e s t 这个概念。f i e l d i n g 参与了 h t t p1 0 和1 1 规范创建,h t t p l 0 规范从1 9 9 6 年成为w e b 基本准则。 基于r e s t 的w e b 服务采用了r o a ( r e s o u r c eo r i e n t e da r c h i t e c t u r e ,r o a ) 概念,以资源为中心,资源是任何有意义的实体,w e b 是由资源组成的。“表示” 是资源的返回值,“表示”把客户端置于某种“状态”之中。客户端沿着超链接访 广东工业大学工学硕上学位论文 问另外的资源,新的表示把客户端置于另外一个状态之中。从而客户端在每个资 源表示时转换状态。 r e s t 是一种体系结构风格,而不是标准。是建立在现在的标准之上的。它包 括了如下标准:h t t p h t t p s 、u r l 、煳l h t m l g i f j p e g ,e t c ( 资源表示) 和t e x t x m l , t e x t h t m l ,i m a g e g i f ,i m a g e j p e g ,e t c ( m i m e 类型) 。在r e s t 的定义中,一 个w e b 应用总是使用固定的u r i 向外部世界呈现( 或者说暴露) 一个资源。 2 3 3r e s t 约束 在短短1 0 多年里,w o r l dw i d ew e b 已经从一项研究实验成长为现代社会的 技术支柱。w e b 的这种快速增长,将来会不会导至i n t e r n e t 基础设施无法承受迅 速增加的压力,而出现问题呢。 r e s t 紧紧抓住了w e b 之所以有今天这样发展的关键,提出了开发w e b 应用所 需遵守的约束,f i e l d i n g 将其命名为r e s t 。f i e l d i n g 提出开发w e b 应遵从以下 约束。 无状态:每个从客户端到服务器的请求包含足够的信息使得服务器理解该请 求,不需要服务器上存储的大量的上下文信息。把服务器端需要处理的大量信息 可以转发到客户端,利用客户端来保存个性化信息,尽量把处理和内存需求分布 到客户机。使服务器从负载过重的资源消耗中解脱出来。 缓存:为了提高网络效率,尽量缓存重复使用的资源。 命名资源:系统是由通过u r i 命名的资源组成。u r i ( 通用资源标志符) 是指 唯一标识一个资源( x h t m l 文件、图片、c s s 样式表) 的字符串。每个u r i 就是 这个资源的唯一标识。对资源命名尽量用名词,而不是动词。通过构造一个h t t p 请求头信息中的a c c e p t 参数,那么服务器就可以通过判断该参数来决定返回该资 源的哪种数据类型。例如采用r e s t 风格对资料b i r d 命名的u r i : h t t p :哪m y w e b c o m p h o t o b i r d ,如果想获得b i r d 的照片:可以构造h t t p 的请求头:a c c e p t :t e x t j p e g ,服务器接到请求后,就会按照要求把b i r d 的图 片响应给请求者。如果想获得b i r d 的元数据,如鸟的名称,重量,产地等信息, 可以构造h t t p 的请求头:a c c e p t :t e x t x m l ,服务器接到请求后,就会按照要求 把b i r d 的x m l 元数据信息响应给请求者。所以在一个采用r e s t 架构的应用中, 第二章相关技术概述 要获取同一个资源的不同表现形式的数据,只需要使用不同的h t t p 请求头信息 就行了。 统一的接口:所有对资源地操作都可以通过通用的接口访问( h t t p g e t ,p o s t , p u t ,d e l e t e ) ,在基于s o a p 的w e bs e r v i c e s 中,一个服务内都会提供很多的方 法,给调用者使用。但r e s t 对资源的操作,只有这四种( h t t pg e t ,p o s t ,p u t , d e l e t e ) 。通过这四种h t t p 请求方法来实现对资源的c r u d ( 创建、读取、更新和 删除) 操作:p o s t :创建;g e t :读取;p u t :更新;d e l e t e :删除。例如: h t t p :w w w m y w e b c o m p h o t o b i r d ( 读取) ,仍然保持为 g e t h t t p :w w w m y w e b c o m p h o t o b i r d ; h t t p :w w w m y w e b c o m p h o t o b i r d c r e a t e ( 创建) ,改为 p o s t h t t p :w w w m y w e b c o m p h o t o b i r d , h t t p :w w w m y w e b c o m p h o t o b i r d t i p d a t e ( 更新) ,改为 p u t h t t p :w w m y w e b c o m p h o t o b i r d ; h t t p :w w w m y w e b c o m p h o t o b i r d d e l e t e ( 删除) ,改为 d e l e t e h t t p :w w w m y w e b c o m p h o t o b i r d 。 经过这样扩展,对一个资源的c r u d 操作就可以通过同一个u r i 完成了。 互连的资源表示:资源的表示通过u r l 互相联系起来,从而客户端可以从一个 状态转换到另一个。 层次化的组件:中间件,比如代理服务器,缓存服务器,网关等,可以插入到 客户端和资源中间来完成安全等功能。 通过r e s t 架构,w e b 应用程序可以用一致的接口( u r

温馨提示

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

评论

0/150

提交评论