(计算机科学与技术专业论文)一个无线增值业务系统及其安全机制的设计实现.pdf_第1页
(计算机科学与技术专业论文)一个无线增值业务系统及其安全机制的设计实现.pdf_第2页
(计算机科学与技术专业论文)一个无线增值业务系统及其安全机制的设计实现.pdf_第3页
(计算机科学与技术专业论文)一个无线增值业务系统及其安全机制的设计实现.pdf_第4页
(计算机科学与技术专业论文)一个无线增值业务系统及其安全机制的设计实现.pdf_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 移动增值业务逐渐成为移动运营商增加业务收入的主要手段,而且,随着 移动增值业务的用户数量的迅猛发展,移动增值业务的内容也越来越丰富,因 此,为各种无线增值业务搭建统一而完善的业务平台也就显得尤为重要。 本文采用j 2 e e 作为系统平台的基础架构,利用基于r b a c 的安全访问控制 技术,应用基于s p r i n ga o p 技术的a c e g i 安全框架,搭建一个功能完善,安全 高效的无线增值业务综合服务平台。 基于以上,本文针对实际的企业级系统项目“无线增值业务服务系统 主 要作了如下工作: 1 、介绍j 2 e e 体系架构及第三方框架s t r u t s ,s p r i n g 2 、分析了基于角色访问控制( r b a c ) 的实现及其特性,扩展了r b a c 模型使 其支持数据权限的控制。 3 、详细介绍了a o p 机制,研究了基于s p r i n ga o p 的a c e g i 系统安全框架 的搭建。 4 、提出并实现了对a c e g i 安全框架进行面向数据库的移植,扩展其应用的 通用性。 最后,关于进一步工作的方向并进行了简要的讨论。 关键词:j 2 e e ,s t r u c t s 框架,s p r i n g 框架,r b a c ,a c e g i 目录 a b s t r a c t m o r ea n dm o r em o b i l eo p e r a t o r sh a v ec o m et o t a k ew i r e l e s sv a l b e a d d e d b u s i n e b sa st h em a i nm e t h o dt or a i s et h e i ri n c o m e f u r t h e r m o r e a st h en u m b e ro ft h e u s e r sm u l t i p l y , t h ec o n t e n to fw i r e l e s sv a l u e a d d e db u s i n e s sh a sb e c o m em o r ea n d m o r ep l e n t i f u l ,t h e r e f o r e , i ta p p e a r se s p e c i a l l yi m p o r t a n tt ob u i l du pa nu n i f o r ma n d p e r f e c tp l a t f o r mf o rv a r i o u sw i r e l e s s 、黼u e - a d d e ds e r v i c e t m sp a p e ra i m st oi n t r o d u c eh o wt os e tu pa ne f f e c t i v ea n ds a f ew i r e l e s s v a l u e a d d e db u s i n e s sc o m p r e h e n s i v es e r v i c ep l a t f o 姗w i t hp e r f e c tf u n c t i o n w h i c h t a k e sj 2 e ea st h eb a s i cs t u c t u r eo ft h es y s t e mp l a t f o r m ,u t i l i z e ss a f ev i s i tc o n t r o l t e c h n o l o g yb a s e do nr b a ca n da p p l i e sa c e g is e c u r i t yf r a m e w o r kb a s e do ns 两n g a o p t e c h n o l o g y t h em a i np o i n t sa r ea sf o l l o w s : 1 i n t r o d u c et h ej 2 e es y s t e mf r a m e w o r ka n dt h et h i r d - p a r t yf r a m e w o r k :s t r u t s a n ds p r i n g 2 a n a l y s i st h er e a l i z a t i o na n dc h a r a c t e r i s t i co fr b a c ,a n de x p a n dr b a cm o d e l t om a k ei ts u p p o r tt h ed a t aa c c e s sc o n t r 0 1 3 i n t r o d u c ea o pm e c h a n i s mi nd e t a i la n ds t u d yt h ee s t a b l i s h m e n to fa c e g i s y s t e ms e c u r i t yf r a m e w o r kb a s e do ns p r i n ga o p 4 p u tf o r w a r da n dr e a l i z et h ei d e ao ft r a n s p l a n t i n ga c e g is e c u r i t yf r a m e w o r kt o d a t a b a s es oa st oe x t e n di t su n i v e r s a lp r o p e r t yo na p p l i c a t i o n f i n a l l y , t h ep a p e rg i v e sab r i e fd i s c u s s i o no nh o wt of u r t h e rt h er e s e a r c h k e y w o r d s :j 2 e e ,s t r u t sf r a m e w o r k ,s p r i n gf r a m e w o r k ,r b a c ,a c e g i i i 学位论文版权使用授权书 本人完全了解同济大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名:劳彳彳 撕r 年弓只厂b 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名:学位论文作者签名: 年月 日年 月 日 同济大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 签名:修才j 沙矿暑年弓月y 日 第1 章引言 1 1 系统研究的意义 第1 章引言 随着移动通信的快速发展,基础电信业务的主体优势呈下降趋势,伴随而 来的是移动增值业务的用户数量迅猛发展,移动增值业务越来越丰富。目前中 国移动推出了移动梦网、动感地带,中国联通推出了u p 新势力、联通在信等一 大批业务品牌。移动增值业务已经不再是基础电信业务的补充,而逐渐成为移 动运营商提高a r p u 值,降低用户离网率,增加业务收入的主要手段。 移动运营商发展增值业务是分阶段分地区进行规划的,随着增值业务的技 术不断发展、标准不断完善、用户认可程度不断提高,运营商逐步推出各种丰 富多彩的移动增值业务,比如中国联通近几年推出了w a p 、j a v a b r e w 、定位、 多媒体邮件、流媒体、联通在信、炫铃等多种增值业务。 未来移动增值业务系统是朝着综合统一的方向发展,对各种增值业务进行 统一管理、统一控制、综合计费、综合账务,为未来3 g 网络中各种移动多媒体 增值业务的搭建统一而完善的业务平台。本文正是立足于此,开发一个移动增 值业务系统的综合平台,具有十分重要的现实意义。 1 2 系统研究的可行性 从市场和业务总规模看,2 0 0 6 年中国移动增值市场规模达到了1 0 0 0 亿元, 比2 0 0 5 年增长3 1 6 。i r e s e a r c h 预测,2 0 0 7 年中国移动增值市场规模为1 2 0 0 亿元,未来三年中国移动增值市场规模将继续增长,受2 0 0 8 年奥运会的影响, 届时中国移动增值市场又会迎来一个新的发展高潮,此后便趋于稳定,预计到 2 0 1 0 年中国移动增值市场规模将超过2 0 0 0 亿元,达到2 0 8 0 亿元【3 】。而且随着 3 g 时代的来临,以w a p 为基础的各项数据增值业务的市场将有望得到更大的 拓展,整个市场的前景广阔。 在技术上,本系统是一个基于j 2 e e 的服务器平台。移动互联网是建立在w a p 技术之上的,要真正应用需要三个环节,即w a p 网关的建设、w a p 内容服务器和 w a p 终端,其中缺一不可。w a p 网关的建设一般由运营商( 移动通讯公司或与大 第1 章引言 。嘲= 虱鳓痰 鳓。鬻。赫洲馘 1 3 国内外研究现状 随着移动通信网络从基于电路交换的第二代移动通信系统( 2 g ) 向基于分 组交换的2 5 代、第3 代系统的演进,移动增值业务也随之从语音增值业务发 展到数据增值业务。与前者相比,数据增值业务对2 5 g 、3 g 移动通信系统的发 展所起的作用更大,其地位也更为关键。 目前,世界上各国运营商开展的移动增值业务以及采用的技术基本上有以 下方面:语音增值业务、基于j a v a 或b r e w 的下载游戏类业务,基于w a p w e b 的信息浏览和信息查询类业务,基于s m s 删s 的邮件多媒体消息传送类业务, 以及基于各种定位技术的移动定位业务。从发展移动增值电信业务比较早、市 场相对成熟的日本和韩国的经验来看,开展移动增值业务对整个a r p u 值的拉动 效应十分明显。 中国移动已于2 0 0 0 年1 1 月出台“移动梦网计划”( 由卓望提供平台解决方 案) ,中国联通也于2 0 0 3 年3 月2 8 日推出了“联通无限”业务,各自构建了自 己的无线增值业务平台,向用户提供数据增值业务。中国电信和中国网通也正迫 切期待3 g 的运营执照,准备积极参与到移动数据业务的竞争中来。 2 第1 章引言 目前中国移动的“百宝箱”和中国联通的“神奇宝典”下载平台采用的都 是m o t o l o r a 提供的解决方案。 1 4 研究目标 本课题基于的项目是实现一个基子j 2 e e 架构的无线增值业务服务系统,该 项目通过复用通用的底层框架和基础平台,结合用户的实际需求,开发出能投 入无线增值业务服务应用的系统。系统包含用户和增值业务的管理、接入、认 证、鉴权、计费和统计分析工作等多个模块。我在其中承担了内容商和增值业 务管理模块的开发任务,并对系统作了安全管理的分析和实现。 本课题的研究目标是: 1 分析系统的整体需求,对系统的业务逻辑进行模块化分类,构建易于维 护、扩展方便、安全的系统。 2 对系统作安全性研究,为系统构建一个独立于系统业务逻辑、易于扩展 的安全框架。 1 5 内容安排 本论文的基本安排为: 第1 章:知识背景的介绍; 第2 章:详细研究了本系统采用的应用程序框架模型j 2 e e ; 第3 章:设计基于j 2 e e 的无线增值业务服务系统; 第4 章:无线增值业务服务系统的r b a c 模型设计; 第5 章:基于a c e g i 的无线增值业务服务系统安全框架实现; 第6 章:系统测试分析; 第7 章:总结与展望。 第2 章j 2 e e 体系结构及应用程序框架 第2 章j 2 e e 体系结构及应用程序框架 2 1j 2 e e 体系结构及其安全机制 2 1 1j 2 e e 概述 2 1 1 1j 2 e e 概念及发展 j 2 e e ( j a v a2p l a t f o r me n t e r p r i s ee d i t i o n ) 是s u n 公司定义的一个开放 式企业级应用规范。它提供了一个多层次的分布式应用模型和一系列开发技术 规范。多层次分布式应用模型是根据功能把应用逻辑分成多个层次,每个层次 支持相应的服务器和组件,组件在分布式服务器的组件容器中运行,容器间通 过相关的协议进行通讯,实现组件问的相互调用。遵从这个规范的开发者将得 到行业的广泛支持,使企业级应用的开发变得简单、快速。 同时,j 2 e e 体系结构提供中间层集成框架用来满足无需太多费用而又需要 高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台, j 2 e e 降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成的强 有力的支持,完全支持e j b ( e n t e r p r is ej a v ab e a n s ) ,有良好的向导支持打包 和部署应用,添加目录支持,增强了安全机制,提高了性能。 2 1 1 2j 2 e e 体系结构 图2 1j 2 e e 体系结构图 第2 章j 2 e e 体系结构及应用程序框架 如图2 1 所示h 1 ,在j 2 e e 平台体系结构中,将组成一个完整企业级应用的 不同部分纳入不同的容器( c o n t a i n e r ) ,每个容器中都包含若干组件( 这些组件。 是需要部署在相应容器中的) ,同时各种组件都能使用各种j 2 e es e r v i c e a p i 。 j 2 e e 容器包括晦1 : w e b 容器:服务器端容器,包括两种组件j s p 和s e r v l e t ,j s p 和 s e r v l e t 都是w e b 服务器的功能扩展,接受w e b 请求,返回动态的w e b 页面。 e j b 容器:服务器端容器,包含的组件为e j b ( e n t e r p r i s ej a v a b e a n s ) , 它是j 2 e e 的核心之一,主要用于服务器端的商业逻辑的实现。 a p p l e t 容器:客户端容器,包含的组件为a p p l e t 。a p p l e t 是嵌在浏 览器中的一种轻量级客户端。 a p p l i c a t i o nc 1l e n t 容器:客户端容器,包含的组件为a p p l i c a t i o n e l l e n t 。a p p l i c a t i o nc l i e n t 相对a p p l e t 而言是一种较重量级的客户 端,它能够使用j 2 e e 的大多数s e r v i c e 和a p i 。通过这四个容器,j 2 e e 能够灵活地实现企业级应用的架构。 2 1 1 3j 2 e e 应用程序层次模型 j 2 e e 分布式应用程序的逻辑根据其实现的不同功能被封装到各组件中。组 成j 2 e e 应用程序的组件根据其所属的层被安装到不同的“机器”中。图2 2 描 述了一个典型j 2 e e 分布式应用程序的层次模型: 二二) 叵三里面f 二二 图2 2j 2 e e 应用程序层次模型 第2 章j 2 e e 体系结构及应用程序框架 2 1 2j 2 e e 主要技术 s u n 公司的j 2 e e 是一种利用j a v a 语言的标准体系结构定义的,它提供中间层 集成框架用来满足高可用性、高可靠性以及可扩展性的应用的需求。j 2 e e 技术 主要有:j s p ,s e r v l e t ,e j b ,j d b c ,j n d i 等。j 2 e e 平台的应用主要由构件构成, 应用系统的开发就是设计这些构件并组装成整个企业应用。 2 1 2 1j s p j a v as e r v e rp a g e s ( j s p ) 是一种以j a v a 为主的跨平台w e b 开发语言,是由 s u n 公司倡导,许多公司参与建立的一种动态网页技术标准。j s p 是一种实现普 通静态h t m l 和动态h t m l 混合编码的技术,它分为页面的静态h t m l 和动态部分。 j s p 页面文件通常以j s p 为扩展名,而且可以安装到任何能够存放普通w e b 页面的地方。在j s p 执行时,代码被编译成s e r v l e t 并由j a v a 虚拟机执行,这 种编译操作仅在对j s p 页面的第一次请求时发生。 访问j s p 文件主要有两种方法:一种是浏览器发送对j s p 文件的请求,j s p 调用b e a n 组件执行任务,并将生成的动态内容发送到浏览器的组件;另外一种 是客户端直接将请求发送至s e r v l e t ,由s e r v l e t 负责生成动态内容,再激活一 个j s p 文件来显示所生成的内容。 总的来说,j s p 技术具有以下优点:可以运行在任何w e b 服务器上,可以将 w e b 页面内容的生成和表现完全分离开来,允许快速的开发和测试,简化交互式 w e b 应用程序的开发。 2 1 2 2s e r v l e t s e r v l e t 是j a v a 2 0 中新增的一个全新功能,s e r v l e t 是一种采用j a v a 技术 来实现c g i 功能的一种技术。与传统的c g i 或其它c g i 类似替代技术来说,j a v a s e r v l e t s 效率更高,使用更方便,功能更强大,更小巧也更便宜。j a v as e r v l e t 提供了如下许多优势哺1 : ( 1 ) s e r v l e t 可以和其它资源( 文件、数据库、a p p l e t ,j a v a 应用程序等) 交互, 以生成返回给客户端的响应内容。 ( 2 ) 采用s e r v l e t ,服务器可以完全授权对本地资源的访问( 如数据库) ,并 且s e r v l e t 自身将会控制外部用户的访问数量及访问性质。 ( 3 ) s e r v l e t 可以是其它服务的客户端程序。 ( 4 ) 可以从本地硬盘,或者通过网络从远端硬盘激活s e r v l e t 。 ( 5 ) s e r v l e t 可被链接( c h a i n ) 。一个s e r v l e t 可以调用另一个或个系列 s e r v l e t ,即成为它的客户端。 6 第2 章j 2 e e 体系结构及应用程序框架 ( 6 ) 采用s e r v l e t t a g 技术,可以在h t m l 页面中动态调用s e r v l e t 。 ( 7 ) s e r v l e ta p i 与协议无关。它并不对传递它的协议有任何假设。 ( 8 ) 像所有的j a v a 程序一样,s e r v l e t 拥有面向对象j a v a 语言的所有优势。 s e r v l e t 是使用应用程序设计接口( a p i ) 及相关类和方法的j a v a 程序。j a v a s e r v l e t 是运行在请求面向请求服务器上的模块。例如,一个s e r v l e t 可以从 一个h t m l 订单表中获取数据然后用一些商业上的算法来更新公司相应的订单数 据库。 s e r v l e t 程序是用j a v as e r v l e ta p i 开发的as t a n d a r dj a v ae x t e n s i o n 。 但不是j a v a 核心框架的一部分,可以作为通用的附加产品包被商家购买使用。 除了j a v as e r v l e ta p i ,s e r v l e t 还可以用以扩展和添加到a p i 的j a v a 类软件 包。s e r v l e t 运行于j a v a e n a b l e dw e bs e r v e r 中,可以动态地扩展s e r v e r 的 能力,并采用请求一响应模式提供w e b 服务。j a v as e r v l e ta p i 定义了一个 s e r v l e t 和j a v a 使能的服务器之间的一个标准接口,这使得s e r v l e t s 具有跨服 务器平台的特性。 s e r v l e t 的主要功能在于交互式地浏览和修改数据,生成动态w e b 内容。这 个过程为: 1 客户端发送请求至服务器端; 2 服务器将请求信息发送至s e r v l e t : 3 s e r v l e t 生成响应内容并将其传给s e r v e r 。响应内容动态生成,通常取决 于客户端的请求; 4 服务器将响应返回给客户端。 s e r v l e t 看起来像是通常的j a v a 程序,导入特定的属于j a v as e r v l e ta p i 的包。因为是对象字节码,可动态地从网络加载,可以说s e r v l e t 对s e r v e r 就 如同a p p l e t 对c 1 i e n t 一样,但是,由于s e r v l e t 运行于s e r v e r 中,它们并不 需要一个图形用户界面。从这个角度讲,s e r v l e t 也被称为f a c e l e s so b j e c t 。 2 1 2 3e j b e j b 的全称是e n t e r p r i s ej a v a b e a n ,是s u n 公司推出的j 2 e e 体系结构中的 一种组件规范。根据s u n 公司的定义,e j b 结构是一个服务端组件结构,是一个 基于分布式对象的层次性结构。该结构模型在通常情况下可分为客户层、业务 逻辑层和数据层。 客户层主要是用来满足对整个系统的各种访问需求并处理以下工作:接收用 7 第2 章j 2 e e 体系结构及应用程序框架 户的输入,还可以对用户的输入进行分析检查并作相应的处理;显示由服务器 端高层传来的运行结果。客户层通常是由客户进程组成,这些进程由浏览器动 态地创建和撤销。 业务逻辑层是整个系统最关键的部分,业务逻辑层在通常情况下会分为两 层,其高层是请求接收层( 一般称之为w e b 层) ,用于接收从浏览器传来的请求 并将请求交给底层进行处理,同时将请求处理结果发送给浏览器这些过程主要 由j s p 页面、基于w e b 的a p p l e t s 以及显示h t m l 页面的s e r v l e t s 组成底层是 请求处理层( 一般称之为e j b 层) ,包括监听进程、处理进程和数据库操作进程, 负责处理请求接收层传来的客户请求并对它进行处理,同时将请求结果传递给 请求接收层,如果需要的话还需要将处理结果交给数据层进行存储喳1 。 数据层主要是为业务逻辑层提供数据服务,如存储业务逻辑层处理结果、返 回业务逻辑层检索的数据结果,同时也是为了实现屏蔽数据源的变化,从而实 现当数据库发生变化时我们只需修改连接数据源的语句。 服务端的e j b 组件有三种基本类型:e n t i t y b e a n ( 实体b e a n ) , s e s s i o n b e a n ( 会话b e a n ) 和m e s s a g ed r i v e n b e a n ( 消息驱动b e a n ) 。 e j b 技术一般应用于数据库操作。在开发过程中,一般采用的开发方式是在 会话b e a n 内部调用实体b e a n ,比如在会话b e a n 中用实体b e a n 进行数据库的访 问,同时会话b e a n 用来保存客户的上下文信息。e j b 技术的特点有可移植、可 重用,平台独立及可扩展。 2 1 2 4j d b c j a v a 数据库连接是一个标准s q l ( s t r u c t u r e dq u e r yl a n g u a g e ,结构化查 询语言) 数据库访问接口,可以为多种关系数据库提供统一访问。j d b c 是一组 j a v aa p i ,它提供了一组标准的a p i 调用来进行数据库的访问。 2 1 2 5j a v am e s s a g es e r v i c e j m s 是s u n 公司于1 9 9 8 年提出的一种m o m 标准。在继承了j a v a 语言良好的 可移植性和平台无关性的情况下,j m s 作为一种新兴的标准显示出了其强大的 生命力。作为j a v a2 的一个标准接口,j m s 促进了分布式计算环境中各个组件 之间可靠的异步通信,进一步简化了企业开发和集成过程。采用j m s 技术,使 各个开发商更容易创建成功的分布式应用,更迅速地将之推向市场。 2 1 2 6j n d i j n d i ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ) 是j a v a 平台的一个标准扩 第2 章j 2 e e 体系结构及应用程序框架 展,提供了一组接口、类和关于命名空间的概念。如同其它很多j a v a 技术一样, j n d i 是p r o v i d e r b a s e d 的技术,暴露了一个a p i 和一个服务供应接口( s p i ) 。 j n d i 目前所支持的技术包括l d a p ,c o r b ac o m m o no b j e c ts e r v i c e ( c o s ) 名字 服务、r m i ,n d s ,d n s ,w i n d o w s 注册表等等。 j n d i 通过绑定的概念将对象和名称联系起来。j n d i 中的一组绑定作为上下 文来引用。每个上下文暴露的一组操作是一致的。j n d i 的设计是为了简化在开 发高级网络应用程序中对目录基础设施的访问。 2 1 3j 2 e e 安全机制 融入到j 2 e e 各主要技术组件中,j 2 e e 对认证、授权、访问控制、数据 机密性和完整性等安全机制均给予一定程度的支持。 2 1 3 1 对认证的支持 认证是用户向系统证明其身份的过程。j 2 e e 在其技术体系内提供了对两大 类认证方式:对w e b 组件的认证和对e j b 组件的认证。 w e b 组件是执行认证的最合适候选者。对于w e b 应用来说;这些组件完 成了它与用户交互的大量工作。s e r v l e t 技术规范虽然没有指明如何进行认证, 但它指明了w e b 容器必须支持该功能。s e r v l e t 定义了四种认证方式:h t t p 认 证、h t t p 摘要认证、基于表单的认证和h t t p s 客户端认证( s s l ) 。 j 2 e e 的另一种认证是对e j b 组件的认证,j 2 e e 规范不要求在e j b 容器中 对调用者进行身份认证,而且,网络防火墙也可能会阻止客户容器和e j b 之 间直接通过i n t e r n e t ( 通过r m i ) 进行交互。e j b 容器保护e j b 的方法之一是 让w e b 容器来证明通过保护型组件访问e j b 的用户的身份瞳1 。 2 1 3 2 对授权的支持 j 2 e e 中安全是基于角色的,也就是说资源访问权限赋予角色,通过角色把 权限赋予用户。服务器用特定的工具实现用户和角色之间的映射。有两种方式 指出什么角色可以访问哪些资源:声明性安全和编程性安全。 声明性安全是通过安全声明的方式来代表应用程序的安全需求,安全需求一 般包括安全角色,访问控制和验证要求等。在j 2 e e 平台中部署描述符充当了声 明性安全的主要工具。应用程序的开发者用它来表示应用中的安全需求,应用 程序部署者或应用程序组装者将安全角色与部署环境中的用户和组件映射起 来。在程序运行时容器从部署描述符中提取相应的安全策略,然后容器根据安 全策略执行安全验证。 9 第2 章j 2 e e 体系结构及应用程序框架 有时候会有一些声明性安全无法满足的特殊安全要求,这时可以通过编程性 安全来完成这种特殊要求。相比于声明性安全通过部署描述符定一的安全需求 是基于类,编程性安全是基于实例的。 2 1 3 3 对数据完整性和机密性的支持 安全性的另一个主要功能是保证数据的完整性和机密性。 j 2 e e 中,可以利用s s l 来处理数据的完整性,s s l 会向发送线路上的数据 添加校验和,如果发生任何变化,服务器会及时通知浏览器。开发人员不需要 在s e r v l e t 中处理数据完整性问题,这是w e b 容器的事情。如果需要这个层次 的安全,可以配置服务器使用s s l 通信。 保密性是所有数据提供远程访问的应用系统所必需考虑的问题。加密浏览 器和服务器之间的通信可以确保数据机密性。j 2 e e 安全模型没有对此提供太多 的灵活机制来保证数据的机密性。在w e b 组件的部署描述符中,可以定义资源 需要传输机密性。与数据完整性一样,可以利用s s l 来处理数据机密性的问题心1 。 2 1 3 4j a a s j a a s ( j a v a 认证和授权服务) 是j a v a 提供的为应用程序执行认证和授权服 务工作的软件包,它实现了标准p a m ( p l u g g a b l ea u t h e n t i c a t i o nm o d u l e ) 框架。 p a m 框架的主要用途是允许应用程序开发人员在开发时写入标准认证接口,并将 使用哪些认证技术的决策留给系统管理员。认证技术是在登陆模块中实现的, 这些登陆模块是在编写了应用程序之后部署的,并且在称为“登陆配置文件 的文本文件中制定。“登陆配置文件 不仅可以指定要调用哪些模块,而且还可 以指定总体认证成功的条件n 2 。 2 2j 2 e e 应用程序框架 2 2 1 基于框架的软件开发 2 2 1 1 框架的概念 首先看看什么是框架。 一个框架是一个可复用设计,框架是对特定应用领域中的应用系统的部分 设计和实现,它定义了一类应用系统( 或子系统) 的整体结构 1 。框架将应用系统 划分为类和对象,定义类和对象的责任,类和对象如何互相协作,以及对象之 间的控制线程。这些共有的设计因素由框架预先定义,应用开发人员只须关注 第2 章j 2 e e 体系结构及应用程序框架 于特定的应用系统特有部分。框架刻画了其应用领域所共有的设计决策,所以 说框架着重于设计复用,尽管框架中可能包含用某种程序设计语言实现的具体 类。 2 2 1 2 基于框架开发的优点 软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识, 内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成 一些基础工作,你只需要集中精力完成系统的业务逻辑设计。框架的最大好处 就是重用。 采用框架技术进行软件开发的主要优点包括: 领域内的软件结构一致性好 建立更加开放的系统 重用代码大大增加,软件生产效率和质量也得到了提高 软件设计人员要专注于对领域的了解,使需求分析更充分 存储了经验,可以让那些经验丰富的人员去设计框架和领域构件, 而不必限于低层编程 允许采用快速原型技术 有利于在一个项目内多人协同工作 基于以上优点,本项目采用了主流的符合j 2 e e 规范的框架s t r u t s 和 s p r i n g ,下文将对所采用框架作详细介绍。 2 2 2s t r u t s 应用程序框架 2 2 2 1 什么是s t r u t s s t r u t s 是目前最流行的基于j 2 e e 的架构方案之一。 s t r u t s 最早是作为a p a c h ej a k a r t a 项目的组成部分问世运做。项目的创立 者希望通过对该项目的研究,改进和提高j a v as e r v e rp a g e s ( j s p ) 、s e r v l e t 、 标签库以及面向对象的技术水准。 s t r u t s 是一个为开发基于模型( m o d e l ) 一视图( v i e w ) 一控制器( c o n t r o l l e r ) ( m v c ) 模式应用架构的开源框架,是利用j a v as e r v l e t 和j s p 构建w e b 应用的 一项非常有用的技术,其目的就是简化运用m v c 设计模型来开发w e b 应用,同 时它本身具有组件的模块化,灵活性和重用性的优点n 3 1 。 2 2 2 2s t r u t s 工作原理 第2 章j 2 e e 体系结构及应用程序框架 m v c 即m o d e l - v i e w - c o n t r o l l e r 的缩写,是一种常用的设计模式。m v c 减弱 了业务逻辑接口和数据接口之间的祸合,以及让视图层更富于变化。m v c 的工作 原理,如图2 3 所示: v i e w ( 视图) 上t c o n t r o l l e r ( 控制) 上t m o d , e l ( 模型) 图2 3m v c 工作原理 s t r u t s 是m v c 的一种实现,它将s e r v l e t 和j s p 标记( 属于j 2 e e 规范) 用作 实现的一部分。s t r u t s 继承了m v c 的各项特性,并根据j 2 e e 的特点,做了相应 的变化与扩展。s t r u t s 的工作原理,如下图2 4 所示: 图2 4s t r u c t s 体系结构 我们就从分别从控制、模型、视图来看看s t r u t s 的体系结构: 控制:通过图2 4 大家可以看到有一个文件s t r u t s c o n f i g x m l ,与之 相关联的是c o n t r o l l e r ,在s t r u t s 中,承担m v c 中c o n t r o l l e r 角色 的是一个s e r v l e t ,叫a c t i o n s e r v l e t 。 视图:主要由j s p 生成页面完成视图,s t r u t s 提供丰富的j s p 标签 1 2 第2 章j 2 e e 体系结构及应用程序框架 库:h t m l ,b e a n ,l o g i c ,t e m p l a t e 等,这有利于分开表现逻辑和程序 逻辑。 模型:模型以一个或多个j a v ab e a n 的形式存在。这些b e a n 分为三类: a c t i o nf o r m ,a c t i o n ,j a v a b e a no re j b 。 在s t r u t s 的工作流程中,用户的请求一般以木d o 作为请求服务名,所有的 母d o 请求均被指向a c t i o n s e v l e t ,a c t i o n s e v l e t 根据s t r u t s c o n f i g x m l 中的 配置信息,将用户请求封装成一个指定名称的f o r m b e a n ,并将此f o r m b e a n 传至 指定名称的a c t i o n b e a n ,由a c t i o n b e a n 完成相应的业务操作,如文件操作,数 据库操作等。每一个术d o 均有对应的f o r m b e a n 名称和a c t i o n b e a n 名称,这些 在s t r u t s c o n f i g x m l 中配置。 2 2 3s p rin g 应用程序框架 2 2 3 1 什么是s p r i n g 框架 s p r i n g 框架是由o p e ns o u r c e 开发的一个优秀的多层j 2 e e 系统框架,目的 是用于建立“快装式企业应用”,它为企业级应用提供了一个非常轻量级的解决 方案,大大地降低了应用开发的难度与复杂度,提高了开发的速度。 s p r i n g 的核心是个实现了i o c ( i n v e r s i o no fc o n t r 0 1 ) 模式的轻量级容器, 其目标是实现一个全方位的整合框架,希望提供一站式的框架整合方案。同时 s p r i n g 框架实现对a o p ( a s p e c t o r i e n t e dp r o g r a m m i n g ) 思想的支持,这大大增 加了框架的扩展能力n 。 2 2 3 2 控制反转( i o c ) 容器 s p r i n g 框架所提供的众多功能之所以能成为一个整体是建立在控制反转 ( i n v e r to fc o n t r o l ,i o c ) 原理的基础之上。 i o c 是一种设计模式即i o c 模式。在传统的模块实现中,由程序代码直接控 制程序之间的关系。而在i o c 模式中,由容器来控制程序之间的关系。这也就 是所谓“控制反转”的概念所在:控制权由应用程序代码中转到了外部容器,控 制权的转移,即所谓反转。m a r t i nf o w l e r 称这种模式叫做“依赖注入( d e p e n d e n c y i n j e c t i o n ,d i ) 。依赖注入有三种基本方式,分别是:接口注入( i n t e r f a c e i n j e c t i o n ) 、设值方法注入( s e t t e ri n j e c t i o n ) 和构造子注入( c o n s t r u c t o r i n j e c t i o n ) 。 i o c 模式进一步降低了类之间的耦合改变了传统的对象的创建方法,实现了 一种配置式管理方式,s p r i n g 框架中由i o c 容器负责配置性的对象的管理。这 1 3 第2 章j z e e 体系结构及应用程序框架 样极大的提高了系统开发与维护的灵活性。 2 2 3 3s p r i n g 框架架构 s p r i n g 的核心概念i o c 的具体体现为:高层模块不依赖底层模块,实现必须 依赖抽象,应用程序不应依赖于容器,而是容器服务于应用程序。它可以帮助 开发者完成组件之间的依赖关系注入,使得组建之间的依赖达到最小,进而提 高组件的重用性。s p r i n g 是个低侵入的框架,其中的组件并不会意识到它正置 身于s p r i n g 中,这使得组件可以轻易的从框架中脱离,而几乎不用任何修改, 反过来说,组件也可以简单的方式加入到框架中,使得组件甚至框架的整合变 得很容易。图2 5 是s p r i n g 的整体框架n 4 j 。 w e b s p r i n gw e bm v c f r a m e w o r ki n t e r g r a t i o n s t r u c t s w e b w o r k t a b e s t r y j s f r i c hv i e ws u p p o r t j s p s v e l o c i t y f r e e m a r k e r p d f j a s p e rr e p o r t e x e e l s o r i n 2p o r t l e tm v c 图2 5s p r i n g 整体框架 c o r e 封装包是框架的最基础部分,提供1 0 c 和依赖注入特性。这里的基础 概念是b e a n f a c t o r y ,它提供对f a c t o r y 模式的经典实现来消除对程序性单例模 式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。 构建于c o r e 封装包基础上的c o n t e x t 封装包,提供了一种框架式的对象访 问方法,有些象j n d i 注册器。c o n t e x t 封装包的特性得自于b e a n s 封装包,并 添加了对国际化( 工1 8 n ) 的支持( 例如资源绑定) ,事件传播,资源装载的方式和 c o n t e x t 的透明创建,比如说通过s e r v l e t 容器。 1 4 第2 章j 2 e e 体系结构及应用程序框架 d a o 提供了j d b c 的抽象层,它可消除冗长的j d b c 编码和解析数据库厂商特 有的错误代码。并且,j d b c 封装包还提供了一种比编程性更好的声明性事务管 理方法,不仅仅是实现了特定接口,而且对所有的p o j o s ( p l a i no l dj a v ao b j e c t s ) 都适用。 o r m 封装包提供了常用的“对象关系”映射a p i s 的集成层。其中包括j p a , j d o ,h i b e r n a t e 和i b a t i s 。利用o r m 封装包,可以混合使用所有s p r i n g 提供 的特性进行“对象关系”映射,如前边提到的简单声明性事务管理。 s p r i n g 的a o p 封装包提供了符合a o pa l l i a n c e 规范的面向方面的编程 ( a s p e c t o r i e n t e dp r o g r a m m i n g ) 实现,让你可以定义,例如方法拦截器 ( m e t h o d i n t e r c e p t o r s ) 和切点( p o i n t c u t s ) ,从逻辑上讲,从而减弱代码的功 能祸合,清晰的被分离开。而且,利用s o u r c e l e v e l 的元数据功能,还可以将 各种行为信息合并到你的代码中,这有点象n e t 的a t t r i b u t e 的概念。 s p r i n g 中的w e b 包提供了基础的针对w e b 开发的集成特性,例如多方文件 上传,利用s e r v l e tl i s t e n e r

温馨提示

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

评论

0/150

提交评论