(计算机应用技术专业论文)实时内存数据库的设计与实现.pdf_第1页
(计算机应用技术专业论文)实时内存数据库的设计与实现.pdf_第2页
(计算机应用技术专业论文)实时内存数据库的设计与实现.pdf_第3页
(计算机应用技术专业论文)实时内存数据库的设计与实现.pdf_第4页
(计算机应用技术专业论文)实时内存数据库的设计与实现.pdf_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

武汉科技大学硕士学位论文第1 页 摘要 实时内存数据库系统是其事务和数据都具有定时特性或定时限制的数据库系统,系统 的正确性不仅依赖于逻辑结果,而且还依赖于逻辑结果产生的不同时间。随着人们对工业 生产的智能化提出了越来越高的要求,实时内存数据库系统已成为工业控制领域研究的热 点。随着数据库技术的快速发展,实时内存数据库系统在工业控制领域得到了越来越广泛 的应用。近年来,它已发展成现代数据库研究的重要方向之一,在数据库研究领域受到极 大关注。 本文主要围绕实时内存数据库系统的开发进行研究。在介绍了实时数据库系统的概念 后,简要说明了本课题的研究目的和意义;随后,详细分析了实时数据库系统的总体需求 和系统结构,针对实时数据库系统的特点,借鉴了传统实时数据库系统的功能和结构,提 出了实时内存数据库系统的设计方案,并给出了具体实现:对于实时内存数据库系统采用 实时内存数据库技术进行存储,数据库的组织形式以及索引采用哈希表与t 树结合的方法, 使数据的查找和定位变得简单明了,对于数据的转存,采用数据缓冲方式,并独立开辟了 一个优先级最低的线程处理缓冲区的转存,使历史数据的存储设计更加合理,提高了实时 数据的处理性能。 最后,针对本文所做的工作进行了总结,讨论了所存在的问题以及待完善的实时内存 数据库系统模块的若干功能。 本文较完整地讨论了实时内存数据库系统的设计思想、该模块整体框架以及实现的方 法。为该课题的深入研究与开发打下了坚实的基础,并具有一定的借鉴作用。 关键词:实时内存数据库系统;实时数据;多线程;动态链接库 第1 i 页武汉科技大学硕士学位论文 a b s t r a c t t h er e a l t i m em a i nm e m o r yd a t a b a s es y s t e mi sad a t a b a s es y s t e mw i t ht i m el i m i t i n gd a t a a n dt r a n s a c t i o n s i t sb a s i cf e a t u r e sa r et h a tt h ed a t aa r en o to n l yw i t hl o g i cc o n s i s t e n c y , b u ta l s o w i t he x t e r n a la n di n t e r a c t i v ec o n s i s t e n c y , a n dt h et r a n s a c t i o n sa r ew i ll i m i n gt o o w i t ht h eh o p e o fo u ri n d u s t r ys h o u l db em o r ei n t e l l i g e n t ,t h er e a l t i m em a i nm e m o r yd a t a b a s es y s t e mh a sb e e n t h eh o t - t o p i ci nt h ef i e l do fi n d u s t r yc o n t r o lr e s e a r c h a n dw i t ht h er a p i de v o l v e m e n to ft h e t e c h n o l o g i e so fd a t a b a s e ,t h er e a l t i m em a i nm e m o r yd a t a b a s es y s t e mh a sb e e nw i d e l yu s e di n t h ef i e l do fi n d u s t r i a lc o n t r 0 1 i nr e c e n ty e a r s ,i th a sb e c o m eo n eo ft h em o s ti m p o r t a n tr e s e a r c h d i r e c t i o n so ft h ep r e s e n t d a yd a t a b a s e ,a n dm o r ea n dm o r ee x p e r ti nd a t a b a s ed o m a i nh a sp a i d a t t e n t i o nt oi t t h i st h e s i si sm a i n l ya b o u tt h er e s e a r c ho fr e a l - t i m em a i nm e m o r yd a t a b a s es y s t e m a f t e r s o m ek e yc o n c e p t sa b o u tt h er e a l t i m ed a t a b a s es y s t e m ,t h es t u d yg o a la n ds i g n i f i c a n c eo ft h i s p a p e rw e r ep r e s e n t e d s u b s e q u e n t l y a n a l y s e st h ew h o l ed e m a n da n ds y s t e ms t r u c t u r eo ft h e r e a l t i m ed a t a b a s es y s t e m d r a w i n gl e s s o n sf r o mt h et r a d i t i o n a lc o n f i g u r a t i o ns o f t w a r e ,t h e d e s i g ns c h e m ea n dd e t a i l e dr e a l i z a t i o no ft h er e a l t i m ed a t a b a s es y s t e mw a sp r e s e n t e di n t h i s p a p e ra c c o r d i n gt ot h ef e a t u r e so ft h er e a l t i m ed a t a b a s es y s t e m t h eo r g a n i z a t i o nf o r mo ft h e d a t a b a s ea n dt h ei n d e xa r eb a s e do nt h eh a s ht a b l ea n dtt r e et h a ti sas i m p l ea n dah ig he f f i c i e n t s t r u c t u r e t h i sl ( i n do fs t r u c t u r em a k e st h es e a r c ho fp o s i t i o no fd a t am o r eb r i e f f e r a st ot h e d e a l i n go ft h eh i s t o r i c a ld a t a , t h ei s s u ep r o v i d e saw a yo fd a t ab u f f e r ,w h i c hc o n s t r u c tat h r e a d w i t hl o w e r sp r it od e a lw i t ht h eh i s t o r i c a ld a t a ,t oi n c r e a s et h er e a s o n a b i l i t yo fs t o r a g et i m e b y t h i sw a y , w ec o u l di n c r e a s et h ep e r f o r m a n c eo fr e a l t i m em a i nm e m o r yd a t a b a s e a n da tt h ee n d o ft h i st h e s i s ,as u m m a r yi sg i v e n ,a n ds e v e r a li s s u e sn e e dt ob ef u r t h e ri m p r o v e do rc o n t i n u o u s l y r e s e a r c h e da r ed i s c u s s e d t h i st h e s i sp r o v i d e su sw i t l laf u l ld e s c r i p t i o no nt h ed e s i g nt h o u g h t t h ew h o l ef r a m ea n d d e t a i l e dr e a l i z a t i o no ft h er e a l t i m em a i nm e m o r yd a t a b a s es y s t e mw h i c hs e tu pag o o db a s i cf o r t h i sp r o j e c t sl u c u b r a t eo ft h es a m ef i e l d ,a n di tc a nb ev e r yg o o dr e f e r e n c e d k e yw o r d s :t h er e a l t i m em a i nm e m o r yd a t a b a s es y s t e m ;r e a l - t i m ed a t a ;m u l t i t h r e a d ;d l l 武汉科技大学硕士学位论文第1 页 第一章绪论 现代工业的特点要求全过程的实时监控,高速的实时数据处理、长期的历史数据存储 以及生产信息的集成与共享。要满足上述对生产数据的处理要求仅靠大量采用集散控制系 统( d c s ) 和关系数据库技术并不能完全解决问题。为此,实时数据库作为一个关键的支撑 技术被引入工业控制系统。在生产设备运行过程中,实时数据库系统实时采集设备的运行 数据,随时掌握装置的运行情况,并通过对生产过程的组态数据的实时监控分析,对出现 的问题及时进行处理,使生产的运行状态保持平稳。 1 1 问题的提出 与传统的数据库系统相比,实时数据库理论还远不成熟,存在一些亟待解决的问题。 由于在传统数据库的基础上加上了时序一致性的要求,因此使实时数据库的设计变得更为 复杂化,其发展还远远落后于关系数据库系统。目前实时数据库系统研究的基本方向 是在传统数据库理论上增加时间的要求,但是这样做使实时数据库的设计变得更加复杂, 复杂的算法使系统资源的开销加大,又影响到系统的实时性,因此需要对实时数据库技术 进行简化。目前有关实时数据库的研究工作主要集中在以下几个方面【2 j : 1 时间限制对实时数据库的要求。根据实时数据库对时间的限制,将实时事务分为 硬实时事务、软实时事务和固实时事务,实时数据库如何对这三种任务进行调度,以满足 任务的时间限制,目前还没有很成熟的算法。 2 实时数据库系统的预测能力。由于硬实时事务的截止时间必须确保,否则会带来 灾难性的后果,因此,实时数据库系统应该能够事先预测硬实时任务能否在截止时间之前 完成。通过对事务进行预分析,预测其执行时间和对数据与资源的需求是一个非常重要而 又十分困难的问题。 3 结果正确性与实时性的折衷。对于实时数据库系统,实时性是最重要的,在系统 各种活动和事务均有时间限制的情况下,如果实时性和正确性发生冲突,那么通常会保留 一个及时的部分结果,而不愿要过时的完整结果。但是,什么是可接受的部分结果,如何 设计算法以得到可接受的部分结果,这是研究的重点。 目前市场上已经有许多实时数据库产品,实时数据库系统近年来也成功在工程实践中 得到了大量应用,在工业生产和企业信息化建设上发挥了巨大的作用。但实时数据库还处 于发展阶段,有关的系统理论和技术离成熟还有很大距离,许多方面还需要进行研究和完 兰 口o 1 2 研究现状 1 2 1 数据库技术的发展现状与趋势 经过3 0 多年的发展【3 1 ,数据库技术已经得到了极大的完善,尤其是在关系型数据库 管理系统中。随着数据库技术不断向新的应用领域的渗透和新技术的不断涌现,数据库技 术将在以下几个方面得到更大的发展:对象一关系数据库( o i b ) 、数据仓库( d w ) 技术、 第2 页武汉科技大学硕士学位论文 实时数据库( r t d b ) 技术和w e b 数据库( w e b _ d b ) 。 近年来,随着计算机的不断普及、信息系统应用的深入和应用领域的不断扩大,对数 据库的要求也有了新的变化。在当今世界罩,存在着许多非传统的数据库应用【4 】,为了满 足这些非传统数据库应用的需要,现代数据库发展出各种形式,比如时态数据库、主动数 据库【5 】、模糊数据库、实时数据库等。 此外,计算机在现代工业过程控制中的广泛应用,对工业监控软件提出了更高的要求。 系统一方面需要维护大量共享数据和控制知识;另一方面其应用活动有很强的时间性,要 求在一定的时刻或和一定的时间区段内对外部环境采集数据,按彼此间的联系存取已获 得的数据和处理采集的数据,再及时作出响应。同时,他们所处理的数据往往是“短暂 的,即只在一定的时间范围内有效,过时则无意义,所以这种应用同时需要数据库技术和 实时数据处理技术。只有将数据库与实时系统两者的概念、技术、方法与机制“完善”地 集成( s e a m l e s s l yi n t e g r a t e d ) 在一起的实时数据库系统( r t d b s ) 才能同时支持定时性和 一致性要求。 1 2 2 国内外研究现状 国际上从2 0 世纪8 0 年代后期开始较系统的发表了有关实时数据库的论文。上世 纪9 0 年代中期,爱尔兰的r h o d e 大学以及美国麻省理工学院开始重点研究实时s q l 语 言,开创了实时数据库研究的新领域。 从上世纪9 0 年代初,随着工业界对d c s 的大量引进和应用,国内科技教育界率先 开始研究实时数据库理论。其中比较知名的有华中理工大学刘云生教授,他指导研制了名 为a r t s - 1 型实时数据库系统的雏形。 实时数据库理论是在关系数据库的基础上,研究实时事务、实时并发控制和实时任务 的调度。实时数据库系统近年来取得的最大成功在于工程实践中的大量应用。从实时控制 系统、集散控制系统( d c s ) 中的小型实时数据库到计算机集成制造系统( c i m s ) 中应用 的大型实时数据库系统,实时数据库技术得到了广泛的应用,并在工业生产和企业信息化 建设上发挥了巨大的作用。 目前世界上较为常用的实时数据库产品有美国o s i 公司于上世纪8 0 年代中期推出 的p l a n ti n f o r m a t i o ns y s t e m ( p i ) ;美国a s p e nt e c h 公司的i n f o p l u s 2 1 产品;美国 h o n e y w e l l 公司的u n i f o f i n a n c e 产品;英国w o n d e r w a r e 公司的i n d u s t r i a ls q ls e r v e r 产 品【6 】o 国内比较具有代表性的是中国国家电力公司自动化研究院于1 9 9 2 年开发的n s i s 石油化工生产实时数据库产品;中国大庆金桥信息技术工程有限公司于1 9 9 3 年开发的 c o n r t d b 实时数据库产品;中国北京三维天地计算机技术开发有限公司开发的s u p c r i n f o 实时数据库产品;中科院软件所开发的a g i l o r 2 0 等。 武汉科技大学硕士学位论文 第3 页 1 3 课题来源及本文所做的工作 1 3 1 课题来源及意义 从目前市场上流行的各种嵌入式系统软件来看,很多系统软件从严格意义上讲,没有 显式的、独立的实时数据库,只在图形开发环境中增加了简单的数据管理功能,更确切地 说是数据字典的功能,因缺少实时数据库的一些基本特征很难保证实时性,还不能称之为 实时数据库。有一些较先进的软件均具备独立的实时数据库组件,以提高系统的实时性, 增强处理能力,但是由于商业上的原因,实时数据库作为嵌入式系统软件的核心技术,是 保密的,没有公开。 而计算机在企业管理和其它许多领域中的应用,都与数据密切相关,都以数据为基础。 数据管理是数据库是主要任务之一。实时数据库系统与现场控制设备直接相连接,在生产 装置运行过程中,实时数据库系统实时采集装置的运行数据,运用这些实时数据可随时掌 握装置的运行状况,并通过对生产过程的关键数据的监控和分析,对出现的问题及时进行 处理,使生产的运行状态保持平稳。当生产状态发生变化时,可以及时的作出反应;同时 可利用实时数据动态的监控生产成本,可以使成本控制发生在生产过程中,而不是生产过 程完成后,以达到降低成本的目的等。同时,通过高效的压缩技术和海量的存储技术,保 存大量的生产过程历史数据,帮助生产人员分析生产过程的变化规律,对生产过程进行优 化;还可以帮助生产人员分析生产故障,以确定故障产生的原因和预防的方法,防止故障 的重复发生。 此外,在实际生产中,常常出现不能互相访问其内置实时数据库的信息,从而使大量 信息冗余重复存在于各系统中,也就是出现数据孤岛。为了解决这个问题,必须对实时数 据库的数据管理进行合理规划以建立开放的实时数据库系统,使之能够提供高速、及时的 实时数据服务。 因此,对实时内存数据库进行研究很有必要。 1 3 2 本文所做的工作 本文主要的工作是围绕实时内存数据库系统的开发进行研究。针对具体要求,对于实 时内存数据库系统采用实时内存数据库技术进行存储,数据库的组织形式以及索引采用哈 希表与t 树结合的方法,使数据的查找和定位变得简单明了,对于数据的转存,采用数 据缓冲方式,并独立开辟了一个优先级最低的线程处理缓冲区的转存,使历史数据的存储 设计更加合理,提高了实时数据的处理性能。 本文首先介绍了实时数据库系统的概念,简要说明了本课题的研究目的和意义;随后, 详细分析了实时数据库系统的总体需求和系统结构:较完整地讨论了实时内存数据库系统 的设计思想和设计目标与要求。然后,针对实时数据库系统的特点提出了实时内存数据库 系统的设计方案,并给出了具体实现。最后,对实时内存数据库设计过程中所涉及到的相 关关键技术进行了讨论。 本文主要工作如下: 第4 页武汉科技大学硕士学位论文 1 研究了实时数据库技术的主要特点和应用领域,总结了实时数据库技术的发展现 状,分析了基于嵌入式系统的实时内存数据库的当前进展。 2 研究了实时内存数据库设计中的几个关键问题,分析了实时数据库系统设计的主 要流程。 3 讨论了实时数据库系统设计中运用到的部分相关技术,研究了实时数据库系统的 体系结构,在借鉴传统软件设计思想的基础上,应用面向对象的设计和开发方法分析了模 块功能,设计了实时内存数据库系统的结构,并进行了功能规划。 4 具体分析了实时内存数据库的实时数据模型、内存结构、数据的存储和实时内存 数据库数据的索引的特性并据此给出了相应的设计方案。 1 3 3 本论文的组织和结构 论文分为六章。各章内容简要如下: 第一章绪论:主要介绍本论文的课题背景、研究现状和课题来源与本文所做的工作。 第二章实时数据库系统的体系结构总体设计:主要讲述了实时数据库系统的特点、实时 数据库系统的的总体设计思想等实时数据库系统设计方面的相关知识。 第三章实时内存数据库系统的设计:首先介绍并设计了实时内存数据库系统中实时数据 的数据模型,然后对实时内存数据库的内存结构、数据的索引、数据的存储方式 进行了介绍。 第四章实时内存数据库系统的实现:详细介绍了实时内存数据库系统功能实现的过程。 第五章实时内存数据库系统的关键技术及其实现:详细的介绍了在设计实时内存数据库 的过程中运用到的几项关键技术的实现。 第六章总结与展望:总结了本文所做的工作,并指出了不足,对未来的研究方向和工作 进行了展望。 武汉科技大学硕士学位论文第5 页 第二章实时数据库系统的体系结构 开放结构的实时数据库系统( r t d b s ) 能够提供高速、及时的实时数据服务,它在企 业控制层与管理信息系统( m i s ) 之间建立了实时数据连接,使企业生产控制过程和业务 管理相结合。同时,它是工艺模拟、先进控制、实时在线优化、生产全过程管理等系统的 数据平台。 实时数据库系统作为嵌入式系统软件的关键技术和主要部件,由于商业的考虑,各公 司对技术细节严加保密,因此自行开发实时数据库系统势在必行。 2 1 实时数据库系统概述 实时数据库系统是应用系统的数据处理中心,当组态完成后系统进入运行状态时,工 业现场的一切都是以实时数据库系统为中介环节。同时,实时数据库系统又是事务调度中 心,数据采集、图形显示事务、报警事务、历史存盘事务等等都由实时数据库系统统一调 配,从而达到监控的实时性,正确性和一致性。 实时数据库r t d b ( r e a l t i m ed a t a b a s e ) 是监控软件的核- t l , t 7 1 ,实时数据库常常在动态 环境下使用,用来监控现实世界对象的状态和发现所关注事件的发生【8 】。实时数据库及时、 准确地获取现场数据是整个控制系统正常工作的基本前提。同时,实时数据库子系统是联 系图形子系统、历史数据库子系统、报表、报警予系统的桥梁和纽带。由于实时数据库核 心问题在于事务处理既要确保数据的一致性,又要保证事务的正确性,而它们都与定时限 制相关联,因此实时数据库构建的合理性直接影响到整个系统的性能。 根据实时控制系统的要求,实时数据库必须有高速响应性能,要求达到毫秒级。它还 必须具有充分的可靠性,保证控制系统长期地运转。在实时系统中,最重要的问题不是绝 对速度,而是最后期限。设计一个实时系统需要保证在不要求过多的硬件资源的前提下, 有足够的处理能力来满足最后期限的要求。 实时数据库系统与一般的商用数据库有以下主要区别p j : 1 存储介质。商用数据库一般存放在硬介质上,而实时数据库则为了满足实时性的 要求存放在内存中,所以又称实时数据库为内存数据库; 2 定义方式。商用数据库一般都是通用数据库,用户可以自定义自己的表、字段、 关系等,而实时数据库是为了特殊应用而自行开发的,一般不通用,不提供给用户定义自 己的表、字段、关系等功能,但提供固定的表结构和录入程序; 3 访问速度。商用数据库一般为秒级,实时数据库要达到毫秒级甚至是微秒级。 2 2 系统的总体设计指导思想 整个设计过程中,好的设计指导思想能够帮助设计者科学地把握整体的方向,减少重 复劳动,并帮助设计者在设计之初,就能够尽量减少后续设计工作中可能产生的失误。 具体来说,以下指导思想应贯穿于实时数据库系统的整个设计过程中: 1 模块化的设计思想。这是减少开发成本的比较理想的方法,它可以增加代码的可 第6 页武汉科技大学硕士学位论文 重用性,并使系统结构和脉络更加清晰。 2 并行化的设计思想。关键在于“并行,它有助于资源的有效利用,提高速度和 效率,是系统提速增加实时性的首选方法。 3 统一抽象化的设计思想。这种思想有利于简化对于事物和对象的表示,增强系统 结构和对象的通用性。 4 开放性的设计思想。即增强系统的可互操作性及其与其它系统的兼容性等。 2 2 1 系统的特点 实时数据库系统的功能特性与实时应用的语义紧密相关,系统的正确性不仅依赖于事 务的逻辑结果,而且依赖于该逻辑结果所产生的时间。实时数据库不是数据库和实时系统 的简单结合,它需要在数据模型、体系结构、事务处理模式、数据存储方式等诸多方面重 新进行研究和开发。故必须首先进行应用分析以明确其性质与要求,从而确定r t d b s 的 设计目标、功能、特性、系统模型。实时数据库系统应当具备以下特点【l o 】: 1 实时性。实时数据库系统作为外部系统的一个客观反映,表示了外部系统的当前 状态,只有当数据与外部系统的实际情况相吻合时,数据才有意义。所以要求实时数据库 系统必须高效,能够实现实时反应。 2 容错性。由于工业控制现场的情况复杂,各种干扰较为常见,可能导致采集的数 据被污染。这就要求实时数据库系统须具备一定的容错性。 3 稳定性。任何数据库系统都要求稳定性,实时数据库系统是强调实时性的系统, 因此,稳定性被提到了更高的高度。 4 鲁棒性。过程控制应用中,实时数据库系统多应用于分布式环境并与多个数据源 连接的工业现场环境,容易导致个别数据源出现数据流波峰或者通信受阻。因此实时数据 库系统必须能承受数据流量冲击以保证系统的实时性和稳定性。 2 2 2 系统的设计思想 工控软件的实时数据库设计流程如图】2 1 所示。先分析工控现场中的生产对象形成 数据流,该数据流反映了实时数据库内各种组成和关联,再根据各种设备和数据通道建立 相应的实体模型,然后以类的形式来表示这些模型的数学关系,最后确定数据库的构成。 在系统初始化时,我们只要创建相应实体所对应的类与类之间的关系就形成了该实时数据 库【1 2 】。 数 一p 定物 逛兰兰乡 据 流 义理 向 实 o 设 实时数据库 体计 图 图2 1 实时数据库设计流程图 武汉科技大学硕士学位论文第7 页 1 实时数据存储策略 设计实时数据库系统,处理时空矛盾时,应该优先考虑效率的要求。实时数据库系统 的设计应以工控软件对不同数据要求的响应速度及数据的大小为依据来决定数据的存储 策略。对数量大而工控软件无特殊要求的共享数据,可以把它们存放在关系数据库中;对 于需要长期保存的非共享数据,可采用文件系统直接存取。这样通过使用关系数据库、文 件系统和实时数据库,既保证了数据的共享性、独立性、安全性、完整性,又节约了内存 【1 3 】,保证了系统的响应速度。 2 实时数据库事务调度策略 在工控软件系统进入运行环境后,同时要进行对下位机数据采集、数据处理、图形显 示刷新、历史数据存盘、紧急事件报警等。这样将产生数据读或数据写,如果用户对某一 个标记点设定了读触发器或写触发器,一旦这个标记点出现了读事件或写事件,相应的触 发器应用程序就会自动执行。 所有这些事务都要并行处理,如等待时间过长,则无法满足实时性的要求。为了保证 系统的高性能,r t d b 的设计是基于时间驱动的,几乎系统中的操作都是由确定的事件触 发一定的进程执行。 3 数据对象模型的建立 实时数据库中的各个数据对象以链表形式存放在内存中,故数据库的容量相对固定, 当新的数据产生时,自动更新数据对象的现场值属性,这种方式可提高数据库查询检索的 效率。 一个实时数据模型是一个三元组,它由描述对象及其结构、一组描述施加于这些对象 及其结构的操作和一组描述关于这些对象和操作的限制所组成,即有: r t d m := 其中,r t d o 为实时数据对象及其结构的集合;r t o p 为施加于r t d o 的操作,包括 一般数据操作和时间关系代数操作;r t c 为对于r t d o 和r t o p 的限制,包括通常的完 整性与一致性限制即实时限制【1 4 i 。 2 2 3 对实时数据库系统的性能要求 对实时数据库性能的要求主要是运行的快速和实时性。 实时数据库在实时系统中进行数据组织和数据管理,必须在限定的时间内接受外部系 统的数据输入;当外部系统需要进一步的控制输出时,必须在限定的时间内产生控制输出。 因此,对实时数据库系统有如下性能要求【巧j : 1 实时数据库系统必须及时完成活动,并产生正确结果。当时间发生时,实时数据 库系统要有与之相关联的活动来进行处理。完成这些活动要求及时、正确。活动的完成并 不简单的要快,而是要求要及时。 2 实时数据库系统必须支持传统数据库和实时系统两者的特性,如图2 2 所示。它 必须保证数据一致性,同时,实时数据库系统必须满足时间限制,重要的不是一事务在截 至时间前多长时间完成,而是事务是否能在其截止期内完成。 第8 页武汉科技大学硕士学位论文 图2 2 实时系统与数据库系统的交互 2 3 系统总体需求分析和系统结构设计 2 3 1 系统设计目标和要求 一个严格的实时数据库管理系统( r t d b m s ) 也是一个数据库管理系统( d b m s ) ,所 以,它也具有一般d b m s 的基本功能【1 6 】 1 7 1 : 1 永久数据管理包括数据库的定义、存储、维护等。 2 有效的数据存取各种数据操作、查询处理、存取方法、完整性检查。 3 事务管理事务的概念、调度与并发控制、执行管理。 4 存取控制安全性检验。 5 数据库的可靠性恢复机制。 但传统的d b m s 的没有考虑与数据及事务相联的定时限制。因此,它不适合实时应 用。而r t d b m s 的设计目标首先是对事务定时限制的满足,其基本原则是:宁要部分正 确而及时的信息,也不要绝对正确但过时的信息。系统性能指标是满足定时限制的事务的 比率,它要求必须确保硬实时事务的截止期,必要时宁肯牺牲数据的准确性与一致性。在 工控软件中,实时数据库管理系统首先是能够对实时数据库中的点信息进行配置,描述数 据库中各种数据点的特征、属性,起到数据字典的功能。 2 3 2 实时数据库体系结构分析 实时数据库管理系统的运行分为组态状态和运行状态。其中组态状态和传统数据库的 设计状态类似,用于实时数据库组态开发阶段,不考虑实时性问题;运行状态是实时数据 库系统的主要状态,它不同于传统数据库的执行模式,是一种基于优先级的事务执行模式。 一旦系统进入实时运行模式,系统就根据事先定义的事务优先级进行执行,不能动态增减。 系统如需要进行修改,必须切换到组态模式进行处理【3 】。因此,本文所指的实时内存数据 库系统主要指的是实时数据库运行系统。 武汉科技大学硕士学位论文第9 页 2 3 2 1 系统结构特点和功能分析 实时数据库运行系统的基本功能就是根据组态数据库的组念信息,构造实时内存数据 库、事件库、主动规则库、优先级库、历史数据库及其缓冲区,并根据事务优先级,创建 事务处理线程,完成事务处理,并给外部应用提供访问接口。这样的目的是为了构造一种 系统机制,在该机制的驱动下,尽可能的保障时间一致性和实时的、及时的事务处理等。 实时数据库系统体系结构如图2 3 所示【引。 图2 3 实时数据库系统体系结构 2 4 系统执行模型 1 系统的组态【3 】 ( 1 ) 通过人机界面的交互,用户可以对组态数据库的组态信息进行查询、更新、删 除、插入等数据操纵,为实时数据库的运行提供基础。 ( 2 ) 主动规则库用于描述各个设备点或变量之间的关系,比如某些输入的某种变化, 导致某个输出的变化。 ( 3 ) 界面系统的组态将图像的变化反应到设备点或内存变量的变化上,以便建立映 第1 0 页武汉科技大学硕士学位论文 射关系。 2 实时数据库系统的启动 ( 1 ) 系统数据结构初始化。 ( 2 ) 内存数据库管理完成内存数据初装,包括对数据字典内容的初装、主动觑则库 的初装、优先级的初始分配。对整个实时数据库初始扫描一遍,建立以点名或点号为关键 字的索引,对于有存盘需求的数据,为其分配历史数据缓冲区,并建立相应的历史数据库 文件。 ( 3 ) 启动事务管理、优先级库扫描、事件库扫描、主动规则库扫描等核心模块,使 系统处于动态运转中。 3 实时数据库系统的运行 ( 1 ) 事件库扫描线程,扫描事件库。若有事件触发,则优先执行相应事务。 ( 2 ) 优先级库扫描线程,扫描优先级库。根据点的时标信息,以及本身的优先级预 设、扫描周期、实时类型等因子,计算评估优先级评价函数,得出现时的优先级。 ( 3 ) 事务调度管理线程。处理事务的并发控制,调度事务的执行线程。 ( 4 ) 事务执行线程。对于满足事务执行条件,即若优先级水平在所需执行范围内, 则执行该事务。 ( 5 ) 主动规则库扫描线程。进行主动规则情形评价,若符合相应条件,则触发相应 的事务。 ( 6 ) 界面扫描线程。将界面子系统的动态变化与相联系的变量对应起来,多个线程 拥有不同的优先级,而事务执行线程足实时数据库的主要工作所在,将其优先级设为最高, 其余都可以设为较低的优先级。所有线程的执行,又受w i n d o w s 的线程调度管理器管理。 2 5 本章小结 本章详细的介绍了实时数据库系统的的体系结构,包括:实时数据库系统的概述、系 统的设计思想、系统总体需求分析和系统结构设计中应注意的问题和系统的执行模型。 武汉科技大学硕士学位论文第1 l 页 第三章实时内存数据库的设计 工业控制中的数据包括现场采集的数据、系统数据、计算数据、属性数据、控制和管 理数据。现场数据反映生产过程运行情况,既有模拟量、开关量、也有字符型量;系统数 据描述系统工作状况,工控软件利用系统数据进行判断,更改系统的运行状态,以维持系 统正常运行;计算数据则是在利用采集数据、系统数据的基础上,经处理后得到的中间数 据;控制和管理数据涉及控制组态、测量组态以及从工控软件输出到装置上的数据等。 3 1 实时数据模型 3 1 1 数据结构 数据结构是所研究的对象类型的集合。在软件设计中,数据结构的设计非常重要【1 8 1 , 好的数据结构可以使软件结构清晰,提高数据的存储效率和程序的可读性。为了对大量不 同类型的数据进行有组织的存储和读取,可以将描述同一对象不同特征的各种数据组织在 一起。 在传统的关系数据库中,对象类型具体通过表结构实现,设计数据结构力求简单实用、 便于理解、表达能力强。实时内存数据库与其它一般数据库一样,也包含一组对象及其结 构。在实时内存数据库中,用户操纵的对象是点或标签( t a g ) ,系统也以点为单位存放 各种信剧1 9 】。 点对象存在多个属性,以参数的形式出现,所以又称点的属性为点参数。一个点由若 干参数组成【2 0 1 ,既可以包含一些系统预定义的标准点参数,也可以包含若干个用户自定 义的参数。点参数相当于关系数据库中的字段( f i e l d ) ,一个点参数对应一个客观世界中 可被测量或控制的对象( 实际应用中,也可以不真正对应一个客观对象,而是一个“虚拟 对象) 。 点类型是实时内存数据库对具有相同特征的一类点的抽象模型。抽象的依据是不同类 型的点所完成的功能,在实时内存数据库中可定义一些标准点类型,利用这些标准点类型 创建的点能够满足各种常规的需要。标准点类型由标准点参数构成。对于较为特殊的应用, 可以创建自定义点类型。自定义点类型既可以包含预定义的标准点参数,也可包含用户自 定义的点参数。 在点参数组态时决定点参数的属性,在点类型组态时决定点的结构,点组态即是点一 点名字典中的点。点存放在实时内存数据库的点名字典中。实时内存数据库根据点名字典 决定数据库的结构,分配数据库的存储空间。用户在组态数据库时总是以点名称为主索引 ( 主关键字) 进行编辑。 3 1 2 数据对象以及数据对象分类 实时内存数据模型中包含三方面的内容,个是实时数据对象本身,一个是对实时数 据对象的操作,还有一个是对实时数据对象的完整性和一致性的约束。我们将数据模型归 第1 2 页武汉科技大学硕士学位论文 结为:数字对象,模拟对象,字符变量对象三类。具体结果如表3 1 ,表3 2 ,表3 3 所 示。 表3 1 实际数字量表 字段名称数据类型字段说明 节点号数字整型标识节点( 唯一) 所属设备号数字整型标识设备( 对于每个设备唯一) 节点名文本 标识节点( 唯一) 节点类型数字整型 标识节点是数字阜或模拟量还是字符量 i p 地址文本如所属设备具有i p 地址则该项用于描述节点所属设备的i p 地址 字节类型数字整型标识该点值所占用的字节类型( 字节型、字型和双字型等) 偏移地址数字整型指出该点在设备中的偏移地址 初始值数字单精度浮点型该点值的初始值 是否存盘数字整型对该点的值是否加入历史数据库 是否报警文本对该点值的某种变化是否报警 报警时值数字整型点值为多少时报警 报警信息文本报警时显示的信息 变化率限制数字单精度浮点型该点值在变化率限制周期内所能变化的最大范围 变化率限制周期数字整型制定该点值能发生变化的最快时间( 毫秒级) 扫描周期数字整型 对该点的扫描周期 初始优先级数字整型 实时数据库初始化时该点的优先级 读写模式数字整型对该点值设置为只读或读写模式 优先级加权因子数字整型 标识对该点的优先级类型是属于硬实时还是同实时,还是软实时 或是用数字表示的实时优先级水平 武汉科技大学硕士学位论文第1 3 页 表3 2 实际模拟量表 字段名称数据类型字段说明 节点号数字整型标识节点( 唯一) 所属设备号数字整型标识设备( 对于每个设备唯一) 节点名文本标识节点( 唯- - ) 节点类型 数字整型标识节点是数字量或模拟量还是字符量 i p 地址文本如所属设备具有i p 地址则该项用于描述节点所属设备的i p 地址 字节类型数字整型标识该点值所占用的字节类型( 字节型、字型和双字型等) 偏移地址 数字整型指出该点在设备中的偏移地址 初始值数字单精度浮点型该点值的初始值 - t 程值上限数字单精度浮点型经过标度变换的实际上限数据 工程值下限 数字单精度浮点型 经过标度变换的实际下限数据 裸数据上限数字整型未经过标度变换的上限数据 裸数据下限数字整型未经过标度变换的下限数据 是否存盘数字整型对该点的值是否加入历史数据库 是否报警文本对该点值的某种变化是否报警 报警上限数字单精度浮点型达到报警区域的最大上限 报警下限 数字单精度浮点型达到报警区域的最大下限 报警信息文本报警时显示的信息 变化率限制数字单精度浮点型该点值在变化率限制周期内所能变化的最大范围 变化率限制周期数字整型制定该点值能发生变化的最快时间( 毫秒级) 扫描周期数字整型对该点的扫描周期 初始优先级数字整型实时数据库初始化时该点的优先级 第1 4 页武汉科技大学硕士学位论文 读写模式数字整型 对该点值设置为只读或读写模式 优先级加权因子数字整型 标识对该点的优先级类型是属丁硬实时还是固实时,还是软实时 或是用数字表示的实时优先级水平 表3 3 实际字符量表 字段名称 数据类型字段说明 节点号数字整型 标识节点( 唯一) 节点名文本标识节点( 唯一) 初始值数字单精度浮点型该点值得初始值 是否存盘数字整犁 对该点的值是否加入历史数据库 存盘时间数字单精度浮点型 该点的值存储的时间 当前值数字单精度浮点型现场的实时变量值 3 1 3 分类对象的抽象类 着眼于组态软件和实时内存数据库的特点,在组态数据库的基础上将实时数据对象分 为三类:数字对象,模拟对象和字符变量对象设计实时内存数据库的数据结构如下所示。 所有数据对象均派生自c o b j e c t 类,c o b j e c t 类是w i n d o w s 系统下用于表示对象的最基 本类,是一个抽象类。 1 、实际数字量 c l a s sc d 百t a l :p u b l i cc o b j e c t p u b l i c :属性定义数字量 i n t i n d e x ; i i l tn o d o d ; i n td e v i c e i d ; i mn o d u l e ; c s t r i n gn o d e n 锄e ; c s t r i n gn o d e s 嘶; 记录号 节点号 所属设备号 节点数据类型0 ,1 ,2 “点名 点描述 c s t r i n gi p a d d r ; i n to f f s e t ; i n tp h i c a l t y p e ; b o o lv a l u e ; b o o ll a s t v a l u e ; b o o li s s a v e d ; b o o li n i f i a l v a l u e ; b o o l i s a l a r m ; b o o la l a r m v a l u e ; c s t r i n gp r o j e c t _ t a g ; c s t r i n ga l a r m i n f o ; f l o a tr a t e ; f l o a tr a t d n t e r v a l ; i n ti n t e r v a l ; d w o r d p r e v t i m e ; s t r u c ts y s t e m t i m er e a l t i m e ; i n tr e a l t i m e _ t y p e ; i n tp r i ; i n to p _ m o d e ; f l o a tw i ; i n t n u m ; s t r u c td g i t a l d n o d e 掌p r i o r ; s t r u c td g i t a l d n o d e 木n e x t ; d g i t a l s t o r a g e 宰d g i t a l s p ; d g i t a l d n o d e 宰d g i t h e a d d g i t a l s t o r a g e t a b l e s i z e ; d g i t a l d n o d e 木d g i t h d p r i d g i t a l s t o r a g e t a b l e s i z e ; i n td g i t l i n k n o d e n u m d g i t a l s t o r a g e t a b l e s i z e ; p u b l i c : c d g i t a l ( v o i d ) ; v o i da d d n o d e ( i n ti n d e x ) ; v o i df i n d ( i n ti n d e x ) ; p u b l i c : - c d g i t a l ( v o i d ) ; ) ; 点地址链接描述符 偏移地址 硬件类型 点值( 裸数据) 上次点值

温馨提示

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

评论

0/150

提交评论