法律状态公告日
法律状态信息
法律状态
2022-05-06
未缴年费专利权终止 IPC(主分类):G06F17/30 专利号:ZL2015102642040 申请日:20150521 授权公告日:20180807
专利权的终止
2018-08-07
授权
授权
2015-09-16
实质审查的生效 IPC(主分类):G06F17/30 申请日:20150521
实质审查的生效
2015-08-19
公开
公开
技术领域
本发明属于实时数据库安全领域,涉及实时数据库并发控制技术、隐蔽通道安全性问 题以及实时响应问题,实现实时数据库系统的安全性与实时性要求。
背景技术
传统的高优先级两段锁并发控制协议(HP-2PL)根据事务的优先级,确定是否提交申 请锁的事务。当发生冲突时,优先级牺牲方法(PS)解决冲突的方式为:当持有锁的事务 比申请锁事务优先级高时,则夭折重启申请锁事务;否则,提交申请锁的事务,并夭折重 启持有锁的事务。从安全角度看,PS策略没有考虑事务的安全级别,因此有可能在被夭折 重启事务和提交事务之间产生隐蔽通道而导致不安全性。
以下基于HP-2PL协议对安全性与实时性的冲突问题进行分析。假设TA为锁请求事务, TB为锁持有事务,P(TA)和E(TA)分别为TA的优先级和安全级别。由事务优先级分配策略 可知两待执行事务优先级不存在相等的情况。表1列出了TA锁请求事务和TB锁持有事务 的优先级和访问级别的组合可能:(设PHigh>Plow;EHigh>EEq>ELow)
表1.事务TA和TB之间的优先级和安全级别的组合情况
由表1可见,存在有6种类型的冲突:在Case1-Case4中,可根据HP-2PL协议调度事 务,可避免隐蔽通道和优先级倒置问题。问题出现在Case5和Case6,当锁请求者TA有低 优先级低访问级时,如果阻塞TA将会造成隐蔽通道;若中断TB,锁请求事务TA获得锁, 则出现优先级倒置;而当锁请求事务TA有高优先级和高访问级别时,如果TB被中断,TA 获得锁,则会产生隐蔽通道;若阻塞TA,又存在优先级倒置。
发生冲突的事务之间的安全级别相差越大,那么产生隐蔽通道对数据库系统的破坏性 就越大,维持安全性就越重要。发生冲突的事务之间的优先级相差越大,被中断重启的事 务超截止期对数据库系统产生的灾难性后果就越严重,保证实时性就越重要。
隐蔽通道:根据目前所做的研究,隐蔽通道的工作原理是数据库管理系统中具有较高 安全级的主体SH,使用约定好的编码方式,通过更改某个客体Oi的属性Oi->Aj,并使具 有较低、或不可比安全级的主体SL观察到这种变化,来传送违反系统安全策略的信息。存 储隐蔽通道的共享客体是数据库中的表名或者表中的列等非时间性资源,时间隐蔽通道的 共享客体则是系统的响应时间。与暴力入侵易于被安全管理人员发现不同,因为隐蔽通道 是在安全机制的监控之下将保密信息外泄,所以不借助其他手段,依靠系统所固有的安全 机制是不能检测出隐蔽通道的,对于安全性较高的实时应用,如军事、股票交易,牺牲安 全性产生的后果是难以想象的。
发明内容
本发明针对现有技术中存在的不足,本发明适用于实时数据库的安全并发控制方法, 根据不同实时数据库系统的实时性和安全性需求,提出了可调节安全因子,对于安全性要 求比较高的系统,可以尽量避免或减轻隐蔽通道安全性问题,对于实时性要求比较高的系 统,可以尽量保证实时性能。从而在考虑安全需求的基础上,提高数据库的实时性能,实 现实时数据库系统的安全性与实时性要求。
为了解决上述技术问题,本发明提出的一种适用于实时数据库的安全并发控制方法, 包括以下步骤:
步骤一、设含有n个事务的事务队列为T(T1,T2,……,Tn),该事务队列中,Ti为 锁申请事务,Tj为锁持有事务,且Ti,Tj∈T;
步骤二、当所述事务队列到达实时数据库应用系统时,从所述事务队列中找出最高优 先级MAXP和最低优先级MINP、最高安全级MAXE和最低安全级MINE的值;
步骤三、所述事务队列中的锁申请事务Ti申请对实时数据库中资源进行操作,判断该 锁申请事务Ti与锁持有事务Tj是否有冲突产生,即判断Conflict(Ti,Tj,D)是否为真, 若为真表示有冲突产生,执行步骤四;否则,锁申请事务Ti获得锁;Conflict(Ti,Tj, D)表示锁申请事务Ti和锁持有事务Tj在实时数据库中的数据D上发生冲突操作;
步骤四、分别比较锁申请事务Ti的安全级Ei与锁持有事务Tj的安全级Ej及锁申请 事务Ti的优先级Pi与锁持有事务Tj的优先级Pj,有下述情形之一:
1)若锁申请事务Ti的优先级Pi小于锁持有事务Tj的优先级Pj,锁申请事务Ti的安 全级Ei高于锁持有事务Tj的安全级Ej,则阻塞锁申请事务Ti;
2)若锁申请事务Ti的优先级Pi大于锁持有事务Tj的优先级Pj,锁申请事务Ti的安 全级Ei低于锁持有事务Tj的安全级Ej,则中断锁持有事务Tj,锁申请事务Ti获得锁;
3)若锁申请事务Ti的优先级Pi小于锁持有事务Tj的优先级Pj,锁申请事务Ti的安 全级Ei与锁持有事务Tj的安全级Ej相等,则阻塞锁申请事务Ti;
4)若锁申请事务Ti的优先级Pi大于锁持有事务Tj的优先级Pj,锁申请事务Ti的安 全级Ei与锁持有事务Tj的安全级Ej相等,则中断锁持有事务Tj,锁申请事务Ti获得锁;
5)若锁申请事务Ti的优先级Pi小于锁持有事务Tj的优先级Pj,锁申请事务Ti的安 全级Ei低于锁持有事务Tj的安全级Ej,则计算:
WS(Ti,Tj)=|Pi-Pj|/(MAXP-MINP)-|Ei-Ej|/(MAXE-MINE),并定义WS为系统安全因子, WS∈[-1,1];若WS(Ti,Tj)<WS,则中断锁持有事务Tj,锁申请事务Ti获得锁;否则阻塞 锁申请事务Ti;
6)若锁申请事务Ti的优先级Pi大于锁持有事务Tj的优先级Pj,锁申请事务Ti的安 全级Ei高于锁持有事务Tj的安全级Ej,则计算:
WS(Ti,Tj)=|Pi-Pj|/(MAXP-MINP)-|Ei-Ej|/(MAXE-MINE),若WS(Ti,Tj)<WS,则阻塞 锁申请事务Ti,否则中断锁持有事务Tj,锁申请事务Ti获得锁;
步骤五、定义某一事务的原子操作循环队列为CQ,将上述锁持有事务的原子操作按顺 序调入循环队列CQ;
步骤六、判断该循环队列CQ队头的操作类型;
若队头是write操作,将该write原子操作调入循环队列队尾,并将write操作中的 数据放入高速缓存;
若队头是read操作,利用高速缓存中相应write操作的数据响应该read操作,当高 速缓存中write操作的数据无法响应该read操作时,通过访问数据库进行响应,并删除该 read操作;
步骤七,判断循环队列CQ中是否还有未处理的原子操作,若是,返回步骤六,否则, 顺序执行当前锁持有事务的write原子操作,并从循环队列CQ中删除该write原子操作, 至此完成锁持有事务,释放锁。
与现有技术相比,本发明的有益效果是:
(1)本发明控制方法考虑了实时数据库的安全性问题,传统的HP-2PL没有考虑安全 因素,对于安全性要求较高的实时应用,如军事、股票交易等,牺牲安全性所产生的后果 是难以想象的。本发明同时充分考虑了不同情况下安全性的问题,并能通过调节安全因子 WS的大小,来调节系统的安全性和实时性,由表1可知,系统安全性和实时性产生冲突数 量只占事务冲突总数的2/6,另外,由于可以调节安全因子的大小,所以只有2/6冲突事务 中的一部分事务的实时性受到影响,此外,本发明控制方法中的计算和判断机制较为简单, 所以,总体来说对系统性能影响较小,但却充分考虑了整个实时数据库系统的安全性。
(2)本发明控制方法利用原子操作循环队列思想,先执行读操作,尽量用写操作中的 数据响应后面的读操作,把写操作放后面执行,减少了访问数据库的次数,将写操作中的 数据写入高速缓存的任务由Cache Manager负责,另外,从高速缓存读数据耗时远小于访 问一次数据库耗时,所以这种方式有利于事务更好的满足其截止日期,使事务尽早完成, 提高了性能和效率以及系统的实时性。
附图说明
图1是本发明中定义的事务T的原子操作循环队列示意图;
图2是本发明中冲突事务调度流程图;
图3是本发明中锁持有事务原子操作执行流程图。
具体实施方式
下面结合附图和具体实施例对本发明技术方案作进一步详细描述,所描述的具体实施 例仅仅对本发明进行解释说明,并不用以限制本发明。
本发明提出的一种适用于实时数据库的安全并发控制方法,如图2和图3所示,包括 以下步骤:
步骤一、设含有n个事务的事务队列为T(T1,T2,……,Tn),该事务队列中,Ti为 锁申请事务,Tj为锁持有事务,且Ti,Tj∈T;
步骤二、当所述事务队列到达实时数据库应用系统时,从所述事务队列中找出最高优 先级MAXP和最低优先级MINP、最高安全级MAXE和最低安全级MINE的值;
步骤三、所述事务队列中的锁申请事务Ti申请对实时数据库中资源进行操作,判断该 锁申请事务Ti与锁持有事务Tj是否有冲突产生,即判断Conflict(Ti,Tj,D)是否为真, 若为真表示有冲突产生,执行步骤四;否则,锁申请事务Ti获得锁;Conflict(Ti,Tj, D)表示锁申请事务Ti和锁持有事务Tj在实时数据库中的数据D上发生冲突操作;
步骤四、分别比较锁申请事务Ti的安全级Ei与锁持有事务Tj的安全级Ej及锁申请 事务Ti的优先级Pi与锁持有事务Tj的优先级Pj,有下述情形之一:
1)若锁申请事务Ti的优先级Pi小于锁持有事务Tj的优先级Pj,锁申请事务Ti的安 全级Ei高于锁持有事务Tj的安全级Ej,则阻塞锁申请事务Ti;
2)若锁申请事务Ti的优先级Pi大于锁持有事务Tj的优先级Pj,锁申请事务Ti的安 全级Ei低于锁持有事务Tj的安全级Ej,则中断锁持有事务Tj,锁申请事务Ti获得锁;
3)若锁申请事务Ti的优先级Pi小于锁持有事务Tj的优先级Pj,锁申请事务Ti的安 全级Ei与锁持有事务Tj的安全级Ej相等,则阻塞锁申请事务Ti;
4)若锁申请事务Ti的优先级Pi大于锁持有事务Tj的优先级Pj,锁申请事务Ti的安 全级Ei与锁持有事务Tj的安全级Ej相等,则中断锁持有事务Tj,锁申请事务Ti获得锁;
5)若锁申请事务Ti的优先级Pi小于锁持有事务Tj的优先级Pj,锁申请事务Ti的安 全级Ei低于锁持有事务Tj的安全级Ej,则计算:
WS(Ti,Tj)=|Pi-Pj|/(MAXP-MINP)-|Ei-Ej|/(MAXE-MINE),并定义WS为系统安全因子, WS∈[-1,1];若WS(Ti,Tj)<WS,则中断锁持有事务Tj,锁申请事务Ti获得锁;否则阻塞 锁申请事务Ti;
6)若锁申请事务Ti的优先级Pi大于锁持有事务Tj的优先级Pj,锁申请事务Ti的安 全级Ei高于锁持有事务Tj的安全级Ej,则计算:
WS(Ti,Tj)=|Pi-Pj|/(MAXP-MINP)-|Ei-Ej|/(MAXE-MINE),若WS(Ti,Tj)<WS,则阻塞 锁申请事务Ti,否则中断锁持有事务Tj,锁申请事务Ti获得锁;
步骤五、定义某一事务的原子操作循环队列为CQ,如图1所示,将上述锁持有事务的 原子操作按顺序调入循环队列CQ;
步骤六、判断该循环队列CQ队头的操作类型;
若队头是write操作,将该write原子操作调入循环队列队尾,并将write操作中的 数据放入高速缓存;
若队头是read操作,利用高速缓存中相应write操作的数据响应该read操作,当高 速缓存中write操作的数据无法响应该read操作时,通过访问数据库进行响应,并删除该 read操作;
步骤七,判断循环队列CQ中是否还有未处理的原子操作,若是,返回步骤六,否则, 顺序执行当前锁持有事务的write原子操作,并从循环队列CQ中删除该write原子操作, 至此完成锁持有事务,释放锁。
尽管上面结合附图对本发明进行了描述,但是本发明并不局限于上述的具体实施方式, 上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明 的启示下,在不脱离本发明宗旨的情况下,还可以做出很多变形,这些均属于本发明的保 护之内。
机译: 一种用于关闭安全装置的塞子系统,该塞子系统可适用于所有的瓶子和广口瓶,容器,并以一种通用的方式适用于任何液体接收者,一旦被清空,便可以防止与灌装有根本不同
机译: 安全系统,适用于电源和计算机等一系列应用,可对滥用做出响应并发出警报
机译: 安全系统,适用于电源和计算机等一系列应用,可对滥用做出响应并发出警报