XML技术在政务信息化中运用

时间:2022-10-30 05:49:55

XML技术在政务信息化中运用

引 言

随着计算机网络的广泛应用极大地推动了政务信息化进程,同时也对传统政务模式提出了挑战,信息资源不再是某一个部门的内部资料,对同一管理对象,人事、政策、投资决策等各个部门需要具有相同的信息口径,部门间的数据集成变得尤为重要。然而在政务信息化建设过程中,由于管理和技术的问题,在建设初期很难有一个全局的战略和方向,以往各部门分系统的各自为政形成了大量异构数据源。如何将这些异构的数据源集成起来,实现电子政务信息系统之间异构数据的透明访问,就成为一个迫切需要解决的问题[1]。文中提出一种电子政务系统数据交换平台的设计方案,通过数据交换平台将各电子政务系统构建一个有机的整体,实现各部门间互联互通、信息共享、数据交换,提升政府工作效率。可扩展标记语言 XML 是 Internet 上的主要数据交换标准之一。他定义了一种文件格式和数据保存方法,集成不同数据源的数据,使数据信息能在异构平台之间平稳无障碍地传递和共享。文献[2]总结了 XML 的4 个优点: 简便的数据交换; 可订制标记语言; 自描述数据; 结构化和综合性数据。这些优点使它成为异构数据库数据交换的首选语言。目前,已有一些基于 XML的异构数据库集成方面的研究[3 -5]。参照以往研究经验,本文利用 XML 的平台无关性等优点,设计出一个交换系统,着重研究 XML 和数据库之间的映射规则的基础上,以 XML 为数据传输介质,完成异构数据库中数据的集成和共享。

1 当前电子政务系统存在的数据交换问题

在电子政务环境中,电子公文流程的实现是一个全程管理过程,涉及公文整个的生命周期。这个生命周期内,会牵涉到很多不同的处理机构,处理过程和处理步骤,公文需要转呈和分发到很多单位。由于大多数政府机关已建立了自己的业务系统( 遗留系统) ,不同时期所建立的各级电子政务系统在系统体系结构,操作系统平台以及数据库平台等方面存在差异,各系统间无法进行信息交换。异构系统之间的数据交换的问题。各职能部门业务系统实现内容各异,采用不同的应用系统,数据库系统及操作系统。这为平台提出了一个新的问题,即如何在各内部业务系统中提供一个基于公共标准的信息采集模块。工作流的设计问题,即多个部门同时进行数据交换的流程设计问题。当部门的系统发生改变时,如果重新开发数据交换系统,代价是很大的。因此,必须有对多个部门的数据交换的业务流设计,并且可以很方便地修改流程。异构数据的数据格式转换的问题。包括不同数据库环境所支持数据类型不同以及相同数据库环境中数据结构设计各异等。需要一种可访问不同数据环境与实现数据结构,数据类型双向映射的公共服务模块。

2 数据交换系统模型设计

针对目前电子政务系统存在的数据交换问题,本文设计出了一个星型结构的数据交换体系结构。数据交换中心处于中心位置,是实现数据共享和交换的中心。从图 1 中可以看出,各应用系统之间的数据交换通过 XML 作为交换的媒介,首先需要把要交换的数据转换为 XML 格式,然后传送到交换中心节点,数据经过交换中心节点处理后发送到目标数据库中,从而完成不同数据库之间的数据传递。在本系统中,数据交换中心是关键,它把 SQL Server、Oracle、Sybase 等流行的关系型数据库联接起来,但并不是形成一个统一的数据库。对任何数据库的访问都通过特定的接口进行,需要数据的用户并不需要面对具体数据库以及数据源的细节,只需要把它所想要的数据模式告诉数据交换中心即可。图 1 基于 XML 数据库的交换模式该框架具有很好的安全性,便于对数据集中管理,实施时可以在数据交换中心制定一套统一的安全管理策略。同时也实现了 Internet 环境下松散耦合集成,使企业可以方便地集成现有的应用并扩展新的应用。由此可见要实现机构间电子公文信息的交换,必然涉及数据库间的信息交换。为了使业务数据交换成为可能,必然涉及数据库间的 XML 数据存取,并且将 XML 数据与应用系统集成。本系统设计了一个通用的交换解决方案,完成任意数据库和XML 数据的交换。

3 中心数据交换模块设计

3. 1 系统简述

