原文路径:https://mp.weixin.qq.com/s/FRMMthtA64gaXhBqyTlknw
导读
我们在上一篇内容中,简单介绍了中间数据库的交互模式。
其中,我们提到:如果其他外部公司要与自己企业内部的系统有数据接口,且为了保证安全,不给外部公司访问我们自己数据库的权限,在这种情况下,我们应该以何种方式做系统的数据交互接口呢?
本篇,我们简单介绍一下:利用文件传输进行数据交互的接口模式。
正文
一、基本工作原理
文件传输的数据交互接口模式,顾名思义,其数据的交互是以文件为载体的,可以理解为:数据发送方的系统将数据写入到一个文件上,再将文件传输给数据接受的方系统;数据接收方系统将读取文件中所承载的数据,并根据数据执行相应的系统功能,从而实现系统间数据交互的目的。
这种交互会有效地避免系统之间的函数调用,以及系统之间需要相互访问数据库等,为各个系统的独立安全,从接口架构设计的层面,提供了保障。
这种模式,我们可以简单且形象地理解为:小明同学在上课时间给班里的小白同学递纸条。其中,小明和小白分别是不同的业务系统,而纸条就是这里的文件了。
文件传输接口中,常使用的文件格式有哪些?
常见接口的系统传输文件,主要有:SAP系统中标准的IDOC文件,XML文件、Json文件、EDI文件,有的企业有时候也会直接使用:Excel文件、TXT文件等等。
当我们确定了系统间的文件格式,接下来需要确认文件中业务字段的生成和解析规则,同时,定义每一个字段的长度、数据类型等等。
二、文件传输接口的常用系统架构设计
1.业务系统--业务系统
如下图所示,系统A将业务数据按照约定规则生成数据文件,存储在自己的服务器上。之后,将文件传输给系统B,系统B在接到系统A的文件后,先将文件存储至自己的服务器上,再针对数据进行解析与使用。
2.业务系统--文件存储服务器--业务系统
如下图所示,有时候为了保证文件传输接口的统一管理,会专门在业务系统间设置一个专门的服务器,用于文件的存取。
当然下图只展示了两个系统的文件交互,其实,有些时候,在文件存储系统中,会根据不同的业务情况,以及系统交互情况,对所有文件通过文件夹管理起来,这样就能支持多系统、多业务的文件传输接口。
3.业务系统--文件存储系统----文件存储系统--业务系统
前文中,我们专门提到不同企业间的系统接口方案,是可以基于文件传输接口进行设计的,此种方式能够很好地保证各自企业系统及服务器独立安全。
4.文件传输协议:
文件的传输,必然有很多传输规定方式和技术通信规则。不同业务系统间,如果有接口业务,文件传输协议的选择,是接口建立的基础。有了相同的传输协议,才能有共同的接口规则。
我们简单从应用层列举一下传输协议的使用目的:
文件的加密方式需要被定义:
比如,为了保证数据安全,所传输的文件需要加密,那么双方业务系统在生成和解析文件时,就得具备相同的加密方式;
文件的交互机制需要被定义:
比如,需要定义具体的交互方式,保证的数据文件不会丢失或重复等。
假定,当系统A将文件发送给系统B,为保证系统间的文件交互不会丢失或重复等,
常见的处理方式:当系统A把文件发出后,系统B接到此文件后,会给系统A一个回执消息,当系统A接受到此消息,就认为系统B已经成功接到文件,将不在发送文件了,否则会持续多次尝试发送文件等。
当然,还有的接口就设置的比较简单,当系统A文件发出后,系统A就默认系统B已经成功接收到文件,并不在做发送,或者直接理解为系统A只发送一次文件;在这种情况下,一旦系统B发现并未收到A的数据,会给系统A发起重新发送的申请等。
类似以上这类,文件接口交互中的传输握手协议等方式,都可以所选择的传输协议,进行不同程度上的定义和选择。
除此之外,还有很多通信技术层面的协议规定,都可以根据传输协议的选择而定。
我们常见的传输协议有:FTP/FTPS/OFTP/OFTP2.0/AS2/SFTP等等
通信协议的采用与连接方式有关等。
三、EDI技术的应用简述
EDI(Electronic Data Interchange)数据交互标准的应用,是文件传输接口广泛应用的典型代表。
电子数据交换(EDI) 是结构化的数据通过一定标准的报文格式,从一个应用系统到另一个应用系统的电子化的交换,电子数据交换将人为干预降到最小化。一个EDI系统通过内部系统给贸易伙伴系统发送数据只需几秒钟的时间。
为了保证企业间的数据交互规则统一,所以在欧洲、美国等地区,均有统一的基于EDI技术的商用标准。
目前,EDI解决方案在整车企业以及其供应链企业中,在很多贸易行业、运输行业、银行等行业中已得到广泛使用。
为支持不同企业的EDI技术应用,市面上已经有很多公司有其自己的产品和解决方案,而且也有很多专业的EDI顾问及相关技术人员,保证EDI技术支持下的文件传输接口方案的广泛应用。