基于STEP协议的证券行情分析系统(LEVEL-2)的研究与实现

更新时间:2023-06-08 06:36:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

贵州大学

硕士学位论文

基于STEP协议的证券行情分析系统(LEVEL-2)的研究与实现

姓名:刘成德

申请学位级别:硕士

专业:计算机软件与理论

指导教师:李祥

20080301

摘要

中国经济高速发展,中国证券市场越来越受到国家的重视,中国证券市场变得壮大和成熟,证券市场的技术也得到了很大的发展。然而我国证券市场行情的分析还存在着很大的问题。沪深证券交易所和券商和其他机构间都采用各自设计的非标准化的接口,数据信息交换模式不统一,编码方式不统一,接口定义不统一,业务数据流程不统一,存在对业务创新的适应性较差、适应成本高,不同市场间难于有效交换信息等问题。交易系统的改革也带动了行情分析系统的改革和提高,证券市场需要一个高质量、快速、大信息量的行情分析系统。这就需要引入国际化的信息交换协议。

在国外,一些成熟的证券市场和银行系统已经有90%在使用FⅨ(FiIlancialInformationExchange金融信息交换)协议,纽约交易所、泛欧交易所(EⅥ的闷疆1限墨西哥交易所、芝加哥期权交易所(ClIoE)、新加坡交易所、澳大利亚交易所等均支持FIX协议。可以说FIX协议已经相当完善、成熟、安全的。中国证监会从1998年开始就计划和讨论证券行业的电子信息交换标准化,历经8年的研究,终于推出了适合我国证券市场的一种基于FIX4.4协议的瓣协议。

Exchange.Protoc01)证券交易数据交换协议,该协议是

在国际上通用的金融信息交换协议FIX4.4的基础上结合我国证券市场的实际情况制定出来Trading‘S1曰’协议:(Securities的标准协议,是国家金融“十五”科技攻关任务.于2004年2月,STEP通过了国家金融标准化委员会专家会议审核,正式成为国家标准,并定名为《证券交易数据交换协议》。证券行情分析系统的架构目前可以分为下面三种类型:

A)-基于Clic邮ervicc模式的架构

C/S模式的优势是所占用的资源较少,速度快,传输质量较高。

聊:基于Brower/Service模式的架构

.端机器性能要求比较高。

C):基于MobRe/Service模式的架构.B/S模式的优势是分布广,简单易用,可供大量的人同时使用。其劣势是对服务器

lI/S模式的优势是容易普及,使用方便,但是其致命的劣势是成本太高、速度慢、

信息量小.

本文采用C/S架构模式,基于国家标准STEP协议,在通信过程中采用T‘珊口、UDP协议,详细地介绍了证券行情分析系统的整体架构、系统软件体系结构、系统内部进程间通信设计、服务器端的布局和架设、客户端设计和结构及服务器端和客户端通信、功能模块的划分等,成功实现了新一代行情分析系统(LEⅦI.-2)。该系统已经在市场上成功的应用.本文所做的主要工作、技术难点与创新点如下:

1.对国家标准Jli,I.0022—2004STEP(SecuritiesTradingExcha日ge跏to∞1)协议进行了分析和研究。

2.对上证所提供的STEP引擎进行了分析和研究,并且对F'LX(Financialj

STEP协议的LeveL2DCD转码机,对上证所传来的行情进行解析、存盘、、发布。InformationExchange)协议的开放源代码进行研究,参考FIX协议的源代码开发出了适合自己的基于

3.对证券行情分析系统服务器端的架构进行了研究,服务器架设在不同的区域,如何协调认证服务器、均衡服务器和数据服务器.达到流量的最大化和通信的最优化是一个很重要的问题。

4.参与了证券行情分析系统客户端的架构设计、功能模块的划分,并编写了部分代码、对代码进行了优化。使系统具有灵活性、可配置性、可扩展性,重用性,从系统设计的角度实现设计的模块化和可扩展的开放性。

5.高效的进程池模式设计:针对系统的特点,即系统在生产过程中存在大量的数据访问请求,系统通过建立进程缓冲池,来减少创建及销毁时的资源消耗,提高系统效率。

