发明内容
因此,本发明的主要目的在于提供一种策略引擎的选择方法,以保证在分布式对等网络中,当交易过程中的对等网络实体发生变化、交易采取的策略随时更新时,采用正确的策略版本对交易进行结算,并且能够适用于分布式对等网络中存在多种应用的情况。
为达到上述目的,本发明的技术方案具体是这样实现的:一种策略引擎的选择方法,用于分布式对等网络中,上述分布式对等网络包括至少一个对等实体客户端和至少一个中央服务单元,上述中央服务单元包括至少一个策略管理者、至少一个策略引擎,上述对等实体客户端包括至少一个提供者和至少一个获取者,上述获取者向上述中央服务单元发送交易的交易报告,其中:以上述交易的开始时间作为基准对上述交易所使用的策略引擎进行选择。
根据本发明的一个方面,中央服务单元将上述获取者发送的上述交易的交易报告合并为一个交易报告,上述合并的交易报告中带有一个标识上述交易应用类型的应用标识符和一个标识上述交易开始时间的时间戳。
根据本发明的一个方面,上述应用类型具有一个与其相应的策略集,上述策略集随时间发生变化。
根据本发明的另一个方面,上述策略管理者具有至少一个策略转换器,上述策略转换器将上述策略集转换为具有激活时间标识的策略引擎。
根据本发明的又一个方面,上述应用类型的每个策略引擎具有一个生命周期。
根据本发明的一个方面,在激活时间小于上述合并的交易报告中的时间戳的策略引擎中,选择激活时间与上述合并的交易报告中的时间戳最近的策略引擎作为上述交易所使用的策略引擎。
根据本发明的另一个方面,在激活时间小于上述合并的交易报告中的时间戳的策略引擎中,并且在激活时间与其各自的生命周期之和大于上述合并的交易报告中的时间戳的策略引擎中,选择激活时间与上述合并的交易报告中的时间戳最近的策略引擎作为上述交易所使用的策略引擎。
根据本发明的另一个方面,若没有激活时间小于上述合并的交易报告中的时间戳的策略引擎,则用策略转换器将上述应用对应的最新策略集转换为具有激活时间标识的策略引擎,上述策略引擎作为上述交易所使用的策略引擎。
根据本发明的另一个方面,若所有策略引擎的激活时间与其各自的生命周期之和小于上述合并的交易报告中的时间戳,则用策略转换器将上述应用对应的最新策略集转换为具有激活时间标识的策略引擎,上述策略引擎作为上述交易所使用的策略引擎。
根据本发明的另一个方面,若所有策略引擎的激活时间与其各自的生命周期之和小于上述合并的交易报告中的时间戳,则将上述策略引擎删除。
本发明还涉及一种策略引擎的选择系统,上述系统基于分布式对等网络,上述分布式对等网络包括至少一个对等实体客户端和至少一个中央服务单元,上述中央服务单元包括至少一个策略管理者、至少一个策略引擎,上述对等实体客户端包括至少一个提供者和至少一个获取者,上述获取者向上述中央服务单元发送交易的交易报告,其特征在于:上述中央服务单元包括一个选择单元,上述选择单元以上述交易的开始时间作为基准对上述交易所使用的策略引擎进行选择。
其中,上述策略管理者具有至少一个策略转换器,上述策略转换器将上述策略集转换为具有激活时间标识的策略引擎。上述选择单元在激活时间小于上述合并的交易报告中的时间戳的策略引擎中,选择激活时间与上述合并的交易报告中的时间戳最近的策略引擎作为上述交易所使用的策略引擎。
可见,本发明所提供的一种策略引擎的选择方法及其系统,具有以下的优点和特点:
(1)本发明所提供的策略引擎的选择方法,能够保证在分布式对等网络中,当交易过程中的对等网络实体发生变化、交易采取的策略随时更新时,采用正确的策略版本对交易进行结算。
(2)本发明适用于分布式对等网络中存在多种应用的情况,对于每种应用都能够找到正确的策略版本对交易进行结算。
具体实施方式
在本发明所处的分布式对等网络中,存在若干个对等网络实体,也可以称这些实体为对等实体客户端Client。另外,在该网络中还存在一个中央服务单元iP2P Server,中央服务单元iP2PServer从结构上可划分为一个策略管理者(Policy Manager)和一个策略引擎(Policy Engine)。策略管理者对策略集合进行管理,存储、更新或者删除数据库中的策略数据。由于在分布式对等网络中存在着多个应用,每一个应用都具有自己的策略或者策略集。对于每一个应用而言,其策略或者策略集会随着时间进行更新。
策略引擎是一个规则引擎,它能够将对等网络实体进行交易时所使用的策略用一套类似于If...Then的开关语句进行分析,把交易过程中使用的业务逻辑用机器语言进行解析。一般策略管理者使用的是比较容易理解和管理的格式,而策略引擎则采用解析效率比较高、但难于理解的格式(例如脚本语言),因而在策略管理者和策略引擎之间通常存在一个策略转换器(Policy Converter),将策略管理者使用的格式转换为策略引擎的格式。
上述若干对等实体客户端Client在基于P2P的交易中扮演不同角色,例如提供者provider和获取者consumer,获取者向中央服务单元iP2P周期性地发送交易报告。策略引擎对交易报告进行解析,根据预先制订的策略匹配出与该交易有关的结果。
在分布式对等网络中,获取者周期性地向中央服务单元发送交易报告,通常在第一个交易报告中携带交易的开始时间,在最后一个交易报告中携带交易的结束时间。通常为了检验发送结果的正确性,提供者也可以周期性地向中央服务单元发送交易报告。
中央服务单元接收到最后一个交易报告后,将上述一系列的交易报告合并为一个报告。合并的报告中记录了交易的开始时间TB和交易的结束时间TE。交易的生存周期就是从交易的开始时间TB开始到交易的结束时间TE为止。由于一个上述交易中,交易报告经过中央单元合并后只有一个,因此也可以说交易报告的生存周期为从TB开始到TE结束。
对于中央单元合并后的交易报告而言,如果所记录的交易时间TB落入一个策略引擎的生命周期之中(或者说映射到一个策略引擎上),则使用上述策略引擎对上述交易报告进行策略解析。
图1是本发明的策略引擎的选择方法实施例示意图。图1中为了清晰起见,将时间轴分为上下排列。在位于上面的时间轴上分布一系列时间点,这些时间点与策略集和策略引擎有关;在位于下面的时间轴上也分布一系列时间点,这些时间点与交易报告的生存周期有关。在两个时间轴之间以一个横向虚线为界分为两部分,虚线之上的部分表示策略集和策略引擎的存在和选择,虚线之下的部分表示交易报告的生命周期。
对于一个应用,在最初的策略产生后,在T1时刻由策略转换器将上述策略集转换为一个脚本文件,即T1为策略引擎1的开始时间。操作人员可以根据需要设定策略引擎1的生命周期,例如根据不同的应用设定不同的生命周期,此处策略引擎1的生命周期从T1开始,到Tx时刻停止。在Ta时刻策略更新,对于上述应用新的策略集为策略集2。然后,在T2时刻由策略转换器将策略集2转换为脚本文件,此时的策略引擎为策略引擎2,也可以说,在T2时刻策略集2被激活。
在下面的Tb时刻,策略集被再次更新,此时对于上述应用新的策略集为策略集3。由于没有用策略转换器将策略集3进行转换,因此策略集3没有被激活。随后,在Tc时刻,策略集第三次被更新,此时对于上述应用新的策略集为策略集4。然后,在T4时刻由策略转换器将策略集4转换为脚本文件,此时的策略引擎为策略引擎4,也就是说,在T4时刻策略集4被激活。
中央服务单元iP2P Server接收到一个交易1的获取者发送的有关交易1的一系列交易报告后,中央服务单元iP2P Server将上述一系列的交易报告合并为一个报告,合并的报告中记录了交易1的开始时间TB1和交易1的结束时间TE1。也就是说,交易1的生命周期为图1中从TB1到TE1。
策略集存储在策略管理者的数据库里。由于策略集会随时间变化,因此在不同的时间点策略集会有所不同,如图1中的Ta、Tb、Tc时刻的策略集分别为策略集2、策略集3、策略集4。策略管理者的数据库中存储了这些经过更改的策略集,也可以说,体现在策略者的数据库中的策略集是策略的瞬时值,相当于策略管理者的数据库中的数据在某一时刻的快照(SnapShot)。策略管理者的数据库可以与一个操作界面相连,操作人员通过操作界面能够对策略集中的策略进行操作。
上述每个策略集通过策略转换器以后形成一个文件(file)。不同时间的策略集通过策略转换器以后形成一系列文件,这些文件的文件名中含有应用名和装载该策略集的时间。例如,策略集1、策略集2、策略集4经过策略转换器以后形成的文件中分别含有应用名和转换时间(或称激活时间)T1、T2、T4,因此通过每个文件的名称就可以得知策略集的激活时间。策略引擎生成的文件是策略集的一个历史值。策略集和策略引擎中的策略在物理上可能会有所不同,但在逻辑上是一致的。
中央服务单元将策略集通过策略转换器以后形成的文件保存在中央服务单元iP2P Server的硬盘中。为了运行策略引擎,中央服务单元还需要将上述经过转换形成的一系列文件装载进一个控制单元中,上述装载是由一个合并后的交易报告触发的。也就是说,控制单元一旦收到一个中央服务单元iP2P Server合并后的交易报告,就进行以下步骤:
(1)控制单元文件列表与中央服务单元文件列表进行同步。控制单元收到合并后的交易报告后,将控制单元中的文件列表与中央服务单元硬盘中的文件列表进行比较,如果发现两者存在不一致(即中央服务单元硬盘中的文件多于控制单元中的文件),则将中央服务单元硬盘中的文件列表装载到控制单元中,使得控制单元中的文件列表和中央服务单元硬盘中的文件列表保持一致,即同步。
(2)将合并后的交易报告与控制单元的文件列表进行匹配。首先,将交易报告中携带的应用标识符和控制单元的文件名中的应用名进行匹配。在匹配得到的文件中,将交易报告中携带的交易开始时间TB1与控制单元的每个文件名中的激活时间逐一进行比较,在文件名中的激活时间小于交易开始时间TB1、并且没有超时(即策略引擎的生命周期结束)的文件中找到一个文件名中的激活时间距离交易开始时间TB1最近的文件。使用该文件的策略引擎为交易报告进行解析。
每个策略引擎(文件)都具有生命周期,判断策略引擎是否超时,是将交易报告中携带的交易开始时间TB1、控制单元的每个文件名中的激活时间加上策略引擎的生命周期这两者进行比较,如果交易报告中携带的交易开始时间TB1大于控制单元的每个文件名中的激活时间加上策略引擎的生命周期,则表示策略引擎超时,否则表示策略引擎没有超时。如果在交易报告比较的过程中发现有策略引擎超时(文件过期),则中央服务单元可以将控制单元中的该文件删除,或者将控制单元中的文件和与该文件对应的中央服务单元中的文件都删除。
(3)如果在步骤(2)中没有找到满足上述条件的文件,则将策略集中的一个最新的策略通过策略转换器转换以形成一个新的文件,存储在中央服务单元中。然后控制单元再将上述新生成的文件转载到控制单元中,用该文件的策略引擎为交易报告进行解析。
步骤(3)中的情况通常会在以下两种情况下发生:第一种情况,该种应用的交易报告第一次到达控制单元,控制单元中为空、尚未装载任何中央服务单元硬盘中的文件列表。第二种情况,经过步骤(2)的比较,发现控制单元中装载的所有文件都已经超时,没有任何一个能够用来解析交易报告的处于有效期内的策略引擎。
图1中的第二个交易报告显示的情况与第一个交易报告类似,如果中央服务单元iP2P Server接收到第二个交易的获取者发送的有关第二个交易的一系列交易报告,则中央服务单元iP2PServer也将有关第二个交易的一系列的交易报告合并为一个报告,合并的报告中记录了接收第二个交易的第一个交易报告的时间TB2和接收第二个交易的最后一个交易报告的时间TE2。也就是说,第二个交易的交易报告的生命周期为图1中从TB2到TE2。其他选择过程与第一个交易报告类似。
本发明的第二个实施例是一种策略引擎的选择系统,上述系统基于分布式对等网络,上述分布式对等网络包括至少一个对等实体客户端和至少一个中央服务单元,上述中央服务单元包括至少一个策略管理者、至少一个策略引擎,上述对等实体客户端包括至少一个提供者和至少一个获取者,上述获取者向上述中央服务单元发送交易的交易报告,上述中央服务单元包括一个选择单元,上述选择单元以上述交易的开始时间作为基准对上述交易所使用的策略引擎进行选择。
上述选择单元可以是实施例一中的控制单元。
由上述实施例能够看出,本发明所提供的策略引擎的选择方法,能够保证在分布式对等网络中,当交易过程中的对等网络实体发生变化、交易采取的策略随时更新时,采用正确的策略版本对交易进行结算。而且,本发明适用于分布式对等网络中存在多种应用的情况,对于每种应用都能够找到正确的策略版本对交易进行结算。