




已阅读5页,还剩75页未读, 继续免费阅读
(计算机应用技术专业论文)基于mvc模式的aop安全框架的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硕士论文基于 mvc模式的ao p安全框架的研究与实现 ab s t r a c t wit h c o m p u te r n e tw o rk a n d d is tr ib u te d c o m p u tin g t e c h n o lo g y g e tt in g mo re a n d m o r e m a tu r e , j 2 e e mu ltila y e r w e b fr a m e w o rk b a s e d o n mv c p a tte rn h a s b e c o me o n e o f th e p r im a ry a r c h ite c t u r e in d e v e lo p i n g d i st rib u t e d e n te rp r is e a p p lic a ti o n a c a d e m i a s a p p lie d th e m s e lv e s t o st u d y a n d s o lv e h o w to k e e p w e b a p p li c a t io n s e c u re , p re v e n t e d t h e a c t iv e a t ta c k a n d p a s s iv e a tt a c k .in th i s s itu a t io n , s u n mic r o s y s te m c o rp o r a t io n p ro p o s e d j a a s f ro m j 2 s e 1 .4 . it sp e c ify s a n e w s e c u r it y s t a n d a r d a n d p r o v id e s a p lu g g a b l e a n d fl e x ib le f ra m e w o r k .j 2 e e a p p lic a tio n w h ic h a p p l ie s j a a s c a n a u th e n tic a t e u s e r a n d p r o t e c t r e s o u r c e s e ff e c tiv e ly a n d its s e c u r ity h a s b e e n im p ro v e d re m a r k a b ly . r e s e a rc h e r s d e v e lo p e d j a a s in o r d e r to e n h a n c e a c c e s s c o n tr o l o f j 2 e e a p p li c a tio n a c c e s s c o n tr o l b a s e d o n mv c p a tt e rn r e f e r s to r b a c m o d e l to s o m e e x te n t.v a rio u s r e s o u r c e s s h o u ld b e a s s i g n e d t o r o l e s in t h e f o rm o f o b j e c t . u s e r c a n m a k e s u r e w h ic h p e r m i s s io n s h e o w n s to a c c e s s s o m e s p e c if ic r e s o u rc e s b y ri g h t o f h is r o le s a n d a c c e s s c o n t ro l p o lic y .t h o u g h it s im p li fi e s p e r m is s io n m a n a g e m e n t, th e r e a r e s o m e l im it a tio n s b y u s in g t ra d iti o n a l o o p . e a c h c o r e c o n c e rn m u s t imp le m e n t c r o s s c u ttin g c o n c e rns s c a tt e r e d w id e ly . it w ill c a u s e c o d e ta n g lin g a n d s c a tt e r in g .t o ta c k l e th is p r o b l e m , w e tr ie d h a rd to u s e a s p e c t o r i e n te d p ro g ra m min g (a o p ) to im p r o v e a c c e s s c o n t ro l b a se d o n mv c p a tt e rn a n d p r o p o s e d a a o p s e c u r it y fr a m e w o rk b a s e d o n mv c p a t te r n ( mb a s f ) . in t h e t h e s is , w e d e s ig n e d a n d im p le m e n t e d a ll mo d u le s o f m b a s f b y d e s ig n id e a s .t h e w o r k m a i n ly in c lu d e s s o me a s p e c ts a s fo ll o w s : p a s s w o rd a u th e n t ic a tio n b a se d o n m d 5 d ig e s ts in c lu d in g s a lt , p a s s w o r d /x .5 0 9 c e r tif ic a te s t a c k a u t h e n ti c a t io n , a u th o r iz a t io n b a s e d o n r d b ms a n d x m l p o li c y f ile , s e s s io n m a n a g e m e n t , b ro w s i n g a n d q u e ry in g a u d it lo g s b y a ja x , m o n it o r in g s y s te m p e r f o rm a n c e , h ib e rn a te p e r s is te n c e m a n a g e m e n t . b y a o p m o d e l in g c r o s s c u ttin g c o n c e rn s , s y s t e m c a n b e f u r th e r im p r o v e d in re u s a b il ity , fl e x ib i lity a n d s c a la b i lity , w h ic h c o n fo r m s to th e o b j e c tiv e o f s o f tw a r e e n g in e e rin g in th e th e s is , w e b u ilt a j 2 e e a r c h it e c tu re a p p l y i n g mb a s f o n th e b a s i s o f d e s ig n in g a n d im p l e m e n tin g mb a s f .it c a n b e u s e d a s th e t e c h n ic a l c r ite ri a o f d e v e lo p in g p r o j e c t a p p li c a tio n .a s r u n n in g - s y s te m a n d m o n it o r in g r e s u lt s h o w s , mb a s f n o t o n ly im p lie s d e s ig n o b j e c ti v e s o f se c u r ity , fu n c t io n a lity , s tr u c tu r e a n d e ff ic ie n c y , b u t a ls o im p r o v e s s e c u r it y s t a n d a r d o f e n te r p r is e a p p l ic a tio n , w h ic h a c h ie v e s r e s e a r c h in te n tio n a n d e x p e c ta tio n . k e y w o r d s : mv c , a o p , a c c e s s c o n t r o l , j a a s , h ib e rna te , j 2 e e 声明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在 本学位论文中,除了 加以 标注和致谢的部分外,不包含其他人已经发 表或公 布过的研究成果,也不包含我为获得任何教育机构的学位或学 历而使用过的材料 。与我一同工作的同事对本学位论文做出的贡献均 已 在论文中作了明确的说明。 研究生签名:工 建) t 7 年 7 月了日 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以 借阅 或上网公布本学位论文的部分或全部内 容,可以向 有关部门 或机构送 交并授权其保存、借阅或上网公布本学位论文的部分或全部内容。 对 于保密论文, 按保密的有关规定和程序处理。 研究生签名:对 年2 月了日 硕士论文 基于mv c模式的ao p安全框架的研究与实现 1 引言 1 . 1 研究背景 目 前, 计算机网 络和分布式计算 技术迅 速发展, 对国民经 济和人 们生活方式产 生 重大 而深远的影响。 作为 其重要组成部分的 分布式 多层 w e b 应用逐渐普及,已 经为 企业带来巨大的经济与社会效益。作为众多厂商支持的多层分布式应用标准, j 2 e e ( j a v a 2 p la tfo r m e n te rp r is e e d i tio n ) 以 平台 无 关 、 可 扩 展 性 强 、 模 块 化的 特 点 为 建 立大 规模企业级 应用 提供了高 效的 解决方案。通 常, 人们将j 2 e e体 系划分为四 层结 构 , 客 户 层 、 表 示 层 ( w e b 层 ) 、 业务 逻 辑 层 和 企 业 信 息 系 统 层 (e i s ) 。 早 期 的j 2 e e 应 用曾 采用以j s p + j a v a b e a n 为中 心的m o d e l l 模式, 它在构 建中 小型的w e b 应用中曾 发 挥过 积极作用, 但随 着 w e b 技术的 不断发 展和 应用规模的不断 扩大, 页面与业务 逻 辑强祸 合、 可 扩展和可维护差的弊端使m o d e l l 模式难以 成为 构建企业级w e b 应用的 主流技 术。 在这一背景下, 以m v c 为标志m o d e 1 2 模式应 运而生。 m v c 模式将j 2 e e 表示层和 业务逻辑层划分为模型( m o d e l ) , 视图 ( v i e w ) 和控制器( c o n t r o l l e r ) 三部分, 在 理论上实 现了 页面显示与业务逻辑分离, 具有 模块 独立、 流程清晰、 设计灵 活和易于 扩展等 特点。 实践 证明, m v c模式能 够有效提 高企业 级w e b 应用的 开发效率, 并显 著增强系统 代码重用性与可靠性。 基于m v c 模式的j 2 e e 多层w e b 框架已 经成为目 前分布式 企业级应用的主流 架构之一。 随着 企业级多 层w e b 应用的不断扩大, w e b 安 全问 题已 经日 益引 起人们的注意, 计算机病毒、蓄意 破坏、 篡改、 伪装、 消息析出、 通信量分析等攻击 手段成为 w e b 应 用 的 主 要 安 全 威 胁 。 在这 种 背景 下, j 2 e e 平 台 继 承j a v a 2 安 全 模 型, 在j 2 s e (j a v a 2 p la tf o rm s t a n d a r d e d it io n ) 基 础 上, 引 入了 一 种 细 粒 度的 、 可 定 制 和 可 配置 的 安 全 模 型 , 采用j a a s , j c a , j c e , j s s e , p k c s 和p k i 等技 术, 从认证、 授权、 机密 性、 完 整 性, 审计等 方面建立了 企业级w e b 应用的安 全标 准。 在j 2 e e安 全应用中, 认证与 授权都是极为 重要的 部分。最初, j a v a 的 认证与 授 权主 要关注于 运行在 w e b 浏览器中的 可下载 代码。 一旦在客户端系 统中 下载t 可 移 植 代码, 就有 必要对这些代码进行 认证与授权, 以 决 定其可执行的 特权操 作, 如网 络 访问 、文件i i o等.在以 客 户端为中 心的w e b 技术 到服务器端描述与 集成技术的 演 变 过程中, j a v a 平台 也需要新的、 能 够在服务 器领域 有效执行的认 证与授权机制。 在 这一 背景下, s u n 在j 2 s e l .4 后推出j a a s ( j a v a a u t h e n t i c a t i o n a n d a u t h o r i z a t i o n s e r v i c e ) 框 架, 规定了 新的安全 标准并 提供了 一个可 插拔的 和富有弹 性的 框架, 允许开发 者混 合不同的 安全 机制和丰富的安全资源, 对各 类用户 进行有效 认证和授权管理, 建 立并 硕士论文 垂于mvc模式的ao p安全框架的研究与实现 扩展了 标准j a v a 2 的 安全模型。 采用j a a s 能有效 验证用户的身份并 保护访问资 源, 使j 2 e e 多层应用的安全 性得到显 著提高。 构 建安全的j 2 e e多 层应用, 不但需要可 靠平台 架构, 成熟安 全组件的 支撑, 更 需要 程序设计技术的 支持。 从早期依 靠指令顺序执 行的 汇编语言 , 发展到2 0 世纪6 0 年 代的 结构化 程序设 计, 再到2 0 世纪8 0 年代的面向 对象 程序设 计 ( o o p ) , 程序设计 技术 不断变革与发展。 o o p将 现实 世界的客观实体 抽象为类, 用属性 和方 法描述 对 象( 类实例 ) 所具有的 公共特征和行为。 它有很多 优点 , 封装性保证了 软 件部件的模 块 化特点,防 止了 程序相互依赖而带来的 变动影响;继 承性提供了 类规范的 等级结 构, 使公共的 特性能 够共享, 提高了 软件的重用性; 多态 性允许每个对象以 适合自 己的 方 式去响 应共同 的消息, 增强了软件的 灵活和重用性. 这些特点适应软 件产业化要 求. 极大地 提高了 软件开发的效率, 为解决软件 危机带来了 一线光明。 但是, o o p虽然 比 结构 化方法更自 然地 表现现实世界, 但它不 是万能的, 由 于本身 存在的 固有局限 性, 并不能解决软件开发的所有问题。 我 们将类完成系统 所必需的功能 或要求的逻辑 行为称为关注点, 一个典型的 软件 系统 应该包含两类关注点, 核心 和横切关注点. 对于 核心关注点而言, 通常 来说, 实 现这些 关注点的模块是 相互独立的, 它 们分别 完成了 系统需 要的 商业逻辑, 这 些逻辑 与具体 的业务需求有关. o o p的 封装特性很好实现了 核心关注点的业 务逻辑。对于 像日 志跟踪、安 全、 事务管理等关注点 而言, 它们却是商业 逻辑模块所共同 需要的, 这 些逻辑分布于 核心关注点的各处, 我们称之为 横切关注点, 它可以 被 系统的 许多 模 块引 用. o o p技术在处理此类关注点时 效果不 够理想,往往会发生 代码纠缠 或代码 分散的现 象, 破坏了 面向对象的 基础。 在这种背景下, 以 横切关注点 模块化为目 标的 a o p技术的诞生,无疑为该问 题提供了 有效的解决方案. a o p ( a s p e c t o r i e n t e d p r o g r a m m 吨 ) 是x e r o x p a r c 于1 9 9 7 年 发明的 编程范式, 被视为“ 后面向 对象时 代” 重要的程 序设计技术。 它立足于 关注点分离, 为横切关注点的 模块化提供了 解决方 案, 增强了系统的灵活和重用性,具有广阔的应用前景。 1 . 2 研究现状 身份 认证 和访问 控制一直是国内外网 络安全领域的 研究热点。 目 前, 基于口 令的 认 证技术因其简 单易 用, 维护方 便的特点 应用最为广泛, 但是由 于口 令以明 文形 式传 输 和存储, 容易 被截获和 窃取, 因 此在大型企业级安 全系统中 , 开 发者转向开发 和应 用 更为安 全的 认证技术, 主要有k e r b e r o s 许可票证、 x . 5 0 9 数字 证书、 智能卡 和生物 特 征 信 息 等 认 证 技 术 . 特 别是x .5 0 9 数 字 证 书, 作 为p k i( 公 钥 基 础 设 施 ) 的 重 要 组 成 部 分, 实 现基于公开密钥的网 络身 份认证, 保证了 信息传输的机密 性、 完整 性和不 可 否 认性。 在 美国, 随着电 子商务的日 益兴 旺, 数字证书、 数字签名 得到了一 定程度的 硕士论文 基于mvc模式的a o p安全框架的研究与实现 应用; 在我国,p k i 及数字 证书认证迅 速发展,目 前已 经建立了 几十个省级c a( 证 书权 威机构) , 并在电子政 务及电 子商 务等领域成 功推广。 一旦用户 通过了身 份认 证, 系统就 应查看他是否具有权限以 访问 特定的 资源, 这就是授 权。 目 前授权采 用国际上 普遍 认可的 三种访问 控制模 型, d a c ( 自 主 访问 控制 模型) 、 m a c ( 强制访问 控制模型 ) 和r b a c ( 基 于角色访问 控制模型 ) , 此外, 还出 现了 基于对象和任务的 模型 等。1 9 9 2 年出 现的r b a c模型, 通过设置角 色这一概念, 分离了 用户与权限的直 接联系,既 避免了 在d a c中设置a c 以 访问 控制 列表) 直接管 理权限, 不适合大 量用户和资源 企 业级系统的缺点,又防止了ma c模型对用户访问资源严格限制,授权更加灵活, 用 户和权限更容易管理。 2 0 0 2 年出 现的j d k i a版本, 正 式将j a a s 作为s d k和j r e的 一个有机组 成部 分, 用 j a v a a p i 实现了在j 2 e e多 层应用中 进 行有效身份认证和 授权的目 标. 采用 p a m ( 可插入认证模 块) 结构, 具 备了 在同一 应用中配 置多种认证技术的功能, 同时 又 实现了 基于用 户对计算机或数据资 源的授权请 求, 扩展了传统j 2 s e 使用代码 源作为 授 权 的 发 起 者 , 更 符 合 访问 控 制 理 论 模 型 , 具 备 较 强 的 实 际 应 用价 值。 b e a 的 w e b lo g ic 和 j b o s s 4 .x 均采用j a as 作为安全框架的基础。 虽然目 前j a a s己 经成功应 用于j 2 e e架 构, 特别 是应用在以m v c模式 为基础 的 多层w e b 应用中, 起到了 有效加强 系统访问 控 制的 作用。 但是, j a a s 与j 2 e e 应 用的结合 仍然存在不足。表现 在: 授权具有 横切特性, 广泛分布在核心业务 逻辑中。 若基于o o p思 想,在每个核心 业务逻辑中 均予以 实 现, 势必造成核心与横切 关注点 的代码混 合与纠缠, 破 坏了面向 对象设 计基础, 造成 代码臃肿和难于理解, 给系统的 维护造成不 便。 因此, 有必要采 用a o p 建模技 术重新整合j a a s , 改 进基于m v c 模 式的j 2 e e 应用访问控制。 作 为分布式安 全的 重要内 容之一, 审计也具 有横切特性,若能 采用a o p 技 术跟 踪日 志 信息, 将 在提高 系统安 全等级的同 时进一 步增强其模块化程 度。 针对这些问 题,目 前学 术界的 解决 方法不多, 有待进一步研究。 因此, 课 题提出 了 基于m v c模式的a o p安 全框架( m b a s f ) , 不但能够实 现通 用的 身份认证、 授权 及审 计功能, 而 且利用a o p 技术 使系统架构灵 活性、可 维护和可扩展性显著 增强。 研究课题具有较高的 理论与实际 应用价值。 1 . 3 课题来源 针对上述研 究背景和研究现 状, 作者 参与了 导 师与 某公司的 合作项目 一房产信息 网 的设计与开发。 该 系统为 一门 户网 站, 目 的 为各类 用户提供完备的 房地产信息服务, 访问 量大、 用户数量庞大且种 类繁多, 对系统安全 性提出较高要求, 需要对各类 用户 进行有效的身 份认证和授权, 同 时审计 各类日 志信 息, 满足系统安 全运行的 要求。 系 3 硕士论文墓于 mv c摸式的a o p安全框架的研究与实现 统 采用a p a c h e 软件基金会的j a k a r t a 项目s t ru t s , 作为m v c 模式在j 2 e e表 示层和业 务 逻辑层的具 体应用, 使用目 前成熟的o r m 工 具 h i b e r n a t e 作为 对象持久化标准。 考 虑到网站 访问速度, 应用 a s p e c t ) 语言 作为a o p的 实现工具, 实 现了对 横切关注 点的 模块 化建 模,并整合在 具体的j 2 e e多 层架构中。 考虑到课题和项 目的特点,作者从 2 0 0 6 年 6月开始,查阅大量资料,系统学习 了j a r s , s t r u t s , h i b e rn a t e , a s p e c t ) , a j a x 等技术, 同时 针对系统特点, 掌 握了x . 5 0 9 数字证书、 数字签名、 报文摘要、 公开密 钥加密等知 识, 学习了身 份认证、 访问 控制 理论等。 在实际的 项目 设计开发过程中, 作者 积极 认真地开展工作, 研究并 提出了 一 个基于mv c模式的a o p安全框架,并在课题项目中加以应用,取得良好效果。 1 . 4 研究内 容 研究 基于m v c 模式的a o p 安 全框架的目 的 在于建立一个能 应用于j 2 e e 多层架 构,符合 mv c 设计模式的通用认证、授权及审计框架。该框架应用 j a a s可插入 a p i 模 块, 对用户身份认证和授 权进 行有效管 理, 同时引入a o p技 术对各类横切关 注点 ( 如授权, 审计等) 进行建模, 不仅具有一 般m v c 模式设计清晰、 模块化的 优点, 并且凭借a o p 技术, 很大程度上消除了 传统o o p中 代码纠缠 和代码分散现象。 在提 高 分布式安 全标准的同时, 增强了 系统的 可扩展 和可维护性。 为了达到 上述目 的, 课 题的主要研究内容如下: 1 . m v c 模式 与a o p 技 术的 结 合 , 具 体 研 究a s p e c 。 在s t r u ts 中 的 具 体 应 用 。 a s p e c t) 是一 种较成熟的a o p 实现语言, 其静态 织入特性使 其运行开销最小, 速度接 近传 统 o o p代码。作为大多数 j 2 e e项目表示层和业务逻辑层首选架构,s t r u t s已成 为 m v c模式的典 型应用代表,结 合两者研究 依据充分。 课题主 要解决 在 s t r u t s a c t i o n 模块中识别连接点、 选择切入点、 封装横切关注点、 选择通知等若干问 题。 2 , j a a s 身 份 认 证模 块的 设 计, 主 要 内 容 包 括 : l o g in c o n t e x t 的 创 建; 根 据 配 置 文 件 设计 两种典型的l o g i n m o d u l e , 基于口 令登录 模块和基于x . 5 0 9 数字证书登 录模 块 , 实 现 接口 规定 的in it ia l iz e s , lo g in () , c o m m i t0 , a b o r to , lo g o u t () 方 法 : 实 现 特定的 c a llb a c k 0 接口 ,用于 获取口 令、 证书等认证 信息; 设计自 定 义的 c a l lb a c k h a n d l e r , 实 现接口 定义的h a n d l e o 方法; 研究如 何保证认证信息安 全传输, 防止非法窃取和篡改等攻击手段。 3 , j a a s 授权模块的 设计, 研究r b a c访问 控制模 型和j a a s 授权原理, 研究j a a s 授权 方式的选择与授权策略的 制定, 有效 控制认证用 户对s t r u t s 视图的 访问 。 4 、安 全审计模块的设计,主要功能 为跟踪 各类日 志信息,审计 各类安全记录。 5 、 安 全数据库设计和实现, 应用r b a c 模型, 建 立用户、 角色、 权限、 日 志等关系, 并引 入 o r m 标准之一h i b e r n a t e 技术对各 类关系进行对象映 射, 持久化 进 j 2 e e 4 硕士论文 荃于mv c模式的a o p安全框架的研究与实现 应用, 完成 后台 对认证、 授权和审计的 支持。 6 、对安全 模块a o p 建模, 研究工作 集中 在 从授权及审计等 模块中 识别横切关 注点, 用a o p 方面进行封装, 建立具备安 全特性的 各类a s p e c t . 7 、 用s t r u t s 整合a o p安 全框架, 通过静态 织入, 完成a o p 安全 模块与s t r u t s 核心 关 注点 的整合,最终构建出m b a s f ( m v c - b a s e d a o p s e c u r i t y f r a m e w o r k ) , 并将 该框架应用于课题项目房产信息网,测试项目的运行效果和系统性能。 1 .5论文结构 论文共分为七章,内容安排如下: 第 一章引 言, 介绍了 课题的研究 背景、 研究 现状、 项目 来源、 主要 研究内 容和章 节安排。 第二章m v c 模式相关理论, 本章 将研究m v c 设计模式 和s t r u t s 框架 ,对m v c 的理论 基础一设计模式进行阐 述。本 章着重从 理论角度构建出 课题的 基础模型。 第三章面向 方面编程a o p 研究, 本章 将研究a o p 技术, 讨论a o p 对o o p 技 术 的改 进, a o p 基本概 念, a o p 与设计模 式的关联, a o p 语言 规范 和实现, 并 详细介 绍a o p 的 实现语言 一a s p e c t j . 第四 章课题安全基础 研究, 本章将 研究课题的 安全基础, 首先对身 份认证和访问 控制 理论进行阐述, 强调常用的认证手段 和三种 访问 控制模型; 其次介绍课 题安全目 标的实 现技术j a a s , 重点讲解】 a a s 结 构、组 成及实现原 理。 第五章 m b a s f的设计与实现, 本章 将给出课题的设计目 标和设 计思想,强调 a o p 技术对基于m v c模式访问控制的改 进思 路。 在此基础上介绍m b a s f 的 设计 与 实 现细节。本章是全文重点部 分. 第六章m b a s f 的课 题项目 应用, 本章将 介绍项目 功能 特点、 整体框架结构, 在 此基础上结合应用实例,给出系统性能的监测结果。 第七章总结与 展望, 本章将对课题的 研究工作 进行概括总结, 进一 步分 析m b a s f 的不足和改进之处,并提出进一步的研究期望. 硕士论文基于mvc模式的a o p安全框架的研究与实现 2 m v c模式相关理论 2 . 1 mv c的理论基础 一设计模式 2 . 1 . 1 设计模式含义 设 计模式的 起源 可以 追溯到2 0 世纪7 0 年代, 建筑大师c h r i s t o p h e r a l e x a n d e r 曾 说过: “ 每一个模式描述了一 个在我们周围不断重复发 生的问 题,以 及该问 题的解决 方案的 核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。 ” 尽管 a l e x a n d e r 所指的 是城市和建筑模式, 但他的思想也同 样适用于面向 对象软 件领域, 只 是 我 们 用 对 象 和 接口 代 替了 墙 壁 和 门 窗 川 。 在 面 向 对 象编 程 中 使 用 模 块 化 方 法 研 究 的开 创性著 作是g o f ( g a n g o f f o u r ) 的 设计模式:可复 用面向 对象软件的 基础 , 在 该 著作中, g o f将从大量项目 发现的可 复用设计思想进行总结、 分析而形成设 计模 式的统一理论。 设计 模式代表了 对特定环境中重 复出 现问题的 解决方 案。 不同抽 象层次和不同 的 领域类的设计模式定义不同。 设计模式提供了一种有效的软件复用方式, 正如不同的 设计 工程师 在设计时 复用软件的层次 不同, 人们出 发点 不同 会对设计 模式的定 义理解 不同, 一 个人的 设计模式对另一 个人可能只是基 本构造部件, 同时, 设计模式 代表对 特定环境中出 现问 题的专业解决方 案。 因 此, 设计模 式在粒度和抽 象层次 上各不 相同 , 可以 在多 个抽象的层次和领域内 给出 定义。 2 . 1 .2 设 计模式分类 设计模式依 据使用 范围可 分为: 类模式和 对象 模式。 类 模式处理类和子 类之间的 关系, 这些关系 通过继 承建 立且在编译时 确定, 是静态的; 对象模式处理 对象间的 关 系, 它们在运行时 刻可 变, 具有动态 性。 设 计 模 式 的 分类 方 法多 种 多 样, 常见 分 类 有 11, 创建型模式, 它抽象了 实例化过程, 它们帮助一个系统 独立于如何 创建、 组 合和 表示 它的 那些对 象, 一个 类创建 型模式使用继 承改变了 被实例 化的 类, 而一个对 象创 建 型 模 式 将 实 例 化 委 托 给 另 外 一 个 对 象。 具 体 代 表 有a b s t ra c t f a c t o ry , b u ild e r , f a c to ry m e t h o d , s i n g l e t o n 等. 结构型 模式, 它关 注于 如何将类和对 象组成更大的结构, 以 构成 更加复杂的结 构, 它 带来了 对象组合时的 灵活性。 类模式 通过继承关系提供有效 的接口 ; 而对象 模式通 过对象合成或将对象包含在其他 对象中的 方式构成更加复杂的结构。 具体代 表有 a d a p t e r , b r i d g e , c o m p o s i t e , p r o x y , d e c o r a t o r 等. 硕士论文基于 mv c模式的ao p安全框架的研究与实现 行为 模式, 主要是那些处理 对象之间通信的 模式。 行为模式涉及到算 法和对 象间 职责的 分配, 不仅描述 对象或类的模 式, 还描 述了它 们之间的通信。 这些模式刻画了 运行时 刻难以 跟踪的复杂的 控制流, 它 帮助软件设计者 在设计软件时 把注意力从 控制 流 转 移 到 对 象 间 的 联 系 上 来。 具 体 代 表 有o b se r v e r , m e d ia t o r , s t ra te g y 等。 上 述模式可能存 在多 层次的抽 象或者交叉的体系 结构。我们平常 所说的j 2 e e 设 计模式 包括了以 上的 各种模式的具体 实例, 并且在3 2 e e 设计里,不同的 层使 用的 模 式不同。 2 . 1 . 3 w c使用的主要 模式 观察者( o b s e rv e r ) 模式 观察者模式是对象行为模式, 又称发布一订阅 ( p u b l i s h - s u b s c r i b e ) 、 模型一视图 ( m o d e l - v i e w ) 模式, 它定 义对象间 一种一 对多的 依赖关 系。 当一个对 象状态发生 改变 时, 所有依 赖于 它的对象都得到 通知并被自 动更新。 观察者的目 的是 维护对象间 交互 的一致性而又不使各类紧密祸合。 这一模式中的 关键对象是主题( s u b j e c t ) 和观察者 ( o b s e r v e r ) , 一 个主题可以 有任意数目 的依赖它的观 察者. 一旦主 题的 状态发生改 变, 所有 观察者都将得到 通知。 作为 对这个通知的响 应, 每个观察者都将查 询主题以 使其 状态与主题的状态同步。 主题是通知的发布者, 它发出通知时并不需要知道观察者是 谁, 可以 有任意数目 的 观察者订阅并 接收通知。下 列情况适合使用观察 者模式 p l , 1 、 一个抽象模型 有两 方面, 其中一方面 依赖于另一方面。 这二者分别封装 在两个 对 象中以 便于 它们独立地改变和 使用。 2 、 一个对象的改 变需 要同时改变其 他对象,而又不知 道具体有多少对 象有待改 变. 3 、 一个对象必须 通知 其他对象, 但又 不知道具体有哪 些对象, 即不希望这 些对象是 紧祸合的。 组 合 ( c o m p o s it e ) 模 式 组合就是将 对象组合成为树型结 构以 表示“ 整体一部分” 的 层次 结构, 它使得 用 户 对单个对象和组 合对象的使用具 有一致性。 用户可以 组合多 个简单 的组件以 形成 较 大的 组件, 这些组 件又可以 递归 合成较大的组 件, 这些组 件可以 是图 元对象, 也可以 是 容器 对象。 组合体内 这些对象都有 共同 接口 , 当 组合体中的 一个对象的方 法被调 用 执 行时, c o m p o s i t e将遍历( i t e r a t o r ) 整个树形结构, 寻找同 样包含这个方 法的对象 并 实 现 调 用 执 行 。 下 列 情 况 使 用 组 合 模 式 l, 1 、 想表示 对象的 部分一整体层次 结构。 2 、 希望用户忽略 组合对象与单个 对象的不同, 用户统一使 用组合结构中的 所有 对象。 策 略 (s t r a t e g y ) 模 式 策 略 模 式 又 称 政 策 ( p o l ic y ) , 它 把 算 法 包 装 起来 , 把 使 用 算 法的 责 任 和 算 法 本 身 硕士论文 墓于mv c模式的a o p安全框架的研究与实现 分开. 该模式的参与者 包括: s t r a t e g y ( 策略 ) , 通常是抽象类或 接口, 它给出了 实现类 的 接口 ; c o n c r e t e s t r a te g y ( 具 体 策 略 ) , 它 实 现了 抽 象 策 略 的 相 关 行 为; c o n t e x t (上 下 文 ), 它 持 有 一 个s t ra t e g y 类 的 引 用, 用c o n c re te s tr a te g y 对 象 来 配 置 . 下 列 情 况 使 用 策 略 模 式 i1, 1 、许多相关的类仅仅是行为不同, 策略模式可以动态地让一个对象在许多行为中选 择一种。 2 、系统需要动态选择几种算法中的一种。 3 、算法使用客户不应该知道的 数据。 此时可以 使用策略模式以 避免暴露复 杂的、 与 算法相关的 数据结构。 4 、一 个类定 义了多 种行为, 如果不 恰当 使用模 式, 这些行为 只好使用多重条件 语句 实现,此时如果使用策略模式,就可以避免难以维护的多重条件选择语句。 2 . 2 mv c模式基本理论 2 . 2 . 1 mv c概迷 m v c 模式 起源于2 0 世纪8 0 年 代x e r o x p a r c ( 施乐帕洛阿尔 托研究中 心) 开 发的 面向 对象语言s m a l l t a l k - 8 0 , 近年 来被s u n 推荐为j 2 e e 平台的 设计 模式。 m v c 模式 强 制地把应用程序的 输入、 处理和 输出分离, 形成 3个相互协调的核心模块, 模型 ( m o d e l ) 、 视图 me w ) 和控制器 ( c o n t r o l l e r ) , 分别实 现业务逻辑、 表示逻辑和控制流 程。 m v c模式各模块相 对独 立、 提高了 应用程序的灵 活性、 重用性和可配置 性, 为 开 发j 2 e e 应用提供了 最 基本的 分析 方法、 清晰的 框架和规范的设计依 据。 模型是应用程序的主体, 它 表示的是解决 方案空间的真正的 业务逻辑, 并 且存放 数据和实体( 通过j a v a b e a n , e j b 组件实 现) 一 个模型可以 同时为多 个视图 提供数 据, 是整个mv c架构中的核心部分。 视图是与用户交互的界 面( 由j s p 页面产生 ) , 它承担连接用户和 应用程序之间的 接口 角色。 一方面, 视图 将用户的 请求传递给应 用程序, 触发应用 程序对用户请求的 处 理逻辑;另一方面, 视图 将应用程 序对用户 请求的 处理结果返回 给用户。 控制器提供 应用的处 理过程控 制( 一 般是一个s e r v l e t ) . 它根据用户的输入, 控制 用户界面数据显 示及更新模型对象 状态的部分, 这是 模型与 视图的接口 。 控制器 根据 用户的操作判断所要执 行的 业务逻 辑, 关联模 型和视图。 m v c 模式处 理过程十分清晰, 控制器 接收 用户请求, 然后决 定调用哪个模型 进 行处理, 模型 进行相应的 逻辑处理, 然后返回 处理后的数据, 控 制器调用视图 将模型 返回的数 据呈 现给用户. 具体流 程如图2 .2 . 1 . 1 3 j . 硕 士 论文荃于mvc模式的a o p安全框架的研究与实现 图2 .2 . 1 . 1 m v c模式 结构流程 2 . 2 .2 m v c与设 计模式 通过 对m v c 模式结 构的 进一步分 析, 我们 可以 发现它与 设计模式的联系 i l l . 模型 和视图的 关系可以 被抽象为o b s e r v e r 模式,它 们通过 “ 订 购/ 通知” 协议进 行分离。 视图必须保 证它的显示正 确地反映了 模型的 状态。 一旦模型的数据 发生 变化, 模型 将通知有关的 视图 , 每个视图 相应 地得到刷新自 己 的机会。 这种方 法可以 让你为 一 个模型 提供不同 的多个视图表 现形式, 也能 够为一 个模型创建新的视图 而无须重写 模型。 m v c 视图 嵌套的特征可以 看 成c o m p o s i t e 模式的具体 应用。 m v c 用v i e w 类的 子 类 一 o m p o s it e v ie w 类 来 支 持 嵌 套 视 图 , 一 个 组 合 视图 包 含 并 管 理 嵌 套 视图 , 可 用 于任何视图可用的 地方,可以 将组合视图与 其构件 平等对待。 视图和控制 器的 关系可以 被抽象为s t r a t e g y 模式。 mv c允许你在不改变视 图外 观的情况下改变 视图 对用户输入的响应 方式, 通过 使用控 制器子类的实例实 现一 个 特 定的响应策略, 要实现不同的响 应策略只要 用不 同种类的 控制器实例替 换即 可, 甚至 可以在运行时刻通过改变视图的控制器来改变视图对用户输入的响应方式。 2 .2 .3 mv c特点与应用 m v c 模 式的 适 用 范围 很 广, 这 与 其 具 有 众多 优 点 密 不 可 分. 具 体 包 括 415161 , 结构清晰:在m v c设计 模式 下, 应用 清晰地分为 模型、视图、 控制器三部 分, 三部分分别对应业务逻辑和数 据、 用户界面 和用户请 求处理与数据同步. 这 种对 应功能模块的划分有利于 选择重点进 行修改 , 并 且不同功能的 代码不会混 杂在一 起,改变 一部分 不会影响其余两者, 不 会引 起代 码混乱, 有利于构建 松散 祸合的 构件。 重用性、 灵活性和可配置性: 多个视图 共享一 个模型, 使得同 一个模型 可以 被 不 9 硕士论文基于mv c模式的a op安全框架的研究与实现 同 视图 重用, 大大提高了 代 码的 重用性。 控制器可以 连接不同的模型 和视图, 去 完成用户的需 求, 这 样可以 为构造 应用程序提供强有 力手段, 提高 应用程 序灵活 性和可配置性. 功能 强大的用 户界面: 用户界面与 模型方法调用组合 起来, 发送给模型的“ 标准” 命令,都是由单个用户行为触发的,这样就使得程序可以选择更加清晰友好的界 面呈现给客户端。 模块的有效性 和可维护性: 模型、 视图、 控制器的 程序改变
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水泥养殖用地申请书
- 钢琴申请书格式
- 房屋产权放弃还款协议书8篇
- 人才购房证明申请书
- 助学贷款转换申请书
- 安全检查隐患自查培训课件
- 商铺个人申请书
- 公司欠款申请书表
- 潞城安全培训课件
- 安全检查能力培训课件
- 2025年老年病学住院医师规培出科考试理论笔试答案及解析
- 激光武器物理课件
- 气瓶泄漏应急演练范文大全
- 2025年REACH 250项高度关注物质SVHC清单第34批
- 2025年软件架构师专业技术考核试题及答案解析
- 八上语文第9课《天上有颗南仁东星》课件
- 2025-2026学年苏教版(2024)小学科学三年级上册(全册)课时练习及答案(附目录P102)
- DBJT15-110-2015 广东省建筑防火及消防设施检测技术规程
- 2024年BRCGS包装材料全球标准第7版全套管理手册及程序文件(可编辑)
- 公考公共基础知识培训课件
- 2025年人保非车险考试题及答案
评论
0/150
提交评论