資訊系統/架構/產品‎ > ‎KGQ‎ > ‎GMDS相關文章‎ > ‎GMDS‎ > ‎

TSHS (Tag Stream History Server)

張貼者:2011年2月27日 下午4:51Wei-Xiuang Wang   [ 已更新 2020年9月25日 下午12:28 ]

1. 以小時為分割(Session)單位,將區間中所有資訊封包由1開始依序打上序號(SeqNo),以 Session + SeqNo 作為串流的定位方式

2. 當Client正確連上Server時,Server會發出“Hello~”訊息, Client可以此為觸發, 發送訂閱訊息Session與SeqNo, 內容為 “YYYYMMDDhh0000,########"

3. Session內容為"YYYYMMDDhh0000",也就是日期加時間,但以整數小時為原則作為識別,SeqNo則是8碼的HEX序號值(DWORD)

4. 當Session內容於Server端為正確存在時,Client正確訂閱到資訊串流,Server依據其指定之序號下一筆開始提供資訊,若Client指定之序號超過該Session最大值則由1給起。
    如果Client所訂閱之Session不存在,將無法接收到任何資料。

5. Server變更Session時會通知Client,Client接收此訊息應予記憶,作為之後重新連線回補時的要求依據

6. Server發送的每筆資訊封包皆有序號(SeqNo),Client收到資訊封包皆須將序號予以記憶,作為之後連線回補的要求依據

7. 第一次連線尚無任合記憶的回補依據時,可針對本身需求,直接指定所需的資訊時間點發送訂閱即可,例如"20110301060000,00000000"則將由2011/3/1 06:00:00開始接收資料

8. 當訂閱的資料皆回補完成,自動進入Realtime狀態,同第5.第6.點,Client仍須將即時收到的Session和SeqNo記憶,作為重新連線時的回補點要求依據

9. 搭配 API - PktEvCdll.dll 可以快速建立應用程式設計,可參考 TSHS-Pats的API程式範例

10. TSHS於啟動時,如果上游沒有資訊則不對下游啟動串流服務

11. TSHS規格的發展性, 目前以 YYYYMMDDhh + SeqNo 作為定位標記, 可再擴展為能使用 YYYYMMDDhhmms 針對指定時間點的第一筆作為定位方式

12. 透過TSHS-Gateway可延伸TSHS網路服務架構

13. 透過TSHS-GWMS (Gateway Merge Server) 可將TSHS資訊經合流後提供服務

14. 增加 KGQ Client 連線支援

TSHS-TfsRaw 支援將TFS系列的資訊改由TSHS方式服務
TFS系列資訊架構, 參考 RawData資訊架構

TSHS-UniDbf 支援將DbfTS系列的資訊改由TSHS方式服務

TSHS-RMDS 透過RMDS-Proxy將Reuters RSSL的資訊來源改由TSHS方式服務,同時提供商品查詢介面
RMDS欄位代碼可以查照原廠字典檔

TSHS-Gateway 可延伸所有TSHS服務, 包括 TSHS-TfsRaw , TSHS-UniDbf , TSHS-RMDS 與 TSHS-Gateway 本身

TSHS-GWMS ( TSHS-GatewayMergeServer ) 可將指定之多個TSHS資訊源作合流提供合流後之TSHS服務

TSHS應用於Kway-OBGateway資訊內容時的回補傳輸數據參考
OBGateway的資訊內容於壓縮的部分可以約估為20%, 而傳輸速度也會因為Client端的接收處理能力而有所不同,
這個範例的平均資料傳輸速率為 (922MB / 2分19秒) = 6.663 MB/sec,
將壓縮的部分計算計進去則約為1/5, 實際傳輸速率約 1333 KB/sec (使用頻寬可約估為 14000 Kb/s)
資料封包數量則為 1299485, 平均發送封包頻率為 9348/s
每一封包不計本傳輸架構的所設計的Overhead為723Bytes再加4Bytes的編列序號為固定大小
接收端的設計則是每個接收Cycle中,除了將每一封包逐筆存檔並產生Packet Tick索引資料,而系統設計為與上游也能有不同步的應用方式尚須額外逐筆保存上游接收的序號進行存檔
請注意!
上述傳輸限制來自於Client端本身設計的接收速度,並非Server端給予限制!! 如有多個相同環境之Client, 每一Client皆能達到上述的傳輸效率!!



可參考行情設計概念 Quote-Manager for Capital INSKW


PktEvCdll API 連線 TSHS-UniDbf / TSHS-RMDS 的處理範例
//定義一個簡單結構便於處理Tag-Stream內容



PktEvCdll API 連線 TSHS-TfsRaw 的處理範例


PktEvCdll API 連線 RMDS-Proxy 的處理範例


KGQ-Client 連線 TSHS 的處理範例


註解