公共数据交换解决方案

2023-10-30 18:32

本文主要是介绍公共数据交换解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

公共数据交换解决方案

要实现的目标:

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表示数据,XMLDTD可根据业务不同而定义。

内容管理层在工作的过程中,如果有需要跟远端的其他数据交换点进行互操作的时候,通过数据交换层来完成。

在内容管理层提供简单易用的界面方面用户轻松定义各种类型的XML格式文件和二进制文本格式文件。然后该功能模块会生成对应格式的SchemaDTD)和模式文件。此外,提供验证机制用于检验所建立数据格式模型的正确性。

2)数据交换(表示层 信息服务的支持)

数据交换层的任务是完成不同数据交换点之间的互操作,官能上应该包括数据的定位和数据包封装。数据的封装和解封与操作命令一样,是一个标准数据交换平台的规范性的重要体现。所有在节点之间传送的数据,宝座操作命令本身,都要按照规定的格式进行编排,这样才能保证数据交换节点之间的互操作性,以屏蔽底层的物理特性的多样性。所以必须解决以下问题:

l         信息的统一封装,即信息的打包和信封的书写功能

l         统一编址,应支持一套统一的、简单易用、易扩展的地址编码体系

l         信息的可靠传输

l         传输的效率

l         可管理性,要对传输的过程进行全程监控,提供日志、审计、会话管理、传输优先级设定、流量负荷分析。

3)安全的数据传输(表示层)

数据传输层用于实现数据交换结点之间的数据传输。在软件层面,重要的一点就是要采用成熟的传输协议,如HTTP或者SOAP

l         HTTP协议具有简单、完备、轻量级、扩展能力强等特点。较小的传输开销可以保证较强的传输性能,完备的协议规程可以保证传输的稳定性。同时,通过适当的扩展,可以提高可靠性和完全性。

l         安全性可以通过引入基于PKIPublic Key Infrastucture,公钥体系)的CACertificate Authority,认证中心)体系来解决。

3 数据交换中心的设计

3.1 信息的统一表示

要实现信息共享,实现异构系统之间的互连互通,信息的统一表示是关键,信息的表示独立于系统、平台。为了实现这一目标,在进行平台开发、应用系统开发时要制定或遵循六个方面的信息标准:

1)元语言标准

元语言是描述其它语言的语言。电子政务的信息表示语言采用XML元语言标准。该标准用来对政务信息的语言的语法、编码、令名进行行式化描述。该标准可采用W 3C 制定的XML元语言标准,设计者应根据电子政务中的信息表示的需求进行裁剪。

2)信息编码标准

该项标准对字符的编码、字符集定义、字符引用、字体的表示进行了规定。一般采用W 3C 制订的XML10为基础,以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)  利用已有的消息中间件服务器:IBMMQSerriesBEA MESSAGE()以及JAVA的消息服务JMS来实现。

在本系统设计中,采用JAVA的消息服务JMS

4 基于XMLJMS数据交换设计

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的简单介绍

JMSJava API, 允许应用程序来建立、接收和读取消息。程序依靠这些API, 在运行时需要一个JMS实现接口,来提供管理和控制,这被称为JMS provider, 现在有几种不同的JMS Provider; JBoss中的JMS叫做JbossMQ

当我们发送一个消息,不能直接发送到对此消息感兴趣的接受者。而是发送到一个目的地。对此消息感兴趣的接受者必须连接到目的地,得到此消息或在目的地设置订阅。这样,就实现根本上的异步性和安全性。

4.4.2 基本流程

1)订阅发布式的MQ

将封装好的XML文件以字节流的方式通过MQ中间件,采用持久性的发布订阅方式,把消息发布到应用服务器上(如JBOSS)。当消息订阅者与此服务器相连接时,如果有发布给自己的消息,就会取走。如果不是所有的消息订阅者都订阅到此消息,JBOSS服务期将始终保存此消息,同时,订阅过的订阅者将不会重复订阅此消息。在此过程中,不要求发布者和订阅者同时连接中间服务器,而且此消息可以存放到服务器的文件或者数据库中,即使系统崩溃,也不会丢失,能够恢复。所以具有能简单灵活地集成各个数据库子系统并自动实现数据采集和分发的功能。