6.网络通讯接口API的封装:基于系统体系结构设计的考虑,为了实现软件体系结构的层次化,通讯层、应用层及业务层分开,系统对基于T(卫皿协议的socket底层通讯的网络接口进行了合理封装,封装后作为系统底层库函数提供给应用层程序调用,自己对Socket包的打包和拆包的处理。

7.Win下网络编程:设计基于硎P协议的通讯平台。由于系统设计过程中采用多

服务模式,所以需要搭建一个专门用于各个服务之间交换信息的通讯平台,通讯方式选用异步通讯模式来实现。同时要考虑是使用长连接还是短连接。如果使用长连接,发送前需要考虑是否连接问题。根据系统不同业务的需求和性能指标的规定来确定具体采用那种连接方式。

8.心跳包的设计:证券行情服务器端和客户端要保持长时间的通信,很难判断客户端由于某种故障和服务器端断开链接,因此采用了如QQ、MSN通用的通信检测方式,服务器端以固定的频率向客户端发送一个简单的心跳包,如果长时间没有回应,就将该客户端从服务器端断开,经过长时间的试验,该系统的心跳包的频率为30秒/次。

9.消息队列及其消息队列的维护:在客户端有大量的窗口消息事件、键盘消息事件、网络消息事件,这些消息我们统一放到一个消息队列里,消息队列是为了保证多个进程之间的同步运行和对事件的有效管理。消息维护是为了优化消息队列,使其达到较高的工作效率。

lO.对服务推和拉模式的研究:在通信的过程中客户端可以向服务器端请求信息,而服务器端也可以无请求的条件下推送信息。

11.系统的接口定义和设计:行情信息都是按照一定的结构体发送到客户端的,因此对.于不同的行情信息需要不同的结构体,又需要一定的协议来约定这个结构体的作用和所包含的信息,我们设计了二级消息模式来达到这样的功能。

目前,本系统已经在我公司使用,系统运行稳定,成为公司新的增值点。

作者在校期间,在《计算机科学数字与方程》上发表论文一篇。

关键字:STEP协议、STEP引擎、证券行情、行情分析系统、LEVEL-2、T(=P/豫、UDP、

kvel2DCD、DataCenter、视图、网络消息、K线图、Socket

中图分类号:5

Abstraot

ChiIla*sra#deconomicdevelopment,China'ssecuritiesmarkethasbeeugainingnationalattention,hasbec轮moChina'ssecuritiesmarketsgrowandmature,andthetechnologystock—markethasalsobeenalotofdevelopmem.However,thepricesofChi腿’ssecuritiesmarketstillbigproblem.ShanghaiandShenzhenstockexchangesandbrokeragefirmsand—otherinstitutionshaveadoptedtheirowndesignofthenon-standardizationofinterfaces,Dataexchangemodelarenotunified,codingnotunifiedinterfacedefinitionsarenotunified,business.dataprocessesarenotunified,theexistenceoftheadaptabilityofpoorbusinessinnovation,tothehighcoStofdifferentmarketsdi伍cultissuessuchastheeffectiveexchangeofinformation.-11地reformofthetradingsystemwasdrivenbythemarketanalysisofthereformofthesystem,andimprovingthestockmarketneedsahi曲一quality,rapid,largeamountofinformationofmarket-

ofinternationalinformationexchangeprotomls.

stockmarketandthebankingsystemhasbeen90%intheanalysissystem.nisrequirestheintroductioncountries,sonicmaturehlforeign

ll∞ofvax(r-inan,.:ialInformationExchangefinancial

.YorkStockExchange,Pan-Europeaninformationexchange)protocol,theNew

Exchange,theAustralianStock

besaidtoExchange(EURONEXT),MexicoStockExchange,thehavebeenvery

tOChicagoBoardoptiomExchange(CBOE),SingaporeStockExchangeandSOsupporttheFIXProtoc01.FIXprotocalcancomprehensiveandmature,safe.ChinaSecuritiesRegulatoryCommissionfrom1998

—planninganddiscussiononthethesecuritiesindustrystandardizationoftheexchangeofelectronicinformation,aftereightyearsofstudy,hasfinallylaunchedsuitsChina'ssecuritiesmarketbasedontheSTEPprotocalFIX4.4protocal.

STEPprotocal:(Se饥ritiesTradingExchangeProtocoOsecuritiestransactionsdataexchangeprotocaLTheprotocalisconln均nintheintemati∞alexchangeoffinancialinformationFIX4.4protocalonthebasisofthe9既:lllitiesmarketinlightofCh/na'sactualsituationworkedoutinthestandardprotocal,isthecounlIytsfinancial”15”scientificandtechnologicaltasks.nFobmary2004,STEPstandardizationbythestatefinancialauditexpertmeetingoftheCommissiontObeecomenationalstandards,andwillbecalled(securitiestransactionsdataexchangeprotocal}.SecuritiesmarketanalysisofthestrucUL他ofthecurrentsystemc柚bedividedintothefollowingthreecategories:

A):Based011Client/sefvi∞modelstrueturo

C/Smodeisoccupiedbytheadvantagesoffewerresources,speed,highqualitytransmissionB):BasedonBrower/ServicemodelstrucUlre

B/Smodeladvantageiswidelydistn'buted,easytouse,availableforalargenumberof

peopleatthe嗣lnletime.Itsdisadvantageistheserver-sidemachineperformancerequirementsofrelativelyhigh.

C1:BasedonMobfle/Servicemodelstructure

M/Smodeiseasilytheadvantagesofuniversal,easy-to-use,butitsfataldisadvantageistoocostl'fslow,smallamountofinformation.

Inthispaper,usingC,Sframework,basedonnationalstandards¥旺磐protocal,jnthecommunicationprocessused1CP|IP,UDP,detailsonthesecuritiesmarketoftheoverallsystem6

architecture,systemsoftwarearchitecture,inter-pro麟communicationsystemdesign,thelayout

communications,suchandtheserversetup,designandstructureoftheclientandsolverandclient

asthedelineationoffunctionalmodules,angwgenerationofthesuccessfulrealizationofmarketanalysissystem(LEVEL一2Xthesystemhasbeensuccessfulinthemarketapplication.Inthispaper,themajorworkdonebythetechnicaldifficultiesandinnovationpointsaleasfollows:1)NationalstandardsJ剐H)0=挖-2004STEP(SecuritiesTradingExchangeProtoc01)protocolwereanalyzedandstudied。

2)ProvidedbytheShanghaiStockExchangeSTEPengineswotoanalyzedandresearch,andtimFix(Financial

sourceInformationExchange)protocolofopcn-sourceresearch,referenceFIXprotocoloncodedevelopeda.suitableprotocalbasedtheLevel2DC黔toSTEPcodemachinesontheShanghaiStockExchangeatII碡tothemarketanalysis,archiving,publishing.

3)Onthesecuritiesmarketanalysissystemserver-sidestructurewasstudied,theSolversetupindifferentregions,howtocoordinateauthenticationServer,balancedserveranddataserver,andtomaximizetheflowofcommunicationsoptimizationisaveryimpoctantissue.

4)Involvedinthesecuritiesmarketanalysis

hasthesystemclientarchitecturedesign,thedelineationoffunctionalmodules,andthepreparationofsomecode,thecodehasbeenoptimized.Thesystemflexibility,confignrability,scalability,reusability,fromtheperspectiveofsystemdesign

designofthemodularandsealableopen.toachievethe

5)Efficientmodeldesignprocess

thereare趣lotofdataaccessPool:Thesystemfeaturesthatsystemintheproductionprocessrequests,theprocesssystemthroughtheestablishmentofabuffertanktoreducethecreationanddestructionoftheconsumptionofre¥otff淄andimprovesystemefficiency.

6)Networkcommunications

considerations,ininterfaceAPIPackaging:Basedonthesystemarchitecturedesignordertoachievethelevelofsoftware

applicationlayerandlayeroperationsseparatesystems

ofthesocketnetworkinterfacefor

functionasaaarchitecture,communicationslayer,basedon气嫂}IPcommunicationsbottombottomoftimreasonablepackage,thepackageafterthesystemtotheapplicationlayertoprovideprocedurescalledthemselvesonthesocketpacketprocessingpackageandunpacking。

7)W乜NetworkProgramming:designbasedontheTCP/IP

theprocessofdesigningsystemsusingmulti-servicemodel,瓣itiscommunicationsplatform.Becausenecessarytobu濉aspecializedservicefortheexchangeofinformationbetweenthevariouscommunications

modetoachieve.Weplatforms,meansofcommunicationchosenasynchronouscommunication

llse

toshouldalsoconsidertheuseoflongorshortconnectinglink.Iftheofconnections,sendingthethesystemofdifferentformerneedtoconsiderwhetherconnectivi锣problems.According

businessneedsandperformancerequirementsusedtodeterminethespecifickindofconnection.8)Heartbeatpackagedesign:securitiesmarketserverandclienttomaintainlengthy

isdifficulttojedgebecauseofafaultclientandserver-sidedisconnectlinks,communication,it

usedasQO,MSNcommoncommunicationstesting,Sorver-sidewith

no

aafixedfrequencysenttotheclientasimpleheartbeatpackets,fflongerrespond轮theclientdisconnectfromtheserverside,afteralongperiodoftesting,thesystem'sheartbeatpacketsfrequency30seconds,th.9)Messagequeueandmessagequeuemaintenance:in

events,keyboard

messagequeueiseventstoensul!Ielargenumberofclient-sidewindownewsanews,networknews,thenewsweputunifiedmessagequeue,thethatthevariousprocessessynchronousoperationandtheeffective

tomanagementoftheincident.NewssafeguardisoptimizetheMessageQueuetoachievehigher7

efficiency.

to)Pushand

