CN105897688B - 使得在云中部署的应用能够访问内部资源的方法和装置 - Google Patents

使得在云中部署的应用能够访问内部资源的方法和装置 Download PDF

Info

Publication number
CN105897688B
CN105897688B CN201610085022.1A CN201610085022A CN105897688B CN 105897688 B CN105897688 B CN 105897688B CN 201610085022 A CN201610085022 A CN 201610085022A CN 105897688 B CN105897688 B CN 105897688B
Authority
CN
China
Prior art keywords
gateway
cloud
internal
application
resource
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
Application number
CN201610085022.1A
Other languages
English (en)
Other versions
CN105897688A (zh
Inventor
小L·H·欧弗尔拜
A·弗伦奇
B·莫萨科沃斯基
A·F·罗德里古埃茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN105897688A publication Critical patent/CN105897688A/zh
Application granted granted Critical
Publication of CN105897688B publication Critical patent/CN105897688B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请涉及使得内部资源能够安全且无缝地暴露给公共云应用。使部署在公共云中的应用能够安全地并且在无需防火墙上的附加端口的情况下访问内部资源。对一对安全网关进行实例化,一个在云处,另一个位于内部。每个网关可以访问定位内部资源以及建立与内部资源的安全连接所需要的信息。响应于确定应用需要访问内部资源,使用数据集合来定位资源。然后通过在云网关与内部网关之间建立的基于套接字的通信信道来从云网关向内部网关发出通信请求。通过基于HTTP的协议来发送通信请求,使得应用能够访问内部资源,而无需在防火墙处定义附加的IP地址/端口。然后实现从应用到内部资源的代理连接。

Description

使得在云中部署的应用能够访问内部资源的方法和装置
技术领域
本公开一般涉及在“云”计算环境中部署应用。
背景技术
一种新兴的信息技术(IT)交付模型是云计算,通过云计算根据需要将共享资源、软件和信息经由因特网提供给计算机和其它设备。云计算可以显著地减少IT成本和复杂度,而同时改善工作负载优化和服务交付。采用这种方法,可以对应用实例进行托管,并可以使得该应用实例从基于因特网的资源中可获得,该基于因特网的资源是通过HTTP经由常规的网络浏览器可访问的。示例应用可以是提供诸如电子邮件、日历安排、联系人管理和即时消息传送之类的常用的一组消息传送功能的应用。用户然后将通过因特网直接访问服务。使用这种服务,企业会将其电子邮件、日历和/或合作基础架构放置在云中,并且终端用户将使用适当的接入系统来访问他的或她的电子邮件,或者执行日历操作。
云计算资源通常存放在通常使用虚拟化的体系架构来运行一个或多个网络应用的大型的服务器机群中,在虚拟化的体系架构中应用在虚拟服务器、或者被称为“虚拟机器”(VM)的内部运行,虚拟服务器被映射到数据中心设施中的物理服务器。虚拟机器通常在管理程序(hypervisor)之上运行,该管理程序是一种向虚拟机器分配物理资源的控制程序。
提供基于装置或基于平台的解决方案来促进对基于云的供应的快速采用和部署,在本领域中是已知的。通常,将基于云的供应部署成云应用包。为了这个目可以使用的一个这样的装置是基于IBM DataPower产品系列的工作负载部署器( Workload Deployer)。通常,将该装置直接放置在许多组织使用的业务工作负载与底层云基础架构和平台组件之间。可替换地,可以使用平台即服务(PaaS)基础架构来部署云应用包,平台即服务基础架构诸如Orchestrator开放云管理平台、或 BluemixTM,其是用于建立、管理以及运行所有类型的应用(例如网络、移动、大数据和智能设备)的开放标准的基于云的平台。Bluemix能力包括Java、移动后端开发和应用监测,以及来自生态系统伙伴和开放源的特征—所有这些都被提供为云中的服务。Bluemix对与托管和管理基于云的应用相关联的复杂性中的大部分进行了抽象和隐藏。 Bluemix是基于云铸造(Cloud Foundry)开放技术的,并且在 SoftLayer基础架构上运行。
混合云(hybrid cloud)是两个或更多个云(私有云、共同体云或公共云)的组合,所述两个或更多个云保持为不同的实体,但是结合在一起,从而提供多个部署模型的益处。在私有企业使用公共云作为混合环境来开发并部署新的基于云的应用(例如使用Bluemix)时,有时需要从公共云应用访问客户的内部(on-premises)资源(应用和数据)。特别地,在这种环境中的应用开发者经常期望开发使用某些应用接口来访问这些内部资源的应用源代码,内部资源中的许多是通过基于非HTTP的接口可寻址的。然而由于这些非HTTP的接口是本地的,所以可能需要访问大量的内部传输端口。相应地,实现内部资源的访问通常需要云应用开发者与企业防火墙管理员交互,以获得向新服务和端口开放防火墙的许可。这样的许可可能需要花费时间来获得,从而削减开发周期。对于基于HTTP的业务(去往内部应用和服务器)来说,这样的要求并不是问题,原因在于通常通过经由相同的 TCP端口(例如端口443)使用URL的安全网关或代理来访问HTTP 可寻址的资源,其中,URL允许将请求路由到正确的服务器和应用。在HTTP情况中,本地防火墙管理员仅仅需要允许去往IP地址和若干已知端口的入站业务。
仍然需要针对使用本地(基于非HTTP的)协议的公共云应用提供一种以安全且无缝的方式访问内部应用和数据的方法,而不需要在内部防火墙处定义的附加的IP地址和端口。
发明内容
根据本公开,使得部署在公共云中的、并且通过基于非HTTP 的协议运行的应用能够安全地访问内部资源,而不需要开放企业防火墙上的除了标准HTTP端口(即,端口80和443)以外的附加端口。为此,对一对安全网关进行实例化,一个在公共云处,而另一个位于内部。公共云中的安全网关适合于耦接到所部署的云应用,而内部安全网关适合于耦接到内部资源(例如内部应用、数据库等)。每个网关或维持策略数据集合的副本(或可以以其它方式获得对策略数据集合的副本的访问)。策略数据集合包括一个或多个数据对,特定的数据对是“条件”和关联“动作”。条件识别服务名称,并且动作识别内部资源的位置(例如URI等)以及建立与该内部资源的安全连接所需要的安全要求。因此,特定的策略数据集合提供定位所识别的内部资源和建立与所识别的内部资源的安全连接所需要的信息。
响应于确定公共云应用需要访问特定的内部资源,使用策略数据集合中的信息来促进连接的建立。基于该信息,通过在网关之间建立的基于套接字的通信信道来从云网关向内部网关发布通信请求。优选地,以HTTP WebSocket Upgrade(网络套接字升级)请求(端口443 或者任何其它分配的HTTP端口上)的形式通过基于HTTP的协议来发送通信请求,使得应用能够访问内部资源,而不需要在与内部网关相关联的内部防火墙处定义附加的IP地址/端口。此处,实现从公共云应用到内部资源的代理连接。之后,应用数据入站并通过本地的、基于非HTTP的协议从应用流入内部资源。
以上已经概述了所公开的主题的较为相关的特征中的一些。这些特征应当被解释为仅仅是说明性的。通过以不同的方式应用所公开的主题或者通过修改所公开的主题可以获得许多其它的有益效果,如将要描述的那样。
附图说明
为了对所公开的主题及其优点的更完全的理解,现在参考结合附图进行的以下描述,在附图中:
图1描绘了可以实施说明性实施例的示例性方面的分布式数据处理环境的示例性框图;
图2是可以实施说明性实施例的示例性方面的数据处理系统的示例性框图;
图3示出了可以实施所公开的主题的示例性云计算体系架构;
图4示出了可以使用基于网络的装置来促进对一个或多个基于云的供应的部署的示例性操作环境;
图5示出了根据本公开的可以支持部署的云应用的代表性平台即服务(PaaS)基础架构,诸如BluemixTM
图6示出了根据本公开的实施例、公共云应用如何访问内部资源;以及
图7描绘了根据本公开的连接建立。
具体实施方式
现在参考附图并且具体地参考图1-2,提供了数据处理环境的示例性图,在该数据处理环境中可以实施本公开的说明性实施例。应当理解的是,图1-2仅仅是示例性的,不旨在主张或暗示关于在其中可以实施所公开的主题的方面或实施例的环境的任何限制。在不背离本发明的精神和范围的情况下,可以对所描绘的环境进行许多修改。
客户端-服务器技术
现在参考附图,图1描绘了可以实施说明性实施例的方面的示例性分布式数据处理系统的图形表示。分布式数据处理系统100可以包括可以实施说明性实施例的方面的计算机网络。分布式数据处理系统 100包含至少一个网络102,其是用于提供分布式数据处理系统100 内的连接在一起的各个设备和计算机之间的通信链路的介质。网络 102可以包括连接,诸如有线通信链路、无线通信链路或光纤线缆。
在所描绘的示例中,服务器104和服务器106连同存储单元108 连接到网络102。另外,客户端110、112和114也连接到网络102。这些客户端110、112和114可以是例如个人计算机、网络计算机等等。在所描绘的示例中,服务器104向客户端110、112和114提供数据,诸如引导文件、操作系统映像和应用。在所描绘的示例中,客户端110、 112和114是服务器104的客户端。分布式数据处理系统100可以包括附加的服务器、客户端和未示出的其它设备。
在所描绘的示例中,分布式数据处理系统100是具有网络102的因特网,因特网表示使用传输控制协议/因特网协议(TCP/IP)协议组彼此通信的网络和网关的世界范围集合。在因特网的中心是主节点或主机计算机之间的、路由数据和消息的高速数据通信线路的骨干,主节点或主机计算机包括数以千计的商用计算机系统、政府计算机系统、教育计算机系统和其它计算机系统。当然,还可以将分布式数据处理系统100实施为包括若干不同类型的网络,诸如例如内联网、局域网 (LAN)、广域网(WAN)等等。如上面阐明的那样,图1旨在作为示例,并不作为所公开的主题的不同实施例的体系架构限制,并且因此在图1中示出的特定元件不应当被认为是关于在其中可以实施本发明的说明性实施例的环境而具有限制性的。
现在参考图2,示出了示例性数据处理系统的框图,在该示例性数据处理系统中可以实施说明性实施例的方面。数据处理系统200是实施本公开的说明性实施例的进程的计算机可用代码或指令可以位于其中的计算机的示例,诸如图1中的客户端110。
现在参考图2,示出了可以实施说明性实施例的数据处理系统的框图。数据处理系统200是实施说明性实施例的进程的计算机可用程序代码或指令可以位于其中的计算机的示例,诸如图1中的服务器104 或客户端110。在该说明性示例中,数据处理系统200包括通信结构 202,其提供处理器单元204、存储器206、持久存储装置208、通信单元210、输入/输出(I/O)单元212、和显示器214之间的通信。
处理器单元204用于执行可以被加载到存储器206的软件指令。处理器单元204可以是一个或多个处理器的集合,或者可以是多处理器核,这依赖于特定实施方式。此外,可以通过使用一个或多个异构处理器系统来实施处理器单元204,在该异构处理器系统中,主处理器与次处理器(secondary processor)一起存在于单个芯片上。作为另一个说明性示例,处理器单元204可以是包含多个同种类型的处理器的对称多处理器(SMP)系统。
存储器206和持久存储装置208是存储设备的示例。存储设备是能够在临时的基础和/或永久的基础上存储信息的任何一块硬件。在这些示例中,存储器206可以是例如随机存取存储器或任何其它适当的易失性或非易失性存储设备。持久存储装置208可以采取各种形式,这依赖于特定实施方式。例如,持久存储装置208可以包含一个或多个组件或设备。例如,持久存储装置208可以是硬盘驱动器、闪速存储器、可重写光盘、可重写磁带、或以上的某种组合。持久存储装置 208所使用的介质也可以是可移除的。例如,可移除硬盘驱动器可以用于持久存储装置208。
在这些示例中,通信单元210提供与其它数据处理系统或设备的通信。在这些示例中,通信单元210是网络接口卡。通信单元210可以通过使用物理通信链路和无线通信链路中的任何一个或两者来提供通信。
输入/输出单元212允许与可以连接到数据处理系统200的其它设备之间的数据输入和数据输出。例如,输入/输出单元212可以通过键盘和鼠标提供用于用户输入的连接。此外,输入/输出单元212可以向打印机发送输出。显示器214提供用于向用户显示信息的机制。
用于操作系统和应用或程序的指令位于持久存储装置208上。这些指令可以被加载到存储器206以供处理器单元204的执行。不同实施例的进程可以由处理器单元204使用计算机实施的指令来执行,计算机实施的指令可以位于诸如存储器206之类的存储器中。这些指令被称为可以由处理器单元204中的处理器读取和执行的程序代码、计算机可用程序代码、或计算机可读程序代码。不同实施例中的程序代码可以体现在不同的物理或有形计算机可读介质上,例如存储器206 或持久存储装置208。
程序代码216以功能的形式位于选择性可移除的计算机可读介质 218上,并且可以被加载到数据处理系统200或被传递到数据处理系统200以供处理器单元204的执行。在这些示例中,程序代码216和计算机可读介质218形成计算机程序产品220。在一个示例中,计算机可读介质218可以是有形的形式,诸如例如,被插入或置入驱动器中的光盘或磁盘,或者作为持久存储装置208的一部分、以用于传递到存储设备的其它设备,诸如作为持久存储装置208的一部分的硬盘驱动器。以有形的形式,计算机可读介质218还可以采用持久存储装置的形式,诸如连接到数据处理系统200的硬盘驱动器、拇指驱动器或闪速存储器。有形形式的计算机可读介质218还被称为计算机可记录的存储介质。在一些实例中,计算机可记录介质218可以不是可移除的。
可替换地,可以通过与通信单元210的通信链路和/或通过与输入/输出单元212的连接,将程序代码216从计算机可读介质218传递到数据处理系统200。在说明性示例中,通信链路和/或连接可以是物理的或无线的。计算机可读介质还可以采用非有形介质的形式,诸如包含程序代码的通信链路或无线传输。针对数据处理系统200说明的不同组件不意味着对不同实施例可以被实施的方式提供体系架构的限制。可以在包括除了针对数据处理系统200所说明的那些组件以外的组件、或者包括替换针对数据处理系统200所说明的那些组件的组件的数据处理系统中实施不同的说明性实施例。图2中所示的其它组件可以与所示的说明性示例不同。作为一个示例,数据处理系统200中的存储设备是可以存储数据的任何硬件装置。存储器206、持久存储装置208、和计算机可读介质218是有形形式的存储设备的示例。
在另一示例中,总线系统可以用于实施通信结构202,并且可以由诸如系统总线或输入/输出总线之类的一个或多个总线组成。当然,可以使用在附接到总线系统的不同组件或设备之间提供数据传递的任何适当类型的体系架构来实施总线系统。附加地,通信单元可以包括用于发送和接收数据的一个或多个设备,诸如调制解调器或网络适配器。此外,存储器例如可以是,存储器206或诸如在接口和存储器控制器中心中发现的高速缓存,所述接口和存储器控制中心可以存在于通信结构202中。
可以用一个或多个编程语言的任何组合来撰写用于实施本发明的操作的计算机程序代码,该一个或多个编程语言包括诸如JavaTM、 Smalltalk、C++、C#、Objective-C等等之类的面向对象的编程语言以及常规的过程化编程语言。程序代码可以完全地在用户的计算机上执行,部分地在用户的计算机上执行,作为独立的软件包部分地在用户的计算机上执行并且部分地在远程计算机上执行,或者完全地在远程计算机或服务器上执行。在后面的情形中,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以(例如,使用因特网服务提供者(Internet Service Provider)通过因特网)进行与外部计算机的连接。
本领域普通技术人员将清楚的是,图1-2中的硬件可以根据实施方式而变化。除了图2所描绘的硬件以外,或者替代图2中所描绘的硬件,可以使用其它内部硬件或外围设备,诸如闪速存储器、等效的非易失性存储器、或光盘驱动器等。而且,除了将说明性实施例的进程应用到先前提及的SMP系统以外,还可以将说明性实施例的进程应用到多处理器数据处理系统,而不背离所公开的主题的精神和范围。
如将看到的那样,本申请所描述的技术可以结合如图1所示的标准的客户端-服务器范例而运行,在标准的客户端-服务器范例中,客户端机器与在一个或多个机器的集合上执行的因特网可访问的基于网络的门户进行通信。终端用户对能够访问该门户并能够与该门户交互的因特网可连接设备(例如,台式计算机、笔记本计算机、因特网使能的移动设备等)进行操作。通常,每个客户端或服务器机器是诸如图2所示的包括硬件和软件的数据处理系统,并且这些实体通过诸如因特网、内联网、外联网、专用网络或任何其它通信介质或链路之类的网络彼此通信。数据处理系统通常包括一个或多个处理器、操作系统、一个或多个应用、以及一个或多个实用程序。数据处理系统上的应用提供对网络服务的本地支持,包括但不限于,对HTTP、SOAP、 XML、WSDL、UDDI和WSFL等等的支持。关于SOAP、XML、 WSDL、UDDI和WSFL的信息可以从万维网联盟(World Wide Web Consortium)(W3C)获得,万维网联盟负责开发并维护这些标准;关于HTTP和XML的进一步信息可以从互联网工程任务组(InternetEngineering Task Force)(IETF)获得。假定熟悉这些标准。
作为本公开的附加背景,已知的因特网标准协议是WebSocket。 WebSocket协议在2011年由IETF标准化,作为因特网评论请求 (RFC)6455。WebSocket提供在单个TCP连接上的全双工通信信道。其通常被实施在网络浏览器和网络服务器中,网络浏览器和网络服务器是通信的端点。该协议为网络服务器提供了一种向网络浏览器发送内容的标准化的方式,而不需要客户端进行请求,并允许来回传递消息同时保持连接开放。在这种方式中,可以在浏览器和服务器之间发生双路(双向)持续会话。为了建立WebSocket连接,客户端发送WebSocket握手请求,服务器针对WebSocket握手请求返回 WebSocket握手响应。WebSocket连接可以是安全的,例如使用TLS 传输。握手与HTTP兼容但是独立于TCP和HTTP两者。因此WebSocket协议实现例如在客户端与远程主机之间的双路通信,其中该客户端在受控环境中运行不可信代码,该远程主机根据该代码选择参与通信。
云计算模型
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型,这些都在Peter Mell和Tim Grance在2009年10月7日的“Draft NIST Working Definitionof Cloud Computing”中被更具体地描述和限定。
特别地,下列是其典型特征:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户 (multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任何时候都能获取任何数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型通常如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任何软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型通常如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦接性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
代表性的云计算节点如图2所示。特别地,在云计算节点中,具有计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器一起操作的计算系统、环境和/或配置的示例包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
现在参考图3,作为附加的背景,示出了云计算环境所提供的一组功能性抽象层。应当提前理解的是,图3所示的组件、层和功能意图仅仅是说明性的,并且本发明的实施例并不限于此。如所描绘的那样,提供了以下层和相应功能:
硬件和软件层300包括硬件和软件组件。硬件组件的示例包括:主机,例如系统;基于RISC(精简指令集计算机)体系结构的服务器,例如IBM系统;IBM系统;IBM 系统;存储设备;网络和网络组件。软件组件的示例包括:网络应用服务器软件,例如IBM 应用服务器软件;数据库软件,例如IBM数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层302提供一个抽象层,该层可以提供下列虚拟实体的示例:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层304可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个示例中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层306提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及其他(例如,在私有云中的企业专用功能)。
提前理解的是,虽然本公开包括关于云计算的详细描述,但是本申请中记载的教导的实施方式不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其它类型的计算环境而被实施。
因此,代表性的云计算环境具有一组高级别的功能组件,其包括前端身份管理器、业务支持服务(BSS)功能组件、操作支持服务(OSS) 功能组件以及计算云组件。身份管理器负责与请求客户端对接以提供身份管理,并且这个组件可以用诸如可从纽约阿蒙克市的IBM公司获得的Tivoli Federated Identity Manager(TFIM)之类的一个或多个已知系统来实施。在适当的环境中,可以使用TFIM来提供对其它云组件的联合单点登录(F-SSO)。业务支持服务组件提供某些管理功能,诸如账单支持。操作支持服务组件用于提供诸如虚拟机(VM) 实例之类的其它云组件的供应和管理。云组件代表主要的计算资源,其通常是用于执行目标应用的多个虚拟机实例,目标应用可用于经由云进行访问。使用一个或多个数据库来存储字典、日志和其它工作数据。所有这些组件(包括前端身份管理器)都位于云“内”,但是这不是必要条件。在替换实施例中,可以在云的外部操作身份管理器。也可以在云的外部操作服务提供者。
一些云是基于非传统的IP网络的。因此,例如,云可以基于双层的基于CLOS的网络,其中使用MAC地址的散列(hash)进行特殊的单层IP路由。本申请描述的技术可以用在这样的非传统云中。
在非限制性的实施方式中,代表性的平台技术是但不限于,具有 VMware vSphere4.1更新1和5.0的IBM System服务器。
云部署技术
提供基于装置的解决方案来促进对基础架构即服务以及平台即服务的供应两者的快速采用和部署是已知的。一个这样的装置是IBM 工作负载部署器(IBM WorkloadDeployer)(IWD),并且该装置还可以用于管理共享的多租户环境,其中隔离和安全是重要的。物理装置的安全特点通常是由自禁止开关提供的,如果装置的盖被移除,那么触发自禁止开关。这种物理安全使得装置能够用作凭证的安全库,该凭证可以在整个生命周期中(在存储、分发、运行于云中、或从云中移除的过程中)被绑定到虚拟映像。IBM工作负载部署器还包含存储驱动器,该存储驱动器简化映像定制的存储。IBM工作负载部署器还用作针对预先加载和定制的中间件虚拟映像和模式的专用存储装置。
在操作中,装置可以供应标准的和定制的中间件虚拟映像和模式,可以在私有或内部云计算环境内安全地部署和管理该标准的和定制的中间件虚拟映像和模式。这些虚拟映像可以帮助组织容易并快速地开发、测试和部署商业应用。在完成时,自动地将资源返回给共享资源池以供将来使用,并记录资源以用于内部退单的目的。该装置还管理单独的用户和组对资源的访问,给IT管理者提供以精细粒度的等级来优化效率所需要的控制。
参考图4,代表性的操作环境包括物理装置400,其与云402对接。可以使用诸如上面关于图2描述的数据处理系统来实施该装置。优选地,装置400包括基于Web 2.0的用户接口(UI)、命令行接口 (CLI)和基于REST的应用编程接口(API)。该装置提供使得基于云的方案能够快速部署的管理功能。为此,该装置提供(i)用于管理用户和组对资源的访问的数据404的存储、(ii)预先加载的和/或可定制的中间件虚拟映像406的存储、和(iii)可配置的模式和脚本包 (408)的存储。模式是对包括特定解决方案的物理资产和虚拟资产两者的逻辑描述。管理功能和接口向许可对另外的复杂的一组硬件和软件组件进行快速创建和修改的结构提供基于模板的方法。
同样如图4所示,中间件应用在其上运行的内部或私有云环境 402通常包括监督程序、联网基础架构和分配给装置的存储设备。可以用上面关于图3描述的方式来实施代表性的环境。
作为进一步的背景,BluemixTM是用于建立、管理和运行诸如网络、移动、大数据和智能设备之类的所有类型的应用的开放标准的、基于云的平台。能力包括Java、移动后端开发和应用监测,以及来自生态系统伙伴和开放源的特征—所有这些都被提供为云中的服务。Bluemix抽象并隐藏了与托管并管理基于云的应用相关联的大部分复杂性。使用Bluemix,应用开发者可以专注于开发云应用,而不必管理对其进行托管所需要的基础架构。对于移动应用,开发者可以使用Bluemix所提供的预先建立的服务。对于网络应用,开发者可以将应用上传到Bluemix并指示运行多少个实例。然后,Bluemix负责部署。在应用被部署之后,在应用的使用或装载发生变化时,用户可以容易地对应用进行扩展或缩减。
Bluemix可以用于用最流行的编程语言进行快速的应用开发和部署。例如,可以用JavaScript在iOS、Android和HTML中开发和部署移动应用。可以使用诸如Ruby、PHP和JavaTM之类的语言来开发并部署网络应用。此外,Bluemix还提供中间件服务以供应用使用。具体地,Bluemix在其供应新的服务实例时代表应用进行动作,并且然后将这些服务绑定到应用。这使得应用能够执行其真正的工作,从而将对服务的管理留给基础架构。
参考图5,Bluemix是用于建立云应用并在开发应用时使用服务的环境500。Bluemix还向在诸如Liberty之类的应用服务器上运行的主机应用构件提供环境。通过使用SoftLayer 504,并且如下面将描述的那样,Bluemix部署托管每个所部署的应用508的虚拟容器。在这种环境中,应用可以使用预先建立的服务(包括第三方服务)510来使得应用组装变得容易。开发者可以通过使用基于浏览器的用户接口 512、或者被称为cf的云铸造命令行接口514来与Bluemix基础架构交互,以部署网络应用。客户端与Bluemix托管的应用交互,该客户端可以是移动应用516、外部运行的应用、在Bluemix上建立的应用、或正在使用浏览器的应用开发者518。优选地,客户端使用REST或 HTTP API 520来通过Bluemix路由器524向应用实例或组合服务中的一个路由请求。
在Bluemix中,通常将云应用部署到不同的Bluemix区域,其中区域通常是定义的地理地域。开发者可以选择部署到一个区域或者跨多个区域部署。当用户将应用部署到Bluemix时,他或她必须用足够的信息来配置Bluemix以支持该应用。对于移动应用,Bluemix包含表示移动应用后端的构件,诸如移动应用用来与服务器通信的服务。对于网络应用,开发者必须确保关于适当的运行时间和框架的信息被传送给Bluemix,使得可以建立运行应用的适当的执行环境。包括移动和网络的每个执行环境是与其它应用的执行环境隔离的。即使这些应用可能处于相同的物理机器上,执行环境也是隔离的。
再参考图5,当用户创建应用并将其部署到Bluemix时,Bluemix 环境确定应用或应用所表示的构件被发送到的合适的虚拟机(VM) 522。对于移动应用,在Bluemix上创建移动后端投影。在云中运行的移动应用的任何代码最终在Bluemix环境中运行。对于网络应用,在云中运行的代码是开发者部署到Bluemix的应用本身。VM的确定基于若干因素,包括:已经在机器上的负载以及该VM所支持的运行时间或框架。在选择了VM之后,每个VM上的应用管理器为应用安装适当的框架和运行时间。然后,可以将应用部署到该框架中。在部署完成时,启动应用构件。如图5所示,VM 522,也被称为微滴执行代理(droplet executionagent)(DEA),其具有多个部署于其中的应用508。在每个VM中,应用管理器与Bluemix基础架构的其余部分进行通信,并且管理被部署到该VM的应用。每个VM具有分隔并保护应用的容器。在每个容器中,Bluemix安装每个应用所需要的合适的框架和运行时间。在部署应用时,如果应用具有网络接口(诸如Java 网络应用)、或者其它基于REST的服务(诸如公开暴露给移动应用的移动服务),那么应用的用户可以通过使用正常的HTTP请求与其进行通信。每个应用可以具有一个或多个与其相关联的URL,但是这些URL的全部必须都指向Bluemix端点。当请求进入时,Bluemix检查该请求,确定它是发往哪个应用,并且然后选择应用实例中的一个来接收该请求。
服务510是由Bluemix托管的云扩展。服务提供应用的运行代码的备好待用的功能。Bluemix提供的预定服务包括数据库、消息传送、移动应用的推送通知、以及网络应用的弹性缓存。开发者还可以在 Bluemix中创建服务,这些可以包括简单的实用程序(例如运行时间库的功能),或者对服务或数据库建模的进程的复杂业务逻辑。Bluemix 通过供应新的服务实例、并将那些服务实例绑定到应用来简化服务的使用。Bluemix自动地处理服务的管理。
运行时间是用于运行应用的一组资源。Bluemix提供运行时间环境,以作为不同类型的应用的容器。运行时间环境作为建立包 (buildpack)被集成到Bluemix,并且被自动地配置以供使用。建立包是准备用于在目标PaaS上执行的部署代码的脚本集合。建立包收集应用的运行时间和框架的依赖关系。然后,建立包将它们与应用一起打包到可以被部署到云的微滴(droplet)中。
当然,任何这样的上述云管理环境不旨在是限制性的,原因在于可以在其它(开放、封闭或混合的)环境中,和/或使用其它部署技术 (不管是开放的还是专属的还是混合的)实施本文中的技术。
使内部服务能够被安全地暴露给公共云应用
在以上作为背景的情况下,现在描述本公开中的技术。
图6描绘了基本的操作情形。通常地,该情形是混合云情形,其中,已经例如通过使用Bluemix将云应用部署在公共云中,同时部署该应用的企业维持其自己的(通常是私有和安全的)企业网络。因此,如图6所描绘的那样,企业侧包括企业网络600,其包括防火墙602或其它类似机制(例如,NAT等)。内部资源604(或者更通常地,“服务”)包括内部应用、数据库等。公共云侧包括公共云606,诸如Bluemix。公共云606是经由诸如可公开路由(基于IP)的因特网、或者某种其它基于网络的链路(或多个链路)之类的中介608可访问的。例如使用上面描述的云部署技术中的一个来将一个或多个云应用 610部署在公共云606中。根据本公开,假定云应用610经由基于非HTTP的协议612在正常的过程中访问内部资源604。因此,例如,如果所部署的云应用610是数据库系统并且内部资源604是数据库,那么基于非HTTP的协议612可以是JDBC。基于非HTTP的协议612 有时在本申请中被称为“本地”协议。更通常地,本申请中使用的“本地”协议指的是非HTTP(或非HTTPS)协议(即,不使用公知的基于HTTP的端口(80和443)的协议)。
在这种操作情形下,并且根据本公开,使部署在公共云606中的并且通过基于非HTTP的协议612运行的应用610能够安全地访问内部资源604,并且不需要开放的企业防火墙602上的除标准HTTP端口(即端口80和443)以外的附加端口。为此,对一对安全网关进行实例化,一个(云网关614)在公共云处,而另一个(内部网关616) 位于内部。如图6所描绘的那样,公共云中的安全网关614适合于耦接到所部署的云应用610,而内部安全网关616适合于耦接到内部资源604(例如,内部应用、数据库等)。每个网关或维持策略数据集合618(或可以以其它方式获得对策略数据集合618的访问)。策略数据集合包括一个或多个数据对,其中特定的数据对是“条件”和关联“动作”。条件识别服务名称,而动作识别内部资源604的位置(例如,URI等),以及建立与该内部资源的安全连接所需要的安全要求。因此,特定的策略数据集合提供使得网关614和616能够定位所识别的内部资源并且建立与所识别的内部资源的安全连接所需要的信息。
现在描述本公开的技术的基本操作。响应于确定公共云应用610 需要访问特定的内部资源604(例如接收到连接请求),使用策略数据集合618中的信息来促进连接的建立。具体地,并基于该信息,通过在云网关与内部网关之间建立的基于套接字的通信信道622从云网关向内部网关发出通信请求620。所期望的是,通过基于HTTP的协议(优选地以端口443上的HTTP WebSocket Upgrade请求的形式) 发送通信请求620,使得应用610能够访问内部资源602,而不需要在与内部网关616相关联的内部防火墙620处定义附加的IP地址/端口。
HTTP WebSocket的使用在该上下文中提供了显著的优点。具体地,并且与常规的HTTP WebSocket请求(常规的HTTP WebSocket 请求会被传递给在该请求中指定的端点)不同,初始通信请求仅仅用于在网关614与616之间传递(即,传输)目标应用信息(即,其位置和安全要求);因此,优选地,初始的基于HTTP的连接请求终止于内部安全网关616处。进一步地,一旦安全网关616识别出内部资源的位置和安全要求,然后就可以创建端到端的通信路径。具体地,实现从公共云应用610到云网关614、从云网关614到内部网关616 以及然后从内部网关616到内部资源602的代理连接。在每个这样的代理连接内可以存在附加的连接(或路径)。优选地,所部署的云应用610通过本地的、基于非HTTP的协议来与其相关联的网关616进行通信,其中,该应用使用所述本地的、基于非HTTP的协议来与内部资源交互。这些网关之间的通信通过在它们之间建立的WebSocket 通信信道进行;然而,在该上下文中,WebSocket不是按照(在标准协议中)设计那样被使用的,而是仅仅被用于代理原始的TCP业务(从网关到网关)。一旦业务跨过网关到网关连接(例如通过公共的因特网),那么它然后就需要被传递给内部网关。此时,通常使用本地的、基于非HTTP的协议以用于内部网关616与其相关联的端点(即内部资源602)之间的交互。因此,应用数据入站并通过本地的、基于非 HTTP的协议从应用流入内部资源。当然,可以以类似的方式来传递从内部资源602发起的并去往云应用的出站数据流。
WebSocket协议原始被设计为帧协议以促进长轮询业务的实时业务流。根据本公开,并且如上所述,该协议被重利用以使得网关能够在不需要开放防火墙上的特殊端口的情况下传输初始的连接请求,以及代理原始TCP业务(基于非HTTP的协议数据)。WebSocket连接用作从内部网关到云网关(例如Bluemix)的隧道。可能存在从不同的内部网关到相同的云网关配置的多于一个的隧道。当存在多于一个的(1)与云网关配置相关联的内部网关时,可以使用负载均衡规则(例如,轮询(round robin)、最先活动、最少连接等)来确定哪个隧道以及从而确定哪个内部网关是接收HTTP/TCP连接请求的目标(对于入站的情况)。可能存在许多这样的去往特定策略数据集合所确定的目的地的连接请求。
在一个实施例中,在每个网关处复制上面所描述的策略数据集合。然而,这不是必要条件。在替换的实施例中,内部网关可以是“无状态的”,在该情况下,策略数据集合可以在令牌(例如,JSON Web Token(JWT))内被编码,并且在传递HTTP连接请求时被“即时”或“按需”绑定到通信信道。这可以提供策略的“及时”或者“后期绑定”。在该替换实施例中,内部网关可以被概括为具有以这种无状态方式与云网关交互的能力的“客户端”。代表性的客户端可以包括具有建立并管理Bluemix连接性的能力的客户端软件(和软件安装程序)、包括“随处运行”功能的Docker映像、具有安全执行的IBM DataPower装置等等。当客户端无状态时,软件提供针对客户端可以连接到的每个网关实例生成JWT的能力。具体地,JWT允许无状态的客户端连接云网关并向云网关验证,以获取配置(例如,策略数据集合)、实时的客户端软件升级、以及其它信息。JWT还可以包含特定于区域的连接信息。通常,在这种实施例中,使用令牌来唯一地识别云网关,并且这种网关整个地保存目的地配置(即,策略数据集合,连同它们的关联的安全策略)。
图7以附加的细节描绘了WebSocket的连接建立和使用的流程图。在该示例情形中,云应用710是数据库应用,其期望与数据库(内部资源)710入站地通信。云网关716通过因特网与客户端714进行通信,如上面提到的那样,客户端714表示先前描述的内部网关。在云侧,可以存在一个或多个管理应用实例(未示出),这些实例都连接到云应用710。通常,针对每个区域存在一个云网关716(在Bluemix 中)。在步骤(1),云网关建立用于侦听从应用发起的(对于数据库的)访问请求的服务器侦听器线程。在步骤(2),云应用尝试建立与数据库的连接。在步骤(3),云网关生成“处于连接”事件,其提供充足的信息(例如,服务名称)以实现对端点状态(位置和安全要求) 的查找。在步骤(4),网关在WebSocket隧道722上对“处于连接事件”进行回应,WebSocket隧道722优选地先前已经在客户端与网关之间建立。可以响应于由网关接收到(来自云应用的)连接请求而“按需”建立隧道,但是通常会提前建立隧道。在步骤(5),客户端接收在HTTP连接请求中的端点信息,并建立与数据库(端点)的新连接。在步骤(6),数据库进行响应,并且在应用与数据库之间的双向数据流被使能以完成进程。
如图7所描绘的那样,优选地,TCP终止于云网关处,并然后在客户端处被重新建立。
如图7所示,公共云虚拟安全网关正在唯一的本地IP地址/TCP 端口对组合上进行侦听,该组合表示在符合条件的目标的列表中配置的特定目标应用或数据库。要注意的是,公共云安全网关实例可以在这些唯一的本地IP地址/TCP端口对组合(针对每个内部应用或数据库有一个)中的多个上进行侦听。公共云虚拟网关使用本地IP地址 /TCP端口对组合作为输入,来用策略规则动作定位策略规则条件,策略规则动作解析到针对目标内部应用或数据库的“服务名称”或URI。
在任何应用数据在公共云安全网关与内部安全网关之间流动之前,使用WebSocket协议的公共云安全网关优选地通过发送 WebSocket“升级”请求来执行策略规则动作,WebSocket“升级”请求包含与符合条件的目标的列表中的内部目标应用相对应的服务名称或URI。因为WebSocket协议是基于HTTPS的,因此内部安全网关可以处理端口443上的WebSocket“升级”请求,以及其它非相关的HTTPS业务。当接收到升级请求时,内部安全网关从符合条件的目标列表中定位所期望的内部目标应用,并按照指定的安全会话要求代理与被指名的应用之间的连接。如先前所描述的那样,WebSocket “升级”请求本身优选地不被转发给目标应用,这是因为其仅仅在公共云与内部安全网关之间被用作传递目标应用信息的方法。此时,已经实现从公共云应用到目标应用的代理连接,并且通过这些代理连接来发送本地应用流。然而,因为这些并不是HTTPS请求,因此内部网关优选地绕开其用于这种建立的连接的HTTP逻辑。
使用上面描述的方法,使用本地应用(非HTTP)协议的公共云应用能够访问内部应用和数据,而无需在内部防火墙定义附加的IP 地址和端口。
可以存在被供应作为网关服务的多个云网关。在一个实施例中,针对每个区域可以存在多个云网关(对于基于Bluemix的配置)。
上面描述的技术通常用于从内部客户端侧网关和云网关在先前建立的WebSocket(隧道)上的入站流。在替换方案中,可以实施区域感知的客户端隧道建立,客户端通过该区域感知的客户端隧道来建立到网关的隧道。在该替换方案中,客户端是无状态的,而JWT包含初始HTTPS GET请求应当去往的区域特定的URL阵列,以获知连接到哪个网关节点。例如,在Bluemix中,嵌入在JWT中的URL 指向该区域的网关节点的子集。在该示例中,初始HTTPGET请求允许云基础架构确定哪个节点将提供最佳服务以提供有效的WebSocket 隧道负载均衡。客户端尝试连接到每个URL,直到成功的连接被建立为止。因为JWT指向可用节点的子集,因此第一请求通常确定应当与其建立WebSocket连接的实际网关节点。
一旦建立了WebSocket连接隧道,数据流就可以在任何方向上流动。
可以增大策略数据集合以包括附加的信息,诸如连接限制数据、验证和访问控制信息等,在该情况中,在WebSocket上发出HTTP 连接请求之前,(网关处的)策略规则匹配可以考虑这样的信息。可替换地,这样的附加信息可以与连接请求一起被传递,并且在内部被执行。
本公开的技术提供了许多优点。本公开的技术提供了用于安全地允许来自公共云的非HTTP业务访问内部资源而无需开放防火墙上的除标准http端口80和443(或任何其它被分配的HTTP或HTTPS端口)以外的附加端口的方法。该方法是由虚拟安全网关实现的,该安全虚拟网关是在公共云中被实例化的,并且与企业位置处的内部安全网关协作地工作。在公共云安全网关与内部安全网关之间,利用 WebSocket协议来使信息经由新的WebSocket子协议注册流动,所述新的WebSocket子协议注册使得最初来自公共云应用的业务能够被路由到正确的内部应用。使用这种方法,在公共云中写入的应用使用其本地连接协议以无缝且安全的方式访问内部应用或数据。经由诸如传输层安全(TLS)之类的标准的方式,利用一系列代理连接确保从这种应用的连接的安全。如已经描述的那样,这种代理通信所涉及的节点是:(1)公共云应用,其连接到(2)公共云中的虚拟安全网关,其连接到(3)内部安全网关,其连接到(4)目标内部应用或数据库。内部安全网关使用一个或多个本地IP地址来仅仅使得公知端口443 开放。在内部网关上,符合条件的目标应用或数据库的列表被配置具有做出与内部应用/数据库的安全连接所需要的位置信息(主机名或IP 地址、TCP端口)以及安全信息(例如TLS密码套件、凭证)。
在不受限制的情况下,可以在已经描述的云部署平台系统或装置 (图4或图5)内,或者与这些平台系统或装置相关联地,或者使用任何其它类型的部署系统、产品、设备、程序或过程,来实施本主题。利用其可以实施安全保证服务的代表性的云应用平台包括但不限于Bluemix。对这种商用系统的引用不旨在是限制性的,因为本公开中的安全保证服务可以与任何云基础结构进行交互操作。
本申请的技术可以被实施为管理方案、服务、产品、装置、设备、进程、程序、执行线程等。通常,这些技术被实施在软件中,作为在硬件处理元件中执行的一个或多个计算机程序,该计算机程序与存储在诸如问题数据库之类的一个或多个数据源中的数据相关联。所描述的处理步骤中的一些或全部可以是自动的,并且自主地与其它系统关联地操作。自动可以是完全的或部分的,而操作(全部或部分地)可以是同步或异步的、基于需要的或者其它方式的。
上面描述的本公开的安全网关服务可以由对用于私有云、公共云或混合云的基础架构进行操作的云服务提供者来实施。这种安全网关服务以已知的方式部署和管理安全基础架构以支持功能。
如所描述的那样,本文中的方法可以完全或部分手动地或者以自动的方式来实施。
虽然已经描述了优选的操作环境和使用情况(云部署装置或平台环境),但是可以在期望在其中部署应用或其他服务同时执行所描述的安全约束的任何其它操作环境中使用本文中的技术。
如已经描述的那样,上面描述的功能可以被实施为独立的方法,例如由一个或多个硬件处理器执行的一个或多个基于软件的功能,或者其可以用作被管理的服务(包括经由SOAP/SML接口用作网络服务)。本申请中所描述的特定硬件和软件实施细节仅仅用于说明的目的,并不意味着限制所描述主题的范围。
更通常地,所公开主题的上下文内的计算设备的每一个都是包括硬件和软件的数据处理系统(如图2所示),并且这些实体通过诸如因特网、内联网、外联网、专用网络或任何其它通信介质或链路之类的网络彼此进行通信。数据处理系统上的应用提供对网络以及其它已知服务和协议的本地支持,包括但不限于对HTTP、FTP、SMTP、 SOAP、SML、WSDL、UDDL和WSFL等的支持。关于SOAP、XML、 WSDL、UDDI和WSFL的信息可以从万维网联盟(World WideWeb Consortium)(W3C)中获得,万维网联盟负责开发并维护这些标准;关于HTTP和XML的进一步信息可以从因特网工程任务组(IETF) 中获得。
除了基于云的环境之外,本申请中描述的技术可以在各种服务器侧体系架构中实施或者结合各种服务器侧体架构实施,所述服务器侧体系架构包括简单的n层体系架构、网站门户、联合系统等。
更通常地,本申请中所描述的主题可以采用完全硬件实施例、完全软件实施例、或者包含硬件元件和软件元件两者的实施例的形式。在优选实施例中,安全保证服务(或其中的任何组件)在软件中被实施,该软件包括但不限于固件、常驻软件、微代码等。此外,下载和删除接口和功能可以采用计算机程序产品的形式,该计算机程序产品可以从提供程序代码以供计算机或任何指令执行系统使用或与其结合使用的计算机可用介质或计算机可读介质访问。为了本描述的目的,计算机可用介质或计算机可读介质可以是可以包含或存储以供指令执行系统、装置或设备使用或与其结合使用的程序的任何装置。介质可以是电子、磁性、光学、电磁、红外或半导体系统(或装置或设备)。计算机可读介质的示例包括半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘的当前示例包括紧凑盘-只读存储器(CD-ROM)、紧凑盘-读/写(CD-R/W)和DVD。计算机可读介质是有形的、非暂时性的物品。
在代表性实施例中,这些技术在专用计算平台,优选为由一个或多个处理器执行的软件中实施。软件被维持在与一个或多个处理器相关联的一个或多个数据装置或存储器中,并且软件可以被实施为一个或多个计算机程序。共同地,这种专用的硬件和软件包括上面描述的功能。
在上面描述的优选实施例中,本文中提供的功能被实施为现有的云计算部署管理方案的附属物或延伸。
虽然所描述的实施例引用位于公共云中的云网关,并且同时这将是常用的使用情况,但是可以用部署在其它类型的基础架构(诸如私有云、共同体云或起源)中的特定网关来实施这些技术。因此,“云网关”的概念应当被解释为涵盖这些布置中的任何一个。
此外,虽然已经在上面描述了一般的使用情况(云应用从内部资源拉取数据),但是应当理解的是,可能存在以相对的方向实施该方法的情况(例如内部资源从云应用拉取数据)。可以在这样的情形中使用本公开中的双网关、基于套接字的通信信道技术。更通常地,可以实施本体系架构和所描述的方法,而不管应用流的方向。
虽然上面描述了由本发明的某些实施例所执行的操作的特定顺序,但是应当理解的是,这种顺序是示例性的,这是因为替换的实施例可以以不同顺序执行这些操作、组合某些操作、重叠某些操作等等。在说明书中对某些实施例的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可能未必包括所述特定特征、结构或特性。
最后,虽然已经单独地描述了系统的给定组件,但是本领域普通技术人员将理解的是,这些功能中的一些可以在给定的指令、程序序列、代码部分等中被组合或共享。
本文中的技术提供对技术或技术领域(即,管理云部署的计算实体)的改进,以及对应用部署机制本身的运行的改进(即,通过延伸已经描述的常规功能)。
在描述了我们的发明之后,现在我们请求保护的内容如下。

Claims (10)

1.一种使得在云中部署的应用能够访问内部资源的方法,其中,所述应用通过本地的、基于非HTTP的协议来正常地访问所述内部资源,所述方法包括:
提供具有至少一个条件和相关联的动作的策略数据集合,其中,所述条件识别服务名称,而所述动作识别所述内部资源的位置以及建立与所述内部资源的安全连接所需要的安全要求;
响应于确定所述应用需要访问所述内部资源,从与所述应用相关联的云网关向内部网关发出连接请求,所述连接请求是通过在所述云网关与所述内部网关之间建立的基于套接字的通信信道发出的,所述连接请求是通过基于HTTP的协议提供的,包括所述策略数据集合以使得所述内部网关能够定位所述内部资源,并且能够根据所述安全要求建立与所述内部资源的代理连接,所述连接请求在所述内部网关处终止;以及
之后,通过所述本地的、基于非HTTP的协议从所述应用向所述内部资源传递应用数据;
其中,所述应用数据通过本地的、基于非HTTP的协议从所述应用通过从所述应用到所述云网关的代理连接传送到所述网关,然后通过所述基于套接字的通信信道从所述云网关传送到所述内部网关的,并且然后从所述内部网关传送到所述内部资源。
2.如权利要求1所述的方法,其中,所述连接请求是端口443上的HTTP WebSocket升级请求。
3.如权利要求2所述的方法,还包括:建立所述从所述应用到所述云网关的代理连接。
4.如权利要求1所述的方法,还包括:将第二内部网关与所述云网关关联,以及将所述基于套接字的通信信道用于所述云网关与所述第二内部网关之间的通信。
5.如权利要求1所述的方法,还包括:在所述确定之前或者响应于所述确定,建立所述基于套接字的通信信道。
6.一种使得在云中部署的应用能够访问内部资源的装置,包括:
处理器;
保存计算机程序指令的计算机存储器,所述计算机程序指令被所述处理器执行以使得部署在云中的应用能够访问内部资源,其中,所述应用通过本地的、基于非HTTP的协议来正常地访问所述内部资源,所述计算机程序指令包括:
提供具有至少一个条件和相关联的动作的策略数据集合的程序代码,其中,所述条件识别服务名称,而所述动作识别所述内部资源的位置以及建立与所述内部资源的安全连接所需要的安全要求;
响应于确定所述应用需要访问所述内部资源,从与所述应用相关联的云网关向内部网关发出连接请求的程序代码,所述连接请求是通过在所述云网关与所述内部网关之间建立的基于套接字的通信信道发出的,所述连接请求是通过基于HTTP的协议提供的,以及包括所述策略数据集合以使得所述内部网关能够定位所述内部资源,并能够根据所述安全要求建立与所述内部资源的代理连接,所述连接请求在所述内部网关处终止;以及
通过所述本地的、基于非HTTP的协议从所述应用向所述内部资源传递应用数据的程序代码;
其中,所述应用数据通过本地的、基于非HTTP的协议从所述应用通过从所述应用到所述云网关的代理连接传送到所述网关,然后通过所述基于套接字的通信信道从所述云网关传送到所述内部网关的,并且然后从所述内部网关传送到所述内部资源。
7.如权利要求6所述的装置,其中,所述连接请求是端口443上的HTTP WebSocket升级请求。
8.如权利要求6所述的装置,其中,所述程序代码指令还包括建立所述从所述应用到所述云网关的代理连接的程序代码。
9.如权利要求6所述的装置,其中,所述计算机程序指令还包括:用于将第二内部网关与所述云网关关联的程序代码,其中所述基于套接字的通信信道用于所述云网关与所述第二内部网关之间的通信。
10.如权利要求6所述的装置,其中,所述计算机程序指令还包括:用于在所述确定之前或者响应于所述确定,建立所述基于套接字的通信信道的程序代码。
CN201610085022.1A 2015-02-16 2016-02-15 使得在云中部署的应用能够访问内部资源的方法和装置 Active CN105897688B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/623,075 2015-02-16
US14/623,075 US10038721B2 (en) 2015-02-16 2015-02-16 Enabling an on-premises resource to be exposed to a public cloud application securely and seamlessly

Publications (2)

Publication Number Publication Date
CN105897688A CN105897688A (zh) 2016-08-24
CN105897688B true CN105897688B (zh) 2019-07-23

Family

ID=55236284

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610085022.1A Active CN105897688B (zh) 2015-02-16 2016-02-15 使得在云中部署的应用能够访问内部资源的方法和装置

Country Status (3)

Country Link
US (2) US10038721B2 (zh)
EP (1) EP3056993A1 (zh)
CN (1) CN105897688B (zh)

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11677577B2 (en) 2004-03-16 2023-06-13 Icontrol Networks, Inc. Premises system management using status signal
US9531593B2 (en) 2007-06-12 2016-12-27 Icontrol Networks, Inc. Takeover processes in security network integrated with premise security system
US11489812B2 (en) 2004-03-16 2022-11-01 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US10522026B2 (en) 2008-08-11 2019-12-31 Icontrol Networks, Inc. Automation system user interface with three-dimensional display
US11244545B2 (en) 2004-03-16 2022-02-08 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US11316958B2 (en) 2008-08-11 2022-04-26 Icontrol Networks, Inc. Virtual device systems and methods
US9141276B2 (en) 2005-03-16 2015-09-22 Icontrol Networks, Inc. Integrated interface for mobile device
US10156959B2 (en) 2005-03-16 2018-12-18 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US20160065414A1 (en) 2013-06-27 2016-03-03 Ken Sundermeyer Control system user interface
US11916870B2 (en) 2004-03-16 2024-02-27 Icontrol Networks, Inc. Gateway registry methods and systems
US11201755B2 (en) 2004-03-16 2021-12-14 Icontrol Networks, Inc. Premises system management using status signal
US11159484B2 (en) 2004-03-16 2021-10-26 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US10339791B2 (en) 2007-06-12 2019-07-02 Icontrol Networks, Inc. Security network integrated with premise security system
US10142392B2 (en) 2007-01-24 2018-11-27 Icontrol Networks, Inc. Methods and systems for improved system performance
US10237237B2 (en) 2007-06-12 2019-03-19 Icontrol Networks, Inc. Communication protocols in integrated systems
US11277465B2 (en) 2004-03-16 2022-03-15 Icontrol Networks, Inc. Generating risk profile using data of home monitoring and security system
US10721087B2 (en) 2005-03-16 2020-07-21 Icontrol Networks, Inc. Method for networked touchscreen with integrated interfaces
US9729342B2 (en) 2010-12-20 2017-08-08 Icontrol Networks, Inc. Defining and implementing sensor triggered response rules
US7711796B2 (en) 2006-06-12 2010-05-04 Icontrol Networks, Inc. Gateway registry methods and systems
US20090077623A1 (en) 2005-03-16 2009-03-19 Marc Baum Security Network Integrating Security System and Network Devices
US11343380B2 (en) 2004-03-16 2022-05-24 Icontrol Networks, Inc. Premises system automation
US20050216302A1 (en) 2004-03-16 2005-09-29 Icontrol Networks, Inc. Business method for premises management
US11582065B2 (en) 2007-06-12 2023-02-14 Icontrol Networks, Inc. Systems and methods for device communication
US20170118037A1 (en) 2008-08-11 2017-04-27 Icontrol Networks, Inc. Integrated cloud system for premises automation
US11811845B2 (en) 2004-03-16 2023-11-07 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US11368429B2 (en) 2004-03-16 2022-06-21 Icontrol Networks, Inc. Premises management configuration and control
US11700142B2 (en) 2005-03-16 2023-07-11 Icontrol Networks, Inc. Security network integrating security system and network devices
US20170180198A1 (en) 2008-08-11 2017-06-22 Marc Baum Forming a security network including integrated security system components
US11496568B2 (en) 2005-03-16 2022-11-08 Icontrol Networks, Inc. Security system with networked touchscreen
US10999254B2 (en) 2005-03-16 2021-05-04 Icontrol Networks, Inc. System for data routing in networks
US20120324566A1 (en) 2005-03-16 2012-12-20 Marc Baum Takeover Processes In Security Network Integrated With Premise Security System
US11615697B2 (en) 2005-03-16 2023-03-28 Icontrol Networks, Inc. Premise management systems and methods
US20110128378A1 (en) 2005-03-16 2011-06-02 Reza Raji Modular Electronic Display Platform
US10079839B1 (en) 2007-06-12 2018-09-18 Icontrol Networks, Inc. Activation of gateway device
US11706279B2 (en) 2007-01-24 2023-07-18 Icontrol Networks, Inc. Methods and systems for data communication
US7633385B2 (en) 2007-02-28 2009-12-15 Ucontrol, Inc. Method and system for communicating with and controlling an alarm system from a remote server
US8451986B2 (en) 2007-04-23 2013-05-28 Icontrol Networks, Inc. Method and system for automatically providing alternate network access for telecommunications
US11646907B2 (en) 2007-06-12 2023-05-09 Icontrol Networks, Inc. Communication protocols in integrated systems
US10523689B2 (en) 2007-06-12 2019-12-31 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US11089122B2 (en) 2007-06-12 2021-08-10 Icontrol Networks, Inc. Controlling data routing among networks
US11212192B2 (en) 2007-06-12 2021-12-28 Icontrol Networks, Inc. Communication protocols in integrated systems
US11601810B2 (en) 2007-06-12 2023-03-07 Icontrol Networks, Inc. Communication protocols in integrated systems
US11423756B2 (en) 2007-06-12 2022-08-23 Icontrol Networks, Inc. Communication protocols in integrated systems
US12003387B2 (en) 2012-06-27 2024-06-04 Comcast Cable Communications, Llc Control system user interface
US11237714B2 (en) 2007-06-12 2022-02-01 Control Networks, Inc. Control system user interface
US11316753B2 (en) 2007-06-12 2022-04-26 Icontrol Networks, Inc. Communication protocols in integrated systems
US11218878B2 (en) 2007-06-12 2022-01-04 Icontrol Networks, Inc. Communication protocols in integrated systems
US10223903B2 (en) 2010-09-28 2019-03-05 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
US11831462B2 (en) 2007-08-24 2023-11-28 Icontrol Networks, Inc. Controlling data routing in premises management systems
US11916928B2 (en) 2008-01-24 2024-02-27 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US20170185278A1 (en) 2008-08-11 2017-06-29 Icontrol Networks, Inc. Automation system user interface
US11792036B2 (en) 2008-08-11 2023-10-17 Icontrol Networks, Inc. Mobile premises automation platform
US11258625B2 (en) 2008-08-11 2022-02-22 Icontrol Networks, Inc. Mobile premises automation platform
US11729255B2 (en) 2008-08-11 2023-08-15 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US10530839B2 (en) * 2008-08-11 2020-01-07 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US11758026B2 (en) 2008-08-11 2023-09-12 Icontrol Networks, Inc. Virtual device systems and methods
US8638211B2 (en) 2009-04-30 2014-01-28 Icontrol Networks, Inc. Configurable controller and interface for home SMA, phone and multimedia
US8836467B1 (en) 2010-09-28 2014-09-16 Icontrol Networks, Inc. Method, system and apparatus for automated reporting of account and sensor zone information to a central station
US11750414B2 (en) 2010-12-16 2023-09-05 Icontrol Networks, Inc. Bidirectional security sensor communication for a premises security system
US9147337B2 (en) 2010-12-17 2015-09-29 Icontrol Networks, Inc. Method and system for logging security event data
US9936001B2 (en) * 2014-02-14 2018-04-03 Red Hat, Inc. Geographic placement of application components by a multi-tenant platform-as-a-service (PaaS) system
US11405463B2 (en) 2014-03-03 2022-08-02 Icontrol Networks, Inc. Media content management
US11146637B2 (en) 2014-03-03 2021-10-12 Icontrol Networks, Inc. Media content management
US10437288B2 (en) 2014-10-06 2019-10-08 Fasetto, Inc. Portable storage device with modular power and housing system
CN112737895A (zh) * 2015-03-11 2021-04-30 法斯埃托股份有限公司 用于web api通信的系统和方法
US10198252B2 (en) 2015-07-02 2019-02-05 Microsoft Technology Licensing, Llc Transformation chain application splitting
US10261985B2 (en) 2015-07-02 2019-04-16 Microsoft Technology Licensing, Llc Output rendering in dynamic redefining application
US10198405B2 (en) 2015-07-08 2019-02-05 Microsoft Technology Licensing, Llc Rule-based layout of changing information
US9762616B2 (en) * 2015-08-08 2017-09-12 International Business Machines Corporation Application-based security rights in cloud environments
US10277582B2 (en) * 2015-08-27 2019-04-30 Microsoft Technology Licensing, Llc Application service architecture
US10523741B2 (en) * 2015-08-28 2019-12-31 SoftNAS, LLC System and method for avoiding proxy connection latency
US9917912B2 (en) * 2015-10-05 2018-03-13 Vmware, Inc. Efficient communication within hybrid cloud system
US10348808B2 (en) * 2015-10-30 2019-07-09 International Business Machines Corporation Hybrid cloud applications
US10200387B2 (en) * 2015-11-30 2019-02-05 International Business Machines Corporation User state tracking and anomaly detection in software-as-a-service environments
US10387198B2 (en) * 2016-08-11 2019-08-20 Rescale, Inc. Integrated multi-provider compute platform
US10193762B2 (en) 2016-08-11 2019-01-29 Rescale, Inc. Dynamic optimization of simulation resources
US10075373B2 (en) * 2016-08-26 2018-09-11 Viasat, Inc. Methods and apparatus for providing traffic forwarder via dynamic overlay network
US11900455B1 (en) 2016-09-18 2024-02-13 Mark Lawrence Method and apparatus for decentralized VC funds
US11122112B1 (en) * 2016-09-23 2021-09-14 Jpmorgan Chase Bank, N.A. Systems and methods for distributed micro services using private and external networks
US10623450B2 (en) * 2016-12-01 2020-04-14 Accenture Global Solutions Limited Access to data on a remote device
CN110036385B (zh) 2016-12-02 2023-08-08 开利公司 混合模式云内部部署(on-premise)安全通信
US10826905B2 (en) * 2016-12-05 2020-11-03 Citrix Systems, Inc. Secure access to on-premises web services from multi-tenant cloud services
US10356048B2 (en) * 2017-03-17 2019-07-16 Verizon Patent And Licensing Inc. Container deployment for a network
CN107070717B (zh) * 2017-04-17 2020-03-10 成都精灵云科技有限公司 一种跨主机的Docker容器通讯的方法
CN107276795B (zh) * 2017-06-06 2020-06-02 北京小米移动软件有限公司 基于容器的信息处理方法和装置、以及服务器和终端
US10521612B2 (en) 2017-06-21 2019-12-31 Ca, Inc. Hybrid on-premises/software-as-service applications
US10609152B2 (en) * 2017-07-11 2020-03-31 Cisco Technology, Inc. Creation of remote direct access path via internet to firewalled device using multi-site session forwarding
US10614021B1 (en) * 2017-07-28 2020-04-07 Worldpay, Llc Systems and methods for cloud based PIN pad device gateway
US10812463B2 (en) * 2017-12-08 2020-10-20 International Business Machines Corporation Secure access to an enterprise computing environment
US10713153B1 (en) 2018-01-29 2020-07-14 Intuit Inc. Method and system for testing an extended pattern using an automatic pattern testing engine
US10680895B1 (en) * 2018-01-29 2020-06-09 Intuit Inc. Method and system for automatic patterns generation and testing
US11012500B2 (en) 2018-07-27 2021-05-18 Vmware, Inc. Secure multi-directional data pipeline for data distribution systems
US11190614B2 (en) 2018-07-27 2021-11-30 Vmware, Inc. Bidirectional command protocol via a unidirectional communication connection for reliable distribution of tasks
US10887312B2 (en) 2018-09-26 2021-01-05 Hewlett Packard Enterprise Development Lp Secure communication between a service hosted on a private cloud and a service hosted on a public cloud
CN110266674B (zh) * 2019-06-10 2022-08-16 平安科技(深圳)有限公司 一种内网访问方法及相关装置
US10992735B2 (en) 2019-07-22 2021-04-27 Bank Of America Corporation System for generating event-based linkages between distributed resources for tailored data access
US11140165B2 (en) 2019-07-22 2021-10-05 Bank Of America Corporation System for selective mapping of distributed resources across network edge framework for authorized user access
FR3099256B1 (fr) 2019-07-26 2021-08-06 Amadeus Sas Passerelle cloud
CN110661858A (zh) * 2019-09-12 2020-01-07 南京博联智能科技有限公司 基于websocket的内网穿透方法及系统
US11347572B2 (en) 2019-09-26 2022-05-31 Vmware, Inc. Methods and apparatus for data pipelines between cloud computing platforms
CN110764877B (zh) * 2019-11-07 2023-11-17 成都国腾实业集团有限公司 一种基于云计算的虚拟实验室系统及方法
CN111371595A (zh) * 2020-02-25 2020-07-03 深信服科技股份有限公司 一种网络安全部署方法、装置、设备及可读存储介质
US11366709B2 (en) * 2020-06-10 2022-06-21 Microsoft Technology Licensing, Llc Distributed application execution for cloud computing
US11522855B2 (en) * 2020-07-23 2022-12-06 Oracle International Corporation Tunnel connections established using secure protocol
US11803849B1 (en) 2020-07-30 2023-10-31 Mark Lawrence Method and apparatus for decentralized micro businesses
US11836688B1 (en) 2020-08-04 2023-12-05 Mark Lawrence Method and apparatus to tokenize natural resources
CN112235266B (zh) * 2020-09-29 2024-04-12 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质
CN112235400B (zh) * 2020-10-14 2024-02-02 腾讯科技(深圳)有限公司 通信方法、通信系统、装置、服务器及存储介质
CN114363092B (zh) * 2022-03-17 2022-05-17 万商云集(成都)科技股份有限公司 一种用于云容器引擎微服务部署的网关及方法
CN114500120B (zh) * 2022-04-15 2022-09-30 阿里巴巴(中国)有限公司 一种公共云的扩展方法、设备、系统及存储介质
US11929986B1 (en) * 2022-10-31 2024-03-12 Snowflake Inc. Two-way data sharing between private and public clouds

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104205757A (zh) * 2012-04-24 2014-12-10 思科技术公司 用于混合云的分布式虚拟交换机架构

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8903884B2 (en) 2011-02-21 2014-12-02 Microsoft Corporation Multi-tenant services gateway
US8639754B2 (en) * 2011-09-30 2014-01-28 Advanced Messaging Technologies, Inc. System and method for providing a protocol for message data
EP3576372B1 (en) 2012-02-21 2023-09-27 Zebra Technologies Corporation Methods, apparatuses, and computer program products for implementing cloud connected printers and an adaptive printer-based application framework
US9990426B2 (en) 2012-08-31 2018-06-05 Salesforce.Com, Inc. Systems and methods for content management in an on-demand environment
US9231918B2 (en) * 2013-02-19 2016-01-05 Cisco Technology, Inc. Use of virtual network interfaces and a websocket based transport mechanism to realize secure node-to-site and site-to-site virtual private network solutions
US9037735B1 (en) * 2013-03-15 2015-05-19 Kaazing Corporation Establishing websocket protocol extensions
CN105706455B (zh) * 2013-11-04 2020-02-07 Lg电子株式会社 电子设备和用于控制电子设备的方法
US20150163179A1 (en) * 2013-12-09 2015-06-11 Hewlett-Packard Development Company, L.P. Execution of a workflow that involves applications or services of data centers
CN106464721B (zh) * 2014-05-12 2019-09-24 微软技术许可有限责任公司 将公共云与专用网络资源连接的方法
TWI522960B (zh) * 2014-05-26 2016-02-21 三竹資訊股份有限公司 具強制性回覆之行動問卷系統與方法
US9781189B2 (en) * 2014-07-22 2017-10-03 Sap Se Managed device-to-device communication in business computing systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104205757A (zh) * 2012-04-24 2014-12-10 思科技术公司 用于混合云的分布式虚拟交换机架构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"How to connect to a remote database (outside Bluemix) via JNDI using a custom server.xml";Irina-pms;《developer.ibm.com》;20141112;1-3

Also Published As

Publication number Publication date
EP3056993A1 (en) 2016-08-17
CN105897688A (zh) 2016-08-24
US20160241596A1 (en) 2016-08-18
US10038721B2 (en) 2018-07-31
US20160241633A1 (en) 2016-08-18
US10044756B2 (en) 2018-08-07

Similar Documents

Publication Publication Date Title
CN105897688B (zh) 使得在云中部署的应用能够访问内部资源的方法和装置
CN104145261B (zh) 使用发布订阅模型的身份提供者发现服务
US11050848B2 (en) Automatically and remotely on-board services delivery platform computing nodes
CN103718164B (zh) 虚拟计算机和服务
CN105684357B (zh) 虚拟机中地址的管理
CN109559258B (zh) 教育资源公共服务系统
CN105024865B (zh) 云联合即服务
CN105359482B (zh) 用于作为服务基础设施的平台中透明注入策略的系统和方法
CN105378659B (zh) 使客户端设备能够访问远程桌面的方法和系统
CN103516777B (zh) 用于在云计算机环境中进行供应的方法和系统
CN107085524A (zh) 用于云环境中的保证的日志管理的方法和装置
CN109803018A (zh) 一种基于Mesos和YARN结合的DCOS云管理平台
US20180198845A1 (en) Local Microservice Development for Remote Deployment
CN106888143A (zh) 混合云环境中的动态定义的虚拟私有网络隧道
CN108062248A (zh) 异构虚拟化平台的资源管理方法、系统、设备及存储介质
CN107426034A (zh) 一种基于云平台的大规模容器调度系统及方法
US11736585B2 (en) Generic proxy endpoints using protocol tunnels including life cycle management and examples for distributed cloud native services and applications
CN110463163A (zh) 用于提供对会话服务器的按需唤醒访问的方法及系统
US20200259710A1 (en) System and Method for Onboarding IOT Devices
CN109729040A (zh) 协议的选择的方法、设备以及计算机可读介质
Demchenko et al. On-demand provisioning of cloud and grid based infrastructure services for collaborative projects and groups
Hausenblas Container Networking
Calcote The enterprise path to service mesh architectures
AU2013266420B2 (en) Pluggable allocation in a cloud computing system
Tamang et al. A model to improve Quality of Service (QoS) in cloud based Virtual lab framework

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant