CN106657441A - 一种生成金融数据交换消息唯一包id的算法 - Google Patents
一种生成金融数据交换消息唯一包id的算法 Download PDFInfo
- Publication number
- CN106657441A CN106657441A CN201710017917.6A CN201710017917A CN106657441A CN 106657441 A CN106657441 A CN 106657441A CN 201710017917 A CN201710017917 A CN 201710017917A CN 106657441 A CN106657441 A CN 106657441A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- data exchange
- exchange message
- generating
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
- H04L61/3015—Name registration, generation or assignment
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种成金融数据交换消息唯一包ID的算法,通过以下部分生成金融数据交换消息唯一包ID:生成包ID的计算机网卡MAC地址;生成包ID的计算机的本地时间;进程PID;累加数;增加本地指针的字段。本发明的有益效果是:能在常用各种操作系统(Windows、Linux、AIX、HP‑UX)上通用的算法,同时保证在整个系统内,一秒内百万个以内消息包ID的唯一性。
Description
技术领域
本发明涉及生成交换消息唯一包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的算法,已经应用在金融数据交换平台产品中,也可以应用到其它消息交换中间件系统中。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (3)
1.一种生成金融数据交换消息唯一包ID的算法,其特征在于,通过以下部分生成金融数据交换消息唯一包ID:
生成包ID的计算机网卡MAC地址;
生成包ID的计算机的本地时间;
进程PID;
累加数;
增加本地指针的字段。
2.根据权利要求1所述的生成金融数据交换消息唯一包ID的算法,其特征在于:所述本地时间精确到秒。
3.根据权利要求1所述的生成金融数据交换消息唯一包ID的算法,其特征在于:将所述金融数据交换消息唯一包ID转换为Base64格式进行编码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710017917.6A CN106657441A (zh) | 2017-01-11 | 2017-01-11 | 一种生成金融数据交换消息唯一包id的算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710017917.6A CN106657441A (zh) | 2017-01-11 | 2017-01-11 | 一种生成金融数据交换消息唯一包id的算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106657441A true CN106657441A (zh) | 2017-05-10 |
Family
ID=58843582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710017917.6A Pending CN106657441A (zh) | 2017-01-11 | 2017-01-11 | 一种生成金融数据交换消息唯一包id的算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106657441A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874308A (zh) * | 2018-08-31 | 2020-03-10 | 北京京东尚科信息技术有限公司 | 一种生成唯一值的方法和装置 |
CN115334169A (zh) * | 2022-04-28 | 2022-11-11 | 深圳证券通信有限公司 | 一种节省网络带宽的通信协议编码方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1283295A (zh) * | 1997-12-22 | 2001-02-07 | 摩托罗拉公司 | 用于单向无线金融消息单元的交易认证 |
CN1744606A (zh) * | 2005-09-30 | 2006-03-08 | 北京邮电大学 | 在终端和服务器之间移动用户个人数据的同步处理方法 |
CN104283975A (zh) * | 2014-11-06 | 2015-01-14 | 福建合诚信息科技有限公司 | 文件分发方法和装置 |
CN105187566A (zh) * | 2014-05-30 | 2015-12-23 | 北大方正集团有限公司 | 一种用户标识的获取方法及装置 |
-
2017
- 2017-01-11 CN CN201710017917.6A patent/CN106657441A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1283295A (zh) * | 1997-12-22 | 2001-02-07 | 摩托罗拉公司 | 用于单向无线金融消息单元的交易认证 |
CN1744606A (zh) * | 2005-09-30 | 2006-03-08 | 北京邮电大学 | 在终端和服务器之间移动用户个人数据的同步处理方法 |
CN105187566A (zh) * | 2014-05-30 | 2015-12-23 | 北大方正集团有限公司 | 一种用户标识的获取方法及装置 |
CN104283975A (zh) * | 2014-11-06 | 2015-01-14 | 福建合诚信息科技有限公司 | 文件分发方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874308A (zh) * | 2018-08-31 | 2020-03-10 | 北京京东尚科信息技术有限公司 | 一种生成唯一值的方法和装置 |
CN110874308B (zh) * | 2018-08-31 | 2024-02-06 | 北京京东尚科信息技术有限公司 | 一种生成唯一值的方法和装置 |
CN115334169A (zh) * | 2022-04-28 | 2022-11-11 | 深圳证券通信有限公司 | 一种节省网络带宽的通信协议编码方法 |
CN115334169B (zh) * | 2022-04-28 | 2023-06-06 | 深圳证券通信有限公司 | 一种节省网络带宽的通信协议编码方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10965772B2 (en) | Interface invocation method and apparatus for hybrid cloud | |
US20220377140A1 (en) | Multi-tenancy via code encapsulated in server requests | |
TWI726581B (zh) | 創建區塊鏈帳戶及驗證區塊鏈交易的方法及裝置 | |
CN108376106A (zh) | 一种区块链消息反馈方法及系统 | |
US20050021799A1 (en) | Method for creating and processing a soap message, and method, apparatus and program for processing information | |
CN103391289A (zh) | 一种基于完成端口模型的多链路安全通信方法 | |
CN108390881A (zh) | 一种分布式高并发实时消息推送方法及系统 | |
CN109995873A (zh) | 一种管理客户端、设备监控系统及方法 | |
CN107071074A (zh) | 一种负载均衡方法及web服务器集群系统 | |
CN106685937B (zh) | 基于Netty封装的自定义互联网电视http协议方法 | |
KR20180102269A (ko) | 블록체인 기반 외부 서비스 지원 시스템 및 그 방법 | |
CN112559476B (zh) | 一种用于提高目标系统性能的日志存储方法及其相关设备 | |
WO2023020242A1 (zh) | 基于区块链的数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 | |
CN106657441A (zh) | 一种生成金融数据交换消息唯一包id的算法 | |
CN106529241A (zh) | 一种虚拟机用户账号及密码重置方法及系统 | |
CN101136747B (zh) | 一种信息验证的系统及方法 | |
WO2017114103A1 (zh) | 一种云加密机的处理方法及装置 | |
CN113220481A (zh) | 请求处理及反馈方法、装置、计算机设备及可读存储介质 | |
EP4142258A1 (en) | Edge computing network, data transmission method and apparatus, device and storage medium | |
US20120254607A1 (en) | System And Method For Security Levels With Cluster Communications | |
WO2023005500A1 (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
CN110046893A (zh) | 一种基于区块链的网络交易系统及其网络交易方法 | |
CN113179230B (zh) | 一种数据采集方法及装置 | |
WO2018028359A1 (zh) | 业务处理方法、装置、存储介质及电子装置 | |
CN110109731B (zh) | 一种云环境下虚拟可信根的管理方法与系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170510 |
|
RJ01 | Rejection of invention patent application after publication |