sciverpullontheservicemodeofstudy:Communicationintheprocessoftheclienttothesidecanrequestinformation,andnoserver-sidecanalsorequesti越ormationundertheconditionsPush.

11)砸蝣interfacedefinitionandsystemdesign:prices

structureareaccordingtocertaininformationsenttotheclient,SOdifferentpricesfordifferent

tOinformation翻}豳of妞struc程tre,theofthecontainedinformation,Weprotocalwillalsoneedagreethattheroleandstructure

designedasecondarysourcemodeltOachievethisfunctionality.

Currently,thesystemhasbeeninuseOianlongHigh-T。chCompany,stableoperation,毫

newvalee-addedcompaniespoint..

Authoratschool,On(computersciencefiguresandequations)apaperpublishe&

Keyword:筑秘protocM,STEPengine,thesecuritiesmarket,marketanalysissystem.班M医。2,TCP/IP,UDP,Level2DCD,DataCenter,View,networknews,K-map,Socket8

原创性声明

本人郑重声唠:所呈交的学位论文,是本入在导师的指导下p独立进行研究所取褥的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究在做出重要贡献的个人和集体,均已在文中以明确方式标明’。本人完全意识到本声明的法律责任由本人承担 。.

论文作者签名:鲎j攀鲑2..,礴期:至QQ盎,£旦..

关于学位论文使用授权的声明

,本人完全了解贵州大学有关保留、使用学位论文的规定,同意学校保留或向国家有关部门或机构送交论文的复印件和电予版,允许论文被查阅和借阑;本.人授权贵州大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或共他复制手段保存论文和汇编本学位论文。

论文作者签二\.奎s墼师签名:剑期:2QQ星生互屋(保密论巢在解密后应遵守此规定)。

论文作者签名\.奎j瞰师签名:剑’期:垫呦

第一章绪论

中国证券市场是当今国际市场中最有潜力、最受瞩目的新兴资本市场之一.为支持中国证券市场高速发展,加速中国资本市场国际化的进程,中国证券市场在国外通用协议FIX(FinancialInformationeXchange)的基础上研究制定了有自主知识产权的适合中国市场的《证券交易数据交换协议》———.sectlritiesTradingExchangeProtocol(英文简称STEP),这是我国证券业发展史上的重要里程碑、是我国证券交易技术的一大创新,汇集了我国证券市场广大参与者的集体智慧,它的实施和应用将提升两大交易所和所有证券市场参与者的技术和业务水平,促进我国证券行业标准化、国际化,为提升我国在国际证券市场的竞争力打下坚实基础。

目前国际上所用到的证券协议有:FIX协议、刚佃盯,IS015022,XBRL,IS矾等标准.1.1:STEP协议的制定背景

在我国证券市场快速发展的环境下,市场对业务和技术创新的需求不断提高,要求建立一个统一高效的交易技术体系。而沪深证券交易所和三家期货交易所与券商和其他机构间都采用各自设计的非标准化的接口,数据信息交换模式不统一,编码方式不统一,接口定义不统一,业务数据流程也不统一,存在对业务创新的适应性较差、适应成本高,不同市场问难于有效交换信息等问题。我国资本市场对外开放,要求交易技术系统具有与境外市场相连接的能力,提供境外券商低成本接入的渠道,以适应投资者跨境交易需求和提高我国证券市场在国际上的竞争力.基于这些问题和需求,中国证监会从1998年开始就计划和讨论证券行业的电子信息交换标准化,并频繁组织包括沪深两所在内的国内各主要证券机构对制订证券技术标准问题进行热烈讨论。基于以下考虑,决定采用国际标准FIX协议,在此标准基础上综合我国证券市场需求,制定我国证券交易数据交换标准:

已具备引入国际标准的条件.

(2)FIX协议是实现证券市场参与主体间信息实时交换的国际标准协议,在国际证券市场得到广泛应用。该协议于1993年建立,初期主要在美国券商间应用,1996年推向欧洲,1998年推向日本,2000年推向亚洲其他地区,影响逐步扩大,至今全球已有数千家金融机构采用了FIX协议。纽约交易所、泛欧交易所(EURONEXT)、墨西哥交易所、芝加哥期权交易所(cBoE)、新加坡交易所、澳大利亚交易所、印尼交易所、众多ECN公司均支持FIX协议,东京交易所、纳斯达克(Nasdaq)也在计划采用FIX协议。

(3)HX协议所支持丰富多样的业务种类和证券品种,具有灵活的结构,使其对业务支持具有高度的灵活性。可以满足我国证券市场业务创新和技术创新的需求。。(1)我国证券市场信息技术的发展迫切需要制定符合国际标准的开放的协议,且交易技术环境

1.2-STEP协议的制定思路和原则

由于我国证券市场和国际主要证券市场存在业务差异,国际标准FIX协议和中国两大证券交易所现有的数据交换接口有差别,中国特色的业务难以在FIX协议中找到支持,FIX协议9

中多数效务在孛图不具有。蒸于中国特色盟务、与国际接轨、囊用戎熬技术等因素的综合考虑,STEP工作小组经过充分讨论、征求多方意见后。确定了STEP协议制定思路:立足于中国特色业务的需求,以经过验证、技术成熟的FIX最避版本为基础,编制属予中国证券行业的、兼容蕈际标准的涯券交易数据交换协议。搬据此思路,工俸夺缀翻定了以下编制原则:

(1)采用豳际标准FIX4.4。完全采用FIX协议会话层体系架构,以FIX4.4为基础,保留协议灵活性高、荔扩展的特性。

