找论文网 > 计算机论文 > 计算机应用 >

基于UBL和纯XML数据库的EDI系统设计与实现(1)

摘  要  本文在总结原有EDI系统建设中存在的问题基础上,引入了UBL和Native XML DB两种新技术,最后,提出了构建EDI系统所需实现的基本功能框架。本文可以为正兴起的地方电子口岸的EDI系统建设起到一个指导作用。

关键词  电子数据交换  EDI  UBL  纯XML数据库

 

1  EDI简述及现状

电子数据交换(Electronic Data Interchange,EDI)就是将数据的信息规范化和格式化,并通过计算机网络进行联通处理。EDI系统在很多领域有广泛的应用,如医疗、零售、海运等,主要用来做组织机构间相互交换信息。

传统贸易中是使用各种单据、单证、票据通过人工或半人工的方式来实现贸易相关方之间的信息流转。将传统贸易模式过渡到EDI贸易模式,那将可以大大提高交易效率,简化交易流程,减少错误,降低成本。特别是在外贸物流行业,贸易所涉及到环节繁多,人工出错率大,数据需要反复确认等许多不利因素。EDI系统将有效帮助解决这类因素,从而加快物流通关速度,节约物流通关成本。因此,国家也在大力推行各地方电子口岸的建设。

传统的基于增值网络的EDI系统造价昂贵,需要租用线路,可扩展性不强。如今Internet是如此的普及和方便,各贸易实体当然希望能够通过Internet的方式实现和EDI系统进行信息交换,但是Internet上传输的数据存在很大的不安全性,这就需要增加物理链路的安全性和数据本身的安全性。

EDI系统间传输的报文可以采用国际标准,如UN/EDIFACT等,而这种国际标准往往是为了支持全球EDI系统,报文结构复杂,可读性不强,程序处理也不方便。我们如果针对于区域化贸易数据流转,可以不采用结构复杂的UN/EDIFACT报文格式,而采用自定义报文格式,如定长或分隔符区分字段或元素。只要收发双方统一好格式,实现起来比较简单。但是,自定义报文格式也有一些限制,如数据中出现格式上的保留符号就比较难处理,报文结构不适合加密,报文解析程序不能灵活适应格式修改,报文格式正确性难以校验。因此,我们用XML报文进行传输数据能克服以上不足,并能利用和发挥XML的优势和许多成熟的技术。在将来的EDI系统中,将有越来越多的行业基于XML框架。

2  UBL的定义及在EDI系统中的应用

国际上有许多组织根据自己的需求定义了特定的XML格式报文,这样不同组织间要进行报文交换就很困难。2004年9月,OASIS 技术委员会定义了和发布了UBL(Universal Business Language)1.0,称为通用商业语言。UBL提供让许多的商业文档可以用一种普遍地可理解和可识别的商业语法合理的组装而成,也是商业间的信息交互运行在一个标准的业务框架下,就如ISO 15000(ebXML)。UBL可以通过扩展来满足不同行业的需要,从而试图解决现有存在的大量不同XML格式报文的问题。

发布的UBL 1.0提供了如下内容:

⑴ XML Schema描述的可重用的数据组件库,如“地址”、“条款”、“付款”——这些每天商业上都要使用的数据元素。

⑵ 通用商业文档如“订单”、“发票”、“发货通知”等可以从UBL组件库抽取出需要的构件称特定的XML Schemas集。

⑶ 在特定的贸易关系中,支持UBL的个性化定制。

如一个订舱报文(booking message),里面有船舶名称、发货人名称、收货人名称、货物名称、港口、备注等信息(参见下图),


图1  订舱报文UBL组件模型


这些信息单元都是基于UBL中定义的基本商业信息实体(Basic Business Information Entity)。我们也可以把几个相关的基本业务信息实体组成一个集合商业信息实体(Aggregate Business Information Entity),如订舱货物信息可以由货物名称、包装类型、件数、体积、毛重、净重这六个基本业务信息实体组成一个集合业务信息实体,称Cargo Line Item。最后一个订舱报文的形成就可以通过把有关的基本商业信息实体或集合商业信息实体按一定顺序拼在一起。同时,这些基本/集合商业信息实体都是可以在其他报文中重用的。只要我们建立起了这些组件库,我们的中间XML报文格式定义就像拼装零件一样简单,这样我们的报文格式也易于管理和维护。在UBL 1.0版本中也给出了许多可重用的基本组件库,下图(图2)是以XML Schema形式给出的Party信息实体,

 

图2  Party信息实体的Schema定义

在实际的报文中如发货人、收货人、通知人等的定义都是以Party信息实体为基础,并进行定制而成的,我们也可以把自己定制而成的信息实体根据需要放入自己的基本组件库。

图3  实际中Shipper_Party信息实体的构成图

 

另外,我们把每一个基本信息实体当作一个小模块,用XSL语言把每个小模块定义好在WEB上的显示方式。当我们要以WEB方式显示一个报文时,可以把用到的信息实体对应的XSL模块重新在jsp或asp中构建一起,根据需要调整各模块间的顺序或格式大小,这样一个报文就可以方便以WEB方式展现给客户。报文交换平台需要提供给客户报文查询功能,按照这样方式,客户查询出的报文可以直接以WEB方式显示,而且实现简单,可以达到显示风格统一。

我们需要在EDI系统中建立一套UBL定义的报文格式标准,作为EDI系统中的中间报文格式,利用UBL的特性,我们建立和维护这套报文标准就方便许多。用户的报文格式都转换成中间的报文格式,然后再把中间的报文格式转换成接收方可以接收的格式。

3  Native XML DBEDI存储系统中的应用

Native XML DB又称纯XML数据库,它把一个XML文档作为基本的逻辑存储单元。如现在的Oracle 10g就支持Native XML数据库,并且定义XMLType作为一种数据类型,它使数据库可以理解含有XML的列或表,就像DATE数据类型使数据库可以理解含有日期的列,它可以同其它数据类型一样使用。

Native XML DB的简单使用可以按照下面操作:

首先把某个报文类型相应的XML Schema报文标准(用UBL Schema定义的),注册到Native XML DB,Oracle可以通过调用DBMS_XMLSCHEMA.REGISTER_SCHEMA()的PL/SQL过程来注册Schema。当基于该Schema的实际报文存储入库时,可以用XMLType数据类型提供的方法isSchemaValid()和schemaValidate()来验证报文是否满足报文标准的定义。

然后创建表,类似其他建表的方法,

SQL> create table XML_DOCUMENT_TABLE

2         (

3           FILENAME             varchar2(50),

4           XML_DOCUMENT       XMLType

5         )

或者,当有XML Schema已经向数据库注册后,可以用以下方法来创建表,

SQL> create table XML_DOCUMENT_TABLE of XMLType
  2    xmlschema "http://xmlns.oracle.com/demo/Booking.xsd"
  3    element "Booking";

共2页: 1 [2] 下一页



业务协同项目管理信息系统及其实现机制
Spring框架与AOP思想的研究与应用
工商管理 | 工科论文 | 财务管理 | 管理学 | 公共管理 | 财政税收 | 证券金融 | 会计审计 | 计算机 | 法律论文 | 医药学 | 汉语言文学
社会论文 | 工科论文 | 理科论文 | 文化论文 | 艺术论文 | 文学论文 | 哲学论文 | 政治论文 | 英语论文 | 写作指导 | 计算机应用
www.zlunwen.com 找论文网 ® 版权所有 网站地图