基于数据交换平台的舱单申报系统研究

2015-09-28 01:02:10郑佐
现代计算机 2015年36期
关键词:适配器海关报文

郑佐

(中国电子口岸数据中心宁波分中心,宁波 315012)

基于数据交换平台的舱单申报系统研究

郑佐

(中国电子口岸数据中心宁波分中心,宁波315012)

0 引言

近年来,随着我国对外贸易规模的不断扩大和国际物流的不断发展,海关对舱单的管理面临一些新情况,原管理办法已不适应当前形势发展的要求。因此海关总署重新制定了 《中华人民共和国海关进出境运输工具舱单管理办法》,对进出境运输工具舱单的管理工作起到至关重要的作用。

海关新舱单业务涉及港务码头、机场、船代、拼箱监管堆场和理货公司等多个主体,为使新舱单业务推广工作顺利进行,各直属海关需建立一套友好的对接系统实现海关和企业之间的互联。通过该系统为接入企业提供友好的数据交换接口,实现电子数据实时交换,最终平稳过渡到新舱单业务模式。

1 舱单申报流程分析

海关舱单数据根据货物进出境运输方式主要分为海运和空运两大类,根据业务类别又可分为原始舱单、预配舱单、运抵报告、装载舱单、理货报告、分拨分流、落货改配、国际转运等。虽然舱单类别较多,但是舱单申报流程相对比较单一,下面以水运预配舱单为例分析一般舱单申报流程。如图1所示,舱单申报涉及申报单位、直属海关和海关总署。

船代根据船公司提供的舱位数据生成海运预配舱单报文发往海关。直属海关接收到船代申报的报文后会进入数据交换平台处理。数据交换平台结合业务参数配置信息对收到的报文进行校验,如果校验失败则生成失败回执发送回申报方,如果校验通过则继续发送申报报文到海关总署。校验通过的报文会被数据交换平台解析和转换,报文原始内容写入报文数据库,提取的业务数据写入业务数据库。同时,数据交换平台按照业务规则进行数据发布,其他系统订阅发布的数据作为舱单基础数据使用。海关总署收到直属海关发送的舱单报文后对报文格式和数据进行校验,如果校验通过进入总署舱单和运输工具管理系统进行业务逻辑处理并生成相应回执,如果校验失败则直接生成失败回执。

直属海关数据交换平台接收来自海关总署的舱单处理回执,通过预设的逻辑对舱单回执进行解析、转换、然后更新报文数据库和业务数据库。同时,数据交换平台根据需要对回执数据进行发布,相关系统通过订阅舱单回执更新相关数据。数据交换平台根据申报方代码发送回执报文到数据申报方。船代收到舱单回执后分析回执报文中的业务代码和错误代码,如果申报通过就进行下一轮数据申报流程或结束申报,申报失败则对数据修正后进行再次申报。

图1 舱单申报流程

2 系统设计

港务码头、自理散货码头、理货公司、海关监管堆场及船代等申报企业由于采用的操作系统和技术平台存在诸多差异,为降低应用集成难度海关总署制定了基础数据标准。数据交换接口采用数据报文消除应用系统之间的耦合,报文格式统一采用XML,字符编码采用UTF-8,为异构系统程序开发提供便利。

舱单申报系统架构设计建立在海关总署基础数据标准之上,整个系统架构分为接入区域、处理区域和内部区域(图2)。

图2 系统架构

接入区域为数据申报企业提供数据接口,包括FTP、消息队列以及Web三种方式。FTP适用于那些信息化程度不高的企业,比如拼箱监管堆场。一般拼箱监管堆场企业向海关申报的数据量不大,采用FTP进行报文传输能够满足需求,并且对企业来说程序开发难度较低。为保证数据传输安全堆场和海关之间通过专用VPN设备联网。消息队列主要针对具有较强信息系统研发能力的企业,例如港务EDI中心和地方电子口岸公司。通过专用网络同海关相连,采用消息队列可满足数据传输量大、时效性高、分布式事务和可靠数据传输场景。另外,消息队列提供简单的发布订阅机制,可进行简单的数据交换。对于一些刚开展进出口业务的企业,由于其信息化水平较弱,业务量不大,可选用Web录入接口。在Web服务器端,数据交换平台查询企业Web申报数据生成舱单报文发送到海关,同时接收来自海关回执解析入数据库,企业用户通过网站可查询申报数据状态。

