




已阅读5页,还剩90页未读, 继续免费阅读
(计算机应用技术专业论文)基于微内核模式的高灵活性数据访问技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
abs tract abs t r act d a t a a c c e s s f u n c t i o n i s t h e f o u n d a t i o n o f s o ft w a r e a p p l i c a t i o n s . a s t e c h n o l o g y c o n t i n u e s t o d e v e l o p , m a n y k i n d s o f d a t a a c c e s s t e c h n o l o g y h a s b e e n d e v e l o p e 氏a n d b e i n g u s e d i n a w i d e r a n g e o f a p p l i c a t i o n s . w i t h t h e d a t a a c c e s s t e c h n o l o g y d e v e l o p m e n t , m a n y m o re k i n d s o f t e c h n o l o g i e s c a m e o u t , a n d m u c h m o r e c o m p l e x a r c h i t e c t u r e s t h e y h a v e . b e c a u s e o f t h e l a c k o f u n i f i e d d a t a a c c e s s t e c h n o l o g y s t a n d a r d s , a l l k i n d s o f t h e s e t e c h n o l o g i e s c a n n o t f o r m a j o i n t f o r c e t o m a k e a ll t h e t e c h n o l o g i e s t o p r o g r e s s . a t p r e s e n t , t h e re a re t h r e e m a in p r o b l e m s a r o u n d d a t a a c c e s s t e c h n o l o g y : fi r s t , t h e d i ff e r e n t i n t e r f a c e s ; s e c o n 氏t h e f u n c t i o n s a r e r e l a t iv e l y s i m p l i s t i c ; a n d t h i r 氏n o t c o m p a t i b l e w i t h e a c h o t h e r a n d h a r d t o e x p a n d . t h i s p a p e r w i l l d e s c r ib e t h e r e l e v a n t s t u d i e s o n s o l v i n g t h e s e p r o b l e m s . t h e m i c r o - k e rn e l m o d e h a s b e e n p r o v e d s u c c e s s f u l i n d e s i g n i n g o p e r a t i n g s y s t e m s . a n d t h e s e s y s t e m s d e s i g n e d w i t h t h e m i c ro - k e rn e l m o d e h a v e s h o w n t h e n a t u r a l a d v a n t a g e s i n t e r m s o f re l i a b i li ty a n d fl e x i b i l ity . i n t h i s p a p e r , w e w i l l t ry t o a p p l y t h e m i c r o - k e rn e l m o d e i n s o l v in g t h e p r o b l e m s i n d a t a a c c e s s t e c h n o l o g y d e s c r i b e d a b o v e . t o s o l v e t h e s e p ro b l e m s w i t h th e m i c r o - k e rn e l m o d e , a u n i fi e d a n d c o m m o n u s e r i n t e r f a c e m u s t b e p r o v i d e d f i r s t . a n d t h e f o u n d a t i o n o f t h i s i n t e r f a c e i s t h e k n o w l e d g e o f t h e c o m m o n p r o c e s s o f d a t a a c c e s s i n g . t h e r e a re s o m e re s e a r c h e s re l a t e d t o t h i s w o r k d i s c u s s e d in t h i s p a p e r . o n t h e b a s i s o f t h e a b o v e s t u d y re s u l t s , w e p re s e n t s a h i 酬y fl e x i b le d a t a a c c e s s t e c h n o l o g y fr a m e w o r k : h i f e r d a t a . a n d t h e d e t a i l e d i n f o r m a t i o n o n h o w t h e a b o v e t h re e p r o b l e m s i s b e i n g r e s o l v e d . f i n a ll y , w e im p l e m e n t e d a p r o t o t y p e s y s t e m o f h i f e r d a t a , a n d p u t it i n a n re a l - w o r l d p r o j e c t . w i t h t h e c o m p a r i s o n w e c o u l d s e e t h e p r o o f s o f t h e s u p e r i o r it y o f hi f e r da t a. k e y w o r d s - d a t a a c c e s s , m i c r o - k e r n e l , e n t i ty ma p p i n g , or i e n t e d 南开大学学位论文版权使用授权书 本人完全了 解南开大学关于收集、 保存、 使用学位论文的规定,同 意如下各项内容: 按照学校要求提交学位论文的印刷本和电子版本; 学校有权保存学位论文的印刷本和电 子 版,并采用影印、 缩印、扫描、数字化或其它手段保存论文:学校有权提供目 录检索以及 提供本学位论文全文或者部分的阅览服务; 学校有 权按有关规定向国家有关部门 或者机构 送交论文的复印 件和电 子版; 在不以 烹利为目 的的 前提下, 学校可以 适当 复制论文的部分 或全部内容用于学术活动。 学位论文作者签名: d i v )年丁 月r 日 经指导教师同意, 本学位论文属于保密, 在年解密后适用 本授权书。 指导教师签名:学位论文作者签名: 解密时间:年月日 各密级的最长保密年限及书写格式规定如下: 内部 5 年 ( 最长5 年,可少于5 年) 秘密1 0 年 ( 最长1 0 年,可少于 1 0 年) 机密2 0 年 ( 最长2 0 年,可少于2 0 年) 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进 行研究工作所取得的成果。除文中己 经注明引用的内 容外,本学位 论文的研究成果不包含任何他人创作的、已公开发表或者没有公开 发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个 人和集体,均己 在文中以明确方式标明。本学位论文原创性声明的 法律责任由本人承担。 学位论文作者签名 a ,- ? : a 冲 年 3月1 9日 第一章 绪 论 第一章绪 论 1 . 1 引言 应用程序若想正常工作一定要进行数据访问。这些被访问的数据通常都具 有不同的来源、不同的数据格式和存储方式、以及不同的访问方法。有些数据 访问 起来相对容易,比如存储在磁盘、磁带、r o m存储器、fl u s h 存储器等得 到操作系统支持的标准设备上的数据:而有些数据访问起来则比 较复杂,比如 只能通过数据库或是企业信息系统才能访问的数据,或是从传感器上即时采集 到的数据。面对如此种类繁多、访问难易程度各异的数据,各种数据访问技术 就应运而生。 随着技术的发展和数据处理能力的不断增强,应用程序对数据的需求不仅 在量上越来越大、在形式上也越来越多样:不仅要访问 数据库等结构化数据, 还要访问文本文件、电子表格、流式数据等半结构化、非结构化数据;不仅要 访问同构数据, 还要访问 异构数据: 不仅要访问本地数据, 还要访问 远程数据, 甚至是分布式数据。而访问数据的方法,也涵盖了从操作系统i o接口到 w e b s e r v i c e 数据提供者之间的诸多 领域。 而这些都对数据访问 技术的发展提出 了新的要求。 目 前的数据访问技术的发展主要着重于以下两个方向: ( 1 ) 隔离不同 数 据源的 差 异, 建立统一的 访问 接口 . 如o d b c ( o p e n d a t a b a s e c o n n e c t iv i t y ) , j d b c ( j a v a d a t a b a s e c o n n e c t i v i t y ) . j c a ( j 2 e e c o n n e c t o r a r c h i t e c t u r e )等。 ( 2 ) 简化复杂的数据访问 方式,提供更灵活的数据访问 方案。如 h i b e r n a t e , t o p l in k . a d o n e t 等。 本文将针对新形势下对数据访问技术提出的新要求进行相关研究,力求在 以上两个方向上都有所建树。 1 . 2 数据访问技术概述 第 】页 第一章 绪 论 1 .2 . 1 数据访问技术在应用程序多层结构中的位置 传统的多层应用程序通常分为:表示层、应用层和数据层,其中应用层又 可以分为业务逻辑层和数据访问 层。如图1 - 1 : 浏 蘸蘸 鬓 巍 曝 羹 巍蘸 鑫 剔犷 表现层_ _ .滋 麒 霎 夔蘸 篡 黔 耀 痣 尸 业务逻辑层 应用层、 数据层 、._ 豪 a x = n j i逻 数据访问层 决 岌 鑫 粼 族矛 少 一 广 j 不 代、 折 伽 麟 图1 - 1 应用程序多层结构及数据访问 层的 位置 通常数据访问层就是数据访问技术所在的层次, 它处在业务逻辑层和数据 层之间,它的任务是封装数据访问实现细节,并将从数据层提取出的原始数据 按照应用程序的功能职责映射到一定的域对象模型中。 从图1 - 1 中可以 看出,数据访问 层是整个应用程序的基础, 它的功能和性 能决定着整个应用程序的功能和性能。本文针对数据访问 技术所进行的所有研 究工作,都是处在数据访问 层这一位置。 1 .2 . 2 当前主要的数据访问模式 应用程序实现数据访问通常有以下四种模式: ( 1 ) 数据访问器 ( d a t a a c c e s s o r )模式 数据访问器模式的目 标是对应用程序构建一个逻辑的 数据访问 抽象,以隐 藏底层的数据访问细节。 拥有数据访问 抽象以后,应用程序可以 站在业务逻辑 的 视角处理数据访问 过程, 从而使 应用程序代码易于阅 读和维护。数据访问 器 模式清晰的定义了应用程序业务领域代码和数据访问 细节代码间的分界,不仅 使应用程序代码更容易维护和扩展,也为成功的团队合作提供了 有效方案。 适用范围: 需要向 应用程序隐藏数据访问 细节,简化应用程序代码, 使应用程序能重 点关注于实现自己的功能。 需要提供比底层数据访问驱动代码更多的功能,比如应用程序级别的数据 第 z页 第一章 绪 论 锁定,数据有效性检查等。 需要在运行时选择具体的数据访问实现方法,如从关系数据库切换到面向 对象数据库或基于x iv ii . 的数据库。 优点: 更加简洁清晰的应用程序代码一一在应用程序中使用具体的数据访问代码 会使应用程序代码难以阅读和维护,使用一个数据访问 器可以 让应用程序 更加关注于实现自己的业务逻辑。 易于修改和扩充数据访问特性如果数据访问代码分布在整个应用程序 中,当需要修改或扩充数据访问功能时 ( 例如对增加数据一致性检查功能) 就要浏览和修改整个应用程序的代码, 而使用数据访问 器以后就可以将修 改的范围限定在一个组件之中。 易于应用优化策略 数据访问代码通常是应用程序的性能瓶颈,使用数 据访问器可以很容易地使优化策略应用于整个应用程序之中。 易于交换数据访问实现细节可以很方便地切换数据访问的具体实现代 码 ( 例如从m s s q l s e r v e r 换到。 r a c l 。 数据库) ,实现业务逻辑代码的 平 台无关性。 缺点: 应用程序对数据访问 无法实现完全控制应用程序能够执行的数据访问 操作被限制在了数据访问器所允许的范围之内,当数据访问器无法满足应 用程序的需求时,通常会产生不自 然的应用程序代码,从而带来潜在的问 题。 ( 2 ) 主动域对象 ( a c t i v e d o m a i n o b j e c t ) 模式 主动域对象模式不仅封装数据访问实现细节,而且将数据存储模式封装于 域对象之中,从而避免了应用逻辑和具体数据存储模式之间的祸合。具体数据 存储模式与域对象模型之间的映射由主动域对象的具体实现负责管理。 主动域 对象使用域对象模型描述底层数据存储模式,定义逻辑上的数据访问 操作并按 照域对象模型将其合理分组。当使用域对象执行数据访问操作时,应用程序可 以不依赖于底层数据存储模式并享受到更大的灵活性。 适用范围: 需要向 应用程序逻辑隐藏数据存储模式和数据访问 实现细节,简化应用程 序代码,使应用程序能重点关注于实现自己的功能. 需要在单个域对象中封装逻辑上相关联的一组数据访问操作及其相应的数 第 3页 第一章 绪 论 据存储模式,以 便在数 据存储模式发生变化时限制 所影响的代码范围。 需要对应用程序逻辑隐藏由 于某种原因 ( 比 如遗留数据) 造成的数据模型 的不一致。 优点: 更加简洁清晰的应用程序代码一一 只使用域对象操作数据的应用程序代码 要比包括数据存储模式或数据访问细节的代码更易于开发和维护,使用主 动域对象可以让应用程序更加关注于实现自己的业务逻辑. 实现应用逻辑和数据存储模式相分离当应用程序代码不再依赖于某一 特定的数据存储模式时,将更能适应未来数据存储模式可能发生的变化。 将逻辑相关的数据访问 操作组织到单独的域对象中 将数据访问操作按 照逻辑分组可以 更容易的定位和处理实现中潜在的错误。 缺点: 数据访问分布在多个域对象中 多个域对象共有的 操作( 比如数据缓存) 需要在每个域对象中 编写相同的代码,从而增加了维护的难度。 应用程序对数据访问无法实现完全控制应用程序能够执行的数据访问 操作被限制在了域对象模型所允许的范围之内,当数据访问器无法满足应 用程序的需求时,通常会产生不自 然的应用程序代码,从而带来潜在的问 题。 ( 3 ) 对象/ 关系映射 ( o b j e c t / r e l a t i o n a l y a p ) 模式 在单个组件中封装域对象和关系型数据之间的映射。 对象/ 关系映射不仅 解除了应用程序代码对底层数据存储模式和数据访问 细节的 依赖而且也把域对 象从上述依赖中解脱出 来。由一个专门的组件负责管理域对象模型与关系型数 据之间的映射, 使数据存储模式的改变不涉及域对象模型或应用程序逻辑。 通 常一个对象/ 关系映射对应用程序和域对象模型隐藏其映射细节。 适用范围: 需要向应用程序逻辑和域对象隐藏数据存储模式和数据访问细节,简化应 用程序代码,使应用程序能重点关注于实现自己的功能。 需要在单独的组件中封装域对象映射,以便在数据模型发生变化时可以不 修改应用程序代码或者域对象模型定义。 需要从域对象映 射到多 种数据模型而不修改 应用 程序代码或域对象定义的 通用性, 这样可以 将多 个数据存储模型 集成应用程序到而不管其如何定义。 优点: 第 a页 第一章 绪 论 更加简洁清晰的 应用程序代码应用程序代码要比 包括数据存储模式或 数据访问细节的代码更易于开发和维护,使应用程序更加关注于实现自己 的业务逻辑,同时更容易适应数据存储模式的改变. 可以随时方便替换数据存储模型。 缺点: 应用程序对数据访问 无法实现完全控制 应用程序能够执行的数据访问 操作被限制在了 对象/ 关系映射所允许的范围之内,由于具体实现对象/ 关系映射的程序封装着数据访问的细节,所以 很难针对具体应用程序优化 数据访问代码,除非使用的是自己实现的对象/ 关系映射组件。 ( 4 ) 数据访a层 ( d a t a a c c e s s l a y e r ) 模式 将数据访问操作按照抽象层次的高低封装于多层结构之中,低层次抽象封 装于较低的层次,高层次抽象封装在较高的层次,可以由以上三种模式的组合 而成。 适用范围: 需要分离数据存储模式、数据访问细节、域对象模型及映射,或者其它准 备从相应代码中分离出来的特性。 需要定义多个递增的软件抽象层次以简化开发和维护工作。 需要建立原型或者使用存根或简化的层实现逐步构造系统,并在以后的开 发过程中填入更加灵活或者优化的实现 ( 先让它工作起来、然后让它工作 得更好)。 优点: 在设计时方便实现程序功能分解。 模块化数据访问。 封装数据访问细节。 方便插接新的层次以 增加新的功能。 缺点: 层间的交互和初始化变得更加复杂。 1 .2 .3 目 前主流的数据访问技术 目 前主流的数据访问技术分为mi c r o s o ft和j 2 e e两大阵营,它们各自 发展 出了独特的数据访问技术,代表了当今的技术潮流。 第 5页 第一章 绪 论 ( 1 ) m i c r o s o ft阵 营。 主要有o d b c . d a o ( d a t a a c c e s s o b j e c t ) 、 r d o ( r e m o t e d a ta o b j e c t ) 、 u d a ( u n i v e r s a l d a ta a c c e s s ) 等 数 据 访问 技 术: o d b c 是m i c ro s o ft 公司提供给客户端应用程序访问 关系数据库的 一个标 准接口,由一套a p i 函数集组成。 应用程序调用o d b c a p i 函数就可以访问 任 何提供了o d b c驱动程序的数据库。 d a o是第一个面向 对象的数据库访问接口,是mi c r o s o ft公司为了克服 o d b c复杂性而发明的一种数据访问技术,它通过m i c r o s o ft j e t 数据库引擎直 接从m i c ro s o ft j e t 数据库和i s a m ( i n d e x e d s e q u e n t i a l a c c e s s m e th o d 索引顺序 存取方法) 数据源中 获取数据。 它也可先通过j e t 数据库引擎, j e t 数据库引 擎 再通过o d b c从其它带有o d b c驱动程序的数据库中获取数据。 r d o提供一组对象, 通过访问它们来协助客户用民务器程序开发。 与d a o 基于l e t 数据库引擎不同, r d o是基于o d b c的 用对象模型组织的数据访问 接 口。通过使数据对象化的访问技术, r d o以使用对象的方式完成连接数据库、 提交查询、创建结果数据组或临时表等操作。 u d a就是 “ 通用数据访问技术”,是m i c r o s o ft 公司为实现统一访问关系 型和非关系型数据源而提出的数据访问技术。它实际上是一组技术标准,通过 定义一套标准, 为不同 平台上的不同数据源提供了一种高性能的统一的数据访 问接口,从而为 数据访问者屏蔽了数据源的多样性。它基于面向 对象的组件技 术, 并以 开放的 数据访问的 工业标准为基础, 兼容了以 往的o d b c 接口以 及其 他一些数据访问 接口,并扩充了这些接口的功能,可灵活应用于分布式应用环 境中。 o l e d b ( o l e d a t a b a s e )是mi c r o s o ft公司通用数据访问技术标准之一。 o l e d b创建了 一组基于c o m的接口 规范, 是一种新的底层接口。 o l e d b提 供了一种 “ 通用”的高性能数据访问方式,它可以 访问各种数据源而不考虑它 们的格式和存储方法。它可以 访问的数据源包括关系型或非关系型的数据库、 e m a i l 、 文件系统、 文本、图像、自 定义对象等等各种数据源。 除此以外, o l e d b 还强调了 数据访问 和管理上的 共同 性。 a d o ( a c t i v e x d a t a o b j e c t ) 是 基于o l e d b的 全 新的高 层数 据访问 技术, a d o通过封装在底层o l e d b功能中不同对象、 方法和属性以提供高层接口。 a d o提供了基于o l e d b的通用数据访间接口, 使用a d o的应用程序都需要 间接访问o l e d b组件。 此外, a d o基于a c t i v e x标准, 因此它的可扩展性强, 适应了在i n t e r n e t 上的应用。 a d o ne t是以x ml进行构建的基于m i c ro s o ft .n e t的最新的数据访问技 第 6页 第一章 绪 论 术, 它为创建分布式数据共享应用程序提供了一组丰富的组件. 使用a d o ne t 可以实现对关系数据库、 ) c m l 和应用程序数据的访问, 它属于应用程序级的接 口。 a d o ne t对数据的处理可以与平台和语言都无关。 a d o ne t不是对a d o 的简单升级和继承,而是一种全新的对象模型。它采用离线的数据存取模式, 使多人同时存取数据更具有扩展性,比a d o更适合于分布式及i n t e rn e t 等应 用环境。 ( 2 ) j 2 e e 阵营。 主要有j d b c . e n t it y e j b ( e n t e r p r i s e j a v a b e a n ) 、 j d o ( j a v a d a ta 侧e c t ) 、 o r m( 。 均 e c t/ r e la ti o n a l m a p ) 等 数 据 访问 技术: j d b c是结 合j a v a 语言, 针对i n t e rn e t / i n tr a n e t 环境,实现统一访问异种关 系型数据库的数据库访问接口。j d b c定义了一个跨数据库、跨平台的通用关 系型数据库a p l . 实 体e j b ( e n t ity e j b ) 提 供了 一 种类 似 主 动 域 对 象的 数 据 访问 机 制, 实 现 了对数据存储模式和数据访问 细节的 封装。 实现一个实体e j b 必须遵守j 2 e e 的规范, 并且只能在e j b容器中运行。 其对象/ 关系映射能力比较有限。 大部 分的j 2 e e 应用程序都通过实体e i b 访问数据库。 在分布式的j 2 e e 应用程序中, 这种方式具有一定的优势。 j a v a 数据对象 u d o ) 是s u n公司制定的描述对象持久化语义的标准。 它 支持把对象持久化到任意一种存储系统中。它的两个主要目的是提供数据处理 和访问机制的a p i 以 及允许规范的实现作为应用服务器的一部分。 j d o开发人 员使用 无 格式 普通 对 象p o j o ( j a v a p l a i n o r d i n a ry j a v a o b j e c t ) 来装入 和 存储 持久数据。 对象/ 关系映射( o r m) 指的是由 一个单独的组件负责所有实体域对象的 持久化,封装数据访问细节.它采用映射元数据来描述对象/ 关系的具体映射 细节, 使得o r m实现能在任何一个j a v a 应用的业务逻辑层和数据库层之间充 当桥梁。 当前h i b e r n a t e 作为o r m模式中 最好的开源工具, 受到众多程序员的 拥护。 1 . 3 目 前致据访问技术存在的问题 随着技术进步和应用程序数据需求的不断发展,涌现出了形形色色的数据 访问技术。在方便了数据访问操作的同时,在不同的数据访问技术产品之间也 第 7页 第一章 绪 论 出现了无法兼容、 无法交互的矛盾。 纵观当 今数据访问 技术的发展现状,以 下 问题的存在已经越来越成为影响程序员取舍和制约数据访问 技术进一步发展的 障碍: 1 . 3 . 1 访问 接口 各异 不同的数据访问 技术产品之间,即使实现原理基本相似,用户接口的定义 也 往 往 大 相径 庭. 以 同 属o r m产品 的h ib e rn a t e 和t o p li n k 为 例, 表1 - 1 给出 了 双方相同或相似功能的接口和方法命名的对比。 表1 - 1 h i b e r n a t e 和t o p l i n k 接口 和方法对比 篡 飞 孚奈 粥 擞 黔 尸李 泛 寸滚 产 纤 黔准 产 灌 , 脚 蓉 乏改 遮彩 三 数据会话 数据查询 数据事务 飞 轰 器 、 多 一 了 产吸 乞 舞宵隽 洲 梦 了雏爱 舜 书一 岌二 轰福 毛戒 hi b e r 汾 寒 二 泰 流护愧明 n a t e 粼 品 份 盘 ; 飞二 去 二1-1t o p l i n k 一 _ 褚夕 尧 曰 氨痴 、 短 缥 _ 氰寥 _ da t a b a s e s e s s i o n d a t a b a s c q u e ry蕉 添加数据对象 修改数据对象 删除数据对象 读取数据对象 一莎漏q u e ry 几 、 t r a n s a c t i o n 一 任 飞 ; , 之犷戈”书 哈 罕4 卜 s a v e o r u p d a t e s a v e o r u p d a t e d e l e t e l o a d r e gi s t e r o b j e c t r e gi s t e r o b j e c t d e l e t e 0 b j e c t r e a d o b j e c t 由表1 - 1 可见,即使是同属o r m产品、基本概念和操作语义都极其相似 的h i b e rn a t e 和t o p li n k , 其 接口 定 义 也 会 完 全 不 同 。 产 生的 结 果 就是 使 用 h i b e rn a t e 的 应用程 序完 全无法使用t o p l i n k , 反 之 亦然。 当 应用 程序需要 从一 种产品转换到另一种产品时,就需要遍历整个程序代码以修改相应的调用语 句,从而付出 相当 大的 代价。 再进一步思考的话, 如果应用程序需要转换到不仅仅是同一种数据访问技 术的其他实现产品,而是另外一种概念、 机制完全不同的数据访问 技术,那么 开发人员所要付出的劳动可以说几乎相当于重新编写整个应用程序, 这无疑造 成了人力和物力的极大浪费。 1 . 3 . 2 功能相对单一 目 前的数据访问技术通常只侧重于实现某一方面的功能或优化某一方面的 第 8页 第一章 绪 论 性能.以同属于j 2 e e阵营的数据访问技术为例, o r m技术就侧重于对本地关 系型数据 库的 访问 优化, 着重于简化客户应 用程序的数据访问 代码; 而实体imo: 则是针对分布式数据访问而设计,为本地和远程数据提供一致的访问 接口. 由于功能各有侧重,所以 应用程序在设计之初就被迫确定所使用的数据访 问 技术,并据此进行设计和编写。当因为数据需求改变而不得不更换数据访问 技术时,可能会造成无法估量的损失。 1 . 3 .3 不易扩展和相互兼容 可扩展性是当今软件产品的重要指标,目 前主流的数据访问技术产品都或 多或少的具有定制和扩展自 身功能的能力。但是由于各种数据访问技术产品在 设计和实现上各自 为政,其体系结构千差万别,使得为一种产品开发的扩展功 能很难在另一种产品上使用,这无形中又加深了早已存在于不同数据访问技术 产品之间的鸿沟. 另外各种数据访问 产品的扩展性能强弱不一、扩展点参差不齐,也加重了 应用程序开发人员的学习负担,甚至于出现了放着数据访问产品的既有扩展功 能而不用,宁可自己开发扩展框架的现象。这也是对人力和物力的浪费。 1 .3 .4 解决以上问题的关键 解决以上问题的关键就是为数据访问技术大造一个统一的标准。这个标准 应该包括两个方面:一方面是一个足够通用的用户接口,使客户应用程序可以 使用统一的接口 和操作语义描述自己的数据访问需求,彻底分离应用程序业务 逻辑代码和相应的数据访问细节;另一方面是一套足够灵活的内部协议, 包括 各种接口定义及相应的操作流程,使各种功能模块能够用统一的语言向 其他模 块提供服务,以最大限度的降低各个模块之间的祸合。 1 . 4 本文的研究内容和组织结构 如上节所述,目 前数据访问技术存在的问题已经成为制约数据访问技术进 一步发展的障碍。 本文通过详细分析在操作系统领域已经得到成功应用的微内 核设计模式的特点与优势,并应用此模式设计和实现了一种新型的高灵活性数 据访问技术框架,以解决目 前数据访问技术存在的问题,为数据访问技术的进 一步发展创造良 好的条件. 本文全文共分为六章: 第 9页 第一章 绪 论 第一章绪 论部分首先介绍数据 访问 技术的 产生背景, 及其在整个应用程序 中所起的 作用。 然后对目 前主流的数 据访问 模式和数据访问技术做出 总结。 最 后提出 在目 前数据访问 技术中存在的 三大问 题,并给出 解决问 题的 一般思路。 第二章首先介绍微内核模式的相关背景知识,包括产生背景、静态结构、 动态行为以 及 应用微内 核模式的 优势。 然后对适用于数据访问 场景的 微内 核模 式进行分析, 最后提出微内核模式在解决上述数据访问技术问题中起到的作用。 第三章是本文研究的基础。 实现高灵活性的 数据访问 技术必须 对数据访问 相关流程有一个统一而且通用的概念抽象。本章对参与数据访问 通用过程的角 色和相关流程做出 分析与总结,并给出形式化的描述。 第四 章在第二、 三两章的研究 成果基础上, 针对目 前数据访问 技术中 存在 的问 题提出 一种高灵活性数据访问 技术框架:h i f e r d a t a 。本章具体描述 h i f e r d a t a的目 标和定位、 其基 本概念和实现机理、 各接口 定义 和操作语义、 遗留代码的 使用等情况, 以及h i f e r d a t a如何解决目 前数据访问 技术中存在 的问题。 第五章介绍在j a v a 语言环境下一个h i f e r d a t a原形系统的实现细节, 以 及在应用于一个实际的项目当中后所取得的成果。 第六章结束语总结本文的主要工作, 并提出了 进一步的 研究方向. 第 1 0页 第二章 相关技术背景 第二章 相关技术背景 2 . 1 2 . 1 . 1 徽内核模式概述 微内核模式及其产生背景 软件体系结构是一个软件系统中的核心元素,是最稳定的部分,也是构建 其它部分所依赖的基础。软件体系结构模式描述了特定设计语境中出 现的设计 问题的重现,并被证明在解决类似问题或相同的应用领域是一种良 好的方案。 它可作为具体软件系统的体系结构模板, 并规定了采用此模式系统的结构特性, 及对子系统的体系结构施加的影响。选择体系结构模式是开发一个软件系统的 基本决策,从根本上决定基于此种结构所构建的软件系统质量。 一些软件系统在生命周期中 常常面临变更功能和提供新服务的境况, 比如: 适应新的操作系统、增加应用、 适应第3 方的组件等,要求系统能够更改和扩 展, 具有较强的适应性。因 此,在软件体系结构设计时应该充分考虑这些改变 和演化,使系统不仅要支持新的改变和扩展, 还要使变化不影响关键的核心功 能,否则系统将难以维护,即使进行扩展成本也太高。微内核模式是常见的一 种能迅速适应变更系统需求的软件模式,它把最小功能核心同扩展功能和特定 应用分离开来,以期达到良 好的灵活性和扩展性,从而适应软件生命周期的演 化。 微内 核模式是2 0 世纪9 0 年代操作系统中比 较成功的一种设计模式。它由 内 核模式发展而来。内核模式将核心功能置于系统底层, 为高层的服务器和客 户构件提供基本服务。它把操作系统分成许多部分,每一部分处理一方面的功 能,如文件服务、终端服务、 存储服务等。因此,每一部分划分得更小, 更易 管理; 而且,所有服务器都运行在用户态, 不与硬件直接交互。当某个服务出 现问 题时,只影响提供该服务的服务器, 不 会导致整个系统瘫 痪。 为了 获得某 项服务,客户进程通过内核向服务器进程发送请求,服务器完成操作后将结果 返回给客户进程。该模式不仅使系统稳定、 可靠,而且为服务构件的组装、替 换和重用提供了方便,同时也比 较容易与分布式体系结构相结合。 微内 核模式是内 核模式的 精简版本, 规模较小,占 用内 存较少。 此外,该 模式将小粒度核心功能与扩展功能以及面向 特定用户的功能分离开来,能较好 第 n 页 第二章 相关技术背景 地适应系统需求变化,模块性更强, 移植性更好,并能方便地将新功能和扩展 服务与核心功能集成起来,做到功能模块的“ 即插即用,. 微内 核模式灵活、稳定、易扩展的 特点恰好能满足当今应用软件系统在通 用性和扩展性等方面的需求。当然,一般应用软件与操作系统软件还存在着较 大的差别, 在应用软件中使用微内 核模式有必要对其做出 必要的 改动。 2 . 1 . 2 微内核模式的静态结构 微内核模式一共定义了s 种组件:内部服务器 ( i n t e rn a l s e r v e r )、外部服 务器( e x t e rn a l s e r v e r ) 、 适 配器( a d a p t e r ) 、 客 户机( c l i e n t ) 和 微内 核( m ic r o k e r n e l )。 各部件的静态结构关系如图2 - 1 所示. 其中微内 核、内 部服务器、 外 部服务器是中心组件,客户机通过适配器和微内 核访问外部服务器,通过微内 核访问内部服务器。 v rt ._s s te er门 c a lls 卜竺些型匕acti v 二 俘 竺 里s a v ea c tiv a te s le ge n d r e c e iv e 兔印 k 却 i h s p s t c h r e q u e 劝 e x e c u t e s m iceq e x e c ut e me c h a n i mo i n it c o m m u n i c a a i o 叨 f i n d r e c e i v e 叹 ) c re a t e h a n d l e o s e n d m m s a g e o ca l l i n 让门因 5 口v e r o e x e c u t e s mi 州) r e ce i v e r e g ms t o i n i ti a l i z e s c o r t i mu n i c a t i o n s e n 申 代q u a 蛇 竺竺一 习 c a l ls s e rv ic e 叭5 m l 州) m a l e r e q u e s t o d o t a s 城) 图2 - 1 微内 核模式的 静态结构 微内核是系统的基础和根本,实现了原子级的服务和机制,并为构造更复 杂的功能提供支持。从功能上看,微内 核在内 部服务器的协作下,提供了 整个 系统的核心机制,提供了对通信和基础资源的管理和控制,封装了系统的其它 附属部件。 内部服务器扩展了 微内 核所提供的功能, 是提供附加功能的独立部件。内 部服务器屏蔽了系统中某些依赖于硬件和其它软件系统的某些特性。微内 核通 过服务请求激发内部服务获得对这些资源的访问。 增加内部服务器不仅可以 使 微内核尽可能的小,以减少对内存等资源的需求,还可以提供快速运行机制, 第 u 页 第二章 相关技术背景 以减少服务执行的时间。 外部服务器利用微内核实现具体的 应用。不同的外部服务器为不同的应用 实现提供了不同的策略.每个外部服务器运行在独立的进程上,在微内核协调 下接受来自 客户机的请求,并解释请求, 执行相应的服务, 井将其返回到客户 机。 客户机相当 于具体的应用程序,它通过访问外部服务器实 现相关功能。 适配器是客户机与外部服务器之间的接口。客户机如果和外部服务器密切 祸合, 将导致系统变更性差, 中间引入适配器后, 使客户机具有更好的移植性。 每当客户机向外部服务器提出请求时, 适配器把调用转发给相应的外部服务器。 2 . 1 .3 微内核模式的动态行为 系统所提供的 应用需要多个部件配合完成,彼此之间要进行通信。微内核 系统的动态行为就依赖于微内核为各部件进程之间的通信所提供的功能。 为完整描述微内核系统的动态逻辑, 下面给出了一个较复杂较完整的动态 行为, 在实际中, 微内核体系结构的行为往往是此行为场景的 一个片段。在此 场景,假设一个客户机调用它的外部服务器,并且外部服务器需要内部服务器 的支持 ( 如图2 - 2 所示) 。 图2 - 2 微内核模式的动态行为 份一一一一一-一 笛 重 3丽 第二章 相关技术背景 客户机向外部服务器请求一个服务,在某一时刻调用适配器向外部服务器 发出请求。适配器构造一个请求并要求微内核与外部服务器通信。微内核确定 外部服务器的物理地址并把它返回给适配器。检索到这个信息以 后, 适配器建 立一个与外部服务器的直接通信。使用过程调用, 适配器向 外部服务器发送请 求。 外部服务器收到这个请求打开该消息并把任务分配给它的一个方法。当外 部服务器需要内部服务器的支持时,外部服务器先向微内核发出一个请求。微 内 核的一个过程将被调用来处理 此请求。 执行期间,微内 核向 一 个内 部服务器 发出请求。内部服务器收到请求后执行请求的服务并将结果发给微内 核,微内 核再把它返回给外部服务器。 最后外部服务器更新结果, 继续执行它的控制流, 完成了请求的服务以 后,外部服务器把所有的结果和状态信息发回适配器,返 回到客户机,客户机然后继续进行它的控制流。 2 . 1 .4 微内 核模式的 特点 基于微内核模式的应用软件具有以下特点: ( 1 ) 灵活性和扩展性。 微内 核系统把最小核心功能同 扩展功能 和特定 应 用分离开来,使系统高内聚、低祸合,具有良 好的灵活性和扩展性。在不影响 系统其它部分的情况下,可以使用更高效的实现代替现有的某个应用。增加新 应用,可以 添加一个外部服务器, 扩展额外功能,可以 对内部服务器进行添加 和扩展,动态配置和 “ 热布署” ,使系统能 “ 按需运行” ,更加高效。 ( 2 ) 可移植性. 系统具有很高的移植性, 当需要移植到新的软硬件环境 时,只需要对硬件相关的部分稍加修改,即把微内核本身进行移植就可以完成 将整个微内核系统移植到新的平台 上,大多数情况下其它模块并不需要更改或 移植,如外部服务器和客户应用等, 它们并不直接依赖于硬件。 ( 3 ) 健壮性。 微内 核系统将许多服务移植到用户空间, 二者各自占 用独 立的内存空间,某个具体应用本身的错误或存在的问题不会影响内核的正常运 行。 并且模块各自 独立的设计也可以 把安全问 题分解, 使系统服务程序严格按 照安全要求运行。 ( 4 ) 抽象性. 微内 核实 现了 被称之为机制 ( m e c h a n i s m )的原子服务, 以 此为基础可以 构造更复杂的、 面向 应用的、被称为策略 ( s t r a t e g y )的 功能, 实现了策略与机制的分离。 从某种意义上讲微内核体系结构模式是一种特殊的 层体系结构, 这种把核心功能、 扩展功能和特定应用分离, 分处在不同的抽象 层, 分别实现机制和策略的 思想, 进一步体现了系统设计的 高内 聚、 低祸合, 笙1 4页 第二章 相关技术背景 微内核 数据适 配器 数据适 配器 数据适 配器 图2 - 4 使用微内 核模式集成多种数据访问技术 通过合理配置,应用程序可以视情况通过微内核选择某一个数据适配器 进行数据操作, 也可以同时使用多 个数据适配器以 满足特殊的 应用需求。 这个 方案在拥有大量 遗留 代码的系统中 优势尤其明 显。 在全新的 应用程序系统中 使 用这个方案也可以为应用程序保留最大的灵活性,以避免潜在的失败风险。 ( 2 ) 不易扩展和相互兼容问题 由于每种数据访问技术及其
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东东莞东坑镇第三小学(松实附小)招聘20人考前自测高频考点模拟试题及答案详解(名师系列)
- 2025年威海职业学院公开招聘高层次人才(40人)模拟试卷及答案详解(网校专用)
- 2025年上半年江西九江市事业单位“才汇九江”高层次人才招聘373人模拟试卷及完整答案详解1套
- 2025包头市喜桂图文化旅游开发有限公司招聘讲解员15人考前自测高频考点模拟试题及一套完整答案详解
- 2025湖南邵阳市隆回县公开招聘高中职业中专教师40人考前自测高频考点模拟试题(含答案详解)
- 2025年福建省泉州市安溪龙门中学招聘1人模拟试卷附答案详解(考试直接用)
- 2025湖北襄阳市市直部分事业单位选聘9名模拟试卷及答案详解一套
- 2025年河北唐山市消防救援支队政府专职消防队员招聘113人模拟试卷含答案详解
- 2025福建漳州市南靖县南坑镇民政服务站招聘社工1人模拟试卷及答案详解(各地真题)
- 2025广东韶关市乳源瑶族自治县工业和化局招聘办公室文职人员1人模拟试卷附答案详解(突破训练)
- 事业单位工勤人员技师考试职业道德复习试题及答案
- 2025年三级安全教育试题及答案
- 危化品经营许可证管理办法
- 2024和2025年中职高考对口升学(理论考试)真题卷【财经商贸大类】
- 苏教版一年级科学上册教学资源计划
- 慢性硬脑膜下血肿护理查房
- 矿山爆破施工管理制度
- AI技术赋能中小学教学模式创新与实践研究
- 家长和孩子签订协议书
- 装配钳工试题库及答案
- 智慧水务系统的构建与实施-全面剖析
评论
0/150
提交评论