2)点对点式的MQ

如果采用PTPPoint-To-Point)的MQ消息传递方式,同订阅发布式类似,不同的是MQ负责把每一个消息传递给一个特定的消息消费者,一旦此消费者消费了此消息,其他的消费者将不会得到这个消息。

4.4.3 MQ的独特优势

MQ提供了强有力的消息处理机制,支持事务、持久性、可靠性的订阅措施以及消息的选择和分类。

1MQ与传统方式的比较:

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官方网站以及其他网上文章,但是其来源已经不祥,为此对原作者表示歉意。本人只是将其组合,加上一些自己的观点。

这篇关于公共数据交换解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/309827

相关文章

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

python 字典d[k]中key不存在的解决方案

《python字典d[k]中key不存在的解决方案》本文主要介绍了在Python中处理字典键不存在时获取默认值的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录defaultdict:处理找不到的键的一个选择特殊方法__missing__有时候为了方便起见,

Linux限制ip访问的解决方案

《Linux限制ip访问的解决方案》为了修复安全扫描中发现的漏洞,我们需要对某些服务设置访问限制,具体来说,就是要确保只有指定的内部IP地址能够访问这些服务,所以本文给大家介绍了Linux限制ip访问... 目录背景:解决方案:使用Firewalld防火墙规则验证方法深度了解防火墙逻辑应用场景与扩展背景:

SpringBoot嵌套事务详解及失效解决方案

《SpringBoot嵌套事务详解及失效解决方案》在复杂的业务场景中,嵌套事务可以帮助我们更加精细地控制数据的一致性,然而,在SpringBoot中,如果嵌套事务的配置不当,可能会导致事务不生效的问题... 目录什么是嵌套事务?嵌套事务失效的原因核心问题:嵌套事务的解决方案方案一:将嵌套事务方法提取到独立类

Spring Boot实现多数据源连接和切换的解决方案

《SpringBoot实现多数据源连接和切换的解决方案》文章介绍了在SpringBoot中实现多数据源连接和切换的几种方案,并详细描述了一个使用AbstractRoutingDataSource的实... 目录前言一、多数据源配置与切换方案二、实现步骤总结前言在 Spring Boot 中实现多数据源连接

MySQL的索引失效的原因实例及解决方案

《MySQL的索引失效的原因实例及解决方案》这篇文章主要讨论了MySQL索引失效的常见原因及其解决方案,它涵盖了数据类型不匹配、隐式转换、函数或表达式、范围查询、LIKE查询、OR条件、全表扫描、索引... 目录1. 数据类型不匹配2. 隐式转换3. 函数或表达式4. 范围查询之后的列5. like 查询6

使用Vue.js报错:ReferenceError: “Vue is not defined“ 的原因与解决方案

《使用Vue.js报错:ReferenceError:“Vueisnotdefined“的原因与解决方案》在前端开发中,ReferenceError:Vueisnotdefined是一个常见... 目录一、错误描述二、错误成因分析三、解决方案1. 检查 vue.js 的引入方式2. 验证 npm 安装3.

PHP执行php.exe -v命令报错的解决方案

《PHP执行php.exe-v命令报错的解决方案》:本文主要介绍PHP执行php.exe-v命令报错的解决方案,文中通过图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录执行phpandroid.exe -v命令报错解决方案执行php.exe -v命令报错-PHP War

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

js异步提交form表单的解决方案

1.定义异步提交表单的方法 (通用方法) /*** 异步提交form表单* @param options {form:form表单元素,success:执行成功后处理函数}* <span style="color:#ff0000;"><strong>@注意 后台接收参数要解码否则中文会导致乱码 如:URLDecoder.decode(param,"UTF-8")</strong></span>