处理区域部署舱单申报系统功能组件,包括Web层、应用层和数据存储层。Web层采用ASP.NET开发运行在IIS上,包括企业端和海关端两大模块。企业端模块为企业提供数据录入、修改、删除、申报以及查询功能。海关端模块主要为系统管理员和海关关员提供数据审批、查询统计、监控预警以及相关参数设置功能。应用层包括数据索引和监控预警等服务。数据索引服务为报文建立报文类型、报文ID、企业代码、发送时间、数据类别等信息索引,并对运输工具、航次(班)号、集装箱和提单等关键业务信息进行预处理,提高数据查询统计效率。监控预警服务实现对企业申报数据的监控,根据预先设置的参数和预警阈值对申报的数据进行匹配,如果匹配成功采取数据跟踪、数据拦截和通知预警等动作。数据存储层包括报文数据库和业务数据库,为上层应用查询统计提供支持。报文数据库存储原始数据报文;业务数据库包含系统相关的配置信息、监控预警信息,以及舱单业务数据。

内部区域主要是指直属海关和海关总署内网。直属海关和海关总署之间数据传输采用消息队列中间件实现全程事务化,保证数据长距离传输的可靠性。

舱单申报系统底层为数据交换平台,申报的报文通过数据交换平台提供的适配器实现数据集成。适配器接收外部申报数据写入本地数据库并通过消息队列发送数据到海关总署。另外,数据交换平台接收来自海关总署的回执报文和指令报文写入本地数据库并按企业代码发送到数据申报方。

数据交换平台提供灵活的消息发布订阅机制,可根据具体业务规则制定数据发布策略。数据订阅方可根据平台发布的数据项选择性地进行数据订阅,最终数据通过适配器进入目标系统。数据交换平台提供的消息映射转换功能能够满足各类系统对数据格式多样化的需求,通过架构映射功能可实现XML、平面文件以及EDI等消息格式的映射转换,从而满足信息系统数据集成方式多样化。

数据交换平台基础框架基于BizTalk Server,可实现组织范围内或超越组织机构界限的电子数据文档交换。平台以XML技术为核心,通过对基础框架属性以及各类适配器属性升级实现强大的消息发布订阅机制。对于复杂的数据筛选可以通过XPATH定位XML中的具体元素,对其进行属性架构绑定后在消息发布阶段升级为架构属性用于消息路由。平台提供业务流程编排支持复杂业务流程设计。

数据交换平台核心为消息引擎,包含XML架构、适配器、接收和发送端口、管道及管道组件、业务流程、业务规则引擎以及消息数据持久层等功能组件(图3)。

XML架构用于制定消息格式,通过XML标注功能实现增强的扩展消息功能,提供对可分辨字段、消息属性和非XML平面文件的支持。适配器组件作为消息传输端点用来同各类信息系统接口对接,对于非标准协议,可通过自定义适配器编程接口,实现更加灵活的适配。接收位置和发送端口包含接收管道和发送管道,管道包含的组件可实现消息验证、探测、编码和解码、组装和拆装、加密和解密、加签和验签等功能。通过管道组件编程接口,可编写特定应用的自定义组件实现特有功能。业务流程编排用于设计复杂消息处理流程,在运行时环境中业务流程通过订阅特定消息激活流程实例,业务流程可以通过绑定物理端口同外部系统进行通信。业务流程内部模块提供执行.NET代码、调用组件、服务和子流程等高级功能。业务规则引擎实现业务流程同业务规则策略的分离,用来解决某些易变业务规则导致应用程序频繁更新部署的问题。

图3 消息引擎

如图3所示,接收端口可以包含多个接收位置,接收位置是接收适配器和接收管道的组合。消息引擎首选调用接收适配器接收消息,在适配器处理完成后消息引擎会调用接收管道执行解码、拆装、验证和解析参与方四个阶段的管道组件,然后执行接收端口中配置的进站映射进行消息转换,最后消息引擎会把消息发布到消息盒中。业务流程会订阅相关消息执行消息处理流程,父流程按需启动子流程或调用子流程。如果流程绑定端口,那么根据端口类型消息引擎会把消息发布到消息盒中或从消息盒中获取关联消息。发送端口或端口组根据匹配规则订阅相关消息,发送端口组是发送端口的逻辑集合。消息订阅过程中消息引擎先执行出站映射进行消息转换,然后会调用发送管道执行预组装、组装和编码三个阶段的管道组件,最后消息引擎会调用发送适配器发送最终的消息。

由于舱单申报系统对实时性和稳定性有较高要求,因此采用F5这类设备实现应用层负载均衡并消除单点故障。应用层根据系统压力情况部署多台相同功能的服务器由F5进行调度访问。通过选择合适的负载均衡算法保持服务器资源均衡分配。对于一些有状态的访问服务开启会话保持避免负载调度时出现会话丢失。数据交换平台内部实现了负载均衡调度模型,支持消息报文异步多个队列处理模式,根据当前消息队列深度动态调整进程和线程的读写并发数。

