CN110495154B - 用于服务至服务通信的端点抽象 - Google Patents
用于服务至服务通信的端点抽象 Download PDFInfo
- Publication number
- CN110495154B CN110495154B CN201780089383.6A CN201780089383A CN110495154B CN 110495154 B CN110495154 B CN 110495154B CN 201780089383 A CN201780089383 A CN 201780089383A CN 110495154 B CN110495154 B CN 110495154B
- Authority
- CN
- China
- Prior art keywords
- service
- publisher
- change
- proxy server
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5054—Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
-
- 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
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- 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/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- 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
-
- 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/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
所描述的技术一般地涉及用于订户服务和发布者服务通信的抽象和文件模型。抽象和文件模型使得能够动态地改变底层通信机制并且透明地引入诸如缓存(减少时延)和批处理(提高带宽利用率)的优化,而无需对订户代码或发布者代码进行任何改变。抽象还有助于引入中间轻量级面向消息的中间件,并且提供透明地扩展的通信。
Description
背景技术
在分布式计算系统中,订户服务包括想要使用被称为发布者服务的另一服务的服务/网络应用,该发布者服务输出订户服务期望的一些功能。在大规模分布式系统中的服务发现一般地涉及将订阅服务与已发布服务的正确版本进行匹配。
一旦匹配,发生于同时期的订户服务和发布者服务以静态方式通信。如果存在需要进行的与通信有关的改变,例如改变服务通信策略、方法和/或实现方式(例如,版本),则需要对订户服务和/或发布者服务代码进行代码改变。
发明内容
提供本发明内容是为了以简化的形式介绍一系列代表性构思,在下面的具体实施方式中进一步描述这些构思。本发明内容不旨在确定所要求保护的主题的关键特征或基本特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。
简而言之,本文中描述的技术的一个或更多个方面涉及一种在发布者服务和订户服务通信中使用的抽象和数据模型,该抽象和数据模型使得能够进行动态通信改变。一个或更多个方面包括经由代理服务器在订户服务与发布者服务之间传送第一组服务请求及其响应,包括在代理服务器处使用第一组网络通信数据来与发布者服务通信。基于第一组网络通信数据的改变将第一组网络通信数据更新为更新的网络通信数据。经由代理服务器在订户服务与发布者服务之间传送第二组服务请求及其响应,包括在代理服务器处使用更新的网络通信数据来与发布者服务通信。
在结合附图考虑以下详细描述时,其他的优点可以变得明显。
附图说明
本文中描述的技术通过示例的方式示出并且不限于附图,在附图中相同的附图标记指示相似的元件,并且在附图中:
图1是根据一个或更多个示例实现方式的其中可以基于对可重新配置数据的改变来修改通信的发布者服务/订户服务环境的示例框图表示。
图2是根据一个或更多个示例实现方式的使用可变配置数据与发布者服务通信的订户服务的示例框图表示。
图3是根据一个或更多个示例实现方式的订户服务可以如何在仍然保持可操作的同时改变发布者服务的示例框图表示,包括在新发布者服务具有不同的与通信有关的数据的情况。
图4是根据一个或更多个示例实现方式的状态检测例如对应于网络状态的改变可以如何用于动态地改变订户服务器的通信的示例框图表示。
图5是根据一个或更多个示例实现方式的发布者服务可以如何在仍然保持可操作的同时改变其通信数据的示例框图表示,包括在发布者服务具有不同的与通信有关的数据的情况。
图6是根据一个或更多个示例实现方式的状态检测例如对应于网络状态的改变可以如何用于动态地改变网络通信的示例框图表示,包括存在中间件的情况。
图7A是示出根据一个或更多个示例实现方式的在检测到状态改变时经由键值存储改变通信参数可以采取的示例步骤的流程图。
图7B是示出根据一个或更多个示例实现方式的在网络状态改变发生时经由键值存储改变通信参数可以采取的示例步骤的流程图。
图8是示出根据一个或更多个示例实现方式的由订户服务的关联(sidekick)进程改变通信数据可以采取的示例步骤的流程图。
图9是表示本文中描述的主题的各方面可以并入至其中的示例计算环境的框图。
具体实施方式
本文中描述的技术的各个方面一般地涉及抽象出用于订户服务与发布者服务之间的通信的通信机制和策略。该抽象使得订户服务与发布者服务的通信能够经由抽象名称进行,而订户服务代码和/或发布者服务代码不需要涉及通信策略、参数、协议和实现方式。订户能够通过询问其想要“何种”服务而不是“如何”和/或“如何”以最佳方式与目标发布者通信来请求发布者的服务。这留给底层动态配置的数据(其在转让给本申请的受让人的美国专利申请序列号为第15/291,816号中描述,并且该申请的全部内容通过引用并入本文)和端点抽象的实现方式。
该抽象还使得能够透明地和/或动态地进行对通信参数和/或网络的改变,包括将优化并入至网络和/或通信实体中。例如,可以在不改变订户服务代码或发布者服务代码的情况下改变底层网络通信策略和优化例如缓存和批处理操作。类似地,根据实际上任何标准,可以选择性地打开或关闭通信机制例如持久队列,以及建立持久队列的大小。
在一个或更多个实现方式中,通常基于并且在前述美国专利申请序列号为第15/291,816号中描述的,在配置文件中保持的参数数据用于使订户服务调用发布者服务(而不是经由静态配置进行调用)。作为使用这种可变参数数据的结果,从订户服务的角度来看,发布者服务变成被抽象为订户服务代码向其作出服务请求的名称(身份)的端点。因此,订户服务代码不需要知道任何底层通信数据或通信所需的其他策略、协议或实现方式。通过这种方式,可以对通信参数数据和发布者服务以及其他网络实体(例如中间件、缓存等)进行透明的改变,从而产生改变的通信(例如,策略和其他操作)而不改变订户服务的代码。
订户服务器配置有使用动态可配置的通信参数代表订户服务进行通信的代理服务器(如前述美国专利申请序列号为第15/291,816号中所描述的)。动态配置文件数据的使用使得能够使用包括对客户端透明的包括策略、方法和实现方式的“网络通信数据”,其包括表1中列出的这些:
表1
例如,在检测到与发布者服务有关的状态改变时(其可以是由发布者服务可能响应于检测到如网络状态改变之类的事情而进行的改变),其中状态改变在存储库中指示,可以基于状态改变将由订户服务使用的配置信息动态地并且实时地改变为修改的配置信息。然后,使用修改的配置信息在代理服务器与发布者服务之间进行通信,其中无需对发布者服务的代码或订户服务的代码进行修改即可发生改变。
类似地,可以检测网络状态改变例如高时延条件是否由发布者、订户、由中间件和/或存储库的实体检测到。例如,当发生这种情况时,可以打开消息缓存以加速发布者服务和订户服务通信。
应当理解,本文中的任何示例都是非限制的。例如,示例中的一些涉及具有某些特征和能力的代理服务器和关联进程。然而,本文中描述的技术独立于部件的任何特定配置,并且可以使用任何合适的这种部件或部件组,包括定制编写的部件。因此,本文中描述的任何实施方式、方面、概念、结构、功能或示例都是非限制的,并且可以以通常在数据通信和数据处理方面提供益处和优点的各种方式使用该技术。
如在图1的示例实现方式中一般地表示的,例示的发布者服务器102(1)至102(n)各自包括输出一些服务功能的、分别示出为发布者服务104(1)至104(n)的发布者服务。在典型的场景中,可以存在数千个发布者服务(和数千个订户服务)。服务可能快速失效,而且可能是短暂的、易失的和/或动态的。服务器和/或服务可以在同一虚拟机器和/或物理机器上共同租用;注意,虚拟机器可以是或可以不是最小的部署单元,这是因为可能存在进程、线程、协同例程、容器等。多个版本的服务的多个实例可以同时运行。可以存在多个数据中心和对已部署服务的跨区域访问。在一个或更多个实现方式中,快速部署可用于支持自动扩展以对工作负载峰值作出反应,以及跨服务实例的集成负载平衡。
如本文中描述的,每个发布者服务器102(1)至102(n)包括作为发布者关联进程运行的、分别示出为发布者关联进程106(1)至106(n)的发布者服务注册部件。发布者关联进程106(1)至106(n)中的每一个向存储库108提供服务注册,以及执行诸如与健康检查有关的操作的其他操作。
通常,存储库108是包括保持发布者服务的注册的数据库110的高度可用的分布式存储库。如本文中描述的,存储库108还包括或耦接至包括键值存储112(或多个键值存储)的服务注册表,可以监视该键值存储112以获得与注册的发布者服务104(1)至104(n)有关的改变。在一个或更多个实现方式中,存储库不是如常规理解的数据库,而是包括键值存储112。一些存储库使用分层文件系统来组织数据,而其他存储库可以通过将项目的目录路径存储为键值来模拟平面键值存储中的层次结构。
数据库108和/或键值存储112可以由发布者关联进程106(1)至106(n)更新。包括数据库110和/或键值存储112的存储库108也可以由外部配置源114例如管理员、自动化进程等配置/更新/填充。更新存储库108的另一种方式是使用包括时延时间等的状态信息115例如当前网络状态数据。如将理解的,可以使用任何状态数据来对任何一个发布者或发布者组如何与任何一个订户或订户组通信进行改变,包括一天中的时间、增强的安全操作状态等。
图1还示出了包括订户服务进程118、订户关联进程120和代理服务器122的订户服务器116。如本文中描述的,订户服务进程118通过代理服务器122进行服务调用,代理服务器122使用配置文件124(和/或包括由代理服务器122进行的存储器内访问的其他合适的数据结构)与在图1中作为发布者服务104(1)例示的发现的发布者服务进行通信。可以存在多于一个代理服务器和/或多于一个配置文件。
注意,本文中描述的技术允许服务发布者是其他服务的订户,反之亦然。这使得能够进行链式服务至服务调用,例如,其中服务A调用服务B、服务B调用服务C、服务C调用服务D等。
图1中例示的环境中的服务发现通常可以遵循用于现代分布式体系结构的服务发现模式。然而,发布者关联进程(例如106(1))可以提供增强的通用服务注册,而订户关联进程120可以提供增强的服务发现,例如以更好地将发布者能力与由订户所期望的能力进行匹配。发布者关联进程(例如,106(1))和订户关联进程120还参与健康检查,该健康检查通常从系统中移除不健康和/或不能通信的发布者服务。存储库108处理应用组以外的服务发现。服务发现部件在机器上的众所周知的端口处本地运行。可以抽象出服务发现,而无需查找发现服务发布者绑定。
一旦发现并通信,如在图2的示例实现方式中一般地表示的,在操作期间,订户服务提供涉及已发现的发布者服务的身份(名称)的请求。代理服务器222使用适当的配置数据224向发布者进行服务调用;(示例服务调用包括诸如/whoareyou、/version、/trouble、/clearSkies、/setDelay?ms=…、/shutdown…等的请求)。通过这种方式,订户服务218不需要具有发布者服务的除其身份以外的任何知识。
注意,图2示出了具有多个代理服务器的能力,例如,每个代理服务器具有相关联的一组配置数据。对于两个或更多个代理服务器共享同一组配置数据例如同一发布者服务的多个实例是可行的。对于一个代理服务器具有多组相关联的配置数据例如使用配置数据集1进行的与身份1相关联的请求、使用配置数据集2进行的与身份2相关联的请求等也是可行的。
通常,订户关联进程将配置数据写入例如由代理服务器访问的存储器。通过这种方式,使得能够进行动态改变,尽管任何改变都可能需要是事务性的以便代理服务器在写入改变时不使用不一致的数据。
图3示出了其中订户服务318可以在发布者服务器302(1)及其服务304(1)宕机时(其为一种状态改变)在没有显著中断的情况下继续操作的一种情况。在该示例中,考虑订户关联进程320正在参与健康检查操作并且识别出发布者服务已经失效或者以其他方式例如经由存储库通知发布者服务故障。在这种情况下,订户关联进程查询替换的发布者服务例如发布者服务304(2)和发布者服务器304(1)。
考虑到例如发布者服务304(2)是不同的版本,使用不同的协议或者实际上使用表1中列出的任何其他通信参数。如果订户服务318能够使用发布者服务304(2)的通信参数,则更新配置数据324,并且将请求发送至替换的发布者服务器。只有身份可以被改变,身份可以是内置于订户代码中的直接改变,或者可以经由实体将身份重新映射在订户服务器316中;例如,可以指示代理服务器用名称2替换名称1请求,直至另外指示。
通过这种方式,可以透明地使用具有不同通信参数的全新发布者服务而无需对订户服务代码进行任何改变(除了可能通知订户服务名称改变以外,除非重新映射实现相同的结果)。然而,注意,并非所有发布者服务都可以能够被使用;例如,如果发布者服务只具有恰好一次通信语义,并且订户服务需要至少一次通信,则订户关联进程将不选择该发布者进行替换。
图4示出了可以如何在无需对订户代码进行任何改变的情况下发生致使使用不同的通信数据的改变的另一示例。在图4的示例中,考虑到某些网络状态已经改变,例如高时延条件。规则/改变逻辑440可以在这种情况下写入或更新一个或更多个键值条目。例如,某些发布者实体可以能够打开缓存和/或批处理以帮助处理高时延。如果这样,可以通知这种发布者进行此改变或更多改变。可替选地,使用缓存和/或批处理的新发布者可以开始针对至少一些订户替换其他发布者服务。
注意,如图5中所表示的,发布者服务504可以具有至少一些可变配置数据525,并且可以使用代理服务器507。替选方式是编写发布者服务代码以便于进行这种改变,然而,改变数据而不是代码并且具有数据驱动的操作和行为是已知的优点。
某些改变不需要反映在订户服务配置数据中;例如,发布者服务是否已打开缓存可能与订户服务无关。然而,订户关联进程可能需要知道该改变,并且主要考虑到发布者的任何这种改变是该发布者服务的故障而可以选择不允许该改变。例如,如果订户服务不能允许缓存,例如因为陈旧数据在给定的订户服务场景中是不可接受的,则该订户服务不能使用具有缓存的发布者。因此,订户关联进程需要请求不使用缓存的发布者服务,或者其中缓存可以被旁路的发布者服务,并且将订户服务与已经改变为使用缓存的任何发布者服务解耦。另一替选方式是订户服务可以允许缓存,但是需要指示发布者服务在订户服务控制的某个时间帧内刷新其缓存,和/或对任何返回的缓存数据提供到期时间戳,以便订户服务可以确定是否可以使用该数据。
图6示出了其中网络改变可能导致订户和发布者改变它们的操作的另一可行场景。在该示例中,中间件660存在于订户服务器616与发布者服务器602之间。可以使用网络状态数据或者可能的手动重新配置等改变中间件660操作,例如使用或不使用缓存662。同样,由于订户服务器616(以及可能的发布者服务器602的发布者服务)可能需要知道这种改变,因此可以将信息写入键值存储112;注意,可能需要中间件以某种方式通知存储库。可替选地,存储库可以负责控制中间件操作,例如,状态改变使存储库打开中间件处的缓存,同时经由关联监视等向任何订户(或发布者)通知该改变。
应当注意,中间件660及其可用功能不限制于单个软件部件。代替地,可以存在多个中间件实现方式选项,并且所描绘的中间件660可以包括可以任意数目的库和/或涉及改变通信行为的服务。在这样的选项中进行选择独立于订户或发布者实现方式,然而,选择是经由配置数据表现出的策略选择。
图7A示出了由发布者或存储库进行与检测到的状态改变对应的改变可以采取的示例步骤。在图7A中,在步骤702处检测状态改变。如果在步骤704处规则等确定需要将状态改变写入键值存储,则步骤706写入适当的改变信息。因此,例如,如果发布者想要打开事务消息传递(经由一些检测到的状态改变,其可以是来自订户的请求或任何其他状态改变),则步骤706将该改变写入键值存储,由此该发布者服务的任何订户都会被通知并且可以采取适当的行动。注意,步骤704允许忽略状态改变;例如,发布者或存储库可以接收指示网络时延高但是不足以高至证明尚未采取任何行动的状态改变。
图7B示出了由存储库进行与网络配置改变对应的改变例如由中间件或发布者请求的改变可以采取的示例步骤。例如,考虑到图6的中间件660已经请求对网络配置进行一些改变,例如如上所述打开缓存。步骤712确定是否允许该改变,并且如果是,则改变一个相关记录或多个相关记录处的键值存储以向被注册监视这些记录的改变的听众(订户和/或发布者)进行更新。步骤716指示一个相关网络实体或多个相关网络实体进行网络改变。
图8是示出由订户关联进程可以采取的示例步骤的流程图,其开始于步骤802处,在步骤802中发现发布者实例。步骤804表示注册以观察与发布者服务实例相关的配置数据改变。步骤806表示指示代理服务器开始使用该实例,例如,将其添加至负载平衡旋转。
步骤808表示检测订户的关闭。如果发生这种情况,则可以在步骤820处取消观察。
步骤810表示对改变通知的评估,其在一个或更多个实现方式中是来自存储库的事件/通知(而不是来自步骤810的“分支/循环”)。如果发生了改变,则步骤812表示获得改变数据(其可以是单独的读取操作,或者可以被包括作为通知的一部分)。
如果改变是允许的改变,如在步骤814处评估的,则步骤816进行配置改变,如本文中描述的代理服务器/负载平衡器开始使用该配置改变。否则,订户停止使用发布者(步骤818),并且在步骤820处取消对该发布者的观察。
示例计算装置
本文中描述的技术可以应用于能够运行程序和进程的任何装置或一组装置(机器)。因此,可以理解的是,预期包括物理和/或虚拟机器的服务器、个人计算机、膝上型计算机、手持式、便携式和其他计算装置以及包括手机、平板/平板电脑、游戏/娱乐控制台等的各种计算对象与包括本文中例示的实现方式的各种实现方式结合使用。因此,下面参照图9描述的通用计算机制仅是计算装置的一个示例。
实现方式可以部分地经由操作系统来实现,以由装置或对象的服务开发者使用,和/或包括在进行操作以执行本文中描述的各种实现方式的一个或更多个功能方面的应用软件内。软件可以在由诸如客户端工作站、服务器或其他装置的一个或更多个计算机执行的诸如程序模块的计算机可执行指令的一般上下文中描述。本领域技术人员将认识到,计算机系统具有可以用于通信数据的各种配置和协议,并且因此不认为特定的配置或协议是限制性的。
因此,图9示出了本文中描述的实现方式的一个或多个方面可以在其中实现的合适的计算系统环境900的示例,尽管如上所述,计算系统环境900仅是合适的计算环境的一个示例并且不旨在对使用范围或功能提出任何限制。另外,计算系统环境900不旨在被解释为具有与示例计算系统环境900中所示的部件的任何一个或组合有关的任何依赖性。
参照图9,用于实现一个或更多个实现方式的示例装置包括计算机910的形式的通用计算装置。计算机910的部件可以包括但不限于处理单元920、系统存储器930以及系统总线922,该系统总线922将包括系统存储器的各种系统部件耦接至处理单元920。
计算机910通常包括各种机器(例如,计算机)可读介质,并且可以是可以由诸如计算机910的机器访问的任何可用介质。系统存储器930可以包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)的易失性存储器形式和/或非易失性存储器形式的计算机存储介质、以及硬盘驱动器介质、光学存储介质、闪存介质等。作为示例而非限制,系统存储器930还可以包括操作系统、应用程序、其他程序模块和程序数据。
用户可以通过一个或更多个输入装置940将命令和信息输入至计算机910中。监视器或其他类型的显示装置也经由诸如输出接口950的接口连接至系统总线922。除了监视器以外,计算机还可以包括可以通过输出接口950连接的其他外围输出装置例如扬声器和打印机。
计算机910可以使用到诸如远程计算机970的一个或更多个其他远程计算机的逻辑连接在联网或分布式环境中操作。远程计算机970可以是个人计算机、服务器、路由器、网络PC、对等装置或其他公共网络节点或任何其他远程介质消费或传输装置,并且可以包括上面相对于计算机910描述的任何或所有元件。图9中描绘的逻辑连接包括诸如局域网(LAN)或广域网(WAN)的网络972,但是也可以包括其他网络/总线。这种联网环境在家庭、办公室、企业范围的计算机网络、内联网和因特网中是常见的。
如上所述,尽管已经结合各种计算装置和网络架构描述了示例实现方式,但是基本构思可以应用于期望实现这种技术的任何网络系统和任何计算装置或系统。
此外,存在实现相同或类似功能的多种方式,例如,适当的API、工具包、驱动器代码、操作系统、控件、独立或可下载的软件对象等,这使得应用和服务能够利用本文中提供的技术。因此,从API(或其他软件对象)的角度以及从实现如本文中描述的一个或更多个实现方式的软件或硬件对象来考虑本文中的实现方式。因此,本文中描述的各种实现方式可以具有完全在硬件中、部分在硬件中并且部分在软件中以及完全在软件中的各方面。
本文中使用词语“示例”来表示用作示例、实例或说明。为了避免疑义,本文中公开的主题不受这种示例的限制。另外,本文中作为“示例”描述的任何方面或设计不必被解释为比其他方面或设计更优选或有利,也不意味着排除本领域普通技术人员已知的等效示例结构和技术。此外,就使用术语“包括”、“具有”、“包含”以及其他类似词语而言,为了避免疑义,这些术语旨在以类似于作为开放过渡词的术语“包括”的方式是包含性的,而且在权利要求中使用时不排除任何附加或其他元件。
如上所述,本文中描述的各种技术可以结合硬件或软件或者在适当的情况下结合硬件和软件来实现。如本文中使用的,术语“部件”、“模块”、“系统”等同样旨在表示与计算机有关的实体,要么是硬件、硬件和软件的组合、软件要么是执行中的软件。例如,部件可以是但不限于是在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。举例来说,运行在计算机上的应用和计算机二者可以是部件。一个或更多个部件可以存在于进程和/或执行的线程内,并且部件可以位于一个计算机上和/或分布在两个或更多个计算机之间。
关于几个部件之间的交互描述了上述系统。可以理解的是,这种系统和部件可以包括那些部件或指定的子部件、指定的部件或子部件中的一些和/或另外的部件,以及根据前述的各种置换和组合。子部件也可以被实现为通信地耦接至其他部件的部件,而不是被包括在父部件(分级)中。另外,可以注意到,一个或更多个部件可以被组合成提供综合功能的单个部件或被划分成若干分离的子部件,并且可以提供任何一个或更多个中间层——例如管理层——以通信地耦接至这种子部件以提供集成功能。本文中描述的任何部件还可以与本文中未具体描述但是本领域技术人员通常已知的一个或更多个其他部件相互作用。
鉴于本文中描述的示例系统,可以参照各个附图的流程图表/流程图来理解可以根据描述的主题实现的方法。虽然为了简化说明的目的,方法被示出并且描述为一系列框,但是应当理解和认识到,各种实现方式不受框的顺序的限制,这是因为一些框可以以不同的顺序发生和/或与本文中描绘和描述的其他框同时发生。在经由流程图表/流程图示出了非顺序的或分支的流程的情况下,可以理解的是,可以实现得到相同或相似结果的各种其他分支、流程路径和框的顺序。此外,一些所示框在实现本文中描述的方法时是可选的。
结论
虽然本发明易于进行各种修改和替选构造,但是其某些示出的实现方式在附图中示出并且已经在上面进行了详细描述。然而,应当理解的是,并不旨在将本发明限制于所公开的具体形式,而是相反,本发明覆盖落入本发明的精神和范围内的所有修改、替选构造和等同内容。
除了本文中描述的各种实现方式以外,应当理解,可以使用其他类似的实现方式,或者在不偏离所描述的实现方式的情况下可以针对描述的一个或多个实现方式进行修改和添加以用于执行相应的一个或多个实现方式的相同或等同功能。更进一步地,多个处理芯片或多个装置可以共享本文中描述的一个或更多个功能的性能,并且类似地,可以在多个装置上实现存储。因此,本发明不限于任何单个实现方式,而是应在宽度、精神和范围上根据所附权利要求书进行解释。
Claims (20)
1.一种用于发布者服务和订户服务通信的方法,包括:
由包括处理器的代理服务器从订户服务接收第一服务请求,其中,所述第一服务请求指定对应于第一发布者服务的第一身份信息;
由所述代理服务器将所述第一服务请求传送至所述第一发布者服务,其中,所述代理服务器使用包括网络通信数据的可变配置数据来与所述第一发布者服务通信;
由所述代理服务器从所述第一发布者服务接收对所述第一服务请求的第一响应;
由所述代理服务器获得指示所述网络通信数据的改变的信息;
响应于确定所述网络通信数据的改变需要所述订户服务使用第二发布者服务代替所述第一发布者服务,由所述代理服务器基于所述指示所述网络通信数据的改变的信息将所述可变配置数据更新为更新的配置数据,其中,所述更新的配置数据包括所述第一身份信息到对应于所述第二发布者服务的第二身份信息的映射,其中,更新所述可变配置数据包括在不改变所述订户服务的代码的情况下更新以下中的至少一个:通信协议、持久排队、恰好一次通信、至少一次通信、远程过程调用通信、同步/异步事件消息传递、轻量级面向消息的中间件、消息批处理、消息缓存、订户与发布者之间的基于能力的认证和授权、事务通信或安全协议;
由所述代理服务器从所述订户服务接收第二服务请求,其中,所述第二服务请求指定对应于所述第一发布者服务的所述第一身份信息;
由所述代理服务器使用所述更新的配置数据中所述第一身份信息到所述第二身份信息的映射将所述第二服务请求传送至所述第二发布者服务;以及
由所述代理服务器从所述第二发布者服务接收对所述第二服务请求的第二响应。
2.根据权利要求1所述的方法,其中,将所述第二服务请求传送至所述第二发布者服务在不改变所述订户服务的代码的情况下发生。
3.根据权利要求1所述的方法,其中,获得所述指示所述网络通信数据的改变的信息包括接收与通信策略、通信方法、协议或实现方式中的至少一个对应的改变数据。
4.根据权利要求1所述的方法,其中,获得所述指示所述网络通信数据的改变的信息包括接收与网络状态数据的改变对应的改变数据。
5.根据权利要求1所述的方法,其中,将所述第一服务请求传送至所述发布者服务还包括通过中间件传送。
6.根据权利要求5所述的方法,其中,获得所述指示所述网络通信数据的改变的信息包括接收与中间件操作或实现方式的改变或者中间件操作和实现方式的改变对应的改变数据。
7.根据权利要求6所述的方法,还包括:检测网络状态数据的改变,并且基于检测到所述改变来改变所述中间件操作或所述实现方式、或者所述中间件操作和所述实现方式二者。
8.根据权利要求6所述的方法,还包括:存储库控制所述中间件操作或所述实现方式、或者所述中间件操作和所述实现方式二者,并且在所述存储库处提供所述指示所述网络通信数据的改变的信息。
9.一种非暂态计算机可读介质,其上存储有指令,所述指令响应于执行而使包括处理器的代理服务器执行操作,所述操作包括:
在订户服务与第一发布者服务之间传送第一组服务请求及其响应,包括在所述代理服务器处使用第一组网络通信数据来与所述第一发布者服务通信,其中所述第一组服务请求包括对应于所述第一发布者服务的第一身份;
基于所述第一组网络通信数据的改变将所述第一组网络通信数据更新为更新的网络通信数据,其中,所述更新包括:
响应于确定所述第一组网络通信数据的改变需要所述订户服务使用第二发布者服务代替所述第一发布者服务,将所述第一身份到对应于所述第二发布者服务的第二身份的映射增加至所述更新的网络通信数据,以及
在不改变所述订户服务的代码的情况下更新以下中的至少一个:通信协议、持久排队、恰好一次通信、至少一次通信、远程过程调用通信、同步/异步事件消息传递、轻量级面向消息的中间件、消息批处理、消息缓存、订户与发布者之间的基于能力的认证和授权、事务通信或安全协议;以及
使用所述更新的网络通信数据中所述第一身份到所述第二身份的映射在所述订户服务与所述第二发布者服务之间传送第二组服务请求及其响应,其中,所述第二组服务请求包括对应于所述第一发布者服务的所述第一身份。
10.根据权利要求9所述的非暂态计算机可读介质,所述操作还包括监视数据存储以获得所述第一组网络通信数据的改变。
11.根据权利要求9所述的非暂态计算机可读介质,其中,将所述第一组服务请求传送至所述发布者服务还包括通过中间件传送。
12.根据权利要求9所述的非暂态计算机可读介质,其中,基于所述第一组网络通信数据的改变将所述第一组网络通信数据更新为更新的网络通信数据包括基于中间件操作的改变进行更新。
13.根据权利要求9所述的非暂态计算机可读介质,其中,基于所述第一组网络通信数据的改变将所述第一组网络通信数据更新为更新的网络通信数据包括基于所述发布者服务的改变进行更新。
14.一种代理服务器,包括:
处理器;以及
存储器,其存储可执行指令,所述可执行指令在由所述处理器执行时促进操作的执行,所述操作包括:
从订户服务接收第一服务请求,其中,所述第一服务请求指定对应于第一发布者服务的第一身份信息;
由所述代理服务器将所述第一服务请求传送至所述第一发布者服务,其中,所述代理服务器使用包括网络通信数据的可变配置数据来与所述第一发布者服务通信;
由所述代理服务器从所述第一发布者服务接收对所述第一服务请求的第一响应;
由所述代理服务器获得指示所述网络通信数据的改变的信息;
响应于确定所述网络通信数据的改变需要所述订户服务使用第二发布者服务代替所述第一发布者服务,由所述代理服务器基于所述指示所述网络通信数据的改变的信息将所述可变配置数据更新为更新的配置数据,其中,所述更新的配置数据包括所述第一身份信息到对应于所述第二发布者服务的第二身份信息的映射,其中,更新所述可变配置数据包括在不改变所述订户服务的代码的情况下更新以下中的至少一个:通信协议、持久排队、恰好一次通信、至少一次通信、远程过程调用通信、同步/异步事件消息传递、轻量级面向消息的中间件、消息批处理、消息缓存、订户与发布者之间的基于能力的认证和授权、事务通信或安全协议;
从所述订户服务接收第二服务请求,其中,所述第二服务请求指定对应于所述第一发布者服务的所述第一身份信息;
由所述代理服务器使用所述更新的配置数据中所述第一身份信息到所述第二身份信息的映射将所述第二服务请求传送至所述第二发布者服务;以及
由所述代理服务器从所述第二发布者服务接收对所述第二服务请求的第二响应。
15.根据权利要求14所述的代理服务器,其中,将所述第二服务请求传送至所述第二发布者服务在不改变所述订户服务的代码的情况下发生。
16.根据权利要求14所述的代理服务器,其中,获得所述指示所述网络通信数据的改变的信息包括接收与通信策略、通信方法、协议或实现方式中的至少一个对应的改变数据。
17.根据权利要求14所述的代理服务器,其中,获得所述指示所述网络通信数据的改变的信息包括接收与网络状态数据的改变对应的改变数据。
18.根据权利要求14所述的代理服务器,其中,将所述第一服务请求传送至所述发布者服务还包括通过中间件传送。
19.根据权利要求18所述的代理服务器,其中,获得所述指示所述网络通信数据的改变的信息包括接收与中间件操作或实现方式的改变或者中间件操作和实现方式的改变对应的改变数据。
20.根据权利要求19所述的代理服务器,其中,所述操作还包括:
检测网络状态数据的改变,并且基于检测到所述改变来改变所述中间件操作或所述实现方式。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/435,940 US10491474B2 (en) | 2017-02-17 | 2017-02-17 | Endpoint abstraction for service-to-service communication |
US15/435,940 | 2017-02-17 | ||
PCT/US2017/068781 WO2018151797A1 (en) | 2017-02-17 | 2017-12-28 | Endpoint abstraction for service-to-service communication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110495154A CN110495154A (zh) | 2019-11-22 |
CN110495154B true CN110495154B (zh) | 2022-05-27 |
Family
ID=61022445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780089383.6A Active CN110495154B (zh) | 2017-02-17 | 2017-12-28 | 用于服务至服务通信的端点抽象 |
Country Status (8)
Country | Link |
---|---|
US (2) | US10491474B2 (zh) |
EP (1) | EP3583765B1 (zh) |
JP (1) | JP7030829B2 (zh) |
KR (1) | KR102271106B1 (zh) |
CN (1) | CN110495154B (zh) |
CA (1) | CA3054032A1 (zh) |
MX (1) | MX2019009872A (zh) |
WO (1) | WO2018151797A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10819586B2 (en) * | 2018-10-17 | 2020-10-27 | Servicenow, Inc. | Functional discovery and mapping of serverless resources |
CN109451032B (zh) * | 2018-11-20 | 2021-11-23 | 上海联寓智能科技有限公司 | 一种消息传递系统 |
CN111381983B (zh) * | 2020-03-06 | 2022-09-20 | 西安理工大学 | 虚拟试验靶场验证系统的轻量级消息中间件系统及方法 |
EP3896920A1 (en) * | 2020-04-16 | 2021-10-20 | Deutsche Telekom AG | Proxy-based messaging system of a telecommunication network |
CN114520832B (zh) * | 2020-11-19 | 2023-08-25 | 腾讯科技(深圳)有限公司 | 一种数据流处理方法、装置、设备及计算机存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1774760B1 (en) * | 2004-08-03 | 2016-10-12 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for integrating agent status between a customer relations management system and a multiple channel communications center |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7406537B2 (en) * | 2002-11-26 | 2008-07-29 | Progress Software Corporation | Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes |
GB0305066D0 (en) | 2003-03-06 | 2003-04-09 | Ibm | System and method for publish/subscribe messaging |
US8010695B2 (en) * | 2005-12-30 | 2011-08-30 | Sap Ag | Web services archive |
US20080104258A1 (en) * | 2006-10-30 | 2008-05-01 | Gestalt, Llc | System and method for dynamic data discovery in service oriented networks with peer-to-peer based communication |
US8032588B2 (en) * | 2008-06-23 | 2011-10-04 | International Business Machines Corporation | System and method for hosting one or more versions of a service using a service proxy |
US8095935B2 (en) | 2008-06-26 | 2012-01-10 | Microsoft Corporation | Adapting message delivery assignments with hashing and mapping techniques |
US20100257223A1 (en) * | 2009-04-02 | 2010-10-07 | Morris Robert P | Method and System For Changing A Subscription To A Tuple Based On A Changed State Of A Subscribing Principal |
US9317612B1 (en) * | 2009-12-07 | 2016-04-19 | D&B Business Information Solutions | System and method for managing multiple content feeds |
WO2012098433A1 (en) * | 2011-01-20 | 2012-07-26 | Nokia Corporation | Method and apparatus for facilitating content distribution |
US9450836B2 (en) * | 2011-12-27 | 2016-09-20 | Cisco Technology, Inc. | System and method for management of network-based services |
US20150350138A1 (en) | 2012-12-20 | 2015-12-03 | Nec Corporation | Controller, message delivery system, message delivery method, and program |
US10250698B2 (en) * | 2014-08-25 | 2019-04-02 | Futurewei Technologies, Inc. | System and method for securing pre-association service discovery |
US9848041B2 (en) * | 2015-05-01 | 2017-12-19 | Amazon Technologies, Inc. | Automatic scaling of resource instance groups within compute clusters |
US10623514B2 (en) * | 2015-10-13 | 2020-04-14 | Home Box Office, Inc. | Resource response expansion |
US10645575B2 (en) * | 2015-10-20 | 2020-05-05 | Telefonaktiebolaget Lm Ericcson (Publ) | User profiling prevention in personal area network communication |
US20180096412A1 (en) * | 2016-09-30 | 2018-04-05 | Mark E. Scott-Nash | Digital brokerage service for iot micro compute services |
-
2017
- 2017-02-17 US US15/435,940 patent/US10491474B2/en active Active
- 2017-12-28 JP JP2019545279A patent/JP7030829B2/ja active Active
- 2017-12-28 CN CN201780089383.6A patent/CN110495154B/zh active Active
- 2017-12-28 WO PCT/US2017/068781 patent/WO2018151797A1/en unknown
- 2017-12-28 KR KR1020197026021A patent/KR102271106B1/ko active IP Right Grant
- 2017-12-28 EP EP17833071.8A patent/EP3583765B1/en active Active
- 2017-12-28 CA CA3054032A patent/CA3054032A1/en active Pending
- 2017-12-28 MX MX2019009872A patent/MX2019009872A/es unknown
-
2019
- 2019-10-18 US US16/657,262 patent/US11165644B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1774760B1 (en) * | 2004-08-03 | 2016-10-12 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for integrating agent status between a customer relations management system and a multiple channel communications center |
Also Published As
Publication number | Publication date |
---|---|
US20200052958A1 (en) | 2020-02-13 |
JP7030829B2 (ja) | 2022-03-07 |
KR20200015447A (ko) | 2020-02-12 |
KR102271106B1 (ko) | 2021-06-29 |
US10491474B2 (en) | 2019-11-26 |
CA3054032A1 (en) | 2018-08-23 |
CN110495154A (zh) | 2019-11-22 |
US20180241616A1 (en) | 2018-08-23 |
EP3583765B1 (en) | 2020-11-25 |
WO2018151797A1 (en) | 2018-08-23 |
JP2020510919A (ja) | 2020-04-09 |
EP3583765A1 (en) | 2019-12-25 |
US11165644B2 (en) | 2021-11-02 |
MX2019009872A (es) | 2020-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110495154B (zh) | 用于服务至服务通信的端点抽象 | |
US10372475B2 (en) | Approaches for managing virtual instance data | |
US11762815B2 (en) | Multi-framework managed blockchain service | |
US10218809B2 (en) | Dynamic configuration of service communication | |
Van Steen et al. | Distributed systems principles and paradigms | |
US8209417B2 (en) | Dynamic resource profiles for clusterware-managed resources | |
US9942353B2 (en) | Management of connections within a messaging environment based on the statistical analysis of server responsiveness | |
US10970107B2 (en) | Discovery of hyper-converged infrastructure | |
US11074239B2 (en) | De-duplication of configuration items related to a managed network | |
US10756985B2 (en) | Architecture for implementing user interfaces for centralized management of a computing environment | |
US10013449B1 (en) | Validating and non-validating secondary indexes for a table in a non-relational data store | |
US20220263772A1 (en) | Metadata driven static determination of controller availability | |
CN113760901A (zh) | 数据处理方法、装置、设备及存储介质 | |
WO2020106845A1 (en) | Enabling access across private networks for a managed blockchain service | |
US9313208B1 (en) | Managing restricted access resources | |
US20160342621A1 (en) | System and method of providing or executing layered resources | |
US9852077B2 (en) | Preserving user changes to a shared layered resource | |
US20190138277A1 (en) | Provisioning composite applications using secure parameter access | |
US11277369B1 (en) | Message queue architecture and interface for a multi-application platform | |
US11019023B1 (en) | Container orchestration system (COS) services discovery across multiple COS clusters based on COS cluster domain name system | |
US11625273B1 (en) | Changing throughput capacity to sustain throughput for accessing individual items in a database | |
US20160342361A1 (en) | System and method for protecting contents of shared layer resources | |
US20160342336A1 (en) | System and method of creating layered resources | |
EP3479256B1 (en) | Fabric encapsulated resilient storage | |
US20230067891A1 (en) | Service virtualization platform |
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 |