[发明专利]一种生成金融数据交换消息唯一包ID的算法在审
申请号: | 201710017917.6 | 申请日: | 2017-01-11 |
公开(公告)号: | CN106657441A | 公开(公告)日: | 2017-05-10 |
发明(设计)人: | 蒋春风;利驿飞 | 申请(专利权)人: | 深圳证券通信有限公司 |
主分类号: | H04L29/12 | 分类号: | H04L29/12 |
代理公司: | 深圳市科吉华烽知识产权事务所(普通合伙)44248 | 代理人: | 罗志伟 |
地址: | 518040 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 生成 金融 数据 交换 消息 唯一 id 算法 | ||
技术领域
本发明涉及生成交换消息唯一包ID的算,尤其涉及一种生成金融数据交换消息唯一包ID的算法。
背景技术
在Windows操作系统下,系统本身提供了一种GUID的算法,可以通过COM接口CoCreateGuid函数取得。在Linux下,也可以通过第三方的库实现UUID的功能。但以上两种方法都有自身的缺陷,无法在金融数据交换平台中使用。
在现有Windows操作系统下,系统本身提供了一种GUID的算法,可以通过COM接口CoCreateGuid函数取得。但是该技术方法有一个重要的缺陷是,在一秒钟内只能生成一个唯一的GUID,如果在同一秒内生成多个GUID,则该GUID会重复。由于在金融数据交换系统中,一秒钟需要处理几十万个不同的消息包,每一个包ID都不允许重复,显然一秒钟只能生成一个包ID的算法是不能满足需求的。另外,金融数据交换平台要求在多个不同平台下运行,比如Windows、Linux、AIX、HP-UX等,某一个操作系统提供的算法无法移植到其它操作系统,因此需要发明一种新的算法,能在常用各种操作系统(Windows、Linux、AIX、HP-UX)上通用的算法,同时保证在整个系统内,一秒内百万个以内消息包ID的唯一性。
发明内容
为了解决现有技术中的问题,本发明提供了一种生成金融数据交换消息唯一包ID的算法。
本发明提供了一种生成金融数据交换消息唯一包ID的算法,通过以下部分生成金融数据交换消息唯一包ID:
生成包ID的计算机网卡MAC地址;
生成包ID的计算机的本地时间;
进程PID;
累加数;
增加本地指针的字段。
作为本发明的进一步改进,所述本地时间精确到秒。
作为本发明的进一步改进,将所述金融数据交换消息唯一包ID转换为Base64格式进行编码。
本发明的有益效果是:通过上述方案,能在常用各种操作系统(Windows、Linux、AIX、HP-UX)上通用的算法,同时保证在整个系统内,一秒内百万个以内消息包ID的唯一性。
具体实施方式
下面通过具体实施方式对本发明进一步说明。
为了保证整个系统内,消息包ID的唯一性,首先需要考虑系统的特点。金融数据交换平台的特点是:
(1)分布式系统,消息包ID的生成位于各个不同的客户端机器或服务端计算机上,因此,需要在保证在任意一台计算机上生成的包ID不同。
(2)多进程,每一个客户端程序或服务端程序都是多进程的,也就是说,需要避免在同一个时刻,生成多个包ID重复的问题。
(3)常见操作系统上可移植。
因此,为了生成唯一包ID,需要在空间和时间上都唯一,亦即保证在不同的计算机上,同一时刻,生成的包ID唯一。从这个思路出发,发明的一种生成金融数据交换消息唯一包ID的算法,由以下几个部分组成:
(1)生成包ID的计算机网卡MAC地址。通过该字段,保证了在不同的计算机上生成的包ID肯定是不同的。即在空间上唯一。
(2)生成包ID的计算机的本地时间。该本地时间需要精确到秒。
(3)进程PID。在同一个时刻,同一台计算机内进程PID是唯一的。
(4)累加数:累加数的目的是保证在同一秒内,同一台计算机内同一个进程PID生成几十万个包ID的值是不同的。
(5)由于在金融数据交换平台中,以上算法也将封装到一个动态库中供客户调用。由于客户调用本接口的方式可能是不确定的,也可能千奇百怪,甚至是用法错误的。为了避免本算法被多个不同接口调用多次的情况,兼容客户可能产生的错误,因此,在算法中增加本地指针的字段,通过这个字段,即使使用者使用不正确的方式调用,都可以得到正确的结果。
通过以上算法中的五个字段的组合,可以得到一个唯一的包ID。在具体实践过程中,为了避免以上字段过长,可以将以上数据转换为Base64格式进行编码,以缩短包ID长度,提高在数据传输中的效率。
本发明提供的一种生成金融数据交换消息唯一包ID的算法,为满足证券、银行等金融行业机构件对金融数据交换的需求,加速金融数据交换平台的推广应用;促进金融行业的业务协议的标准化;促进金融行业的各项业务发展与创新。本发明提供的一种生成金融数据交换消息唯一包ID的算法,已经应用在金融数据交换平台产品中,也可以应用到其它消息交换中间件系统中。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳证券通信有限公司,未经深圳证券通信有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710017917.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:智能移动讲台系统
- 下一篇:便捷式多媒体移动教学装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置