本地或分布式计算机系统上的柔性节点组成的方法和系统与流程

文档序号:20439040发布日期:2020-04-17 22:16阅读:107来源:国知局
本地或分布式计算机系统上的柔性节点组成的方法和系统与流程

本申请是中国申请号为201480041235.3(对应于pct国际申请号pct/us2014/038009)、申请日为2014年5月14日、发明名称为“本地或分布式计算机系统上的柔性节点组成的方法和系统”的发明专利申请的分案申请。

相关申请的交叉引用

本申请要求2013年5月20日提交的发明名称为“本地或分布式计算机系统上的柔性节点组成的方法和系统(methodandsystemforflexiblenodecompositiononlocalordistributedcomputer)”的第61/825,284号美国临时专利申请的权益和优先权,其整体并入此处。



技术实现要素:

本文描述的实施例涉及扩展服务、从第一服务版本过渡到第二版本以及实现外部系统集成服务。在一个实施例中,计算机系统建立保持允许在服务之间进行通信的消息队列的消息代理服务。消息队列从发布者接收消息并将消息传递给订阅者。计算机系统为每一个服务指示预定消息队列,其中预定消息队列配置为保持该服务的消息。计算机系统也将服务的至少之一移动到不同的第二计算机系统,预定消息队列保持所移动服务的消息。

在另一个实施例中,计算机系统从第一服务版本过渡到第二版本。计算机系统实例化第一服务版本并实例化同一服务的第二版本,使得同时运行第一服务版本和第二服务版本。计算机系统然后确定发送到第一服务版本进行处理的消息(或尚未发送到任何服务的消息)将要发送到第二服务版本并且使用第二服务版本处理消息。

在另一个实施例中,计算机系统实现外部系统集成服务。计算机系统确定已经建立内部消息代理服务。消息代理服务配置为保持允许在服务之间进行通信的消息队列。消息队列从发布者接收消息并将消息传递给订阅者。计算机系统实例化外部系统集成服务连同内部消息代理服务。外部系统集成服务配置为订阅预定的注册消息并将注册消息转发给各种外部实体。计算机系统或使用外部系统集成服务的外部系统可以进行外部系统集成服务的配置。计算机系统还接收外部系统集成服务所注册的消息并且外部系统集成服务将接收的注册消息转发给预定外部实体。

根据另一实施例,提供了一种用于从第一服务版本过渡到第二版本的计算机实施方法,所述方法在使用存储器中存储的指令的一个或多个处理器处执行,所述方法包括:

实例化服务的第一版本;

实例化同一服务的第二版本,使得同时运行所述服务的所述第一版本和所述服务的所述第二版本;

确定发送到所述服务的所述第一版本进行处理的消息要被发送到所述服务的所述第二版本;以及

使用所述服务的所述第二版本处理所述消息。

提供本概要来介绍将在以下的详细说明书中进一步描述的简化形式的构思的选择。这一概要并非旨在限定所请求保护主题的关键特征或主要特征,也并非旨在用于辅助确定所请求保护主题的范围。

附加特征和优点将在随后的说明书中阐述,且通过说明书附加特征和优点对于本领域技术人员来说将变得部分明显,或者可以通过本文的技术实践而获悉。本文描述的实施例的特征和优点可以通过所附权利要求书中特别指出的器具和组合而实现和得到。根据以下说明书和所附权利要求书,本文描述的实施例的特征将变得更加明显。

附图说明

为了进一步阐明本文描述的实施例的上述和其它特征,通过参考附图将呈现更具体的说明。将理解的是,这些附图仅描述本文描述的实施例的示例,因此并不认为限制其范围。通过使用附图以额外的特征和细节来描述和说明实施例,其中:

图1示出可以以包括扩展服务等来操作本文描述的实施例的扩展计算机架构。

图2示出扩展服务的示例方法的流程图。

图3示出从第一服务版本过渡到第二版本的示例方法的流程图。

图4示出实现外部系统集成服务的示例方法的流程图。

图5示出接收消息从第一服务版本发送到第二服务版本的实施例。

图6示出实现外部系统集成服务以将消息转发到外部实体的实施例。

