XML信息交换(精选8篇)
XML信息交换 篇1
1 概述
随着信息化产业的快速发展、现代网络技术和多媒体技术的应用,以及数字化校园概念的提出,教育信息化己在全球不断深入。我国大部分高等院校均已启动了校园信息化平台建设,而且发展迅速。但由于各高校的信息化平台建设是逐步完善的,存在着在不同的时期,高校中各管理部门、系、部或学院根据自己的需求建立了各自的信息管理系统。这些系统可能是在不同的时期、由不同的软件公司、在不同的平台上根据不同的组件模型和编程语言开发的,常常造成各系统之间不能进行有效的实时通信和数据共享,显然这种现象将不利于校园信息化平台建设工作的开展。
作为数据表示和交换的标准,XML使得不同计算机应用系统之间交换数据变得非常容易。在校园信息化平台建设中,用XML统一表示来自不同数据源的数据,并将其作为数据交换的中介,可以很好地实现数据的高度共享,加强学校各部门之间以及与各校区间的信息流通,大大提高学校的教学和办公效率,提供更灵活的信息交互和个性化信息发布。
2 XML数据交换技术
随着XML及其相关技术和应用的发展,XML不仅成为了应用间交换数据的一种标准,也是Internet中重要的信息交换标准和表示的技术之一。
2.1 XML数据交换技术的优势
1)良好的可扩展性
XML是一种自定义和自描述的格式化语言,只需在数据中附加标记来表达数据的逻辑结构和物理结构,因而它能够使不同来源的数据很容易结合在一起。
2)良好的适应性
XML数据是基于Internet传播的,可以被广泛接受和使用;同时XML支持结构化数据、半结构化数据和非结构化数据的操作。
3)良好的移植性
XML提供了对UNICODE、GB2312、BIG5等编码的支持,有利于多语种的数据交互,实现了不同格式数据的跨平台交换。
4)良好的自描述性
XML既能够表示数据也能够表示语义,XML文档中的数据可以被任何能够对XML数据进行解析的应用所提取、分析和处理并以所需格式显示。
2.2 XML数据交换技术的原理
利用XML文档作为中间数据源实现数据库间信息的交换需要将信息从源数据库提取出来转移到XML文档,然后再将信息从XML文档转移到目的数据库。XML文档和数据库是两种结构不同的信息载体,为了能够将信息从数据库转移到XML文档需要将数据库结构映射到XML文档,反之若要将信息从XML文档转移到数据库则需要将XML文档结构映射到数据库结构。
3 XML数据交换技术在高校信息化中的应用实例
3.1 系统需求分析
以我校为例,现根据教学管理的需要拟开发一个UFS系统以满足学院、家庭和社会之间的沟通需要。为了解决与学校现有信息系统的数据共享问题,UFS系统应用XML数据交换技术设计了一个数据交换模块。
3.2 XML数据交换模块的设计
UFS系统采用的数据库为Oracle9i,其主要需要交换的数据来源于教务管理系统。教务管理系统所采用的数据库为SQL Server2000,因此本论文主要探讨的是SQL Server与Oracle数据库之间的数据转换。设计思路主要是通过建立SQL Server、Oracle数据库与XML文档的双向映射关系来实现不同数据库之间的数据传递,并以XML作为各系统之间数据交互的统一标准。
3.3 XML数据交换模块的实现
1)数据源的提取
通过JDBC(Java Database Connectivity)访问关系数据库,JDBC是Java与数据库连接的API。它可以完成与一个数据库建立连接、向数据库发送SQL语句并且将返回处理数据库的结果。
2)从SQL Server数据库数据到XML文档的转换
仅以教务管理信息系统数据库中的学生基本信息表(TUStudents Info)(见表3.1、3.2)的部分信息为例加以说明。
使用JDBC API从表中取出相应的数据,而后使用JDOM将数据按一定的结构生成XML文档,根据学生基本信息表(TUStudents Info)生成的XML文档可描述如下:
3)将XML文档数据导入到Oracle数据库
①构造一个org.jdom.input.SAXBuilder对象
②使用build()方法从Reader、Input Stream等对象建立Document对象
③使用Document类、Element类或其他JDOM类方法遍历XML文档中的内容,获取相关的数据信息。
获取文档根元素Element webapp=doc.get Root Element()
get Child()获取子元素
用element.get Text()方法提取文档的文本内容
④使用标准的SQL语句将(3)检索出的每个元素插入到Oracle数据库中。
3.4 运行实例
通过UFS系统的XML数据交换模块实现了家长用户登录UFS系统就可以查看到教务管理信息系统中其子女的基本信息、各科成绩信息、课表等数据。学生家长在进入UFS系统后,点击“子女信息”—“各科成绩”进入查询成绩页面。在成绩查询页面输入查询条件,点击“查询”就可以看到自己子女在某学期的各科成绩信息,如图1。
4 总结
该文从高校校园信息化建设的现状出发,分析了XML相关技术标准及其用于数据交换的优势并结合本校UFS系统建设的实际需求,着重设计了不同系统、不同数据库间的数据交换模块。数据交换模块利用XML作为中间数据格式构建数据转换映射表,完成了基于XML模式与关系数据库模式之间的转换,实现了异构数据库数据交换的目标。对高校信息化建设尤其是数据整合与共享方面的建设具有一定的现实意义。
参考文献
[1]黄达武.数字化北大[J].计算机世界报,2002(9):10-12.
[2]Dick K.XML管理者指南—构筑XML的企业级应用[M].邓尚贤,译.北京:北京清华大学出版社,2003.
[3]李军怀,周明全,耿国华,等.XML在异构数据集成中的应用研究[J].计算机应用,2002,22(9):10-12.
[4]曾宇昆,王清明,杨卫冬,施伯乐.XML模式到关系范式的映射[J].计算机工程,2005,31(8):37-39.
[5]谷长勇,徐志伟,褚兴军.XML结构和关系数据库的一种形式化映射[J].计算机工程,2001,27(11):16-17,52.
[6]孙宏伟,张树生,周竞涛,王静.基于模型驱动的XML与数据库的双向映射技术[J].计算机工程与应用,2002,38(4):25-27.
XML信息交换 篇2
关键词:电子政务;低保系统;数据交换
中图分类号:TN919.6+5文献标识码:A文章编号:1007-9599 (2010) 09-0000-01
Data Exchange Platform Design Based on XML in System of Lowest Living Ensure
Song Xiaohong
(Changsha Social Work College,Changsha410004,China)
Abstract:This paper describes the development of E-government in China and introduction of System of lowest living ensure,analyze the problem of data exchange in E-government system.The structure of data exchanging system based on XML is presented.
Keywords:E-governmen;System of lowest living ensure;Data exchange
推进信息化是覆盖现代化建设全局的战略举措,是提高政府监管能力、工作效率和公共服务水平的迫切要求。电子政务建设是国民经济和社会信息化的重要内容。
低保制度的建立和实施,对妥善解决城市贫困人口的生活困难问题,维护社会稳定,促进经济体制改革的顺利进行发挥着重要作用。
一、民政低保系统简介
随着改革开放和社会主义现代化建设的进一步推进,我国电子政务建设已经起步。最近几年,经过各地区、各部门共同努力,重点业务系统的应用进展顺利,统一电子政务网络不断推进,基础信息库和标准化体系建设开始起步,信息安全保障能力不断增强。
民政低保系统建设以民政部低保中心为信息管理中心,以各级民政部门为业务处理核心,以低保人群为服务对象,以劳动和社会保障、财政、卫生等部门和金融机构为信息交换对象,实现跨地区、跨机构的大型综合与分布式的信息与网络化系统,开发并部署全国统一的低保业务应用系统,该系统将包括低保业务子系统、信息服务子系统、信息交换子系统、资金管理子系统、业务监管子系统、统计分析和决策支持子系统、预警监测和响应子系统;构建低保信息系统的安全平台,为低保业务信息系统的安全运行提供一个稳定可靠的环境。
二、低保系统中的数据交换需求分析
在低保系统实施的过程中,要实现低保信息省、市、区、街道、居委会(社区)的协同处理,实现资源共享,肯定会有各级部门之间数据信息的传送。主要有:
(一)民政内部信息交换
民政内部信息交换主要是从市到省的数据交换和从省到部的数据交换,交换内容主要包括业务数据交换、监管数据交换和决策数据交换等。
(二)同级部门信息交换
同级部门信息交换主要是和同级政府相关部门的数据交换,交换内容主要包括和民政部门开展的相关救助业务情况的数据和统计信息。同时还包括民政部与相关部委的数据交换与共享,各省民政厅与各委办厅局的数据交换与共享,各地市民政局与各委办局的数据交换与共享,各区县民政局与各委办局及相关企业的数据交换与共享等。
由于各级政府机关之前已经开发或购买了满足其使用要求的应用系统或软件产品,这些系统之间的系统体系结构、操作系统平台和数据库平台之间都存在差别,造成系统间难于、甚至无法进行信息交互。为了保证各部门之间互联互通、信息共享、数据交换,提升政府工作效率,在进行数据交换平台设计时,要能够实现不同网络、不同操作系统间的数据传递,以适应目前已经形成的复杂网络环境和操作系统环境,同时也需要提供不同数据格式间的转换能力,以适应各种系统的数据格式,实现不同系统对数据的正确解析和使用。
所以新的民政低保系统应在进行数据交换平台设计时,数据交换平台需要解决下面一些问题:
1.政务内网、政务外网、政府公众信息网模式下跨安全域的数据交换问题。三网模式下各个网络存储数据密级不同,同时,部门内部对不同数据有着自己特殊的安全需求。数据交换平台必须提供统一的身份认证、授权管理等安全支撑体系。
2.异构系统之间的数据交换的问题。各职能部门业务系统实现内容各异,采用不同的应用系统、数据库系统及操作系统。这为平台提出了一个新的问题,即如何在各内部业务系统中提供一个基于公共标准的信息采集模块。
3.数据的数据格式转换的问题。包括不同数据库环境所支持数据类型不同以及相同数据库环境中数据结构设计各异等。需要一种可访问不同数据环境与实现数据结构、数据类型双向映射转换的公共服务模块。
4.不同系统间统一的数据传输机制的问题。要实现不同系统间的数据交换与共享,必须由一种统一的数据通讯机制控制数据传递,实现多种通讯协议下不同格式和标准的数据报文传输。
随着民政信息化发展,数据交换方面的需求和应用将变得越来越重要。
三、数据交换技术介绍
常见的数据交换技术可以分为:电子数据交换(EDI)方式、数据仓库方式、中间数据方式。
以XML作为中间数据的数据交换技术是近几年兴起的新技术,它不但克服了应用系统只能进行基于点对点的数据交换的缺点,而且适合于网络传输,非常适用于信息化条件下的数据交换和存储。基于数据库和XML的数据交换不但简化了接口设计而且具有更大的适用性,接口设计和数据传输、存储更加方便。
XML是由W3C提出的可扩展标志语言(Extensible Markup Language)的简称,是数据交换的介质,任何两种格式的数据交换都要借助于XML。XML提供了一种结构化的数据表示方式,它在采用简单、柔性的标准化格式表达和应用程序间交换数据方面具有很大的优势,使得用户界面与结构化数据相分离,它能够对来自于不同系统的数据进行集成和处理。XML主要用于描述数据文档中数据的组织和安排的结构,非常简单,只是为数据的结构化提供了一套规则。它的关注点不是数据在浏览器中如何布局和显示,而是数据内容的组织和结构。
四、基于XML的数据交换平台总体结构设计
信息资源交换体系是依托国家电子政务网络和电子政务信息安全基础设施,为跨部门、跨地域政务信息资源交换与共享提供的电子政务信息服务基础设施。交换体系总体结构由服务模式、交换平台、信息资源、技术标准和管理机制组成,如图1所示。
不同服务模式的业务应用通过调用交换平台提供的交换服务,实现对信息资源的访问和操作,技术标准和管理机制为政务信息资源的交换和共享提供技术和管理的保障。
在进行数据交换功能设计时,通过综合国内外同类相关平台的长处,建立以信息交换、信息共享和工作流为核心,符合WFMC国际工作流规范的电子政务系统数据交换平台,提供规范的、可灵活配置的、具有相当安全性的数据交换手段。针对不同用户采用的不同数据库,利用数据库访问模块预先实现针对各种数据库的访问功能,然后通过一个可以被外界调用的命令接口类,来执行SQL语句,只需指明所要使用的数据库类型,便能完成操作。
数据交换平台的核心功能在于完成不同应用间的消息收发和数据内容转换,涉及到数据交换标准、数据库技术、安全技术和网络技术等。其中,通过XML解决异构数据源之间数据交换的难题;通过平台的数据收发器将异构系统问的通信转化为平台间的通信,构建了一个松散耦合的分布式通信系统。
在数据交换过程中,各个应用系统通过数据适配器,作为一个节点与数据交换平台相连,交换过程对各子系统透明。在数据交换过程中参与交换的各系统仅服从于该系统与其相连接的数据交换平台定义的数据交换规则,与数据来源、交换对象、交换对象的个数及其物理位置、系统环境、逻辑结构无关,避免了对现有系统的改造,实现了多个系统数据共享与交换的透明,为将来系统的扩展提供了便利。
五、结束语
随着电子政务、电子商务的发展,数据集成正广泛应用于越来越多的领域,XML以其方便、简洁、数据和表现分离等特点,成为进行数据集成的良好方案。目前,很多厂商随带着自己的相应产品,提出了各自的方案,造成数据交换的标准十分混乱,各种不同的产品难于集成。今后,这些系统的整合仍将是研究的重点,特别是建立一种通用的数据交换标准更是亟待解决的问题。
参考文献:
[1]曾小宁,黎明.一种基于XML的数据交换方案的设计.广东教育学院学报,2008,6
[2]江涌,于建武,刘镇,李征.电子政务系统中数据交换平台设计.计算机技术与发展,2008,7
[3]黎文导,卢瑜.J2EE平台上基于XML数据交换系统的设计与实现.长春工业大学学報,2006,12
[4]王丽君,李小丽.XML电子政务数据交换平台的研究与设计.网络与多媒体,2006,12
XML信息交换 篇3
1 模型的分析与设计
本文是在JMS和XML技术的基础上建立的信息系统,如图1所示,其中JMS服务器主要包括三个模块,消息队列管理模块、持久化管理模块、安全管理模块,如图2所示。消息队列管理模块是该系统的一个模块,主要功能是有效方便的管理消息中的对列。
1.1 JMS和XML技术简介
JMS即Java Message Service的简称,它提供了Java消息服务的API,被用来支持开发面向消息的分布式计算系统。JMS的目的就是提供给消息系统客户一个固定的接口,而且与底层的消息提供者无关,这样客户端的应用程序可以在不同的机器和操作系统中移植,而且能在不同的消息系统产品之间转移。在JMS中,消息的处理是异步的,消息发送者可以发送消息而无须等待响应。与基于RPC的同步处理模型相比,JMS的这种松耦合的异步处理机制大大提高了系统的性能。
XML以一种开放的自我描述方式定义数据结构,所组织的的数据对于应用程序和用户都是友好的、可操作的,而且其本身具有跨平台性、高度可扩展性、结构化及简单易用等特性,已成为一种通用的数据交换标准。为了保持XML文档的有效性,必须明确确定文件中的信息遵守哪些结构,需要通过XML的模式来保证。以下是两种定义XML文档的模式:DTD(document type definition)和XML Schema。两者有如下区别:
1)XML Schema是XML文档,而DTD有自己特殊的语法
2)XML Schema利用名域将文档中特殊的节点与Schem说明相联系,一个XML文档可以有多个对应的Schema,而一个XML文档只能有一个相对应的DTD;
3)XML Schema内容模型是开放的,可以任意扩充,而DTD将无法解析扩充的内容;
4)DTD只能把内容类型定义为一个字符串,而XMLSchema允许把元素类型定义为整形、布尔型、日期型等其数据类型。
2 消息队列调度算法分析
消息交换在不同的企业、部门和单位有着不同的行业标准,不同性质的企业对各种的信息有着不同的需求,例如,一些企业比较注重新的产品的推广,那么它对添加这一操作比较注重,赋予该操作的权限也将比较高。因此各种不同的信息就应该分离出来,并且对它们进行统一的管理。但是这样对优先级比较低的队列是比较的不利,同时等待的时间也是一个比较重要的数据,这样就形成了一个动态的优先级的管理。该模块的功能分成两个部分:一、从XML文件中提取出不同的操作信息,将它们以不同的粒度进行封装成消息投进不同的消息队列中去。二、对不同的消息队列进行调度管理。
调度是系统资源管理的核心机制之一,消息队列管理调度策略是采用多队列排队机制,这就涉及到多种不同类型的队列进行有区别的服务,其中包括操作分类、队列管理和分组调度。分类:就是将消息中的不同的操作分离成不同的队列。队列管理:将每一种的操作以一定的粒度来处理队列中的信息,这就要求将队列中的消息分成若干组,然后对其中的一种进行调度处理。分组调度:决定下一次的调度时调度那种操作的队列。调度算法的原理:
1)最大信息处理量Umax算法
最大信息处理量算法是选择一个队列,使其单位时间内被处理的消息队列被处理,直到该队列处理完全再让其他队列进行处理。
2)轮询调度算法
这种算法循环的调度各个队列中的操作分组,就被调度上的概率而言,对四个队列,每个队列被服务的概率都是四分之一,也就是说每个队列以相同的概率占用系统资源,这种基于轮询的调度算法是最公平的。但是由于各个队列的U不同,服务U值小的队列的比重增大,那么吞吐量势必大大减小,影响到整个系统的性能。
由于该模型的自身需求,所以要兼顾到信息处理量和公平两个原则,而在不同的业务方面考虑对不同的操作的优先级的不同,这样就可以基本上解决信息交换的顺利进行。
该模块的数据流图如图3所示。
3 消息队列管理模块设计
该模块是建立在一个消息系统的基础上,是对该信息系统的消息队列进行管理,是该系统的一个构件。
1)消息队列管理模型
在该模型中包括消息解析器、添加队列、删除队列、修改队列、查询队列、调度器和处理队列。其中解析器包括两个主要的功能:解析并分离出不同的操作和将不同的操作封装成为消息。四种队列是用来接收来自解析器中的不同的消息。调度器:计算不同的队列中的优先级别,根据优先级别对队列中的消息进行调用。处理消息队列用来接收调度器调度的消息,然后系统对该队列中的消息进行处理,如图为消息队列管理模型图如图4。
2)调度算法的设计原理
本文中系统的调度算法策略主要涉及到三个主要参数:不同操作优先级别(bi)、平均等待时间(t)和信息处理量(U);
a)优先级别bi
在整个系统中,不同的操作的优先级别是一个固定的值,代表着该系统对不同操作的重视程度。添加、删除、修改和查询的优先级别分别为:bi(0
b)平均等待时间t
在一次调度时刻,调度的消息是以组(即一定的粒度n)来调度的,因此,等待时间将是
该组的平均时间。而每一个消息的等待时间为调度时的时间和进入该队列的时间之差,即T=Tk-Tm其中Tk为调度时刻的时间,Tm为该消息进入对列时的时间,因此,t=(T1+T2+…+Tn);为了确保每个队列都尽可能的被调度,当平均等待时间t越长,该队列的优先级别就越高,即队列的优先级别以平均等待时间成正比。
c)累积信息处理量U
U为该队列从某时刻起到一次调度时的总的累积信息量,例如:在某一调度决策时刻t,四个队列的累积信息处理量Ui,在该时刻每一个队列准备调度的消息量为△Ui,因此下一个调度时刻的累积信息处理量为:Ui+△Ui;整个队列的优先级别B以平均等待时间t成正比,以操作的优先级别成正比,以累积信息处理量成反比。
因此队列的优先级别为:
其中Qi(Qi
4 结束语
消息队列中间件对企业分布式应用系统的开发具有很大的吸引力,它向开发者展现了一种灵活、丰富且非常简单的通信模式。JMS提供了一组与具体实现无关的接口,各种分布式应用程序可通过这组接口来访问支持JMS的消息中间件。而随着消息交换的数据量越来越大,消息队列管理的重要性也就越来越大。现在JMS技术已得到了广泛的工业支持,有着广阔的前景。
摘要:该文介绍了JMS的基本工作原理,并在此基础上提出了基于JMS和XML技术信息交换模型的设计,并着重提出信息交换中消息队列管理模型的研究。此模型基本上能解决信息交换中信息量大且容易阻塞的问题。
关键词:JMS,XML,信息交换,信息交换模型,消息队列,消息队列管理
参考文献
[1]冯磊.JMS给中间件市场加热[J].信息系统工程,2007(1).
[2]沈良忠,黄德才.JMS和XML的分布式应用研究[J].铁路计算机用,2004.
[3]孙剑.XML数据交换标准在物流行业的推广前景[J].物流技术与应用,2005.
[4]黄忠国.分组调度算法在船闸调度中的应用研究[D].大连海事大学硕士学位论文,2006.
基于XML的数据安全交换 篇4
1 XML安全标准概述
为了保证XML信息的安全性,推动XML应用和安全服务的发展,国际标准化组织W3C和OASIS提出了一系列新的XML安全服务标准,来为以XML作为数据交换载体的应用提供安全性保障。这些标准包括:XML加密(XML Encryption)、XML数字签名(XML Signature)、XML密钥管理规范(XKMS)、XML访问控制标记语言(XACML)等。
1.1 XML加密
XML加密可以为任何类别的数据提供机密性服务。被加密的数据内容同样称为数据对象。数据对象的密码加密结果和加密信息以XML元素的形式存放在文档中,称为加密元素,如果对普通数据对象加密,加密元素为EncryptedData,如果对密钥加密,加密元素为EncryptedKey。为便于描述,本文给出XML加密语法的非正式表示(如图1所示),其中“?”表示出现0次或者1次;“+”表示一个或者多个;“*”代表0个或者更多。
元素EncryptedData标识了整个XML加密,其内容模型只允许有三个子元素:加密算法元素(EncryptionMethod)、密钥信息元素(Keylnfo)和密文数据元素(CipherData)。
加密后的数据有两种(封装或引用)方式存放在密文数据元素(CipherData)中,如果是封装方式,则密文数据直接包含在其CipherValue元素中;如果是引用方式,则CipherData的子元素CipherReference描述了密文数据的存放位置。
1.2 XML签名
XML数字签名可以为任何类别的数据提供数据完整性、消息确认和签字方确认服务。被签字的任意数字内容称为数据对象。数据对象的签字结果加上数字签名信息以XML元素的形式存放在文档中,称为签字元素。签字元素由XML元素Signature表示,为便于描述,本文给出XML数字签名语法的非正式表示(如图2所示),其中“?”表示出现0次或者1次;“十”表示一个或者多个;“*”代表0个或者更多。
图2中,元素Signature标识了整个XML数字签名,它包含了签字信息元素(Signedlnfo),签字值元素(SignatureValue)。密钥信息元素(Keylnfo)和客体元素(Object)四个关键子元素,其内容如下:
1)签字信息元素:它包含与签字相关的所有信息,如数据对象信息、数据对象处理方式以及签字算法等。
2)签字值元素:容纳Base64编码的鉴字值。
3)密钥信息元素:表示密钥信息,以使验证方得到验证密钥。
4)客体元素:可包含任何内容(如数据对象、时间戳等)。
在XML数字签名中,数据对象被摘要,摘要值(和其他信息一起)放在签字信息元素里,接着整个签字信息元素被签字。
1.3 XML密钥管理规范(XKMS)
XKMS定义了分发和注册XML签名规范所使用的公共密钥的方法。XKMS以已有的XML加密和XML数字签名为基础。其关键的思想是提供Web上的可信服务,这样XML应用可以不用太多关注PKI(Public Key Infrastructure,公钥基础设施)细节。XKMS包括了两部分:XML密钥注册服务规范(X-KRSS)和XML密钥信息服务规范(X-KISS)。
X-KISS用于向用户提供密钥和证书服务。分为两类,定位服务和确认服务,前者负责提供密钥和证书,后者负责密钥和证书的合法性检验。X-KRSS用于向密钥和证书的持有者提供密钥管理服务,提供了密钥(证书)注册、密钥(证书)注销、密钥恢复和密钥更新服务。
1.4 XML访问控制标记语言(XACML)
XACML是OASIS讨论制定的用于XML文档访问控制的一种策略描述语言,用来决定是否允许一个请求使用一项资源,比如它是否能使用整个文件,多个文件,还是某个文件的一部分。主要思想是围绕一个四元组
2 XML数据安全交换实例
对于来自外部的数据交换和访问请求,最重要的步骤是验证请求者的身份信息,确认“他”是谁,同时确定访问权限,防止非法访问。由于不同的企业、部门采取不同的访问控制技术、不同的技术实现平台,造成访问控制的安全边界通常局限在企业内部,而给跨边界的互操作带来很大的不便。
XML作为实现跨平台信息交换和提高异构系统之间的互操作性的最佳解决方案的提出,极大地促进了数据交换应用的发展。
下面以一个典型的例子来论述在运用XML进行数据交换的体系结构下如何确保数据的安全。
如图3所示,应用程序A要传送一个XML文档到应用B,分为两个部分完成:代理A传送到消息管理器,再由消息管理器传送到代理B。每个代理都有一对公钥和私钥,消息管理器也有一对公钥和私钥。(1)代理A先对要传送的XML文档数据部分用哈希方法做一个摘要追加在XML文档的后面,利用哈希函数的不可逆防止攻击者对报文修改。(2)用自己的私钥对摘要信息进行非对称加密,完成对这个文档的数字签名。(3)随机生成一个DES对称加密的密钥M对需要加密的数据部分加密。(4)对M用代理B的公钥进行非对称加密,把最后生成的文档传送到消息管理器。消息管理器根据消息头文件发送到目的地,并且告诉代理B这个文档的来源。(5)代理B用自己的私钥对M解密。(6)用解出来的M对加密数据部分解密。(7)得到完整的XML文档用同样的方法做摘要。(8)对附加在文档后面已经加密的摘要用代理A的公钥解密得到原来的代理A做的摘要。(9)比较两个摘要信息,如果一样,说明这个文档的确是代理A发送过来的,则完成了一次完整的数据传输,否则说明可能被篡改过了,要求重传。
数据加密是确保数据安全很重要的部分,对XML文档加密可以加密整个XML文档的数据部分,也可以加密一个XML元素,比如传送到膳食科的学生数据中passwd元素要加密,用对称密钥M加密后,XML文档部分如图4所示。
为了加密后的XML文档仍然能在这个体系上正确地传输,并且要满足安全性的要求,需要对XML消息头作一定的修改。每个消息都有可能包含一个安全性的要求,如果消息管理器能满足这个消息头的安全要求,则继续,否则表示不能满足安全要求的错误信息发送给这个消息的发送者。消息头的格式修改如图5所示。
图5中EncryptionLevel表示要求加密的程度,用数字表示,用对称加密的方法,可以规定如下:
1)O———不要求加密。
2)1———使用长40bit的对称密钥。
3)2———使用长56bit的对称密钥。
4)3———使用长80bit的对称密钥。
5)4———使用长128bit的对称密钥。
上面的安全头中要求的安全级别是4,要求可以满足128bit的加密密钥加密,这个消息送到消息管理器,消息管理器判断出这个消息是自己指定目的地址的,
这样,基于使用XML的安全服务标准,XML文件就能安全地从应用A传送到应用B,从而也就确保了数据交换的安全性。
3 结束语
本文提出了使用XML文件完成数据交换的优点,介绍了XML安全服务的标准。通过实例说明:使用XML对数据进行规范化定义,采用XML加密技术,能确保数据交换的安全性。XML为业务应用提供了统一、安全的数据交换平台,为业务应用多方数据交换提供了安全保障。
摘要:随着XML技术的发展与应用,XML文件成为了数据交换的标准,它为各个应用之间建立一个公共应用平台,解决了数据格式的相互转换问题。数据交换过程中,XML信息的安全性也是要考虑的一个重要因素。该文介绍了XML安全服务的标准,通过实例分析论证如何运用XML技术确保数据交换的安全性。
关键词:XML,数据交换,安全
参考文献
[1]邓芳.基于XML的数据交换及其存在问题[J].福建电脑,2008(4).
[2]徐晶,刘彦明.XML数据安全的研究[D].微机发展,2005.
[3]陈述.对XML数据安全加密技术的研究[D].大连海事大学,2006.
[4]车葵,牛晓太,邢书涛.XML加密方法的研究与实现[J].计算机工程与设计,2008(20).
[5]曹君,裴志杰,孙娜.XML安全技术应用与分析[J].计算机与数字工程,2009(3).
[6]傅海英,李晖,王育民.XML及相关研究进展[D].计算机应用研究,2004.
[7]耿建勇.XML安全技术的应用研究[D].中国科学院研究生院(计算技术研究所),2005.
[8]刘力军.基于XML数据交换的若干问题研究[D].中国优秀博硕士学位论文(硕士),2001(2).
[9]李寅,林宣雄.基于WEB的XML数据交换技术[J].计算机系统应用,2000(11).
基于XML的数据交换技术研究 篇5
目前人们使用的数据交换技术有很多种,XML就是其中最常见的一种。XML有着严格的语法规范,因此使用XML保存的数据格式都是一致的,从而能够很好地解决“信息孤岛”和信息异构问题。同时,在存入数据的时候,还能够依据XML的规范对数据进行判断,从而有效地避免数据的重复录入和数据不一致性问题。XML以其严格的标准和强大的功能赢得了众多开发人员的青睐,并成为数据交换领域的重要标准。
1常用数据交换技术比较
数据在不同的信息实体之间交互的过程称为数据交换[1]。 目前,常用的数据交换技术主要有以下四种:
1)电子数据交换(EDI)方式[2]:EDI通过统一的格式来交换企业信息,企业之间通过专用的数据网络来交换数据。EDI也带来了许多问题,如格式不灵活、成本高、安全控制困难、连接可靠性不高等。
2)中介层方式:提供一个应用程序负责专用的数据转换, 这个程序是特定的、专用的、复杂的。在这种方式下,参与数据交换的各方必须严格遵循相同的规则,才能准确地对数据进行封装和解析,缺乏良好的复用性和扩展性。
3)中间数据库方式:在不同环境下使用如Access等较小的数据库系统来实现不同数据源间的数据减缓。先对要转出的数据库生成脚本,得到该数据库的表结构,然后按照不同数据库系统间的区别对脚本进行修改,生成符合规范的SQL语句, 最后再在新环境的数据库系统中执行脚本[3]。这种利用中间数据库的方式需要将信息从其他地方转存到中间数据库中,这一过程需要按照一定的格式对数据进行转换,因此操作上比较繁琐、效率低下。
4)中间件方式:各个数据源将自己的数据按照一定的通用格式提供出来,实现透明的数据交互。与中间数据库方式相比,使用中间件较好地保留了各个分布场地的自治权,同时保证了一定的实时性。
2基于XML的数据交换技术
2.1XML介绍
XML[4]是extensible Markup Language(可扩展的标记语言)的缩写,是W3C组织于1998年2月发布的标准。W3C组织制定XML标准是为了定义一种能够在互联网上进行数据交换的标准。W3C采取了简化SMGL的策略,在SMGL基础上,去掉语法定义部分,适当简化DTD部分,并增加了部分互联网的特殊部分。因为XML是一种树状结构,可以把形式与内容彻底分离, 正是基于这个原因,可以使用XML将不同数据格式的数据进行转换,从而达到数据交换的目的。此外,XML允许用户按照W3C组织的规定去定义无数个自定义标签,标签形式多种多样。XML可以用来描述关系结构的数据,还可以用作配置文件,当作一个小型的数据库或数据载体来使用。
2.2基于XML的数据交换模型
基于XML的数据交换模型采用了上述的中间件模式来实现数据源的交换,作为沟通数据源和应用/逻辑层的一个纽带。XML在进行数据交换的过程中,一方面,针对所有数据源数据模式进行抽取,将各数据库中的不同数据表示形式统一成一致的数据视图XML文件。另一方面,要将XML的数据转换为RDBMS系统下的数据组织形式,以关系数据库系统来存储数据[5]。基于XML的数据交换模型分为三层结构,如图1所示:
2.3几种常见的XML解析器
2.3.1 DOM
DOM(Document Object Model),称为文档对象模型,是以层次结构组织的节点或信息的集合,是W3C组织推荐的一种处理XML的标准编程接口,与平台和语言无关。DOM在解析XML文件的过程中,会一次性将所有内容加载到内存中,形成一个树形结构,因此DOM又被认为是基于树或基于对象的模型。在使用DOM过程中会使用Document对象来代表XML在内存中的映像,即代表一个XML文档的模型树,所有的节点都包含在该Document对象中。之后,开发人员即可使用该对象对XML文档进行相应的编辑与操作。DOM虽然使用起来较为简单,但是在处理大文件时就显得力不从心了。因为DOM每次都会将XML文件全部加载到内存中,因此对于大文件内存的占用就很高。另外,DOM解析速度较慢,效率不高,因此只适用解析小的配置文件等。
2.3.2 SAX
SAX(Simple API for XML),是sun公司提供的一个基于事件的xml解析器,既是一个接口,又是一个软件包。SAX解析XML文档不同于DOM,它是多次将XML文档加载到内存中,因此它可以一边扫描以便解析。正是基于这一特点,对于大文件,SAX的解析速度比DOM要快得多,并且占用的内存少。 SAX采用基于事件的模型,在解析XML文档的时候,会根据XML此时的状态,即开始标签、结束标签,调用SAX处理器相应的方法。正如我们常说的,任何事物都具有两面性,SAX也不例外。SAX没有像DOM那样的父/子支持,因此不能交流元信息,从而导致了越是复杂的文档,其应用逻辑就越复杂,编码的难度就越大。
2.3.3 DOM4J
DOM4J是一个非常优秀的JAVA XML API,是由dom4j.org出品的一个XML解析包。DOM4J采用了java集合框架,能够完全支持DOM和SAX。因为它内部包含了多个接口,因此在使用上非常灵活,从而形成了它性能优异、功能强大和极易使用的特点。DOM4J还有一个特点,它是完全开源的,现在越来越多的java软件都是用它来进行XML解析。DOM4J主要接口图如图2所示:
图中各接口的功能分别为:Node为dom4j中XML的节点定义了多态行为;Branch为能够包含子节点的节点定义了一个公共的行为;Element定义XML元素;Document定义了XML文档;Document Type定义了XML DOCTYPE声明;Entity定义了XML entity;Attribute定义了XML的属性;Processing Instruction定义了XML处理指令;Character Data是一个标识接口,标识基于字符的节点,如CDATA;CDATA定义了XML CDATA区域; Text定义XML的文本节点;Comment定义了XML注释的行为。
3XML数据交换的实现过程
使用中间件XML来实现数据的交换,将XML文档作为一个桥梁实现各平台之间的互连,从而实现数据的整合及共享。 对于现有的各种资源,其中绝大部分都是结构化的数据,可以存储在关系数据库中,因此,XML与这些数据的交换实质上就是与关系数据库中数据的交换。
当前XML与关系数据库之间的相互换转换的方法有很多,例如基于模型驱动的XML与数据库双向映射技术,将XML中的数据同数据库对应的表进行映射匹配,使得XML文件中保存的数据和数据间的关系通过这种映射关系保存到数据库中[6],该方法的核心是在数据库模式(包括关系型和面向对象型)和XML Schema或DTD之间建立双向映射。另一种方法是在XML和数据库之间添加一个数据转换程序组件,将数据从XML文件中解析出来存入数据库,或从数据库中读取数据并添加到XML档中[7]。
3.1关系数据库向XML转换
关系数据库向XML转换需要经过三个主要步骤:提取、转换和存储。首先,从数据库中提取要保存在XML文档中的数据,数据的提取可以通过JDBC或者ODBC接口访问技术实现, 该数据包括两部分:数据库中关系模式和表中的字段值。其次,将提取出来的数据与XML约束(DTD或XML Schema)相结合即可生成XML文档。这个过程涉及到的操作有两个:将数据库中的关系模式转换为XML约束、将数据库表中的值与XML约束结合生成XML文档。整个转换过程如图3所示。
3.2XML向关系数据库转换
XML向关系数据库转换实际上就是关系数据库向XML转换的逆过程,也分为三个主要阶段:提取、转换和存储。首先, 使用DOM或SAX等解析方法对XML进行解析,这一过程也涉及两个操作:提取XML文档中的约束(XML Schema)并将其转换为相应的关系模式、解析XML文档中的数据。其次,根据上一步得到的关系模式建表,并将解析出来的数据添加到相应的表中。这一过程可以使用JDBC或ODBC接口访问技术实现与数据库的连接。转换过程如图44所示:
4结束语
XML技术有着严格的标准和强大的功能,并且提供了统一的方法来描述和交换独立于应用程序或供应商的结构化数据。因此使用XML作为中间件就可以方便的实现各数据源间数据的交换,将各数据源中的数据统一成一致的格式进行集中处理,进而消除“信息孤岛”,实现数据共享。
摘要:目前,可供选择的数据交换技术有很多,例如XML、Json等。文章以XML作为数据交换的标准进行研究,首先对XML进行了必要的介绍,在此基础上对常用的XML解析器和XML与关系数据库进行交互的过程进行了详细分析。
基于XML的数据交换模型之研究 篇6
1 相关技术介绍
1.1 XML技术
XML语言(Extensible Markup Language)是1982年2月由W3C组织制定的一种通用语言规范,它没有复杂的语法和数据定义。X M L具有易扩展、结构性强、语义性强、纯文本、易于处理、与平台无关等特点。XML的自描述性使其非常适用于不同应用间的数据交换。XML作为数据传输的中介格式,为异构数据源提供了一层理想的缓冲,从而使异构数据源之间保持透明。XML作为独立于平台和设备的结构化数据表达方式,可以有效地实现异构数据源的集成。
1.2 异构数据交换
数据交换是实现数据共享的一种技术,因此通过数据交换,实现各系统间的数据共享、互联互通、业务协同是解决目前“信息孤岛”现象的关键途径。
目前常见的异构数据交换技术可分为电子数据交换方式、中介层方式、数据仓库方式、中间数据方式,但都还存在不足[2]。基于X M L的数据交换技术具有良好的通用性,扩展性,可移植性和自治性,同时满足一定的实时性要求,从而它弥补了以上数据交换方法的缺点,提高了数据交换系统的兼容性和扩展性,在一定程度上提高了数据交换系统的开发效率。
2 系统设计
2.1 系统结构设计
数据交换平台主要由数据提取、数据读/写、数据分析、数据转换几部分构成。
2.2 数据提取部分
在进行数据交换时数据提取部分根据用户的指令将需要进行交换的数据从数据库中提取出来。数据提取的数据源主要有:(1)文本文件:主要指部门自定义的特定格式的文件;(2)数据库:主要指专业用于存储数据的各种关系数据库系统;(3)X M L文档,它是一种简单、灵活的文档,可对结构化数据提供透明的组织及交换的方法[3]。
2.3 数据读/写部分
数据读/写部分负责对数据源的读写操作,具体包括从源数据中读取要进行交换的数据及把转换后的数据写入目标数据。数据读/写部分根据不同的数据采用不同的读写方式:(1)对文本文件,通过字符输入/输出流依次读/写文本中的字符来实现;(2)对数据库,利用数据库连接驱动(如J D B C)来实现;(3)对X M L数据文件,通过调用X M L解析器的读/写接口加载整个XML文件来实现。
2.4 数据分析部分
数据分析部分负责解决数据映射的问题,并构建出异构数据之间进行数据转换的映射文件。此处主要针对异构关系数据库之间的数据交换进行研究,为了在数据库与X M L文档之间传递数据,必须在X M L文档结构和数据库结构之间建立映射关系。在设计时应考虑:(1)数据类型:为了匹配关系型数据库严格的数据类型,本系统采用X M L Schema数据类型。(2)主键/外键:在进行基于XML的双向数据转换时,要将源表中的主键/外键信息保留下来。(3)空数据:当将XML文档与异构数据库进行双向转换时,要注意那些可为空的列。(4)数据结构:在进行基于XML的双向数据转换时,要保留源数据的结构,可将XML文档设计成两部分,一部分存放结构信息;另一部分存放数据信息。结合以上要求,定义异构数据库双向数据交换的中间数据模型如下:
2.5 数据转换部分
在数据分析的基础上,数据转换部分负责源数据和目的数据之间的转换操作,其中包括源数据到中间数据的转换及中间数据到目标数据的转换。异构数据之间的转换方法有两种:基于模板的转换方法和基于模型的转换方法[4]。鉴于本系统要实现XML文档与其他格式数据的双向转换,采用基于模型的转换方法。
基于模型的数据转换方法用事先定义好的数据模型来映射XML文档结构与其他格式数据的结果之间的关系(如图2)。
3 系统实施
该系统在Windows Server 2003平台上开发,使用Oracle9i数据库、S Q L Server 2000数据库。系统采用Java技术实现,XML是独立于平台的标记语言,而Java是与平台无关的计算机语言,XML与Java的结合能够最大限度地体现系统平台的无关、应用无关性[5]。该系统具有如下特点:(1)基于开放的标准技术,具有良好的可扩展性;(2)类模块架构设计,效率高;(3)Java和XML结合,可以跨越多种平台。
4 结语
数据交换是X M L的重要应用之一,XML使得不同应用系统间能够方便地交换数据,实现异构系统的集成。本文的创新在于构建了一个新的基于X M L的数据交换模型,该模型能有效地解决企业各部门之间资源共享问题。
参考文献
[1]徐俊杰.基于XML的数据交换模型研究[D].哈尔滨:哈尔滨工程大学,2007.
[2]李雯,谢辅雯,邹道.XML数据交换技术的应用与研究[J].计算机与现代化,2008(1):91~93.
[3]刘敏.基于XML和JMS的数据交换模型的设计及应用[D].沈阳:东北大学,2005.
[4]刘立华.基于XML的异构数据库之间的数据交换[D].武汉:华中科技大学,2005.
[5]陈兵,万晖.基于XML的Web数据交换[J].计算机工程,2002(2):112~114.
[6]王大刚,谢荣传.基于XML Schema的数据匹配方法的研究[J].计算机科学与技术,2008(6):28~31.
[7]L.Seligman,A.Roenthal.XML’s im-pact an databases and data sharing[J].Computer,2001,34(6):59~67.
[8]Maria Arigeles.The challenges thatXML faces[J].Computer,2001,34(10):15~18.
XML信息交换 篇7
可扩展标记语言XML是由W3C于1998年2月发布的一种标准规范,是标准通用标记语言SGML的一个简化子集,它将SGML的丰富功能与HTML的易用性结合到了Web应用中。XML凭借其优越性,正在成为不同平台、不同应用系统、不同语言之间数据交换的主流格式。
由于开始设计XML时没有过多地考虑它的安全问题,并且XML是纯文本和自解释性的,网络上任何人都能读懂其中的信息和比较容易地修改它,如何来保证它的安全传输和验证就变得十分重要。只有解决了XML数据的安全问题,XML才能得到更广泛的应用。因此,W3C和IETF共同制定了XML加密和XML数字签名规范。
1 XML加密和数字签名规范
要了解XML加密规范的所有信息,可以在W3C站点上查阅文献[1]。
XML加密为加密XML数据和以标准XML格式表示加密结果提供了一种标准的方法。XML加密允许加密任何数据,这些数据可以是一个完整的XML文档或一个XML文档中的指定元素,也可以是从外部引用的任意非XML格式数据。在进行XML加密时,会使用标准的XML标记语法来表示相关信息、算法以及实际加密的数据。加密结果被表示为一个XML加密文档,这个XML加密文档可以直接含有加密的数据,也可以间接地从外部引用加密的数据。
XML加密组合使用了对称密码和非对称密码算法。对称密码算法用于XML数据的批量加密,非对称密码算法则用于安全地交换对称密钥。
要了解XML数字签名规范的所有信息,可以在W3C站点上查阅文献[2]。
XML签名提供了灵活的数字签名机制,不仅支持对网络资源和消息整体的签名,也支持对XML文档或消息的部分进行签名;既支持公钥数字签名,也支持对称密钥的密钥散列验证。
在一个XML签名文档中,根据签名数据与<Signature>元素的关系,可以定义三种签名方式:分离签名、封外签名和封内签名。
XML加密和XML数字签名是两个既独立又紧密相关的技术。XML加密确保数据的机密性,XML数字签名确保数据的完整性和不可否认性。两者结合,共同实现网络数据安全的共性要求。
2 XML数据安全交换系统的设计和实现
2.1 系统工作流程
本系统采用B/S构架,基于.NET平台。Windows客户端使用Web应用程序访问Web服务器,通过Web服务器访问CA服务器或数据库服务器。Web服务器提供文档中转、发布和访问CA服务器与数据库服务器;CA服务器提供安全注册、颁发证书和撤销证书;数据库服务器存储各种格式的数据,如数据库、XML文档等。用户通过客户端向CA服务器进行注册获取自己的证书,或者通过CA服务器查询其他客户的证书或撤销列表来获取他们的证书。发送方从接收方的证书获取他的公钥,对XML文档加密,或者发送方用自己证书的私钥,对XML文档签名,并通过Web服务器提交到数据库服务器分类存储;接收方通过Web服务器查询到相应的XML文档,用自己证书的私钥,对已加密的XML文档进行解密,或者从签名者的证书获取他的公钥,对已签名的XML文档进行验证。
2.2 CA服务器
PKI基于非对称密码和数字证书技术。认证中心CA是PKI的核心,它主要负责产生、分配并管理数字证书。数字证书具有唯一性,其作用类似于现实生活中的身份证。数字证书的格式采用X.509国际标准。任何想发放自己公钥的用户,可以去CA申请自己的数字证书。CA在鉴定该人的真实身份后,颁发包含用户公钥的数字证书。每个证书都有一个对应的私钥,它不和数字证书一起分发,由所有者保管。本系统采用Windows 2000 Server PKI作为一个内部CA服务器颁布证书和撤销证书[3]。
2.3 获取证书中的信息
(1) Web Services Enhancements for .NET
尽管.NET Framework中有System.Security.Cryptography.X509Certificates命名空间,但它并不包括任何证书存储类,受到的限制很多。Web Services Enhancements for .NET(WSE)是一个新的.NET类库,这个类库实现了最新的Web服务协议。使用WSE可以从Windows客户端的证书存储单元中检索证书,从证书中获取密钥,用它来执行XML加密和XML数字签名。
WSE可以从http://msdn.microsoft.com/webservices/webservices/building/wse/下载。
(2) 系统存储区和证书存储单元
Windows客户端上的系统存储区描述了可从中进行证书存储的上下文。每个系统存储区至少有4个预定义的证书存储单元。
· My包含个人证书和对个人密钥的引用。
· CA包含根证书和最终实体证书之间的证书。
· Trust包含可信的第三方的证书。
· Root包含根证书。必须使该存储单元安全,因为它提供了证书链中最重要的部分。
WSE支持My、CA和Root证书存储单元。
(3) 获取证书
我们可以通过获取证书存储单元中的证书,生成密钥。C#代码片段如下。
2.4 系统模块
系统从功能结构上划分为语法处理子系统、语义处理子系统和支撑子系统,它们包括加密语法处理、数字签名语法处理、加密语义处理、数字签名语义处理以及算法管理、密钥解析、异常处理、压缩处理、数据读取等模块。如图1所示。
语法处理子系统接收上层应用设置的加密信息和数字签名信息,生成合法的加密元素和数字签名元素。语义处理子系统是整个系统的核心,实现加密和解密、数字签名和验证。
支撑子系统中的算法管理模块对算法进行分类,算法包括对称密码算法、非对称密码算法以及编码转换、算法标识符等;密钥解析模块分析加密、数字签名语法元素中的密钥信息,提取密钥;XML数据有时显得庞大,在网络上传输可以进行压缩,数据压缩模块提供了这一功能,利用.NET Framework提供的System.IO.Compression命名空间中的类可以进行文件的Zip压缩和解压缩;数据读取模块从网络和文件中得到必要的数据;异常处理模块对系统中可能出现的各种异常情况进行捕获和处理,当任何其他模块中发生了异常,将通知此模块进行处理,主要包括两个功能:处理异常和记录日志。
系统的使用者分为发送方和接收方。发送方对XML数据加密、数字签名;接收方对XML数据解密、验证。
2.5 XML数据的加密和数字签名[4]
微软公司在其.NET平台中对XML加密提供了支持。可以使用.NET Framework 的System.Xml命名空间中的类和System.Security.Cryptography命名空间中的类对XML文档进行加密;可以使用System.Security.Cryptography.Xml命名空间中的类来完成XML签名。XML加密和XML签名中使用的类如下:
(1) 处理XML的类: System.Xml命名空间中的XmlDocument类、XmlElement类和XmlAttribute类。
(2) 处理加密、解密和数字签名的类:System.Security.Cryptography命名空间中的TripleDESCryptoServiceProvider类和RSACryptoServiceProvider类。
(3) DataObject类保存要签名数据的XML签名的对象元素。
(4) SignedXml类封装了用于创建XML签名的核心XML签名对象。
(5) Convert类。进行加密操作时,通常处理以字节数组形式存在的数据。在处理XML数据时,总是处理以文本串形式存在的数据。为解决这个差异,就必须在这两种数据类型之间进行转换。System命名空间中的Convert类提供了转换方法。
发送方加密XML数据并向接收方发送加密结果的基本步骤如下:
(1) 接收方的EstablishXmlRsaParameters方法获取Windows客户端的证书信息,建立RSA非对称密钥对并存放在两个文件中。RsaIncludePrivateParams.xml文件含有公钥和私钥信息,这个XML文件绝对不能泄漏,必须保证非授权用户无法访问这个XML文件。RsaExcludePrivateParams.xml只含有公钥信息。
(2) 发送方的CreateAndEncryptXmlSessionKey方法建立用于XML加密的TripleDES对称会话密钥,使用RsaExcludePrivateParams.xml中的公钥,对该对称密钥加密,结果存放在文件SessionKeyExchange.xml中。
(3) 发送方的EncryptOriginalXmlDocument方法用存放在文件SessionKeyExchange.xml中的对称密钥对XML数据加密,结果存盘。
(4) 接收方的DecryptXmlDocument方法用存放在文件SessionKeyExchange.xml中的对称密钥和文件RsaIncludePrivateParams.xml中的公钥和私钥对加密的XML数据解密,结果存盘。
XML签名和验证签名的基本步骤如下:
(1) PerformXMLSignature方法对XML数据计算分离签名,分离签名是最简单的XML签名类型,不要求处理包含数据的XML文件,只需把<Reference>元素的URI属性设置为需签名的XML文件的URI即可。PerformEnvelopedXmlSignature方法对XML数据计算封内签名,其中的XmlDsigEnvelopedSignatureTransform类表示XML数字签名封内签名转换。PerformEnvelopingXmlSignature方法对XML数据计算封外签名,DataObject.Data属性存放XML文件中希望签名的数据,DataObject.Id用于标识该数据,Reference.Uri在#后面指定DataObject.Id,表示引用DataObject中的数据。发送方可以选择其中的合适方法。经过签名的XML数据存盘。
(2) 接收方调用VerifyXMLSignature方法验证XML数据中的签名是否有效。
2.6 结合XML数据的加密和数字签名
将XML加密和XML数字签名这两种操作结合在一起是可行的。如果加密和签名一个XML文档,这两种操作的顺序就非常重要。应用程序必须区分加密操作在签名操作前还是在签名操作后完成。如果在签名前执行加密操作,就必须在验证签名后执行解密操作,这是因为如果先解密,未加密的签名会出现错误,这样就无法进行验证签名的操作。相反,如果在签名后执行加密操作,就必须在验证签名前解密文挡。
3 结束语
本文根据XML应用对数据安全的需求,对XML加密和数字签名规范、XML加密和解密过程、XML数字签名和验证过程进行了探讨并做了一定的实现工作。XML在电子商务和电子政务等领域有广泛的应用,因此对基于XML的安全问题的研究很有意义。在满足使用的便利性、可靠性和稳健性方面,XML安全技术还有很多路要走。这些问题在不久的将来一定会解决,XML安全技术的应用一定有广阔的发展空间。
参考文献
[1]Eastlake D,Reagle J.XML Encryption Syntax and Processing W3CRecommendation[EB/OL].http://www.w3.org/TR/xmlenc-core,2002,12,10.
[2]Eastlake D,Reagle J,Solo D.XML-Signature Syntax and ProcessingW3C Recommenda tion[EB/OL].http://www.w3.org/TR/xmldsig-core,2002,02,12.
[3]何永忠,王晓京.用XML实现电子公文的签名和加密[J].计算机应用,2002,22(8):85-88.
XML信息交换 篇8
关键词:数据库,服务器,XML,HTTP,IIS,SQL Server
XML即可扩展标记语言,作为一种与平台无关的数据表示形式已被广泛采用。它对于在松散耦合且完全不同的系统,以及各种企业到企业(B2B)应用和工作流范畴内交换信息是很有用的。数据交换已成为XML技术的主要驱动力之一。
将XML数据存储在关系数据库中会给数据管理和查询处理带来好处。SQL Server提供了强大的查询和修改关系数据的能力,而且已经扩展到查询和修改XML数据。SQL Server中的XML支持将给企业应用程序开发带来好处[1,2,3]。
Microsoft SQL Server 2000中实现了对XML的如下支持:(1)能够使用HTTP访问SQL Server;(2)支持XML数据简化(XDR)架构并且能够指定对这些架构的XPath查询;(3)能够使用FOR XML子句检索,使用OPENXML写入XML数据;(4)增强了Microsof SQL Server 2000 OLE DB提供程序(SQLOLEDB),使得可以将XML文档设置为命令文本并以流的形式返回结果集[4,5,6]。
1 XML与SQL Server的数据交换技术
1.1 通过HTTP方式访问SQL Server原理介绍
可以使用HTTP访问Microsoft SQL Server 2000。图1显示三层系统构架并描述处理来自客户端的HTTP请求的方式。
中间层是Microsoft Internet信息服务(IIS)服务器,首先在该IIS服务器上使用SQL Server提供的IIS虚拟目录管理实用工具创建虚拟根。IIS服务器建立了客户端和SQL Server间的桥梁。客户端通过浏览器发出URL(统一资源定位符)查询请求,IIS接收该查询请求后,检查URL中指定的虚拟根,并确定是否注册了URL中指定的虚拟根的ISAPI DLL扩展(Sqlisapi.dll)。IIS服务器装载该DLL,并将URL请求传递到该DLL。Sqlisapi.dll扩展与SQL Server的OLE DB提供程序(SQLOLEDB)通讯,并与虚拟根中标识的SQL Server实例建立连接。全部XML功能都在Sqlxmlx.dll中执行。当SQLOLEDB确定命令是XML命令时,该提供程序便将此命令传递到Sqlxmlx.dll,Sqlxmlx.dll执行命令并将结果返回给SQLOLEDB。可扩展样式表语言(XSL)文件、模板文件和XML数据简化(XDR)架构文件都驻留在IIS服务器上。XPath查询和XDR架构都在IIS服务器上进行处理。Sqlxmlx.dll将XPath查询转换成SQL命令。FOR XML子句和OPENXML都在运行SQL Server的服务器上执行[7]。
1.2 配置SQL Server 2000的IIS虚拟目录
SQL Server 2000允许为IIS创建一个虚拟目录,用来直接访问一个SQL数据库中的数据。在一台配置了IIS的计算机上安装了SQL Server 2000,就可以运行SQL Server的IIS虚拟目录管理实用工具来配置SQL Server 2000的IIS虚拟目录。详细步骤如下:在"Microsoft SQL Server"程序组中单击"在IIS中配置SQL XML支持",打开如图2所示的“用于SQL Server的IIS虚拟目录管理”界面。
展开服务器,选中默认网站,点右键,在弹出的右键菜单中选取“新建”选项,然后单击"虚拟目录"命令,如图3所示。
弹出“新建虚拟目录属性”对话框。当前显示的是常规选项卡,填写虚拟目录名,并选择本地路径,如图4所示。在“安全性”选项卡上,填入有效的SQL Server登录信息,如图5所示,在进入下一个选项卡时,它将要求你确认刚才输入的密码。
在“数据源”选项卡上,在“SQL Server”框中输入服务器的名称,在“数据库”框中,输入pubs作为默认数据库的名称,如图6所示。在"设置"选项卡上,选择“允许URL查询”、“允许模板查询”、“允许XPath”选项,如图7所示。
点确定按钮后,“用于SQL Server的IIS虚拟目录管理”界面如图8所示。
1.3 返回XML文档的SQL Server查询
1.3.1 使用URL查询
在IE浏览器中输入如下查询命令:
http://localhost/sqliis?sql=select*from authors for xml auto&root=author-Info,查询的结果以XML格式返回显示,并且该XML文档以author Info作为根元素,如图9所示。
如果希望返回的XML文档中字段以子元素的形式出现,则可修改上面的查询命令:
http://localhost/sqliis?sql=select*from authors for xml auto,elements&root=author Info,查询的结果如图10所示。
1.3.2 使用模板查询
模板是包含一个或多个SQL语句的有效的XML文档。在URL中写入长SQL查询会很麻烦。此外,浏览器对在URL中可以输入的文本量可能有限制。另外,这种方法也隐藏着极大的隐患,一旦某个最终用户了解了直接使用浏览器查询数据库的方法,那么数据库中的数据就很危险了,因为最终用户可能会尝试执行他自己的insert,update甚至是delete过程。若要避免这些问题,可以编写模板并将其存储在文件中。
进入“虚拟名称”选项卡,并单击新建按钮,新建一个模板文件夹,取名为templates,在下拉菜单中选择template。然后,直接输入XML模板将储存的路径,或者单击“浏览”按钮来选择路径。本例中使用C:Inetpubwwwrootsqliistemplates,如图11所示。
一旦你已经提供了所有的必要的信息,单击“保存”按钮。现在一个虚拟目录已经被映射到一个指定来保存XML查询模板的文件夹,现在创建一个有效的XML模板,用来执行SQL查询。下面是放在C:Inetpubwwwrootsqliistemplates路径下的模板文件file.xml:
这段代码中使用了一个名为sql的前缀和一个URI urn:schemas-microsoft-com:xml-sql,这个sql前缀用来标识使用在SQL Server XML ISAPI上的元素。名为query的元素,用来标记模板文件中的SQL查询语句。在IE中输入如下查询命令:http://localhost/sqliis/templates/file.xml,显示结果如图12所示。
1.3.3 执行XPath查询
在Microsoft SQL Server 2000中,可以使用XDR(简化XML-Data)架构创建关系数据的XML视图。然后可以使用XPath查询来查询这些视图。这类似于使用CREATE VIEW语句创建视图并指定对视图的SQL查询。指定在带批注的XML数据简化(XDR)架构(也称为映射架构)上执行的XPath查询[8,9,10]。XPath查询也可以被内嵌进一个XML模板文件中,下面的代码是一个包含XPath查询的简单的XML模板文件file3.xml:
file3.xml和file3.xdr文件都放在C:Inetpubwwwrootsqliistemplates路径下。现查询au ID为213-46-8915的相关信息,在IE中输入如下命令:http://localhost/sqliis/templates/file3.xml,显示结果如图13所示。
2 结论
FOR XML和OPENXML功能的引入实现了XML和SQL Server集成的第一步,我们能够直接从SQL Server数据库获取XML[11]。SQL Server的HTTP访问能力可以实现如下功能:直接在URL中指定SQL查询;在URL中指定模板文件;指定在带批注的XDR架构上执行的XPath查询。
参考文献
[1]苟凌怡,陈晓波,熊光楞.基于SQL Server 2000的关系数据与XML的集成[J].计算机工程与应用,2001,37(10):10-13.
[2]谷长勇,徐志伟,褚光军.XML结构和关系数据库的一种形式化映射[J].计算机工程,2001,27(11):16-17.
[3]牛杰,黄东.SQL Server 2000 XML技术及应用[J].计算机技术与发展,2006,16(7):242-244.
[4]陈俊林,张文德.XML文档的数据库转换技术研究[J].信息检索技术,2006,(9):38-42.
[5]胡燕,霍亮.XML和SQL Server 2000数据交换方式的研究[J].微机发展,2005,15(5):56-58.
[6]张素智,卢正鼎,李春林.XML数据库及其应用研究[J].计算机工程与应用,2002,38(8):32-35.
[7]顾兵.XML实用技术教程[M].北京:清华大学出版社,2007.
[8]扈书刚.利用XML技术实现关系数据库的转换实例[J].中国西部科技,2008,7(28):44-46.
[9]牛彦青,余雪丽.基于SQL Server 2000的关系数据与XML的映射研究[J].太原理工大学学报,2003,4(34):492-494.
[10]王亮,高阳,陈世福,陈震解.基于SQL的XML到关系数据库的转换方法[J].计算机应用研究,2002,19(8):70-72.
【XML信息交换】推荐阅读:
交换信息08-18
信息交换平台09-06
信息交换系统10-04
网络信息交换系统10-19
信息交换流程论文10-23
信息交换技术发展趋势05-31
物流信息交换平台应用08-19
公共信息平台交换网10-10
数据交换与交换平台05-23
交换机与交换系统08-11