要实现异构数据交换必须把各种异构数据最终都转化为一种统一的全局数据模式,以供用户访问。系统以 XML 作为中间层的数据描述工具和转换工具,通过在各种数据源之间建立一个基于 XML 的中间层,来屏蔽任意数据源的差异。如图 2 所示,为了在数据交换双方建立一个无缝的交互平台,需要对交换双方的数据模型进行识别,以便找出双方数据模型的差异,然后建立一种转换机制。本文采用 XML Schema Def-inition( XSD)[6]作为数据模型建模和表示的工具。提取模式信息是进行数据交换的一个必要环节。因此第一步就是要提取关系数据库的物理模型,然后把提取出来的物理模型通过“关系模式转换模块”自动转换为等价的 XML 模型。接着“XSD 映射建模模块”根据每对源模式和目标模式进行映射建模,并生成映射规则,保存于 XSLT 映射文档中。有了 XSLT 映射模板文件,就可以实现源 XML 文档信息到目标 XML 文档信息的转换。同时该中间层系统还维持一个“系统规则库管理模块”来保证更新数据库时满足完整性约束。

3. 2 中心数据交换核心模块

在整个数据交换的系统当中,基于 XML 中间层可以分为以下四个模块:

( 1) 模式生成模块

源数据端传来 XML 数据后,系统会检查服务器上是否存在源数据端所发送数据类型的数据模型,如果没有则该模块自动提取 XML 数据的数据模型,并将此模型作为发送方所传送数据类型的数据模型。

( 2) 关系模式转换模块

为了将不同数据源的数据转换成处理的统一格式,需要为异构数据源的局部模式转换为统一的全局 XML Schema。因此针对目标数据库,该模块主要实现 2 个功能: 局部数据库关系模型的提取和关系数据库模型到 XML 数据模型的转换。具体的实现方法如下:定义 1 关系模式中所有的表集合为 R = { r1,r2,…,rm} 。定义2 关系模式的属性集合为 A,表 ri对应的属性集合 Ai= { a1,a2,…aj}  A 。定义 3 关系模式的约束集合( 主键,外键,和唯一性约束)为 C,表 ri对应的约束集合 Ci= { c1,c2,…,cm}  C 。定义 4 FK( r) = { r1,r2,…,rk} 表示关系表 r 用外键所关联的表的集合。定义 5 关系模式中所有属性的集合为 A 。

通过以上定义,关系模式到 XML 模式的映射主要分以下二个步骤:

( 1) 关系模式的划分

首先按下面的定义将数据库中的表按照其主外键关系进行层次化划分。定义 6 将无任何外键的表划分为第 0 层关系表集合,表示为 L0。定义 7 将存在外键的表,并且其所有外键所关联的关系表均在集合 L0中,划分为第 1 层关系表集合,表示为 L1。定义 8 不失一般性,将存在外键且不在集合 Ln -1∪Ln -2 ∪ … ∪ L0中的表 r,并且满足 FK( r) 包含于集合 Ln - 1 ∪ Ln- 2 ∪ … ∪ L0,划分为第 N 层关系表集合,表示为 Ln。具体划分算法如下:名称: Relations classification Algorithm输入: R,集合 R 中的表的语义约束信息输出: L0,L1,…,Ln过程:L0= ; ΔR = ;For( 遍历集合 R 中所有的表 ri) {If( FK( ri) =  ) { / /表 ri没有外键L0= L0∪{ ri} ; / /将 ri将加入第 0 层关系表集合中}}ΔR = R - L0; / /将第 0 层关系表从集合 R 中减去K = 1;While ( ΔR ≠ ) {Lk=  ;For( 遍历集合 ΔR 中所有的表 ri) {/ / 满足 FK( r) 包含于 Ln - 1∪…∪L0If( FK( ri) ∩ ΔR =  ) {Lk= Lk∪ { ri} ; / /将 ri将加入第 K 层关系表集合中}ΔR = R - Lk;}K = K + 1;}

( 2) 关系模式到 XML 模式的转化