图7示出使用指定主题关键字通过消息代理服务传递消息的实施例。

具体实施方式

本文描述的实施例涉及扩展服务(scalingservice),从第一服务版本过渡到第二版本以实现外部系统集成服务。在一个实施例中,计算机系统建立保持消息队列的消息代理(messagebroker)服务,消息队列允许在服务之间通信。消息队列从发布者接收消息并将消息传递给订阅者。计算机系统指示每一个服务的预定消息队列,其中预定消息队列被配置为保持该服务的消息。计算机系统也允许这些服务的至少其中之一移动到第二个不同的计算机系统,而预定消息队列保持该移动服务的消息。

在另一个实施例中,计算机系统从第一服务版本过渡到第二版本。计算机系统实例化第一服务版本并实例化同一服务的第二版本,使得同时运行服务的第一版本和服务的第二版本。然后计算机系统确定发送到服务的第一版本用于处理的消息(或尚未发送到任何服务的消息)要被发送到服务的第二版本并且使用服务的第二版本来处理消息。

在另一个实施例中,计算机系统实现外部系统集成服务。计算机系统确定已经建立了内部消息代理服务。消息代理服务配置为保持允许在服务之间通信的消息队列。消息队列从发布者接收消息并将消息传递给订阅者。计算机系统实例化外部系统集成服务连同内部消息代理服务。外部系统集成服务配置为订阅预定的注册消息并且将注册消息转发给各种外部实体。计算机系统或使用外部系统集成服务的外部系统可以执行外部系统集成服务的配置。计算机系统也接收注册外部系统集成服务的消息并且外部系统集成服务将接收的注册消息转发给预定外部实体。

以下讨论现在是指多种方法和可以执行的方法动作。应当注意,虽然方法动作可能是以特定顺序讨论或在流程图中示出为以特定顺序发生,但不一定要求特定排序,除非另有指定或要求,或者除非因为在执行某动作之前该动作需要取决于另一个动作完成。

如下面更详细讨论地,本文描述的实施例可以包括或者利用包括计算机硬件(例如,一个或多个处理器和系统存储器)的专用或通用计算机。本文描述的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其它计算机可读介质。这些计算机可读介质可以是能够被通用或专用计算机系统访问的任何可利用的介质。存储呈数据形式的计算机可执行指令的计算机可读介质为计算机存储介质。携带计算机可执行指令的计算机可读介质为传输介质。因而,通过示例方式而非限制,本文描述的实施例能够包括至少两个明显不同类型的计算机可读介质:计算机存储介质和传输介质。

计算机存储介质包括ram、rom、eeprom、cd-rom、基于ram的固态驱动器(ssd)、闪存、相变存储器(pcm)、或其它类型的存储器、或其它光盘存储器、磁盘存储器或其它磁性存储设备,或者能被用于以计算机可执行指令、数据或数据结构的形式存储期望的程序代码手段并能由通用或专用计算机访问的任意其它介质。

“网络”被限定为能够在计算机系统和/或模块和/或其它电子设备之间传送电子数据的一个或多个数据链路和/或数据交换。当经由网络(硬连线、无线或者硬连线或无线的组合)将信息传递或提供到计算机时,计算机将连接恰当地视为传输介质。传输介质可以包括能够被用于携带呈计算机可执行指令形式或呈数据结构形式的数据或期望程序代码手段并能被通用或专用计算机访问的网络。上述的组合还应包含在计算机可读介质的范围内。

另外,一旦到达各种计算机系统部件,呈计算机可执行指令或数据结构形式的程序代码手段可从传输介质自动传递到计算机存储介质(反之亦然)。例如,经由网络或数据链路接收的计算机可执行指令或数据结构能够在网络接口模块(例如,网络接口卡或“nic”)内的ram中缓冲,然后最终被传递到计算机系统ram和/或计算机系统处的少易失性计算机存储介质。因而,应理解的是,计算机存储介质能被包含于同样(或者甚至主要)利用传输介质的计算机系统部件中。