(笏编制适应我国鼗务特殊性的STEP协议。向FIX组织率请中国证券市场专用的域号,增翱中国证券市场特有的业务的域号及相关域值,同时保证所取域值不与FIX协议发生冲突,消息和域的定义兼容FIX协议,从而保持STEP协议对国际标准的兼容互连性。

(3》协议能够支持上海证券市场、深蓼l证券市场鹃现有监务,首先满足溺舟汪券市场的需要。FIX协议具有、但中国市场近期没有的业务,保留扩展余地,初期不予支持,使协议标准简单易用,但又不损失与圈际标准的兼容性。

1.3:STEP协议的制定的意义

STEP协议从早期研究到近期出台,历时近五年,凝聚了来自于中国证监会、沪深证券交易所、期货交易所、证券公司和基金管理公司等单位的业务技术骨干和行业rII专家的集体智薏移心盘。2001年,在充分研究行韭需求和国际标准的基础上,巾国证监会组织行照有关单健向国家科技部申请承担了国家金融”十五”科技攻关任务,STEP协议为课蹶之一。STEP的推出,适应了嗣内证券市场信息技术发展的迫切需求,迈出了走向统一证券技术体系的重要一步,为国蠢涎券交易标准诧接曩提供了统一的援范,将积极促进市场参与者嚣对多个交易所、多通道、多协议接口问题的解决。

从我唇证券市场发展历史来看,业务变化频繁,对相应的技术要求极高,很多的业务实现复杂魅需蒹颥前后,这样豹市场环境导致的接霸升级也使市场参与者不堪重受。寻求一个因业务需求变化,但又能最低程度的影响技术系统接口一壹是业内技术管理者面对的巨大难题。STEP为解决这些难题丽制订,拥有遁应业务变化韵灵活性。

国逡证券市场的繁荣发展带来7业务技术酶多样性和复杂健,市场参与者的技术投资越来越大,技术风险越来越得到重视,统一的接口标准会降低技术风险,从而减少整个行业的运行风险。备证券交易所和其他市场参与服务机构采用该标准后,将会绘行业带来题大的效益,.对于广大市场参与者来诫采期符合标准的接叠系统,除降低技术风险之外,也将会降低系统开发和维护成本。

随着Q班l的安施,与国际业务交往a益增加,我国市场参与者将面l缝着国际的合作与竞争。麟协议是国际上普遮采厢的接西标准,STEPiE是以默协议为基础,结合中溺实际情况而制订的。在工作过程中,与FIX国际组织进行了充分的交流,确保STEP与FIX的兼容性,同时,也对FIX的完善和发展产生7积极影响,满足了我黧证券业国际纯的嚣求。楚露言之,STEP的推出对予降f翻孥煦交易成本、减少运行风险、提高市场效率具有重要惫义,是我阑证券业业务技术发展的必然结果,在合适的时间,在业内大环境下孕育而生,是国内证券交易技术发展的重大璧程碑。

1.4:证券行情分析系统的发展和趋势

随着中国加入盯0,中国经济逐渐与世界经济接轨,中图在很多方面愿意同世界保持同步,吸取世界上先进的技术,中国是市场经济国家,很多企业在发展的过程中都遇到了资金10

短缺这个瓶颈,因此企韭的融资成了企业保持健康、快速发展的重要手段,因此中国选择了世界上通用的融资方法,就是上市,上市公司不但可以进行大量的融资来作为企业发展的版.动力,势且可以提菇企业的鳃名度,健企业财务透明化,露以专业管理、集合投资、分散风险、秘籁共享、风险共摆。一旦上市就进入一个新的激烈的竞争环境,企韭要想生存下去赫须提高自身的业绩,逐渐使企业进入良性竞争的环境。从1粥0年第一次股票发行算起,这段历史可划分为三个对期,鼯1980年至l∞1年麓复兴秘起步时期,王992年至睁99年羽扩容秘成长时期,2000年至今的规范和发展时飙在这二十余年中,我豳股票市场可以说是在发展中规。范、在规范中发展,尽管出现了这样那样的曲折,但总的来说。是不断发展壮大和不断完善的,段票市场的复兴和发展与我蓬经济体制携改革基本形成了一种良性的置动关系。

要想炒股,必须有一个很好的工罴帮你看股祭的行情爱势,帮你分析股市的行情,给你提供最新的市场消息,让你在第一时间掌握最新的信息,这样才可以比其他人先做出决定,可以说殿帝如战场,差1移都不~样局覆,基诧一个努酶诞券分析软佟是必须的。然恧纵观股票市场的发展史,证券分析系统可l:盂说有了一个飞跃的发展。

A)人工记录模式

在最初产生敦票蘼时候,都是通过入王记录,公开藏价鳃模式进行交易,然磊把交易的结果写捌一个黑板上,很多入围绕着这个黑板看股市的行情,当然这个只是原始盼模式,魁t只有少数的企业为了融资,并且买股票的人很少,交易过程中的手工操作意味着显著的时间延迟帮人为错误.

B)电报、电话通信模式∥。.

随着技术的创新,电报、电话的产生,交易模式发生了很大的变化,股民可以通过避黪‘逶信工其把交易指令绘委托入,诖委托入给锯进行操露,避行买入、卖出、撤单等,这种模式虽然有了显著的提高,但憝一些交易过程仍然需要人工参与,竞价系统缓慢。股民看到的行情不是最新的,并且由于条件的限制,甚至肴不到当天的行情。

Q电子纯交易方式-

随着通讯技术和计算机技术的发展,交易系统可以由计算机来完成,Internetd出现彻底改变了以上的落后模式,且才有了真正意义上的证券行情分析,使得证券行情分析得到了真正熬发展。电子诧证券行慵分柝系统使褥成本更低、效率照离、.嚷痘速度更快、容量更大。股民可以在不同的地方,只要有了计算机、Intemet网络就可以随意的交易。

1.5;行情系统的架构模式

