用于服务至服务通信的端点抽象制造技术

技术编号:22651338 阅读:42 留言:0更新日期:2019-11-26 18:56
所描述的技术一般地涉及用于订户服务和发布者服务通信的抽象和文件模型。抽象和文件模型使得能够动态地改变底层通信机制并且透明地引入诸如缓存(减少时延)和批处理(提高带宽利用率)的优化,而无需对订户代码或发布者代码进行任何改变。抽象还有助于引入中间轻量级面向消息的中间件,并且提供透明地扩展的通信。

Endpoint abstraction for service to service communication

The techniques described generally involve abstraction and file models for subscriber service and publisher service communication. Abstract and file models enable dynamic changes to underlying communication mechanisms and transparently introduce optimizations such as caching (reducing latency) and batching (improving bandwidth utilization), without any changes to subscriber or publisher code. Abstraction also facilitates the introduction of intermediate lightweight message oriented middleware and provides transparently extended communication.

【技术实现步骤摘要】
【国外来华专利技术】用于服务至服务通信的端点抽象
技术介绍
在分布式计算系统中,订户服务包括想要使用被称为发布者服务的另一服务的服务/网络应用,该发布者服务输出订户服务期望的一些功能。在大规模分布式系统中的服务发现一般地涉及将订阅服务与已发布服务的正确版本进行匹配。一旦匹配,发生于同时期的订户服务和发布者服务以静态方式通信。如果存在需要进行的与通信有关的改变,例如改变服务通信策略、方法和/或实现方式(例如,版本),则需要对订户服务和/或发布者服务代码进行代码改变。
技术实现思路
提供本
技术实现思路
是为了以简化的形式介绍一系列代表性构思,在下面的具体实施方式中进一步描述这些构思。本
技术实现思路
不旨在确定所要求保护的主题的关键特征或基本特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。简而言之,本文中描述的技术的一个或更多个方面涉及一种在发布者服务和订户服务通信中使用的抽象和数据模型,该抽象和数据模型使得能够进行动态通信改变。一个或更多个方面包括经由代理服务器在订户服务与发布者服务之间传送第一组服务请求及其响应,包括在代理服务器处使用第一组网络通信数据来与发布者服务通信。基于第一组网络通信数据的改变将第一组网络通信数据更新为更新的网络通信数据。经由代理服务器在订户服务与发布者服务之间传送第二组服务请求及其响应,包括在代理服务器处使用更新的网络通信数据来与发布者服务通信。在结合附图考虑以下详细描述时,其他的优点可以变得明显。附图说明本文中描述的技术通过示例的方式示出并且不限于附图,在附图中相同的附图标记指示相似的元件,并且在附图中:图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本文档来自技高网...

【技术保护点】
1.一种方法,包括:/n在具有订户服务和代理服务器的订户服务器处:/n从订户服务向所述代理服务器发送第一服务请求,所述服务请求与对应于发布者服务的身份信息相关联;/n将所述第一服务请求传送至所述发布者服务,包括经由所述代理服务器传送,其中,所述代理服务器使用包括网络通信数据的可变配置数据来与所述发布者服务通信;/n从所述发布者服务接收对所述第一服务请求的第一响应;/n获得指示所述网络通信数据的改变的信息;/n基于所述指示所述网络通信数据的改变的信息将所述可变配置数据更新为更新的配置数据;/n从订户服务向所述代理服务器发送第二服务请求,所述服务请求与对应于所述发布者服务的身份信息相关联;/n将所述第二服务请求传送至所述发布者服务,包括经由所述代理服务器传送,其中,所述代理服务器使用所述更新的配置数据来与所述发布者服务通信;以及/n从所述发布者服务接收对所述第二服务请求的第二响应。/n

【技术特征摘要】
【国外来华专利技术】20170217 US 15/435,9401.一种方法,包括:
在具有订户服务和代理服务器的订户服务器处:
从订户服务向所述代理服务器发送第一服务请求,所述服务请求与对应于发布者服务的身份信息相关联;
将所述第一服务请求传送至所述发布者服务,包括经由所述代理服务器传送,其中,所述代理服务器使用包括网络通信数据的可变配置数据来与所述发布者服务通信;
从所述发布者服务接收对所述第一服务请求的第一响应;
获得指示所述网络通信数据的改变的信息;
基于所述指示所述网络通信数据的改变的信息将所述可变配置数据更新为更新的配置数据;
从订户服务向所述代理服务器发送第二服务请求,所述服务请求与对应于所述发布者服务的身份信息相关联;
将所述第二服务请求传送至所述发布者服务,包括经由所述代理服务器传送,其中,所述代理服务器使用所述更新的配置数据来与所述发布者服务通信;以及
从所述发布者服务接收对所述第二服务请求的第二响应。


2.根据权利要求1所述的方法,其中,在所述代理服务器使用所述更新的配置数据来与所述发布者服务通信的情况下将所述第二服务请求传送至所述发布者服务在不改变所述订户服务的代码的情况下发生。


3.根据权利要求1所述的方法,其中,获得所述指示所述网络通信数据的改变的信息包括接收与通信策略、通信方法、协议或实现方式对应的改变数据。


4.根据权利要求1所述的方法,其中,获得所述指示所述网络通信数据的改变的信息包括接收与网络状态数据的改变对应的改变数据。


5.根据权利要求1所述的方法,其中,将所述第一服务请求传送至所述发布者服务还包括通过中间件传送。


6.根据权利要求5所述的方法,其中,获得所述指示所述网络通信数据的改变的信息包括接收与中间件操作或实现方式的改变或者中间件操作和实现方式的改变对应的改变数据。


7.根据权利要求6所述的方法,还包括:检测网络状态数据的改变,并且基于检测到所述改变来改变所述中间件操作或所述实现方式、或者所述中间件操作和所述实现方式二者。


8.根据权利要求6所述的方法,还包括:存储库控制所述中间件操作或所述实现方式、或者所述中间件操作和所述实现方式二者,并且在所述存储库处提供所述指示所述网络通信数据的改变的信息。


9.一种系统,包括:
耦接至发布者服务的存储库;
保持所述存储库的信息的数据存储,所述存储库的信息包括注册的发布者服务和用于每个注册的发布者服务的通信数据;
耦接至所述存储库的状态检测逻辑,所述状态检测逻辑基于对状态改变的检测来改变由至少一个发布者服务使用的通信数据;以及
耦接至订户服务的所述存储库,包括在订户服务已向所述存储库注册以监视的发布者服务的通信数据改变时将信息传送至所述订户服务。


10.根据权利要求9所述的系统,其中,所述发布者服务的通信数据的改变包括以下中的...

【专利技术属性】
技术研发人员:德克斯特·保罗·布拉德肖杰弗里·斯坦伯约翰曾晋江
申请(专利权)人:家庭票房公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1