计算机可执行(或计算机可解释)指令例如包括使通用计算机、专用计算机或专用处理设备执行特定功能或特定组功能的指令。计算机可执行指令例如可以是二进制、中间格式指令(例如汇编语言)、或者甚至源代码。尽管以专门针对结构特征和/或方法行为的语言描述了主题,但应理解的是,所附权利要求书中限定的主题不必限制于上面所描述的特征或动作。而是上述特征和动作作为实施权利要求的示例性形式而公开。

本领域技术人员将理解的是,各种实施例可以在具有多种类型的计算机系统构造的网络计算环境中实行,该计算机系统构造包括个人计算机、台式计算机、便携式计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络pc、小型计算机、大型计算机、移动电话、pda、平板电脑、寻呼机、路由器、交换机等。本文描述的实施例还可以在分布式系统环境中实行,在分布式系统环境中,经由网络链接(通过硬连线数据链路、无线数据链路或通过硬连线数据链路和无线数据链路的组合)的本地计算机系统和远程计算机系统每一个均执行任务(例如云计算、云服务等)。在分布式系统环境中,程序模块可以位于本地存储设备和远程存储设备二者中。

在本说明书和以下权利要求书中,“云计算”被定义为使按需网络访问可配置计算资源(例如,网络、服务器、存储器、应用和服务)的共享池的模型。“云计算”的定义不限于能够在恰当配置时从这种模型获得的其它多个优点的任一优点。

例如,云计算目前在市场上被采用以便提供对可配置的计算资源的共享池的无处不在且方便的按需访问。而且,可配置的计算资源的共享池能够经由虚拟化快速提供,并且用较少的管理工作或较少的服务提供商交互进行释放,然后因此调整。

云计算模型能够包括各种特性,诸如,按需自助服务、广泛的网络访问、资源池化、快速扩展、测量服务等。云计算模型也可以呈各种服务模型的形式,例如,软件即服务(softwareasaservice,“saas”)、平台即服务(platformasaservice,“paas”)以及基础设施即服务(infrastructureasaservice,“iaas”)。云计算模型也可以使用不同的部署模型来进行部署,诸如,私有云、社区云、公共云、混合云等。在本说明书和权利要求书中,“云计算环境”是其中采用云计算的环境。

额外地或可选择地,本文描述的功能能够至少部分地通过一个或多个硬件逻辑部件来执行。举例来说,而非限制性的,能够使用的示例性类型的硬件逻辑部件包括现场可编程门阵列(fpga)、程序专用集成电路(asic)、程序专用标准产品(assp)、系统级芯片系统(soc)、复杂可编程逻辑器件(cpld)以及其它类型的可编程硬件。

更进一步,本文描述的系统架构能够包括多个独立部件,每个独立部件有助于系统的整体功能。这一模块化使得在解决平台可扩展性的问题时提高灵活性,为此,提供了各种优点。通过使用具有有限功能范围的小尺度部件能够更容易地管理系统复杂性和成长。通过使用这些松散耦合的模块来增强平台容差。各个部件能够随着商业需求的决定而逐步增长。模块化开发也转化为减少为新功能投放市场所需的时间。新的功能能够被添加或去除,而不影响核心系统。

图1示出其中可以采用至少一个实施例的计算机架构100。计算机架构100包括第一计算机系统101和第二计算机系统108。第一计算机系统101和第二计算机系统108可以是包括云计算系统的任何类型的本地或分布式计算机系统。这些计算机系统可以包括用于执行各种不同功能的模块。例如,第一计算机系统101包括消息代理服务102。消息代理服务可以在第一计算机系统上实例化并且可以用于与多个服务交互,这些服务包括但不限于服务a、服务b以及服务c(分别为105a、105b以及105c)。服务a-c可以是任何类型的计算机服务、应用、功能或其它类型的软件功能。

消息代理服务102可以配置为保持消息队列103。消息队列可以接收从服务(105a-105c)发布的消息并且可以将这些消息发送给这些消息的订阅者。因此,如图1所示,服务a订阅来自服务b和服务c的消息。因此,每当服务b或服务c发布消息(例如发布消息106)时,相应的消息队列b和c(分别为103b和103c)将任何订阅消息107转发给服务a。类似地,因为服务b订阅服务c的消息,所以消息队列c(103c)将服务c发布的订阅消息107转发给服务b。此外,因为服务c订阅服务a的消息,所以消息队列a(103a)将服务a发布的订阅消息107转发给服务c。在一些情况下,需要指出,消息代理服务102可以保持单个队列或多个队列。例如,服务可以基于主题订阅消息。如此,对于服务,结果是队列只提供该主题的消息,而事实上,单个消息队列可以具有许多不同主题的消息。

图1示出了三个服务,且示出了这三个服务的每一个既是发布者又是订阅者,将理解的是,基本上可以实例化任何数量的服务,并且这些服务的任何之一可以仅是发布者、或仅是订阅者或既是发布者又是订阅者。以此方式,服务能够订阅从特定服务接收消息,而这些服务不需要担心谁在订阅或将这些消息发送给谁。而是,服务能够将它们的消息发布给消息代理,并且消息代理的消息队列将消息恰当地转发给订阅接收这些消息的服务。

还需指出,服务可以从一个计算系统移动到另一个计算系统。例如,服务b(105b)可以从第一计算机系统101移动到第二计算机系统108。服务可以在服务停止运行之后移动,或者可以在服务运行时动态移动。如此,服务可以在运行时间通过计算机系统101的服务移动模块104在计算系统之间移动或传递。下文将分别就图2的方法200、图3的方法300以及图4的方法400进一步说明这些概念。

鉴于上文描述的系统和架构,参照图2、图3以及图4的流程图将更好地理解可以根据所公开的主题实施的方法。为了解释简单的目的,该方法被示出且描述为一系列方框。然而,应当理解的是,所要求保护的主题不受这些方框的顺序限制,一些方框可按与本文描写且描述不同的顺序发生和/或与其它方框同时发生。而且,并不一定需要所有示出的方框来实施在下文中描述的方法。

图2示出扩展服务的方法200的流程图。现在将频繁参考环境100的部件和数据来描述方法200。

方法200包括建立保持一个或更多消息队列的消息代理服务,一个或更多消息队列允许在多个服务之间通信,消息队列配置为从发布者接收消息并将消息传递给订阅者(210)。例如,第一计算机系统101可以建立消息代理服务102。消息代理服务102促进服务之间的通信,诸如服务105a-105c(或未示出的其它服务)。消息代理服务102启动并管理各种消息队列103,消息队列103从发布者接收消息(即发布消息106)并将消息传递给订阅者(即订阅消息107)。因此,发布者(例如服务105a)能够发布与其操作状态、其操作结果、通知消息有关的消息或其它类型的消息。可以发布这些消息而无需考虑实际上是谁在订阅这些消息。

在一些情况下,与消息代理服务102通信的服务可以仅是发布者(即它们不订阅任何其它服务的消息)。在其它情况下,服务可以仅是订阅者(即它们不对其它订阅者发布消息)。在另外一些情况下,服务105a-105c可以既是发布者又是订阅者(即它们既发布消息也接收它们所订阅的消息(例如订阅消息107))。服务105a-c可以在单个计算机系统或多个计算机系统上运行。而且,服务可以在操作之前、操作之后或操作期间在计算机系统之间移动。在一些情况下,服务本身可以具有在相同或多个不同的计算机系统上运行的至少两个不同的实例。例如,为了故障转移或其它目的,消息代理服务102可以在多个不同的计算机系统上的具有其自身两个或更多个不同示例。

方法200还包括为一个或多个服务的每一个指示预定消息队列,预定消息队列配置为保持该服务的消息(220)。消息代理服务102可以启动许多不同的消息队列103。可以具体指定这些消息队列的一些或全部以处理特定服务的消息。因此,可以具体指定消息队列a(103a)以处理服务a(105a)的消息。因此,消息队列a将接收服务a的发布消息106并且将发布消息106发送给订阅接收服务a的消息的那些服务(例如服务c(105c))(或其它实体)。类似地,可以指定消息队列b(103b)以处理服务b的消息,并且可以指定消息队列c(103c)以处理服务c的消息。