就电子化交易模式来说,裁其证券行{{擎分薪系统的架掏来说,霹以分为3耪模式。

1.5.1-Client/¥ervice模式

Intemet在串鹜的普及,C零模式的证券行情分析系统在强葡得裂了大量的瞢及,目前酶带宽远遗可以满足证券行情中大量数据的处理,可以说是目前证券行情分析软件中最理想、也是最警及的一种模式,这种模式适合散户股民在家中或耀吧,只要有电脑、鼹络的地方都可绫查看行情。.

舨的、Linux版的等等,这些不同舨本的都是基于雠式的,裁其传输来说,从服务端到客鹪模式所占用的资源较少,速度快,传输质量较高,嗣前市场上有Dos版的、W'mdows户端都是采用蛾UDP等Socbd通信,获上证所或深交所进来的数据都是按照一定的数据结构和不同的通倍协议(或约定)来完成,数据传输到客户端,然后经过处理厨显示出来,采用请求应答的橇铡。

拿期的行情播掇,都是逶过翌星将谖券行馕交易信息发布到不嗣的行请经营鬻的数据孛心,行情经营商需要在自己公司附近安装一个卫星信号接收端来接受行情,投入成本较大,并且所有数据都要首先存盘处理,然厝各个行情经营商可以按照自己的模式和通信约定(协议)来发布行情,行情经营髓霹跌依靠提供服务来盈利。。

随着证监会和各个方面的努力,新的基于STEP协议的行情播报系统出现了,这是中阑证券行业是一个里程碑。新协议的弓l入,使得各个券商和上证所可以依靠STEP协议来进行订单的处理,经过上证所豹竟价撮台最终完成交易,然后上证所会诩S朝强弓l擎将最新撮合出的行情、或重耍通知等,按照STEP协议播报给行情经营商,行情经营商在数据中心依靠STEP协议进行解析、数据处理,然后推送到客户端和存盘处理。.

1.5.2sBrover/Service模式

黝S模式麓出现也是趋势鹣必然,现在上溺测览隧页已经成失一种嚣揍,因诧谨券孬情分析系统做到网页上可以说趋顺理成章,这种基于B/S模式的行情分析系统最初的推出并没有得到足够的重视,因为当时的网络速度比较慢,打开一个网页需要很长的时间,但是随着带宽熬增鸯羹,这耪模式也受剿一些不想在喜己橇嚣±安装客户端的段民的接受。

B/S模式的证券行情分析系统,是基于H]r豫协议的,一般提供这样的服务都是

WebServiee模式的(我公司是这样的),目前很多大型的门户网站都提供这种模式的服务,院鲡:薪浪遥、搜狐霹、MSN、和讯等,当然这种模式酪服务一般都是免费的,缀难麸中找出可以增值的服务,但是可以提高自己网站的点击率。

基于B/S模式的证券行情分析有其优势,就是分布广,简单易用,不需要在机器上安装客产端,尤其适合上班族在公鼋测菱,毽是也有它致命斡劣势,B/¥模式的证券行请分析系统一般压力都在服务器端,对服务器端机器性能要求比较高,并且,由于网页要处理大量的数据,如果这个网站的访问璺过大的化会造成其速度慢,并且由于一个网页如果要提高速度一般麓提供昀僖息藿褶对较少,所蔽嚣要由多个弼页来显示这些信怠,这样也带来了摄多不方便,还有就是证券行情分析系统中的数据每秒钟都在变化,因此网页需要不停的定时刷新,丽每刷新一次都需要和服务器端进行交互,所以也造成数据交换量变大,降低了速度。’1.5.3:Mobile/Service模式

手瓿在中垦酱及酶速度真是太快了,沩年前震的的跨按手机还是一种奢侈晶,簸黯裂的人很少,占主导市场还是用那些固定电话、大哥大、bb机等,一些只能通声音,~些只能通文字,根本无法想像手机会是多媒体的,不仅可以通话、显示文本,而且还可以视频通信,听歌看电影都成药7可能,因此在手机上看股票行德也就不稀奇7,手机鳃普及绘这些行情提供商提供了一个臣大的市场,目前很多手机推出的一个卖点就是手机可以炒股。

手机模式的行情分析系统,其优势就是容易普及,容易推广,使用方便,不用座在电脑蓠,只要手枫支持,安装了客户端,裁砸以随时隧遮懿看,但是其致命翡确定就是成本太离。(1)手机模式的行情分析系统服务器端就需要和电信部门合作,需要借助电信的平台才

可以完成,需要服务器端将信息推送给电信方,然后转化成无线信号传输给客户端,掰以增加?成本,并且速度也是比较慢酶。

(2)手机虽然在中国得到了普及,但不是所有的手机都支持多媒体,所以不是所有的手

机可以安装客户端软件,所以买手机的成本比较高。况且虽然买的起手机,但是手梳的逶信燕按照时闻诗费酶,所以通信成本会更高。

(3)由于手机屏幕小,所以显示的信息比较小,且显示质量没有办法和C/S和B/S模式的证券行情分析系统相比,就目前市场上推如的炒股乎机,一般只可以满足简单的几

个功能,比如只能简单的看行情,不能对其进行分析,没有咨询模块等等。

(4)由于手机内存或缓存比较小,因此过来的行情信息处理起来速度就慢的多。因此需

要妥善的利用内存,这就给开发客户端软件造成了开发上的困难和成本。

总的来说,就目前证券行情分析系统市场来看,手机虽然越来越高级,推出支持看行情的手机也是越来越多,但是其成本和速度、信息量会成为其瓶颈,所以手机模式虽然是趋势,但就目前来看选择的人并不是很多,C/S模式的还是占了主导市场。B/S模式虽然试用方便,不需要安装客户端,但是其速度和信息量没有办法满足,所以也不会成一为主流,C/S模式的却没有这些确定,唯一的确定就是使用不方便,需要安装客户端并且不需自己在电脑前操作,但目前来C/S模式的仍然是主流.

第二章:step协议

2.1:STEP协议的简介

STEP协议是SecuritiesTradingExchangeProtocol,该协议规定了应用环境、会话机制、消息格式、安全与加密、数据完整性、扩展方式、消息定义、数据字典等内容。该协议支持证券交易所与市场参与者和相关金融机构间的业务数据交换。

sTEP协议所引用到的文件:

GB/T2659世界各国和地区名称代码

GB/T12406表示货币和资金的代码

IS010383交易所和市场代码标志识别码(MIC)[Codesforexchangesandregulatedmarkets-MarkedidentifierCodes(MIC)]

ISO10962证券金融票据的分类(CFI代码)[Securities-ClassificationofFinancialInstruments(eElcode)]

2.2,术语和定义

1)组件块Componentblock

消息中具有一定业务相关的数据域集合,如证券品种定义,主要用于更直观描述消

息的业务含义。

2)新订单NewOrder-Single

交易客户方新产生的订单。

3)执行报告ExecutionReports

交易服务方响应交易客户方的消息,主要用于:订单确认、订单状态变化确认(如撤单确认和修改单确认)、发送订单的成交回报、订单拒绝。

4)指定交易DesignatedTrading

将证券账号与某一证券营业部所属的参与者业务单元(如席位号)相联系,从而限定该证券账号的交易应在该参与者业务单元下进行的交易方式。

5)转托管DesignationTransfer

投资者将其托管在某一券商处的证券转到另一券商处托管的行为,并且投资者只能将证券在其托管的券商处卖出。

6)公司行为CorporateAction

上市公司的非交易类业务,如新股配售、配股认购、可转债转股、回售等。

7)PBU(参与者业务单元)ParticipantBusinessUnit

市场参与者行使交易权利,获取交易服务的唯一逻辑通道。

8)市场参与者MarketParticipants

参与证券交易的客户方,如券商、证券公司、证券营业部、交易所会员等14

2.3STEP协议的会话机制

2.3.1消息序号

。任何一条消息都被分配有一个消息序号来唯一标识,消息序号在每次会话过程中从I开始,在整个会话过程中连续递增,直到该会话过程全部结束。通过监视消息序号的连续性可以知道交换中的消息缺口,并做出反应,使得连接双方数据同步。

连接双方都明确确定相互独立的消息序号,参与连接的任何一方负责维护自己发送的消息序号,并监视接收的消息序号以保证消息缺口的发现和处理。

2.3.2心跳

在消息交换的空闲期间,连接双方将会产生有规则的心跳消息。通过心跳消息可以监控通讯连接的状态。心跳间隔时问由会话发起人在登录时确定。在发送任何消息后,应立即重新设置心跳间隔计时器。心跳间隔时间应该得到连接双方的确认,由登录发起人给出并得碍登录接受方的确认.连接双方使用相同心跳间隔时间。

2.3.3缺口填补

由于协议是基于乐观的消息传输模式,消息在传输过程中可能存在丢失,而这种消息丢失发送方不能检测,因此接收方应负责检测消息的缺口并处理。有两种处理方法:接收方发现缺口后向发送方请求发送缺口消息及其后的所有消息;接收方发现缺口后,保存已收到清息,并向发送方请求重复发送缺口消息。

2.3.4消息重复发送

响应一个重发请求而重复发送消息时,或者不确定对方是否收到某消息而重复发送该清息时,要求在该消息内加上可能重复标志(Possible{)uplicate--Y).如何处理该消息则是,接收方韵事情。由于当生成有此类可能重复发送的消息时, 仍使用该消息的原来序号,’但某。些信息可能会改变,如原始时间、发送时闯、正文长度、可能重复标志等,所以应重新计算校验和。

