编排代理服务
背景技术:
1.代理服务或
代理服务器是在诸如用户代理的客户端与服务器之间提供媒介的服务器应用或设备,客户端从提供资源的服务器寻资源。客户端和服务器可以通过代理服务器引导计算机网络流量,而不是直接在客户端与服务器之间引导计算机网络流量。例如,客户端经由诸如网络浏览器之类的用户代理商生成请求。如果采用代理服务器,则请求被提供给代理服务器,并且代理服务器代表客户端向服务器提出请求。代理服务器还收集来自服务器的响应,并将响应转发给客户端。在一些
示例中,代理服务器还可以改变在客户端与服务器之间传递的数据并过滤流量。代理服务器可以被分类为正向代理或反向代理。正向代理向客户端或客户端组(诸如网关或隧道)提供服务。正向代理可以存储和转发互联网服务以减少和控制网络流量,并且可以用于更改或隐藏互联网协议(ip)地址。反向代理可以隐藏服务器的身份并用于负载平衡、认证、解密、和缓存。
技术实现要素:
2.本发明内容被提供来以简化形式介绍概念的选择,这些概念将在下面的具体实施方式中被进一步描述。本发明内容不意图标识所要求保护的主题的关键特征或基本特征,也不意图用于限制所要求保护的主题的范围。
3.示例代理服务器被公开。代理服务器包括
多个服务,该多个服务用于处理接收到的网络
消息。确定适用于接收到的网络消息的代理服务。该适用的代理服务选自多个代理服务。网络消息被路由至适用的代理服务进行处理。在一个示例中,代理服务器包括编排器和多个服务。编排器将网络消息路由到适用的服务。在一个示例中,代理服务器可以被包括在网络环境中以在客户端设备与内容服务器之间路由通信,并且该通信可以是网络流量的形式。例如,该消息可以是从客户端设备到内容服务器的http请求消息或从内容服务器到客户端设备的http响应消息。在一个示例中,代理服务器可以被包括作为安全服务的一部分,诸如云访问安全中介,并且可以被配置为正向代理或反向代理。
4.代理服务器可以被实现为多个模块或服务,其中每个服务可以在不影响其他服务的情况下被部署、维护、和扩展。此外,如果不是所有服务都适用于该消息,则该消息被路由至相关服务,诸如适用于该消息的服务,而不是通过所有服务。例如,该消息可以动态地跳过或避开该多个服务的集合中的服务。在一个示例中,多个代理服务中的代理服务彼此松散地耦合并且不被包括在该多个代理服务的单一集合中。例如,多个代理服务中的每个代理服务被包括在诸如容器的可单独扩展、可维护的模块中。多个代理服务中的代理服务可以相互独立地扩展、维护、和构建。
附图说明
5.附图被包括以提供对实施例的进一步理解,并且被并入和构成本公开的一部分。附图图示了实施例并且与描述一起用于解释实施例的原理。其他实施例和实施例的许多预期优点将容易被认识到,因为它们通过参考以下描述变得更好理解。图中的元素不一定按
相对于彼此的比例绘制。相同的参考标号指示对应的相似部分。
6.图1是图示可以在计算机网络中配置的计算设备的示例的框图。
7.图2是图示具有本公开的示例编排代理服务的示例计算机网络的示意图,该示例编排代理服务可以被配置在图1的示例计算设备上。
8.图3是图示图2的示例编排代理服务的示意图。
9.图4是图示图3的编排代理服务的示例方法的框图。
具体实施方式
10.在下面的具体实施方式中,对附图进行参考,这些附图形成了本具体实施方式的一部分,并且在附图中通过图示的方式示出了可以实施本发明的具体实施例。应当理解,在不脱离本发明的范围的情况下,可以利用其他实施例并且可以做出结构或逻辑改变。因此,以下描述不应被理解为限制性意义。应当理解,除非另外特别指出,本文描述的各种示例实施例的特征可以彼此部分地或全部地组合。
11.图1图示了示例性计算机系统,其可以在操作环境中被采用并且用于托管或运行包括在一个或多个计算机可读存储介质上的计算机应用,该计算机可读存储介质存储用于控制计算机系统(诸如计算设备)执行过程的计算机可执行指令。示例性计算机系统包括计算设备,诸如计算设备100。计算设备100可以采用若干形式中的一种或多种形式。这些形式包括平板电脑、个人计算机、工作站、服务器、手持设备、消费电子设备(诸如,视频游戏控制台或数字录像机)、或其他,并且可以是独立设备或被配置为计算机网络的一部分。
12.在基础硬件配置中,计算设备100通常包括处理器系统,该处理器系统具有一个或多个处理单元,即,处理器102和存储器104。举例而言,处理单元可以包括芯片上的两个或更多个处理核心或者两个或更多个处理器芯片。在一些示例中,计算设备还可以具有一个或多个附加处理或专用处理器(未示出),诸如用于图形处理器单元上的通用计算的图形处理器,以执行从处理器102卸载的处理功能。存储器104可以按层级布置并且可以包括一个或多个缓存级别。取决于计算设备的配置和类型,存储器104可以是易失性的(诸如,随机存取存储器(ram))、非易失性的(诸如,只读存储器(rom)、闪存等),或者这二者的一些组合。
13.计算设备100还可以具有附加的特征或功能。例如,计算设备100还可以包括附加存储。这样的存储可以是可移动的或不可移动的,并且可以包括磁盘或光盘、固态存储器、或闪速存储设备,诸如可移动存储108和不可移动存储110。计算机存储介质包括以任何适当的用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据的信息的方法或技术实现的易失性和非易失性、可移动和不可移动的介质。存储器104、可移动存储108、和不可移动存储110都是计算机存储介质的示例。计算机存储介质包括ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能光盘(dvd)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、通用串行总线(usb)闪存驱动、闪存卡或其他闪速存储设备、或可以用于存储所需信息并且可由计算设备100访问的任何其他存储介质。相应地,传播信号本身不作为存储介质。任何此类计算机存储介质可以是计算设备100的一部分。
14.计算设备100通常包括一个或多个输入和/或输出连接,诸如usb连接、显示端口、专有连接、和连接到各种设备以向计算设备提供输入和输出的其他连接。输入设备112可以包括诸如键盘、定点设备(例如,鼠标、触控板)、触控笔、语音输入设备、触摸输入设备(例
如,触摸屏)或其他。输出设备111可以包括诸如显示器、扬声器、打印机等设备。
15.计算设备100通常包括允许计算设备100与其他计算机/应用115通信的一个或多个通信连接114。示例通信连接可以包括以太网接口、无线接口、总线接口、存储区域网络接口、以及专有接口。通信连接可以用于将计算设备100耦合到计算机网络,计算机网络可以根据诸如拓扑、连接方法、和规模等各种特性进行分类。网络是计算设备和可能的其他设备的集合,这些设备通过促进通信并允许在互连设备之间共享资源和信息的通信信道互连。计算机网络的示例包括局域网、广域网、互联网、或其他网络。
16.在一个示例中,计算设备100中的一个或多个可以被配置为网络中的用户的客户端设备。客户端设备可以被配置为与计算环境中的网络上的服务器建立远程连接。客户端设备可以被配置为运行应用或软件,诸如操作系统、网络浏览器、云访问代理商、终端仿真器、或实用程序。在一个示例中,客户端设备还可以被配置为进一步包括服务器应用。
17.在一个示例中,计算设备100中的一个或多个可以被配置为网络中的服务器,诸如服务器设备。服务器可以被配置为与计算网络或计算环境中的客户端设备建立远程连接。服务器可以被配置为运行应用或软件,诸如操作系统。
18.在一个示例中,计算设备100中的一个或多个可以被配置为数据中心中的服务器以提供诸如云计算服务的分布式计算服务。数据中心可以提供池化资源,客户或租户可以根据需要在池化资源上动态配置和扩展应用,而无需添加服务器或附加网络。数据中心可以被配置为与云客户使用的本地计算设备进行通信,其包括个人计算机、移动设备、嵌入式系统、或其他计算设备。在数据中心内,计算设备100可以被配置为服务器,可以作为独立设备,也可以作为在一个或多个其他服务器设备的机架中的单独叶片。每个服务器上的一个或多个主机处理器(诸如处理器102)以及包括存储器104和存储110的其他组件,运行可以支持多个虚拟机的主机操作系统。租户最初可以使用服务器上的一个虚拟机来运行应用。当需求增加时,数据中心可以激活服务器或其他服务器上的附加虚拟机,而当需求下降时,数据中心可以停用虚拟机。
19.数据中心可以是为单个企业用户提供服务的本地部署的私有系统,也可以是向多个可能不相关的客户和租户提供服务的公共(或半公共)可访问分布式系统,或者可以是两者的组合。此外,数据中心可以被包含在单个地理位置或者可以分布到全球多个位置并提供冗余和灾难恢复能力。例如,数据中心可以将服务器上的一个虚拟机指定为用于租户的应用的主要位置,并且可以在第一虚拟机或服务器发生故障的情况下激活相同服务器或另一服务器上的另一虚拟机作为辅助或备份。
20.云计算环境通常在一个或多个公认的模型中实现,以在一个或多个网络连接的数据中心中运行。私有云部署模型包括仅针对组织运营的基础设施,无论它是由内部管理还是由第三方管理,也无论它是托管在组织内部还是托管在一些远程外部位置。私有云的一个示例包括自营数据中心。公有云部署模型包括基础设施,该基础设置向一般公众或大部分公众(诸如产业集团)提供,并由提供云服务的组织运行。社区云由数个组织共享,并支持具有共同关注点(诸如管辖权、合规性、或安全性)的特定组织社区。部署模型通常包括类似的云架构,但可能包括解决具体考虑的具体功能,诸如共享云模型中的安全性。
21.云计算提供商通常作为服务模型提供服务,服务作为基础设施即服务、平台即服务和包括软件即服务在内的其他服务中的一个或多个提供。云计算提供商可以经由面向租
户或客户的订阅来提供服务。例如,软件即服务提供商将软件应用作为订阅服务提供,这些服务通常可以从网络浏览器或其他瘦客户端界面访问,并且客户不会在本地计算设备上加载该应用。基础设施即服务提供商为客户提供供应处理、存储、网络和其他基本计算资源的能力,客户能够在这些计算资源中部署和运行软件,这些软件可以包括操作系统和应用。客户通常不管理底层云基础设施,但通常保留对计算平台和平台上运行的应用的控制。平台即服务提供商为客户提供了将客户创建或获取的应用部署到云基础设施上的能力,这些应用使用提供商支持的编程语言、库、服务、和工具来创建。在一些示例中,客户不管理或控制包括网络、服务器、操作系统、或存储的底层云基础设施,但可以控制已部署的应用以及可能的用于应用托管环境的配置设置。在其他示例中,提供商可以提供基础设施和平台服务的组合,以允许客户管理或控制已部署的应用以及底层云基础设施。平台即服务提供商可以包括基础设施,诸如服务器、存储、和网络,以及中间件、开发工具、商业智能服务、数据库管理服务等,并且可以被配置为支持应用生命周期的功能,包括一个或多个的构建、测试、部署、管理、和更新。
22.图2图示了包括编排代理服务器202的示例计算机网络200,其中计算机网络200图示了用于编排代理服务器202的示例环境。计算机网络200包括包括耦合到代理服务器202的用户设备,诸如在客户端-服务器架构中的客户端设备204。计算机网络200还包括网络资源,诸如耦合到代理服务器202的内容服务器206,并且可操作地耦合到客户端设备204以与客户端设备204进行通信。例如,客户端设备204可以经由编排代理服务器202向内容服务器206传输请求,内容服务器206可以经由代理服务器向客户端设备204传输对请求的响应。内容服务器206可以包括可以由用户设备202经由计算机网络200访问的多种网络资源(诸如邮件服务器和网络服务器)中的至少一种。客户端设备202可以运行诸如客户端代理商的应用以访问内容服务器206上的资源。客户端代理商的示例包括网络浏览器、专用通信应用和移动应用。在一个示例中,服务器206被配置为源服务器,该源服务器被配置为监听和处理传入请求。在一些示例中,内容服务器206可以被配置为可以缓存来自源服务器的静态资源的边缘服务器。在一个示例中,编排代理服务器202被配置为正向代理服务器,在一个示例中,该正向代理服务器可以代表诸如多个客户端设备204的客户端设备204进行操作。例如,正向代理在客户端设备202前进行处理。在另一示例中,编排代理服务器202被配置为反向代理服务器,在一个示例中,该反向代理服务器可以代表诸如多个内容服务器206的内容服务器206进行操作。
23.在一个示例中,代理服务器202可以被并入安全服务中,诸如用于企业的安全服务。在一些示例中,安全服务可以部署在云环境中。安全服务可以被配置为诸如防火墙的正向代理,以保护客户端设备免受恶意站点的攻击。此外,或附加地,安全服务可以被配置为反向代理,以基于企业的策略对可用服务实施有条件的访问控制。例如,企业的用户在访问第三方云应用的订阅之前通过安全服务被引导。这种安全服务的示例可以在贸易名称微软云应用安全云访问应用控制或微软账户下获得,这二者均来自位于华盛顿州雷德蒙德的微软公司。
24.客户端设备204和内容服务器206可以通过编排代理服务器202被配置在通信或网络会话中。例如,会话是客户端设备204与内容服务器206之间的临时和交互式信息交换。客户端设备204和服务器206可以采用请求-响应协议,诸如超文本传输协议或http,其中客户
端设备204向内容服务器206提交http请求消息,并且可以提供诸如超文本标记语言的资源或html文件和其他内容的服务器206可以向客户端设备204返回响应消息。在http会话期间,客户端设备204通过建立到内容服务器206端口的连接(诸如传输控制协议)或tcp接来发起请求。监听该端口的http服务器等待来自客户端设备204的请求消息。在接收到请求后,内容服务器206可以向客户端设备204发送响应消息,该响应消息可以包括所请求的资源。
25.在连接被建立之后,客户端设备204可以诸如经由客户端代理商发送请求。请求可以包括文本指令。例如,请求的行可以包括方法,后跟随有诸如文档的路径和协议版本的参数。请求还可以在块中提供一个或多个报头,报头可以向服务器提供信息,该信息具有合适数据的类型的信息。可选数据块也可以作为请求消息体被包括在在请求中。http定义了一组请求方法,这些方法指示要对可能被包括在请求中的资源执行的所需操作。因此,http请求消息可以包括请求行、报头和请求消息体。内容服务器206可以处理请求并返回响应。与请求类似,响应是一组可能包括三个块的文本指令。状态行可以包括对使用的http版本的确认和状态请求。响应还可以包括报头或报头块,这些报头或报头块提供请求中数据发送有关的信息。此外,响应可以包括数据块,该数据块包括作为响应消息体发送到客户端设备204的数据。http定义了一组响应状态码,该响应状态码指示响应的状态,响应的状态可能被包括在响应中。因此,http响应消息可以包括状态行、报头、和响应消息体。
26.取决于请求和响应的数量和类型,http代理服务器可以被调用来处理相对大量的流量。为了效率,代理服务器传统上被开发和实现为具有许多模式和步骤的单个可执行文件。然而,代理服务器的这种实现使得代理服务器的维护和代理服务器作为微服务的部署变得困难。例如,改变周期耦合在一起,其中代理服务器的一个方面的微小改变相当于整个代理服务器的重建或重新部署。此外,代理服务器的扩展可以包括整个代理服务器的扩展,而不是需要更多资源的方面。解决单一代理服务器问题的一种方法包括将代理服务器分成链接在一起的代理服务的集合。服务可以单独维护和扩展。不幸的是,链接代理服务普遍存在会话效率低下的问题。通信在服务之间传递,而不管服务是否是通信中的应用。例如,会话的大部分(诸如请求体和响应体)在服务之间传递,而不管服务是否适用于会话的部分。
27.图3图示了示例编排代理服务器300,其可以在计算机网络200中被实现为编排代理服务器202。编排代理服务器300可以实现为多个模块或服务,其中每个服务可以在不影响其他服务的情况下被部署、维护、和扩展。此外,如果少于所有服务的服务适用于该消息,则以请求消息和响应消息形式的流量或消息被路由至相关服务,诸如,适用于该消息的服务,而不是通过所有服务。例如,该消息可以动态地跳过或避开该多个服务的集合中的服务。
28.示例编排代理服务器300包括编排器302和多个代理服务304,诸如,服务集合。编排代理服务器300被配置为接收消息,诸如用于诸如客户端设备204或内容服务器206的网络设备的http请求消息或http响应消息。编排服务器300将消息传递至编排器302,并且编排器可以确定多个服务304中的哪个服务子集适用于该消息。消息被传递至多个服务304的服务子集或适用的服务,并且消息在适用的服务处被处理,适用的服务少于多个服务304中的所有服务。然后消息被传递至网络设备。在一个示例中,多个服务可以包括两个服务。例如,一个服务可以处理请求消息,而另一服务可以处理响应消息。在编排代理服务器300处
接收到的消息被传递至编排器302,编排器302确定多个服务304的请求消息服务或响应消息服务是否是对该消息适用的服务。消息被传递至适用的服务,并且消息被传递至多个服务304中的少于所有的服务。在消息被适用的服务处理之后,消息被传递至网络设备。
29.在一个示例中,多个代理服务304中的代理服务彼此松散地耦合并且不包括在多个代理服务的单一集合中。例如,多个代理服务中的每个代理服务被包括在诸如容器的单独可扩展、可维护的模块中。多个代理服务304中的代理服务可以相互独立地扩展、维护和构建。
30.图示示例包括多个服务304中的请求报头服务312、请求体服务314、响应报头服务316、和响应体服务318。请求报头服务312适用于处理从客户端设备204接收并意在内容服务器206的http请求消息的报头。请求报头体314适用于处理从客户端设备204接收并意在内容服务器206的http请求消息的体部分。响应报头服务316适用于处理从内容服务器206接收并意在客户端设备204的http响应消息的报头。响应体服务318适用于处理从内容服务器206接收并意在客户端设备204的http响应消息的体(body)。在一个示例中,用于消息的适用服务,诸如用于请求消息的请求报头服务312和请求体服务314或用于响应消息的响应报头服务316和响应体服务318,可以被同时应用,也可以按顺序应用或以其他方式组合应用。编排器302确定多个服务304中的服务312、314、316、318中的哪些服务适用于消息,并通过适用的服务路由消息,其中适用的服务312、314、316、或318少于多个服务304。
31.图4图示了可以由编排代理服务器300使用的示例方法400。在402,包括多个代理服务的代理服务器接收网络消息。网络消息在客户端设备204与内容服务器206之间被引导。在一个示例中,网络消息是http消息,诸如http请求消息和http响应消息。接收到的网络消息被提供给编排器302,编排器302处理该消息。在404,代理服务器的编排器确定多个代理服务中的哪个代理服务作为适用的代理服务适用于接收到的网络消息。在一个示例中,与接收到的消息对应的适用的代理服务少于多个代理服务。在406,接收到的消息被路由至适用的代理服务以用于处理。在该示例中,接收到的消息被路由(诸如由编排器302动态路由)至比多个代理服务304少的代理服务以用于处理。在一个实例中,接收到的消息被路由至多个代理服务304中的一个适用的代理服务。
32.多个服务304可以包括用于处理部分消息的服务。例如,多个服务可以包括单独的服务以相应地处理接收到的每个消息的起始行、报头、和体部分。在一个示例中,服务可以被引导以分别处理请求消息和响应消息。例如,多个服务可以包括多个服务304中的请求报头服务312、请求体服务314、响应报头服务316、和响应体服务318。此外,服务可以被引导以处理二进制帧。还考虑了服务的其他划分示例。
33.在编排代理服务器300的示例中,编排代理服务器300在输入模块处接收消息并将消息提供给编排器302,其可以被配置为模块。编排代理服务器300可以确定消息的各方面,诸如该消息是否是http消息、请求消息、响应消息。在一个示例中,可以利用编排器302来确定消息的各方面,并且在另一示例中,可以在将消息传递至编排器302之前利用诸如输入模块之类的服务来确定消息的各方面。编排器确定多个服务304中的哪些服务,诸如服务312、314、316、318,适用于接收到的消息,并且将消息路由到适用的服务。例如,具有主体的响应消息可以被路由至响应报头服务316和响应体服务318。响应消息不被路由至请求报头服务312和请求体服务314。在另一示例中,编排器确定没有主体的请求消息将被路由到请求报
头服务312,而不被路由至请求体服务314、响应报头服务316和响应体服务318。
34.示例编排代理服务器300和方法400可以被实现为包括一个或多个硬件设备和用于控制系统执行方法400的计算机程序的组合,该系统诸如是具有处理器102和存储器104的计算系统。例如,编排代理服务器300和方法400可以被实现为计算机可读介质或计算机可读存储设备,该计算机可读介质或计算机可读存储设备具有用于控制处理器102执行方法400的可执行指令集。编排代理服务器300和方法400可以作为服务被包括在云环境中,诸如实现云访问安全中介以实施安全策略的安全服务,并在数据中心中的计算设备100上实现为编排代理服务器,诸如编排正向代理服务器或编排反向代理服务器,以引导客户端设备204与内容服务器206之间的网络流量。
35.尽管本文已经说明和描述了具体实施例,但是本领域普通技术人员将理解,在不脱离本发明的范围的情况下,可以用各种备选和/或等效实现来代替所示和描述的具体实施例。本技术旨在涵盖本文所讨论的具体实施例的任何修改或变化。
技术特征:
1.一种与代理服务器一起使用的方法,所述方法包括:确定接收到的网络消息的适用的代理服务,所述适用的代理服务选自多个代理服务;以及将所述网络消息路由到所述适用的代理服务进行处理。2.根据权利要求1所述的方法,其中所述网络消息是http(超文本传输协议)消息。3.根据权利要求1所述的方法,其中所述适用的代理服务少于所述多个代理服务。4.根据权利要求1所述的方法,其中所述多个代理服务包括请求消息代理服务和响应消息代理服务。5.一种计算机可读存储设备,用于存储计算机可执行指令,所述计算机可执行指令控制处理器以:确定接收到的网络消息的适用的代理服务,所述适用的代理服务选自多个代理服务;以及将所述网络消息路由到所述适用的代理服务进行处理。6.根据权利要求5所述的计算机可读存储设备,其中所述多个服务中的所述服务是独立可扩展的。7.根据权利要求5所述的计算机可读存储设备,其中网络消息是http请求消息和http响应消息中的一者。8.根据权利要求5所述的计算机可读存储设备,其中所述适用的代理服务少于所述多个代理服务。9.一种代理服务器系统,包括:存储器设备,用于存储指令集;以及处理器,用于执行所述指令集以:确定接收到的网络消息的适用的代理服务,所述适用的代理服务选自多个代理服务;以及将所述网络消息路由到所述适用的代理服务进行处理。10.根据权利要求9所述的代理服务器系统,其中所述代理服务器系统被包括在云访问安全中介中。
技术总结
示例代理服务器被公开。代理服务器包括多个服务,该多个服务用于处理接收到的网络消息的多个服务。适用于接收到的网络消息的代理服务被确定。适用的代理服务选自多个代理服务。网络消息被路由到适用的代理服务进行处理。网络消息被路由到适用的代理服务进行处理。网络消息被路由到适用的代理服务进行处理。
技术研发人员:
G
受保护的技术使用者:
微软技术许可有限责任公司
技术研发日:
2021.03.19
技术公布日:
2022/12/22