方法200而后包括将这些服务的至少其中之一移动到第二个不同的计算机系统,其中预定消息队列保持该移动服务的消息(230)。第一计算机系统101的服务移动模块104可以将服务105a-c的任何一个或多个移动到另一个计算机系统。因此,例如,服务移动模块104可以将服务b(105b)从计算机系统101移动到第二计算机系统108。这些服务可以在服务的操作期间的任何时间移动。可以在运行时间之前、运行时间之后或运行时间期间动态添加额外的服务。类似地,可以在运行时间之前、运行时间之后或运行时间期间动态去除现有服务。为了增加吞吐量或减少使用额外计算机系统的成本、协助负载平衡、协助故障转移,或为了其它原因,可以移动、添加或去除服务。虽然本文描述的实施例描述涉及两个或三个服务的实施方式,这么做仅是为了简单起见,需要指出,为了协助吞吐量、负载平衡、故障转移或为了其它原因,可以移动、添加或去除大体任何数量的服务。

在一些实施例中,如图7所示,消息代理服务701的主题关键字指定模块702可以为每一条消息703指定主题关键字(topickey)704。主题关键字704指示消息703的主题。例如,主题可以表示消息703是通知消息或报告消息。具有其相应主题关键字的这些消息可以基于消息的预定主题关键字路由给订阅者。如此,与预定主题关键字704相关联的消息通过消息代理服务701路由给订阅了该主题的消息的订阅者。例如,如果服务a(705a)订阅了特定主题的消息(例如“错误”或“完成”或“操作状态”),将具有与那些消息对象对应的主题关键字的消息路由给服务a。基于服务b(705b)和服务c(705c)订阅的消息主题,消息代理服务701同样将消息路由给服务b(705b)和服务c(705c)。因此,在这些实施例中,订阅者可以从特定发布者订阅所有消息,或者仅从该发布者订阅具有预定主题关键字的消息。而且,订阅者可以简单地订阅具有特定主题关键字的消息,而不管发布者是谁。以此方式,发布者可以随着事件的发生而发布消息,并且这些消息可以通过消息代理服务701路由给订阅者。

至少在一些情况下,发布者可能完全不知道谁在订阅它们的消息。消息代理可以允许多个服务的任一服务发布消息给消息队列,并且还可以允许任何订阅者从消息队列接收消息。订阅消息107可以表示谁将消息发布给订阅者,并且还可以表示该消息的指定主题关键字。在一些情况下,消息可以包括检验消息的来源(即发布者)的安全令牌(securitytoken)。消息订阅者可以访问安全令牌并确定安全令牌是否有效。如果安全令牌有效,消息将发布在消息队列上。如果安全令牌无效,消息可以标记为无效并且被丢弃或忽略。而且,可以将其安全令牌无效通知给无效安全令牌的发布者和/或订阅者。在一些实施例中,可以在无安全令牌的情况下启动允许访问并路由一些消息的安全策略,而其它(也许具有更高的优先级)消息在能够被访问之前则要求有效令牌。而且,在一些实施例中,第一计算机系统101可能需要从一个服务过渡到另一个服务。参考图3在下文描述这些实施例。

在一些实施例中,可以实现服务监控服务。服务监控服务可以监控系统中的服务的操作状态。服务监控服务可以配置为监控包括消息代理服务的单个预定服务或多个不同的服务。监控可以包括将状态检查发送到一个或多个服务。这些状态检查可以是在服务与服务监控服务之间发送的内部消息。这些状态检查可以用于确定服务是否正常运作。因此服务监控服务确定服务是否响应状态检查,并且对于未响应状态检查的每一个服务,服务监控服务可以将服务不能正确操作通知给各种用户(包括例如系统管理员)。

服务监控服务可以进一步配置为确定哪些服务收听预定消息类型、发布预定消息类型、订阅预定消息类型、处理预定数量的消息或确定系统整体处理的消息的数量。在一些情况下,如果一个服务处理得多于或少于已知量,该服务可能运作错误。类似地,特定消息类型的发布者或订阅者可接收或发布相对大量的消息,因此可能更容易出错。来自服务监控服务的数据能够用于增加服务的数量以增加消息处理吞吐量,或者其可减少服务的数量以减少处理成本。可以随着处理需求改变自动且动态地实现服务的这些增加或减少。而且,服务监控服务能够配置为提供手动增加或去除服务的建议。