2.3.5消息重新发送

基于应用层的可能重发,如发送的订单在相当长的时问内没有确认,或者怀疑其根本未曾发送过,可以通过设置可能重新发送标志来重新发送(PossibleResend=Y),并使用新的消息序号.接收方应用层收到该类消息后,应通过查询消息内的域(如订单编号等)来确定÷此前是否收到此条消息。该类消息应确定包含相同的正文数据,同样,由于某些信息可能会:改变,所以应重新计算校验和.

2.3.6消息确认

由于协议是基于乐观的消息传输模式,通过监视消息序号发现缺口,不支持对每个消息收发的确认。但大量消息收发的确认可在应用层定义。在应用层接受和拒绝是允许的,如订单的确认..

2.4:STEP连接

会话过程的数据交换可以这样描述:连接双方各骞一个连续的消息序号隧消息传送,两交易期阕可|良多次瞬歼并重新连接,其断歼的原因霹I激是外因弓}起,也可以是连接双方根据系统来统一制定何时断开并重新连接。一次会话连接通常不应超过24小时,当然,如需要保持24小时以上的连接,则需要发送一条含有序号霪设标惠的登录消息来建立掰的起始消息序号。

STEP连接分为三个部分:登录、消息交换、注销。STEP会话包含一个或多个STEP连接,鄹一个STEP会话可以跨越多个登录。

2.4.1:登录

登录连接包含兰个步骤:建立电信通讯连接、连接双方的确认产认诞、消息蒋输弱步的初始化。主要有以下几点:

1)连接和认证

会话豹发起方与接收方建立电信通讯连接。发起方发送登最游惠(Logon),接收方认谨发起方身份的合法性。登录消息应包括认诳的必要数据,如用户名、密码等。如果发起方身份通过认证,则接收方发送一个登录消息作回应。如果认证失败,会话接收方则在发送一个含失败说明的注销清惠(Logout)后关闭连接。不过发送注销漓息并非是必须的,因为在某些情况下往往会引起其他问题。在发起方收到接收方的登录消息之后即可认为会话连接建立完成。会诱发起方可以紧随登录消息之后开始发送其他消息。

逶常在登录后或者刚发送完测试请求消息(TestRequest)时延迟等待一段对闻,然后秀发送新的消息,使得连接双方能有效控制重发请求。否则可能会导致一方会针对对方的每一条薪消息发出重发请求。

2)扭始化

在身份通过认证之后,发起方和接收方应首先同步消息序号,然后才能相互发送新的信息。冠步消怠序号通过消息序号域(gsgSeqNum)来确定,将登录漓怠里的消息序号(isgSeqNum)与内部监控的下一个预期的消惠序号进行比较就能发现游息的涪息序号缺口。同样,发起方通过将接收方发送的登录消息里的消息序号(gsgSeqNum)与下一个预期的消息序号进行比较也能发现消息的缺疆。初始化完成之嚣,可以开始进行信息交换。所有有效消息的格式将在“会话消息”和。应用消患”部分巾详细叙述。

2.毛2:注销

会话的正常结束是通过连接双方互相发送注销消息(Logout)完成的。若结束时没有收到回送的注销消息(Logout),则把对方视作已注销。除此之外的其它方式的会话结束视为嚣正常,并应按错误来处理。在发送注销溥息(Logout)之前。应发送溅试请求清惠(TestRequest)以要求对方的心跳信息,这有助丁_保证不出现消息序号缺口。在结束会话之前,注销消息(Logout)的发起方应该等待对方网送的注销消息(Logout),这样给接收方一个填睾}缺舀豹机会。待重发请求的信息全部收到后,接收方才冒发送应答的注销谤息(Logout).如果接收方在一定时间内没有答复,那么会话就可以立即中断。(型姥销不影响任侮订单羽状况,黼有套效的谤单都司程注销(Logout)2a苗毒/7-)16

2.4.3:稍息恢复

4以下描述了有关恢复消息的具体方法

每一方必须维护两个消息序号,一个为了发送,一个为了接收.

当接收进来的消息序号与预期的消息序号不相符合时,需进行修正处理。但需要注意的是,如果接收进来的是序号重设一重设(SeqReset-Reset)消息则不需要修正处理,因为处理该消息时不必考虑它的消息序号。如果接收的消息的消息序号比预期的消息序号小,而且没有设置可能重复标志(PossDupFlag),那么表明发生了严重的错误。因此必须立即结束会话,并开始进行人工干预。如果接收进来的消息序号比预期的大,那么表明有消息被遗漏,应通过发送重发请求申请填补缺口。

、当收到重发请求时,重发人可以作出回应为以下三种之一:(崖,奉文≠蒋戎/(措哟嬉

提出重发请求钓鄂一方。重发入指的是回应重发请求的那一力.、

毋作为正常回应,重发人按顺序发送被请求的消息,这些消息的消息序号仍为原消息序号,

并且将可能重复的标志(PossDupFlag)置位为。Y”。

b)作为正常回应,重发人发送序号重设一缺口填补(SeqReset—GapFill)消息,可能重复

标志(PossDupFlag)置位为“Y”,以表示删除过时或多余的消息.

c>作为非正常回应,重发人发送序号重设一重设(SeqReset-Reset)消息,可能重复的标

志(PossDupFlag)置位为“Y”,以强制消息序号同步。

在缺口填补过程中,不需要重新发送某些会话消息。取而代之的是一种特殊的序号重设一缺口填补(SeqReset-(;apFill)消息。不需要重新发送的会话消息是:登录、:注销、重发一请求、心跳、测试请求、序号重设一重设(SeqReset-Reset)和序号重设一缺口填补(SeqReset-(;apFill)。这样会话拒绝消息便成为了唯一可能被重新发送的会话消息。

表2—1:STEP连接

消息类型

登录针对消息序号错误所采取的措旖永远是连接双方发送的第一条消息,用于认证和连接。如果发现登录消息中

有缺口,则应在回送登录确认消息之后立即发送重发请求,

注销如果发现有缺口,应发送重发请求消息以重新接收所有丢失的消息,然后再

发送注销消息作为对注销请求的确认.注意严禁在有缺日情况下结束会话。

并由注销的最初发起人负责结束会话,因此注销发起人有责任回应所有的重

发请求

重发请求首先处理完对方的重发请求,随后发送自己的重发请求以填补消息序号错误

而发现的消息缺口。

序号重设一重

设可以忽略消息序号错误。因为在序号重设一重设(SeqReset—Reset)消息中的新消息序号(NewSeqNo)强制为下一发送消息的消息序号。

应立即向对方发送重发请求。但是,重要的是要确保没有无意间跳过任何消

息,,这意味着缺口填补消息应按次序被接收到,如果次序不对,那么表示出

现了非正常的情况序号重设一缺口填补

2.5:数据类型

数据类型用于定义数据域的取值类型,本标准由几个基本的数据类型(整数、浮点数、单字符、字符串、二进制数据块)和在此基础上扩展的数据类型组成。除“data”数据类型外;其他数据类型均以ASCII码字符串表示.‘17

2.5.1-基本数据类型

a)整数int无逗号和小数位的序号,可表示难负(ASCII码字符。’,‘0’至‘9’组成)。符号占据一个字符位置。允许蔚置字符零(铡:拜00023斗=“23”)。整数类型的扩展定义:一

长度Length:以燕数表示字节为单位的数据长度,正数.

重复数NumInGroup:以整数表示重复组的个数,正数。一

清息序号SeqNum:以整数表示消息序号,正数。

域号TagNum:以整数表示的域号(或称Tag).正数,首位不能为零。

胃墨期号DayOfMontht以整数表示懿月份孛第几天,取值1至3l。

b)浮点数float,

含有可选的小数部分,可表示正负(ASCII码字符‘-’,。O’至‘9’和‘.’组成)。最多15位有效数字。允诲翦置字符零(饿:“00023一=搿23”)。允许小数豁分瑟置字符零(例:搿23.0”=“23.0000静=‘‘23”)。

浮点数类型的扩展定义;除非特别声明,浮点数类型均有正负.

量Oty:股份数量、资产数量等,弼班有小数部分。

价格Price:小数位数可交。

价格偏移量PriceOffset:代表价格偏移量的浮点域。

金额Amt:典型鲶价格与数量相乘结果,絮成交金额。.

百分比Percentage:小数表示方法:.05代表5%。

c)单个字符char .

指除赛定符井所有字母字符窝标熹字符,区分字母大小写。

字符类型的扩展定义;

布尔Boolean:该域取值予两个字符,

矗)字符事String

区分字母大小写。

字符串类型的扩展定义:.(’Y’=True/Yes,’N’=FaIse/No),

多元值字符亭MultipleValueString:焉空格分隔。

国家Countr’y:参见GB/T2659。

字符串货币类型Currency:

交荔所或市场编号Exchange:

年月日期month-year:参见GB/T12406。字蓊搴,参冕IS010383。、格式YYYYMM或YYYY姗D或1flfYY删孵,YYln『=0000-9999,姗

。=Ol—12,DD=01—31,W臀=wl,w2,w3,w4,w5。

,YY嗍p蹦:删:SS.SSS(毫秒),YY'In『=0000-9999,瑚=01一12,叻=01-31,蹦=00-23,

姗=00-59,SS=00-60(秒)。sss=000-999(毫秒)。

SS=Oo_60(秒),sss=000-999(毫秒)。国际标准对对润戳UTCTimestamp:格式狂鞠嘲隆硼:添:SS(移)蕺国际标准露时闻UTCTimeOnly:格式鞭:澈:SS或疆:疆:SS.SSS,潮=00--23,灏=00-59,

国际标准时日期UTCDateOnly:格式YYYY瑚叻,1nfYY=0000-9999,瓣:01-12,∞=O王一3王。

本地市场日期LocalMktDate:

Ol一3l。。格式YYYYMMDD,YYln『=0000-9999。删=01-12,DD=

e)数据Data

无格式和-内容限制的原始数据,包含长度域和数据域两个部分,数据域数据可以包含数值Ox01,长度域指明数据域的字节数

2.5.2,扩展数据类型

a)域

域是基本的数据元素,每个域有其域号、业务含义和确定的取值范围,域号统一分配给不同的域,是域的区分标志,在消息中,通过域号来确定不同的域。域的数据类型决定了其取值类型,域的取值范围可以是一个集合,任何在此集合外的取值被认为是非法取值。数据字典部份详细定义了所有域的业务定义、数据类型和取值范围.

(1)域的使用:在消息中,域的使用有三种方式:4必须的,可选的,条件限制选择(即

根据其他相关域的存在与否或取值来决定)。作为一个完整的消息,必须域和条件’限制选择域是需要包含的。。

(2)

(3)

(4>.自定义域:如标准中定义的域不够使用时,证券交易所或市场参与者可以扩展定义新的域,即自定义域。域汉字编码:域取值为汉字时需要使用统一的GBK汉字编码标准。域界定:消息中所有的域(包含data类型数据域)都有一个分隔符来界定分隔。

该分隔符就是不可打印字符ASCII码“SOH”(#ool,hex:Ox01,本文档中以<S伽>表示)。因此,所有消息以“8=STEP.x.Y.z<SOtl>”字符串开始并以搿lO=nnn<S佣>蓐字符串结束.除data数据类型域外,其他数据域内容都不应包含域界定符<SOIl>.

2.5.3-重复组

f‘

域可以在重复组里多次重复,用以传输数组类的数据。通常域名起始为’No’字符的域’指明重复的次数,并位于重复组的开始处。本文档中重复组的定义通过缩进的专符号表示,重复组也可嵌套。使用子重复组时不能省略父重复组。

表2-2:重复组:

454NoSecurityAltID

455

456SecurityAltIDSectwityAltIDSourc

eNN备选证券代码个数备选证券代码各选证券代码源专专-N

,可能的应用表示为:

454=2<S0H>455=600600<S0H>456篁101<S0H>55=00000l<S0H>456=102<S0H>

2.6:扩展方式

2.6.1l扩展分类

。扩展分为两个部分;消息定义扩展和域定义扩展.

消息定义扩展可以通过新增消息类型来实现,但尽量在已有消息中通过域定义或取值扩展来定义新业务。已有消息所代表的业务在扩展时不能改变。域定义扩展可以通过新增域来实现,但尽量通过扩展域值来扩展域的定义。消息中已定义的必须的域不能取消定义,也不能改变成可选域。

2.6.2:扩展规财

自定义消息的消息类型值首字符为‘U’.其他类型的消息由全国金融标准化技术委员会19

根据国际相关标准的变化统一定义并发布。

消息和域临时定义原则:上海证券交易所临时定义消息的消息类型值首两位字符为‘UA’,深圳证券交易所临时定义消息的消息类型值首两位字符为‘rib’;消息和域的临时定义应同时报备至全国金融标准化技术委员会。

域号1-4999由全国金融标准化技术委员会根据国际标准的变化统一定义并发布,该域区间只有全国金融标准化技术委员会有权扩展、修改和发布;域号8500-8999由全国金融标准化技术委员会自行定义,其中8800-8999为临时定义区间;临时定义区间中域号8800-8899为全国金融标准化技术委员会授权上海证券交易所市场临时定义区间,域号8900-8999为全国金融标准化技术委员会授权深圳证券交易所市场临时定义区间。域号10000以上由连接双方自行约定定义。

消息的模块顺序在扩展定义时不能改变,即保持消息头、消息体和消息尾的顺序。而模块的内部,域和重复组的顺序是可以变化的。

消息头的头三个域的定义和位置不能改变,但可以扩展增加消息头的可选域。

消息尾最后一个域的定义和位置不能改变,但可以扩展增加消息尾的可选域。

2.7:消息定义

消息由消息头、消息的正文和消息尾组成。同样,每个组成部份都由一系列“域号=值”组成,并且在遵循以下规则前提下“域号=值”基本结构可以是任意的次序:

a)开始部分应是消息头,随后是正文,最后是消息尾;

b)消息头的前3个域的次序不能改变:起始串(Tag=8)、消息体长度(Tag---9)、消,

