(计算机软件与理论专业论文)一种面向服务的动态rbac组件的设计与实现.pdf_第1页
(计算机软件与理论专业论文)一种面向服务的动态rbac组件的设计与实现.pdf_第2页
(计算机软件与理论专业论文)一种面向服务的动态rbac组件的设计与实现.pdf_第3页
(计算机软件与理论专业论文)一种面向服务的动态rbac组件的设计与实现.pdf_第4页
(计算机软件与理论专业论文)一种面向服务的动态rbac组件的设计与实现.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

(计算机软件与理论专业论文)一种面向服务的动态rbac组件的设计与实现.pdf.pdf 免费下载

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

文档简介

硕士学位论文 m a s t e r st h e s i s 中文摘要 随着互联网技术的发展,信息系统的开发与实施向着服务开放、管理统一、部 署灵活的方向发展,同时也给系统的资源保护与访问控制带来了新的难题和挑战。 传统的基于角色的访问控制( r b a c ) 模型在封闭的系统环境下,能够很好的实现 系统的访问控制策略,但是对开放环境的支持却不理想。 面向服务架构( s o a ) 是近几年来软件系统设计和开发领域中的热门,部署基 于s o a 的系统已经逐渐成为企业内整合旧系统资源、搭建全业务系统的趋势,它 可以提高企业内系统资源的复用率、降低开发成本,为企业建立跨平台、跨区域的 系统提供支持。 本文以r b a c 模型为基础,结合面向服务架构( s o a ) 的设计思想,设计了一 个动态r b a c 组件来解决开放性系统中权限控制的问题。该组件实现了传统的基于 r b a c 模型的权限管理的基本功能;并通过设计对内和对外接口,动态区分和管理 系统内外部访问者的请求;根据用户的登录属性,分别给出相应的访问控制策略, 其中外部访问者通过角色代理来完成服务请求;采用基于w e b 服务发现模型,实现 将系统外部服务映射到组件内的权限管理中。 针对组件的设计思路,本文给出了在j a v a 平台下,采用s t r u t s + s p r i n g + h i b e r n a t e 技术实现组件的开发,并给出组件在具体项目中的应用实例。 关键词:访问控制策略:面向服务的体系结构;动态r a b c 组件 项士学位论文 m a s t e r st h e s i s a b s t r a c t w i t ht h ed e v e l o p m e n to fi n t e m e t t e c h n o l o g y ,o p e n - s e r v i c e 、u n i f i e d m a n a g e m e n t 、 f l e x i b l e d e p l o y m e n tb o c o m et h ed i r e c t i o no ft h ed e v e l o p m e n ta n di m p l e m e n t a t i o no f i n f o r m a t i o ns y s t e m ,a tt h es a m et i m e ,n e w p r o b l e m sa n dc h a l l e n g e sh a v eb e e nb r o u g h tt o t h es y s t e m1 路o u r c ep r o t e c t i o na n da c c e s sc o n t r 0 1 t h et r a d i t i o n a lr o l e - b a s e da c c e s s c o n t r o l ( p d 3 a c ) m o d e lc a ni m p l e m e n tt h er e c e s sc o n t r o lp o l i c yw e l li nc l o s e ds y s t e m e n v i r o n m e n t , b u tc a n td ow e l li no p e ne n v i r o n m e n t s e r v i c eo r i e n t e da r c h i t e c t u r e ( s o a ) i sam e t h o do f d e s i g n i n ga n dc o n s t r u c t i n gt h e l o o s e l yc o u p l e ds o f t w a r es o l u t i o n s t h r o u g ht h ed e p l o y m e n to fs o a , a ne n t e r p r i s ec a r t l l s eas e to f d i s t r i b u t e ds e r v i c e st ob u i l da p p l i c a t i o ns y s t e mi nh e t e r o g e n e o u se n v i r o n m e n t i nt h i sw a y , i tw i l lb ea b l et or e u s et h ee x i s t i n gl e s o u r c ea n dp a r t n e r sb u s i n e s sf u n c t i o n s t oc o n s t r u c tan e w a p p l i c a t i o ns y s t e m t h i sp a p e ri sb a s e do i lt h er e s e a r c ho fr b a cm o d e lt od e s i g na n dr e a l i z ead y n a m i c r b a cc o m p o n e n tf o rs o a f i r s t l y , t h ec o m p o n e n ta c h i e v e dt h eb a s i cf u n c t i o nm o d u l e s o fr b a ca n dt h r o u g ht h ed e s i g no fi n t e r n a la n de x t e r n a li n t e r f a c et o d y n a m i c a l l y d i s t i n g u i s ha n dm a n a g et h er e l a t e dr e q u e s t s s e c o n d l y , i tg a v ed i f f e r e n ta c c e s sc o n t r o l p o l i c ya c c o r d i n gt ot h eu s e r sl o g i np r o p e r t i e s a g a i n , t h ee x t e r n a lr e q u e s t e rn s e r o l e - a g e n tt og e ts e r v i c e f i n a l l y , b a s e do nt h ew e bd i s c o v e r ya n di n t e g r a t i o nm o d e l ,i t r e g i s t e r e dt h ee x t e m a ls e r v i c e si n t ot h ei n t e r n a lm a n a g e m e n to ft h ec o m p o n e n t w i t ht h ed e s i g ni d e ao ft h ed y n a m i cr b a c c o m p o n e n ta n du n d e rt h et e c h n o l o g i e s o fs t r u t s + s p r i n g + h i b e r n a t e ,t h i sp a p e rg i v e sar e a l i z a t i o no ft h ec o m p o n e n to nj a v a p l a t f o r m k e y w o r d :a c 宅足s sc o n t r o lp o l i c y ;s o a ;d y n a m i cr b a cc o m p o n e n t i i 华中师范大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作 所取得的研究成果。除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本声明的法律结果由本人承担。 作者签名以乔确 a 期:6 每其j 甚 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借 阅。本人授权华中师范大学可以将本学位论文的全部或部分内容编入有关数据库进 行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。同意华中 师范大学可以用不同方式在不同媒体上发表、传播学位论文的全部或部分内容。 本人已经认真阅读“c a l i s 高校学位论文全文数据库发布章程 ,同意将本人的 学位论文提交“c a l l s 高校学位论文全文数据库 中全文发布,并可按“章程 中的 规定享受相关权益。回意途塞堡銮卮澄卮;旦坐笙i 旦二生;旦三生发查。 篇;磊尊日 呐:护r 阳j i 。日 和睁整“婶锄圣 日期:1 年石胁日 王 蝴湖 nyi,靴掷, 刽 : 黼瓤 一 硕士学位论文 m a s t e r st h e s i s 1 1 课题研究背景及意义 第一章绪论 1 1 1 研究背景 作为企事业单位信息管理系统的重要组成部分,访问控制是对系统中资源进行 保护的重要手段,它的主要任务是保护系统中的资源不被非法使用和未经授权的访 问。目前主流的访问控制策略主要有三种:自主访问控制( d i s c r e t i o n a r ya c c e s s c o n t r o l ,d a c ) ,强制访问控制( ( m a n d a t o r ya c c e s sc o n t r o l ,m a c ) 和基于角色的访 问控制( r o l e - b a s e da c c e s sc o n t r o l ,r b a c ) 。作为一种弱类型的访问控制策略,d a c 把一部分的资源访问权交由软件使用者支配,这种机制影响了系统整体的权限管理 的部署,系统管理员很难确定软件使用者和资源访问权之间准确的联系,而且由于 软件使用者可以将自身所拥有的资源访问权授予其他使用者,不利于对系统实施全 局的安全管理和访问控制。m a c 则是一种强类型的访问控制策略,根据安全级对 软件使用者和资源的访问权制订了严格的访问控制策略,低安全级的访问者无法访 问高安全级的资源,使得m a c 无法满足目前主流的开放式软件环境下对权限管理 灵活配置的要求,它只能在一些特殊领域和要求严格控制访问者的资源访问权的系 统中使用。基于角色的访问控制技术( r b a c ) 是在上世纪九十年代提出来的,它针对 d a c 和m a c 的局限性,把系统的资源访问权与软件使用者分离,把角色作为软件 使用者和资源访问权的关联接口,角色中包含一部分资源访问权的集合,软件使用 者只需要被定义为某种角色,从而间接地获取该角色所包含的资源访问权的集合, 达到了对系统权限管理安全、高效、灵活的要求,从提出至今一直受到开发人员的 青睐,并广泛的使用于计算机应用软件的开发中。 面向服务的架构( s o a ) 从提出以来,在对象管理组织( o m g ) 和部分i t 厂商如 m m 公司的大力推动下,部署基于s o a 的系统已经逐渐成为企业内整合旧系统资 源、搭建全业务系统的趋势,它可以提高企业内系统资源的利用率、降低开发成本, 为企业建立跨平台、跨区域的系统提供支持。 通常情况下,s o a 部署在开放的网络环境中,由于系统整体框架中各服务的相 对独立性和处在异构的环境中,使得基于s o a 架构的系统的权限管理面临着新的 挑战。如何高效、迅捷地部署服务,同时又不失系统访问控制和资源安全性的保障, 已成为基于s o a 架构下的应用系统开发所面临的关键性问题之一。 本研究课题是基于华中师范大学软件工程与信息系统研究所自主研发的华大 项士擘位论文 m a s t e r st h e s i s 权限管理系统( 软件注册登记号:2 0 0 8 s r 3 3 7 8 6 ) 为背景,研究如何结合面向服务 架构( s o a ) 的设计思想来解决开放性系统中权限控制的问题。 1 1 2 研究的目的和意义 本文研究的目的旨在设计一个面向服务的动态r b a c 组件实现开放环境下的 访问控制,在组件的建立过程中对面向服务架构下的权限管理及相关技术进行了研 究,并运用先进的软件模型建立方法和软件开发技术进行组件的设计与实现。 本文研究的意义表现在将面向服务的设计理念与基于角色的访问控制技术紧 密地结合起来,达到使面向服务架构下的系统能够快速、迅捷的实现对软件使用者 的访问控制及保障整个软件系统服务安全的目的。 1 2 国内外研究现状 企事业单位的信息管理软件逐步呈现出功能开放、信息共享的趋势,受自身设 计原理的局限,d a c 和m a c 均不能满足信息管理软件对系统安全性管理的需要。 从上个世纪七十年代起,许多学者和研究人员提出了大量新的访问控制方法,其中 有代表性的有b i b a 模型、t a k e g r a n t 模型、b e l l l o p a d u l a 模型、h r u 模型等,这 些模型也没有很好地解决信息管理软件对资源保护的要求。不久以后,角色被有关 的研究人员抽象出来作为软件使用者和资源访问权的关联接口,角色中包含一部分 资源访问权的集合,软件使用者只需要被定义为某种角色,就间接地获取到该角色 所包含的资源访问权的集合,这种通过角色来连接软件使用者和资源访问权限的方 法逐步发展成为早期的r b a c 模型。 首个r b a c 模型是1 9 9 2 年的f e r r a i o l o k u h n 9 2 q 模型,由d a v i df c r r a i o l o 和m c k k u h n 提出的,该模型首次把角色引入到了系统的权限管理中,并给出了规范的 描述。1 9 9 6 年,具有代表性和规范性的r b a c 9 6 t s l 模型由r a v is a n d h u 和其领导 的研究团队提出来,该模型给出了一个结构完整、定义规范的r b a c 模型框架, 同时还设计了四种不同的扩展模型并给出规范的描述,使得基于该模型的权限管 理可以应对多种不同的应用需要,r b a c 9 6 模型对后期的r b a c 研究给出了一个 标准的参考模型。后来r a v is a n d h u 和q a m a rm u n a w c r 等人又分别提出了分布式 r b a c 模型a r b a c9 7 1 6 1 和ar b a c9 9 ,以此来实现r b a c 模型在分布式环境中 的权限管理功能。 在对r b a c 9 6 模型的研究基础上,国内外的研究人员给出了大量的扩展模型。 a l k a h t a n i 和s a n d h u 把规则( r u l e ) 引入到r b a c 模型中,提出了一种基于规 则的r b a c 模型( r u l e b a s e dr b a c ) t g l ,这种方法使软件使用者和角色之间可以按 2 项士学位论文 m a s t e r st h e s i s 给定的规则进行自动匹配,在降低管理员人工维护工作量和修改复杂性的同时保 障系统的资源安全。b e r t i n o 及其合作伙伴在r b a c 模型中引入了时间约束,提出 了t e m p o r a l r b a c 模型,该方法可以通过时间来约束和管理软件使用者与角色间 的关系,同时还支持权限间的具有时效性的联系。后来b e r t i n o 等人在对前期研究 进一步扩展和补充的基础上,提出了g e n e r a l i z e dt e m p o r a l r b a c 模型。 2 0 0 1 年,f e r r a i o l o 和k u t m 等人为了统一r b a c 不同模型中的术语,提出了统 一的r b a c 模型建议,即n i s tr b a c ,并给出了模型的规范描述和伪代码实现。 2 0 0 4 年2 月,经过大量专家和研究人员的共同努力,美国国家信息技术标准委员 会( a n s i i n c i t s ) 将n s tr b a c 定为美国国家标准( a n s i3 5 9 - 2 0 0 4 ) ,并于2 0 0 6 年1 月,对外公布了实现r b a c 模型的标准草案,尽管该草案并不是非常成熟,但 是也给出了实现基于r b a c 的访问控制策略的方方面面,该实现标准将来有很大 机会作为业界的一个工业规范而被广泛采用。 在对r b a c 及其扩展模型的研究方面,国内主要有中科院软件研究所、武汉大 学软件工程实验室、华中科技大学计算机学院等单位的理论研究和应用都达到了 比较成熟和深入的地步。 目前,采用r b a c 及其扩展模型为基础的信息管理系统,被银行系统、电子商 务、电子政务、大型企业信息管理软件等领域的开发者广泛的采用u 。 1 3 论文的主要工作和章节安排 本文的研究以r b a c 模型为基础,以如何实现基于s o a 的权限控制为研究方 向,设计了一个在面向服务架构下实现动态权限管理的组件,并给出了该组件的设 计方案和具体的实现及应用实例。 主要的研究内容包括: 1 介绍了r b a c 模型,阐述了s o a 的基本概念、设计原则、实施架构、实施 条件和实施s o a 所需的技术准备; 2 通过对如何部署面向服务架构下访问控制策略的分析与研究,设计了一个动 态r b a c 组件,该组件主要包含: 一传统的基于r b a c 模型的权限管理的基本功能模块; _ 通过对内和对外接口,动态区分和管理系统内部和外部访问者的请求; 一根据用户的登录属性,分别给出相应的访问控制策略,其中外部访问者通 过角色代理来完成服务请求; 基于w e b 服务发现模型,将外部服务注册到组件内的权限管理中; 3 项士学位论文 m a s t e r st h e s i s 3 在j a v a 平台下,以s t r u t s + s p r i n g + h i b e r n a t e 技术组合为基础,实现上面设 计的访问控制组件的功能开发,并给出一个具体的应用实例。 本文的结构安排如下: 第一章绪论。主要介绍了课题的研究背景和国内外研究现状,给出了论文的 研究目的和内容。 第二章r b a c 模型和s o a 介绍。介绍了r b a c 模型,并阐述了s o a 的基本 概念、设计原则、实施架构和实施s o a 所需要的技术准备。 第三章面向服务的动态r b a c 组件的设计。设计了一种面向服务的体系结构 下的动态r b a c 组件,并给出了具体的功能模块划分及相关的子模块的设计,核心 模块的逻辑结构和数据库设计。 第四章面向服务的动态r b a c 组件的实现。按照前一章提出的设计思路,给 出了一个在j a v a 平台下,采用s t r u t s + s p r i n g + h i b e r n a t e 技术来开发该组件的具体 例子和应用实例。 第五章总结与展望。 4 硕士学位论文 m a s t e r st h e s i s 第二章r b a c 模型和s o a 介绍 2 1 基于角色的访问控制 基于角色的访问控制模型( r b a c ) 与以往访问控制模型相比,关键之处是引 入了角色的概念,角色中包含一部分系统资源访问权的集合,软件使用者只需要被 定义为某种角色,就间接地获取到该角色所包含的资源访问权的集合,角色成为联 系软件使用者和资源访问权之间的纽带和桥梁。 2 1 1r b a c 模型概述 r b a c 模型的设计初衷是通过把具有相同访问规则的访问者分类,并把每一类 相同的访问权集合包含在特定的角色中,访问者在访问期间通过与角色关联来获得 该角色所包含的访问权集合。系统资源的访问权无法直接授予访问者,访问者必须 通过角色这个“中间人”来获取访问权,这种设计思路不仅使得具有相同访问规则 的访问者的授权工作变得简单,而且同时也使得对某些特殊资源和特定访问者的管 理和访问策略的制订变得灵活。 基于上面的设计思路,r b a c 模型还提出了两个需要遵循的基本原则: ( 1 ) 最少权限原则 最少权限原则的设计要求是把访问者需要通过系统来完成某项工作必需的资 源访问权集合赋予角色,这样可以保证系统内的资源访问权不被访问者滥用,杜绝 系统内信息泄露及访问者的非法操作。 ( 2 ) 职责分离原则 职责分离原则是仿效现实情况下,企事业单位的人员组织结构和工作职责分配 而提出的,它主要是通过不同身份的访问者对系统功能使用的不同,把访问者对资 源的访问权分离而设计的。在r b a c 模型中,职责分离是通过上一条原则来支持的。 r b a c 模型有关职责分离的设计中,主要有静态职责分离和动态职责分离两种 设计原则。 1 静态职责分离( s t a t i c s e p a r a t i o no f d u t y ,s s d ) 系统不能把两个具有静态职责分离( s s d ) 约束的角色赋予给同一个软件使用 者。一般情况下,对s s d 的实现是在给访问者分配新的角色时,通过把访问者已有 角色集与当前需要分配的角色进行基于静态职责分离检测,判断是否有违反s s d 约 束的角色存在,如果存在,则无法为用户分配新的角色。 5 硕士学位论文 h l a s t e r st h e s i $ 2 动态职责分离( d y n a m i cs e p a r a t i o no fd u t y ,d s d ) 尽管满足d s d 约束的角色可以被授予给单个访问者,但在同一访问周期内, 访问者不能在系统中同时激活满足d s d 约束的角色,在多个访问周期里,访问者 可以分别被授予这些角色,达到交替使用的目的。 2 1 2r b a c 基本模型 基本模型也叫核心r b a c ( c o r er b a c ) 模型,是实现r b a c 系统的标准模型, 下图2 1 ,显示的是该模型的整体组成结构。 图2 1 基本r b a c 模型结构 根据图2 1 中给出了基本模型的组成要素,下面进行简单的解释并给出规范的 数学表达式。 1 1 用户( u s e r s ) 用户即软件系统的使用者,一般情况下是指可以独立使用系统功能和访问系统 资源的人,有时候也指其他的可以对系统进行访问和操作的独立实体。 动角色( r o l e s ) 角色是r b a c 模型中最重要的组成元素,角色中包含具有相同访问规则的用户 的访问权集合,它既存在用户与角色的关联,同时也包含角色与资源访问权的关联, 用户、角色和资源访问权之间均存在着多对多的关系。 在实现r b a c 策略的系统中,用户必须被定义为某一个或多个角色,并且通过 在系统的访问期间激活某个或多个角色,来间接地获取到特定的访问权集合,角色 成为联系软件使用者和资源访问权之间的纽带和桥梁。 6 硕士学位论文 m a s t e r st h e s i s 3 ) 权限( p e r m i s s i o n ) 权限是软件使用者对系统资源的访问权,只有当用户通过被赋予角色来间接获 取到访问权后,才能够对相关的资源进行访问和操作。 4 ) 对象( o b j e c t s ) 对象是在软件系统中定义的,被用户访问并进行某种操作的被动实体。对象是 完成某种系统功能的载体,所以涉及的范围十分广泛。如在一个新闻管理系统中既 可以是一条用来显示某则新闻的数据库记录也可以是一份被下载的w o r d 公文等。 5 ) 操作( o p e r a t i o n s ) 操作是软件使用者在对系统的访问期间,对系统进行的某种动作,如在信息管 理系统中查询信息、填写表单、上传文件等都可以看成是对该系统的操作。 6 ) 会话( s e s s i o n s ) 会话是用户对软件系统使用时的访问周期,具有定的时效性,用户是通过系 统访问期间被赋予某一个或多个角色,并在会话过程中保持被赋予的角色来完成对 系统某项资源的访问请求和操作的。 结合上面的基本要素,下面是模型的规范描述: u s e r s ,r o l e s ,o p s 和o b s ( 分别是用户u s e r s ,角色r o l e s , 操作o p e r a t i o n s 和客体o b j e c t s 的集合) -u a u s e r s xr o l e s ,多对多的用户一角色分配关系集合。 a s s i g n e a u s e r s :( r :r o l e s ) - + 2u s e r s ,角色程一个用户集合的映射。 规范的表达式为:a s s i g n e d u s e r s ( r ) = 协u s e r sl ,) h a p r m s :2 ( o p s 邮s 1 ,权限p e r m i s s i o n 的集合。 p a cp r m s x r o l e s ,多对多的角色一权限分配关系集合。 嬲s i g n e a _ p e r m i s s i 。璐( r :r o l e s ) p r m sj2 p r m s ,角色r 到二个权限 集合的映射。a s s i g n e d _ p e r m i s s i o n s ( r ) = p p r m s l ( p ,r ) p a 。 叩( p :p r m s ) 一 0 p o p s ,权限与操作之间的映射,返回属于权限 p 的操作。 o b ( 叠p r m s ) 一 o bso b s , 权限与操作对象之间的映射,返回属于 权限p 的操作对象。 s e s s i o n s ,会话s e s s i o n 的集合。 7 璐e r 一sessions用户到会话集合的蝴。sessions(u:users) 2 ussessions u s e r s ( s :s e s s i o n s ) - 2 e r s ,会话到用户集合的映射。,会话到用尸集合阴映射 s e s s i o n sr o l e s ( s :s e s s i o n s ) 专2 r o l e s ,会话到角色集合的映射。 专,会话剑角笆l 集合嗣吠盯。 规范的表达式为: s e s s i o n sr o l e s ( s oc _ r r o l e sl ( s e s s i o nu s e r s ( s , ) ,0 u a a v a i l _ s e s s i o n _ p e r m s ( s :s e s s i o n s ) 寸2p l 珊s ,在一个会话中某个用户 拥有的权限 -乏rs)assigned_permissiore(r)r$e8510 r o l e s ( 。 nss , 2 1 3h i e r a r c h a lr b a c 模型 h i e r a r e h a lr b a c 模型是在基本模型的基础上,通过引入类似于面向对象方法 中的继承关系来实现角色间的层级联系。下图2 - 2 给出了引入角色继承关系后的模 型结构图。 角色层次 图2 - 2 角色继承的r b a c 模型结构 引入角色继承后r b a c 模型的能更实际地反映出企事业单位中员工的等级制 度,如角色为“部门经理 的访问者的操作权限既包含“普通员工 的操作权限又 3 硕士学位论文 m a s t e r st h e s i s 有自己特殊的操作权限,那么只需要把“部门经理 的角色继承关系设置为“普通 员工一,同时对“部门经理 赋予一定的有别于“普通员工一的操作权限,就可以 轻松实现上述的这种角色间的操作权限关联,既能够自然地反映单位中实际的级层 联系,又能够减轻管理员人工配置的工作量。 2 1 4c o n s t r a i n tr b a c 模型 在上述继承关系的r b a c 模型的基础上,c o n s t r a i n tr b a c 模型是把职责分离 原则引入后的模型,根据前面给出的职责分离的设计原n - 静态职责分离和动态职 责分离,下面分别给出它们的结构模型和说明。 ( 1 ) 引入静态职责分离( s s d ) 后的模型,如图2 3 所示。 图2 3 引入s s d 的模型 由图2 3 可以看出,引入s s d 以后的模型,不仅限制相互独立的满足s s d 约束 条件的角色不能够被同一用户所分配;同时为了保证s s d 的完整性,在实现角色继 承时,也规定了满足s s d 约束条件的两个角色不能发生继承关系,防止访问者通过 角色继承来绕过s s d 的约束,保证了s s d 的完整实现。 ( 2 ) 引入动态职责分离( d s d ) 后的模型,如图2 4 所示。 9 硕士学位论文 m a s t e r st h e s i s 角色层次 图2 - 4 引入d s d 的模型 动态职责分离( d s d ) 与前面的s s d 模型的架构类似,二者的区别在于:d s d 是在对访问者进行角色分配和实现角色间继承关系时进行约束,可以看成是一种固 定的、静态的约束;而d s d 则是在访问者对系统进行访问的周期内对访问者所赋 予的角色进行约束,由于访问者每次的访问周期内系统赋予的角色并不相同,所以 d s d 是动态的进行检验和约束的。 2 2s o a 介绍 2 2 1s o a 概述 s o a 是近几年来软件系统设计和开发领域中的热门,部署基于s o a 的系统已 逐渐成为企业内整合旧系统资源、搭建全业务系统的趋势,它可以提高企业内系统 资源的复用率、降低开发成本,为企业建立跨平台、跨区域的系统提供支持。 2 2 2s o a 设计原列 目前,企业级信息管理系统的开发逐渐向基于s o a 的架构演变,这种演变的 目的是为了使得目前系统的研发能更好地适应企业进行全业务整合的需要。虽然 s o a 并不是一种全新的技术,目前还没有一个统一的实施标准和评价体系,但是采 用s o a 的方法来开发企业级系统,与传统的软件开发模式还是存在着很大的区别。 下面把部署基于s o a 的应用系统中的设计原则与传统的软件设计作简单对比, 以此来给出s o a 的设计原则。 1 0 1 业务与i t 对齐 传统的软件开发的生命周期中,各个阶段的关键点分别是: - 需求分析,关键点是用例 一系统设计,关键点是模块划分和业务实体 一编码实现,关键点是业务实体和业务逻辑 一系统测试,关键点是系统测试用例 系统运营,关键点是系统配置和应用 因为关键点不同,导致各个阶段的开发与实施过程中业务和r r 的不对齐。为 了解决这种问题,s o a 中给出了下列设计思路: ( 1 ) 把服务作为贯穿系统开发各阶段的关键点; ( 2 ) 服务既包含具体的业务功能实现,还要保证服务的粒度和抽象度不能过 低,防止过多的依赖于具体的实现环境; ( 3 ) 通过契约设计方法规范各个服务参与方的职责。 2 保持系统灵活性 s o a 采用以服务来贯穿系统开发各阶段的设计方法,设计的均是粗粒度的服 务,使得服务可以满足更加广泛的应用环境和需求,同时服务的设计也满足系统的 灵活性,具备一定的服务组装能力,即一个服务可以由多个更细粒度的服务来组成, 如图2 5 所示。 图2 5 不同粒度服务的组装 3 低耦合性 低耦合是指在s o a 中服务请求者和服务提供者之间的松散关系,请求者和提供 者具体的实现平台没有强制的依赖关系,使得各自的实现平台保持中立。图2 - 6 给 出了通过w e bs e r v i c e 技术保持服务调用的平台中立性的图示。 项士学位论文 l 五a s t e r st h e s i s 图2 6 通过w e bs e r v i c e 实现平台中立性 2 2 3s o a 参考架构 基于s o a 的设计方法将功能方面涉及的对象、数据、组件、业务流程、界面等 从服务提供者和请求者角度进行层次化。同时,将安全架构、数据架构、集成架构、 服务质量管理等,作为共用的设施提取出来形成不同的层次。s o a 的参考架构如图 2 7 所示。 各层功能介绍如下: ( 1 ) 业务逻辑服务 包括实现和执行业务逻辑,主要由业务伙伴服务、业务应用服务、及应用和信 息资产四块组成。 ( 2 ) 控制服务 实现用户、流程和信息的集成服务,并执行相关集成逻辑的能力。 ( 3 ) 连接服务 通过企业服务总线提供对分布在各种架构中的元素所提供的服务间的连接性。 ( 4 ) 业务创新和优化服务 通过及时了解市场变化,采取措施适应变化。 ( 5 ) 开发服务 贯穿整个软件开发生命周期的开发平台,实现从需求分析,到建模、设计、开 发、测试、维护各个方面的工具支持。 ( 6 ) i t 服务管理 主要包含系统的安全服务、目录服务、系统管理和资源虚拟化。 1 2 硕士学位论文 m a s t e r st h e s i s 图2 7s o a 参考架构 2 3s o a 的实施条件 2 3 1s o a 的技术基础 ( 1 ) x m l l 站i x m l ( e x t e n s i b l e m a r k u pl a n g u a g e ) ,它是一种通用的规范标记语言,因为它具 有用户可自定义的扩展性,所以它也被称作可扩展标记语言。x m l 创建的目的是 为了帮助实现应用系统中结构化数据的共享,尤其被用来作为i n t e r a c t 环境中数据 传输的标准格式。国际万维网联盟( w 3 c ) 把x m l 定义为一个开放的标准,并给 出了具体的格式定义和设计规范,因此x m l 被大量的应用系统作为数据存储和数 据交换的标准形式,同时也广泛地应用于多系统环境下的数据通信。 ( 2 ) s o a p 协议 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 ) l i p 简单对象访问协议,它是一种基于规范 协议的互联网消息传递协议,也是构建w e b 服务的基础。s o a p 以x m l 作为消息 格式,通过其他的应用层协议如远程对象调用( r p c ) 或h t r p 进行消息传输和调 1 3 项士学位论文 m a s t e r st h l s i s 用。s o a p 架构中定义了规范的多层次的消息格式和消息交换模式,并与底层传输 协议绑定,具备消息处理模型和协议的可扩展性。举例说明s o a p 的工作过程:把 一个基于s o a p 的消息发送到具有w e b 服务功能的网站实现信息查询功能,如查询 某个在线销售系统的数据库,该网站将返回一个包含商品价格、数量、出厂日期等 信息的标准x m l 格式的文件,因为返回的数据是一个标准化的格式,可直接集成 并被第三方的系统解析和使用。 ( 3 ) w s d l 规范 w s d l ( 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 s d l 中相关联的具体访问点可以合并成抽象的访 问点或服务。w s d l 文件是可扩展的,它允许对访问点及其信息进行描述,并且不 受信息格式或网络协议的约束,可以方便的在网络上进行通信。w s d l 目前已经被 w 3 c 组织作为一种通信协议和信息格式的标准来推广,它在结构化的网络通信描述 中变得越来越重要。 ( 4 ) u d d i 协议 统一描述、发现和集成( u n i v e r s f i ld e s c r i p t i o n ,d i s c o v e r ya n di n t e g r a t i o n ) 规范提 供了一组公用的s o a p a p i ,使得服务代理得以实现。u d d i 为服务的发布和发现定 义了一个标准接口( 基于s o a p 消息) 。u d d i 实现将发布和发现服务的s o a p 请求 解释为用于基本数据存储的数据管理功能调用。s o a 并没有要求必须采用u d d i , 但由于u d d i 是建立在s o a 上来完成自身工作的,所以u d d i 给出了一种好的服 务发现的解决方案。 目前比较流行的是u d d i + w s i n s p e c t i o n ( w e bs e r v i c ei n s p e c t i o nl a n g u a g e ) 的 w e b 服务发现架构【2 9 】,如图2 8 所示。 w s i n s p e c t i o n 文档提供一种方法来聚集不同类型的服务描述。w s i n s p e c t i o n 文档中,一个服务可以有多种对服务描述的引用。例如,可以既使用w s d l 文件又 在u d d i 注册中心描述个w e b 服务。对这两种服务描述的引用应该放在 w s i n s p e c t i o n 文档中。如果可用多种引用,把它们全部放在w s i n s p e c t i o n 文档是 有好处的,这样文档用户可以选择他们能够理解并希望使用的服务描述类型。 w s i n s p e c t i o n 文档提供对服务描述的引用的集合。这些服务描述可以用任何服务描 述格式( 例如w s d l 、u d d i 或者简单m m l ) 定义。 1 4 硕士学位论文 m a s t e r st h e s i s 图2 - 8u d d i + w s i n s p e c t i o n 的w e b 服务发现架构 圆s o a p 服务引擎 s o a p 服务引擎用来在w e b 服务的两端提供s o a p 消息的封装及其解包功能。 s o a p 4 j 是最先出现的j a v as o a p 引擎之一,最先是由m ma l p h a w o r k s 开发的实 验性s o a p 引擎,后开源a p a c h e 在此基础上,开发出早期的s o a p 引擎,并不断 地更新和推广使用。目前流行最广的w e b 服务引擎为a x i s ( a p a c h ee x t e n s i b l e i n t e r a c t i o ns y s t c m ) z 3l 擎,最新版本为a x i s2 版。 下图给出了a x i s 2 引擎的体系结构图,如图2 - 9 所示。 1 5 项士学位论文 m a s t e r st h e s i $ 图2 9a x i s2 的体系结构图 根据图2 9 ,下面给出a x i s2 引擎各模块功能的描述。 1 ) 核心组件 x m l 对象模块( a x i o m ) a x i s 2 对象模块( a x i s 2o b j e c tm o d e l ,a x i o m ) 是a x i s 2 的基础,任何s o a p 消息在a x i s 2 中都表示a x i o m 。a x i o m 相对于其他x m l 表示形式的优势在 于,它基于p u l l 解析器技术,而其他大多数则基于p u s h 解析器技术。p u l l 与p u s h 的主要不同之处在于,在p u l l 技术中,调用者对解析器具有完全控制权,可以 要求下一个事件;而对于p u s h ,当要求解析器继续处理时,它将触发事件,直 到达到文档最后为止。 由于a x i o m 基于p u l l 解析器技术,因此具有“随需应变 的能力,仅在被 要求时才会构建对象模型,而且,如果需要,可以直接从a x i o m 访问基础 p u l l 解析器并对其加以使用,而不用构建对象模型( o b j e c tm o d e l ,o m ) 。 s o a p 处理模块:处理程序框架。 信息处理模块:上下文和描述。 2 ) 其他组件 传输 基于消息传递的传递核心。a x i s 2 核心是纯s o a p 处理引擎,并不了解数据 1 6 项士学位论文 i d a s t e r st h e s i s 绑定、传输、w s d l 等内容。a x i s 2 核心的主要功能是处理传输消息,并将其 交付给目标应用程序。 客户机a p i a x i s 2 引入了用于调用服务的非常方便的客户机a p i ,此a p i 包含两个类, 分别名为s e r v i c ec l i e n t 和o p e r a t i o nc l i e n t 。s e r v i c ec l i e n ta p i 专门用于只需要 发送和接收x m l 的普通用户,而o p e r a t i o nc l i e n t 旨在供希望处理s o a p h e a d e r 和其他一些高级任务的高级用户使用。 代码生成模块 一个在e c l i p s e 中使用的能自动根据w s d l 生成j a v a 文件以及根据j a v a 文 件生成w s d l 的插件。 2 3 2s o a 服务的实现 s o a 服务是通过基于标准的w e b 服务来实现的。图2 1 0 给出s o a 的w e b 服 务体系结构。 图2 1 0w e b 服务体系结构 如图2 一1 0 可以发现,s o a 的w e b 服务架构中包含三种角色: ( 1 ) 服务提供者 向服务管理中心提交标准的服务描述信息,以此来发布自身的服务,并 对服务的请求作响应。 1 7 硕士学位论文 m a s t

温馨提示

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

评论

0/150

提交评论