(计算机系统结构专业论文)基于windowsdna多层分布式对象系统的研究与实现.pdf_第1页
(计算机系统结构专业论文)基于windowsdna多层分布式对象系统的研究与实现.pdf_第2页
(计算机系统结构专业论文)基于windowsdna多层分布式对象系统的研究与实现.pdf_第3页
(计算机系统结构专业论文)基于windowsdna多层分布式对象系统的研究与实现.pdf_第4页
(计算机系统结构专业论文)基于windowsdna多层分布式对象系统的研究与实现.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(计算机系统结构专业论文)基于windowsdna多层分布式对象系统的研究与实现.pdf.pdf 免费下载

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

文档简介

华中科技大学硕士学位论文 摘要 随着i n t e m e t 的蓬勃发展,数据库的应用越来越突出,如何构建一个稳健、 扩充性能好的多层分布式数据库管理系统成为当今的研究热点。针对这个需求 m i c r o s o f t 公司在w i n d o w s 平台上给出了w i n d o w sd n a 框架。它采用c o m ,d c o m 以及m t s 为基础平台,开发出的多层分布式应用系统有着易于维护、安全性强、 可伸缩性好、移植性好、效率高等优点。7 7 基于w i n d o w sd n a 框架设计多层分布对象系统过程中,需要解决多层结 构的准确划分、组件的线程模型选用、怎样提高应用程序服务器的平衡负载能 力、网络拥塞时如何最大程度的提高网络传输的效率以及如何提高应用程序服 务器端程序执行效率和减小系统开销等问题。在分析比较d c o m 体系结构中的 四个线程模型基础上,认为a p a m n e n t 模型能够使整个客户端应用程序执行的反 应时间达到最短。通过建立组件重置度分析模型确定每个组件的重置度,使得 分担在每一组件上的负载小于某一阀值的前提下,系统花费达到最小。中间服 务器的执行效率关系到整个系统的效率,采用数据缓冲等方法能够提高应用程 序服务器的执行效率。i 当应用服务器数目多于一个时,需要考虑应用服务器的 负载平衡,这个问题可以通过设计平衡负载组件来解决。为了避免客户端频繁 使用网络资源传递数据,采用了客户端缓冲区法,它能够减少网络传输频率、 提高传输效率。3 安全性是分布对象系统的重要问题。通过对三层模式下各个层次的安全分 析,建立了一个基于角色的访问控制模型,利用该控制模型以及对每个层次的 安全进行设计以达到保护整个系统安全的目的。 关键词: w i n d o w sd n a :c o m ;d c o m :分布对象系统; 网络物业 华中科技大学硕士学位论文 a b s t r a c t t h ed a t a b a s ea p p l i c a t i o ni sg a i n i n gm o r ee m p h a s i sd u et o t h et h r i v i n go ft h e i n t e r n e tt h ec o n s t r u c t i o no far o b u s ta n ds c a l a b l em u l t i t i e r d i s t r i b u t e dd a t a b a s e m a n a g e m e n ts y s t e mb e c o m e s ah o ts p o t t om e e tt h i sn e e d ,m i c r o s o f ta n n o u n c e d i t s w i n d o w sd n af r a m e w o r kb a s e do nt h ew i n d o w sp l a t f o r m t h em u l t i t i e rd i s t r i b u t e d a p p l i c a t i o n sb a s e do nc o m ,d c o m a n dm t sa r eo fh i g hm a i n t a i n a b i l i t y , s e c u r i t y , s c a l a b i l i t y , p o r t a b i l i t ya n de f f i c i e n c y i nt h e d e s i g np h a s e w i t hw i n d o w s d n a ,m a n yp r o b l e m s n e e dt ob e r e s o v l e d s u c ha sh o wt od e t e r m i n em u l t i t i e r ,w h i c h t h r c a dm o d e ls h o u l db e c h o o s e d ,h o wt oi m p r o v ea p p l i c a t i o ns e r v e r s l o a db a l a n c ea n dh o w t oi m p r o v et h e e f f i c i e n c yo f n e t w o r kt r a n s f e r i t sd e t e r m i n e dt h a tt h ea p a r t m e n tt h r e a dm o d e lc a n p r o v i d et h e b e s t r e s p o n s et i m e f o rt h ec l i e n t s i d e a p p l i c a t i o n b yc o n s t r u c t i n ga r e u s a b i l i t ym o d e l ,t h er e u s a b i l i t yo fe v e r ys i n g l ec o m p o n e n tc a l lb ec o u n t e d ,w h i c h h e l p e du s t om i n i m i z et h es e l w e rb u r d e na n dl i m i tt h el o a do fe v e r yc o m p o n e n tu n d e r ac e r t a i nt h r e s h o l d k n o w i n gt h a tt h ee f f i c i e n c yo ft h ea p p l i c a t i o ns e r v e rd e t e r m i n e s t h e e f f i c i e n c y o ft h ew h o l es y s t e m ,t h e e f f i c i e n c y o ft h e a p p l i c a t i o n s e r v e ri s i m p r o v e dw i t hd a t ac a c h i n g w h e nt h e r ea r em o r et h a no n ea p p l i c a t i o ns e r v e r ,t h e l o a db e t w e e nt h e mi sb a l a n c e dw i t ht h el o a d b a l a n c ec o m p o n e n t ac l i e n t s i d eb u f f e r i su s e dt or e d u c et h e f r e q u e n c y o fn e t w o r kt r a n s f e ra n di m p r o v et h et r a n s f e r e f f i c i e n c y t h es e c u r i t yp r o b l e mi so f g r e a ti m p o r t a n c ei nad i s t r i b u t e da p p l i c a t i o n ,w h i c h m a ya r i s e i nt h e d e v e l o p m e n t ,u s a g e ,m a n a g e m e n ta n dm a i n t a i n i n gp h a s eb y a n a l y z i n gt h es e c u r i t yp r o b l e m o fe a c ht i e ro fat h r e e t i e rm o d e la n d c o n s t r u c t i n ga r o l e b a s e da c c e s sc o n t r o lm o d e l ,t h ew h o l e s y s t e mi sp r o t e c t e dv e r yw e l l k e yw o r d s : w i n d o w sd n a ;c o m ;d c o m ;d i s t r i b u t e do b j e c t s y s t e m ;i n t e m e t p r o p e r t y l i 华中科技大学硕士学位论文 1 绪论 1 1 应用模型的发展 随着计算机技术和网络技术的飞速发展,计算机软件的复杂程度在不断增 加,系统结构在软件设计和开发过程中所起的作用越来越重要。早期的软件产 品大多是单机软件系统,从整体上看,软件没有层次概念,一个应用程序通常 包括了用户界面、业务规则以及数据处理,应用的数据有可能存放在远程机器 上,但访问数据的逻辑被包含在应用程序中。 单层应用软件由于包含了所有的应用逻辑,包括后台最基本的数据处理、 前台对用户的响应以及处理结果的显示,所以应用软件往往比较庞大。即使应 用程序有多个d l l 程序模块用来处理不同的应用功能,但从软件整体结构来讲, 它仍然是个单层应用软件。 由于单层应用软件比较庞大,所以带来一些不利的因素:在设计阶段,要 求设计人员必须面面俱到,从复杂的逻辑结构中整理出程序设计文档:在开发 阶段,软件开发人员之间的协作也比较困难;在测试和维护阶段,对软件的局 部改动可能会影响到整个系统:软件发布之后,为适应新的需求,在开发新版 本软件时,往往要全面调整程序结构甚至废弃原来大量的代码,所以单层软件 的版本更新往往比较慢。 当然单层应用软件也有一些优点,因为所有的处理在一个程序中全部完成, 实现功能时没有经过中间层次,所以程序的运行效率往往比较高,对用户的响 应也比较快。 2 0 世纪8 0 年代末,针对这种体系结构的问题与不足,人们提出了客户 服务器( c l i e n t s e r v e r ) 结构【1 l ( 如图1 1 ) ,这种模型逐渐得到了广泛的应用。 在客户服务器两层结构的应用中,用户界面和业务规则在应用的客户端,数据 维护在服务器端实现,通常由另一个独立的应用程序来完成,比如s q ls e r v e r 或者o r a c l e 等数据库系统。这种应用模型比较适合于小规模的、用户较少( o ,应用服务器w s ,仍有一定的分派余地,可以再容纳用户请求: 妒,一五,= 0 ,应用服务器w s ,已达到理想的分配极限; p ,一 , o ,应用服务器w s ,已经过载,不再接纳用户请求。 如果所有应用服务器的响应时间达到平衡,那么对于任何j 都有妒,一五, = 0 ,这是分派用户请求的理想状态。 综上所述,可以将负载平衡问题描述为: 给出r l ,个应用服务器w s i ,w sf ”w s n ;,其中w s ,的分配极限是p , 给出r l ,个用户请求,将这些用户请求分派到应用服务器上。使得每个应用服务 器上用户请求的访问速率都尽可能接近它的分配极限。 3 4 3 负载平衡算法描述 我们采用类似“循环”处理的方法给出了一个负我平衡算法,该算法依赖 于以下几个观点: ( i ) 将所有应用服务器中响应时间最大值r i v i t m 缸和最小值r m t 。之间的 一种比值称作不平衡因子,记成符合a = ( r m t r m t 。) r m t,值越小 w e b 服务性能越好。 ( 2 ) 达到各自分配极限的应用服务器,在选择用户请求分派时不再加以考 患,因为任何分派都将导致应用服务器出现过载,影响服务性能; ( 3 ) 按照访问速率的降序来分派用户请求,因为访问速率快的用户请求对 华中科技大学硕士学位论文 于系统响应时间的平衡性影响更大,这样处理能尽可能减小不平衡因子。 可以通过3 个连续的阶段来描述负载平衡算法: 选择应用服务器 + 在这一阶段,所有能够分派用户请求的应用服务器被选出,而已经达到分 配极限或过载的应用服务器则被忽略,将应用服务器的访问速率按升序排列, 就可以比较方便地知道哪些应用服务器仍然可以参与用户请求的分派。 分派用户请求 访问速率高的用户请求将被优先分派。第一个阶段选出的应用服务器按序 接受用户请求的分派。当一个应用服务器达到它的分配极限后就不再接受分派, 由下一个应用服务器继续依次完成这一阶段的工作。 分派剩余的用户请求 在前两个阶段未得到合理分派的用户请求,其访问速率超过了任何一个应 用服务器的剩余访问容量,为了尽可能减小应用服务器的过载,将把它们按序 分派给剩余服务容量依次最大的应用服务器。 算法描述如下: b e g i n 十选择哪些应用服务器可以接受分派十 s o r ta p p i i c a t i o r ls e r v e r ss ot h a t s s , s n a d i f f = ( s t o t a l - - a t o t a l ) n ,; f o rk “t on 。d o i f s ad i f ft h e n 。删:x 。s ,: ad i f f = ( s t o t a l a f o 蹦) ( n ,一k ) : e l s e b r e a kt h el o o p : e n d i f e n d f o r 华中科技大学硕士学位论文 分派用户请求 f o ri = kt on 。d o 五= 0 ; f o ri = lt on d o i f ( r e q u e s tr iu n a s s i g n e d ) a n d ( a ,+ a i m a xd i f f ) t h e n m a xd i f f = ( s ad i l l ) - 兄j m a xd i f fi n d e x = i e n d i f e n d f o r a s s i g nr ,t ow e b s e r v e rw s m a x _ d f f i n d e x m a x d i f f i n d e x 2 五m a x _ c l i f f i n d e x + 丑i e _ n d i f e n d f o r e n d 3 5 网络传输频率和效率 有时候客户端因为某种业务会很频繁地修改和增加数据到服务器端,而每 3 2 华中科技大学硕士学位论文 次修改或增加地数据量又非常小,这时候如果将每次数据地变动都“实时”地 反映到服务器端,无疑会频繁使用网络资源来传输数据,这时候就会增加网络 的负担。基于这一点,我们采用了一种客户缓冲区方法,达到了减少网络传输 频率、提高传输效率的目的。 在客户端机器上开辟缓冲区,当每次变动( 增加、修改或删除) 数据时, 将这些变动暂时保存在客户端机器缓冲区上,当最后决定需要修改到服务器中 去时再全部的修改到服务器中去,这样的结果只是在最后一次占用网络资源, 所以很好的节省了网络的利用率,对整个系统的执行效率起到了很好的作用。 实际应用中,这种做法也达到了令人满意的效果。 3 6 提高应用程序服务器端程序执行效率和减小系统开销 应用程序服务器端关系到整个系统执行效率和系统开销的因素,应用程序 服务器中主要提供三种资源p9 4 0 】:数据库连接:因客户请求而生成的组件对象; 为组件对象的执行提供的内存等资源。 提高应用程序服务器端程序执行效率和减小系统开销归结于相同的手段, 如:尽量提高数据库连接的重用度;尽量提高组件对象的重用度;重用应用程 序服务器分配出去的资源等。提高数据库连接的重用度就意味着可以减少打开 数据库连接和关闭数据库连接的次数,这样就会减少应用程序服务器的处理数 据库关闭操作,从而也就提高了应用程序的执行效率。相应的,提高组件对象 的重用度和提高数据库连接的重用度有着相似的效果。在开发过程中,采用了 d a t a b a s ep o o l i n g 和o b j e c tp o o l i n g 技术,合理地重用数据库连接资源和对象资 源,效果比没有采用这两种技术前有了十分显著地提高。 p o o l i n g 是一种缓存机制一1 4 “,它使得我们不用重复地建立和删除资源。以 d a t a b a s ep o o l i n g 为例,通常在使用数据库之前要建立数据库连接,这一步骤是 比较消耗时间的,特别是对于大型数据库,一般需要将近分钟。当处理完数 据后,要退出数据库,这时数据库连接就会被删除,而当再次使用数据库时, 又要重新建立数据库连接。我们使用d a t a b a s ep o o l i n g 技术,系统就会在开始时 建立一定数量的数据库连接在一个p o o l 中,当用户要使用这一数据库时,系统 华中科技大学硕士学位论文 就会从p o o l 中拿出一个数据库连接给用户使用:当用户退出数据库时,系统会 回收连接到p o o l 中,这样就极大地提高了系统的效率。 3 7 本章小结 多层分布式结构有着两层c s 结构所无法比拟的优势,它可以将系统的各 个功能模块按照规则分发到不同的机器上,从而避免c s 结构中当负载量增大 到一定程度时对服务器机器性能高度要求而引起的瓶颈问题。另外它还具有c s 结构没有的良好延展性和代码重用性,使得整个系统的开发和维护难度降低。 当然在开发过程中,对多层分布式结构的企业规划功能划分要十分谨慎和小心, 否则较c s 结构更容易引起企业逻辑混乱,另外对网络资源的使用也需要周全 地考虑,因为多层分布式结构比c s 结构多增设了一个中间服务器层,因此网 络资源更容易引起瓶颈。所以针对这些问题,我们对多层结构的划分,组件的 重用度,d c o m 线程模型的选用,负载平衡的管理都做了详细的研究与分析, 提出了一种并且设计了一些优化方法,如本文使用的客户缓冲区法,能够达到 提高应用程序服务器端程序执行效率和减小系统开销目的。 华中科技大学硕士学位论文 4 三层分布式网络物业系统的设计与实现 2 0 0 1 年是中国的宽带年。社区宽带网被称为“最后一公里”,是实现人 们享受宽带网络服务的最后、也是最关键的一环,同时给社区内传统物业管理 带来了新的内涵和机遇,如何利用宽带网为住户提供更高、更方便、更多元化 的服务是专业化物业管理今后的主要研究课题。 4 1 系统功能综述 网络物业【4 3 l ( 又称数码物业) ,是将分布全国1 0 0 多个高档住宅小区( 局 域网) ,通过i n t e r n e t 和d d n 专线连起来的一个跨地区的全国性的大型网络系统 整套系统含有小区物业管理,小区电子商务,小区财务系统和小区与集团总部的 通信四大部分。在网络技术的支持下,将物业管理和社区服务全部进行量化。 从住户投诉、报修、意见反馈、收费、保安、保洁服务到社区电子商务都能一 目了然。图4 1 为网络物业管理示意图。 ,一翻髑嘲、 k 怄草怄:淖怄n 淖 l物业管理系统 i 固困丽面 图4i 网络物业管理示意图 为了保证系统的强健性、稳定性、可扩充性和开发过程的规范性和灵活性, 在开发整个系统的过程中,我们充分应用了w i n d o w sd n a 框架结构方案和分布 式对象的技术。 华中科技大学硕士学位论文 4 2 系统结构图设计 由上面的网络物业管理示意图可以看出,网络物业管理系统由小区物业、 小区财务、小区电子商务和小区与集团总部的通信四个部分组成。这四个部分 分别有各自相互独立的功能模块,但也有数据流和互操作。出于模块独立性考 虑这四个部分分别有各自独立的组件,另外有一个公共的组件描述和处理此 四者之间互操作和数据流的关系。图4 2 是网络物业系统的多层分布式结构图。 表示层 应 用 程 序 服 务 器 层 数据 图4 2 网络物业系统的多层分布式结构图 4 3 系统的设计 ( 1 ) 表示层设计 表示服务层是面向小区住户和小区物业管理内部员工提供不同的操作界面 向用户显示信息并收集用户数据。这一层本身不进行业务数据处理,只负责向 华中科技大学硕士学位论文 业务服务层发出请求。在整个系统中,有三种类型的用户: 小区住户 小区住户通过w e b 浏览器访问社区网站,在小区管理方面可以进行管理费 用查询、报修、投诉、建议、查看社区新闻、查看服务指南及物业管理法规等: 在电子商务方面可以购物( 超市、餐厅、书店及各种专卖店等) ,也可以要求有 偿服务( 家政、家教、预订网球场等) 。 小区物业公司内部员工 物业公司内部员工是小区的管理者,也是小区各种服务的提供者。为保证 操作的方便性和快速性,物业公司内部员工采用多层c s 结构访问数据。处理 小区住户投诉、报修、建议及电子商务的订单与配送等。 集团总部员工 为了实现统一、规范化的管理和标准化的规模扩张,集团总部需要及时了 解各小区的运行情况,并将有关数据通过互连网或d d n 专线传到总部进行分析 处理。因此,集团总部通过w e b 浏览器或直接文件传输访问各小区数据。 由于各项管理由不同的部门人员使用,对界面和功能的要求也不一,还有 应用是建立在企业内部i n t r a n e t 上,因此考虑多层c s 和w e b ( b $ ) 客户应用 结合来构建系统。 ( 2 ) 应用程序服务器层的设计 应用程序服务器层的设计主要包括j 个主要功能组件的功能划分和各自接 口的实现。 小区物业功能模块。完成住户信息管理、物业公司内部管理、人事信息 管理、专业化公司管理等系统。 小区财务管理模块。完成总帐系统、报表系统、应收应付系统、现金银 行系统、固定资产管理系统、工资系统等。 小区电子商务模块。完成网上超市、社区服务( 包括网上报修、投诉建 议、管理费用查询等) 、网上餐厅、网上书店在线看房等功能。 与集团总部通信模块。完成财务报表、突发事件统计报表、报修投诉建 议统计表等 华中科技大学硕士学位论文 协调模块。协调处理上述四功能模块之间的互操作和数据流,另外也提 供一些方便的用于事件是否可行的条件判断函数接口。 ( 3 ) 数据库服务器层 网络化物业是一个大型的分布式数据库系统,根据系统的设计要求,我们 选用了微软的企业级数据库产品s q ls e r v e r7 作为数据库平台。数据服务层定 义并维护所有的数据表,并通过c o m 组件响应5 个功能组件的数据请求。这一 层包括数据的定义、维护、访问和更新,以及管理并响应业务服务层的数据请 求。数据服务层实现所有的典型数据处理活动,包括数据的获取、修改、更新 以及数据相关服务等。 4 4 系统的实现 对于系统的实现,重点讨论业务逻辑层和数据服务层,并探讨在m t s 运行环 境下,数据对象和业务对象的实现问题。 ( 1 ) 实现m t s 组件 实现在m t s 环境中运行的组件,主要完成以下4 项任务: 编写单用户、进程内的c o m 和d c o m 组件: 明确地定义c o m 和d c o m 对象接口: 利用o b j e c t c o n t e x t ( 对象环境) 方法通知m t s ,何时该对象的状态可以被 收回: 利用事务机制管理错误。 在m t s 环境中运行的所有组件都是作为进程内组件实现的,每个组件为它的 每个c 0 m 类和d c o m 类提供一个类工厂和类型库,用于描述其中所有的c o m 类和 d c o m 类和它们的接口。除此之外,m t s 组件还被作为单用户组件编制,因为m t s 的执行程序( m t x e x d l l ) 能够提供线程管理服务,所以无需关注组件中的多线程 问题。在系统注册表中,每个进程内组件对应一个t h r e a d i n g m o d e i 注册值。在 前面已经讨论过本系统中m t s 组件选用的是a p a r t m e n t 线程模型,在a p a r t m e n t 线程模型中,每个对象在它的整个生存期内被赋予单个线程,而多个线程可以被 用来运行多个对象,这种处理既改进了伸缩性,又不会使组件的实现变得过于复 华中科技大学硕士学位论文 杂。 ( 2 ) 创建数据对象 数据访问层中的数据对象所要完成的任务是从持久存储中读数据片,或往 持久存储中写数据片。在读、写数据片过程中,数据对象负责数据的精确性、完 整性和一致性。持久存储可以有多种形式,但最常用的是关系数据库。数据对象 管理数据的单位通常是数据库的单个表,而数据访问组件通常由单个数据对象 构成。在数据访问对象的实现过程中,着重控制昂贵的数据库连接操作。在设计 时,利用a d o 模型的c o n n e c t i o n 对象建立与数据源的连接,并且使数据对象利 用一个固定身份访问数据源,而不是利用某个客户的身份( 否则,每个独立客户 部将要求一个独立的数据库连接,这就取消了三层式体系结构和m t s 的个关键 的伸缩性优点) 。这样,极大地简化管理功能,还使多个客户高效地利用数据库连 接池成为可能。 ( 3 ) 创建业务对象 三层结构应用程序的实质内容是业务对象,它封装了企业或部门的业务规 则或者针对特定应用程序的操作。业务层是表示层和数据访问层联系的纽带,它 一方面向表示层提供其功能服务,另一方面又要调用数据层提供的数据访问服 务,因此,它起着承前启后的作用。实现业务对象的要点是: 业务对象封装的是真实的业务操作,至于业务对象使用的数据是如何存 储的,这一点与业务对象是彼此独立的。 业务对象控制业务规则的排序与强制实施,也控制它们所执行操作的事 务完整性。 业务对象的方法应只完成一个单元的工作,每个工作单元也只由一个方 法来实现,更高层的操作由调用其它业务对象或数据对象的方法来完成。 由表示层调用的业务对象不应跨越方法调用保留每对象状态。表示层调 用的业务对象可在一个事务边界内保留每对象状态。 业务对象应是网络友好的,远程表示层与业务对象之间的通讯量应尽可 能小。 业务对象是“看门人”,它控制对数据的访问,应使用基于角色的安全性 华中科技大学硕士学位论文 来限制对业务对象的访问。 业务对象方法内产生的错误,应由事务模型来处理。 当依据多个组件( 数据访问组件或其它业务组件) 构造功能时,状态管理和 错误处理就成为至关重要的问题。因各个组件是独立开发的,它们对与之一起工 作的组件可能一无所知。其中一个组件发生了错误,其它组件已经执行的动作可 能要被撤消,尤其是那些修改持久状态的动作。如前所述,m t s 利用事务来管理状 态和处理错误,而最容易使用的事务是自动事务。在开发组件时说明组件如何分 享事务,m t s 则利用这一信息使对象自动参与到适宜的事务中去。 4 5 本章小结 客户服务器式体系结构,在伸缩性、资源性态上都难以满足要求。将数据 处理逻辑或业务逻辑从两层结构中提取出来,引入应用程序的中间业务层,构筑 逻辑三层式体系结构。这一结构解除了“胖客户”负担,为应用程序的伸缩提供 了空间。基于组件的逻辑三层式结构,通过其组件技术及相应的基础服务支持, 不仅使应用程序具备较高的伸缩性、可靠性和灵活性,还大大降低了大型软件系 统开发的复杂性,并为组件组装式的系统集成奠定了物质基础。本章通过简单的 介绍网络物业系统的功能、结构图设计以及系统的实现,阐述了开发大型多层 分布式对象系统的基本步骤以及应注意的几个问题。 华中科技大学硕士学位论文 5 三层分布式系统的安全分析与设计 系统开发中的关键一步是系统安全性的设计与实现。一个应用系统的安全 性控制措施包括用户的身份验证、用户操作权限控制、数据的加解密处理、数 据的备份与恢复等多项内容。 由于各种软件系统的规模干差万别,且各种功能模块的层次分布与控制结构 各不相同,所以系统的安全控制机制应该灵活方便特别是,基于c s 模式或 i n t e m e t i n t r a n e t 的多层分布式应用系统是涉及多用户参与的复杂的网络应用系 统,用户身份验证与权限管理是必须认真分析、全面设计并实现的共性问题。对 用户的集中管理不仅要求安全性,而且要求方便性、灵活性与可扩展性。 在传统的c l i e n t s e r v e r 应用程序里,所有的应用程序都直接访问数据库,在 网络环境下数据库对任何一个用户都是透明的,因而很容易遭到攻击,这也是传 统的两层结构的一个严重的缺陷,在三层结构下,通过业务逻辑层,把用户和数据 隔离,要实现对数据的访问,只能在服务器通过组件访问,因此安全性明显加强了 很多。 5 1 三层模式下信息系统的安全层次 由于三层模式的运行环境较复杂,设计系统安全的环节较多,所以在此模 式下信息系统的安全设计格外重要,从以下多个层次进行系统安全设计。 ( 1 ) 网络安全层次 当企业内部网( i n t r a n e t ) 与i n t e m e t 相连时,考虑隔离措施,避免将i n t r a n e t 上的 资源毫无防范的暴露在i n t e m e t 环境中,隔离的方式有多种,比如路由器的i p 过虑功 能网关,防火墙,代理服务器等,我们选用的是华中维用公司开发的防火墙。 防火墙( f i r e w o r k ) 是保护可信网络( 如i n t r a n e t e x t r a n e t ) 阻止不可信网络 ( 如i n t e r n e t ) 入侵的一种机制,属于访问控制的范畴。防火墙设置在受保护网络 ( i n t r a n e t e x t r a n e t ) 和公共网络( i n t e m e t ) 之间,但如入侵者设法绕过防火墙, 则防火墙形同虚设,所以防火墙不是保证网络安全的唯一途径,而要靠网络安全 4 l 华中科技大学硕士学位论文 策略的综合措施来堵截各种安全漏洞。防火墙通常由过滤器和网关组成,过滤器 起封锁某些类型通信量传输的作用,网关是借助于代理应用去转发内部网和外部 网之间服务的设备,网关驻留的中间地带称为隔离地带( d m z ) 。下面简要介绍几 种主要类型的防火墙。 分组过滤器 这是基于i p 的防火墙,实际上就是基于路由器的防火墙。按照“拒绝除特殊 许可的服务外的所有服务”的原则,防火墙对每个i p 分组的分组头进行检查,根 据源i p 地址、目的i p 地址、服务类型及使用协议等做出对i p 分组进行滤除或通 过的决定。基于路由器的防火墙的优点是不需另外投资去购置,当前市场上大多 数路由器产品除具有路由选择功能外,同时具有分组过滤器的功能。网络层防火 墙的主要缺点之一是容易受到电子欺骗的攻击。所谓电子欺骗是指来自外部网络 但使用伪造的内部源i p 地址的i p 分组,因一般路由器选择路由时只检查每个分 组的目的地址,而不检查分组的始发地,所以作为网络层防火墙必须专门检查所 有分组的源地址,对来自外部网络而又具有内部源地址的任何分组均予以丢弃。 应用层网关( 代理服务) 通过代理应用对内部网与外部网之间的服务进行转发的设备称为应用层网 关,为此要在应用层网关上安装代理服务软件,针对特定的应用各个代理模块独 立运行,相互无关安全管理员根据需要,安装相应的代理模块。应用层网关的 工作过程是:先由外部网络客户端与代理服务建立连接,代理服务经过认证后, 再与内部网络服务器建立连接,以后,两者经过代理服务转发数据。应用层网关 又称堡垒主机,这是个加固了的主机系统,运行防火墙软件。应用层网关的优点 是:内部网与外部网无直接的连接,便于进行全面的访问控制,通过配置访问控 制表,决定内部网络和外部网络的哪些用户可使用哪个代理模块连接到哪个目的 主机;能采用先进的认证机制,进行严格的身份审查;易于记录工作对象与过程, 便于必要时进行审计等主要缺点是不透明性引起的使用不方便。 复合防火墙 用分组过滤器或应用层网关作为防火墙功能还是有限的,将两者适当组合构 成各种复合防火墙能达到更大的安全性,例如屏蔽主机防火墙及屏蔽子网防火墙 华中科技大学硕士学位论文 等。图5 i 是一个典型的高安全性的防火墙系统 4 4 】。 公用电话两 图5 1 典型的高安全性的防火墙 ( 2 ) 服务器安全层次 三层模式的信息系统的资源都在各类服务器上,对这些资源的使用,根据具体 情况,通过给不同的用户赋予相应的权限来对系统资源的访问加以限制。 在用户使用服务器资源之前,首先检查其合法性一一身份验证。身份验证的 方式很多,我们采用在网络中设一登陆验证服务器的方法,凡是要使用信息系统的 用户计算机,必需要经过登陆验证服务器的检验,才能成为网络的合法用户进入系 统操作,未通过检验的用户为非法用户,拒绝其使用系统资源。 通过网页来访问业务逻辑组件的,在w e b 服务器上设计相应的权限限制,只 有合法用户才能根据自己的权限访问信息系统的网页。 数据库服务器上保存有整个信息系统的所有数据,它的安全性格外重要。理 论上网络上的计算机既可以通过w e b 页面调用业务处理程序来访问数据库,也可 以绕过业务处理程序来访问数据库,使用一些数据库客户端工具直接登陆数据库 服务器存取其中的数据,所以在数据库服务器中对允许访问的用户授予合适的权 限未经授权的用户禁止访问。 华中科技大学硕士学位论文 ( 3 ) 应用程序安全层次 在业务处理程序中,对各层次中的用户名及其口令加以屏蔽,使它们不以任何 形式出现在操作人员可以查看的地方,以免给非法侵入者以可趁之机。例如传送到 浏览器端的h t m l 文件源代码中不能出现服务器的用户名及其口令。 ( 4 ) 信息传输安全层次 如果关键信息( 例如用户口令、商业密码等) 需要通过i n t e r n e t i n r a n e t 进行远 程传输应该有防窃听的措施,防止在传输的过程中被窃取。防窃听一般采用信息加 密的方式。信息加密的技术发展比较早,也有很多现成的设备和软件工具可以使用, 这旱不具体讨论信息加密技术。 5 2 基于角色的访问控制模型 一般来说,应用系统的安全性依赖于对各级用户的有效管理,每个用户所能访 问的信息或所能进行的操作应该是受限的,他们只能获取自己权限范围内的资源。 对用户进行严格的身份验证与控制是系统中的关键。 在大型的分布式网络物业系统中,用户多,职责多样,不同职责的用户对系 统中的不同功能具有不同的权限。在这种情况下,基于角色的访问控制模型有很 大的优越性。因此,我们提出了一种适合大型分布式系统的基于角色的访问控制 模型1 4 5 a 6 4 7 】。 角色是一类用户在系统中的行为规范,一方面它表示了用户的职责划分,另 一方面也表示了一类用户可以访问的系统功能集合。基于角色的访问控制可以极 大地简化权限管理,提高管理效率与可靠性。因为系统中的角色及其权限相对稳 定,只有当业务发生变化或者机构重组时,才有必要调整角色及其权限。在这种 模型中,权限是指用户可以执行的功能。实质上,任何应用程序,都是由不同的功 能模块组成。因此,通过对一个系统中的各个功能模块进行编号,然后可以把这些 功能编号作为权限赋予相应的用户,从而把功能作为基本的访问对象,通过在功 能入口点设置适当的权限审查程序,可以达到对用户访问的控制功能。虽然系统 中限制的是与用户交互的前端界面,但是界面的保护同样可以控制后台的业务过 程与数据库,并且消除了后端访问控制中存在的反应滞后以及对话期的不匹配傈 华中科技大学硕士学位论文 护等缺陷,从而具有较高的效率。每个用户对一定的功能具有操作权限,通过把合 适的权限分配给用户来达到权限控制的目的。同时,为了使权限指派更加容易管 理,系统中可以首先定义一系列角色( r o l e ) 。每个角色对一组功能具有访问权限, 但是要求一个用户必须且仅属于一个角色。用户( u s e r ) 、角色( r o l e ) 、功能( f u n c t i o n ) 作为系统中的三类对象,其关系如图5 2 所示。 图5 2 系统中的对象模型 ( 1 ) 用户身份认证机制 用户的身份认证是系统中的关键问题。目前常用的身份认证方法有用户i d 口令、基于公钥证书的层次系统和基于秘密密钥的共同信任的第三方等机制。用 户i d 口令方法简单易行,但是安全性较低。而层次系统需要利用公钥证书和公开 密钥算法,由于证书及对应的私有密钥管理复杂,而且算法与协议的开销都较大。 另外,以k e r b e r o s 为代表的基于共同信任的第三方系统需要额外的服务器,身份认 证协议也复杂。一般来说,应用软件都是在企业网络或i n t r a n e t 内部使用,要求的简 单可靠的身份认证方式,因此我们设计了一种改进的基于用户 d 口令的身份认证 机制。 不同的用户分配不同的用户i d 和口令。在用户登录的过程中首先要求用户 输入i d 与口令,同时生成一个会话密钥,并用会话密钥加密口令后与用户i d 一起 发送给认证服务器,服务器根据用户i d 取出用户口令,解密后得到会话密钥。然 。 后认证服器根据用户i d 、系统当前时间、客户的i p 地址等信息生成一个会话i d , 使用用户口令加密后传递给客户端客户端得到会话i d 后,使用会话密钥加密后 再发送给服务器,如果这时的会话i d 是认证服务器发送给客户端的会话i d ,则 可以确定用户通过了认证,具体过程如图5 3 所示。 华中科技大学硕士学位论文 用 认 用户i d + 口令( 会话密匙) 户 证 口令( 会话i d ) 。 登 服 会话密匙( 会话i d ) 陆 务 组 接受拒绝 。 件 器 阿c 甯占自k 二i :i :斗嘏 用户通过认证后用户标识、登录时间、登录节点地址以及角色所具有的权限 等信息,一起保存在身份验证服务器的内存对象中,并且由全局唯一的会话i d 标 识。当用户得到会话i d 后,即可销毁用户口令,从而使得明文口令的处理时间尽 可能短。验证服务器每次为用户生成不同的s i d ,并且过期的s i d 在验证服务器 中也没有相应的内存对象,从而防止非法用户的欺诈行为。 ( 2 ) 权限审查机制 用户通过身份认证后,只是表明他是系统的合法用户,但在执行任何功能之 前,还要进行权限审查。本系统采用权限隐含检查的方法,即用户只需输入次 身份信息,随后的访问都在这一会话中进行,由会话i d 唯一标识,当用户访问系 统中的不同功能时,应用程序把用户的s i d 与功能编号发送到验证服务器,验证 服务器检查用户对该功能是否具有权限,从而避免用户在访问每一功能时都要提 供身份信息的烦琐。如果用户通过了功能检查,验证服务器通知应用程序允许用户 进行该项功能操作。 ( 3 ) 系统框架一基于三层c l i e n t s e r v e r 模型的系统框架 本系统采用三层结构的客户服务器模型,其系统框架如图5 4 所示。 用户身份与权限信息库与数据访问接口 用户身份与权限信息库与数据访问接口一起构成本系统的数据服务层。信息 库储存了系统的功能信息、角色的定义以及各类用户注册信息,这些数据以特定的 二进制文件格式进行存锗并且采用一定的加密措施来保证安全性,其它部件必须 通过数据访问接口来访问该数据库数据的加解密由数据访问接口来提供。数据访 问接口屏蔽了数据的具体存放形式,对验证服务器和用户管理系统提供了统一的 华中科技大学硕士学位论文 面向对象的数据接口,同时封装了对这些数据的基本操作数据访问接口集成了数 据加解密功能,杜绝了对数据库的直接访问,增强了系统的安全性。 - 户身份与权限信息苎一 j 访问数据接口 fl 身份验证服务器用户管理系统 i 用户登陆组件 图5 4 安全控制系统的框架 用户管理系统 它通过数据访问接口操作相关的数据,提供对系统功能注册、角色的定义、用 户的增删改以及相关用户信息的编辑等系统管理功能。 身份验证服务器 身份验证服务器负责用户的身份认证与权限审查。它响应用户登录组件发来 的请求,调用相应的方法,通过数据访问接口操作相关的数据,提供身份验证、权 限检查、口令修改与日志记录等功能。验证服务器对于通过身份验证的每个用户, 建立一个由会话i d 唯标识的用户对象,这个对象将一直保持到该客户端用户结 束本次访问。同时,相关信息也记录到日志。如果用户没有通过身份验证,相应的信 息也已录到日志,以便进行系统安全审计等操作。 用户登录组件 用户登录组件利用验证服务器的功能,为应用程序提供对用户的身份认证、权 限审查与口令修改功能。它包括一个可视化的登录界面,用来收集用户标识与口 令。它对外只提供最简洁的接口,把生成会话密钥以及与验证服务器的交互过程隐 藏起来,从而使得应用程序可以简单地、无缝地集成安全控制功能。用户登录组件 与应用程序具有同样的生命周期,在用户通过身份认证事,它透明地提供权限审查 功能。 华中科技大学硕士学位论文 ( 4 ) 系统的实现 基于上面提出的访问控制模型与系统框架,可以在w i n d o w s n t 网络环境下, 使用v i s u a l b a s i c 6 0 进行实现。其中用户登录组件以a c t i v e x d l l 的形式实现,作 为进程内服务器在应用系统适当的地方引用。身份验证服务器与数据访问接口都 以a c t i v e xe x e 形式实现,用户身份验证服务器是一个多线程远程自动化服务器。 各个组件之间通过d c o m 实现远程通信。 5 3 网络物业管理系统的安全设计 ( 1 ) 服务器登陆检验 m i c r o s o f t 三层b s 模式的基础是a s p 技术,在这种技术中,业务处理程序镶在 扩展名为a s p 的网页中,所以w e b 服务器也是系统的应用服务器,此服务器保存着 业务处理的全部程序。m i c r o s o f t 的w e b 服务器为i i s ,它与n t 紧密的集成在一起, 可以充分利用系统平台n t 所提供的安全机制。 在信息系统所在的网络中设一主域控制器,把此主域控制器设在w e b 服务器 上,凡是允许使用信息系统的用户必须是此域的域用户,并使他们在使用信息系 统之前首先登陆此域,非域用户禁止使用服务器的任何资源。 ( 2 ) w e b 服务器权限设定 利用i i s 提供的如下安全防护机制: w e b 服务器的虚拟目录访问权限的安全设置。 w e b 服务器的用户访问控制和监视。将用户的访问控制设置为禁止匿名访 问。i i s 提供了三种类型的请求认证:基本认证( 用户名和口令的传输、验证

温馨提示

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

评论

0/150

提交评论