CN108134816A - 对远程设备上的数据的访问 - Google Patents
对远程设备上的数据的访问 Download PDFInfo
- Publication number
- CN108134816A CN108134816A CN201711226068.1A CN201711226068A CN108134816A CN 108134816 A CN108134816 A CN 108134816A CN 201711226068 A CN201711226068 A CN 201711226068A CN 108134816 A CN108134816 A CN 108134816A
- Authority
- CN
- China
- Prior art keywords
- equipment
- data
- request
- connection
- network
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/029—Firewall traversal, e.g. tunnelling or, creating pinholes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- 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
-
- 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/0281—Proxies
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Multimedia (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的实施例涉及对远程设备上的数据的访问。第一设备可以接收连接请求以在位于防火墙后面的第二设备与位于防火墙外面的第三设备之间建立通信。第一设备可以位于防火墙外面。第二设备和第三设备可以存储数据。第一设备可以接收对于数据的请求。第一设备可以经由第一连接或第二连接提供请求。设备可以接收数据。由第二设备存储的数据可以在不使用通过防火墙的隧道的情况下并且以流式方式由第一设备从防火墙后面接收。第一设备可以提供数据。由第三设备存储的数据可以以流式方式被提供到第二设备。
Description
背景技术
WebSocket是一种通信协议,其提供单个传输控制协议(TCP) 连接上的全双工通信信道。WebSocket可以被实现在浏览器和服务器中,并且还可以由任何客户端或服务器应用使用。WebSocket是独立的基于TCP的协议。WebSocket握手可以由超文本传输协议(HTTP)服务器解释为升级请求。
WebSocket协议可以使浏览器与服务器之间的更多交互变得可能,这促进从服务器和到服务器的实时数据传送。通过提供用于服务器在未由客户端请求的情况下将内容发送到浏览器的标准化方式并且允许消息来回地被传递同时保持连接打开成为可能。这样,双路(双向)正在进行的交谈可以在浏览器与服务器之间发生。
发明内容
根据一些可能的实现,一种设备可以包括一个或多个处理器,其用于接收多个连接请求来在多个设备之间建立多个连接。多个连接请求中的第一连接请求可以从多个设备中的、位于防火墙后面的第一设备被接收。多个连接请求中的第二连接请求可以从多个设备中的、位于防火墙外面的第二设备被接收。多个连接可以包括与第一连接请求相关联的第一连接以及与第二连接请求相关联的第二连接。一个或多个处理器可以在建立多个连接之后从第一设备或第二设备接收与由第一设备或第二设备存储的数据相关联的请求。数据可以包括视频数据、音频数据或文本数据。与数据相关联的请求可以包括将第一设备或第二设备标识为请求的目的地的信息。
一个或多个处理器可以基于从第一设备或第二设备接收到请求并且使用将第一设备或第二设备标识为请求的目的地的信息,来向第一设备或第二设备提供请求。一个或多个处理器可以基于向第一设备或第二设备提供请求,从第一设备或第二设备接收数据。来自第一设备的数据可以以流式方式从来自防火墙后面的第一设备被接收,和/ 或来自第二设备的数据可以以流式方式被提供到第一设备。一个或多个处理器可以基于从第一设备或第二设备接收到数据,向第一设备或第二设备提供数据。一个或多个处理器还除了向第一设备或第二设备提供数据之外,可以执行与数据有关的动作。
在一些实现中,其中流式方式包括以部分或数据块的方式接收或提供数据。
在一些实现中,其中在无需全部数据同时被存储在设备上的情况下,数据经由设备被流动。
在一些实现中,其中一个或多个处理器在接收多个连接请求时用于:从第一设备并且由被实现在设备上的第一网络设备接收第一连接请求以建立到第一设备的第一连接;以及从第二设备并且由被实现在设备上的第二网络设备接收第二连接请求以建立到第二设备的第二连接。
在一些实现中,一个或多个处理器还用于:基于接收到第一连接请求和第二连接请求来在第一网络设备与第二网络设备之间建立第三连接,第一连接和第三连接是相同类型的连接;以及其中一个或多个处理器在接收与数据相关联的请求时用于:基于建立第三连接来接收与数据相关联的请求。
在一些实现中,其中第一网络设备与第一设备之间的第一连接是第一WebSocket连接,第二网络设备与第二设备之间的第二连接是超文本传输协议(HTTP)连接,以及第一网络设备与第二网络设备之间的第三连接是第二WebSocket连接。
在一些实现中,其中一个或多个处理器在执行动作时用于:基于向第一设备或向第二设备提供数据来对数据执行测试。
根据一些可能的实现,一种方法可以包括由第一设备接收多个连接请求以在位于防火墙后面的第二设备与位于防火墙外面的第三设备之间建立通信。第一设备可以位于防火墙外面。第二设备和第三设备可以存储要被请求的数据。基于多个连接请求,可以在第一设备与第二设备之间建立第一连接。基于多个连接请求,可以在第一设备与第三设备之间建立第二连接。该方法可以包括基于接收到多个连接请求,由第一设备并且从第二设备或第三设备接收对于数据的请求。可以经由第二连接接收由第二设备存储的数据的请求。可以经由第一连接接收由第三设备存储的数据的请求。该方法可以包括由第一设备基于接收到请求经由第一连接或第二连接提供请求。该方法可以包括由第一设备基于提供请求接收数据。由第二设备存储的数据可以在不使用通过防火墙的隧道的情况下并且以流式方式由第一设备从防火墙后面接收。方法可以包括由第一设备基于接收到数据提供数据。由第三设备存储的数据可以以流式方式被提供到第二设备。
在一些实现中,方法还包括:基于接收到多个连接请求中的第一连接请求,建立到第二设备的第一连接,第一连接是WebSocket连接;基于接收到多个连接请求中的第二连接请求,建立到第三设备的第二连接,第二连接是超文本传输协议(HTTP)连接;以及其中提供请求包括:在建立第一连接和第二连接之后提供请求。
在一些实现中,其中接收针对数据的请求包括:经由HTTP连接接收针对数据的请求;以及其中提供请求包括:经由WebSocket连接提供请求。
在一些实现中,方法还包括:基于建立第一连接,由第一设备的第一网络设备从第二设备或第一设备的第二网络设备接收一个或多个指令集,一个或多个指令集与在第一设备与第二设备之间建立数据流有关;以及基于接收到一个或多个指令集,向第一网络设备注册一个或多个指令集。
在一些实现中,方法还包括:基于注册一个或多个指令集,使用一个或多个指令集来在第一设备与第二设备之间建立数据流;以及其中接收数据包括:基于建立数据流,经由数据流来接收数据。
在一些实现中,其中接收数据还包括:基于向第二设备提供请求,由第一设备的第一网络设备经由第一连接接收数据,第一连接是第一 WebSocket连接;以及其中提供数据还包括:基于接收到数据,经由第三连接将数据从第一网络设备提供到第一设备的第二网络设备,第三连接是第二WebSocket连接;以及基于向第二网络设备提供数据,由第二网络设备经由第二连接向第三设备提供数据,第二连接是超文本传输协议(HTTP)连接。
在一些实现中,方法还包括:基于提供数据,对视频数据执行测试。
根据一些可能的实现,一种非暂态计算机可读介质可以存储一个或多个指令,其当由一个或多个处理器执行时使得一个或多个处理器接收一个或多个请求以在多个设备之间建立一个或多个连接。一个或多个连接中的第一连接可以与连接到位于防火墙后面的第一设备相关联。一个或多个连接中的第二连接可以与连接到位于防火墙外面的第二设备相关联。一个或多个将被用于在不使用通过防火墙的隧道的情况下提供到或自第一设备的数据。一个或多个指令可以使得一个或多个处理器在接收到一个或多个请求之后,接收对于数据的请求。一个或多个指令可以使得一个或多个处理器基于接收到请求,处理请求以将第一设备或第二设备标识为针对请求的目的地。
一个或多个指令可以使得一个或多个处理器基于处理请求,向第一设备或第二设备提供请求。一个或多个指令可以使得一个或多个处理器基于向第一设备或第二设备提供请求,从第一设备或第二设备接收数据。可以从防火墙后面并且以流式方式接收来自第一设备的数据。数据可以包括媒体数据。一个或多个指令可以使得一个或多个处理器基于从第一设备或第二设备接收数据,向第一设备或第二设备提供数据。可以以流式方式提供被提供到第一设备的数据。
在一些实现中,其中一个或多个指令在由一个或多个处理器执行时还使得一个或多个处理器:基于接收到数据,使用一种或多种技术处理数据,一种或多种技术与处理媒体数据相关联。
在一些实现中,其中使得一个或多个处理器接收数据的一个或多个指令使得一个或多个处理器:基于向第一设备提供请求,经由读取流从第一设备接收数据;以及使得一个或多个处理器向第二设备提供数据的一个或多个指令使得一个或多个处理器:基于经由读取流接收到数据,经由写入流向第二设备提供数据。
在一些实现中,其中读取流包括WebSocket上的数据流。
在一些实现中,其中写入流包括使用超文本传输协议(HTTP) 响应提供数据的数据流。
在一些实现中,其中第二连接具有与WebSocket连接不同的协议。
附图说明
图1A和图1B是本文所描述的示例实现方式的概述的示图;
图2是其中可以实现本文所描述的系统和/或方法的示例环境的示图;
图3是图2的一个或多个设备的示例部件的示图;以及
图4是用于访问远程设备上的数据的示例过程的流程图。
具体实现方式
示例实现的以下详细描述参考附图。不同附图中的相同参考数字可以标识相同或类似的元件。
防火墙通常被实现以保护数据以防由未授权用户访问。例如,数据可以被存储在防火墙后面的远程设备(例如,远程存储设备)上,因此防止由位于防火墙外面的未授权用户对数据的访问。虽然防火墙提供安全性级别,但是防火墙还可以使数据传送复杂,使数据传送延迟,和/或消耗用于向防火墙外面的授权用户提供对数据的访问的附加资源。例如,隧道(例如,代理隧道或超文本传输协议(HTTP)隧道)可能需要被建立以便防火墙外面的设备访问位于防火墙后面的数据(例如,在远程设备上)。进一步地,防火墙后面的远程设备可能需要与防火墙外面的客户端设备建立连接以向客户端设备提供数据。例如,远程设备可能需要知道需要数据以便与客户端设备建立连接的防火墙外面的客户端设备的标识。由于远程设备必须提前知道客户端设备要接收数据,因而这降低向客户端设备提供数据的效率。
在此所描述的实现允许防火墙外面的客户端设备建立数据流来,以不需要通过防火墙的隧道的情况下提取被存储在远程设备上的防火墙后面的数据。另外,在不需要远程设备了解客户端设备的身份的情况下并且在不需要远程设备与来自防火墙后面的客户端设备建立连接的情况下,可以提取数据。这样,从防火墙后面获得数据的效率被增加(例如,由于客户端设备的身份可以不由远程设备需要以便从防火墙后面推送数据)。进一步地,可以通过消除对于经由防火墙允许客户端设备从防火墙后面提取数据的隧道的需要,来增加安全性。
图1A和图1B是在此所描述的示例实现100的概述的示图。如在图1A中的参考数字110所示,客户端设备可以(例如,经由网络浏览器部件)向服务器设备提供HTTP连接请求。在一些实现中,HTTP 连接请求可以包括访问由防火墙后面的远程设备所存储的数据的请求。例如,客户端设备的用户可以通过将包括标识数据的信息的统一资源定位符(URL)键入浏览器部件中,来请求由远程设备所存储的数据。在一些情况下,服务器设备可以从数千、数百万或数十亿客户端设备接收数千、数百万或数十亿HTTP连接请求。
如参考数字120所示,服务器设备可以从远程设备接收 WebSocket连接请求。例如,远程设备可以请求基于接收到来自远程设备的用户的建立连接的指示、自动地基于被连接到网络等,来建立连接。服务器设备可以从数千、数百万或数十亿远程设备(或远程设备的远程代理部件)接收数千、数百万或数十亿WebSocket连接请求。
如由参考数字130所示,服务器设备可以使用在服务器设备上所实现的网络设备来与客户端设备建立HTTP连接。例如,网络设备可以提供(例如,在HTTP与WebSocket之间的)多个协议之间的集成或桥接服务,并且在本文中可以被称为“WebSocket-HTTP桥接器”。如参考数字140所示,服务器设备可以在网络设备与在服务器设备上所实现的另一网络设备之间建立连接。例如,服务器设备可以在WebSocket-HTTP桥接器与可以将对于数据的请求转发给适当的远程设备(或远程设备的远程代理部件)的网络设备之间的WebSocket 连接(在本文中被称为“WebSocket消息路由器”)。这样,服务器设备可以允许两种不同类型的连接(例如,HTTP连接和WebSocket 连接)之间的兼容性。
如由参考数字150所示,WebSocket消息路由器可以与远程设备的远程代理部件(例如,远程设备的软件)建立WebSocket连接。服务器设备可以(例如,使用WebSocket消息路由器)存储标识 WebSocket消息路由器与远程设备的远程代理部件之间的连接的信息,以允许WebSocket连接的查找。这样,端到端连接可以使用多种类型的连接协议(例如,HTTP和WebSocket连接协议)经由服务器设备在客户端设备与远程设备之间被建立。
如由图1B中的参考数字160所示,远程代理部件可以访问(例如,由远程设备存储的)数据(诸如视频或音频数据),并且可以将数据提供到服务器设备的WebSocket-HTTP桥接器。例如,远程代理部件可以经由远程代理部件与WebSocket消息路由器之间的WebSocket连接并且经由WebSocket消息路由器与WebSocket-HTTP 桥接器之间的WebSocket连接来向WebSocket-HTTP桥接器提供数据。如进一步所示,当远程代理部件提供数据时,远程代理部件可以使用WebSocket上的读取/写入流来提供数据,其中数据从远程设备的文件被读取并且被写入到远程代理部件与WebSocket-HTTP桥接器之间的数据流。
远程代理部件可以以流式方式经由读取/写入流来提供数据,如下面更详细描述的。例如,远程代理部件可以以数据块或部分来提供数据。在一些实现中,数据块或部分可以具有阈值或特定大小(例如,阈值量的千字节(KB)、阈值量的兆字节(MB)等)。在一些实现中,当数据以这种方式被提供时,服务器设备可以不在任何一个时间存储全部数据量。例如,当数据通过服务器设备被流动时,在全部数据未同时被存储在服务器设备上的情况下,可以使数据流动。这通过降低服务器设备在提供数据时正存储的数据量来节省服务器设备的存储器资源。
如由参考数字170所示,WebSocket-HTTP桥接器可以(例如,以HTTP响应的形式)将数据提供到客户端设备,以用于经由浏览器部件、经由WebSocket-HTTP桥接器与浏览器部件之间的HTTP连接进行显示。如由参考数字180所示,浏览器部件和/或客户端设备可以执行与数据有关的动作。例如,浏览器部件可以显示数据,浏览器部件可以播放数据(例如,当数据是视频或音频数据时),浏览器部件可以提供与数据有关的各种选项以供客户端设备的用户选择(例如,存储数据、将数据提供到另一设备等)。在一些实现中,服务器设备可以执行与数据有关的动作。例如,服务器设备可以对数据、被用于接收和/或提供数据的连接等执行分析。
这样,在不需要通过防火墙的隧道的情况下(例如,允许数据在特定端口处通过防火墙被提取以便避免将防止通过防火墙提取数据的防火墙策略的代理隧道或HTTP隧道),在防火墙前面的客户端设备可以获得由在防火墙后面的远程设备所存储的数据。另外,在不需要远程设备了解请求客户端设备的身份的情况下并且在不需要远程设备与来自防火墙后面的请求客户端设备建立连接的情况下,可以提取数据。这样,从防火墙后面获得数据的效率被增加(例如,因为请求客户端设备的身份可以不由远程设备需要以便从防火墙后面推送数据)。进一步地,可以通过消除对于经由防火墙使得客户端设备从防火墙后面提取数据的隧道的需要,来增加安全性。
如上文所指示的,图1A和图1B仅被提供为示例。其他示例是可能的,并且可以与关于图1A和图1B描述的内容不同。例如,流引擎(或媒体服务器,诸如Wowza流引擎)可以位于客户端设备与服务器设备之间。在一些实现中,当服务器设备不能够在时间段期间处理该数量的请求时,流引擎可能能够处理数千、数百万或数十亿的数据请求。在一些实现中,流引擎可以高速缓存从服务器设备接收到的数据,并且经由HTTP实况流动向客户端设备提供数据。由于服务器设备在特定时间量内接收到阈值数量的请求,因而这通过降低或消除服务器设备的崩溃来改进数据的通信。
此外,虽然图1A和图1B描述其中数据从远程设备被提供到客户端设备的实现,但是其他实现是可能的并且可以涉及客户端设备(例如,经由WebSocket上的读取/写入流)将数据提供到远程设备。这增加双向通信的效率。
图2是其中可以实现本文所描述的系统和/或方法的示例环境200 的示图。如在图2中所示,环境200可以包括客户端设备210、浏览器部件212、服务器设备220、网络设备222、远程设备230、远程代理部件232以及网络240。环境200的设备可以经由有线连接、无线连接或有线和无线连接的组合而相互连接。
客户端设备210包括能够接收、生成、存储、处理和/或提供与对于数据的请求相关联的信息的一个或多个设备。例如,客户端设备210 可以包括通信和计算设备,诸如台式计算机、移动电话(例如,智能电话或无线电话)、膝上型计算机、平板计算机、游戏设备、可穿戴通信设备(例如,智能手表、智能眼镜或活动带)、和/或类似类型的设备。在一些实现中,客户端设备210可以使用浏览器部件212将连接请求提供到服务器设备220(例如,服务器设备220的网络设备 222),如本文中的其他地方所描述的。附加地或者备选地,客户端设备210可以经由连接从服务器设备220接收数据,如本文中的其他地方所描述的。
浏览器部件212包括能够请求、接收、生成、存储、处理和/或提供与对于数据的请求相关联的信息的一个或多个部件。例如,浏览器部件212可以包括网络浏览器部件、文件浏览器部件、和/或至少部分地实现在硬件中的类似类型的部件。在一些实现中,浏览器部件可以提供连接请求和/或标识数据的信息(例如,统一资源标识符(URI),诸如统一资源定位符(URL)或统一资源名(URN))到服务器设备 220(例如,服务器设备220的网络设备222),如本文中的其他地方所描述的。附加地或者备选地,浏览器部件212可以显示从服务器设备220接收到的数据,如本文中的其他地方所描述的。
服务器设备220包括能够接收、存储、生成、处理和/或提供与对于数据的请求相关联的信息的一个或多个设备。例如,服务器设备220 可以包括服务器(例如,在数据中心或云计算环境中)、数据中心(例如,多服务器微数据中心)、工作站计算机、在云计算环境中所提供的虚拟机(VM)、流引擎、媒体服务器、或类似类型的设备。在一些实现中,服务器设备220可以包括通信接口,其允许服务器设备220 从环境200中的其他设备接收信息和/或将信息发送到环境200中的其他设备。在一些实现中,服务器设备220可以从客户端设备210接收连接请求和/或对于数据的请求,如本文中的其他地方所描述的。附加地或者备选地,服务器设备220可以从远程设备230接收连接请求和 /或将对于数据的请求提供到远程设备,以便代表客户端设备210请求数据,如本文中的其他地方所描述的。
网络设备222包括能够接收、存储、生成、处理和/或提供与对于数据的请求相关联的信息的一个或多个设备(例如,一个或多个流量传送设备)。例如,网络设备222可以包括路由器、网关、交换机、集线器、桥接器、防火墙、反向代理、服务器(例如,代理服务器)、安全设备、入侵检测设备、负载均衡器、或者类似类型的设备。在一些实现中,网络设备222可以包括机器(例如,一个或多个虚拟机 (VM))的一个或多个软件实现和/或网络功能(例如,一个或多个虚拟网络功能(VNF))的一个或多个软件实现。附加地或者备选地,网络设备222可以被连接到一个或多个其他网络设备(例如,一个或多个VM、VNF或网络设备222)。
在一些实现中,网络设备222可以从客户端设备210接收连接到服务器设备220的请求和/或来自远程设备230的数据请求,如本文中的其他地方所描述的。附加地或者备选地,网络设备222可以处理请求并且向客户端设备210提供数据,如本文中的其他地方所描述的。
远程设备230包括能够接收、生成、存储、处理和/或提供与对于数据(例如,由远程设备230所存储的数据)的请求相关联的信息的一个或多个设备。例如,远程设备230可以包括客户端设备、服务器、网络设备和/或类似类型的设备。在一些实现中,远程设备230可以(例如,经由网络设备222)与服务器设备建立连接,并且可以从服务器设备220接收用于由远程设备230所存储的数据的请求,如本文中的其他地方所描述的。附加地或者备选地,远程设备230可以(例如,经由网络设备222)将所请求的数据提供到服务器设备220,如本文中的其他地方所描述的。
远程代理部件232包括至少部分地被实现在硬件中并且能够接收、生成、存储、处理和/或提供与用于数据(例如,由远程设备230 所存储的数据)的请求相关联的信息的一个或多个部件。在一些实现中,远程代理部件232可以被实现在远程设备230上、被安装在远程设备230上、远程地执行在远程设备230上,等等。在一些实现中,当远程设备230请求对于服务器设备220建立连接时,远程设备230 可以使用远程代理部件232请求建立连接,如本文中的其他地方所描述的。附加地或者备选地,远程代理部件232可以处理对于由远程设备230所存储的数据的请求,并且可以将所请求的数据提供到服务器设备220,如本文中的其他地方所描述的。
网络240包括一个或多个有线和/或无线网络。例如,网络240 可以包括蜂窝网络(例如,长期演进(LTE)网络、码分多址(CDMA) 网络、3G网络、4G网络、5G网络、另一类型的高级生成网络等)、公共陆地移动网络(PLMN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、电话网络(例如,公共交换电话网络(PSTN))、私有网络、自组网、内联网、因特网、基于光纤的网络、云计算网络等和/或这些或者其他类型的网络的组合。
图2中所示的设备和网络的数目和布置被提供作为示例。实际上,可以存在附加的设备和/或网络、较少的设备和/或网络、不同的设备和/或网络、或者与图2中所示的那些不同地布置的设备和/或网络。此外,图2中所示的两个或两个以上设备可以实现在单个设备内,或者图2中所示的单个设备可以实现为多个分布式设备。附加地或备选地,环境200的设备的集合(例如,一个或多个设备)可以执行描述为由环境200的设备的另一集合所执行的一个或多个功能。
图3是设备300的示例部件的示图。设备300可以对应于客户端设备210、服务器设备220、网络设备222、远程设备230、和/或远程代理部件232。在一些实现中,客户端设备210、服务器设备220、网络设备222、远程设备230和/或远程代理部件232可以包括一个或多个设备300和/或设备300的一个或多个部件。如图3中所示,设备 300可以包括总线310、处理器320、存储器330、存储部件340、输入部件350、输出部件360以及通信接口370。
总线310包括允许设备300的部件之间的通信的部件。以硬件、固件、或硬件和软件的组合实现处理器320。处理器320包括以下各项:中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元 (APU)、微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、或者另一类型的处理部件。在一些实现中,处理器320包括能够被编程为执行功能的一个或多个处理器。存储器330包括随机存取存储器(RAM)、只读存储器(ROM)、和/或另一类型的动态或静态存储设备(例如,闪速存储器、磁性存储器和/或光学存储器),其存储用于由处理器320 使用的信息和/或指令。
存储部件340存储与设备300的操作和使用有关的信息和/或软件。例如,存储部件340可以包括硬盘(例如,磁盘、光盘、磁光盘、固态磁盘)、压缩磁盘(CD)、数字通用磁盘(DVD)、软盘、卡盘、磁带和/或另一类型的非暂态计算机可读介质连同对应的驱动器。
输入部件350包括允许设备300诸如经由用户输入(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风)接收信息的部件。附加地或者备选地,输入部件350可以包括用于感测信息的传感器(例如,全球定位系统(GPS)部件、加速度计、陀螺仪、和 /或致动器)。输出部件360包括提供来自设备300的输出信息的部件,例如,显示器、扬声器、和/或一个或多个发光二极管(LED)。
通信接口370包括类收发器的部件(例如,收发器、和/或分离的接收器和发送器),其使得设备300能够诸如经由有线连接、无线连接、或有线和无线连接的组合与其他设备通信。通信接口370可以允许设备300从另一设备接收信息和/或将信息提供给另一设备。例如,通信接口370可以包括以太网接口、光学接口、同轴接口、红外接口、射频(RF)接口、通用串行总线(USB)接口、Wi-Fi接口、蜂窝网络接口等。
设备300可以执行在此所描述的一个或多个过程。设备300可以响应于处理器320执行由非暂态计算机可读介质(诸如存储器330和 /或存储部件340)所存储的软件指令而执行这些过程。在本文中,计算机可读介质被定义为非暂态存储设备。存储器设备包括单个物理存储设备内的存储器空间或者跨越多个物理存储设备传播的存储器空间。
可以经由通信接口370从另一计算机可读介质或从另一设备将软件指令读取到存储器330和/或存储部件340中。在执行时,被存储在存储器330和/或存储部件340中的软件指令可以使得处理器320执行本文所描述的一个或多个过程。附加地或者备选地,可以代替或者组合执行本文所描述的一个或多个过程的软件指令而使用硬连线电路。因此,本文所描述的实现方式不限于硬件电路和软件的任何特定组合。
图3中所示的部件的数目和布置被提供为示例。实际上,设备300 可以包括附加的部件、较少的部件、不同的部件或与图3中所示的那些部件不同布置的部件。附加地或者备选地,设备300的部件集(例如,一个或多个部件)可以执行描述为由设备300的另一部件集所执行的一个或多个功能。
图4是用于访问远程设备上的数据的示例过程400的流程图。在一些实现中,可以通过服务器设备220执行图4的一个或多个过程块。在一些实现中,图4的一个或多个过程块可以通过以下来执行:另一设备、与服务器设备220分离或包括服务器设备220的一组设备、和/或服务器设备220或另一设备(诸如客户端设备210)的部件、浏览器部件212、网络设备222、远程设备230、和/或远程代理部件232。
如在图4中所示,过程400可以包括从位于防火墙外面的客户端设备和/或从位于防火墙后面的远程设备接收连接请求,以建立到客户端设备和/或远程设备的特定类型的连接(块410)。例如,服务器设备220可以从位于防火墙后面的远程设备230的远程代理部件232接收第一连接请求以建立第一类型的连接(例如,WebSocket连接)。在一些实现中,第一连接请求可以由服务器设备220的网络设备222 接收。例如,第一连接请求可以由可以将对于数据的请求转发给适当的远程设备230(或远程设备230的远程代理部件232)(在本文中被称为“WebSocket”消息路由器)的特定网络设备222来接收。这样,服务器设备220可以将数据请求准确地转发给远程设备230,从而节省服务器设备220的处理资源。在一些实现中,远程代理部件232 可以提供来自防火墙后面的第一连接请求。
在一些实现中,第一连接请求可以包括建立到服务器设备220的第一类型的连接(例如,WebSocket连接)的请求。在一些实现中,基于远程设备230从与远程设备230相关联的管理员接收命令、基于预定义事件发生、基于将请求发送到远程设备230以连接等,服务器设备220可以在远程设备230通电或启动时接收第一连接请求。在一些实现中,服务器设备220可以(例如,使用数据结构)存储标识到远程设备230的连接的信息。例如,在服务器设备220上所实现的 WebSocket消息路由器(或另一网络设备222)可以使用查找表存储标识到远程代理部件232的连接。这样,服务器设备220可以存储标识到多个远程设备230的各种连接的信息。
在一些实现中,服务器设备220可以基于第一连接请求与远程设备230建立第一连接。这样,服务器设备220可以与在防火墙后面的远程设备230建立连接,从而允许对防火墙后面的数据的访问。
在一些实现中,服务器设备220可以从远程设备230接收第一组处理程序。例如,网络设备222(例如,WebSocket消息路由器)可以从远程代理部件232接收待被注册到网络设备222的一组处理程序。在一些实现中,一组处理程序可以包括指示网络设备222将处理在接收到时的数据和/或消息(例如,读取消息或写入消息)的方式的指令集。附加地或者备选地,该组处理程序可以定义在其中数据将(例如,在服务器设备2220与远程设备230之间)被流动的方式。
在一些实现中,服务器设备220可以从客户端设备210(位于防火墙外面的)接收第二连接请求。例如,服务器设备220可以从客户端设备210的浏览器部件212接收第二连接请求。附加地或者备选地,第二连接请求可以由提供(例如,在HTTP与WebSocket之间的)多个协议之间的集成或桥接服务的服务器设备220的特定网络设备222 来接收,其在本文中可以被称为“WebSocket-HTTP桥接器”。这样,服务器设备220可以接收不同的类型的连接请求,从而允许连接请求的灵活接收。
在一些实现中,第二连接请求可以包括建立第二类型的连接的请求。例如,第二连接请求可以包括建立HTTP连接(例如,而不是 WebSocket连接)的请求。在一些实现中,建立HTTP连接可以是浏览器部件212的标准特征(诸如当浏览器部件212是任何标准网络浏览器部件)。这降低或消除对于浏览器部件212特别地被配置为连接到服务器设备220的需要,如将是第二类型的连接是WebSocket连接而不是HTTP连接的情形。
在一些实现中,可以使用统一资源标识符(URI)(例如,服务器设备220、和/或网络设备222、远程设备230和/或远程代理部件 232的统一资源定位符(URL)或统一资源名(URN))来做出请求。在一些实现中,当客户端设备210的用户将URL或URN输入浏览器部件212时、当客户端设备210的用户点击由浏览器部件212所显示的链接时、当服务器设备220请求连接到客户端设备210等时,服务器设备220可以接收第二连接请求。在一些实现中,服务器设备220 可以基于第二连接请求来与客户端设备210建立第二连接。这样,除了建立到防火墙后面的远程设备230的连接之外,服务器设备220还可以对于位于防火墙外面的客户端设备210建立连接。
在一些实现中,服务器设备220可以在多个网络设备222之间建立连接(例如,WebSocket连接)。例如,服务器设备220可以在服务器设备220的WebSocket-HTTP桥接器与服务器设备220的 WebSocket消息路由器之间建立WebSocket连接。在一些实现中,基于在多个网络设备222之间建立连接,与服务器设备220相关联的第一网络设备222可以向与服务器设备220相关联的第二网络设备222 注册第二组处理程序。例如,服务器设备220的WebSocket-HTTP可以向服务器设备220的WebSocket消息路由器注册第二组处理程序。在一些实现中,第一网络设备222可以(例如,使用第二组处理程序) 在第一网络设备222与第二网络设备222之间建立数据流(例如,双工数据流)。
这样,服务器设备220可以接收多个连接请求,以与位于防火墙后面和外面的设备建立不同的类型的连接。这通过允许位于防火墙外面的设备从防火墙后面的设备请求数据改来进设备之间的通信。
如在图4中进一步所示,过程400可以包括从客户端设备接收对于由远程设备所存储的数据的请求(块420)。例如,服务器设备220 可以从客户端设备210(例如,从客户端设备210的浏览器部件)接收对于由远程设备所存储的数据的请求。在一些实现中,服务器设备 220可以使用网络设备222(诸如WebSocket-HTTP桥接器)接收请求。
在一些实现中,对于数据的请求可以包括标识数据的信息。例如,请求可以包括标识数据的URI(诸如文件名)。在一些实现中,标识数据的信息可以被包括在来自客户端设备210的连接请求中,或者与来自客户端设备210的连接请求相关联被接收。
在一些实现中,数据可以包括媒体数据(例如,视频数据、音频数据或图像)、文本数据、日志数据、和/或任何其他类型的数据。
在一些实现中,请求可以包括与数据有关的其他信息,诸如标识远程代理部件232的信息、所请求的数据的类型(例如,视频、音频或文本)、所请求的数据的大小,等等。附加地或者备选地,请求可以包括标识数据的特定部分的信息(例如,当数据是视频/音频数据时视频/音频片段的时间的范围)。例如,当数据是视频数据或音频数据并且浏览器部件212的用户在视频数据或音频数据内跳跃时(例如,从视频或音频片段的百分之一秒到视频或音频片段的百分之五秒),信息可以标识在百分之五秒处开始的数据的一部分。这样,服务器设备220可以在未接收到对于所有数据(例如,视频或音频片段的)的请求的情况下接收对于数据的一部分的请求,从而节省处理资源。另外,当经由WebSocket连接请求数据时,这允许标准HTTP连接特征的使用。
这样,服务器设备220可以通过远程设备230接收对于被存储在防火墙后面的数据的请求。
如在图4中进一步所示,过程400可以包括在未提供标识客户端设备的信息的情况下,将对于数据的请求提供到远程设备(块430)。例如,服务器设备222可以将对于数据的请求提供到远程设备230,例如,从网络设备222(诸如WebSocket消息路由器)到远程代理部件232。在一些实现中,服务器设备220可以经由服务器设备220与远程设备230之间的连接(例如,WebSocket连接)来提供请求。
在一些实现中,服务器设备220可以确定来自客户端设备210的数据的请求去往远程设备230(例如,在向远程设备230提供请求之前)。例如,第一网络设备222(例如,WebSocket-HTTP桥接器) 可以使用被包括在请求中的信息来确定请求去往远程代理部件232。继续先前的示例,并且在一些实现中,第一网络设备222(例如, WebSocket-HTTP桥接器)可以将对于数据的请求提供到第二网络设备222(例如,WebSocket消息路由器),其可以使用查找表或其他数据结构来标识到远程设备230(例如,远程设备230的远程代理部件232)的连接。
在一些实现中,远程设备230可以从服务器设备220接收对于数据的请求。例如,远程代理部件232可以从网络设备222(例如,WebSocket消息路由器)接收对于数据的请求。在一些实现中,远程设备230可以标识与接收对于数据的请求相关联的数据。例如,远程设备230可以使用远程代理部件232以使用被包括在请求中的信息来标识数据。
在一些实现中,远程设备230可以(例如,使用远程代理部件232) 创建读取流以从数据的存储位置读取数据,并且可以标识将数据写入到其的写入流,以(例如,使用被包括在请求中的信息)向服务器设备220提供数据。在一些实现中,写入流可以与服务器设备220的网络设备222(例如,WebSocket消息路由器)与远程设备230的远程代理部件232之间建立的连接相关联。
在一些实现中,被用于传递数据的数据流(例如,读取流或写入流)可以以特定方式运行。在一些实现中,可以以流式方式提供数据。例如,远程代理部件232可以经由的数据流以部分或数据块来提供数据(而不是一次提供全部所请求的数据)。在一些实现中,部分或数据块可以具有特定大小(例如,基于数量数据经由数据流被发送的阈值大小、预定义大小、可变大小等)。例如,部分或数据块可以具有特定量的KB、MB等。在一些实现中,当数据以该方式被提供时,服务器设备220可以不一次存储全部所请求的数据(例如,在向客户端设备210提供数据之前)。例如,当数据经由服务器设备220被流动或被提供时,在全部数据未同时被存储在服务器设备220上的情况下,可以使数据被流动或被提供。这通过降低服务器设备220在提供数据时正存储的数据量来节省服务器设备220的存储器资源。
作为示例,假定所请求的数据是2MB图像。在这种情况下,远程代理部件232可以经由WebSocket上的读取/写入流来提供阈值大小的部分或数据块中的图像(例如,30KB部分/数据块、100KB部分/数据块、0.5MB部分/数据块等)(例如,而不是一次提供全部2MB 数据)。以该方式提供数据允许远程代理部件232提供数据,而不管数据的大小,其将通常限制WebSocket或另一协议的使用。这样,远程代理部件可以经由数据流(例如,WebSocket上的读取/写入流)的使用来使用WebSocket或另一协议提供数据,而不管数据的大小。
在一些实现中,数据流可以以请求/提供方式运行,其中数据(例如,数据的数据块)直到被请求(诸如由服务器设备220请求)才从远程设备230被提供。这样,数据可以与服务器设备220能够处理数据一样迅速地从远程设备230被提供。换句话说,远程设备230可以与数据流或数据管线的最慢部分能够处理数据一样迅速地提供数据。这通过降低或消除在向客户端设备210提供数据之前高速缓存服务器设备220上的数据的需要来改进数据的通信,从而节省服务器设备 220的存储器资源和/或降低或消除高速缓存溢出。
在一些实现中,基于接收到请求,远程设备230可以从数据的存储位置读取数据并且可以向服务器设备220提供数据。例如,远程代理部件232可以从文件读取数据,并且可以向网络设备222(例如, WebSocket消息路由器)提供数据。在一些实现中,在提供数据时,远程设备230可以将数据写入到写入流和/或使用数据管线提供数据。
在一些实现中,远程设备230可以提供与提供数据相关联的数据有关的其他信息。例如,远程设备230可以提供标识数据的信息、数据的范围(例如,时间范围、标识符范围等)、数据的内容类型等。在一些实现中,远程设备230可以以数据块提供数据。例如,远程代理部件232可以提供可以具有包括与数据有关的信息(例如,参数,诸如数据块的类型、与数据块有关的评论、数据块的大小等)的头的数据的碎片或部分。
在一些实现中,远程设备230可以在将数据提供到服务器设备220 之前处理数据。例如,远程代理部件232可以处理数据以在向网络设备222(例如,WebSocket消息路由器)提供数据之前准备用于消耗的数据。在一些实现中,远程设备230可以在读取时间处理数据(例如,在接收到对于数据的请求之后并且在从远程设备230的存储位置读取所请求的数据之前)。这通过降低或消除对于远程设备230处理未正由客户端设备210请求的数据的需要来节省远程设备230的处理资源。这样,服务器设备220可以将对于数据的请求提供到远程设备230以使得远程设备230提供数据。
如在图4中进一步所示,过程400可以包括在不使用通过防火墙的隧道的情况下从远程设备接收数据(块440)。例如,在没有经由通过防火墙的隧道接收数据的情况下,服务器设备220可以从远程设备230接收数据。在一些实现中,隧道(例如,代理隧道或HTTP隧道)可以允许数据在特定端口处通过防火墙被提取,以便将避免防止通过防火墙将数据提取的防火墙策略的应用。
在一些实现中,网络设备222(例如,WebSocket消息路由器) 可以在不使用通过防火墙的隧道的情况下从远程代理部件232接收数据。在一些实现中,数据可以经由服务器设备220与远程设备230之间建立的连接(例如,WebSocket连接)被接收。在一些实现中,当服务器设备220使用服务器设备220(例如,WebSocket消息路由器) 的网络设备222接收数据时,服务器设备220可以向服务器设备220 的另一网络设备222(例如,WebSocket-HTTP桥接器)提供数据,并且可以经由网络设备222与另一网络设备222之间建立的连接(例如,WebSocket连接)来提供数据。
这样,服务器设备220可以从位于防火墙后面的远程设备230并且在不使用通过防火墙的隧道的情况下接收数据。
如在图4中进一步所示,过程400可以包括向客户端设备提供数据(块450)。例如,服务器设备220可以将数据提供到客户端设备 210,以用于由客户端设备210显示(诸如当数据包括视频数据、文本数据、与音频数据相关联的元数据等)。在一些实现中,网络设备222(例如,WebSocket-HTTP桥接器)可以经由客户端设备210与服务器设备220之间的连接(例如,HTTP连接)向浏览器部件212提供数据。在一些实现中,当客户端设备210与服务器设备220之间的连接是HTTP连接时,服务器设备220可以通过将数据包括在HTTP 响应中来提供数据。在一些实现中,服务器设备220可以在不存储数据的情况下向客户端设备210提供数据,从而节省存储器和/或存储资源,并且降低或消除对可以作为服务器设备220的有限存储器资源的结果而存在的、可以被发送到客户端设备210的数据的大小的限制。
在一些实现中,服务器设备220和/或客户端设备210可以执行与数据有关的动作。在一些实现中,除了向客户端设备210提供数据之外,服务器设备220还可以执行与数据有关的其他动作。附加地或者备选地,除了从服务器设备220接收数据之外,客户端设备210可以执行与数据有关的其他动作。
在一些实现中,动作可以包括执行分析或测试。在一些实现中,客户端设备210和/或服务器设备220可以执行数据的分析、数据的提供、数据的接收、被用于提供和/或接收数据的连接,等等。例如,客户端设备210和/或服务器设备220可以测量被用于提供和/或接收数据的设备和/或部件之间的带宽量、数据在设备和/或部件之间被交换的数据速率等。在一些实现中,客户端设备210和/或服务器设备220 可以执行对特定类型的数据的分析、测试。例如,客户端设备210和 /或服务器设备220可以对视频数据、音频数据、文本数据、日志数据等执行测试。
在一些实现中,客户端设备210和/或服务器设备220可以(例如,在日志文件中)存储分析的结果并且可以存储日志文件。附加地或者备选地,客户端设备210和/或服务器设备220可以生成标识分析的结果的报告。在一些实现中,客户端设备210和/或服务器设备220可以将分析的结果提供到另一设备以用于显示。
在一些实现中,服务器设备220可以执行错误处理。例如,服务器设备220可以确定对于数据的请求是否是成功的。在一些实现中,服务器设备220可以向客户端设备210提供指示与对于数据的请求有关的错误的信息(诸如当服务器设备220确定对于数据的请求是不成功的时)。例如,服务器设备220可以基于对于数据的请求生成特定错误,向客户端设备210提供HTTP响应(例如,当所请求的数据不能由远程设备230定位时的HTTP 404或当客户端设备210缺乏访问所请求的数据的允许时的HTTP响应403)。
在一些实现中,客户端设备210可以存储数据。附加地或者备选地,客户端设备210可以(例如,使用浏览器部件212)提供用于显示的数据。附加地或者备选地,客户端设备210可以播放数据(诸如当数据是视频数据、音频数据和/或其他媒体数据)。
在一些实现中,客户端设备210和/或服务器设备220可以使用一个或多个技术处理数据。在一些实现中,客户端设备210和/或服务器设备220可以使用机器学习、模式识别、目标检测、计算机视觉等来处理视频和/或图像,以检测视频/图像中所示出的目标、视频/图像中所示出的目标的边缘、视频/图像中所示出的模式等。附加地或者备选地,客户端设备210和/或服务器设备220可以使用自动语音识别 (ASR)、计算机语音识别、语音到文本、隐藏马尔可夫模型和/或神经网络来处理音频数据,以标识被包括在音频数据中的词语和/或标签。
附加地或者备选地,客户端设备210可以使用自然语言处理、文本分析、计算语言、机器学习和/或人工智能来处理文本数据,以标识文本数据的词语和/或标签。例如,客户端设备210和/或服务器设备 220可以接收与设备的屏幕截图有关的光学字符识别(OCR)数据,并且可以处理OCR数据以标识被包括在数据中的特定词语和/或标签。在一些实现中,当处理数据时,客户端设备210和/或服务器设备 220可以处理数百万或数十亿数据项。例如,客户端设备210和/或服务器设备220可以处理数百万或数十亿图像、数百万或数十亿行文本、数百万或数十亿秒音频数据等。
在一些实现中,客户端设备210和/或服务器设备220可以基于处理数据执行动作。在一些实现中,客户端设备210和/或服务器设备 220可以基于处理数据生成报告(例如,标识被包括在数据中的对象、词语、标签等的报告)。附加地或者备选地,客户端设备210向(例如,网络管理员的)另一设备提供标识处理数据的结果的消息。附加地或者备选地,客户端设备210可以在网络管理员之间安排会议(例如,使用网络管理员的电子日历来标识可用时间),诸如以讨论处理的结果。
这样,服务器设备220可以向客户端设备210提供数据。另外,客户端设备210和/或服务器设备220可以执行与数据有关的动作。
虽然在此所描述的实现涉及经由WebSocket上的读取/写入流从远程设备230提供到客户端设备210的数据,但是其他实现是可能的。在一些实现中,服务器设备220可以接收对于由客户端设备210所存储的数据的请求,或提供由客户端设备210所存储的数据的请求(例如,而不是接收对于由远程设备230所存储的数据的请求)。例如,服务器设备220可以从远程设备230接收对于由客户端设备210所存储的数据的请求。作为另一示例,服务器设备220可以从客户端设备 210接收对于由客户端设备210所存储的数据的请求。继续先前的示例,由客户端设备210所存储的数据可以包括测试脚本(诸如测试远程设备230)、用于远程设备230的软件等。在一些实现中,当请求是对于由客户端设备210所存储的数据的请求时,服务器设备220可以将对于数据的请求提供到客户端设备210。
在一些实现中,当远程设备230已经从客户端设备210请求数据和/或客户端设备210已经请求向远程设备230提供数据时,服务器设备220可以经由WebSocket上的读取/写入流向远程设备230提供由客户端设备210所存储的数据(例如,以流式方式)。这通过允许数据的双向交换来改进在客户端设备210与远程设备230之间交换数据。
虽然图4示出了过程400的示例块,但是在一些实现中,过程400 可以包括附加的块、较少的块、不同的块、或与图4中所描绘的那些不同布置的块。附加地或备选地,可以并行执行过程400的块中的两个或两个以上块。
如在此所描述的,实现方式使得防火墙外面的客户端设备能够在不需要通过防火墙的隧道(例如,代理隧道或HTTP隧道)的情况下,获得由防火墙后面的远程设备所存储的数据。另外,在不需要远程设备了解请求客户端设备的身份的情况下并且在不需要远程设备与来自防火墙后面的请求客户端设备建立连接的情况下,可以由客户端接收数据。这样,从防火墙后面获得数据的效率增加(例如,因为请求客户端设备的身份可以不由远程设备需要以便允许远程设备从防火墙后面推送数据)。进一步地,可以通过消除对于经由防火墙允许请求客户端设备从防火墙后面提取数据的隧道的需要来增加安全性。
前述公开内容提供了说明和描述,但是不旨在是详尽的或将实现方式限于所公开的精确形式。鉴于以上公开内容,修改和变型是可能的或者可以从实现方案的实践被获得。
如本文所使用的,术语部件旨在宽广地被解释为硬件、固件、和 /或硬件和软件的组合。
在本文中结合阈值描述了一些实现方式。如本文所使用的,满足阈值可以是指大于阈值、多于阈值、高于阈值、大于或者等于阈值、小于阈值、少于阈值、低于阈值、小于或者等于阈值、等于阈值等等的值。
将明显的是,本文所描述的系统和/或方法可以以硬件、固件、或硬件和软件的组合的不同形式被实现。实现这些系统和/或方法所使用的实际专用控制硬件或者软件代码不是对实现方式的限制。因此,在不参考具体软件代码的情况下,本文描述了系统和/或方法的操作和行为——应当理解,软件和硬件可以被设计为基于本文中的描述来实现系统和/或方法。
即使在权利要求中记载了和/或在说明书中公开了特征的特定组合,这些组合也不旨在限制可能的实现方式的公开内容。实际上,可以以未特别地记载在权利要求中和/或公开在说明书中的方式组合这些特征中的许多特征。尽管所列出的每个从属权利要求可以直接地引用仅一个权利要求,但是可能的实现方式的公开内容包括与权利要求集合中的每个其他权利要求组合的每个从属权利要求。
除非如此明确地描述,否则本文所使用的元素、行为或指令不应当被解释为关键或基本的。此外,如本文所使用的,量词“一”和“一种”旨在包括一个或多个项目,并且可以与“一个或多个”可交换地使用。而且,如本文所使用的,术语“集合”旨在包括一个或多个项目(例如,相关项目、无关项目、相关项目和无关项目的组合等),并且可以与“一个或多个”可交换地使用。在预期仅一个项目的情况下,使用术语“一个”或者类似的语言。此外,如本文所使用的,术语“具有”、“有”、“含有”等旨在是开放式术语。另外,除非另外明确说明,否则短语“基于”旨在意指“至少部分地基于”。
Claims (14)
1.一种设备,包括:
用于接收多个连接请求以在多个设备之间建立多个连接的装置,
所述多个连接请求中的第一连接请求从所述多个设备中的、位于防火墙后面的第一设备被接收,
所述多个连接请求中的第二连接请求从所述多个设备中的、位于所述防火墙外面的第二设备被接收,以及
所述多个连接包括:
第一连接,其与所述第一连接请求相关联,以及
第二连接,其与所述第二连接请求相关联;
用于在建立所述多个连接之后从所述第一设备或所述第二设备接收与由所述第一设备或所述第二设备存储的数据相关联的请求的装置,
所述数据包括视频数据、音频数据或文本数据,以及
与所述数据相关联的所述请求包括将所述第一设备或所述第二设备标识为所述请求的目的地的信息;
用于基于从所述第一设备或所述第二设备接收到所述请求、使用将所述第一设备或所述第二设备标识为所述请求的所述目的地的所述信息来向所述第一设备或所述第二设备提供所述请求的装置;
用于基于向所述第一设备或所述第二设备提供所述请求来从所述第一设备或所述第二设备接收所述数据的装置,
来自所述第一设备的所述数据以流式方式从来自所述防火墙后面的所述第一设备被接收,和/或
来自所述第二设备的所述数据以所述流式方式向所述第一设备被提供;
用于基于从所述第一设备或所述第二设备接收到所述数据来向所述第一设备或所述第二设备提供所述数据的装置;以及
用于除了向所述第一设备或所述第二设备提供所述数据之外执行与所述数据有关的动作的装置。
2.根据权利要求1所述的设备,其中所述流式方式包括以部分或数据块的方式接收或提供所述数据。
3.根据权利要求1所述的设备,其中在无需全部所述数据同时被存储在所述设备上的情况下,所述数据经由所述设备被流动。
4.根据权利要求1所述的设备,其中用于接收所述多个连接请求的所述装置包括:
用于从所述第一设备并且由被实现在所述设备上的第一网络设备接收所述第一连接请求以建立到所述第一设备的所述第一连接的装置;以及
用于从所述第二设备并且由被实现在所述设备上的第二网络设备接收所述第二连接请求以建立到所述第二设备的所述第二连接的装置。
5.根据权利要求4所述的设备,还包括:
用于基于接收到所述第一连接请求和所述第二连接请求来在所述第一网络设备与所述第二网络设备之间建立第三连接的装置,
所述第一连接和所述第三连接是相同类型的连接;以及
其中用于接收与所述数据相关联的所述请求的所述装置包括:
用于基于建立所述第三连接来接收与所述数据相关联的所述请求的装置。
6.根据权利要求5所述的设备,其中:
所述第一网络设备与所述第一设备之间的所述第一连接是第一WebSocket连接,
所述第二网络设备与所述第二设备之间的所述第二连接是超文本传输协议(HTTP)连接,以及
所述第一网络设备与所述第二网络设备之间的所述第三连接是第二WebSocket连接。
7.根据权利要求1所述的设备,其中用于执行所述动作的所述装置包括:
用于基于向所述第一设备或向所述第二设备提供所述数据来对所述数据执行测试的装置。
8.一种方法,包括:
由第一设备接收多个连接请求以在位于防火墙后面的第二设备与位于所述防火墙外面的第三设备之间建立通信,
所述第一设备位于所述防火墙外面,
所述第二设备和所述第三设备存储要被请求的数据,
基于所述多个连接请求,第一连接在所述第一设备与所述第二设备之间被建立,以及
基于所述多个连接请求,第二连接在所述第一设备与所述第三设备之间被建立;
由所述第一设备基于接收到所述多个连接请求,从所述第二设备或所述第三设备接收对于所述数据的请求,
对于由所述第二设备存储的所述数据的所述请求经由所述第二连接被接收,
对于由所述第三设备存储的所述数据的所述请求经由所述第一连接被接收;
由所述第一设备基于接收到所述请求,经由所述第一连接或所述第二连接提供所述请求;
由所述第一设备基于提供所述请求,接收所述数据,
由所述第二设备存储的所述数据在不使用通过所述防火墙的隧道的情况下并且以流式方式由所述第一设备从所述防火墙后面接收;以及
由所述第一设备基于接收到所述数据,提供所述数据,
由所述第三设备存储的所述数据以所述流式方式向所述第二设备被提供。
9.根据权利要求8所述的方法,还包括:
基于接收到所述多个连接请求中的第一连接请求,建立到所述第二设备的所述第一连接,
所述第一连接是WebSocket连接;
基于接收到所述多个连接请求中的第二连接请求,建立到所述第三设备的所述第二连接,
所述第二连接是超文本传输协议(HTTP)连接;以及
其中提供所述请求包括:
在建立所述第一连接和所述第二连接之后提供所述请求。
10.根据权利要求9所述的方法,其中接收针对所述数据的所述请求包括:
经由所述HTTP连接接收针对所述数据的所述请求;以及
其中提供所述请求包括:
经由所述WebSocket连接提供所述请求。
11.根据权利要求8所述的方法,还包括:
基于建立所述第一连接,由所述第一设备的第一网络设备从所述第二设备或所述第一设备的第二网络设备接收一个或多个指令集,
所述一个或多个指令集与在所述第一设备与所述第二设备之间建立数据流有关;以及
基于接收到所述一个或多个指令集,向所述第一网络设备注册所述一个或多个指令集。
12.根据权利要求11所述的方法,还包括:
基于注册所述一个或多个指令集,使用所述一个或多个指令集来在所述第一设备与所述第二设备之间建立所述数据流;以及
其中接收所述数据包括:
基于建立所述数据流,经由所述数据流来接收所述数据。
13.根据权利要求8所述的方法,其中接收所述数据还包括:
基于向所述第二设备提供所述请求,由所述第一设备的第一网络设备经由所述第一连接接收所述数据,
所述第一连接是第一WebSocket连接;以及
其中提供所述数据还包括:
基于接收到所述数据,经由第三连接将所述数据从所述第一网络设备向所述第一设备的第二网络设备提供,
所述第三连接是第二WebSocket连接;以及
基于向所述第二网络设备提供所述数据,由所述第二网络设备经由所述第二连接向所述第三设备提供所述数据,
所述第二连接是超文本传输协议(HTTP)连接。
14.根据权利要求8所述的方法,还包括:
基于提供所述数据,对视频数据执行测试。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/366,918 US10623450B2 (en) | 2016-12-01 | 2016-12-01 | Access to data on a remote device |
US15/366,918 | 2016-12-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108134816A true CN108134816A (zh) | 2018-06-08 |
CN108134816B CN108134816B (zh) | 2020-11-06 |
Family
ID=60421574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711226068.1A Active CN108134816B (zh) | 2016-12-01 | 2017-11-29 | 对远程设备上的数据的访问 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10623450B2 (zh) |
EP (1) | EP3331213A1 (zh) |
CN (1) | CN108134816B (zh) |
AU (1) | AU2017265064B2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111010444A (zh) * | 2019-12-20 | 2020-04-14 | 创盛视联数码科技(北京)有限公司 | 一种实现Wowza流媒体引擎分布式集群的系统及方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106657370B (zh) * | 2017-01-03 | 2019-08-30 | 腾讯科技(深圳)有限公司 | 数据传输方法及装置 |
WO2020003238A1 (en) * | 2018-06-29 | 2020-01-02 | Cryptometry Canada Inc. | Communications bridge |
US10911801B1 (en) * | 2018-08-21 | 2021-02-02 | CSC Holdings, LLC | CPE real-time event capture and notification |
US20220383173A1 (en) * | 2021-05-28 | 2022-12-01 | IonQ Inc. | Port server for heterogeneous hardware |
WO2022269340A1 (en) * | 2021-06-24 | 2022-12-29 | L&T Technology Services Limited | Method and system for remote testing of devices |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420455A (zh) * | 2007-08-30 | 2009-04-29 | 软件Ag公司 | 反向http网关数据传输系统和/或方法及其网络 |
CN101296236B (zh) * | 2008-06-12 | 2011-06-08 | 北京中星微电子有限公司 | 多用户实时访问多媒体数据的方法、系统及数据客户端 |
CN103297445A (zh) * | 2012-02-22 | 2013-09-11 | 中国移动通信集团公司 | 一种基于IP多媒体网络的Web终端通信方法和系统 |
CN103581265A (zh) * | 2012-08-07 | 2014-02-12 | 深圳市傲冠软件股份有限公司 | 远程访问方法及系统 |
CN103631556A (zh) * | 2013-11-06 | 2014-03-12 | 天脉聚源(北京)传媒科技有限公司 | 一种远程控制显示设备的方法、移动终端及系统 |
CN104137505A (zh) * | 2011-12-29 | 2014-11-05 | 皇家Kpn公司 | 网络发起的内容流式传输控制 |
WO2015119529A1 (en) * | 2014-02-07 | 2015-08-13 | Oracle International Corporation | On-premises agent for mobile cloud service |
CN105593826A (zh) * | 2013-09-30 | 2016-05-18 | Mts系统公司 | 监控测试设备的远程计算设备的移动应用交互用户界面 |
CN105897688A (zh) * | 2015-02-16 | 2016-08-24 | 国际商业机器公司 | 使得内部资源能够安全且无缝地暴露给公共云应用 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9369437B2 (en) * | 2010-04-01 | 2016-06-14 | Cloudflare, Inc. | Internet-based proxy service to modify internet responses |
US20130275492A1 (en) * | 2012-04-13 | 2013-10-17 | Microsoft Corporation | Enabling Web Clients to Provide Web Services |
US20140075541A1 (en) * | 2012-09-11 | 2014-03-13 | Orion Energy Systems, Inc. | Systems and methods for accessing resources through a firewall |
US9628543B2 (en) * | 2013-09-27 | 2017-04-18 | Samsung Electronics Co., Ltd. | Initially establishing and periodically prefetching digital content |
KR101924703B1 (ko) | 2014-02-13 | 2019-02-20 | 코닌클리즈케 케이피엔 엔.브이. | 단일 메세지 요청에 기초하여 네트워크 노드로부터 다수의 청크 요청 |
FR3022093A1 (fr) * | 2014-06-10 | 2015-12-11 | Orange | Procede d'etablissement d'une session webrtc |
US20160057211A1 (en) | 2014-08-21 | 2016-02-25 | Verasynth, Inc. | System and method for secure integration of web and mobile applications on the public internet with enterprise application servers in the public, private or hybrid cloud |
US9871691B2 (en) * | 2014-09-16 | 2018-01-16 | CloudGenix, Inc. | Methods and systems for hub high availability and network load and scaling |
-
2016
- 2016-12-01 US US15/366,918 patent/US10623450B2/en active Active
-
2017
- 2017-11-15 EP EP17201799.8A patent/EP3331213A1/en not_active Ceased
- 2017-11-22 AU AU2017265064A patent/AU2017265064B2/en active Active
- 2017-11-29 CN CN201711226068.1A patent/CN108134816B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420455A (zh) * | 2007-08-30 | 2009-04-29 | 软件Ag公司 | 反向http网关数据传输系统和/或方法及其网络 |
CN101296236B (zh) * | 2008-06-12 | 2011-06-08 | 北京中星微电子有限公司 | 多用户实时访问多媒体数据的方法、系统及数据客户端 |
CN104137505A (zh) * | 2011-12-29 | 2014-11-05 | 皇家Kpn公司 | 网络发起的内容流式传输控制 |
CN103297445A (zh) * | 2012-02-22 | 2013-09-11 | 中国移动通信集团公司 | 一种基于IP多媒体网络的Web终端通信方法和系统 |
CN103581265A (zh) * | 2012-08-07 | 2014-02-12 | 深圳市傲冠软件股份有限公司 | 远程访问方法及系统 |
CN105593826A (zh) * | 2013-09-30 | 2016-05-18 | Mts系统公司 | 监控测试设备的远程计算设备的移动应用交互用户界面 |
CN103631556A (zh) * | 2013-11-06 | 2014-03-12 | 天脉聚源(北京)传媒科技有限公司 | 一种远程控制显示设备的方法、移动终端及系统 |
WO2015119529A1 (en) * | 2014-02-07 | 2015-08-13 | Oracle International Corporation | On-premises agent for mobile cloud service |
CN105897688A (zh) * | 2015-02-16 | 2016-08-24 | 国际商业机器公司 | 使得内部资源能够安全且无缝地暴露给公共云应用 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111010444A (zh) * | 2019-12-20 | 2020-04-14 | 创盛视联数码科技(北京)有限公司 | 一种实现Wowza流媒体引擎分布式集群的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
AU2017265064A1 (en) | 2018-06-21 |
CN108134816B (zh) | 2020-11-06 |
AU2017265064B2 (en) | 2018-11-08 |
US20180159902A1 (en) | 2018-06-07 |
US10623450B2 (en) | 2020-04-14 |
EP3331213A1 (en) | 2018-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108134816A (zh) | 对远程设备上的数据的访问 | |
US10795992B2 (en) | Self-adaptive application programming interface level security monitoring | |
CN112417439A (zh) | 账号检测方法、装置、服务器及存储介质 | |
CN106663166A (zh) | 检测装置、检测方法以及检测程序 | |
CN107948199B (zh) | 一种对终端共享接入进行快速检测的方法及装置 | |
CN108809926A (zh) | 入侵检测规则优化方法、装置、电子设备及存储介质 | |
CN107169769A (zh) | 应用程序的刷量识别方法、装置 | |
CN108055166B (zh) | 一种嵌套的应用层协议的状态机提取系统及其提取方法 | |
CN104618853B (zh) | 一种消息推送方法、装置及系统 | |
CN104834588A (zh) | 检测常驻式跨站脚本漏洞的方法和装置 | |
CN105938472A (zh) | 一种网页访问控制方法和装置 | |
CN105592169B (zh) | 终端识别方法及装置 | |
CN106921671A (zh) | 一种网络攻击的检测方法及装置 | |
CN117332095A (zh) | 一种基于资产探测的网络空间知识图谱构建方法 | |
CN111126071A (zh) | 提问文本数据的确定方法、装置和客服群的数据处理方法 | |
US20210084008A1 (en) | Fully qualified domain name (fqdn) determination | |
CN110808997B (zh) | 对服务器远程取证的方法、装置、电子设备、及存储介质 | |
CN115242692B (zh) | 网络资产自定义协议识别方法、装置、终端及存储介质 | |
CN110401626B (zh) | 一种黑客攻击分级检测方法及装置 | |
CN105094810B (zh) | 基于通用网关接口插件的数据处理方法和装置 | |
CN114513331B (zh) | 基于应用层通信协议的挖矿木马检测方法、装置及设备 | |
CN113037784B (zh) | 流量引导方法、装置及电子设备 | |
CN109194756A (zh) | 应用程序特征信息提取方法及装置 | |
CN117561509A (zh) | 用于控制提供给服务工作方的信息的持久性、利用率和传播的代理服务 | |
CN110868410B (zh) | 获取网页木马连接密码的方法、装置、电子设备、及存储介质 |
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 |