息类型(Tag:35);

c)消息尾的最后一个域应是校验和域(Tag=10);

d)重复组中,域出现的顺序应遵循该重复组在消息或组件中定义时的次序。

e)在一条消息中,除重复组域外任何其他域不能重复出现。

f)【:!语法:任何消息都严格由多个“域号=值”的基本结构组成,。域号=值一基本结构

用域界定符<SOftY分隔。消息组成结构如图l:il!圜。 《5:!i!!

图2一l:消息格式::j!jli!::lliiil:ji!强 l{:!i!!i珀

消息格式的例子如:

8=STEP.1.0.0<S0H>9=ll2<SOH>35=D<SOH>49=BRKR<SOH>56=INVMGR<SOH>34=235<SOH>52=20030620—09:35:27<S0H>1l=00OOO7<SOH>2l=2<SOH>55=青岛啤酒<SOH>48=60060O<SOH>54=1<SOH>44=8.520<SOH>38=l000<SOH>60=20030620—09:罨5:28<S0H>40=2<S0H>l0=l57<s0H>

2.7.1:消息头

每一个会话或应用消息有一个消息头,该消息头指明消息类型、消息体长度、发送目的地、消息序号、发送起始点和发送时间。其中有两个域用于消息重发,对于会话级的事件而重复发送消息时将可能重复发送标志(PossDupFlag)设置为Y(发送时用原来的消息序号),

当重新发送时使用新的消息序号时将可能重新发送标志(PossResend)设置为Y,接受者应按以下方法处理上述消息:

可能重复发送:如果带有该消息序号的消息在以前曾经接受过,则忽略消息,如果未曾收至!}过,则按正常步骤处理。

。可能重新发送:将消息传递给应用层以确定此前是否收到该消息(通过检查订单编号或相关参数).消息头格式见表2;

表2-3.消息头

ITag域名

BegiaString

BodyLength

MsgTyDe

SenderCompID

TargetCompID

OnBehalfOfCompID

DeliverToCompID

SecureDataLen

SecureData

MsgSeqNum

SenderSubID

SenderLocationID

TargetSubID

TargetLocationID必需YYYYY说明89354956115起始串STEP.1.0.0(不可加密,消息的第一个域)消息体长度(不可加密,消息的第二个域)’消息类型(不可加密,消息的第三个域)发送方代码(不可加密,发送方标识符)接收方代码(不可加密,接收方标识符)最初发送方标识符(可加密),用于经第三方发送。最终接收方标识符(可加密),甩于经第三方发送。密文数据长度密文数据(紧跟密文数据长度域)消息序号(可加密)发送方子标识符(可加密)发送方方位标识符(可加密)接收方子标识符(可加密)接收方方位标识符(可加密)

最初发送方子标识符(可加密).NN128909l3450142NNYNN57143116NNN0nBehalfOfSubID

OnBehalfOfLocationID

DeliverToSubID

‘DeliverToLocationID

PossDupFlag

PossResend

SendingTime

OrigSendingTime

MessageEncOding144129145439752122347NN最初发送方方位标识符(可加密)最终接收方子标识符(可加密)最终接收方方位标识符(可加密)可能重复标志,重复发送时,作此标记。(可加密)可能重发标志。(可加密)发送时间(可加密)原始发送时间(可加密)消息中Encoded域的字符编码类型(非ASCII码)、N,N NYNN

N369.LastWsgSeqNumProcesse

370

627OnBehalfOPSendingTimeNoIIops最后处理消息序号(可加密)~●NN最初发送时间(用UTC表示时问)历史跳跃信息重复组,记录消息经第三方发送的历

.史,每次经第三方发送为一个跳跃,仅当

iOnBehalfOfCompID使用时有效,主要用于跟踪消息

的路径。

专628629630HopCompIDttopSendingTimeHopRefIDNNN取值第三方的SenderCompID取值用第三方的SendingTime取值第三方的MsgSeqNum

2.7.2:消息尾

每一个消息(会话或应用消息)有一个消息尾,并以此终止。消息尾可用于分隔多个消息,包含有3位数的校验和值.‘

消息尾格式见表3:

表2-4:消息尾

Tag域名必需说明

93SignatureLengthN数字签名长度(不可加密)

89SignatureN数字签名(不可加密)

lOCheckSumY校验和,消息的最末域。(不可加密)

2.7.3:常用的消息类型

a)心跳消息(MessageType=O)

心跳消息用于监控通信连接的状况,并可确认是否接收到最后一条消息。

当STEP连接的任何一方在([HeartBtInt]秒,心跳间隔)时间内没有发送任何数据的时候,将产生一个心跳消息并传送出去。当连接的任何一方在([HeartBtInt]+[合理传输时间])时间内都没有收到任何有关的数据的时候,将产生一个测试请求消息并传送出去。如果在此之后的([HeartBtInt]+[合理传输时间])时间内,仍没有收到心跳消息,那么可认为此次连接失败,而且需开始实施修正操作。如果HeartBtInt被设置为零,那么将不会定期生成心跳消息。并且不论HeartBtInt取值多少,任何一方都可发送测试请求消息,接收方由此将强行生成心跳消息。.

因对方的测试请求消息而产生的心跳(Heartbeats)消息应包括对方测试请求消息中的测试请求标识符(TestReqID)。这有利于确定该心跳消息是响应测试请求而产生的,而不是由于超时而产生的。心跳消息格式见表4。.

‘表2-5:心跳(Heartbeat)

Tag域名必需说明

标准消息头YMsgType=0

112TestReqIDN测试请求标识符,如是对测试请求而响应的心跳消

息,则应包含本域。

标准消息尾Y

b)登录消息(MsgTyI弛=A).-

登录消息能证实用户是否已建立与对方系统的连接。登录消息应是在STEP会话开始时的连接双方发送的第一个消息。

HeartBtInt域用来声明产生心跳的时间间隔(连接双方HeartBtInt取相同的值)。连接双方事先约定取值,由登录发起方产生并得到接收方的确认响应。在接收登录消息时。接收方将验证发起方身份的合法性,并且同样发出登录消息以确认连接请求已被接受。同样,确认登录消息也可以被发起方使用以验证连接了身份合法的接收方。

接收方应在收到登录消息之后,立即作好开始消息处理的准备。发起方可以选择在接收到确认登录消息之前开始STEP消息传输。不过本标准规定:在有关密钥确认的登录消息收到之后,才实施正常的消息交换。

.确认登录消息还可被用于密钥相互确定。如果认为当前会话密钥强度较弱,需要更换密钥,那么就可通过发回带有新密钥的登录消息来建议使用更强的会话密钥。当然,这仅仅对

本文来源:https://www.bwwdw.com/article/hdd1.html

Top