更进一步,服务监控服务可以识别哪些服务,包括相关服务,当前可用于消息处理。然后,基于该信息,服务监控服务可以基于所确定的服务的当前可用性来控制各种消息处理设定。例如,使用外部系统集成服务的系统或外部系统内的服务能够配置为取决于服务监控服务呈现的可用性信息以不同方式处理消息。例如,发布者可以通过可用性信息确定如何将消息路由给当前可用的那些服务。

图3示出从第一服务版本过渡至第二版本的方法300的流程图。现在将频繁参考图1的环境100和图5的环境500的部件和数据来描述方法300。

方法300包括实例化第一服务版本(310)。例如,计算机系统501的服务实例化模块502可以实例化第一服务版本503a,并且还可以实例化同一服务的第二版本503b,使得同时运行第一服务版本和第二服务版本(320)。同上,该服务可以实例化成多个不同的版本,包括三个或更多个版本(图5中未示出)。这些服务可以是包括服务、应用、软件功能或其它软件元素的任何类型的计算功能。第一版本503a在一些情况下可以是新升级的服务版本,而第二版本503b可以是未升级的旧版本。可以同时运行或者可以单独运行这些新版本和旧版本。

方法300接下来包括确定发送到第一服务版本用于处理的消息要被发送到第二服务版本(330)。例如,在第一版本是新版本而第二版本是旧版本的上述示例中,可以接收消息506,消息506仅对旧版本的服务有效,或消息506至少包括不能由新软件版本识别或不能够被新软件版本处理的一个元素。相反的情况也可以,其中第一版本503a是旧版本而第二版本503b是新版本,消息506仅能够由新版本(503b)处理。一个版本可处理传入消息而另一个服务版本不能处理传入消息可能存在许多不同的原因。不管是什么原因,计算机系统101可以确定消息506从第一服务版本503a传到第二服务版本503b。然后,第二服务版本可以用于处理消息506(340)。

在一个实施例中,当第一版本出故障时,消息506可以传递到第二服务版本。因此,第二服务版本503b为第一服务版本提供故障转移。在这些故障转移情景中,第二版本可以比第一版本旧或新。在一些情况下,这些服务版本之一(例如版本一(503a))可以一安装就自动实现。因此,一旦完成安装,新安装的服务版本就可以自动用于处理传入消息506。如此,服务可以升级并在升级之后自动实现(例如通过服务升级模块504),大大减少或消除升级停机时间。在一些情况下,一旦确定新升级版本正在运行,则另一个(例如第二)服务版本就自动卸载。

更进一步,可以基于各种逻辑评估来确定是否要将传入消息从第一服务版本503a发送到第二版本503b进行处理。例如,如果说第一版本响应该消息需要花费两秒钟或更多时间,则计算机系统101可以确定第一版本不可用,并且然后可以将该消息重新路由给同一服务的第二版本。可以类似方式配置并实现其它逻辑。上述仅是逻辑确定的一个示例。额外地或可选择地,确定是否要将消息506从第一服务版本503a发送到第二版本503b进行处理也可以基于用户或系统管理员设定的配置设定505。

在一些情况下,消息可以从第一版本传递到第二版本并且可以由第一版本和第二版本两者同时处理。在这些情况下,对于在处理期间产生的错误,可以比较同时运行的第一服务版本和第二服务版本的输出。如此,服务提供商可以测试应用程序的两个版本,并且确定哪一版本处理消息506时的错误最少。第二(新版本,也许是测试版本)版本可以与当前版本一起安装并运行,使得程序开发人员记录新版本的结果并测试新版本,而无任何额外的风险。额外地或可选择地,服务提供商(或其它用户)可以确定哪些版本产生哪些错误。使用这种数据,服务提供商可以明确哪一服务版本对于每一种类型的传入消息最佳。这一指示可以用于通过计算机系统501进行确定以将传入消息传递到第二版本503b或将传入消息保持在第一版本503a。以此方式,计算机系统101可以连续确定要将哪一服务版本用于(或最适合用于)每一个接收的消息。

图4示出用于实现外部系统集成服务的方法400的流程图。现在将频繁参考图1的环境100和图6的环境600的部件和数据来描述方法400。

