一种证券行情数据的传输方法和系统的制作方法

xiaoxiao2020-09-10  23


专利名称::一种证券行情数据的传输方法和系统的制作方法
技术领域
:本发明设计数据传输技术,特别是指一种证券行情数据的传输方法和系统。技术背景在证券行业中,行情数据是数据分析系统的基础,每种证券报价信息的变化,反映了巿场的变化,直接影响着投资人的投资行为,因此证券行业不断地追求更快的行情数据更新速度。随着证券巿场曰益成熟,各证券交易所提供的行情数据更加丰富,数据量也增加了很多。通常情况下,证券交易所以数据域的形式提供行情数据,其中一个数据域至少包括行情数据类别的名称和该行情数据类别的数值。所述行情数据类别的名称即数据域名称,如开盘价、收盘价;所述行情数据类别的数值即数据域值。不同的证券行业各交易所通常以不同的数据格式提供行情数据,例如某些证券交易所的普通行情数据采用DBF格式对外发送而某些证券交易所采用STEP格式对外发送,不同证券交易所行情数据都有其固定的结构格式,这对信息提供商接入更多的行情数据和对数据的处理效率产生了非常不利的影响,从而也影响了行情数据到用户终端的更新速度。为了减少传输数据量,提高传输速度,目前有些现有的证券行情数据传输技术在一定的时间间隔内,将当前所有的行情数据和前一次的行情数据进行异或运算,然后使用投影处理,获得发生变化的行情数据,将这些数据进行数据压縮处理,极大的减少了要传输的数据量。但是这种传输方法只适应于发生变化的行情数据,对于全部的行情数据仍然按照传统固定长度的字节进行编码,这样传输的数据量依然很大,会导致传输过程中数据溢出。例如,当证券交易活跃时,某些商品的交易量可能会很大,比如有些商品的交易量可能会超过40亿,现有技术中,按照传统固定长度字节的编码方式,只能使用8个字节的编码来支持这么大的交易数据量。实际上,绝大部分商品的交易量不会达到这个水平,通常是万或者百万的数量级,但是为了应对最大的数据交易量,只能使用8个字节对全部的数据进行编码,这样极大地增加了传输的数据量,影响了信息提供商对数据的及时处理,也影响了用户终端的数据更新速度。目前还有一些现有技术对商品进行排序编号,在发送端建立商品标识信息库并复制发送到接收端,标示信息库包括每一种商品的序号、代码、名称;发送端对发生变化的行情信息进行组织,分别按位置编码、序号编码、掩码编码方式对数据进行编码。这种传输技术仅传送那些发生了变化的有效信息,减少了信息传输量,用一般的传输速率即可满足用户的实时性要求。但是这种传输数据的方法也存在一些问题,例如,行情数据的数据域没有统一的标识,发送方和接收方必须事先约定好数据域传输的顺序,一旦发送方的数据域顺序发生变化,那么接收方也必须及时地做出调整,否则,接收方对接收到的数据无法进行解析或者会进行错误的解析。
发明内容有鉴于此,本发明的主要目的在于提供一种证券行情数据的传输方法,加快了对行情数据的处理速度,减少了数据的传输量,同时避免了传输过程中因为数据域值有较大的波动而导致数据溢出的情况。本发明还提供了一种证券行情数据的传输系统,以加快对行情数据的处理速度,减少了数据的传输量,同时避免了传输过程中因为数据域值有较大的波动而导致数据溢出的情况。为达到上述目的,本发明的技术方案是这样实现的本发明提供了一种证券行情数据的传输方法,数据提供方以数据域的形式向数据发送方提供行情数据,该方法包括以下步骤a、数据发送方依据数据提供方定义的数据格式对接收到的行情数据进行解码;b、数据发送方从解码后的行情数据中提取数据域,依据数据域值字节的大小对数据域进行分类,形成编码列表,对数据域进行分类编码;c、数据发送方将所述编码后的数据发送给数据接收方;d、数据接收方使用与数据发送方相同的数据域分类编码方式和编码列表对接收到的数据进行解码。步骤b所述数据域至少包括数据域名称、数据域值和数据域编号。步骤b进一步包括,将编码后的数据域依据数据域的编号组织成数据帧;步骤c中将所述数据帧发送给数据接收方。步骤b所述在按数据域值字节的大小对数据域分类之前进一步包括将数据域依据其使用频率进行分类。步骤b中,所述对数据域进行分类编码包括对于高于指定使用频率的数据域用相对少个字节进行编码,对于低于指定使用频率的数据域用相对多个字节进行编码。步骤b进一步包括对所述相对多个字节编码的首字节设置一个或一个以上标志位。步骤b进一步包括对数据域中数字形式的数据域值以整数的形式进行编码;对于文字形式或特殊字符的数据域值,其编码后的字符串的最后一个字节为0。步骤b进一步包括数据发送方依据所述编码列表对数据域设置唯一的标识;步骤d中数据接收方对于接收到的数据读取其唯一标识,依据与数据发送方相同的编码列表对数据进行解码。本发明还提供了一种证券行情数据的传输系统,包括数据发送方,用于将从数据提供方接收到的行情数据进行解码,从解码后的行情数据中提取数据域,依据数据域值字节的大小对数据域进行分类编码,形成编码列表,并将编码后的数据发送给数据接收方;数据接收方,用于接收数据发送方发送的数据,并使用与数据发送方相同的数据域分类编码方式和编码列表对接收到的数据进行解码。所述数据发送方包括解码器,用于对接收到的行情数据依据数据提供方定义的数据格式对数据进行解码;编码器,用于从解码器解码后的行情数据中提取数据域,依据数据域值字节的大小或者依据数据域的使用频率和数据域值字节的大小对数据域进行分类,形成编码列表,对数据域进行分类编码;发送设备,将编码器编码后的数据发送给数据接收方。本发明所提供的证券行情数据的传输方法和系统,将不同交易所、不同交易品种的行情数据格式进行统一,提高了对行情数据格式变化的适应性,对于不同行情数据的处理更加的及时。同时本发明将行情数据依据数据域值字节的大小进行分类,形成编码列表,对数据域进行编码,这种分类编码方式不仅加快了对行情数据的处理速度,而且有效地减少了数据传输量,传输过程中不会发生因为数据域值有较大的波动而导致数据溢出的情况,从而保证了用户终端行情数据的更新质量和速度。另外,本发明的数据发送方和数据接收方使用统一的分类编码方式和编码列表对数据进行编解码,数据发送方依据编码列表对数据域设置了唯一的标识,数据接收方对于接收到的数据读取其唯一标识,依据与数据发送方相同的编码列表对数据进行解码,这样,即使数据发送方的数据域顺序发生了变化,数据接收方也不需要做出调整,依据数据域的唯一标识和与数据发送方相同的编码列表就可以解析出正确的数据。本发明还提出了一种更佳的对数据域的分类方法,在按数据域值字节的大小对数据域分类之前,将数据域依据其使用频率进行分类,对于高于指定使用频率的数据域用一个字节进行编码,对于低于指定使用频率的数据域用二个字节进行编码。这样本发明编码后的数据域编码包括的字节数为最大二字节的数据域标识+N字节的数据域值。根据数据域值的不同,数据域编码后的字节数也不同,这样就可以将数据的传输量降低到最小,不会因为数据域值的较大波动,导致数据在传输过程中溢出。图1为本发明对证券行情数据传输的方法流程示意图;图2为本发明对证券行情数据中数据域的具体编码流程示意图;图3为数据接收方对接收到的数据的具体解码流程示意图;图4为本发明对数据编码后的数据结构示意图;图5为本发明对证券行情数据传输的系统结构示意图。具体实施方式下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。本发明提供了一种证券行情数据传输的方法,由数据发送方对数据提供方提供的行情数据的数据域依据其数据域值字节的大小进行分类,形成编码列表,对数据域进行编码,并将编码后的数据发送给数据接收方;数据接收方使用与数据发送方统一的分类编码方式和编码列表对接收到的数据进行解码。其中,数据提供方指交易所等信息提供商;数据发送方指行情数据处理中心,所有数据提供方提供的数据在数据发送方进行统一格式的处理与加工;数据接收方指统一格式的数据最终使用单位。图1为本发明对证券行情数据传输的方法流程示意图,主要包括以下步骤:步骤101,数据提供方以数据域的形式向数据发送方提供行情数据。行情数据提供方以数据域的形式,使用不同的数据格式向数据发送方提供数据。证券行业中各个交易所以不同的数据格式来提供行情数据,例如A交易所的普通行情数据采用DBF格式,B交易所的行情采用STEP格式,但是其数据基本都是由数据域的形式组成的。一个数据域由行情数据类别名称(即数据域名称)、数据类别的数值(即数据域值)和数据域编号组成。表l所示为商品600600第N笔行情的数据实例。<table>tableseeoriginaldocumentpage0</column></row><table>0<table>tableseeoriginaldocumentpage9</column></row><table>表1步骤102,数据发送方依据数据提供方定义的数据格式对接收到的行情数据进行解码。数据发送方接收到数据提供方的行情数据后,依据该行情数据的数据格式对行情数据进行解码。例如,当数据发送方接收到的是来自A交易所的普通行情数据,由于A交易所的普通行情数据使用的是DBF格式,所以数据发送方就依据DBF格式的编码方法对接收到的数据进行解码。步骤103,数据发送方从解码后的行情数据中提取数据域,依据数据域值字节的大小对数据域进行分类,形成编码列表,对数据域进行分类编码。对数据域的域值进行分析,即对数据域值字节的大小进行分析,设置数据域值字节的范围,如0-2个字节、3-4个字节、5-8个字节等;每个字节范围对应一个数据类型,如,数据域值的字节在0-2的字节范围内时,该数据域的数据类型为Sh0rt,数据域值的字节在3-4的字节范围内时,该数据域的数据类型为long,数据域值的字节在5-8的字节范围内时,该数据域的数据类型为longlong;依据编码列表对数据域设置唯一的标识Tagld,使不同的数据域对应一个唯一的数据域标识Tagld,不同数据类型的相同数据域分别唯一对应不同的Tagld。Tagld用十六进制表示,也可以用二进制或八进制表示。由此可以得到编码列表,并将编码列表进行存储,并发送给数据接收方,对于以后接收到的数据,数据发送方均依据该编码列表对数据进行编码。如表2所示,为一个编码列表的实例。<table>tableseeoriginaldocumentpage10</column></row><table>表2步骤104,数据发送方将所述编码后的数据发送给数据接收方。数据发送方将将编码后的数据发送给数据接收方,在发送数据的过程中使用的是现有技术,此处不再赘述。步骤105,数据接收方使用与数据发送方相同的分类编码方式和编码列表对接收到的数据进行解码。数据接收方和数据发送方使用统一的编码方式和编码列表对数据进行编码或解码。因为编码后的一个数据域存在唯一的标识Tagld,当数据发送方编码后的数据域顺序发生变化时,数据接收方可以依据统一的编码列表,找到与该Tagld对应的数据域,对该数据域编码进行解析。在本发明中,对于数据域还有一种更佳的分类方式,即在按数据域值字节的大小对数据域分类之前,将数据域依据其使用频率进行分类。数据域的使用频率是指数据域在行情数据中出现的频率。设置一个使用频率的门限值,高于该门限值的数据域为高频率数据域,低于该门限值的数据域为低频率数据域。数据发送方对数据域进行分析,将高频率的数据域编码使用较少的字节表示,通常为一个字节,如0x01,其编码范围为0x00—0x7F;将低频率的数据域的编码使用较多的字节表示,通常为二个字节。为了将较少的字节和较多的字节的编码进行区分,可以对较多字节编码的首字节设置一个或一个以上标志位。如为了将一个字节和二个字节的编码进行区分,二个字节编码的首字节最高位固定为1,这样二个字节的编码首字节的编码范围为0x80—OxFF,第二个字节的编码范围为OxOO—OxFF。在此分类的基础上再依据数据域值字节的大小对数据域进行分类,形成编码列表。具体的按数据域值字节的大小进行分类的方法如步骤103所述,不再赘述。其中,对于二个字节编码的首字节,可以将其任意一位或几位设置为1,也可以将其所有位设置为1。同样,也可以有其他的区分方式。表3为依据数据域的使用频率和数据域值字节的大小对数据域进行分类后得到的高频率的数据域编码列表实例。<table>tableseeoriginaldocumentpage11</column></row><table>0x08最新成交量longlong80x0a最新成交金额/成交金额short20x0b最新成交金额/成交金额long40x0c最新成交金额/成交金额longlong80x0d昨收盘价short20x0e昨收盘价long40x0f开盘价short20x09开盘价long40x10最高价short20x11最高价long40x12最低价short20x13最低价long4表3表4为依据数据域的使用频率和数据域值字节的大小对数据域进行分类后得到的低频率的数据域编码列表实例。Tagld数据域名称数据类型字节大小0x0080中文简称string/0x0081代码/交易所商品代码string/0x0082商品类别IDstring/0x0083交易所内码long40x0084行业种类long/0x0085旧商品内码long40x0086商品扩展码string/0x0087商品扩展名string/0x0088中文名称string/表4图2为本发明对证券行情数据中数据域的具体编码流程示意图,下面将结合表l、表3、表4对行情数据中数据域的具体编码流程给出一个具体的实施例来说明。步骤201,从解码后的数据中提取数据域。如表1所示,为提取后的商品600600第N笔数据的数据域组。包括数据域类别、数据域值和数据域编号。步骤202,到编码列表中查看该数据域属于高频率或低频率的数据域。结合表3的编码列表对表1中的各项数据域进行分析。例如表1中数据域<table>tableseeoriginaldocumentpage0</column></row><table>其中数据域名称"最高价"在表3中可以查到,所以该数据域属于高频率数据域。如果数据域名称在表4中可以查到,则该数据域属于低频率数据域。步骤203,对于高频率数据域使用一个字节对该数据域编码;对于低频率数据域,使用二个字节对该数据域编码,其首字节的最高位为1。该步骤的编码方法如上述按数据域的使用频率分类的编码方法,此处不再步骤204,到编码列表中査看该数据域数据类型,并依据该数据类型对应的Tagld对该数据域进行编码;对于数字类型的域值以整数的形式进行编码,对于其他如文字类型或特殊字符的域值其编码后的字符串的最后一个字节为0。数字类型域值的数据域,例如表l中数据域项最高价<table>tableseeoriginaldocumentpage0</column></row><table>其数据域值为"7.84",该域值为数字类型,所以该域值以整数的形式进行编码后,用十六进制可以表示为0x030x10。文字类型域值的数据域,例如表1中数据域项行业种类金融16其数据域值为"金融",该域值为文字类型,所以对该域值采用现有技术进行编码,编码后得到的字符串,其最后一个字节为O,例如XXXXO。上述数据名称为"最高价"的数据域的域值为7.84,该数值为数字类型的,以整数的形式换算为十六进制后为0x030x10,其字节长度为二个字节。到表2中查找到该数据域的数据类型为short。由此可以得到,数据域名称为"最高价"、数据类型为short的数据域所对应的Tagld为OxlO。则对数据域编码后得到的数据为|0xl0|0x030x10。步骤205,将编码后的数据依据数据域编号写入预先分配的缓冲区,组织成数据帧。将编码后的数据域,依据表1中各数据域的数据域编号,依次写入预先分配好的缓冲区中,组成成数据帧,发送给数据接收方。将对于编码后的数据域写入缓冲区的顺序,可以是随机的,也可以有其他的排序方式。图3为数据接收方对接收到的数据的解码流程示意图。下面结合表3进行说明。步骤301,接收数据发送方发送的数据。依据本发明的编码方法,将数据发送方编码后的数据组织成数据帧后的数据格式的实例如图4所示。其中401—405分别为编码后的数据域,401、402、405表示编码后为4个字节数值的数据域,且该数据域的域值为数字类型;403表示编码后为8个字节数值的数据域,且该数据域的域值为数字类型;404表示编码后为5个字节字符串的数据域,且该数据域的域值为文字类型或特殊字符。406表示其他的多个数据域。数据接收方接收到所述数据发送方编码后的数据。例如数据发送方编码后的实际数据为0x100x030x100x040x000xB00xC0OxFB0x830x7D0x000x000x010x310x000x000x000x160x010x460xC00x260x5A0x580x020x50OxAC0x260x640xF00x000x6E0x000x800x6F0x000x000x700x320x000x000x000x710x000x000x000x000x350x01其中带边框的数据为Tagld,两个Tagld之间的数据为以前一个Tagld为标识的数据域的数据域值。步骤302—303,读第一个字节作为Tagld,判断最高位是否为1。对数据进行解码时,先读取一个字节作为Tagld,判断其最高位是否为l,如果最高为1,说明该数据域为低频率数据域,则重新读取前两个字节作为该数据域的Tagld,执行步骤304;如果最高位不是1,说明该数据域为高频率数据域,执行步骤304。步骤304,依据编码列表对数据进行解码。数据接收方使用与数据发送相同的分类编码方式和编码列表,对数据进行将读取的数据域Tagld为依据到编码列表中查找对应的数据域项。例如读取到的Tagld为0x10,因为其最高位不是1,则到编码列表3中查找到该Tagld对应的数据域项为<table>tableseeoriginaldocumentpage0</column></row><table>则可以得到以下信息该数据域的数据域名称为"最高价"、数据域值的字节大小为2。然后读取Tagld为0x10之后的两个字节0x030x10,依据现有技术对其进行转换,得到该数据域的数据域值。则该数据域解码后的实际数据为最高价7.84。这样依次对数据进行解码,直到得到解析完所有的数据。图5为本发明证券行情数据编码的系统结构示意图。该系统包括数据提供方501,用于为数据发送方提供证券行情数据。数据发送方502,用于将从数据提供方接收到的行情数据进行解码,从解码后的行情数据中提取数据域,依据数据域值字节的大小对数据域进行分类编码,形成编码列表,并将编码后的数据发送给数据接收方;其中包括解码器503,用于对接收到的行情数据依据数据提供方定义的数据格式进行解码。编码器504,用于从解码器解码后的行情数据中提取数据域,依据数据域的数据域值字节的大小对数据域进行分类,或者依据数据域的使用频率和数据域值字节的大小对数据域进行分类;然后形成编码列表,对数据域进行分类编码,并将编码后的数据域组织成数据帧。具体的编码流程如图2所示,不再赘述。发送设备505,将所述编码后的数据发送给数据接收方。数据接收方506,用于接收数据发送方发送的数据,并使用与数据发送方相同的数据域分类编码方式和编码列表对接收到的数据进行解码。具体的解码流程如图3所示,不再赘述。其中,数据接收方在处理数据发送方的行情数据时,如果碰到无法识别的数据域编码,例如,数据提供方对行情数据增加了新的数据域信息,数据发送方将该数据域信息进行编码后发送给了数据接收方,可是数据接收方的编码列表中还没有该数据域的信息,则数据接收方忽略该数据域,对于其他的数据域仍然依据编码列表进行解码。数据接收方与数据发送方可定期通过交换信息的方式核对编码列表的信息,以解决上述问题。在数据传输过程中,如果数据帧长度超过规定的阈值,则数据传输系统可自动启用压缩功能,对数据帧进行压縮,压缩功能支持最多3种压缩算法,现有的压缩算法如zlib、bzip2等;另外还可以对数据帧进行加密,加密功能支持最多3种加密算法,现有技术的加密算法如DES、3DES、Blowfish,也可以使用非对称加密算法,如RSA。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。权利要求1.一种证券行情数据的传输方法,数据提供方以数据域的形式向数据发送方提供行情数据,其特征在于,该方法包括以下步骤a、数据发送方依据数据提供方定义的数据格式对接收到的行情数据进行解码;b、数据发送方从解码后的行情数据中提取数据域,依据数据域值字节的大小对数据域进行分类,形成编码列表,对数据域进行分类编码;c、数据发送方将所述编码后的数据发送给数据接收方;d、数据接收方使用与数据发送方相同的数据域分类编码方式和编码列表对接收到的数据进行解码。2、根据权利要求l所述证券行情数据的传输方法,其特征在于,步骤b所述数据域至少包括数据域名称、数据域值和数据域编号。3、根据权利要求l或2所述证券行情数据的传输方法,其特征在于,步骤b进一步包括,将编码后的数据域依据数据域的编号组织成数据帧;步骤c中将所述数据帧发送给数据接收方。4、根据权利要求l所述证券行情数据的传输方法,其特征在于,步骤b所述在按数据域值字节的大小对数据域分类之前进一步包括将数据域依据其使用频率进行分类。5、根据权利要求4所述证券行情数据的传输方法,其特征在于,步骤b中,所述对数据域进行分类编码包括对于高于指定使用频率的数据域用相对少个字节进行编码,对于低于指定使用频率的数据域用相对多个字节进行编码。6、根据权利要求5所述证券行情数据的传输方法,其特征在于,步骤b进一步包括对所述相对多个字节编码的首字节设置一个或一个以上标志位。7、根据权利要求1所述证券行情数据的传输方法,其特征在于,步骤b进一步包括对数据域中数字形式的数据域值以整数的形式进行编码;对于文字形式或特殊字符的数据域值,其编码后的字符串的最后一个字节为0。8、根据权利要求1所述证券行情数据的传输方法,其特征在于,步骤b进一步包括数据发送方依据所述编码列表对数据域设置唯一的标识;步骤d中数据接收方对于接收到的数据读取其唯一标识,依据与数据发送方相同的编码列表对数据进行解码。9、一种证券行情数据的传输系统,其特征在于,包括数据发送方,用于将从数据提供方接收到的行情数据进行解码,从解码后的行情数据中提取数据域,依据数据域值字节的大小对数据域进行分类编码,形成编码列表,并将编码后的数据发送给数据接收方;数据接收方,用于接收数据发送方发送的数据,并使用与数据发送方相同的数据域分类编码方式和编码列表对接收到的数据进行解码。10、根据权利要求9所述证券行情数据的传输系统,其特征在于,所述数据发送方包括解码器,用于对接收到的行情数据依据数据提供方定义的数据格式对数据进行解码;编码器,用于从解码器解码后的行情数据中提取数据域,依据数据域值字节的大小或者依据数据域的使用频率和数据域值字节的大小对数据域进行分类,形成编码列表,对数据域进行分类编码;发送设备,将编码器编码后的数据发送给数据接收方。全文摘要本发明公开了一种证券行情数据的传输方法,数据提供方以数据域的形式向数据发送方提供行情数据,其特征在于该方法包括数据发送方依据数据提供方定义的数据格式对接收到的行情数据进行解码;数据发送方从解码后的行情数据中提取数据域,依据数据域值字节的大小对数据域进行分类,形成编码列表,对数据域进行分类编码;数据发送方将所述编码后的数据发送给数据接收方;数据接收方使用与数据发送方相同的数据域分类编码方式和编码列表对接收到的数据进行解码。本发明还公开了一种证券行情数据的编码系统,提高了对行情数据的数据格式变化的适应性,加快了用户终端的数据更新速度。文档编号H04L29/06GK101267281SQ20081010502公开日2008年9月17日申请日期2008年4月25日优先权日2008年4月25日发明者刘志明,全周,君姚,徐立中,仪杨,王小龙申请人:北京中企开源信息技术有限公司
转载请注明原文地址:https://www.famiwei.com/read-7749963.html

最新回复(0)