数据交换平台
数据交换平台作为交易中心分布式架构体系的基础设施平台,整个系统采用网状拓扑结构,两点间两两通讯,如下图所示。
由多应用节点组成应用服务集群,任意应用节点宕机后都可以迅速切换到备份节点。服务集群通过调度算法或相关设备对外提供负载均衡服务。
如下图所示数据交换平台的架构图,数据交换平台由以下几部分组成:
进程
描述 | |
---|---|
服务发布者 | 发布服务消息的应用系统,通过DEP组播发布服务消息,也支持与服务使用者之间建立专有的TCP连接通信。向DA注册其提供的服务信息,支持与DA之间TCP直连通信 |
服务使用者 | 发布服务消息的应用系统,通过DEP组播发布服务消息,也支持与服务使用者之间建立专有的TCP连接通信。向DA注册其提供的服务信息,支持与DA之间TCP直连通信 |
DA | 实现数据服务发现和管理功能 |
CL | 存储子网中所有服务发布者的服务消息,实现数据持久化功能,提供数据恢复能力 |
SMON | 提供系统监控和命令控制功能,将监控信息通过接口传输到中央监控平台 |
MA | 消息代理节点,实现跨网段通信,可以接收子网里服务发布者发出的组播消息,与其他子网的MA采用TCP直连通信。可以向本子网组播接受来至于其他子网MA的消息 |
TOE | 对一组独立数据进行统一排序。排序后,消息将发送到单一报文通道,并以同一排序发送到所有接收端 |
CM | 配置管理界面,通过webservice从元数据管理平台导入服务配置信息,并将服务配置信息从CM配置给各应用 |
下面讨论数据交换平台的技术特点:
1)可靠的组播网络传输
为減少网络拥塞和延迟, 数据交换平台的应用节点以UPD组播方式向多个接收器发送消息,虽然UDP组播传递方式并非可靠,但数据交换平台在UDP组播上建立了可靠的组播传输系统。
2)支持多种通讯模型
数据交换平台支持发布/订阅模型实行数据传输。发送消息的应用程序通常被称为发布者或生產者。接收端应用程序被称为用户或消费者。发布/订阅模型以通道作为传输媒体。通道以唯一命名定义。它为发布者和消息用户间提供逻辑性的传输机制。当消息发送至通道时,订阅该通道的所有应用均能接收该消息。
数据交换平台亦支持点対点消息传输。当发送点对点消息时,发送必须指定接收端的地址。每一个在消息传输基础设施上的应用程序须被分配或初始化一个唯一实例名称。发送者使用此实例名称作为目的地将消息发送到接收端。这种虚拟地址的方法,使发送者和接收者可以位于网络中的任何地方进行消息传输。发送者和接收者的位置可被消息中间件自动发现。
这两种通讯模式可演化出以下几种通讯模型:
• 一对一
在一对一的通讯模型里,系统组件彼此以点对点交换消息。在下面的例子中,系统监视器发送点对点命令消息到外汇交易系统。外汇交易系统以点对点形式回复命令执行状态消息到系统监视器。
• 多对一
在多对一模型中,多个系统模块发送点对点消息到系统监控组件模块。在这个例子中,系统监视器发送一对多的组播状态请求消息到系统模块。系统模块以点对点回复他们的状态和统计消息到系统监视器。
• 多对一
在多对一模型中,多个系统模块发送点对点消息到系统监控组件模块。在这个例子中,系统监视器发送一对多的组播状态请求消息到系统模块。系统模块以点对点回复他们的状态和统计消息到系统监视器。
• 一対多
其中一个典型的发布/订阅模型例子是从一个系统发送消息至多个下游系统。例如,在交易执行后,交易系统发送执行报告消息到下游系统和通知客户端相关的执行细节、并将信息发送到结算系统和向市场发布系统更新报价。
• 多对多
在多对多的传播模式中,多个发布者广播消息给多个消息用户。当中的典型例子是,系统模块广播状态和统计消息给多个系统监视器。在系统中有多个系统监视器提供容错或负载均衡不同的监控功能。
3)支持服务发现和注册
数据交换平台的服务发现和注册功能使用了标准的SLP开放协议,并进行了完善。主要特点如下:
• 服务提供者,服务用户和目录代理通过数据交换平台提供的消息传输服务相互沟通
• 服务查询必须通过目录代理
• 引入心跳机制,可检测服务的可用性
服务用户可利用主动或被动的方式发现可用的目录代理列表。(如下图所示流程)在主动发现机制,服务用户通过服务请求通道向所有目录代理发送目录代理服务请求,目录代理以一对一方式回复请求,并提供自己的资料。在被动发现机制,目录代理定期发布自己的信息到目录代理广告通道,服务用户从这个通道获得目录代理的列表。
4)应用服务节点备份策略
根据不同的使用情况,应用服务节点间的备份分为热备不能同时提供服务、热备能同时提供服务以及冷备三种情况。
• 热备但不能同时提供服务
同一组应用服务节点通过服务注册节点注册各自信息,按照注册的先后顺序,注册服务节点排除服务提供列表。当有查询对应的服务请求到达时,注册服务节点返回服务提供表的第一个可用服务。当服务列表上第一个服务节点不可用时,则返回下一个可用服务节点信息。如果原第一服务节点重启后重新注册,则加入到服务列表末端,不影响现有服务使用。如下图:
• 热备可以同时提供服务
同一组应用服务节点通过服务注册节点注册各自信息(含有周期性更新的负载和心跳信息)。当有查询该服务的请求到来时,返回负载最轻的服务节点提供服务。
- ·冷备
冷备可用通过负载均衡器硬件或者配置来实现。冷备模式下应用服务逻辑简化,健壮性和稳定性更可靠,在应用需求许可的情况下建议设计时优先选择此种方案。