将数据库中的关系模式转化为以 XML Schema 的全局模式描述,为数据集成提供公共模型。关系模式到全局模式的映射主要是表与元素,列与属性的转换,以及参照约束映射。参照约束映射又可以分为主键、外键,和唯一性约束三类。则按下面三条规则进行映射。( a) 主键和唯一性约束可分别对应全局模式中的 Key 约束和 unique 约束。( b) 当关系表只有一个外键时,可首先抛弃其外键所对应字段,然后再将其直接映射为外键所引用的关系表元素的子元素,这样既避免了重复,也实现了嵌套,更可以提高查询效率。( c) 当关系表包含多个外键时候,则选出其中一个外键,然后使用规则 b,其他外键则用全局模式中的 KeyRef 约束。根据上面的规则和 Relations classification Algorithm 算法的输出,形成具体的映射算法:名称: Schema Transformation Algorithm输入: L0,L1,…,Ln,每张表的三元组( ri∈R,Ai A,Ci C)输出: 目标 XML schema过程:数据库映射为 XML Schema 的根元素;For( 遍历集合 L0中所有的表 ri) {/ / 该复杂类型节点简称 CTi将 ri映射为根元素的子元素( 表子元素) ,元素名为关系表的名称,类型为匿名的 Complex Type 复杂类型( CTi) ;For( 遍历 ri属性集合 Ai中的属性 ai) {将 ai映射为 CTi的一个子属性,其类型可以与 XML Sche-ma 中丰富的数据类型对应;}For( 遍历 ri约束集合 Ci中的约束 ci) {按照规则 a 完成映射;}}K = 1;While( K ≠ n) {For( 遍历集合 Lk中所有的表 ri) {rj= FK( ri) ∩ Lk- 1;按照规则 b 将 ri映射为 rj的子元素,元素名为关系表的名称,类型为匿名的 Complex Type 复杂类型( CTi) ;For( 遍历 ri属性集合 Ai中的属性 ai) {If ( ai瓟 Aj) {将 ai映射为 CTi的一个子属性,其类型可以与 XMLSchema 中丰富的数据类型对应;}}For( 遍历 ri约束集合 Ci中的约束 ci) {If ( ci≠ cj) { / / cj为表 ri引用表 rj的外键约束信息按照规则 a 和 c 完成映射;}}K = K + 1;}通过以上规则实现关系数据模式向 XML Schema 全局模式的转换,根据数据库关系模式建立的 XML Schema,保存了关系表之间的关系、字段的数据类型、字段上的约束等重要信息,可以依照该模式将数据库数据为 XML 数据,同时用 XML 数据更新数据库时将用该模式对 XML 数据进行完整性验证。

( 3) 模式管理模块

当源数据的模型和目标数据的模型不一致时,为其建立映射关系成为数据交换的前提,该模块包括了以下四个子模块:( a) 源模式 主要用 XSD 来描述需要被交换的 XML 文件的数据模型。( b) 目标模式 同样用 XSD 描述目标关系型数据库的物理模型。( c) XSD 映射建模 要把源 XML 文档转换为目标 XML 文档,然后再加载进入数据库,首先需要提取源模式信息和目标模式信息,并把源模式信息及结构模式信息进行映射建模,并生成映射规则,规则用 XSLT 语言描述,保存在映射模板文件里。有了经过以上步骤生成的 XSLT 映射文档,就可以实现源 XML 文档信息到目标 XML 文档信息的转换。( d) 系统规则库管理 该模块负责管理数据库的完整性约束规则信息,在更新数据库时利用这些规则信息保证插入或者更新数据库时数据的一致性和完整性。

( 4) 数据适配器

提供对现有的主流数据库的连接支持,根据数据库数据与XML 文档的双向转换规则和系统规则库中的规则生成 SQL,将接收到的数据更新到数据库。将查询到的数据转换为满足目标模式的 XML 文档提交到数据交换平台。

4 应用平台

针对上面的框架,我们开发了公文交换平台,电子公文管理软件( 如图 3 所示) 为交换平台的客户端,可以实现有效解决电子政务系统中异构数据交换与信息共享的问题,发送部门可以在撰写电子公文后选择发送公文,系统自动将其为基于XML 的电子公文,通过数据交换中心将自动进行模式的抽取和映射,然后将转换后的电子公文发送到接收部门,接受部门将收取到符合本地物理数据库模型的电子公文,再依据系统规则库管理模块将其更新至本地数据库。

5 结 语

本文所提出的模型采用 XML 作为公共数据模型,有效屏蔽了异构数据源之间的差异,实现了数据交换的跨平台操作,实现了部门之间进行无障碍的数据交换。本文重点分析了 XML 与数据库之间的约束保留映射,使得交换过程中的数据信息得到了最大保存。下一步工作是主要考虑数据交换过程中的安全性问题以及 XML 数据网络传输性能的优化。

上一篇:水利电子政务身份认证方式与运用 下一篇:移动办公实现方式及安全保障方案