朱华明 贾海天
(1、苏州大学计算机科学技术学院,江苏 苏州 215021 2、太仓职业教育中心校,江苏 太仓 215400 3、苏州经贸职业技术学院,江苏 太仓 215400)
电子数据交换(Electric Data Interchange,EDI)是一种利用计算机进行商务处理的新方法,它是将贸易、运输、保险、银行和海关等行业的信息,用一种国际公认的标准格式,通过计算机通信网络,使各有关部门、公司和企业之间进行数据交换和处理,并完成以贸易为中心的全部业务过程。由于EDI的使用可以完全取代传统的纸张文件的交换,因此也有人称它为“无纸贸易”或“电子贸易”。
EDI是一种在公司之间传输订单、发票等作业文件的电子化手段。它通过计算机通信网络将贸易、动输、保险、银行和海关等行业信息,用一种国际公认的标准格式,实现各有关部门或公司与企业之间的数据交换与处理,并完成以贸易为中心的全部过程,它是80年代发展起来的一种新颖的电子化贸易工具,是计算机、通信和现代管理技术相结合的产物。国际标准化组织(ISO)将EDI描述成“将贸易(商业)或行政事务处理按照一个共认的标准变成结构化的事务处理或信息数据格式,从计算机到计算机的电子传输”。而ITU-T(原CCITT)将EDI定义为“从计算机到计算机之间的结构化的事务数据互换”。又由于使用EDI可以减少甚至消除贸易过程中的纸面文件,因此EDI又被人们通俗地称为“无纸贸易”。统一数据交换平台主要实现功能是:(1)电子数据交换(2)传输数据的存证 (3)报文标准格式转换 (4)安全保密 (5)提供信息查询(6)提供技术咨询服务(7)提供昼夜24小时不间断服务 (8)提供信息增殖服务等。
我国必须要尽快发展EDI业务,具体体现在以下两个方面:
(1)对外开放的发展,特别是对外经济贸易活动规模的迅速扩大,导致与国外商业(及其他类型)数据交换量的急剧扩大。根据许多国家统计,单证费用占产品贸易额的7%左右,我国对外贸易每年的单证费用大约是70亿美元,如果采用EDI技术,估计每年仅此一项就可节省数十亿美元。
(2)中国已经加入世界贸易组织,加入世界贸易组织一方面意味着我国国内市场已经纳入了世界大市场,另一方面也意味着我们的生产要面向世界的大循环中。因此,在未来世界贸易组织活动中,我们要想在竞争激烈的国际贸易市场中站稳脚跟,全面推广、采用EDI技术已成为我国一项重要的技术政策。它对促使我国消除国际贸易中的技术壁垒,推进产品和企业步入国际统一的大市场,无疑有十分深远的影响。
结合实际工作需要,作者在多个保税物流园信息化建设中遇到这样的问题,这些问题是物流系统急待解决的问题,对各个子系统的核心业务构成了关键性的影响,正因为这些问题,所以我们需要建立统一的数据交换平台来完成实际项目中的需求。
各个企业各个单位之间都开发和应用了自己的信息化系统。各个单位之间使用了不同的开发技术和后台数据库,它们之间是分离,没有关系的。企业集成不仅仅能创建一个三(表现层、业务层、数据访问层)层应用结构,还能使一个应用分布到多台计算机上。分布式应用中,单个的一层是无法自己运行的,而集成应用中的每一个应用都能独立运行,它们时间通过偶合完成功能。异步消息传递体系结构来集成多个应用,异构数据库的同步问题是实际项目中急待解决的问题。
电子数据交换最主要的任务是实现不同系统,不同业务之间的数据交换与系统整合,下图是一个实际项目中各个系统的分布图(图1),各个系统之间是彼此独立的,使用各自不同的数据库。首先企业端通过一站式申报平台申报单证信息到海关由海关进行审批工作,如果海关审批通过,相应的企业端信息状态则进行变更,然后企业端发送车辆信息到物流园区场站系统,场站系统接收到海关端的放行信息和企业端发送的车辆信息则进行车辆通过放行工作。
同时一站式平台可以通过Web服务接收企业ERP系统发送过来的核库信息,并且把核库信息保存到一站式系统后发送核库报文到海关系统,由海关相关人员进行核销操作,实现海关库存的核减。
图1
整个系统之间是通过各自独立的Windows服务监控自己的数据库,对应表发生变更以后,生成变更后的XML报文,通过路由设置由MQ消息队列把报文发送到统一数据交换平台,统一数据交换平台把报文通过路由配置发送到接收端,接收端服务接收到MQ报文以后,对接收的XML报文解析进入接收端数据库。各个报文定义使用Schema定义来完成,只有符合Schema规则定义的报文才可以进入消息队列来进行传输。例如客户关系Schema报文定义如(图2)所示,只有符合Schema格式的报文才可以生成XML报文进行传输。
根据需求架构和传输的报文格式,我们制定了相应的实现方法与实施方案来满足客户要求,实现信息的及时安全传递。
各个子系统之间有他们独立的服务程序来完成,它们与统一数据交换平台建立接口,然后由统一数据交换平台进行报文的路由分发。
图3
如(图3)所示,传输系统使用了WINDOWS服务来完成各个节点的数据监控;根据上图可以看出其内部包括以下组成部分:
(1)WindowsServe_Fuzhou:Windows服务组件,负责各个子系统的数据传输;出库动作:Adapter组件接收到自己数据库变更的时候,通过对应配置指定的Schema生成XML报文,发送报文到MQ消息队列里面。入库动作:接收到MQ队列里面的XML报文、通过对应的Schema进行报文格式的解析,符合格式要求的报文通过Adapter组件进入到自己的数据库表里面。
(2)MSMQ:消息队列传输组件,负责XML报文的传输工作;
(3)BIZTALK_MESSAGE:报文定义、解析、路由、配置组件;是整个传输系统的核心。使用配置文件来完成以上配置工作,提高系统的灵活性。
(4)LOG:系统日志模块,用于报文的传输跟踪与调试,建立统一的日志监控平台,完成对每一笔报文的监视工作,同时可以对出现异常的报文进行分析工作,通过Web页面显示给客户;
(5)SqlAdapter_fuzhou:数据库(SQLSERVER)监视组件,当监视到数据库里面对应的表发生变更以后,Adapter组件会启动BIZTALK_MESSAGE消息处理模块,对数据表里面的记录进行操作,进行出入库操作,服务的数据访问层使用了传统的三层架构来完成,如(图4)所示,数据库与传输服务服务之间使用了ADO.net进行数据库访问,通过数据访问层 (DAL)和业务逻辑层(BLL)完成,提高了系统的可读性与灵活性;
图4
(6)ORACLE Adapter:数据库(ORACLE)监视组件,对Oracle数据库进行监视工作,系统通过不同类型的Adapter实现的多种数据库的访问接口,如果有新的数据库类型只需要增加对应的Adapter就可以实现对应的数据库同步;
(7)Security_Module:消息传递过程中的加密解密组件,系统使用了证书加密机制来完成对XML报文的加密和解密工作;
具体代码如图5:
系统编译测试完成以后,需要把服务部署到对应的系统上面,各个系统之间是通过网闸分离开来的,,所有系统之间的数据传输都需要通过统一数据交换平台来完成。如(图 1)所示,一站式平台、海关端系统、场站系统分别部署自己的服务。各个服务相对独立,同时与统一数据交换平台进行报文传递,用于完成报文的接收和发送工作,具体部署包括修改配置文件,DLL动态链接库的装配 (其中Schema定义模块需要装配到操作系统目录下面),运行数据库脚本和具体的服务安装工作(主要包括连接数据库设置、报文监控系统的设置)。安装部署完成以后打开三个不同地点的WINDOWS服务,系统部署完成,同时部署统一数据交换平台,对应的统一监控平台使用微软的BIZTALK系统集成软件来整合,可以实现不同数据库的同步工作。通过实际项目的运行工作,目前在运行情况良好。
文章通过统一数据交换平台与WINDOWS服务相结合实现数据订阅分发机制给出了数据交换的一些具体解决方案。其中对XML报文的定义、解析、配置工作是系统实现的核心工作。
[1]康博著《BizTalk高级编程》,清华大学出版社,2005
[2]程明光主编,《电子商务数据交换标准与应用》,人民邮电出版社,2006
[3]孙荣明 贾海天,基于WEB服务的B2B系统集成[J].中国新技术新产品,2009-4