舱单申报系统后台使用SQL Server,为避免数据库服务器故障出现系统无法正常运行情况,采用双物理机实现故障转移群集,数据库物理文件存储在通过光纤网络连接的区域网络存储(SAN)上。在服务器和网络存储之间部署数据存储网关,经过存储网关的数据会同时写入到多个相连的网络存储上,消除网络存储单点故障。

3 重要代码实现

舱单报文路由信息包括报文类型、功能代码、发送方和接收方等。通过数据交换平台对参与路由的字段进行属性升级才能用于消息发布和订阅。报文属性升级通过绑定属性架构实现。下面的XML Schema定义了报文类型的属性架构:

在业务流程中构建目标消息的时候通过XPATH从源消息中提取报文类型元素数据,然后附加到目标消息上下文中进行属性升级,代码如下:

在目标消息进行发布时报文类型数据作为升级属性包含在消息上下文中,通过数据交换平台发送端口或端口组对该升级属性进行筛选从而实现消息订阅。下面的语句指定对水运预配舱单报文进行订阅。

通过编写自定义管道组件可对经过管道的消息提供自定义处理,比如特定算法的加解密、预处理、格式化等。舱单报文文件名中包含了报文类型、报文版本号、发送方代码以及报文生成时间等信息,例如CN_MT2101_1p0_3100144089542_20150922081019365. xml。通过实现自定义管道组件从报文名中提取报文类型和发送方代码等信息可以避免解析报文内容,提高数据交换效率。下面以舱单报文名数据提取为例进行关键代码讲解。

自定义管道组件按阶段不同实现的接口也有所不同,以验证阶段的自定义管道组件为例一般需要实现4个接口:

针对报文名称处理的核心逻辑通过IComponent接口的Execute方法实现:

通过文件适配器上下文属性获取报文文件名称,通过正则表达式提取文件名称中的数据。例如,报文类型的正则表达式匹配模式为“_(MT[0-9A-Za-z]{4,})_”。主要实现代码如下:

4 结语

实际情况表明,对各类申报企业按信息化水平分类,提供合适的舱单申报数据接口,能够有效加速海关新舱单业务模式的应用推广。借助基础数据交换平台,能够快速实现信息系统之间的应用数据集成,降低系统研发难度,缩短系统研发周期,并带来系统运维效率的提升。系统采用成熟的高可用模型和负载均衡技术,能够满足海关业务对信息系统的要求。舱单申报系统设计方案可为政府企事业单位研发类似功能需求的系统提供重要参考价值。

[1](英)Martin Fowler.企业应用架构模式[M].王怀民,周斌译.北京:机械工业出版社,2010.

[2](美)Gregor Hohpe,Bobby Woolf.企业集成模式[M].荆涛,王宇,杜枝秀译.北京:中国电力出版社,2006.

[3]Microsoft Developer Network.https://msdn.microsoft.com/library

Manifest;Data Exchange;EDI;BizTalk

Research on Manifest Declaration System Based on Data Exchange Platform

ZHENG Zuo
(China E-Port Data Center Ningbo Branch,Ningbo 315012)

1007-1423(2015)36-0065-06

10.3969/j.issn.1007-1423.2015.36.015

郑佐(1978-),男,浙江宁波人,系统分析师,研究方向为计算机技术、数据库技术

2015-11-13

2015-11-30

通过对舱单申报流程的分析,根据各类申报企业的信息化应用水平,研究设计切实可行的直属海关舱单申报系统。该系统以电子数据报文为主要接口,结合Web和消息队列,以数据交换平台为核心进行设计。该系统充分利用数据交换平台提供的验证、转换以及发布-订阅等功能实现海关与企业之间的应用数据集成。

舱单;数据交换;EDI;BizTalk

Through the analysis of the manifest declaration process,according to the informatization level of the declaration enterprises,researches and designs the feasible manifest declaration system for regional customs.The system with electronic data message as the main interface,combined with web and message queue,and data exchange platform as the core to design.The system makes full use of the data exchange platform of validation,transformation,publish-subscribe,and other functions to achieve the application data integration between customs and enterprises.

猜你喜欢
适配器海关报文
基于J1939 协议多包报文的时序研究及应用
汽车电器(2022年9期)2022-11-07 02:16:24
CTCS-2级报文数据管理需求分析和实现
清代海关银锭漫谈
艺术品鉴(2020年7期)2020-09-11 08:05:26
关于未纳入海关统计的货物贸易收支统计研究
中国外汇(2019年19期)2019-11-26 00:57:34
外贸企业海关合规重点提示
中国外汇(2019年20期)2019-11-25 09:54:54
浅析反驳类报文要点
中国外汇(2019年11期)2019-08-27 02:06:30
适配器模式及其应用
电子测试(2017年11期)2017-12-15 08:57:45
新型水文测验GPS适配器设计与应用
ATS与列车通信报文分析
清代广东十三行与粤海关
广州文博(2016年0期)2016-02-27 12:48:43