CN109450948B - 数据传输方法和装置 - Google Patents
数据传输方法和装置 Download PDFInfo
- Publication number
- CN109450948B CN109450948B CN201811614050.3A CN201811614050A CN109450948B CN 109450948 B CN109450948 B CN 109450948B CN 201811614050 A CN201811614050 A CN 201811614050A CN 109450948 B CN109450948 B CN 109450948B
- Authority
- CN
- China
- Prior art keywords
- network
- message
- data
- response data
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0209—Architectural arrangements, e.g. perimeter networks or demilitarized zones
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种数据传输方法和装置,该方法包括:接收来自第一网络中的第一应用程序的第一消息;第一消息包括第一应用程序对第二网络中的第二应用程序的第一数据请求或第一响应数据;从第一网络中的第一连接池中,获取第一网络与第一单向网闸之间的第一通信连接;利用第一通信连接,将第一消息经由第一单向网闸发送至第二网络;建立第一网络与第二单向网闸之间的第二通信连接;利用第二通信连接,接收来自第二单向网闸的第二消息;第二消息由第二网络中的第二应用程序发送至第二单向网闸;将第二消息发送至第一应用程序。本发明的应用程序无需和两个单向网闸通信,降低了应用程序的开发难度、数据耦合度,从而利于应用程序的扩展和维护。
Description
技术领域
本发明涉及数据传输技术领域,特别是涉及一种数据传输方法和装置。
背景技术
目前,在交换内网和外网之间的数据时,主要是通过应用程序与单向网闸连接,从而借助于单向网闸来进行内外网之间的数据交换传输。
那么在开发直接面向单向网闸通信的应用程序(即软件)时,需要在应用程序中开发其与单向网闸之间的连接、数据发送以及数据接收等等繁琐的代码逻辑。并且,在开发的应用程序中,数据传输层和业务代码层是耦合在一起的。
因此,将应用程序与单向网闸直接通信连接而进行数据传输时,往往存在着应用程序开发难度大、数据耦合度高、不利于应用程序的扩展的问题。
发明内容
本发明提供了一种数据传输方法和装置,以解决相关技术中面向单向网闸而开发应用程序来进行内网应用程序和外网应用程序之间的数据交换时,所存在的应用程序开发难度大、数据耦合度高、不利于应用程序的扩展的问题。
为了解决上述问题,根据本发明的一个方面,本发明公开了一种数据传输方法,包括:
接收来自第一网络中的第一应用程序的第一消息;
其中,所述第一消息包括所述第一应用程序对第二网络中的第二应用程序的第一数据请求或第一响应数据;
其中,所述第一网络和所述第二网络之间物理隔离;
从第一网络中的第一连接池中,获取所述第一网络与第一单向网闸之间的第一通信连接;
利用所述第一通信连接,将所述第一消息经由所述第一单向网闸发送至第二网络;
其中,所述第一单向网闸用于从所述第一网络向所述第二网络传输数据;
建立所述第一网络与第二单向网闸之间的第二通信连接;
其中,所述第二单向网闸用于从所述第二网络向所述第一网络传输数据;
利用所述第二通信连接,接收来自所述第二单向网闸的第二消息;
其中,所述第二消息由所述第二网络中的所述第二应用程序发送至所述第二单向网闸;所述第二消息包括所述第二应用程序对所述第一应用程序的第二数据请求或第二响应数据;
判断所述第二消息包括所述第二数据请求还是所述第二响应数据;
若所述第二消息包括所述第二数据请求,则将所述第二数据请求发送至所述第一应用程序;
若所述第二消息包括第二响应数据,则将所述第二响应数据发送至所述第一应用程序。
可选地,所述利用所述第一通信连接,将所述第一消息经由所述第一单向网闸发送至第二网络之前,所述方法还包括:
对所述第一消息作编码处理;
所述利用所述第一通信连接,将所述第一消息经由所述第一单向网闸发送至第二网络,包括:
利用所述第一通信连接,将编码后的所述第一消息经由所述第一单向网闸发送至第二网络。
可选地,所述判断所述第二消息包括所述第二数据请求还是所述第二响应数据之前,所述方法还包括:
对所述第二消息作解码处理;
所述判断所述第二消息包括所述第二数据请求还是所述第二响应数据,包括:
判断解码后的所述第二消息包括所述第二数据请求还是所述第二响应数据。
可选地,所述判断所述第二消息包括所述第二数据请求还是所述第二响应数据之前,所述方法还包括:
获取所述第二消息中携带的所述第二应用程序的预设标识信息;
判断预先存储至所述第一应用程序的应用标识信息中,是否包含所述预设标识信息;
若否,则过滤所述第二消息;
所述判断所述第二消息包括所述第二数据请求还是所述第二响应数据,包括:
若预先存储至所述第一应用程序的应用标识信息中,包含所述预设标识信息,则判断所述第二消息包括所述第二数据请求还是所述第二响应数据。
可选地,所述建立所述第一网络与第二单向网闸之间的第二通信连接,包括:
建立所述第一网络中的第一监听端口与第二单向网闸之间的第二通信连接。
根据本发明的另一方面,本发明还公开了一种数据传输装置,包括:
第一接收模块,用于接收来自第一网络中的第一应用程序的第一消息;
其中,所述第一消息包括所述第一应用程序对第二网络中的第二应用程序的第一数据请求或第一响应数据;
其中,所述第一网络和所述第二网络之间物理隔离;
第一获取模块,用于从第一网络中的第一连接池中,获取所述第一网络与第一单向网闸之间的第一通信连接;
第一发送模块,用于利用所述第一通信连接,将所述第一消息经由所述第一单向网闸发送至第二网络;
其中,所述第一单向网闸用于从所述第一网络向所述第二网络传输数据;
建立模块,用于建立所述第一网络与第二单向网闸之间的第二通信连接;
其中,所述第二单向网闸用于从所述第二网络向所述第一网络传输数据;
第二接收模块,用于利用所述第二通信连接,接收来自所述第二单向网闸的第二消息;
其中,所述第二消息由所述第二网络中的所述第二应用程序发送至所述第二单向网闸;所述第二消息包括所述第二应用程序对所述第一应用程序的第二数据请求或第二响应数据;
第一判断模块,用于判断所述第二消息包括所述第二数据请求还是所述第二响应数据;
第二发送模块,用于若所述第二消息包括所述第二数据请求,则将所述第二数据请求发送至所述第一应用程序;
第三发送模块,用于若所述第二消息包括第二响应数据,则将所述第二响应数据发送至所述第一应用程序。
可选地,所述装置还包括:
编码模块,用于对所述第一消息作编码处理;
所述第一发送模块,还用于利用所述第一通信连接,将编码后的所述第一消息经由所述第一单向网闸发送至第二网络。
可选地,所述装置还包括:
解码模块,用于对所述第二消息作解码处理;
所述第一判断模块,还用于判断解码后的所述第二消息包括所述第二数据请求还是所述第二响应数据。
可选地,所述装置还包括:
第二获取模块,用于获取所述第二消息中携带的所述第二应用程序的预设标识信息;
第二判断模块,用于判断预先存储至所述第一应用程序的应用标识信息中,是否包含所述预设标识信息;
过滤模块,用于若所述第二判断模块判断预先存储至所述第一应用程序的应用标识信息中,不包含所述预设标识信息,则过滤所述第二消息;
所述第一判断模块,还用于若所述第二判断模块判断预先存储至所述第一应用程序的应用标识信息中,包含所述预设标识信息,则判断所述第二消息包括所述第二数据请求还是所述第二响应数据。
可选地,所述建立模块,还用于建立所述第一网络中的第一监听端口与第二单向网闸之间的第二通信连接。
与现有技术相比,本发明包括以下优点:
本发明通过接收第一网络中第一应用程序的第一消息,并获取第一网络与第一单向网闸之间的第一通信连接,无需建立第一应用程序与第一单向网闸之间的连接,并利用该第一通信连接,将第一消息经由第一单向网闸发送至第二网络;此外,本发明实施例还可以建立第一网络与第二单向网闸之间的第二通信连接,从而利用第二通信连接接收来自第二网络的第二应用程序且经由第二单向网闸的第二消息,并将其发送至第一网络中的第一应用程序。在第一网络的第一应用程序与第二网络的第二应用程序的数据交互过程中,应用程序无需和两个单向网闸通信,只需要发送消息和接收消息,大幅降低了应用程序的开发难度;并且,应用程序只需进行数据传输,无需进行业务逻辑的处理,而本发明实施例的中间件来实现业务逻辑的处理,从而将数据传输层和业务代码层解耦,降低了数据耦合度,从而利于应用程序的扩展和维护。
附图说明
图1是本发明的一种数据传输系统实施例的示意图;
图2是本发明的一种数据传输方法实施例的步骤流程图;
图3是本发明的一种数据传输装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种数据传输系统实施例的示意图。
所述数据传输系统包括处于第一网络的应用程序1和中间件1,处于第二网络的应用程序2和中间件2。
其中,所述第一网络和所述第二网络之间物理隔离,当第一网络为外网时,第二网络为内网;当第一网络为内网时,第二网络为外网。在本实施例以及图2所示的传输方法实施例中,第一网络为外网,第二网络为内网。
其中,所述第一网络和所述第二网络之间包括第一单向网闸(如图1所示的网闸1)和第二单向网闸(如图1所示的网闸2),所述第一单向网闸用于从所述第一网络向所述第二网络传输数据,所述第二单向网闸用于从所述第二网络向所述第一网络传输数据。
其中,内网为内部安全网络,外网为公共网络。
而网闸1和网闸2则是两个物理设备,网闸1和网闸2均部署在内网和外网之间,内网和外网通过使用两个单向网闸来进行数据交互。
为了避免开发直接面向单向网闸的应用程序(例如,应用程序1直接与网闸1和网闸2通信,来达到内外网数据传输的目的;再如应用程序2直接与网闸1和网闸2通信连接,来达到内外网数据传输的目的)所造成的应用程序开发难度大、数据耦合度高、不利于应用程序的扩展的问题,在本发明实施例中,在外网和内网均开发了中间件,如图1所示,这里将处于外网中的中间件命名为中间件1,处于内网中的中间件命名为中间件2。
本发明实施例的中间件(middleware)是一种独立的系统软件或服务程序,应用程序可以使用中间件来和单向网闸进行通信,由于中间件可以屏蔽网闸,使得应用程序的开发者可以不用关心单向网闸的存在,只需面向中间件开发应用程序,从而降低应用程序的开发难度。
中间件位于客户机/服务器的操作系统之上,负责发送和接收应用程序和单向网闸之间的数据包。它是连接两个独立的单向网闸的软件,可以将应用程序发送的请求数据包发送到另一端,在另一端处理完之后,再将响应数据包发送给请求端。
在开发面向中间件的应用程序时,只需要开发向中间件发送数据,接收来自中间件的响应数据;或者,从中间件接收请求数据,然后向中间件返回响应数据即可。无需开发应用程序与单向网闸之间的通信连接,所以,本发明实施例通过在应用程序和单向网闸之间的通信中开发中间件,从而可以降低应用程序的开发要求,简化开发过程,提高了应用程序的复用性,方便测试和维护;并且可以使应用程序的数据传输层和业务层代码进行分离,减少了开发中错误情况的出现,增强了可扩展性。
基于图1所示的数据传输系统,参照图2,示出了本发明的一种数据传输方法实施例的步骤流程图。图2示出了本发明实施例开发的中间件所实现的数据传输方法的步骤流程图。
由于不论是部署在外网还是内网中的中间件,其均可以实现将本端应用程序的数据请求或响应数据发送至另一端,以及接收另一端应用程序发送的响应数据或数据请求并转发给本端应用程序的功能。那么为了避免重复赘述,在图2所示的实施例中,以中间件1的部分工作流程来说明将本端应用程序的数据请求或响应数据发送至另一端的数据传输流程,以中间件2的部分工作流程来说明接收另一端应用程序发送的响应数据或数据请求并转发给本端应用程序的功能。
该方法具体可以包括如下步骤:
步骤100,对外网连接池以及中间件1的监听端口1进行初始化;
步骤200,对内网连接池以及中间件2的监听端口2进行初始化;
其中,内网和外网均配置有各自的连接池。
连接池是创建和管理一个连接的缓冲池,连接池包括多个连接,这些连接准备好被任何需要它们的线程来使用。
其中,上述步骤100可以由中间件1来执行,步骤200可以由中间件2来执行,在其他实施例中,上述两个步骤也可以分别由外网、内网中的其他装置来执行,本发明对此不做限制。
如图1所示,外网的连接池包括连接A,该连接A可以将外网的中间件1和网闸1建立Socket(套接字)通信连接,中间件1通过从外网连接池中调用该连接A从而能够与网闸1进行通信,这里中间件1主要通过连接A来发送消息(由应用程序1发送的数据请求或响应数据)至网闸1;
那么这里对外网的连接池初始化,即对连接池中的每个连接进行初始化。
外网的中间件1的监听端口1负责和网闸2建立Socket通信连接B,并监听网闸2发送的数据,那么中间件1通过连接B则可以接收消息(来自内网的应用程序2的数据请求和响应数据)。
那么这里对监听端口1初始化,从而便于后续建立连接B。
类似的,内网的连接池包括连接C,该连接C可以将内网的中间件2和网闸2建立Socket通信连接,中间件2通过从内网连接池中调用该连接C从而能够与网闸2进行通信,这里中间件2主要通过连接C来发送消息(由应用程序2发送的数据请求或响应数据)至网闸2;
那么这里对内网的连接池初始化,即对连接池中的每个连接进行初始化。
内网的中间件2的监听端口2负责和网闸1建立Socket连接通信D,并监听网闸1发送的数据,那么中间件2通过连接D则可以接收消息(来自内网的应用程序2的数据请求和响应数据)
那么这里对监听端口2初始化,从而便于后续建立连接D。
此外,本发明实施例预先对中间件1、中间件2、网闸1和网闸2进行了配置,从而便于后续建立上述四个连接。
例如,本发明实施例对中间件1预先配置了网闸1的端口3,那么中间件1从外网的连接池中获取的连接A,就是能够使中间件1和网闸1的端口3进行通信的连接。
而网闸1上预先配置了中间件2的目标地址,即监听端口2,从而网闸1能够与中间件2建立连接D。
所以,在上行数据传输时,中间件1在接收到应用程序1的对内网的请求/响应,就可以通过连接A将请求/响应发送给网闸1的端口3,网闸1的端口3接收到请求/响应,再通过连接D,将请求/响应发送给中间件2的监听端口2;
类似的,对中间件1预先配置了网闸2的端口4,那么中间件2在从内网的连接池中获取的连接C,就是能够使中间件2和网闸2的端口4进行通信的连接。
而网闸2上预先配置了中间件1的目标地址,即监听端口1,从而网闸2能够与中间件1建立连接B。
所以,在下行数据传输时,中间件2在接收到应用程序2的对外网的请求/响应,就可以通过连接C将请求/响应发送给网闸2的端口4,网闸2的端口4接收到请求/响应,再通过连接B,将请求/响应发送给中间件1的监听端口1。
上述步骤100和步骤200是本发明实施例的系统在启动后就执行的前提步骤,因此,其在本发明实施例的传输方法中属于可选步骤。
步骤101,接收来自外网中的应用程序1的第一消息;
其中,所述第一消息包括应用程序1对内网中的应用程序2的第一数据请求或第一响应数据;
其中,这里以第一网络为外网,第二网络为内网进行流程的说明,但是需要注意的是,当第一网络为内网,第二网络为外网时,同样可以实现本发明实施例所述的传输方法,方法流程类似,因此不做一一赘述。
其中,当外网中的应用程序1想要请求从内网中的应用程序2中获取数据时,则第一消息为第一数据请求,当内网中的应用程序2对应用程序1作第二数据请求时,则这里的第一响应数据为针对第二数据请求的响应数据。
在具体实现时,应用程序1由于是面向中间件1开发的,因此,在其需要发送消息至内网时,应用程序1可以调用中间件1的能够发送消息的方法。举例来说,当其需要进行数据请求时,则可以调用get()或post()等方法发送第一数据请求,当其需要发送响应数据时,则可以调用sent()等方法来发送第一响应数据。这样,中间件1就可以接收到来自应用程序1的第一消息。
步骤102,从外网中的外网连接池中,获取所述外网与网闸1之间的连接A;
其中,这里的第一通信连接为从外网连接池中获取的上述连接A。
可选地,步骤103,对所述第一消息作编码处理;
其中,编码处理的方式可以包括但不限于压缩、报文重组等。
其中,本发明对于步骤102和步骤103的执行顺序不做限制。
步骤104,利用所述连接A,将编码后的所述第一消息经由所述网闸1发送至内网;
其中,网闸1预先配置了中间件2的目标地址,这里为监听端口2,那么中间件1利用连接A将第一消息发送至网闸1之后,网闸1则可以将第一消息发送至中间件2的监听端口2,从而达到将第一消息方式至内网的目的。
步骤201,建立所述内网与网闸1之间的连接D;
其中,中间件2可以建立所述内网中的监听端口2与网闸1之间的连接D。
步骤202,利用所述连接D,接收来自所述网闸2的第一消息;
其中,中间件2可以利用所述连接D来接收中间件1经由网闸1发送的第一消息。
具体而言,网闸1将第一消息发送至中间件2的监听端口2,中间件2从监听端口2获取到第一消息。
可选地,步骤203,对所述第一消息作解码处理;
其中,解码处理的方式与上述编码处理的方式相对应,可以包括但不限于解压缩、剔除掉与网站传输相关的标识属性和报文序号等。
可选地,步骤204,获取解码后的所述第一消息中携带的应用程序1的预设标识信息;
其中,该预设标识信息可以是应用程序1的IP地址。
可选地,步骤205,判断预先存储至所述第一应用程序的应用标识信息中,是否包含所述预设标识信息;
其中,为了确保内网中数据的安全性,不被非法窃取,本发明实施例的方法只针对向内网中的应用程序2注册过的应用程序提供数据访问,其中,注册过的应用程序在中间件2侧可以保存已注册应用程序的应用标识信息(例如IP地址),所以,本步骤可以判断正在进行数据请求的应用程序1是否是向应用程序2注册过的授权程序。
若否,则步骤206,过滤所述第一消息;
即说明该应用程序1没有注册过,其请求的第一消息不需要响应,直接过滤即可,不做任何响应处理。
若是,步骤207,判断解码后的所述第一消息包括所述第一数据请求还是所述第一响应数据;
也就是说,在确定应用程序1是预先向应用程序2注册过的授权程序的情况下,则可以判断该解码后的第一消息是数据请求,还是响应数据,即是第一数据请求,还是第一响应数据。
步骤208,若所述第一消息包括所述第一数据请求,则将所述第一数据请求发送至应用程序2;
其中,如果第一消息为第一数据请求,则说明外网的应用程序1想要访问应用程序2中的数据,则可以将认证通过的第一数据请求发送至监听器,由监听器来将该第一数据请求发送至应用程序2。
其中,中间件2中可以包括监听器,该监听器用于接收数据请求类型的消息,因此,其可以接收第一数据请求,并转发给应用程序2。
步骤209,若所述第一消息包括第一响应数据,则将所述第一响应数据发送至应用程序2。
其中,如果第一消息为响应数据,则说明外网的应用程序1所发送的第一消息是对应用程序2的第二数据请求的响应,这里,可以将第一响应数据发送给应用程序2。
具体而言,在将第一响应数据发送至应用程序2时,可以通过阻塞的方式或监听的方式来获取第一响应数据,并将其转发给应用程序2。
其中,当该响应数据比较重要时,即优先级较低时,可以将第一响应数据进行阻塞,待应用程序2不处于忙碌状态时,再接收该第一响应数据;当该响应数据比较重要时,即优先级较高时,则可以采用监听的方式,即只要监听到响应数据,例如这里的第一响应数据,就将其转发给应用程序2。
上述步骤101~步骤104详细描述了中间件1如何将外网的应用程序1的第一数据请求或第一响应数据,经由网闸1发送至内网;步骤201~步骤209详细描述了中间件2如何将来自外网的上述第一数据请求或第一响应数据,经由网闸1发送至内网的应用程序2。
而中间件2将内网的应用程序2的第二响应数据或第二数据请求,经由网闸2发送至外网的流程,实质上与上述中间件1所执行的步骤101~步骤104类似,因此,本文不做详细赘述;
同理,中间件1将来自内网的上述第二响应数据或第二数据请求,经由网闸2发送至外网的应用程序1的流程,实质上与上述中间件2所执行的步骤201~步骤209类似,因此,本文不做详细赘述。
也就是说,由中间件1执行的上述步骤101~步骤104,也可以类似的由中间件2来执行,相应的,由中间件2执行的上述步骤201~步骤209,也可以类似的由中间件1来执行。因为,中间件1和中间件2是开发的同一款产品,只不过部署在不同网络中而已,它们的功能完全相同,中间件1和中间件2均具备从本端向另一端发送数据,以及接收由另一端向本端发送的数据的功能。
那么由于上述步骤101~步骤104以及步骤201~步骤209已经详细描述了数据从外网向内网的传输方式的具体流程,因此,本发明不再对数据从内网向外网的传输方式的具体流程作赘述,相互参考即可。
其中,这里的第二响应数据可以是应用程序2对第一数据请求的响应结果,即在外网向内网请求数据时,在步骤209之后,应用程序2对第一数据请求进行响应,通过调用中间件2的能够发送消息的方法(例如上文举例的sent()方法),来将第二响应数据发送至中间件2。
类似的,上述第一响应数据可以是应用程序1对第二数据请求的响应结果,即在内网向外网请求数据时,应用程序1对第二数据请求进行响应,通过调用中间件1的能够发送消息的方法(例如上文举例的sent()方法),来将第一响应数据发送至中间件1,从而由中间件1执行上述步骤101。
借助于本发明上述实施例的技术方案,本发明通过接收第一网络中第一应用程序的第一消息,并获取第一网络与第一单向网闸之间的第一通信连接,无需建立第一应用程序与第一单向网闸之间的连接,并利用该第一通信连接,将第一消息经由第一单向网闸发送至第二网络;此外,本发明实施例还可以建立第一网络与第二单向网闸之间的第二通信连接,从而利用第二通信连接接收来自第二网络的第二应用程序且经由第二单向网闸的第二消息,并将其发送至第一网络中的第一应用程序。在第一网络的第一应用程序与第二网络的第二应用程序的数据交互过程中,应用程序无需和两个单向网闸通信,只需要发送消息和接收消息,大幅降低了应用程序的开发难度;并且,应用程序只需进行数据传输,无需进行业务逻辑的处理,而本发明实施例的中间件来实现业务逻辑的处理,从而将数据传输层和业务代码层解耦,降低了数据耦合度,从而利于应用程序的扩展和维护。
此外,本发明实施例的数据传输方法所传输的数据包可以支持多种协议,例如HTTP协议的数据包、TCP协议的数据包等等,在对各种协议的数据包进行数据传输时,方法都是类似的,均按照上述图2实施例所述的传输流程来执行。那么通过在中间件上配置其支持的协议类型,从而也可以对内、外网之间的传输的数据类型作控制,提升内网或外网中数据的安全性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
与上述本发明实施例所提供的方法相对应,参照图3,示出了本发明一种数据传输装置实施例的结构框图,具体可以包括如下模块:
第一接收模块31,用于接收来自第一网络中的第一应用程序的第一消息;
其中,所述第一消息包括所述第一应用程序对第二网络中的第二应用程序的第一数据请求或第一响应数据;
其中,所述第一网络和所述第二网络之间物理隔离;
第一获取模块32,用于从第一网络中的第一连接池中,获取所述第一网络与第一单向网闸之间的第一通信连接;
第一发送模块33,用于利用所述第一通信连接,将所述第一消息经由所述第一单向网闸发送至第二网络;
其中,所述第一单向网闸用于从所述第一网络向所述第二网络传输数据;
建立模块34,用于建立所述第一网络与第二单向网闸之间的第二通信连接;
其中,所述第二单向网闸用于从所述第二网络向所述第一网络传输数据;
第二接收模块35,用于利用所述第二通信连接,接收来自所述第二单向网闸的第二消息;
其中,所述第二消息由所述第二网络中的所述第二应用程序发送至所述第二单向网闸;所述第二消息包括所述第二应用程序对所述第一应用程序的第二数据请求或第二响应数据;
第一判断模块36,用于判断所述第二消息包括所述第二数据请求还是所述第二响应数据;
第二发送模块37,用于若所述第二消息包括所述第二数据请求,则将所述第二数据请求发送至所述第一应用程序;
第三发送模块38,用于若所述第二消息包括第二响应数据,则将所述第二响应数据发送至所述第一应用程序。
可选地,所述装置还包括:
编码模块,用于对所述第一消息作编码处理;
所述第一发送模块33,还用于利用所述第一通信连接,将编码后的所述第一消息经由所述第一单向网闸发送至第二网络。
可选地,所述装置还包括:
解码模块,用于对所述第二消息作解码处理;
所述第一判断模块36,还用于判断解码后的所述第二消息包括所述第二数据请求还是所述第二响应数据。
可选地,所述装置还包括:
第二获取模块,用于获取所述第二消息中携带的所述第二应用程序的预设标识信息;
第二判断模块,用于判断预先存储至所述第一应用程序的应用标识信息中,是否包含所述预设标识信息;
过滤模块,用于若所述第二判断模块判断预先存储至所述第一应用程序的应用标识信息中,不包含所述预设标识信息,则过滤所述第二消息;
所述第一判断模块36,还用于若所述第二判断模块判断预先存储至所述第一应用程序的应用标识信息中,包含所述预设标识信息,则判断所述第二消息包括所述第二数据请求还是所述第二响应数据。
可选地,所述建立模块34,还用于建立所述第一网络中的第一监听端口与第二单向网闸之间的第二通信连接。
可选地,所述第一接收模块31,还用于接收来自所述第一应用程序的对所述第二数据请求的所述第一响应数据。
可选地,当所述第一网络为内网时,所述第二网络为外网;当所述第一网络为外网时,所述第二网络为内网。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据传输方法、一种数据传输装置以及一种数据传输系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据传输方法,其特征在于,应用于第一网络中的中间件,所述方法包括:
接收来自第一网络中的第一应用程序的第一消息;
其中,所述第一消息包括所述第一应用程序对第二网络中的第二应用程序的第一数据请求或第一响应数据;
其中,所述第一网络和所述第二网络之间物理隔离;
从第一网络中的第一连接池中,获取所述第一网络与第一单向网闸之间的第一通信连接;
利用所述第一通信连接,将所述第一消息经由所述第一单向网闸发送至第二网络;
其中,所述第一单向网闸用于从所述第一网络向所述第二网络传输数据;
建立所述第一网络与第二单向网闸之间的第二通信连接;
其中,所述第二单向网闸用于从所述第二网络向所述第一网络传输数据;
利用所述第二通信连接,接收来自所述第二单向网闸的第二消息;
其中,所述第二消息由所述第二网络中的所述第二应用程序经过第二网络中的中间件发送至所述第二单向网闸;所述第二消息包括所述第二应用程序对所述第一应用程序的第二数据请求或第二响应数据;
判断所述第二消息包括所述第二数据请求还是所述第二响应数据;
若所述第二消息包括所述第二数据请求,则将所述第二数据请求发送至所述第一应用程序;
若所述第二消息包括第二响应数据,则将所述第二响应数据发送至所述第一应用程序;
其中,所述若所述第二消息包括第二响应数据,则将所述第二响应数据发送至所述第一应用程序,包括:
若所述第二消息包括低优先级的第二响应数据,则将所述低优先级的第二响应数据进行阻塞,待第一应用程序不处于忙碌状态时,再获取所述低优先级的第二响应数据,并转发给所述第一应用程序;若所述第二消息包括高优先级的第二响应数据,则在监听到所述高优先级的第二响应数据时,获取所述高优先级的第二响应数据,并转发给所述第一应用程序。
2.根据权利要求1所述的方法,其特征在于,
所述利用所述第一通信连接,将所述第一消息经由所述第一单向网闸发送至第二网络之前,所述方法还包括:
对所述第一消息作编码处理;
所述利用所述第一通信连接,将所述第一消息经由所述第一单向网闸发送至第二网络,包括:
利用所述第一通信连接,将编码后的所述第一消息经由所述第一单向网闸发送至第二网络。
3.根据权利要求1所述的方法,其特征在于,所述判断所述第二消息包括所述第二数据请求还是所述第二响应数据之前,所述方法还包括:
对所述第二消息作解码处理;
所述判断所述第二消息包括所述第二数据请求还是所述第二响应数据,包括:
判断解码后的所述第二消息包括所述第二数据请求还是所述第二响应数据。
4.根据权利要求1所述的方法,其特征在于,所述判断所述第二消息包括所述第二数据请求还是所述第二响应数据之前,所述方法还包括:
获取所述第二消息中携带的所述第二应用程序的预设标识信息;
判断预先存储至所述第一应用程序的应用标识信息中,是否包含所述预设标识信息;
若否,则过滤所述第二消息;
所述判断所述第二消息包括所述第二数据请求还是所述第二响应数据,包括:
若预先存储至所述第一应用程序的应用标识信息中,包含所述预设标识信息,则判断所述第二消息包括所述第二数据请求还是所述第二响应数据。
5.根据权利要求1所述的方法,其特征在于,所述建立所述第一网络与第二单向网闸之间的第二通信连接,包括:
建立所述第一网络中的第一监听端口与第二单向网闸之间的第二通信连接。
6.一种数据传输装置,其特征在于,应用于第一网络中的中间件,包括:
第一接收模块,用于接收来自第一网络中的第一应用程序的第一消息;
其中,所述第一消息包括所述第一应用程序对第二网络中的第二应用程序的第一数据请求或第一响应数据;
其中,所述第一网络和所述第二网络之间物理隔离;
第一获取模块,用于从第一网络中的第一连接池中,获取所述第一网络与第一单向网闸之间的第一通信连接;
第一发送模块,用于利用所述第一通信连接,将所述第一消息经由所述第一单向网闸发送至第二网络;
其中,所述第一单向网闸用于从所述第一网络向所述第二网络传输数据;
建立模块,用于建立所述第一网络与第二单向网闸之间的第二通信连接;
其中,所述第二单向网闸用于从所述第二网络向所述第一网络传输数据;
第二接收模块,用于利用所述第二通信连接,接收来自所述第二单向网闸的第二消息;
其中,所述第二消息由所述第二网络中的所述第二应用程序经过第二网络中的中间件发送至所述第二单向网闸;所述第二消息包括所述第二应用程序对所述第一应用程序的第二数据请求或第二响应数据;
第一判断模块,用于判断所述第二消息包括所述第二数据请求还是所述第二响应数据;
第二发送模块,用于若所述第二消息包括所述第二数据请求,则将所述第二数据请求发送至所述第一应用程序;
第三发送模块,用于若所述第二消息包括第二响应数据,则将所述第二响应数据发送至所述第一应用程序;
其中,所述第三发送模块包括:
第三阻塞发送子模块,用于若所述第二消息包括低优先级的第二响应数据,则将所述低优先级的第二响应数据进行阻塞,待第一应用程序不处于忙碌状态时,再获取所述低优先级的第二响应数据,并转发给所述第一应用程序;
第三监听发送子模块,用于若所述第二消息包括高优先级的第二响应数据,则在监听到所述高优先级的第二响应数据时,获取所述高优先级的第二响应数据,并转发给所述第一应用程序。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
编码模块,用于对所述第一消息作编码处理;
所述第一发送模块,还用于利用所述第一通信连接,将编码后的所述第一消息经由所述第一单向网闸发送至第二网络。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
解码模块,用于对所述第二消息作解码处理;
所述第一判断模块,还用于判断解码后的所述第二消息包括所述第二数据请求还是所述第二响应数据。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取所述第二消息中携带的所述第二应用程序的预设标识信息;
第二判断模块,用于判断预先存储至所述第一应用程序的应用标识信息中,是否包含所述预设标识信息;
过滤模块,用于若所述第二判断模块判断预先存储至所述第一应用程序的应用标识信息中,不包含所述预设标识信息,则过滤所述第二消息;
所述第一判断模块,还用于若所述第二判断模块判断预先存储至所述第一应用程序的应用标识信息中,包含所述预设标识信息,则判断所述第二消息包括所述第二数据请求还是所述第二响应数据。
10.根据权利要求6所述的装置,其特征在于,
所述建立模块,还用于建立所述第一网络中的第一监听端口与第二单向网闸之间的第二通信连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811614050.3A CN109450948B (zh) | 2018-12-27 | 2018-12-27 | 数据传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811614050.3A CN109450948B (zh) | 2018-12-27 | 2018-12-27 | 数据传输方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109450948A CN109450948A (zh) | 2019-03-08 |
CN109450948B true CN109450948B (zh) | 2020-01-03 |
Family
ID=65539706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811614050.3A Active CN109450948B (zh) | 2018-12-27 | 2018-12-27 | 数据传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109450948B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112217848B (zh) * | 2019-07-11 | 2022-04-19 | 千寻位置网络有限公司 | 紧急定位方法及其系统 |
CN110365778B (zh) * | 2019-07-17 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 一种通信控制的方法、装置、电子设备和存储介质 |
CN110351379B (zh) * | 2019-07-17 | 2021-09-03 | 腾讯科技(深圳)有限公司 | 一种通信控制的方法、装置、电子设备和存储介质 |
CN110365779B (zh) * | 2019-07-17 | 2022-04-01 | 腾讯科技(深圳)有限公司 | 一种通信控制的方法、装置、电子设备和存储介质 |
CN111131299A (zh) * | 2019-12-31 | 2020-05-08 | 上海依图网络科技有限公司 | 基于kubernetes平台的跨网闸数据传输方法、装置、介质及系统 |
CN113507480B (zh) * | 2021-07-23 | 2023-10-27 | 北京众享比特科技有限公司 | 网络设备、网闸设备和系统、网络间数据传输及汇报方法 |
CN114124929B (zh) * | 2021-09-29 | 2024-03-29 | 奇安信科技集团股份有限公司 | 跨网络的数据处理方法和装置 |
CN115632818A (zh) * | 2022-09-23 | 2023-01-20 | 山东首瀚信息科技有限公司 | 一种视频专网与内部专网的安全隔离单向可靠传输的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697536A (zh) * | 2009-10-16 | 2010-04-21 | 深圳市科陆电子科技股份有限公司 | 穿透正向物理隔离装置大数据量实时传输的方法 |
CN108540499A (zh) * | 2018-06-26 | 2018-09-14 | 中国华电集团科学技术研究总院有限公司 | 具有双向通道的电力网络数据传输系统及数据传输方法 |
CN208257855U (zh) * | 2018-06-26 | 2018-12-18 | 中国华电集团科学技术研究总院有限公司 | 具有双向通道的电力网络数据传输系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491072B (zh) * | 2013-09-06 | 2017-03-15 | 中国航天系统科学与工程研究院 | 一种基于双单向隔离网闸的边界访问控制方法 |
US10511632B2 (en) * | 2017-03-03 | 2019-12-17 | Microsoft Technology Licensing, Llc | Incremental security policy development for an enterprise network |
CN107634984B (zh) * | 2017-08-07 | 2020-11-24 | 国网河南省电力公司 | 一种基于单向传输通道的文件同步方法 |
CN107454186A (zh) * | 2017-08-24 | 2017-12-08 | 国网浙江省电力公司衢州供电公司 | 一种基于消息队列的数据安全传输方法 |
CN108234506B (zh) * | 2018-01-15 | 2021-06-08 | 马晓东 | 一种单向隔离网闸和数据传输方法 |
CN108810011A (zh) * | 2018-06-29 | 2018-11-13 | 南京南瑞继保电气有限公司 | 一种适用于电力专网的通用网络安全接入区系统及报文处理方法 |
-
2018
- 2018-12-27 CN CN201811614050.3A patent/CN109450948B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697536A (zh) * | 2009-10-16 | 2010-04-21 | 深圳市科陆电子科技股份有限公司 | 穿透正向物理隔离装置大数据量实时传输的方法 |
CN108540499A (zh) * | 2018-06-26 | 2018-09-14 | 中国华电集团科学技术研究总院有限公司 | 具有双向通道的电力网络数据传输系统及数据传输方法 |
CN208257855U (zh) * | 2018-06-26 | 2018-12-18 | 中国华电集团科学技术研究总院有限公司 | 具有双向通道的电力网络数据传输系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109450948A (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109450948B (zh) | 数据传输方法和装置 | |
EP3013086B1 (en) | Method, apparatus and electronic device for connection management | |
US11096051B2 (en) | Connection establishment method, device, and system | |
US10417061B2 (en) | Operating method of routing device, routing device, and terminal device | |
TW201526654A (zh) | 實現視訊通話的方法及系統 | |
TWI507890B (zh) | Pushlet即時通訊方法及平台 | |
WO2016054888A1 (zh) | 一种创建订阅资源的方法和装置 | |
US20190334969A1 (en) | Media Downlink Transmission Control Method and Related Device | |
US20170034311A1 (en) | Method for selecting between multiple RPC frameworks during a TCP/IP session | |
CN112291514A (zh) | 远程音视频通话方法、装置及ott平台 | |
CN111064742A (zh) | 一种基于网络代理实现内网访问的方法、装置及相关设备 | |
JP2016213670A (ja) | 通信装置、通信システム、通信方法及びプログラム | |
WO2013189398A2 (zh) | 应用数据推送方法、装置及系统 | |
CN109286665B (zh) | 实时移动游戏长链接处理方法及装置 | |
WO2022110919A1 (zh) | 一种信息订阅的方法及装置 | |
US20080162586A1 (en) | Automatic syncml client profile creation for new servers | |
US20150229513A1 (en) | Systems and methods for efficient remote security panel configuration and management | |
WO2021082945A1 (zh) | 一种远程管理方法、系统、终端设备及服务器 | |
WO2022067509A1 (zh) | 设备升级控制方法、装置、计算机设备及存储介质 | |
CN114518909A (zh) | 基于api网关的授权信息配置方法、装置、设备和存储介质 | |
CN112118284A (zh) | 一种面向网关设备的http数据请求方法、设备及介质 | |
CN116097691A (zh) | 服务请求处置 | |
WO2018133551A1 (zh) | 通信号码验证的方法与设备 | |
CN105490816A (zh) | 一种基于AllJoyn的多重认证方法及装置 | |
US9769140B1 (en) | Authentication support for autonomous requests |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |