專利名稱::一種證券行情數(shù)據(jù)的傳輸方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明設(shè)計(jì)數(shù)據(jù)傳輸技術(shù),特別是指一種證券行情數(shù)據(jù)的傳輸方法和系統(tǒng)。技術(shù)背景在證券行業(yè)中,行情數(shù)據(jù)是數(shù)據(jù)分析系統(tǒng)的基礎(chǔ),每種證券報(bào)價(jià)信息的變化,反映了巿場(chǎng)的變化,直接影響著投資人的投資行為,因此證券行業(yè)不斷地追求更快的行情數(shù)據(jù)更新速度。隨著證券巿場(chǎng)曰益成熟,各證券交易所提供的行情數(shù)據(jù)更加豐富,數(shù)據(jù)量也增加了很多。通常情況下,證券交易所以數(shù)據(jù)域的形式提供行情數(shù)據(jù),其中一個(gè)數(shù)據(jù)域至少包括行情數(shù)據(jù)類別的名稱和該行情數(shù)據(jù)類別的數(shù)值。所述行情數(shù)據(jù)類別的名稱即數(shù)據(jù)域名稱,如開盤價(jià)、收盤價(jià);所述行情數(shù)據(jù)類別的數(shù)值即數(shù)據(jù)域值。不同的證券行業(yè)各交易所通常以不同的數(shù)據(jù)格式提供行情數(shù)據(jù),例如某些證券交易所的普通行情數(shù)據(jù)采用DBF格式對(duì)外發(fā)送而某些證券交易所采用STEP格式對(duì)外發(fā)送,不同證券交易所行情數(shù)據(jù)都有其固定的結(jié)構(gòu)格式,這對(duì)信息提供商接入更多的行情數(shù)據(jù)和對(duì)數(shù)據(jù)的處理效率產(chǎn)生了非常不利的影響,從而也影響了行情數(shù)據(jù)到用戶終端的更新速度。為了減少傳輸數(shù)據(jù)量,提高傳輸速度,目前有些現(xiàn)有的證券行情數(shù)據(jù)傳輸技術(shù)在一定的時(shí)間間隔內(nèi),將當(dāng)前所有的行情數(shù)據(jù)和前一次的行情數(shù)據(jù)進(jìn)行異或運(yùn)算,然后使用投影處理,獲得發(fā)生變化的行情數(shù)據(jù),將這些數(shù)據(jù)進(jìn)行數(shù)據(jù)壓縮處理,極大的減少了要傳輸?shù)臄?shù)據(jù)量。但是這種傳輸方法只適應(yīng)于發(fā)生變化的行情數(shù)據(jù),對(duì)于全部的行情數(shù)據(jù)仍然按照傳統(tǒng)固定長(zhǎng)度的字節(jié)進(jìn)行編碼,這樣傳輸?shù)臄?shù)據(jù)量依然很大,會(huì)導(dǎo)致傳輸過(guò)程中數(shù)據(jù)溢出。例如,當(dāng)證券交易活躍時(shí),某些商品的交易量可能會(huì)很大,比如有些商品的交易量可能會(huì)超過(guò)40億,現(xiàn)有技術(shù)中,按照傳統(tǒng)固定長(zhǎng)度字節(jié)的編碼方式,只能使用8個(gè)字節(jié)的編碼來(lái)支持這么大的交易數(shù)據(jù)量。實(shí)際上,絕大部分商品的交易量不會(huì)達(dá)到這個(gè)水平,通常是萬(wàn)或者百萬(wàn)的數(shù)量級(jí),但是為了應(yīng)對(duì)最大的數(shù)據(jù)交易量,只能使用8個(gè)字節(jié)對(duì)全部的數(shù)據(jù)進(jìn)行編碼,這樣極大地增加了傳輸?shù)臄?shù)據(jù)量,影響了信息提供商對(duì)數(shù)據(jù)的及時(shí)處理,也影響了用戶終端的數(shù)據(jù)更新速度。目前還有一些現(xiàn)有技術(shù)對(duì)商品進(jìn)行排序編號(hào),在發(fā)送端建立商品標(biāo)識(shí)信息庫(kù)并復(fù)制發(fā)送到接收端,標(biāo)示信息庫(kù)包括每一種商品的序號(hào)、代碼、名稱;發(fā)送端對(duì)發(fā)生變化的行情信息進(jìn)行組織,分別按位置編碼、序號(hào)編碼、掩碼編碼方式對(duì)數(shù)據(jù)進(jìn)行編碼。這種傳輸技術(shù)僅傳送那些發(fā)生了變化的有效信息,減少了信息傳輸量,用一般的傳輸速率即可滿足用戶的實(shí)時(shí)性要求。但是這種傳輸數(shù)據(jù)的方法也存在一些問(wèn)題,例如,行情數(shù)據(jù)的數(shù)據(jù)域沒(méi)有統(tǒng)一的標(biāo)識(shí),發(fā)送方和接收方必須事先約定好數(shù)據(jù)域傳輸?shù)捻樞颍坏┌l(fā)送方的數(shù)據(jù)域順序發(fā)生變化,那么接收方也必須及時(shí)地做出調(diào)整,否則,接收方對(duì)接收到的數(shù)據(jù)無(wú)法進(jìn)行解析或者會(huì)進(jìn)行錯(cuò)誤的解析。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的主要目的在于提供一種證券行情數(shù)據(jù)的傳輸方法,加快了對(duì)行情數(shù)據(jù)的處理速度,減少了數(shù)據(jù)的傳輸量,同時(shí)避免了傳輸過(guò)程中因?yàn)閿?shù)據(jù)域值有較大的波動(dòng)而導(dǎo)致數(shù)據(jù)溢出的情況。本發(fā)明還提供了一種證券行情數(shù)據(jù)的傳輸系統(tǒng),以加快對(duì)行情數(shù)據(jù)的處理速度,減少了數(shù)據(jù)的傳輸量,同時(shí)避免了傳輸過(guò)程中因?yàn)閿?shù)據(jù)域值有較大的波動(dòng)而導(dǎo)致數(shù)據(jù)溢出的情況。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的本發(fā)明提供了一種證券行情數(shù)據(jù)的傳輸方法,數(shù)據(jù)提供方以數(shù)據(jù)域的形式向數(shù)據(jù)發(fā)送方提供行情數(shù)據(jù),該方法包括以下步驟a、數(shù)據(jù)發(fā)送方依據(jù)數(shù)據(jù)提供方定義的數(shù)據(jù)格式對(duì)接收到的行情數(shù)據(jù)進(jìn)行解碼;b、數(shù)據(jù)發(fā)送方從解碼后的行情數(shù)據(jù)中提取數(shù)據(jù)域,依據(jù)數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域進(jìn)行分類,形成編碼列表,對(duì)數(shù)據(jù)域進(jìn)行分類編碼;c、數(shù)據(jù)發(fā)送方將所述編碼后的數(shù)據(jù)發(fā)送給數(shù)據(jù)接收方;d、數(shù)據(jù)接收方使用與數(shù)據(jù)發(fā)送方相同的數(shù)據(jù)域分類編碼方式和編碼列表對(duì)接收到的數(shù)據(jù)進(jìn)行解碼。步驟b所述數(shù)據(jù)域至少包括數(shù)據(jù)域名稱、數(shù)據(jù)域值和數(shù)據(jù)域編號(hào)。步驟b進(jìn)一步包括,將編碼后的數(shù)據(jù)域依據(jù)數(shù)據(jù)域的編號(hào)組織成數(shù)據(jù)幀;步驟c中將所述數(shù)據(jù)幀發(fā)送給數(shù)據(jù)接收方。步驟b所述在按數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域分類之前進(jìn)一步包括將數(shù)據(jù)域依據(jù)其使用頻率進(jìn)行分類。步驟b中,所述對(duì)數(shù)據(jù)域進(jìn)行分類編碼包括對(duì)于高于指定使用頻率的數(shù)據(jù)域用相對(duì)少個(gè)字節(jié)進(jìn)行編碼,對(duì)于低于指定使用頻率的數(shù)據(jù)域用相對(duì)多個(gè)字節(jié)進(jìn)行編碼。步驟b進(jìn)一步包括對(duì)所述相對(duì)多個(gè)字節(jié)編碼的首字節(jié)設(shè)置一個(gè)或一個(gè)以上標(biāo)志位。步驟b進(jìn)一步包括對(duì)數(shù)據(jù)域中數(shù)字形式的數(shù)據(jù)域值以整數(shù)的形式進(jìn)行編碼;對(duì)于文字形式或特殊字符的數(shù)據(jù)域值,其編碼后的字符串的最后一個(gè)字節(jié)為0。步驟b進(jìn)一步包括數(shù)據(jù)發(fā)送方依據(jù)所述編碼列表對(duì)數(shù)據(jù)域設(shè)置唯一的標(biāo)識(shí);步驟d中數(shù)據(jù)接收方對(duì)于接收到的數(shù)據(jù)讀取其唯一標(biāo)識(shí),依據(jù)與數(shù)據(jù)發(fā)送方相同的編碼列表對(duì)數(shù)據(jù)進(jìn)行解碼。本發(fā)明還提供了一種證券行情數(shù)據(jù)的傳輸系統(tǒng),包括數(shù)據(jù)發(fā)送方,用于將從數(shù)據(jù)提供方接收到的行情數(shù)據(jù)進(jìn)行解碼,從解碼后的行情數(shù)據(jù)中提取數(shù)據(jù)域,依據(jù)數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域進(jìn)行分類編碼,形成編碼列表,并將編碼后的數(shù)據(jù)發(fā)送給數(shù)據(jù)接收方;數(shù)據(jù)接收方,用于接收數(shù)據(jù)發(fā)送方發(fā)送的數(shù)據(jù),并使用與數(shù)據(jù)發(fā)送方相同的數(shù)據(jù)域分類編碼方式和編碼列表對(duì)接收到的數(shù)據(jù)進(jìn)行解碼。所述數(shù)據(jù)發(fā)送方包括解碼器,用于對(duì)接收到的行情數(shù)據(jù)依據(jù)數(shù)據(jù)提供方定義的數(shù)據(jù)格式對(duì)數(shù)據(jù)進(jìn)行解碼;編碼器,用于從解碼器解碼后的行情數(shù)據(jù)中提取數(shù)據(jù)域,依據(jù)數(shù)據(jù)域值字節(jié)的大小或者依據(jù)數(shù)據(jù)域的使用頻率和數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域進(jìn)行分類,形成編碼列表,對(duì)數(shù)據(jù)域進(jìn)行分類編碼;發(fā)送設(shè)備,將編碼器編碼后的數(shù)據(jù)發(fā)送給數(shù)據(jù)接收方。本發(fā)明所提供的證券行情數(shù)據(jù)的傳輸方法和系統(tǒng),將不同交易所、不同交易品種的行情數(shù)據(jù)格式進(jìn)行統(tǒng)一,提高了對(duì)行情數(shù)據(jù)格式變化的適應(yīng)性,對(duì)于不同行情數(shù)據(jù)的處理更加的及時(shí)。同時(shí)本發(fā)明將行情數(shù)據(jù)依據(jù)數(shù)據(jù)域值字節(jié)的大小進(jìn)行分類,形成編碼列表,對(duì)數(shù)據(jù)域進(jìn)行編碼,這種分類編碼方式不僅加快了對(duì)行情數(shù)據(jù)的處理速度,而且有效地減少了數(shù)據(jù)傳輸量,傳輸過(guò)程中不會(huì)發(fā)生因?yàn)閿?shù)據(jù)域值有較大的波動(dòng)而導(dǎo)致數(shù)據(jù)溢出的情況,從而保證了用戶終端行情數(shù)據(jù)的更新質(zhì)量和速度。另外,本發(fā)明的數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方使用統(tǒng)一的分類編碼方式和編碼列表對(duì)數(shù)據(jù)進(jìn)行編解碼,數(shù)據(jù)發(fā)送方依據(jù)編碼列表對(duì)數(shù)據(jù)域設(shè)置了唯一的標(biāo)識(shí),數(shù)據(jù)接收方對(duì)于接收到的數(shù)據(jù)讀取其唯一標(biāo)識(shí),依據(jù)與數(shù)據(jù)發(fā)送方相同的編碼列表對(duì)數(shù)據(jù)進(jìn)行解碼,這樣,即使數(shù)據(jù)發(fā)送方的數(shù)據(jù)域順序發(fā)生了變化,數(shù)據(jù)接收方也不需要做出調(diào)整,依據(jù)數(shù)據(jù)域的唯一標(biāo)識(shí)和與數(shù)據(jù)發(fā)送方相同的編碼列表就可以解析出正確的數(shù)據(jù)。本發(fā)明還提出了一種更佳的對(duì)數(shù)據(jù)域的分類方法,在按數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域分類之前,將數(shù)據(jù)域依據(jù)其使用頻率進(jìn)行分類,對(duì)于高于指定使用頻率的數(shù)據(jù)域用一個(gè)字節(jié)進(jìn)行編碼,對(duì)于低于指定使用頻率的數(shù)據(jù)域用二個(gè)字節(jié)進(jìn)行編碼。這樣本發(fā)明編碼后的數(shù)據(jù)域編碼包括的字節(jié)數(shù)為最大二字節(jié)的數(shù)據(jù)域標(biāo)識(shí)+N字節(jié)的數(shù)據(jù)域值。根據(jù)數(shù)據(jù)域值的不同,數(shù)據(jù)域編碼后的字節(jié)數(shù)也不同,這樣就可以將數(shù)據(jù)的傳輸量降低到最小,不會(huì)因?yàn)閿?shù)據(jù)域值的較大波動(dòng),導(dǎo)致數(shù)據(jù)在傳輸過(guò)程中溢出。圖1為本發(fā)明對(duì)證券行情數(shù)據(jù)傳輸?shù)姆椒鞒淌疽鈭D;圖2為本發(fā)明對(duì)證券行情數(shù)據(jù)中數(shù)據(jù)域的具體編碼流程示意圖;圖3為數(shù)據(jù)接收方對(duì)接收到的數(shù)據(jù)的具體解碼流程示意圖;圖4為本發(fā)明對(duì)數(shù)據(jù)編碼后的數(shù)據(jù)結(jié)構(gòu)示意圖;圖5為本發(fā)明對(duì)證券行情數(shù)據(jù)傳輸?shù)南到y(tǒng)結(jié)構(gòu)示意圖。具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)一步詳細(xì)闡述。本發(fā)明提供了一種證券行情數(shù)據(jù)傳輸?shù)姆椒ǎ蓴?shù)據(jù)發(fā)送方對(duì)數(shù)據(jù)提供方提供的行情數(shù)據(jù)的數(shù)據(jù)域依據(jù)其數(shù)據(jù)域值字節(jié)的大小進(jìn)行分類,形成編碼列表,對(duì)數(shù)據(jù)域進(jìn)行編碼,并將編碼后的數(shù)據(jù)發(fā)送給數(shù)據(jù)接收方;數(shù)據(jù)接收方使用與數(shù)據(jù)發(fā)送方統(tǒng)一的分類編碼方式和編碼列表對(duì)接收到的數(shù)據(jù)進(jìn)行解碼。其中,數(shù)據(jù)提供方指交易所等信息提供商;數(shù)據(jù)發(fā)送方指行情數(shù)據(jù)處理中心,所有數(shù)據(jù)提供方提供的數(shù)據(jù)在數(shù)據(jù)發(fā)送方進(jìn)行統(tǒng)一格式的處理與加工;數(shù)據(jù)接收方指統(tǒng)一格式的數(shù)據(jù)最終使用單位。圖1為本發(fā)明對(duì)證券行情數(shù)據(jù)傳輸?shù)姆椒鞒淌疽鈭D,主要包括以下步驟:步驟101,數(shù)據(jù)提供方以數(shù)據(jù)域的形式向數(shù)據(jù)發(fā)送方提供行情數(shù)據(jù)。行情數(shù)據(jù)提供方以數(shù)據(jù)域的形式,使用不同的數(shù)據(jù)格式向數(shù)據(jù)發(fā)送方提供數(shù)據(jù)。證券行業(yè)中各個(gè)交易所以不同的數(shù)據(jù)格式來(lái)提供行情數(shù)據(jù),例如A交易所的普通行情數(shù)據(jù)采用DBF格式,B交易所的行情采用STEP格式,但是其數(shù)據(jù)基本都是由數(shù)據(jù)域的形式組成的。一個(gè)數(shù)據(jù)域由行情數(shù)據(jù)類別名稱(即數(shù)據(jù)域名稱)、數(shù)據(jù)類別的數(shù)值(即數(shù)據(jù)域值)和數(shù)據(jù)域編號(hào)組成。表l所示為商品600600第N筆行情的數(shù)據(jù)實(shí)例。<table>tableseeoriginaldocumentpage0</column></row><table>0<table>tableseeoriginaldocumentpage9</column></row><table>表1步驟102,數(shù)據(jù)發(fā)送方依據(jù)數(shù)據(jù)提供方定義的數(shù)據(jù)格式對(duì)接收到的行情數(shù)據(jù)進(jìn)行解碼。數(shù)據(jù)發(fā)送方接收到數(shù)據(jù)提供方的行情數(shù)據(jù)后,依據(jù)該行情數(shù)據(jù)的數(shù)據(jù)格式對(duì)行情數(shù)據(jù)進(jìn)行解碼。例如,當(dāng)數(shù)據(jù)發(fā)送方接收到的是來(lái)自A交易所的普通行情數(shù)據(jù),由于A交易所的普通行情數(shù)據(jù)使用的是DBF格式,所以數(shù)據(jù)發(fā)送方就依據(jù)DBF格式的編碼方法對(duì)接收到的數(shù)據(jù)進(jìn)行解碼。步驟103,數(shù)據(jù)發(fā)送方從解碼后的行情數(shù)據(jù)中提取數(shù)據(jù)域,依據(jù)數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域進(jìn)行分類,形成編碼列表,對(duì)數(shù)據(jù)域進(jìn)行分類編碼。對(duì)數(shù)據(jù)域的域值進(jìn)行分析,即對(duì)數(shù)據(jù)域值字節(jié)的大小進(jìn)行分析,設(shè)置數(shù)據(jù)域值字節(jié)的范圍,如0-2個(gè)字節(jié)、3-4個(gè)字節(jié)、5-8個(gè)字節(jié)等;每個(gè)字節(jié)范圍對(duì)應(yīng)一個(gè)數(shù)據(jù)類型,如,數(shù)據(jù)域值的字節(jié)在0-2的字節(jié)范圍內(nèi)時(shí),該數(shù)據(jù)域的數(shù)據(jù)類型為Sh0rt,數(shù)據(jù)域值的字節(jié)在3-4的字節(jié)范圍內(nèi)時(shí),該數(shù)據(jù)域的數(shù)據(jù)類型為long,數(shù)據(jù)域值的字節(jié)在5-8的字節(jié)范圍內(nèi)時(shí),該數(shù)據(jù)域的數(shù)據(jù)類型為longlong;依據(jù)編碼列表對(duì)數(shù)據(jù)域設(shè)置唯一的標(biāo)識(shí)Tagld,使不同的數(shù)據(jù)域?qū)?yīng)一個(gè)唯一的數(shù)據(jù)域標(biāo)識(shí)Tagld,不同數(shù)據(jù)類型的相同數(shù)據(jù)域分別唯一對(duì)應(yīng)不同的Tagld。Tagld用十六進(jìn)制表示,也可以用二進(jìn)制或八進(jìn)制表示。由此可以得到編碼列表,并將編碼列表進(jìn)行存儲(chǔ),并發(fā)送給數(shù)據(jù)接收方,對(duì)于以后接收到的數(shù)據(jù),數(shù)據(jù)發(fā)送方均依據(jù)該編碼列表對(duì)數(shù)據(jù)進(jìn)行編碼。如表2所示,為一個(gè)編碼列表的實(shí)例。<table>tableseeoriginaldocumentpage10</column></row><table>表2步驟104,數(shù)據(jù)發(fā)送方將所述編碼后的數(shù)據(jù)發(fā)送給數(shù)據(jù)接收方。數(shù)據(jù)發(fā)送方將將編碼后的數(shù)據(jù)發(fā)送給數(shù)據(jù)接收方,在發(fā)送數(shù)據(jù)的過(guò)程中使用的是現(xiàn)有技術(shù),此處不再贅述。步驟105,數(shù)據(jù)接收方使用與數(shù)據(jù)發(fā)送方相同的分類編碼方式和編碼列表對(duì)接收到的數(shù)據(jù)進(jìn)行解碼。數(shù)據(jù)接收方和數(shù)據(jù)發(fā)送方使用統(tǒng)一的編碼方式和編碼列表對(duì)數(shù)據(jù)進(jìn)行編碼或解碼。因?yàn)榫幋a后的一個(gè)數(shù)據(jù)域存在唯一的標(biāo)識(shí)Tagld,當(dāng)數(shù)據(jù)發(fā)送方編碼后的數(shù)據(jù)域順序發(fā)生變化時(shí),數(shù)據(jù)接收方可以依據(jù)統(tǒng)一的編碼列表,找到與該Tagld對(duì)應(yīng)的數(shù)據(jù)域,對(duì)該數(shù)據(jù)域編碼進(jìn)行解析。在本發(fā)明中,對(duì)于數(shù)據(jù)域還有一種更佳的分類方式,即在按數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域分類之前,將數(shù)據(jù)域依據(jù)其使用頻率進(jìn)行分類。數(shù)據(jù)域的使用頻率是指數(shù)據(jù)域在行情數(shù)據(jù)中出現(xiàn)的頻率。設(shè)置一個(gè)使用頻率的門限值,高于該門限值的數(shù)據(jù)域?yàn)楦哳l率數(shù)據(jù)域,低于該門限值的數(shù)據(jù)域?yàn)榈皖l率數(shù)據(jù)域。數(shù)據(jù)發(fā)送方對(duì)數(shù)據(jù)域進(jìn)行分析,將高頻率的數(shù)據(jù)域編碼使用較少的字節(jié)表示,通常為一個(gè)字節(jié),如0x01,其編碼范圍為0x00—0x7F;將低頻率的數(shù)據(jù)域的編碼使用較多的字節(jié)表示,通常為二個(gè)字節(jié)。為了將較少的字節(jié)和較多的字節(jié)的編碼進(jìn)行區(qū)分,可以對(duì)較多字節(jié)編碼的首字節(jié)設(shè)置一個(gè)或一個(gè)以上標(biāo)志位。如為了將一個(gè)字節(jié)和二個(gè)字節(jié)的編碼進(jìn)行區(qū)分,二個(gè)字節(jié)編碼的首字節(jié)最高位固定為1,這樣二個(gè)字節(jié)的編碼首字節(jié)的編碼范圍為0x80—OxFF,第二個(gè)字節(jié)的編碼范圍為OxOO—OxFF。在此分類的基礎(chǔ)上再依據(jù)數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域進(jìn)行分類,形成編碼列表。具體的按數(shù)據(jù)域值字節(jié)的大小進(jìn)行分類的方法如步驟103所述,不再贅述。其中,對(duì)于二個(gè)字節(jié)編碼的首字節(jié),可以將其任意一位或幾位設(shè)置為1,也可以將其所有位設(shè)置為1。同樣,也可以有其他的區(qū)分方式。表3為依據(jù)數(shù)據(jù)域的使用頻率和數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域進(jìn)行分類后得到的高頻率的數(shù)據(jù)域編碼列表實(shí)例。<table>tableseeoriginaldocumentpage11</column></row><table>0x08最新成交量longlong80x0a最新成交金額/成交金額short20x0b最新成交金額/成交金額long40x0c最新成交金額/成交金額longlong80x0d昨收盤價(jià)short20x0e昨收盤價(jià)long40x0f開盤價(jià)short20x09開盤價(jià)long40x10最高價(jià)short20x11最高價(jià)long40x12最低價(jià)short20x13最低價(jià)long4表3表4為依據(jù)數(shù)據(jù)域的使用頻率和數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域進(jìn)行分類后得到的低頻率的數(shù)據(jù)域編碼列表實(shí)例。Tagld數(shù)據(jù)域名稱數(shù)據(jù)類型字節(jié)大小0x0080中文簡(jiǎn)稱string/0x0081代碼/交易所商品代碼string/0x0082商品類別IDstring/0x0083交易所內(nèi)碼long40x0084行業(yè)種類long/0x0085舊商品內(nèi)碼long40x0086商品擴(kuò)展碼string/0x0087商品擴(kuò)展名string/0x0088中文名稱string/表4圖2為本發(fā)明對(duì)證券行情數(shù)據(jù)中數(shù)據(jù)域的具體編碼流程示意圖,下面將結(jié)合表l、表3、表4對(duì)行情數(shù)據(jù)中數(shù)據(jù)域的具體編碼流程給出一個(gè)具體的實(shí)施例來(lái)說(shuō)明。步驟201,從解碼后的數(shù)據(jù)中提取數(shù)據(jù)域。如表1所示,為提取后的商品600600第N筆數(shù)據(jù)的數(shù)據(jù)域組。包括數(shù)據(jù)域類別、數(shù)據(jù)域值和數(shù)據(jù)域編號(hào)。步驟202,到編碼列表中查看該數(shù)據(jù)域?qū)儆诟哳l率或低頻率的數(shù)據(jù)域。結(jié)合表3的編碼列表對(duì)表1中的各項(xiàng)數(shù)據(jù)域進(jìn)行分析。例如表1中數(shù)據(jù)域<table>tableseeoriginaldocumentpage0</column></row><table>其中數(shù)據(jù)域名稱"最高價(jià)"在表3中可以查到,所以該數(shù)據(jù)域?qū)儆诟哳l率數(shù)據(jù)域。如果數(shù)據(jù)域名稱在表4中可以查到,則該數(shù)據(jù)域?qū)儆诘皖l率數(shù)據(jù)域。步驟203,對(duì)于高頻率數(shù)據(jù)域使用一個(gè)字節(jié)對(duì)該數(shù)據(jù)域編碼;對(duì)于低頻率數(shù)據(jù)域,使用二個(gè)字節(jié)對(duì)該數(shù)據(jù)域編碼,其首字節(jié)的最高位為1。該步驟的編碼方法如上述按數(shù)據(jù)域的使用頻率分類的編碼方法,此處不再步驟204,到編碼列表中査看該數(shù)據(jù)域數(shù)據(jù)類型,并依據(jù)該數(shù)據(jù)類型對(duì)應(yīng)的Tagld對(duì)該數(shù)據(jù)域進(jìn)行編碼;對(duì)于數(shù)字類型的域值以整數(shù)的形式進(jìn)行編碼,對(duì)于其他如文字類型或特殊字符的域值其編碼后的字符串的最后一個(gè)字節(jié)為0。數(shù)字類型域值的數(shù)據(jù)域,例如表l中數(shù)據(jù)域項(xiàng)最高價(jià)<table>tableseeoriginaldocumentpage0</column></row><table>其數(shù)據(jù)域值為"7.84",該域值為數(shù)字類型,所以該域值以整數(shù)的形式進(jìn)行編碼后,用十六進(jìn)制可以表示為0x030x10。文字類型域值的數(shù)據(jù)域,例如表1中數(shù)據(jù)域項(xiàng)行業(yè)種類金融16其數(shù)據(jù)域值為"金融",該域值為文字類型,所以對(duì)該域值采用現(xiàn)有技術(shù)進(jìn)行編碼,編碼后得到的字符串,其最后一個(gè)字節(jié)為O,例如XXXXO。上述數(shù)據(jù)名稱為"最高價(jià)"的數(shù)據(jù)域的域值為7.84,該數(shù)值為數(shù)字類型的,以整數(shù)的形式換算為十六進(jìn)制后為0x030x10,其字節(jié)長(zhǎng)度為二個(gè)字節(jié)。到表2中查找到該數(shù)據(jù)域的數(shù)據(jù)類型為short。由此可以得到,數(shù)據(jù)域名稱為"最高價(jià)"、數(shù)據(jù)類型為short的數(shù)據(jù)域所對(duì)應(yīng)的Tagld為OxlO。則對(duì)數(shù)據(jù)域編碼后得到的數(shù)據(jù)為|0xl0|0x030x10。步驟205,將編碼后的數(shù)據(jù)依據(jù)數(shù)據(jù)域編號(hào)寫入預(yù)先分配的緩沖區(qū),組織成數(shù)據(jù)幀。將編碼后的數(shù)據(jù)域,依據(jù)表1中各數(shù)據(jù)域的數(shù)據(jù)域編號(hào),依次寫入預(yù)先分配好的緩沖區(qū)中,組成成數(shù)據(jù)幀,發(fā)送給數(shù)據(jù)接收方。將對(duì)于編碼后的數(shù)據(jù)域?qū)懭刖彌_區(qū)的順序,可以是隨機(jī)的,也可以有其他的排序方式。圖3為數(shù)據(jù)接收方對(duì)接收到的數(shù)據(jù)的解碼流程示意圖。下面結(jié)合表3進(jìn)行說(shuō)明。步驟301,接收數(shù)據(jù)發(fā)送方發(fā)送的數(shù)據(jù)。依據(jù)本發(fā)明的編碼方法,將數(shù)據(jù)發(fā)送方編碼后的數(shù)據(jù)組織成數(shù)據(jù)幀后的數(shù)據(jù)格式的實(shí)例如圖4所示。其中401—405分別為編碼后的數(shù)據(jù)域,401、402、405表示編碼后為4個(gè)字節(jié)數(shù)值的數(shù)據(jù)域,且該數(shù)據(jù)域的域值為數(shù)字類型;403表示編碼后為8個(gè)字節(jié)數(shù)值的數(shù)據(jù)域,且該數(shù)據(jù)域的域值為數(shù)字類型;404表示編碼后為5個(gè)字節(jié)字符串的數(shù)據(jù)域,且該數(shù)據(jù)域的域值為文字類型或特殊字符。406表示其他的多個(gè)數(shù)據(jù)域。數(shù)據(jù)接收方接收到所述數(shù)據(jù)發(fā)送方編碼后的數(shù)據(jù)。例如數(shù)據(jù)發(fā)送方編碼后的實(shí)際數(shù)據(jù)為0x100x030x100x040x000xB00xC0OxFB0x830x7D0x000x000x010x310x000x000x000x160x010x460xC00x260x5A0x580x020x50OxAC0x260x640xF00x000x6E0x000x800x6F0x000x000x700x320x000x000x000x710x000x000x000x000x350x01其中帶邊框的數(shù)據(jù)為Tagld,兩個(gè)Tagld之間的數(shù)據(jù)為以前一個(gè)Tagld為標(biāo)識(shí)的數(shù)據(jù)域的數(shù)據(jù)域值。步驟302—303,讀第一個(gè)字節(jié)作為Tagld,判斷最高位是否為1。對(duì)數(shù)據(jù)進(jìn)行解碼時(shí),先讀取一個(gè)字節(jié)作為Tagld,判斷其最高位是否為l,如果最高為1,說(shuō)明該數(shù)據(jù)域?yàn)榈皖l率數(shù)據(jù)域,則重新讀取前兩個(gè)字節(jié)作為該數(shù)據(jù)域的Tagld,執(zhí)行步驟304;如果最高位不是1,說(shuō)明該數(shù)據(jù)域?yàn)楦哳l率數(shù)據(jù)域,執(zhí)行步驟304。步驟304,依據(jù)編碼列表對(duì)數(shù)據(jù)進(jìn)行解碼。數(shù)據(jù)接收方使用與數(shù)據(jù)發(fā)送相同的分類編碼方式和編碼列表,對(duì)數(shù)據(jù)進(jìn)行將讀取的數(shù)據(jù)域Tagld為依據(jù)到編碼列表中查找對(duì)應(yīng)的數(shù)據(jù)域項(xiàng)。例如讀取到的Tagld為0x10,因?yàn)槠渥罡呶徊皇?,則到編碼列表3中查找到該Tagld對(duì)應(yīng)的數(shù)據(jù)域項(xiàng)為<table>tableseeoriginaldocumentpage0</column></row><table>則可以得到以下信息該數(shù)據(jù)域的數(shù)據(jù)域名稱為"最高價(jià)"、數(shù)據(jù)域值的字節(jié)大小為2。然后讀取Tagld為0x10之后的兩個(gè)字節(jié)0x030x10,依據(jù)現(xiàn)有技術(shù)對(duì)其進(jìn)行轉(zhuǎn)換,得到該數(shù)據(jù)域的數(shù)據(jù)域值。則該數(shù)據(jù)域解碼后的實(shí)際數(shù)據(jù)為最高價(jià)7.84。這樣依次對(duì)數(shù)據(jù)進(jìn)行解碼,直到得到解析完所有的數(shù)據(jù)。圖5為本發(fā)明證券行情數(shù)據(jù)編碼的系統(tǒng)結(jié)構(gòu)示意圖。該系統(tǒng)包括數(shù)據(jù)提供方501,用于為數(shù)據(jù)發(fā)送方提供證券行情數(shù)據(jù)。數(shù)據(jù)發(fā)送方502,用于將從數(shù)據(jù)提供方接收到的行情數(shù)據(jù)進(jìn)行解碼,從解碼后的行情數(shù)據(jù)中提取數(shù)據(jù)域,依據(jù)數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域進(jìn)行分類編碼,形成編碼列表,并將編碼后的數(shù)據(jù)發(fā)送給數(shù)據(jù)接收方;其中包括解碼器503,用于對(duì)接收到的行情數(shù)據(jù)依據(jù)數(shù)據(jù)提供方定義的數(shù)據(jù)格式進(jìn)行解碼。編碼器504,用于從解碼器解碼后的行情數(shù)據(jù)中提取數(shù)據(jù)域,依據(jù)數(shù)據(jù)域的數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域進(jìn)行分類,或者依據(jù)數(shù)據(jù)域的使用頻率和數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域進(jìn)行分類;然后形成編碼列表,對(duì)數(shù)據(jù)域進(jìn)行分類編碼,并將編碼后的數(shù)據(jù)域組織成數(shù)據(jù)幀。具體的編碼流程如圖2所示,不再贅述。發(fā)送設(shè)備505,將所述編碼后的數(shù)據(jù)發(fā)送給數(shù)據(jù)接收方。數(shù)據(jù)接收方506,用于接收數(shù)據(jù)發(fā)送方發(fā)送的數(shù)據(jù),并使用與數(shù)據(jù)發(fā)送方相同的數(shù)據(jù)域分類編碼方式和編碼列表對(duì)接收到的數(shù)據(jù)進(jìn)行解碼。具體的解碼流程如圖3所示,不再贅述。其中,數(shù)據(jù)接收方在處理數(shù)據(jù)發(fā)送方的行情數(shù)據(jù)時(shí),如果碰到無(wú)法識(shí)別的數(shù)據(jù)域編碼,例如,數(shù)據(jù)提供方對(duì)行情數(shù)據(jù)增加了新的數(shù)據(jù)域信息,數(shù)據(jù)發(fā)送方將該數(shù)據(jù)域信息進(jìn)行編碼后發(fā)送給了數(shù)據(jù)接收方,可是數(shù)據(jù)接收方的編碼列表中還沒(méi)有該數(shù)據(jù)域的信息,則數(shù)據(jù)接收方忽略該數(shù)據(jù)域,對(duì)于其他的數(shù)據(jù)域仍然依據(jù)編碼列表進(jìn)行解碼。數(shù)據(jù)接收方與數(shù)據(jù)發(fā)送方可定期通過(guò)交換信息的方式核對(duì)編碼列表的信息,以解決上述問(wèn)題。在數(shù)據(jù)傳輸過(guò)程中,如果數(shù)據(jù)幀長(zhǎng)度超過(guò)規(guī)定的閾值,則數(shù)據(jù)傳輸系統(tǒng)可自動(dòng)啟用壓縮功能,對(duì)數(shù)據(jù)幀進(jìn)行壓縮,壓縮功能支持最多3種壓縮算法,現(xiàn)有的壓縮算法如zlib、bzip2等;另外還可以對(duì)數(shù)據(jù)幀進(jìn)行加密,加密功能支持最多3種加密算法,現(xiàn)有技術(shù)的加密算法如DES、3DES、Blowfish,也可以使用非對(duì)稱加密算法,如RSA。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。權(quán)利要求1.一種證券行情數(shù)據(jù)的傳輸方法,數(shù)據(jù)提供方以數(shù)據(jù)域的形式向數(shù)據(jù)發(fā)送方提供行情數(shù)據(jù),其特征在于,該方法包括以下步驟a、數(shù)據(jù)發(fā)送方依據(jù)數(shù)據(jù)提供方定義的數(shù)據(jù)格式對(duì)接收到的行情數(shù)據(jù)進(jìn)行解碼;b、數(shù)據(jù)發(fā)送方從解碼后的行情數(shù)據(jù)中提取數(shù)據(jù)域,依據(jù)數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域進(jìn)行分類,形成編碼列表,對(duì)數(shù)據(jù)域進(jìn)行分類編碼;c、數(shù)據(jù)發(fā)送方將所述編碼后的數(shù)據(jù)發(fā)送給數(shù)據(jù)接收方;d、數(shù)據(jù)接收方使用與數(shù)據(jù)發(fā)送方相同的數(shù)據(jù)域分類編碼方式和編碼列表對(duì)接收到的數(shù)據(jù)進(jìn)行解碼。2、根據(jù)權(quán)利要求l所述證券行情數(shù)據(jù)的傳輸方法,其特征在于,步驟b所述數(shù)據(jù)域至少包括數(shù)據(jù)域名稱、數(shù)據(jù)域值和數(shù)據(jù)域編號(hào)。3、根據(jù)權(quán)利要求l或2所述證券行情數(shù)據(jù)的傳輸方法,其特征在于,步驟b進(jìn)一步包括,將編碼后的數(shù)據(jù)域依據(jù)數(shù)據(jù)域的編號(hào)組織成數(shù)據(jù)幀;步驟c中將所述數(shù)據(jù)幀發(fā)送給數(shù)據(jù)接收方。4、根據(jù)權(quán)利要求l所述證券行情數(shù)據(jù)的傳輸方法,其特征在于,步驟b所述在按數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域分類之前進(jìn)一步包括將數(shù)據(jù)域依據(jù)其使用頻率進(jìn)行分類。5、根據(jù)權(quán)利要求4所述證券行情數(shù)據(jù)的傳輸方法,其特征在于,步驟b中,所述對(duì)數(shù)據(jù)域進(jìn)行分類編碼包括對(duì)于高于指定使用頻率的數(shù)據(jù)域用相對(duì)少個(gè)字節(jié)進(jìn)行編碼,對(duì)于低于指定使用頻率的數(shù)據(jù)域用相對(duì)多個(gè)字節(jié)進(jìn)行編碼。6、根據(jù)權(quán)利要求5所述證券行情數(shù)據(jù)的傳輸方法,其特征在于,步驟b進(jìn)一步包括對(duì)所述相對(duì)多個(gè)字節(jié)編碼的首字節(jié)設(shè)置一個(gè)或一個(gè)以上標(biāo)志位。7、根據(jù)權(quán)利要求1所述證券行情數(shù)據(jù)的傳輸方法,其特征在于,步驟b進(jìn)一步包括對(duì)數(shù)據(jù)域中數(shù)字形式的數(shù)據(jù)域值以整數(shù)的形式進(jìn)行編碼;對(duì)于文字形式或特殊字符的數(shù)據(jù)域值,其編碼后的字符串的最后一個(gè)字節(jié)為0。8、根據(jù)權(quán)利要求1所述證券行情數(shù)據(jù)的傳輸方法,其特征在于,步驟b進(jìn)一步包括數(shù)據(jù)發(fā)送方依據(jù)所述編碼列表對(duì)數(shù)據(jù)域設(shè)置唯一的標(biāo)識(shí);步驟d中數(shù)據(jù)接收方對(duì)于接收到的數(shù)據(jù)讀取其唯一標(biāo)識(shí),依據(jù)與數(shù)據(jù)發(fā)送方相同的編碼列表對(duì)數(shù)據(jù)進(jìn)行解碼。9、一種證券行情數(shù)據(jù)的傳輸系統(tǒng),其特征在于,包括數(shù)據(jù)發(fā)送方,用于將從數(shù)據(jù)提供方接收到的行情數(shù)據(jù)進(jìn)行解碼,從解碼后的行情數(shù)據(jù)中提取數(shù)據(jù)域,依據(jù)數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域進(jìn)行分類編碼,形成編碼列表,并將編碼后的數(shù)據(jù)發(fā)送給數(shù)據(jù)接收方;數(shù)據(jù)接收方,用于接收數(shù)據(jù)發(fā)送方發(fā)送的數(shù)據(jù),并使用與數(shù)據(jù)發(fā)送方相同的數(shù)據(jù)域分類編碼方式和編碼列表對(duì)接收到的數(shù)據(jù)進(jìn)行解碼。10、根據(jù)權(quán)利要求9所述證券行情數(shù)據(jù)的傳輸系統(tǒng),其特征在于,所述數(shù)據(jù)發(fā)送方包括解碼器,用于對(duì)接收到的行情數(shù)據(jù)依據(jù)數(shù)據(jù)提供方定義的數(shù)據(jù)格式對(duì)數(shù)據(jù)進(jìn)行解碼;編碼器,用于從解碼器解碼后的行情數(shù)據(jù)中提取數(shù)據(jù)域,依據(jù)數(shù)據(jù)域值字節(jié)的大小或者依據(jù)數(shù)據(jù)域的使用頻率和數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域進(jìn)行分類,形成編碼列表,對(duì)數(shù)據(jù)域進(jìn)行分類編碼;發(fā)送設(shè)備,將編碼器編碼后的數(shù)據(jù)發(fā)送給數(shù)據(jù)接收方。全文摘要本發(fā)明公開了一種證券行情數(shù)據(jù)的傳輸方法,數(shù)據(jù)提供方以數(shù)據(jù)域的形式向數(shù)據(jù)發(fā)送方提供行情數(shù)據(jù),其特征在于該方法包括數(shù)據(jù)發(fā)送方依據(jù)數(shù)據(jù)提供方定義的數(shù)據(jù)格式對(duì)接收到的行情數(shù)據(jù)進(jìn)行解碼;數(shù)據(jù)發(fā)送方從解碼后的行情數(shù)據(jù)中提取數(shù)據(jù)域,依據(jù)數(shù)據(jù)域值字節(jié)的大小對(duì)數(shù)據(jù)域進(jìn)行分類,形成編碼列表,對(duì)數(shù)據(jù)域進(jìn)行分類編碼;數(shù)據(jù)發(fā)送方將所述編碼后的數(shù)據(jù)發(fā)送給數(shù)據(jù)接收方;數(shù)據(jù)接收方使用與數(shù)據(jù)發(fā)送方相同的數(shù)據(jù)域分類編碼方式和編碼列表對(duì)接收到的數(shù)據(jù)進(jìn)行解碼。本發(fā)明還公開了一種證券行情數(shù)據(jù)的編碼系統(tǒng),提高了對(duì)行情數(shù)據(jù)的數(shù)據(jù)格式變化的適應(yīng)性,加快了用戶終端的數(shù)據(jù)更新速度。文檔編號(hào)H04L29/06GK101267281SQ20081010502公開日2008年9月17日申請(qǐng)日期2008年4月25日優(yōu)先權(quán)日2008年4月25日發(fā)明者劉志明,全周,君姚,徐立中,儀楊,王小龍申請(qǐng)人:北京中企開源信息技術(shù)有限公司