公共数据交换解决方案
要实现的目标:
l
为整个项目系统提供统一的数据交换标准、规范及开发平台;
l
为各个系统之间、异构数据库之间、不同网络系统之间的信息提供整合手段;
l
与外界系统提供统一的、安全的、可靠的连接手段。
1
数据交换的需求分析
l
基本功能:
数据的发送与接收。
l
数据交换的语义识别
:数据格式、语法所描述的信息应该有效,各种系统在传递、读出、解析和使用文档中的信息不会产生二意性。
l
传输的要求
:数据格式易于传输,能够实现各个应用系统之间的同步、异步信息交换。格式技术兼容各种网络系统和通讯协议。
l
安全方面的要求:
交换的数据文档需要基于应用系统之间约定的规则进行验证,要能建立数据格式、数据内容、网络传输等不同层面的安全防护机制。
l
提供应用整合功能:
自动分发或者触发相应处理程序处理所传输的数据。
l
断点续传功能:
不重传、漏传、断点续传,实现高效传输。(使用
JMS
重新传送,保证传送的完整性)。
l
非功能性要求:
格式稳定性高,易于管理,有良好的可扩展性和可增长性。使用该格式可降低人力运作。
2
数据交换的原理
2.1
数据交换的模型
数据交换通过网络进行的,而网络信息交换有国际公认的
OSI
七层模型,而电子政务的数据交换只注重应用层、表示层。如下图:
图
1 OSI
七层模型
在此模型中,应用系统之间按应用层协议进行通讯,应用系统内部依靠接口提供服务。而在网络中,为了保证应用系统能理解数据传输的要求,在传输者、接收者之间是以
XML
作为媒介。
2.2
数据交换结构
从
OSI
七层网络模型分析数据交换平台主要是解决应用层和表示层的内容。为了确定设计交换平台的功能,把表示层按功能划分为:内容管理层、数据交换层、数据传输层。由于本业务应用系统都处在应用层,所以应用层层也就是
OSI
中的应用层。
OSI
中的表示层在层次上分为:内容管理、数据交换。
1
)内容交换(表示层)
内容管理层是指内容的表示(存储)、操作(传送)和授权管理等功能。
一个标准的数据交换平台的任务可以分为两个方面:一个是对遗留业务系统的数据进行整合,为交换和共享做准备;另一个是通过规范化的方式对业务系统提供统一的数据访问支持。这就要求标准数据交换平台遵从统一的数据表示方式,采用标准的
XML
表示数据,
XML
的
DTD
可根据业务不同而定义。
内容管理层在工作的过程中,如果有需要跟远端的其他数据交换点进行互操作的时候,通过数据交换层来完成。
在内容管理层提供简单易用的界面方面用户轻松定义各种类型的
XML
格式文件和二进制文本格式文件。然后该功能模块会生成对应格式的
Schema
(
DTD
)和模式文件。此外,提供验证机制用于检验所建立数据格式模型的正确性。
2
)数据交换(表示层
信息服务的支持)
数据交换层的任务是完成不同数据交换点之间的互操作,官能上应该包括数据的定位和数据包封装。数据的封装和解封与操作命令一样,是一个标准数据交换平台的规范性的重要体现。所有在节点之间传送的数据,宝座操作命令本身,都要按照规定的格式进行编排,这样才能保证数据交换节点之间的互操作性,以屏蔽底层的物理特性的多样性。所以必须解决以下问题:
l
信息的统一封装,即信息的打包和信封的书写功能
l
统一编址,应支持一套统一的、简单易用、易扩展的地址编码体系
l
信息的可靠传输
l
传输的效率
l
可管理性,要对传输的过程进行全程监控,提供日志、审计、会话管理、传输优先级设定、流量负荷分析。
3
)安全的数据传输(表示层)
数据传输层用于实现数据交换结点之间的数据传输。在软件层面,重要的一点就是要采用成熟的传输协议,如
HTTP
或者
SOAP
。
l
HTTP
协议具有简单、完备、轻量级、扩展能力强等特点。较小的传输开销可以保证较强的传输性能,完备的协议规程可以保证传输的稳定性。同时,通过适当的扩展,可以提高可靠性和完全性。
l
安全性可以通过引入基于
PKI
(
Public Key Infrastucture
,公钥体系)的
CA
(
Certificate Authority
,认证中心)体系来解决。
3
数据交换中心的设计
3.1
信息的统一表示
要实现信息共享,实现异构系统之间的互连互通,信息的统一表示是关键,信息的表示独立于系统、平台。为了实现这一目标,在进行平台开发、应用系统开发时要制定或遵循六个方面的信息标准:
1
)元语言标准
元语言是描述其它语言的语言。电子政务的信息表示语言采用
XML
元语言标准。该标准用来对政务信息的语言的语法、编码、令名进行行式化描述。该标准可采用
W
3C
制定的
XML
元语言标准,设计者应根据电子政务中的信息表示的需求进行裁剪。
2
)信息编码标准
该项标准对字符的编码、字符集定义、字符引用、字体的表示进行了规定。一般采用
W
3C
制订的
XML1
。
0
为基础,以
GB13000
为缺省的字符集,同时也能支持
GB18030
字符集标准。
4
)元数据标准
元数据是描述电子数据的数据,制定该标准是为了方便政府信息资源有效的保存、查询、再利用。在
XML
标准中,元数据的表示采用了“词汇表”、“命名空间”、“文档类型定义(
DTD
)”、
XML Schema
等方式实现。
在异构关系数据库之间还可通过建立元模型统一数据的语义。
5
)
显示标准
在业务应用系统中,要将数据和数据的显示分开。这样就把数据的加工同不同的输出、显示分开处理,而不会造成
HTML
中文档结构的复杂性。显示在不同设备上,但内容只有一个。显示标准一般采用
W
3C
推荐的层叠式样单
CSS
、可扩充式样单语言
XSL
。
6
)
解析、转换和封装标准
要实时共享交换的各种信息,必须具备效率高的数据结构封装、解析、转换的功能,因此必须有相应的标准。
3.2
完整的消息服务能力
数据交换平台是一个中间件软件,它在信息交换过程中要进行频繁的信息封装、控制信息的同步
/
异步交换、排队处理等。所以它要有好的信息服务机制,这就必须解决以下的问题:
l
信息的统一封装:信息的打包和信封的书写功能
l
统一编址:应支持一套统一的、简单易用、易扩展、易管理的地址编码体系
l
信息的可靠传输:将信息可靠的传输到目的地
l
路由管理:在多个信息交换节点时,实现信息的准确传递。
l
传输的效率:采用信息的表示与交换分开、专用的交换设备、信息压缩等方法提高传输的速度。
l
可管理性:要对传输的过程进行全程监控,提供日志、审计、会话管理、传输优先级设定、流量负荷分析
3.3
数据交换平台的体系结构
实现信息的交换根据环境的不同有三种方式:
1
)具有相同数据库管理系统(
DBMS
)的分布式系统的数据交换,可直接用相应系统的有关功能:
l
在
ORACLE
系统中,可以利用快照技术实现表数据的交换
l
在
DB2
系统中,可以利用复制服务器实现数据的交换;
2)
利用已有的消息中间件服务器:
IBM
的
MQSerries
、
BEA MESSAGE()
以及
JAVA
的消息服务
JMS
来实现。
在本系统设计中,采用
JAVA
的消息服务
JMS
。
4
基于
XML
的
JMS
数据交换设计
4.1
交换系统层次结构
图
2
交换系统层次结构
4.2
数据交换系统逻辑
图
3
数据交换逻辑
4.3
源数据的封装
从数据库中读取需要交换的数据,封装成
XML
文件中,如图
4
。
l
使用
SQL
存储过程从
DB2
检索
SQL
结果集;
l
将
SQL
结果集格式化成
XML
数据文件。
图
4
数据库数据到页面数据的转化
对于把数据封装成为
XML
文件,
DB2
支持多种为
XML
抽取数据的方法:
l
使用
DB2 XML
扩展器(
extender
)和用户定义的函数
l
使用
XML UDF
(用户自定义函数)来将存储过程结果集转换成
XML
文档
虽然
在
XML
存储过程而不是
SQL
存储过程中声明游标,可以完全消除了对
SQL
存储过程的需求,并且再也不需要返回结果集。然而,让
SQL
和
XML
存储过程保持分离的一个原因是:可以通过直接调用
SQL
存储过程以
SQL
格式检索数据,或者通过调用封装器
XML
存储过程以
XML
格式检索数据。
而将
XML
数据如何格式化成为
HTML
文件则不在本方案考虑的范围之内。
4.4 MQ
数据发送
4.4.1
MQ
的简单介绍
JMS
是
Java API,
允许应用程序来建立、接收和读取消息。程序依靠这些
API,
在运行时需要一个
JMS
实现接口,来提供管理和控制,这被称为
JMS provider,
现在有几种不同的
JMS Provider;
在
JBoss
中的
JMS
叫做
JbossMQ
。
当我们发送一个消息,不能直接发送到对此消息感兴趣的接受者。而是发送到一个目的地。对此消息感兴趣的接受者必须连接到目的地,得到此消息或在目的地设置订阅。这样,就实现根本上的异步性和安全性。
4.4.2
基本流程
(
1
)订阅发布式的
MQ
将封装好的
XML
文件以字节流的方式通过
MQ
中间件,采用持久性的发布订阅方式,把消息发布到应用服务器上(如
JBOSS
)。当消息订阅者与此服务器相连接时,如果有发布给自己的消息,就会取走。如果不是所有的消息订阅者都订阅到此消息,
JBOSS
服务期将始终保存此消息,同时,订阅过的订阅者将不会重复订阅此消息。在此过程中,不要求发布者和订阅者同时连接中间服务器,而且此消息可以存放到服务器的文件或者数据库中,即使系统崩溃,也不会丢失,能够恢复。所以
具有能简单灵活地集成各个数据库子系统并自动实现数据采集和分发的功能。
(
2
)点对点式的
MQ
如果采用
PTP
(
Point-To-Point
)的
MQ
消息传递方式,同订阅发布式类似,不同的是
MQ
负责把每一个消息传递给一个特定的消息消费者,一旦此消费者消费了此消息,其他的消费者将不会得到这个消息。
4.4.3
MQ
的独特优势
MQ
提供了强有力的消息处理机制,支持事务、持久性、可靠性的订阅措施以及消息的选择和分类。
(
1
)
MQ
与传统方式的比较:
图
5 MQ
与传统方式的比较
(
2
)时间独立性,即异步性:
图
6
MQ
的异步性
(
3
)提高应用开发的速度和质量:
图
7
MQ
的高速度、高质量
(
4
)增强系统的可维护性:
图
8
MQ
的可维护性
(
5
)订阅发布式的优点:
图
9
MQ
订阅发布式处理消息
点对点式(
PTP
)消息处理:
图
10 PTP
消息处理
4.5
目的数据的解析
因为是符合标准的
XML
格式文件,所以使用一般的解析
XML
组件或者中间件即可转化为自己所需的格式数据。
4.6
交换系统的特点
l
数据交换与应用处理相互独立:交换系统真正做到了在数据传输时与数据的内容、形式无关;
l
事务处理:
MQ
可以与事务很好的结合在一起,保证了消息的可靠性。
l
与应用系统的良好接口机制:为应用系统提供封装适度的
API
接口;
l
中间件产品带来的所有优点:数据传输的安全性、可靠性、与网络环境的无关性、跨平台性。
备注
本文章中大部分内容来至IBM官方网站以及其他网上文章,但是其来源已经不祥,为此对原作者表示歉意。本人只是将其组合,加上一些自己的观点。