方法400包括确定已经建立内部消息代理服务603,消息代理服务配置为保持允许在服务(例如发布者606和/或订阅者607)之间通信的一个或多个多消息队列604,消息队列配置为从发布者606接收消息并将消息605a/605b传递给订阅者607(410)。可以基于订阅和/或基于主题关键字来路由这些消息(如图7所示)。计算机系统601的服务实例化模块602可以用于实例化内部消息代理服务603。内部消息代理服务可以与图1描述的消息代理服务102大体相同。消息队列也可以与图1描述的消息队列103类似或相同。这些消息可以包括有关生产商品的机器的信息,包括操作状态消息、项目状态消息、错误消息或其它类型的消息。

方法400还包括实例化外部系统集成服务608连同内部消息代理服务603,外部系统集成服务608配置为订阅预定的注册消息605a/605b并且将注册消息605c转发给一个或多个外部实体611(420)。外部实体611可以是外部用户、公司、计算机系统、数据存储或位于计算机系统601外部或位于正在运行内部消息代理服务603所处位置外部的其它个体。外部系统集成服务608可以通过服务实例化模块602实例化,并且可以配置为收听在发布者606与订阅者607(例如图1的服务a、b或c(105a-105c)中的任意服务)之间传递的消息。

外部系统集成服务608然后可以确定将这些消息中的哪一消息发送到预定的外部实体。例如,外部实体可以预定它们想要接收表明可能出现了错误的任何错误消息或任何操作状态消息。这些消息将是“注册”消息或外部实体已经订阅或注册要接收的消息。外部系统集成服务订阅的消息可以通过外部系统集成服务、使用外部系统集成服务的外部系统或计算机系统101配置而成,或者选自它们内部。当在外部系统集成服务接收这些注册消息时(430),外部系统集成服务608可以将接收的注册消息605c转发给各种预定的外部实体611(440)。

外部系统集成服务也能够用于处理将消息转换为预定的外部系统通信协议或格式。例如,如果外部系统使用特定文件类型或协议通信,外部系统集成服务608可以将内部消息转译成特定格式(例如逗号分隔格式),并且使用预定协议传输文件。每一个外部实体611可以请求不同类型的消息,或来自特定发布者的消息或这两者。外部系统集成服务608可以与使用消息队列604的服务中的任意服务进行交互。外部系统集成服务还可以发布可用于外部实体611的方法。

在一些实施例中,控制系统609可以通过服务实例化模块602实例化为服务。控制系统可以连同建立的内部消息代理服务603和/或外部系统集成服务被实例化为服务。控制系统可以配置为操作一个或多个预定机器610的机器功能。例如,控制系统可以配置为当机器打开或关闭时、当机器处理特定工作时控制机器如何处理该工作(包括每一个工作的配置设定)或控制其它机器操作。机器610可以位于计算机系统601本地或远程,并且可以通过手动控制额外地进行控制。

服务实例化模块602也可以至少在一些实施例中实例化消息管道服务。消息管道服务可以配置为接收消息管道中以预定顺序处理的消息。消息管道服务可以发布接收的消息并且订阅那些消息的结果。例如,如果消息是(例如机器610的)机器命令,消息管道服务将订阅并且接收由于该命令导致的结果。这些消息结果然后可以在管道中添加为每一个随后接收的消息的输入参数(inputargument)。消息管道服务确定消息管道中已接收的最后一条消息,然后将消息管道的结果发布给订阅者607。以此方式,呼叫服务能够将任何中间步骤委托给管道服务。

因此,提供了允许在多个计算机系统上扩展和/或移动服务的方法、系统以及计算机程序产品。而且,提供了从一个服务版本过渡到另一个版本并且实现允许外部实体接收订阅者所发布消息的外部系统集成服务的方法、系统以及计算机程序产品。

本文描述的概念和特征可以以其它具体形式被具体实施,而不脱离其精神或描述特性。所描述的实施例在各方面被认为仅是示例性而非限制性的。本公开的范围因此由所附权利要求书而非前述说明书来加以指示。落入权利要求书的等同意义和范围内的所有改变将包含在其范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1