词条 | XCOM |
释义 | 创建XCOM共享空间,众人拾柴火焰高,让我们在此空间种子、浇水、开花、结果 iXcom技术白皮书 1. 前言... 1 2. iXcom简介... 2 3. iXcom的功能... 3 4. iXcom的特点... 4 5. 基本概念... 5 5.1. 应用... 5 5.2. 节点... 5 5.3. 电文... 6 5.4. 电文号... 7 5.4.1. 映射电文号... 7 5.5. 回线... 7 5.6. 主机名... 8 5.7. 主机代号... 8 5.8. 电文实时传输... 8 5.9. 电文可靠传输... 8 5.10. 静态连接... 9 5.11. 动态连接... 9 5.12. 队列... 10 5.12.1. 发送队列... 10 5.12.2. 接收队列... 11 5.13. 分组发送... 11 5.14. 分组接收... 11 6. 体系结构... 11 6.1. 系统核心... 12 6.1.1. 基础平台构件层... 12 6.1.2. 数据处理构件层... 13 6.2. 通信管理... 14 6.3. 应用适配器层... 15 1. 前言 本文档介绍宝信软件的中间件产品iXcom。iXcom属于消息通信中间件,它的主要功能是在应用程序间传递消息,这些消息可以在不同的通信协议(基于TCP/IP Socket)、不同的主机系统和不同的应用系统。 iXcom 提供简单易用、高效可靠的分布式应用开发和通信平台,利用它可以快速方便地开发可靠、高效的分布式应用。 iXcom 提供远程监控和控制功能,可以方便的控制通信线路和得知通信运行状况。 iXcom提供对多种主流数据库的支持,支持Oracle,SQLServer等数据库。 iXcom提供对多种开发语言的支持,支持C/C++ , Java, .NET, VB , Delphi等语言。 2. iXcom简介 iXcom 是面向分布式应用的消息中间件,它为网络环境下客户机/服务器(C/S)结构的应用系统的开发和运行,提供了灵活和易用的基础平台。 iXcom提供两种通讯模式,实时传输模式和可靠传输模式。在实时传输模式上,iXcom提供快速地数据发送能力,但在通信出现异常时不能保证数据地可靠到达。在可靠传输模式下,iXcom提供可靠的数据发送能力,严格按照应用发送电文的先后顺序进行电文发送,保证电文的可靠传输。 一个iXcom 的基本工作示意图如图1 所示。应用程序分布在网络上的两个结点上,当应用程序之间要传送消息时,应用程序只需将消息电文号和消息的内容通过iXcom提供的接口传给iXcom。iXcom 便会利用网络结点上的各个iXcom运行系统组成的虚拟网,将消息输送到消息接收者所在的结点上,然后提交给消息的接收者。 图1 3. iXcom的功能 iXcom的主要功能如下: Ø 提供端到端的实时通信服务。应用不必关心网络通信和其它的网络细节,应用只需关注应用业务层,减少学习和使用的难度。 Ø 提供端到端的可靠通信服务。适用于分布式环境下各种不同类型的应用开发,特别是对通信的可靠性要求较高的应用,提供多层次的异步通信机制。通信的应用双方在处理时间上可以互不相关,发送方在发送数据时接收方应用可以还未启动。 Ø 提供对发送电文的并发传输(通信规约必须是动态连接的)和接收电文的并发处理,适用于对效率要求比较高的业务领域。 Ø 提供简单易用、快速、高效可靠的分布式应用系统的开发平台,应用编程接口(API)简单且易学易用。网络异构环境和细节对用户完全透明并且支持多种网络底层环境,并提供了跨操作系统的C/C++/Java接口; Ø iXcom可以和具有不同通信规约的节点进行通信。 Ø 提供WebService,XML-RPC接口,可以和J2EE和.NET进行集成。 Ø 支持工业通信协议Modbus、3964R等协议。 Ø 通过iXcom提供的协议框架,可以对通信协议进行扩展。 Ø 可靠传输方式下,支持电文的广播和多播发送。 Ø 提供对多种消息格式(ASCII和二进制)传输的支持;提供快速可靠的面向事务处理的数据递送功能,保证数据的完整性和可靠性; Ø 提供分布式(C/S和B/S)的管理平台,通过DNS服务和应用管理等方式,提供对iXcom的管理和监控。 4. iXcom的特点 iXcom有以下特点: Ø 支持多种操作系统,如IBM AIX、HP-UX 、Linux、Windows 2000/NT/XP/2003 等。 Ø 支持多种开发工具。iXcom在所有平台上都支持C、C++、Fortran和JAVA;在Windows 系列平台上,提供VB/Delphi/C# 等接口。 Ø 网络节点数的支持量大:网络节点数的支持可从数十个到上千个,具体上限的多少与主机的性能有关。 Ø 基于TCP/IP Socket 。 Ø 支持客户/服务器(Client/Server)方式。 5. 基本概念 5.1. 应用 与具体业务有关的程序,包括客户端处理输入输出的客户程序(Client)、服务端负责业务逻辑的服务程序(Server)。 5.2. 节点 节点就是通信程序的宿主主机。一个iXcom可以和多个节点通信。一个节点主要有五个属性:IP地址、Port号、通信规约、主机名称和主机代号。 Ø IP地址 节点的IP地址,可以有备用IP地址。 Ø Port号 节点通信程序的监听端口号 Ø 通信规约(Protocol) iXcom和外部主机互相通信的规约 Ø 主机名称(HostName) 标识节点名称,不大于8个ascii字符 Ø 主机代号(HostDC) 标识节点代号,用做发送电文时的目的地,用2个ascii字符表示。 注:在本文章,没有特殊指名的话,节点和主机是同一概念。 5.3. 电文 在通信中间件之间传送的数据包,一般由电文头、电文体(数据块)和结束符组成。 其中电文头长度an>1-2个字符,对于特定的通信规约而言,结束符是确定不变的。 Ø 数据电文(Data Message) 用于传送应用系统的数据块,iXcom不对该类型电文进行拆分,但该电文有可能被底层的TCP协议进行拆分和重组。 Ø 应答电文(ACK Message) 由通信的接收方发送,用于告知发送方电文是否已被正确接收。 Ø 心跳电文(Heartbeat message) 用于监视回线和对方通信程序的状态,用作状态检测,双方可根据实际需要决定是否发送心跳电文。 注: 1. 应答电文是用于保证通信的可靠传输。 2. 控制电文、心跳电文是通信相关的电文,应用不用关心此类电文。 5.4. 电文号 用于标识一条电文的类型和目的,一般在电文头部中有电文号字 段。电文号是通信双方按业务划分共通制定的,它一般用长度不大于6位的ASCII字符表示。 5.4.1. 映射电文号 用于历史问题等原因,可能在同一项目中出现电文号重复的现 象。为了便于应用方便处理电文,iXcom提供映射电文号的功能,应用可以根据需对每个电文号定义它的映射电文号,该映射电文号必须是全局唯一的,也就是说在同一项目中虽然电文号可以重复,但映射电文号必须是唯一的。 注:若项目中有重复电文号,iXcom和应用之间的接口有如下约定: 1) 应用发送电文时,提供的电文号必须是映射电文号。当iXcom发送电文时,iXcom会把映射电文号转化成实际的电文号进行发送。 2) iXcom收到电文后,将把收到电文的映射电文号发送给应用,而不是原有电文号。 5.5. 回线 在通信程序双方之间建立的一条TCP 连接,一条回线既可以接收也可以发送数据。一般来说,通信双方通信程序之间需要建立两条回线。 一般情况下,在iXcom中采用的回线模式如下: 5.6. 通信模式 通常来说,XCOM间通信,双方都有一个客户端和服务端。甲方要发数据给乙方,甲方XCOM的客户端把数据发给乙方的服务端。反之,乙方发数据给甲方,是乙方的客户端把数据发给甲方的服务端。 Socket类型 对应值 说明 WRITE C 客户端session读写:本方作为客户端,主动连接对方,连接建立后,该Socket连接可以发送电文。 READ S 服务器端session读写:本方作为服务器端,等待对方主动连接,连接建立后,该Socket连接上可以接收电文并且发送底层应答(按规约情况而定)。 READ_WRITE CS 客户端和服务端两个session都读写,融合以上两个session的功能。 5.7. 主机名 用于在通信时标识通信节点的主机名字。 5.8. 主机代号 用于在电文收发时标识发送方和接收方,一般在电文头部中有主机代号的字段,用2个大写ascii码字母表示。 5.9. 电文实时传输 电文实时传输指电文必须在规定的时间内必须传递到目标节点。iXcom在规定时间内提供快速可靠的传输机制,保证消息传递的实时性和可靠性,但在异常(网络设备异常或对等机进程异常)时不保证消息的可靠传输。在异常情况下,应用发送给iXcom的电文数据将被丢弃,iXcom将给应用错误返回值,应用必须考虑电文重发或其它处理机制。 5.10. 电文可靠传输 电文可靠传输指电文的传递在时间上无特殊的要求,在网络连通的情况下必须保证消息可靠的传递到目标节点。电文发送时,在遇到可恢复的故障(包括机器故障或网络故障)情况下,通过后续重发电文能够保证消息的可靠传输。 5.11. 静态连接 指通信双方建立的TCP/IP连接一直保持,直到停止通信程序或异常终止。当通信出现异常时,客户端必须具备重新连接服务端功能,保证通信的可靠性。静态连接示意图如下: 注:若通信规约不存在应答电文,等待应答阶段将不存在。 5.12. 动态连接 动态socket通信是指计算机之间的TCP/IP连接方式是动态的,当一次通信结束后,计算机之间的连接随之关闭,下一次传送电文时,需要重新建立socket连接。如下图所示: (注:发送方在收到应答电文后必须关闭socket连接。) 5.13. 队列 在可靠传输模式下,队列是消息存储的地方。消息在收发过程中将存储于队列中,可靠队列中的消息存储于数据库中,不可靠队列中的消息存储于内存缓冲区中。队列结构由消息索引和数据存储区等部分组成。iXcom 系统提供的队列基本类型为发送队列和接收队列。 5.13.1. 发送队列 发往目的地的电文存储在发送队列中,电文根据发送目的地(即主机代号)分别被放到不同的逻辑发送队列中,iXcom核心从发送队列中取出电文进行网络发送。 5.13.2. 接收队列 iXcom收到电文后,将根据发送方的设置(即主机代号)将电文放到相应的逻辑接收队列中。 5.14. 分组发送 应用可以根据业务的需求把发往某一主机的电文号按业务进行分组。每个组看作一个队列,每一组电文有对应的组号(整数)。对应于每一个队列,iXcom有一个且同一时刻只有一个进程对该队列进行操作发送,队列与队列之间的电文是互不影响的,一个队列中的电文堵塞,不会影响其他队列的电文。 注:分组发送仅限于动态连接方式,不能用于静态连接方式。 5.15. 分组接收 应用可以根据业务的需要把来自同一主机的电文按业务进行分组。每个组看作一个队列,每一组电文有对应的组号(整数)。对应于每一个队列,iXcom有一个且同一时刻只有一个进程对该队列进行操作发送(发送给应用,比如Tuxedo),队列与队列之间的电文是互不影响的,一个队列中的电文堵塞,不会影响其他队列的电文。 6. 体系结构 本节描述iXcom的基本组成和运行方式。 在应用系统进行数据通讯时,应用进程通过iXcom接口函数,将电文放入队列中。iXcom 核心进程从队列中取出消息,根椐电文中的电文号,通过iXcom 之间(或与其它通信程序)建立的数据通道,将该电文传送到接收者所在iXcom(或其它通信程序)。接收者所在的iXcom 核心收到电文后将电文写入接收队列中,接收应用进程通过调用iXcom的接口函数,从接收队列中取出电文。至此,一个电文传递完毕。 6.1. 系统核心 系统核心由两大部分组成,即基础平台构件层和数据处理构件层。 6.1.1. 基础平台构件层 基础平台构件层由以下几部分组成,包括事件分派、socket传输、进程管理、数据库连接池和线程池。 事件分派 事件分派主要工作是建立socket连接、维护监控通信链路;从通信链路中读取数据并分派给协议插件。 Socket传输 应用电文发送和处理。 进程管理 进程管理主要工作是管理和维护iXcom的各进程。 数据库连接池 数据库连接池主要工作是在电文可靠传输模式下,提高数据库访问速度的效率。 线程池 线程池主要工作在于提高在并发处理电文时的处理效率。 6.1.2. 数据处理构件层 数据处理构件层由以下几部分组成,包括电文交换、 电文时序控制、数据转换、协议插件和异常处理。 电文存储 电文存储包括电文的写入和读取。当收到一条电文时,iXcom要把它写入数据库,以便后续的应用处理;当有待发数据时,iXcom要从数据库中读取相应的数据,然后通过基础平台层发送给目的地。 电文时序控制 若应用电文存在业务关系,iXcom发送电文是严格按照应用写入电文的先后顺序进行电文发送。 数据转换 当电文中存在二进制数据时,iXcom可以通过该电文号所对应的转换格式把该电文内容全部转换成ascii码电文,方便应用的处理。 协议插件 异常处理 当iXcom收到异常数据时(如电文号不对等),会给对方发送底层负应答电文。 6.2. 通信管理 通信管理主要由几部分组成,包括运行管理、平台监控、配置管理和日志管理。 运行管理 通过运行管理功能,可以启动和关闭回线,可以置回线开启和关闭状态。 平台监控 通过平台监控,可以实时获取当前通信状态(在线或离线)。 配置管理 通过配置管理: Ø 可以查看当前主机配置信息,可以查看当前电文号配置信息。 Ø 可以修改原有主机信息(比如IP地址或port号),可以增加电文号,可以新增回线。 日志管理 通过日志管理,可以查看各条回线的通信状态信息,从而进行通信跟踪维护和排障。 6.3. 应用适配器层 应用适配器是应用和iXcom进行沟通的桥梁,应用通过适配器 把待发数据发送给iXcom进行处理;iXcom通过适配器把待处理数据发送给应用进行处理。 |
随便看 |
百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。