数据交换平台建设方案

guolimin 贡献于2016-08-04

作者 neusofter  创建于2013-12-09 00:49:00   修改者neusofter  修改于2013-12-13 08:26:00字数4447

文档摘要:目前,江西省财政厅已经拥有了国库集中支付、工资统发、惠农一卡通等多个业务应用系统,这些业务系统通过MQ与人民银行及代理银行传递数据。为了保持业务系统的先进性、可用性等因素,不可避免会出现在一段时间多个厂商开发的相同系统并存的情况(新系统替代老系统、新系统试点运行等)。这种情况下,不同厂商开发的系统就要从同一个MQ消息队列中取数据。每个厂商必须在程序中增加过滤条件,只取属于自己的消息。
关键词:

数据交换平台建设方案 第页 数据交换平台建设方案 版本:0.0.0-0.9.0 2013-12-09 东软集团股份有限公司 数据交换平台建设方案 第页 目录 1. 引言 3 1.1 背景 3 1.2 目的 3 1.3 平台建设目标 3 1.4 WMB简介 3 2. 数据交换平台建设技术方案 4 2.1 方案描述 4 2.2 消息流设计 5 2.3 创建消息代理 7 2.4 部署消息流 7 3. 数据交换平台部署及切换方案 8 3.1 统计待分发的MQ消息队列 8 3.2 设计消息分发规则 8 3.3 创建本地消息队列 8 3.4 开发消息流 8 3.5 创建消息代理 8 3.6 修改业务系统中的接收队列 8 3.7 启动并部署消息流 8 3.8 实施工作分工 9 东软集团股份有限公司 数据交换平台建设方案 第页 1. 引言 1.1 背景 目前,江西省财政厅已经拥有了国库集中支付、工资统发、惠农一卡通等多个业务应用系统,这些业务系统通过MQ与人民银行及代理银行传递数据。为了保持业务系统的先进性、可用性等因素,不可避免会出现在一段时间多个厂商开发的相同系统并存的情况(新系统替代老系统、新系统试点运行等)。这种情况下,不同厂商开发的系统就要从同一个MQ消息队列中取数据。每个厂商必须在程序中增加过滤条件,只取属于自己的消息。一旦某个厂商忘记增加过滤条件或写错过滤条件,所有厂商的系统都无法正常处理数据。给业务系统造成了很大的风险。针对这个问题,财政厅信息中心提出了数据交换平台的概念。 1.2 目的 该文档说明了数据交换平台的实现方式及部署步骤,供相关人员参考。 1.3 平台建设目标 数据交换平台实现了根据设定的规则将一个队列中的消息分发到不同的队列中。平台必须实现以下目标: 1、能够识别不同结构的消息; 2、根据消息中的特定字段进行消息分发; 3、消息分发规则可以灵活配置; 4、消息分发具有较高的性能; 1.4 WMB简介 WMB(Websphere Message Broker)是IBM应用整合家族的一个重要组成部分。其本质上就是一种“企业服务总线”的产品,它可以支持各种应用程序接口和网络协议,为企业应用提供了丰富的接入方式。同时,通过方便快捷的编程方式提供消息路由、格式转换、服务封装等功能,为企业应用互联提供了方便、高效、安全的平台。 WMB的产品由开发环境和运行环境两部分组成。开发环境是指开发工具(ToolKit)和调试环境,运行环境由代理(Broker)、配置管理器(Configuration Manager)和用户名服务器(User Name Server)三个部件组成。每个部件都必须依赖于MQ队列管理器实现相互间的交互沟通,代理和配置管理器还必须依赖于存放相关配置和执行组件。 东软集团股份有限公司 数据交换平台建设方案 第页 2. 数据交换平台建设技术方案 2.1 方案描述 使用WMB实现的数据分发功能示意图如下: 图1 数据分发功能示意图 这里主要使用了Message Broker的智能路由功能。Message Broker的智能路由功能能够让用户根据消息的格式和内容定义消息转换和路由决策,规则的定义可以通过GUI界面来实现,十分简单易行。如我们可以在数据中设定路由信息标志位,MQ本身是无法解析数据报中内部的具体信息的,而Message Broker可以解析和识别消息的具体内容,可以根据消息中设定的路由标志位进行数据的智能路由。如:Message Broker从财政端MQ服务器的接收队列中取得消息,然后智能地分析数据的目的地,并准确将数据转发出去。 通过智能化数据路由和转换功能,用于可以在应用程序之间实现消息流,同时满足业务过程的数据流要求;同时它可以随着业务要求的变化而变化,当业务需求变化时,仅需对Message Broker,做必要的更改,而无需改动原有的应用程序,使系统的可扩展性大大增强。 除了智能路由功能之外,Message Broker还具有以下更加丰富和完善的功能: 对数据的各种复杂的计算和处理功能。它用每一个Node表示对消息的一种处理,如compute node 可以对消息进行各种计算操作,其他Process Node 有:input node, output node, filter node, check node 等;node 与node相连,便组成了一个Message Flow,由各种“Processor Node” 组成的Message Flow,可对消息进行各种处理操作,在消息从数据中心经过时便可以被进行相应地计算,从而发往目的应用系统; 数据格式转换和路由服务。Message Broker提供多种数据格式服务,其中包括:自定义格式,用户可以通过MRM(Message Repository Manager)来定制自己的消息格式;XML格式;面向纪录的信息格式,如C的头文件,COBOL records等。对于这些消息格式,它提供相应的剖析器进行解析,实现它们之间的格式转换。如对于用户的bit stream的输入信息可以输出为XML的格式,反之亦然。 与数据库紧密集成。提供了与DB操作相关的各种Node, 如INSERT,UPDATE,DELETE等Node,用户可以之间通过ESQL进行和数据库的操作,如把数据存入数据库,从数据库中取数据等;这样,当数据通过Message Broker时,我们便可以将数据进行各种数据库操作,为今后的数据仓库做准备。 东软集团股份有限公司 数据交换平台建设方案 第页 通过Message Broker,用户完全不需要专门开发接口和路由选择程序,只需要在中心的Message Broker上对每个业务系统的数据格式作相应定义,并定义相关的数据路由规则即可。这样一方面简化了其实现方法,另一方面大大提高了系统的可维护性。 2.2 消息流设计 消息流是WMB中可运行的最小概念,它代表了一段对消息的处理逻辑,描述了消息的处理流程。简单的消息流由节点(Node)和连线(Connection)组成。每个节点表示消息处理流程中的一个步骤,如读队列、计算、映射、写队列等。 假定消息队列中的消息由三家厂商开发的系统共同使用。根据这种情况设计的消息流如图所示: 图2 消息流设计 消息流一般开始于Input节点,包括MQInput、JMSInput、HTTPInput、SOAPInput、SCAInput、FileInput、EmailInput等。图中所示的消息流开始于节点名为Q1_IN的MQInput节点,通过设置本地队列名称可以指定接收消息的队列。MQ中的消息为二进制的字节流,通过为MQInput节点设置解析器,就可以将字节流消息解析为结构化的消息树。这样在后续处理时就可以得到消息中各字段的数据。通常每个节点(Node)都有各自的入口端子和出口端子(Terminal),入口端子表示消息自上一个节点从此流入,出口端子表示消息从此处流入到下一个节点。Q1_IN有三个出口端子,分别是失败、输出和捕获。这三个端子都与QLOG节点连接,QLOG节点是一个MQOutput节点,流入这个节点的消息都会被输出到指定的MQ队列中。通过监听这个队列,就可以将Q1_IN节点接收到的所有消息记录到日志中。 Q1_IN的输出端子连接到一个Compute节点。Compute节点通常用来对消息进行二次计算,可以对消息的结构进行剪切、粘贴、创建、删除等,也可以对消息内容做任意的修改和调整。在Compute节点中使用ESQL(Extended Structured Query Language)语言,它是由Message Broker 定义的、在消息流中运行的编程语言。Compute节点中的代码如下所示: 东软集团股份有限公司 数据交换平台建设方案 第页 在Compute节点的ESQL代码中只需要关注initRouter()方法,在这个方法中设置了路由条件。其中InputRoot.XMLNSC表示二进制消息流解析后的整个消息树。XMLNSC对应解析方式,不同的解析器引用方式不同。使用时应根据MQInput节点设置的解析器来确定。 Compute节点与RoteToLabel节点结合使用,根据Compute节点中设置的路由规则将消息路由到不同的节点,这样就实现了消息路由的功能。 东软集团股份有限公司 数据交换平台建设方案 第页 2.3 创建消息代理 代理(broker)是WMB的基本运行平台,也是整个运行环境中最核心的部分,其下可以创建多个执行组,部署并运行不同的消息流。代理必须依赖于队列管理器和数据库而工作,队列管理器用户组件之间的沟通交流,数据库用于存储配置及运行组件,如执行组、消息流、消息集字典等。每个代理必须运行在一个队列管理器上,它们是一一对应的。 在Message Broker Toolkit 中提供了创建代理界面,输入代理名称、队列管理器名称、执行组名称等元素后,工具自动创建队列管理器和代理。 多个代理可以形成代理域网络,从而形成多机环境下的“企业服务总线”。通过集群或克隆技术,多个代理可以相互备份避免单点故障。 2.4 部署消息流 将开发好的消息流部署到消息代理中,并启动代理后便开始了数据分发功能。 注:在技术方案描述中省略了创建消息集、配置数据源、建日志表等操作。 东软集团股份有限公司 数据交换平台建设方案 第页 3. 数据交换平台部署及切换方案 3.1 统计待分发的MQ消息队列 统计并梳理需要做消息分发的队列、队列中消息的结构和MQ集群情况。统计结果可以保存在下面的表中。 3.2 设计消息分发规则 整理每个消息队列中消息的分发规则,包括根据报文中的哪个字段分发、分发到指定队列应该满足的条件等。 3.3 创建本地消息队列 根据设计分发规则时确定的消息队列,在MQ中创建相应本地队列。 3.4 开发消息流 根据分发规则设计消息流。如果队列中只有一种结构的报文,应先根据报文结构设计消息集。 3.5 创建消息代理 根据待分发队列及MQ集群情况创建代理。创建代理时应考虑原队列中消息的数量级和性能要求,必要时使用多线程、多执行组或代理集群等方式。 3.6 修改业务系统中的接收队列 修改原业务系统中的接收队列为分发后的消息队列。 3.7 启动并部署消息流 将开发好的消息流部署到代理中。 注:其中第3.3步骤中应根据实际情况考虑在原MQ队列管理器中新建队列或在新建的队列管理其中创建接收队列;第3.6和3.7步骤应该在没有业务数据的时间段操作,如凌晨。 东软集团股份有限公司 数据交换平台建设方案 第页 3.8 实施工作分工 财政方: 1、提供MQ部署详细信息,主要包括队列管理器名称、发送队列、接收队列; 2、梳理各接收队列的报文结构,如支付报文、账户资金; 3、制定新队列命名方案,例如原队列名+厂商拼音首字母; 4、确定各种结构报文的路由规则,如支付报文根据消息头中的行政区划节点(FIN->HEAD->FINNODE)确定路由到哪个队列; 5、通知银行及单位平台部署的时间,避免在部署时发生业务并且在部署后发现问题时及时通知财政; 银行方: 1、避免在平台部署时发生业务; 2、平台部署后发现错误及时通知财政; 实施方: 1、根据财政提供的新队列名称创建队列; 2、根据财政制定的路由规则创建消息流; 3、设计记录日志功能,包括接收到底消息内容、符合的路由规则、路由到哪个节点等; 4、在对应的队列管理器上创建代理(需要评估是否会对队列管理器造成影响); 5、部署之前在测试环境验证; 6、制定平台出现故障时的回退方案; 7、提供必要的培训,如平台部署方法、消息流开发/修改方法、消息日志查看、常见故障排除等。 东软集团股份有限公司

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档