资源描述
Initial Cap Title:Italicized Action Title,1,st Level Bullets:No more than 4 per slide,Use sentence case with no periods,Second level bullets:No more than 3 per 1st level bullet,Use sentence case for all bullets with no periods,Third level,Fourth level,Fifth level,外部通讯中间件,XCOM,V2.0,联系方式,主讲:周显鸣,电话:,021-66792095,Email:zhouxianming,联系方式,培训,安排(第一天),基本知识(1小时),中间休息(15分钟),XCOM,系统概述:文件配置选项(1小时),XCOM,配置练习:文件配置选项(30分钟),XCOM,数据库配置处理(1小时),中间休息(15分钟),XCOM,配置练习:数据库配置选项(30分钟),答疑(15分钟),培训,安排(第二天),通信编程使用方法介绍(1小时),中间休息(15分钟),通信实习(1小时),数据库使用方法介绍(1小时),中间休息(15分钟),数据库使用实习(1小时),答疑和总结(1小时),网络基本知识(一),定义:,计算机网络,就是把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享信息资源。,功能:,资源共享、信息传输与集中处理、负载均衡与分布处理、综合信息服务等等。,分类及组成,:,网络按交换技术可分为:线路交换网、分组交换网;,按传输技术可分为:广播网、非广播多路访问网、点到点网;,按拓朴结构可分为,:,总线型、星型、环形、树形、全网状和部分网状网络;,按传输介质又可分为,:,同轴电缆、双纽线、光纤或卫星等所连成的网络,。,网络基本知识(二),OSI,七层模型:,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层,网络基本知识(三),第一层物理层:物理层定义了通讯网络之间物理链路的电气或机械特性,以及激活、维护和关闭这条链路的各项操作。物理层特征参数包括:电压、数据传输率、最大传输距离、物理连接媒体等。,第二层数据链路层:实际的物理链路是不可靠的,总会出现错误,数据链路层的作用就是通过一定的手段(将数据分成帧,以数据帧为单位进行传输)将有差错的物理链路转化成对上层来说没有错误的数据链路。它的特征参数包括:物理地址、网络拓朴结构、错误警告机制、所传数据帧的排序和流控等。其中物理地址是相对网络层地址而言的,它代表了数据链路层的节点标识技术;“拓朴”是网络中经常会碰到的术语,标记着各个设备以何种方式互连起来,如:总线型所有设备都连在一条总线上,星型所有设备都通过一个中央结点互连;错误警告是向上层协议报告数据传递中错误的发生;数据帧排序可将所传数据重新排列;流控则用于调整数据传输速率,使接收端不至于过载。,网络基本知识(四),第三层网络层:网络层将数据分成一定长度的分组,并在分组头中标识源和目的节点的逻辑地址,这些地址就象街区、门牌号一样,成为每个节点的标识;网络层的核心功能便是根据这些地址来获得从源到目的的路径,当有多条路径存在的情况下,还要负责进行路由选择。,第四层传输层:提供对上层透明(不依赖于具体网络)的可靠的数据传输。如果说网络层关心的是“点到点”的逐点转递,那么可以说传输层关注的是“端到端”(源端到目的端)的最终效果。它的功能主要包括:流控、多路技术、虚电路管理和纠错及恢复等。其中多路技术使多个不同应用的数据可以通过单一的物理链路共同实现传递;虚电路是数据传递的逻辑通道,在传输层建立、维护和终止;纠错功能则可以检测错误的发生,并采取措施(如重传)解决问题。,网络基本知识(五),第五层会话层:在网络实体间建立、管理和终止通讯应用服务请求和响应等会话。,第六层表示层:定义了一系列代码和代码转换功能以保证源端数据在目的端同样能被识别,比如大家所熟悉的文本数据的,ASCII,码,表示图象的,GIF,或表示动画的,MPEG,等。,第七层应用层:应用层是面向用户的最高层,通过软件应用实现网络与用户的直接对话,如:找到通讯对方,识别可用资源和同步操作等。,网络基本知识(六),网络协议:,协议是对网络中设备以何种方式交换信息的一系列规定的组合,它对信息交换的速率、传输代码、代码结构、传输控制步骤、出错控制等许多参数作出定义。,TCP/IP,网络协议:,TCP/IP(Transmission Control Protocol/Internet Protocol,,传输控制协议/网间网协议)是目前世界上应用最为广泛的协议,它的流行与,Internet,的迅猛发展密切相关,TCP/IP,最初是为互联网的原型,ARPANET,所设计的,目的是提供一整套方便实用、能应用于多种网络上的协议,事实证明,TCP/IP,做到了这一点,它使网络互联变得容易起来,并且使越来越多的网络加入其中,成为,Internet,的事实标准。,网络基本知识(七),TCP/IP,四层模型:,*,应用层,应用层,表示层,*,会话层,传输层,传输层,网络层,网络层,网络接口层,数据链路层,*,物理层,XCOM,中间件基本知识(一),Session,管理,数据传送,的开发接口使用,Socket,接口,传送管理将自己生成的,Socket,与对方计算机生成的,Socket,连接起来进行数据的送信和受信。我们把,Socket,的连接成功称为,Session,的连接,把连接成的逻辑连路称为,Session,,把,Socket,连接的断开称为,Session,的断开,,Session,从连接到断开可传送多个电文。,一般情况下,两台计算机之间的连接可以使用静态连接(即连接的,Session,直到切断的原因发生时才断开,切断的原因有:系统关闭、应用程序的要求、对方,Session,的断开和故障的发生),也可以使用动态连接(每发送一条电文,在发送之前进行连接,发送完成之后立刻断开)。,本中间件既支持使用静态连接管理通信的,Session,,也支持使用动态连接管理通信的,Session,,但建议使用静态连接管理。,XCOM,中间件基本知识(二),回线,我们,把己方计算机和对方计算机所连接的受信,Session,和送信,Session,组称之为回线。,对于传送的,Session,和接收的,Session,可以使用同一个也可以使用两个独立的,Session。,在使用两个,Session,的情况下,每个,Session,不受另一个,Session,的影响,相互独立。发出连接要求的,Session,为,Client,,接收连接要求的,Session,称为,Server,,每台计算机既是,Server,,又是,Client。,在使用单,Session,的情况下,有一台计算机作为,Server,,等待,Client,来连接,当连接建立后,,Server,和,Client,使用同一个,Session,进行发信和受信。,本中间件推荐使用单,Session,连接方式,由一个,Session,同时负责发送和接收,但用户可以根据需要自由进行设定。,XCOM,中间件基本知识(三),Port,号,在,TCP/IP,通信中,每个计算机间通信要规定特定的,Port,号。因此,在本中间件中,定义了自己计算机的,Listen Port,,,受信程序使用这个特定的,Port,号来接收对方计算机的连接要求和电文,此,Port,号可由定义文件进行修改。同时对每一个通信对象也定义了对方的,Listen Port,号,送信进程用对方计算机的特定,Port,号(事先规定)来发出连接请求。,XCOM,中间件基本知识(四),电文头(送受信数据)的格式,为了与老的未知格式的电文兼容,用户可以通过配置文件来定义电文长度和电文号所在的位置、格式和长度,通过这些信息,本中间件可以接收任意格式的电文,并将电文存放到要求的接收通道内。,作为新系统,从管理方便角度出发,本中间件定义的电文格式为:电文头部数据,+,电文应用数据+结束符,头部数据长度为,40,字节,应用数据长度为电文最大长度减去头部数据长度再减去结束符长度,。,电文头部数据格式除序列号外全部采用,ASCII,码,序列号字段采用2进制编码,各个字段定义如下:,XCOM,中间件基本知识(五),头部数据格式全部采用,ASCII,码,各个字段定义如下:,电文长度:4个字节,用于表示电文的总长度,电文号:4个字节,用于表示每一个电文区别的唯一代号,以数字表示,日期:8个字节,表示电文发送的日期,年月日,时间:6个字节,表示电文发送的时间,时分秒,传送端:2个字节,表示发送源计算机的代码,接收端:2个字节,表示发送目的计算机的代码,序列号:4个字节,唯一指示这条电文的一个号,功能要求:2个字节,表示一些对对方电文处理的功能要求,如应答等,备用域:8个字节,用于将来扩展,电文数据:建议使用,ASCII,码,由应用开发人员决定,结束符:1个字节,指示数据结束,由应用开发人员决定如何使用,中间休息,Tea Break,XCOM,系统概述,XCOM,中间件,是建立在,TCP/IP Socket,上的一套通讯传送管理软件。它向用户提供了统一的维护环境和,API,接口。用户调用,API,接口,编写通讯程序,可以实现计算机之间的数据通讯。,XCOM2.0,版本新增了数据库管理功能,可以根据用户的要求将,发送和接收的电文保存到数据库,同时提供界面显示数据库中的配置信息和电文信息,并提供进程调度等功能。,系统构成图(1.0版配置文件选项,),XComTimer,XComServer,Host CPU,存取配置信息,对方计算机,本方计算机,配置文件,电文记录文件,User APP,API,Socket,通信,主要进程说明,XComTimer,定时器进程,专门产生时间事件。,XComServer,核心进程,建立和管理与外部计算机之间的,Socket,通信,保证数据稳定、高效地传输。,XComStatus,配置管理和监视工具,提供友善的界面完成对系统的监控。,XComTimer,功能概述,XComTimer,启动后,开启定时器,定时向,XComServer,发送时间消息,,XComServer,对自己的事件列表进行判断是否发送应答电文、模拟电文、心跳电文以及等待心跳电文、等待应用电文的应答是否超时,,,之后做出相应的处理。,XComServer,的功能概述,XCOM,启动时,自动进行通信回线的建立,当对方断开或发生故障时,回线自动断开,回线断开后能够进行定周期自动重新建立,发送和接收电文的记录,发送不成功电文的保存,模拟电文的自动发送接收,心跳电文的自动发送,自动应答电文的发送接收,发送或接收的电文进行编码或解码,XComServer,进程组成,消息处理主进程,负责处理各种信息,并返回相应的处理结果,连接检查线程,检查静态连接方式下当前计算机之间通讯的连接状况,外部端口帧听,线程,负责响应外部计算机发来的连接请求,动态连接检查线程,检查动态连接方式下当前计算机之间通讯的连接状况,XComServer,工作流程(一),启动后,从配置文件或数据库文件中,得到电文配置信息。,启动外部端口帧听,线程。,从,主机配置表得到外部计算机配置信息。,从,电文配置表文件,中读取外部电文组的配置信息。,触发,连接检查线程,启动,定期检查本机与每个外部计算机之间的连接。,侦听外部端口,不断接收来自外部计算机的信息。,启动动态连接检查线程,,处理动态连接的信息。,XComServer,工作流程(二),启动,消息处理机制,,响应不同的请求。,接收,XComTimer,进程发送的定时信息。判断是否发送应答电文、模拟电文、心跳电文以及等待心跳电文的应答是否超时,然后做出相应的处理。,接收用户接口,API,发送的三种信息:设置心跳电文、设置自动应答电文和发送电文。将发送电文的结果状态(成功或失败)发送给,XDBServer,,,更新数据库中的发送电文表。,接收,XComStatus,进程发送的查询、添加、更新和删除外部计算机以及电文配置信息的请求。其中将添加、更新和删除配置信息的请求,发送给,XDBServer,,,更新数据库中的外部计算机配置表和电文配置表。,XComStatus,功能概述,XComStatus,是一个人机交互界面。通过它,用户可以看到当前系统的外部计算机配置信息和电文配置信息,并且可以根据通讯的实际需要添加、更新或者删除配置信息,从而达到与指定的计算机用户进行通讯和收发定制的电文这一目的。,XCOM,通讯中间件采用了,Client/Server,结构。,XComStatus,是运行在客户端的应用程序。在启动,XComStatus,之前,必须保证其相应的服务器端程序,XComServer,已经正常运行。,XComStatus,画面介绍(一),XComStatus,的主画面(外部计算机配置信息画面)。在主画面中,用户可以看到与本机通讯的各外部计算机状态的实时信息。,XComStatus,画面介绍(二),修改外部计算机配置信息画面。点击主画面中的,“,添加,”,或,“,更新,”,按钮,将弹出修改外部计算机配置信息画面,用户可以进行设定。,XComStatus,画面介绍(三),电文配置信息画面。该画面主要用于对发送的电文的格式、属性进行定制。另外,还设置电文的发送目的地。,XCOM,使用说明,配置项目说明,环境变量设置,配置项目说明(一),XCOM,的配置项目分为外部计算机(,HOSTPC),和电文(,MESSAGE),两类。配置文件模式的配置项目在,XComServer.ini,和,XMessageConfig.ini,两个文件中。数据库模式的配置项目在数据库的表,hostconfig,和,messageconfig,中。,外部计算机的配置项目:,无论采用配置文件模式或数据库模式,都要用到,XComServer.ini,配置文件。,XCOMServer,启动时,首先读这个文件,其中的,UsingDataBase,选项决定,XCOM,采用哪一种工作模式。,UsingDataBase,=1,,采用数据库模式;,UsingDataBase,=0,,采用配置文件模式。,ListenPort,:,本计算机进行通讯时的侦听端口,,配置项目说明(二),其取值要大于5000,5000以下为计算机的保留端口。,ReConnectInterval,:,检查连接的时间间隔,单位为毫秒。,XCOM,每隔一定周期检查连接的情况,当取值小于1000时,以1000计。,PrimaryIP,:,外部计算机的主,IP,地址。,StandbyIP,:,外部计算机的备用,IP,地址。,SocketFunctionFlag,:,决定双,Session,下,Socket,的使用方式。,IncomingSocketType,:,接收,Socket,类型,有四个选项:,无效的,SOCKET(,对应整数0);服务器端读写(对应整数1);服务器端读(对应整数3);服务器端动态读(对应整数5)。,OutgoingSocketType,:,发送,Socket,类型,,有四个选项:,无效的,SOCKET(,对应整数0);客户端读写,配置项目说明(三),(对应整数2);客户端写(对应整数4);客户端动态写(对应整数6)。,MessageLogFlag,:,电文记录标记(按位表示)。0:,不记录任何电文;1:只记录发送电文(不包括心跳电文和自动应答电文);2:只记录心跳电文;4:只记录自动应答电文;8:只记录接收电文(不包括心跳电文和自动应答电文);,SaveUnsendMessage,:,是否保存发送不成功电文。0:表示不保存;1:表示保存。在配置文件模式下,发送不成功电文保存在,XCOM,目录下的,UnsendMsg,子目录下。在数据库模式下,发送不成功电文保存在数据库中的发送电文表中,进行重发。,SendHBMessage,:,是否发心跳电文。0:不发送;,配置项目说明(四),1:发送。单,Session,通讯方式下无需发送心跳电文。双,Session,通讯方式下对发送的,Session,进行实时监控需要发送心跳电文,对接收的,Session,进行实时监控不需要发送心跳电文。,KeepMessageHead,:,决定在接收到数据后是否由,XCom,去除接收电文头部后再给用户。,HeaderType,:,电文头部类型。通讯双方在收发电文时可以在电文头部附加一些信息,如电文号,电文长度等。收发电文的双方必须使用相同的头部。电文头部有三种类型:标准头部,宝钢铁区头部和无头部。,MessageLengthFormat,:,电文长度格式。当电文头部类型为标准头部和宝钢铁区头部时,会自动确定电文长度格式。当电文无头部时,用户可以定义电文长度格式。具体格式为:编码方式+起始位+长度。,配置项目说明(五),MessageIdFormat,:,电文号格式定义。用法与电文长度格式相同。,HostDC,:,外部计算机代码。可以是字母或数字,一般不超过两位。用于区别与本机相连的外部计算机。,HostListenPort,:,外部计算机的侦听端口号。,SendSimulationMessage,:,发送模拟电文组标志。1 表示发送,0 表示不发送。模拟电文组在,XCOM,目录下的,XMessageGroup.def,文件中定义。,SimulationGroup,:,发送模拟电文组的组号。,SimulationInterval,:,发送模拟电文组的时间间隔。,SendAutoAckMessage,:,发送自动应答电文标志。0 表示不发送,1 表示发送。,配置项目说明(六),HostOffline,:,外部计算机离线。用于设置回线模式。0 表示外部计算机的回线模式是在线,一旦回线模式为离线,,XCOM,会自动重新连接。1 表示外部计算机的回线模式一直是离线。,电文配置项目:,MessageId,:,电文号。,XCOM,根据电文号得到相应的电文配置信息,进行发送和接收。,DestinationCode,:,电文目的地代码(按位表示)。通过设置该选项可以将电文发往不同的目的地:0 表示只作为接收;1 表示发给自己(无应答);2 表示发给第一个外部计算机;4 表示发给第二个外部计算机;8表示发给第三个外部计算机,依此类推。,配置项目说明(七),ReplyMessage,:,模拟应答电文。用模拟电文或电文组作为收到一条电文后的应答电文。,ReplyDelayTime,:,应答延时时间。设定发送模拟应答电文的延时时间。,IncomingChannelNumber,:,接收通道号。,XCOM,将接收电文存放到接收通道中,用户应用程序可以从接收通道上获得电文。,WaitMessage,:,应用应答电文。由用户组织并发送的应答电文。,WaitTime,:,应用应答等待时间。如果在等待时间内收到应用应答电文,认为电文发送成功;反之,认为电文发送不成功。,配置项目说明(八),RelevantProcessName,:,相关进程名。用于进程调度功能,当,XCOM,收到带有相关进程名的电文,启动相应的进程。,数据库模式下的附加电文配置信息:,MessageGroupID,:,电文组名。用于电文分组发送功能。数据库中的发送不成功电文,按照是否有时序发送要求分成电文组,进行分组发送。,MessageLength,:,电文长度。,CareFieldNo1:,关心字段一。用户可以设定一条电文中感兴趣的字段号,在发送或接收电文表中会显示电文关心字段的内容。一条电文可以设置三个关心字段号。,配置项目说明(九),CareFieldNo2:,关心字段二。,CareFieldNo3:,关心字段三。,TableSaveConfig,:,电文存数据库表配置。该项有三种配置选择:0 表示电文不存数据库表;1 表示电文存数据库中的发送或接收电文表;2 表示除了存发送或接收电文表,还存到电文对应的特定电文表。,RelevantTableName,:,数据库中电文表方式选项。该项为,table,,表示数据库采用电文字段配置表和接收电文字段表的方式。该项为非,table,值,表示数据库采用电文配置表和电文对应的特定电文表的方式。,XCOM,环境变量设置(一),将环境变量,BBS_HOME,设置为平台软件,BBS,目录的安装路径。将,BBSCONFIG,BBSERROR,分别设置为,BBS,目录下的,Config,和,Error,两个子目录的路径。,BBSCONFIG=%BBS_HOME%/CONFIG,BBSERROR=%BBS_HOME%/ERROR,XCOM,工作模式介绍(一),XCOM,有两种工作模式:配置文件模式和数据库模式。,在配置文件模式下,,XComServer,读取配置文件,XComServer.ini,和,XMessageConfig.ini,中的外部计算机配置信息和电文配置信息,并将用户更新的配置信息写入配置文件中。,在数据库模式下,,XCOMServer,与,XDBServer,进行通讯,读取存储在数据库表中的外部计算机配置信息和电文配置信息,将用户更新的配置信息写入数据库表中。接收电文和发送电文按照用户的设置,存入数据库的相应表中。当电文发送失败时,进行重发处理。,XCOM,工作模式介绍(二),系统启动步骤,配置文件模式下系统启动操作步骤:1.设置配置文件;2.启动,XComServer,进程;3.启动,XComTimer,进程。,数据库模式下系统启动操作步骤:1.设置数据库中的配置信息表;2.启动,XDBServer,进程;,.,启动数据库的个进程,.,启动,XComServer,进程;.启动,XComTimer,进程;。,午间休息,Lunch Break,XCOM,配置练习:文件配置选项(30分钟),环境变量的设置。,两人一组进行连接配置练习,启动,XCOM,的相关进程。,练习,XComStatus,的配置使用方法。,掌握配置每一项的含义。,系统构成图(2.0版使用数据库),DB,xdbserver,xcomsender,xcomreceiver,xcomupdater,xcomtimer,xcomserver,对方,通信,程序,APP,各进程简单概述,XdbServer,负责连接数据库,连接数据库的,url,和,driver,等配置 信息在,xdbserver.ini,文件中配置,XcomSender,负责将要发送的数据从,DB,中取出,并交给,xcomserver,进程处理,XcomReceiver,负责将,xcomserver,进程收到的数据插入数据库表,XcomUpdater,每次发送一条电文后更新数据库电文表,各进程简单概述,XcomServer,与文件方式配置方式的功能一样,负责与对等端通信程序进行通信,XcomTimer,定时向,XComServer,发送时间消息,,XComServer,对自己的事件列表进行判断是否发送应答电文、模拟电文、心跳电文以及等待心跳电文、等待应用电文的应答是否超时,,,之后做出相应的处理。,数据库方式下涉及到的表文件,在数据库方式下进行,xcom,通信,一共涉及到张表,如下:,HOSTCONFIG,MESSAGECONFG,SENTMESSAGEBUFFERLOG,RECEIVEDMESSAGEBUFFERLOG.,HOSTCONFG,配置每个通信对等端的主机信息,包括,IP,PORT,号,通信协议等等。,数据库方式下涉及到的表文件,MESSAGECONFIG,用来配置,xcom,收发电文的信息,包括电文号,长度等等。,SENTMESSAGEBUFFERLOG,用来存放即将发送的电文,,xcomsender,进程从该表轮循记录,交给,xcomserver,进程。,RECEIVEDMESSAGEBUFFERLOG,用来存放,xcom,收到的数据,应用可以从该表读取数据。,数据库方式下发送流程,应用,DB,API,XCOMSENDER,XCOMSERVER,对等端,数据库方式下接收流程,xcomserver,xcomreceiver,DB,应用,对等端,中间休息,Tea Break,XCOM,配置练习:数据库配置选项(30分钟),温习数据库下各进程的功能以及接收发送电文的流程。,两人一组进行连接配置练习,启动,XCOM2.0,的相关进程。,答疑,Questions?,一天休息,Day Break,
展开阅读全文