—195—
基于 XML的异构数据交换系统的研究与实现
杨 剑 1,唐慧佳 1,孙林夫 2,王胜银 1
(1.西南交通大学计算机与通信工程学院,成都 610031;2. 西南交通大学 CAD工程中心,成都 610031)
摘 要:XML的可扩展性和自描述性以及其它特性为异构数据交换提供了新的思路。基于 XML该文提出了一个异构数据交换的系统模型
并探讨了该系统中各模块的功能和工作流程。
关键词:XML;电子商务;数据交换
Research and Realization of Heterogeneous Data Exchange System
Based on XML
YANG Jian1, TANG Huijia1, SUN Linfu2, WANG Shengyin1
(1. School of Computer & Communication Engineering, Southwest Jiaotong University, Chengdu 610031;
2. CAD Engineering Center, Southwest Jiaotong University, Chengdu 610031)
【Abstract】Due to its extensibility and ability of self-description and other characteristics, XML provides a new way for heterogeneous data
exchange. Based XML, this paper introduces a mode for heterogeneous data exchange system, discusses the function of every module in system and
its workflow.
【Key words】XML; E-business; Data exchange
计 算 机 工 程
Computer Engineering
第 31卷 第 19期
Vol.31 № 19
2005年 10月
October 2005
·工程应用技术与实现· 文章编号:1000—3428(2005)19—0195—03 文献标识码:A 中图分类号:TP311.12
1 XML优点及相关技术
XML是 World Wide Web联盟(W3C)的一个开放标准,
它是一组规则和准则的集合,由于以无
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
文本(而不是二
进制格式)来描述结构化数据,因此它具有良好的数据存储
格式、开放性、可扩展性、自描述性、高度的结构化、便于
网络传输等特性。XML所关心的主要是数据,而其它的因素
像数据结构和数据类型、
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
现和操作都由其它的以 XML 为
核心的相关技术来完成。其中 XSLT(Extensible Stylesheet
Language Transformations)用于将 XML文档转换成其它类型
的文档或其它格式的 XML文档。Xpath(Xml Path Language)
用于定义如何在 XML文档中查找和定位数据。XML Schema
用 XML描述了一类 XML文档的数据结构和数据类型。通过
使用上述几种技术,我们便可方便地把需要交换的数据转换
成 XML 文档,在互联网和企业内部的不同应用程序间方便
地提交数据、处理数据,完成数据的交换。
2 基于 XML的数据交换模型
2.1数据交换的实现模式
(1)面向数据的交换模式
面向数据的数据交换发生在不同系统的数据库之间,通过将数
据从一个数据源移植到另一个数据源来完成数据的交换。其优点是
它直接在数据访问层作应用开发,无须对应用逻辑与数据结构作任
何改变。缺点是因为要直接对数据库进行操作,编程人员需要对原
有数据访问层作大量修改同时又必须保持数据的完整性;在跨越互
联网进行数据交换时,因为系统需要了解双方数据库的实现方式,
需要承担很高的安全风险;而且,对于不同的应用,这种数据交换
方式需要作不同的设计,系统的可重用性很低。
(2)面向应用接口的交换模式
面向应用接口的数据交换是指按各个应用接口所需数据格式在
接口间转换数据、传输数据。这样,开发者就能够将现有应用捆绑
在一起,允许它们共享商业逻辑和信息,这种策略的局限性一般是
由接口的特征和功能所决定的。
(3)面向方法的交换模式
面向方法的数据交换是指在网络环境中的跨平台应用程序之
间,建立一个可供多方共享的方法,实现数据共享和交换,采用面
向方法的数据交换成可以实现 Internet 环境下的企业应用的松散耦
合和集成,使企业可以方便地集成现有的应用并开发新的应用。
2.2应用范围
本文设计的基于 XML 的异构数据交换系统是一个独立
的第三方软件平台,可以为制造业、商业等各行业提供统一
的数据交换服务,在具体实施时,根据需求的不同,可采用
以上所有 3种模式来实现。其主要应用范围为:
(1)企业内部的信息系统集成:用以实现企业内不同应用软件、
不同部门之间的电子数据交换。把企业内以部门、业务为核心的闭
环信息系统联系起来,形成更大更有效率的有机整体。提高数据的
时效性、真实性、广泛性和使用效率。应用软件开发商和系统集成
商将不必过多考虑软件之间的数据交换问题,可以专注于商业逻辑
的开发。
(2)建立企业电子数据港(数据交换中心): 采用通用数据交
换技术构建企业的电子数据港,就如同建立了企业自己的数据交换
中心。直接对外发布和接收电子数据,使企业大大提高与商业伙伴
之间的数据沟通能力和内部运作效率。
(3)远程数据备份和数据同步:使用通用数据交换技术可以实
现异地数据备份或数据同步,而不必顾忌数据来自什么地方,使用
什么计算机系统,来源于何种数据库。
(4)企业 B2B 应用集成: 使用通用数据交换技术可以使企业
迅速实现 B2B 应用集成。加快商务流程的速度,拓宽商业覆盖面,
基金项目:国家 863/CIMS主题基金资助项目(2002A413620)
作者简介:杨 剑(1975—),男,硕士生,主研方向:电子商务,
网络信息技术,异构数据交换技术;唐慧佳,副教授;孙林夫,教
授、博导;王胜银,硕士生
收稿日期:2004-08-24 E-mail:yangjian2001@sina.com
—196—
加强和上下游供应商和经销商的合作和交流,更好地进行客户关系
管理。
数据交换平台将数据交换功能作为一种Web服务提供给
用户,用户通过一定的配置,在数据源地址和目标地址间建
立相应的数据映射后,便可自动完成数据的交换。利用数据
交换平台进行数据交换的系统,如果能够兼容 XML,可以根
据 SOAP
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
进行扩展,将数据交换的功能直接在系统中集
成;如果不能兼容 XML,则需要通过平台提供的 XML生成
服务将数据转换为相应的 XML文档,再实现数据交换功能。
而对于有能力进行二次开发的用户,数据交换平台也提供可
扩展的.NET组件,可以根据需要进行进一步开发从而得到最
终的应用程序。XML数据交换的整体示意如图 1。
图 1 XML数据交换整体示意
假设企业 A有数据 data,采用格式 format_A封装,构成
数据集 format_A (data),而企业 B只能识别采用格式 format_B
封装的数据,同时,为保持最大的兼容性,平台将采用一个
有最大兼容性的数据结构 format,我们的数据交换平台就是
要找出一种转换方式 f(X),使
( ) ( ) ( )
( ) ( ) ( )⎩⎨
⎧
→
→
→
→
dataformat_Bdata:formatf
dataformatdata:format_Af
Xo
X
B
OA
成立,其中 fA→O(X)表示从企业 A的格式转换为平台标准格式
映射函数,而 fO→B(x) 表示从平台标准格式转换为企业 B 的
格式映射函数。
整个系统的设计主要包括客户端和服务器端,客户端实
现数据的封装和发送,服务器端则实现数据格式的注册、数
据转换以及数据的处理。
2.3数据交换客户端
(1)数据格式的注册
在数据交换前,发送方和接收方都需要在服务器端注册需要交
换的数据类型、所采用的数据格式,即所采用的 XML Schema。
(2)XML生成器
XML生成器把企业需要传送的数据按注册的 XML Schema转换
为相应的 XML文档。
(3)XML封装/发送器
生成的 XML 文档采用 SOAP 格式封装,并用 HTTP 协议发送
到数据交换服务器上。其实服务器端和客户端都将采用 SOAP 和
HTTP 相结合来传递消息,所以 XML 封装/发送器在服务器端和客
户端都是必不可少的。
客户端的结构如图 2所示。
图 2 XML数据交换客户端
2.4数据交换服务器
(1)XML检查器
XML 检查器的功能主要是对客户端的身份进行验证,同时检查
客户端发送的 XML文档格式是否良好,内容是否完整。
(2)格式转换器
格式转换器接收客户端注册的 XML Schemas 声明,并推导出把
按该 XML Schemas 生成的 XML 文档转换到以平台采用的 XML
Schemas生成的 XML文档所需的 XSLT文件。
(3)XML映射器
XML 映射器用上面生成的 XSLT 文档把客户端发送的 XML 文
档转换为符合平台所采用格式的 XML 文档,以及从该 XML 文档到
符合客户端格式的 XML文档。
(4)XML处理器
XML 处理器是数据交换的核心,它把标准格式的 XML 文档转
换为符合需求的数据,如果接收方是平台自身,则按需求提交到数
据库或相应的应用程序接口;如是另一个客户端,则需要再次调用
映射器按相应的 XSLT把采用平台格式的 XML文档转换到符合客户
端格式的 XML文档。
服务器端的结构如图 3所示。
图 3 XML数据交换服务器
如果客户端的数据直接来自于数据库,生成器和处理器
直接面向数据库,则可用面向数据的交换模式实现数据交换;
对于面向应用接口的数据交换,可按各应用接口的规范格式
化数据,在生成器或处理器中接收、处理和传递这些数据,
实现面向接口的交换;将数据交换的核心部分封装成 Web服
务,使之可由各应用程序互相访问,则可实现面向方向的数
据交换模式。
3 数据交换流程
假设企业 A和企业 B之间有数据交互,完整的数据交换
流程如下:
(1)企业 A 和企业 B 分别向数据交换平台注册并分别提交
format_A 和 format_B,即他们用于生成 XML 文档的 XML Schema;
(2)根据行业标准,对注册的数据类型建立一个统一的数据结
构 format,即该数据的标准 XML Schema;
( 3)根据双方的 XML Schemas,生成转换规则 fA→O(X)和
fO→A(X),即对应的 XSLT文档,设为 XSLTA→O和 XSLTO→B;
(4)接收企业 A 向交换中心提交的 XML 数据— format_A
(data);
(5)验证企业 A的身份和接收方企业 B的身份;
(6)验证 format_A (data)的格式是否正确,内容是否完整;
(7)调用 XSLTA→O将 format_A (data)转换为标准的 XML 文档,
即 ( ) ( ) ( )dataformatdata:format_Af XOA →→ ;
(8)调用 XSLTO→B将采用平台格式的 XML 文档转换为企业 B
能识别的格式,即 ( ) ( ) ( )dataformat_Bdata:formatf Xo B →→ ;
(9)把生成的 XML数据—format_B (data)发送到企业 B。
如果数据交换的目的地为平台本身,则在第(8)步,
XML处理器根据需求把 XML数据转换为所需的各种数据,
然后按交换的目的发送到数据库或提交到各种应用接口。
4 设计与实现
基于以上的
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
,我们设计了一套完整的数据交换系统,
用于不同的企业之间交互数据,首先定义了一套完整的 XML
封装规则,以便于在交换时方便地获取数据相关信息,其中
主要的方法原型如下(由于篇幅有限,有所节略)。
XML
检查器
XML
映射器
XML
处理器
格式
转换器 数据
库
应用
程序
接口
客
户
端
XSLT
Schema
XML
客
户
端
XML
XML
XML
XML
生
成
器
数据
XML
封装/
发送器
XML
XML文档
注册
数据交
换服务
器
应 用 接 口
XML文档
XML
ML
XML
ML
企业 A
format_A
(data)
企业 B
format_B
(data)
数据交换平台
format (data)
—197—
(1) 生成 XML文档
表 1为本文定义的一系列属性。
表 1 XML封装规则
ID 此 XML 文档的唯一标识,系统通过 ID来标记和
识别 XML文档
Source 数据发送方的名称
SourceIP 数据发送方的 IP地址
Destination 数据接收方的名称
DestinationIP 数据接收方的 IP地址
Action(=“submi
t”| “backInfo”|
“transform”|
“operate”)
该 XML 的动作标识:submit—提交数据;backInfo
—返回信息到客户端;transform—将此 XML 文件
转换为其它文件:operate—直接进行数据的选择、
查入、更新和删除操作
DataType 传入数据的数据类型(如订单、产品目录等)
下面是按以上规则生成的一个 XML文档:
⋯ Order > OrderTable >
(2)将 XML文档发送到远程服务器或客户端
用 SOAP 协议封装该文档,通过 HTTP 协议传到数据交换中心
平 台 。 用 于 发 送 的 Send 方 法 采 用 了 .NET 类 库 提 供 的
HttpWebRebquest 和 HttpWebResponse 类,这两个类用于处理程序同
Web 服务器之间的 HTTP 通信。首先实例化一个 HttpWebRequest对
象,用它的 GetRequestStream()方法来发送数据。
HttpWebRequest sendRequest= (HttpWebRequest) WebRequest.
Create(HttpSite)
System.IO.Stream request_stream= sendRequest. GetRequest
Stream();
再 实 例 化 一 个 HttpWebResponse 对 象 , 用 它 的
GetResponseStream ()方法来接收服务器返回的消息。
HttpWebResponse sendResponse= (System.Net.Http WebResponse)
sendRequest.GetResponse();
System.IO.Stream response_stream= sendResponse. Get Response
Stream();
(3)接收传入的 XML文档
对 XML 文档的接收在设计中采用了.NET 的异步编程机制,交
换 中 心 首 先 异 步 读 取 传 入 的 XML 文 档 : 先 实 例 化 一 个
AsyncCallback 类,以启动异步的功能并在异步的功能结束后提供一
个方法调用:myCallBack=new AsyncCallback (this.OnCompleted
Read),再用 OnBeginRead()开始异步读取传入的 XML 文件,接下来
调用 private void OnCompletedRead(IAsyncResult asyncResult)方法读
入 XML文档。
读取完毕后,解析该 XML 文档,获得表 1 所定义的各个属性,
根据相关值作进一步处理。
(4) 验证用户是否注册
bool Isregister(string sender,string dataType))
(5) 获取从发送者的 XML到符合平台标准的 XML转
换或从符合平台标准的 XML到接收者转换时所需的 XSLT
string GetXslt(string sender,string acceper,string dataType)
如:企业 A的订单类 Schema如下:
⋯
⋯
而企业 B的订单类 Schema如下:
⋯
⋯
通过该方法生成的 XSLT文档为:
/
/
-
⋯
(6)XML映射
用 XSLT文档把客户端发送的 XML文档转换为符合平台标准格
式的 XML 文档,或从该标准格式的 XML 文档到符合客户端格式的
XML 文档,这里采用了.NET 的 XslTransform 类中的 Transform 方
法来进行转换。
xslTransform.Transform(new XPathDocument (xmlReader), null,
xmlWriter, null);
通过以上方法,本文实现了数据交换功能,并将其应用
于区域协同电子商务项目中,很好地解决了系统间以及系统
内部的数据交换问题。
5 结束语
基于 XML 的数据交换平台的建立使不同企业的异构系
统之间实现最大限度的协同,并能扩展现有数据交换应用,
从而使企业间的应用集成成为可能,使企业的供应链各环节
有机地结合起来,建立基于 Internet 的供应链协作模式,从
根本上促进电子商务的发展。但应该注意到 XML 文档一般
都比采用二进制格式的文件要大,当有大量数据需传输时,网
络的负荷是需要着重考虑的问题,另外,如何保证数据交换
的事务性、如何保证数据安全性等是需要进一步考虑的问题。
参考文献
1 Simple Object Access Protocol(SOAP)1.1 [EB/OL]. http://www3.org/
TR/ SOAP, 2002-03-20
2 Pendyala V S, Shim S S Y, Gao Z. An Xml Based Framework for
Enterprise Application Integration[J]. IEEE International Conference
on E-commerce, 2003-06:128-135