CN110968422A - 用于集成场景的负载分发 - Google Patents

用于集成场景的负载分发 Download PDF

Info

Publication number
CN110968422A
CN110968422A CN201811451745.4A CN201811451745A CN110968422A CN 110968422 A CN110968422 A CN 110968422A CN 201811451745 A CN201811451745 A CN 201811451745A CN 110968422 A CN110968422 A CN 110968422A
Authority
CN
China
Prior art keywords
workers
flow
iflow
load balancing
identifying
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.)
Pending
Application number
CN201811451745.4A
Other languages
English (en)
Inventor
U.菲尔德布兰特
M.布哈加瓦
S.阿胡贾
S.J
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.)
SAP SE
Original Assignee
SAP SE
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 SAP SE filed Critical SAP SE
Publication of CN110968422A publication Critical patent/CN110968422A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Educational Administration (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开大体上描述了用于处理集成流程的方法、软件和系统。最初将一组流程部署到单个工作者集。识别出与具有所述单个工作者集的工作者的初始运行时交互相关联的负载平衡问题。响应于识别所述负载平衡问题,对所述负载平衡问题进行分析以确定是否自动缩放或生成新工作者集。执行负载平衡以启动至少一个新工作者集。识别要移动到所述至少一个新工作者集的至少一个流程。执行所识别的至少一个流程从当前工作者集到新工作者集的移动。

Description

用于集成场景的负载分发
背景技术
本公开涉及处理集成流程。
发明内容
本公开大体上描述了用于分配和管理工作流程(包括管理用于集成场景 的负载分发)的计算机实现的方法、软件和系统。一种计算机实现的方法包 括:最初将一组流程部署到单个工作者集;识别出与具有所述单个工作者集 的工作者的初始运行时交互相关联的负载平衡问题;响应于识别所述负载平 衡问题,对所述负载平衡问题进行分析以确定是否自动缩放或生成新工作者 集;执行负载平衡以启动至少一个新工作者集;识别要移动到所述至少一个 新工作者集的至少一个流程;以及执行所识别的至少一个流程从当前工作者 集到新工作者集的移动。
前述和其他实现方式可各自任选地以单独或组合的方式包括以下特征 中的一个或多个。特别地,一种实现方式可包括所有以下特征:
在第一方面,可与任何前述方面组合,其中负载平衡问题包括存储器不 足异常。
在第二方面,可与任何前述方面组合,其中识别要移动到所述至少一个 新工作者集的至少一个流程包括随机移动所述至少一个流程。
在第三方面,可与任何前述方面组合,其中识别要移动到所述至少一个 新工作者集的至少一个流程包括:执行预计算以定义复杂度度量;以及基于 所述复杂度度量跨工作者集分发所述流程。
在第四方面,可与任何前述方面组合,其中所述复杂度度量是所述流程 的复杂度的量度,包括所述流程中的多个步骤中的一个或多个或所述流程中 的多个特殊步骤。
在第五方面,可与任何前述方面组合,其中特殊步骤包括映射步骤和脚 本步骤。
在第六方面,可与任何前述方面组合,其中所述流程表示集成场景。
本说明书的主题的一个或多个实现方式的细节将在附图和以下描述中 进行阐述。本主题的其他特征、方面和优点将从描述、附图以及权利要求书 变得显而易见。
附图说明
图1是用于执行负载处理的示例性环境的框图。
图2是示出自动缩放重新分发的框图。
图3是示出基于负载的重新分发的框图。
图4是示出传统应用程序和云本机应用程序(CNA)的示例的框图。
图5是iFlow(integrationflow,集成流程)的执行过程的示例的框图。
图6是服务器到工作者交互的示例的框图。
图7是示出包括协调器、运行时和平台的架构的示例的框图。
图8是示出包括协调器、运行时和平台的架构的示例的框图。
图9是用于将流程重新分配给工作者集的方法的示例的流程图。
图10是用于提供与本公开中描述的算法、方法、功能、过程、流程和 规程相关联的计算功能性的示例性计算机系统的框图。
具体实施方式
公开大体上描述了用于执行流程的负载分发的计算机实现的方法、软件 和系统。例如,流程(flow)可以是表示集成场景的集成流程iFlow。使用本 公开中描述的技术,可以将iFlow的数量分成对于工作者可管理的大小,从 而防止工作者的过载。例如,可以启动新工作者集,这可以解决分发问题。 使用的技术有助于克服工作者的物理边界限制执行能力的问题。将iFlow分 发给不同的工作者集可以执行所有iFlow。
使用单个iFlow容器的选项可以避免相同资源的iFlow实例冲突(恒定吞 吐量问题)。这是因为容器中只有一个iFlow,从而避免与其他iFlow竞争。 然而,存在的问题是,由于iFlow的数量(例如,在当前实现方式中为56KiFlow 束×2(高可用性(HA))=112K),该选项可以扩展底层技术的限制。
在使用k-iFlow容器的选项中,可以将iFlow组分组成部署到独立工作 者集的iFlow集。公式意味着,k1+k2+...+ki=n可用于为每个iFlow提供运 行时,其中所有iFlow都直接部署。
使用API服务器/工作者分离的选项可以使用微服务简单地拆分iFlow。 API服务器可以公开端点,并且工作者可以包含流水线执行。
图1是用于执行负载处理的示例性环境100的框图。环境100包括在云 中操作的云平台集成系统102(例如,使用网络104)并且为由用户执行的工 作流程提供集成服务(例如,使用至少一个客户端106)。
云平台集成系统102包括管理相关操作(包括负载平衡)的负载处理机 108和执行自动缩放过程的自动缩放器110。自动缩放过程可以包括创建特 定工作者集的同类副本(或实例)。阈值用于确定何时应进行自动缩放(与创 建新工作者集实例化相比),并且可以包括使用度量来帮助确定。度量可以 包括与中央处理器单元(CPU)使用相关的度量(例如,“CPU使用率X%(例如, 80%)是否持续预定的阈值时间段”)。度量还可以包括与存储器相关的度量 (例如,“在预定的时间段内是否有N%的存储器使用率?”)。CPU和存储器 消耗是两个度量,但iFlow的复杂度是另一个度量。iFlow的复杂度可以基 于束大小(例如,以千字节(KB)为单位)、iFlow大小(例如,iFlow中的步骤 数)和iFlow步骤类型。
例如,当将太多iFlow部署到工作者实例时,自动缩放器110可能具有 限制,这可能需要拆分工作者集。因此,可以使用自动缩放和实例化新工作 者集的组合。一种方法相对于另一种方法的选择可以基于各种标准,包括 iFlow的数量和工作者实例的数量。
例如,当单独的自动缩放不能处理附加资源或新工作者集的要求中的一 者或多者时,工作者集实例化器112可以被配置为生成新工作者集。可以使 用各种阈值来确定何时创建新工作者集。例如,第一阈值可以与工作者集的 多个实例(例如,五个实例)相关联。如果自动缩放器110不能以有用的方式 分发负载,则可以将流程切换(或重新分配)给其他工作者集。可以将第二阈 值建立为工作者集中的iFlow的数目。例如,如果工作者集中有太多流程, 则可以将所述流程重新分配给其他现有或新工作者集。术语工作者集实例化 器112可以与内容协调器同义使用或者可以称为内容协调器。例如,内容协 调器可以触发工作者集的启动,例如通过委托给租户资源管理器。
在一些实现方式中,为了实现高可用性,可以利用两个工作者实例来实 例化工作者集(例如,默认情况下)。如果自动缩放器110增加实例数,则它 仅对一个工作者集执行此操作。其他工作者集不受影响,因为它们处理不同 的iFlow。
iFlow分析器114可以执行与分析资源相关联的各种任务。例如,iFlow 分析器114可以确定执行iFlow所需的资源。iFlow分析器114还可以确定 在执行期间使用的资源,包括确定所监视的负载何时超过预定阈值。iFlow 分析器114还可以对与iFlow和工作者集实例相关联的特定资源使用进行分 析。在一些实现方式中,iFlow分析器114可以存储(或能够访问)关于某些 iFlow的历史信息,以便获得用于预计算考虑因素和复杂度度量的信息。例 如,所述计算可以确定步骤的数量、iFlow步骤的类型以及特定iFlow的历 史执行。iFlow分析器114可以通知工作者集实例化器112要实例化附加的 工作者集。
重新分发模块116可以被配置为使得iFlow的重新分发在不同的工作者 集之间发生。例如,基于iFlow分析器结果,重新分发模块116可以将一个 或多个特定iFlow移动到不同的工作者集中。负载平衡器117可用于平衡负 载。
运行时环境118可以被配置为管理一个或多个实例化的工作者集实例 120,包括管理在工作者集内执行的集成场景的iFlow。例如,使用简单算法, 运行时环境118可以仅以一个工作者集开始以用于iFlow的部署。使用简单 算法进行工作者集分发可以包括简单地将iFlow的数量分成两半,并在两个 工作者集之间平均分发iFlow。简单算法的缺点是没有识别可能导致问题的 iFlow(例如,基于复杂度使用附加资源)。因此,简单算法可以主要用作拆 分工作者集的分而治之策略。示例性拆分可以包括[10→5+5]或[10→5 +2+3](其中第二组五个iFlow工作者随后被拆分)。可替代地,使用预计 算算法并基于iFlow的已知特性,运行时环境118可以在部署时启动多个工 作者集。预计算算法可以使用iFlow分析器114来等几率平衡工作者集中的 复杂度。使用iFlow分析器114可以防止不期望的情况,例如,其中大多数 复杂的iFlow被分配给一个工作者集,而非复杂的iFlow被分配给另一个不同的工作者集。
云平台集成系统102包括可以存储集成场景124的存储器122。可以由 iFlow分析器114使用在集成场景124中定义的流程信息(包括iFlow定义) 来确定基于例如所定义的流程和流程模式所需的静态资源。每个iFlow定义 可以包括例如相关联的实例化开销和关于执行iFlow所需的资源的信息。
存储在存储器122中的负载平衡器规则126可以识别自动缩放器阈值和 工作者集生成阈值。存储在存储器122中的历史信息128可以包括关于特定 流程的信息,例如,关于特定流程的的资源消耗和其他统计信息。
云平台集成系统102包括向客户端106提供接口服务的接口130。云平 台集成系统102还包括处理器132,所述处理器132可以执行云平台集成系 统102的模块和组件的指令。
云平台集成系统102可以用于在运行时实时分发iFlow,从而可以以更 有效的方式使用资源。关于效率的考虑可以使用说明极端条件的示例来解 释。在未优化的极端情况下,所有iFlow都可以在一个运行时上运行(例如, n个iFlow的情况),这可能会产生例如利用iFlow所需的束数过载开放式服 务网关倡议(OSGI)运行时的问题。在此示例中,可能在同一运行时上完成所 有iFlow的同时执行,从而产生资源共享问题。因此,在考虑效率时,可以 使用k个iFlow解决方案的技术,其中l>k>n。
每个iFlow都可以基于iFlow的特性进行分类。例如,在静态情况下, 在部署iFlow之前,可以对iFlow的iFlow束的iFlow复杂度进行分析。对 iFlow的复杂度进行分类的标准可以包括例如束大小(例如,以千字节(KB) 为单位)、iFlow大小(例如,iFlow中的步骤的数量)和iFlow步骤类型。在 考虑iFlow步骤类型时,假设拆分器、映射和脚本步骤会产生显著的存储器 和CPU使用率。
在动态情况下,例如,在部署iFlow之后对iFlow的负载进行分析,可 以实时测量iFlow的资源使用率。例如,可以测量CPU使用、存储器使用、 请求数量(每iFlow)、请求大小和存储器不足情况,因为异常可以指示运行 时上的特定iFlow正在产生问题。
可以在iFlow的分发中使用各种算法方法。例如,第一种算法方法可以 从静态分析开始,并根据基于动态测量优化的静态标准填充工作者。这种方 法包括将iFlow从一个工作者重新分发到另一个工作者的挑战。这种方法的 优点包括优化资源使用和随后的iFlow重新分发。这种方法的缺点包括需要 复杂的重新分发算法。
例如,第二种算法方法可以从静态分析开始,并根据基于静态标准填充 工作者。如果工作者集已满,则可以使用下一个工作者集,但不存在动态重 新分发。这种方法的挑战在于以良好的方式定义静态标准来处理资源消耗。 这种方法的优点包括对OSGI束数量问题的解决方案(因为在运行时上只有有 限数量的iFlow同时运行)并且重新分发iFlow的复杂度很低。这种方法的 缺点包括缺乏资源消耗问题的解决方案(因为所有iFlow都被部署来处理请 求)并且不存在iFlow的重新分发)。
用于计算资源使用的不同方式可以取决于iFlow的数量。单个iFlow方 法和n个iFlow方法可以提供两种极端,并且k个iFlow方法可以提供折衷。 k个iFlow方法的优点可以变得明显,因为在k个iFlow的情况下,可以将 k个iFlow作为单个iFlow运行(在其自己的工作者集中运行每个iFlow)或 作为n个iFlow运行(仅运行一个工作者集)。在以下示例中,iFlow的数量 为400,运行时存储器消耗为1000MB,iFlow存储器消耗为1兆字节(MB), 并且工作者集的数量为10。
在单个iFlow方法中,存储器消耗可以是例如400,400MB。单个iFlow 方法存在的问题是运行时的固定存储器消耗可能导致整体存储器消耗非常 高。工作者数量是iFlow的数量。
在n个iFlow方法中,存储器消耗可以是例如1400MB。n个iFlow方 法可能具有以下缺点。首先,不可能将超过200个iFlow部署到工作者。其 次,因为iFlow在一个运行时处一起运行,所以一个iFlow中的异常会导致 所有其他iFlow崩溃。然而,存储器消耗(包括运行时的重用)可能是有效的。
在k个iFlow方法中,存储器消耗可以是例如10,400MB,并且一个工 作者的存储器消耗可以是1040MB。k个iFlow方法可以用作n个iFlow方 法(其可以由于iFlow的数量产生运行时问题)与存储器消耗之间的折衷。可 以通过工作者集数量(其可以是可动态配置的)来定义工作者数量。
图2是示出自动缩放重新分发200的框图。自动缩放重新分发200可以 解决工作者在重负载下的问题(例如,工作者集204中的iFlow202a-202d)。 可以使用自动缩放208将处于90%负载206下的工作者拆分成工作者集210 和212,每个工作者集具有45%负载214。在此示例中,一半的iFlow 202a-202d最终进入工作者集210和212中的每一个。然而,自动缩放208 不能处理复杂的重新分发。
图3是示出基于负载的重新分发310的框图。在重新分发之前,iFlow 202a-202f被分发在工作者集302、304和306中,所述工作者集分别包括三 个、两个和一个iFlow。另外,iFlow_2 202b和iFlow_3 202c各自被确定 为具有45%负载308。在此示例中,工作者集302具有90%负载310a(重 负载),并且工作者集304和306各自具有0%负载310b。在重新分发310 下,iFlow_3202c可以从工作者集302移动到工作者集306。因此,工作者 集302和306可以具有45%负载310c,而工作者集304仍然具有0%负载 310b。
在确定哪个iFlow应当被移动到另一个工作者集并且可以导致具有局部 最优的次优重新分发决策时,重新分发310可能不总是确定性的。例如,在 重新分发310之后,iFlow_4 202d和iFlow_5 202e仍然没有最佳资源使用 率。
可以使用各种选项来提高重新分发的有效性。在第一重新分发选项中, 应用程序编程接口(API)服务器可用于对iFlow的使用率和iFlow到工作者 集的当前分配进行分析。结果是未使用的iFlow可能未部署。有效的重新分 发可能需要算法或框架来识别在重负载下的iFlow。重新分发算法需要能够 利用已更改的iFlow集启动工作者,并且这可能会进一步增加API服务器的 复杂度。
在不使用API服务器的第二重新分发选项中,重新分发算法仍然需要对 iFlow的负载进行分析并识别已使用的iFlow。在不使用API服务器的情况 下产生的挑战包括依靠平台性能进行调度。例如,必须使用平台性能来针对 端点消费者实现稳定的统一资源定位符(URL)。需要智能重新分发来识别在 重负载下的iFlow,并且向不同的工作者集提供iFlow。
图4是示出传统应用程序400a和云本机应用程序(CNA)400b的示例的 框图。传统应用程序402包括用作用户前端的用户界面(UI)404。使用工作 的持久状态408在运行时环境406中执行流程。在传统应用程序(app)410 中,主动管理412大小,这可能导致过度配置资源和单体部署414。对于整 个应用程序,状态保持416。发生418进程内通信,并且对项目和操作(op) 产生实现方式420。
可能需要手动缩放工作者节点,从而导致过度配置资源以满足每个请 求。扩展资源的情况类型包括例如峰值(和非常大)消息和恒定吞吐量。在峰 值(非常大)消息的情况下,云平台集成(CPI)可以获得100兆字节(MB)可扩 展标记语言(XML)消息。XML序列化可能导致已用存储器的爆炸(假设使用的 堆大小为500MB)。如果iFlow包含映射,那么6倍的平均因子可以应用于 存储器消耗,以将消息从一种格式转换为另一种格式(例如,500MB×6= 3000MB)。在恒定吞吐量的情况下,CPI可以接收大量消息,并且映射和脚 本可以产生显著的存储器请求。当存储器不足异常发生时,可能会发生存储 器崩溃。
CNA 422是弹性可缩放的424并且具有基于微服务的部署426。流程的 状态在一些组件中被隔离(428),并且通过定约松散地耦接,其中远程通信 (430)通过网络发生。部署可以是自动化的(432)以用于开发操作(DevOps)和 NoOps,包括iFlow的部署、监视和管理的自动化。
CNA 434包括用作用户前端的UI 436。使用利用持久状态444和446的 微服务438-442促进流程。适用于传统app 410和CNA 422的可靠性方程448 和450可以基于在平均故障时间(MTTF)与平均更换时间(MTTR)之间的数学关 系。
可以使用各种选项来管理iFlow容器。在流传送选项中,iFlow流水线 可以与流传送一道工作来减少存储器消耗。
在使用拆分成微服务的选项中,CNA架构可以建议将运行时拆分成较小 单元以处理具有较小单元的负载。因为映射引擎专注于执行映射,所以映射 引擎不需要太多存储器。峰值场景可能适合此选项,因为完整的iFlow不必 保留在存储器中。然而,在没有流传送的情况下,映射引擎的存储器消耗可 以处于相同维度。
图5是iFlow的执行过程500的示例的框图。执行过程500涵盖单个 iFlow工作者,其类似于单个iFlow容器实现方式,并且其中工作者仅执行 一个iFlow。执行任务的用户502可以与API 504对接,API 504提供端点 506、运行时508和平台细节510。API 504可以促进在工作者实例514的控 制下的任务512的执行和管理。工作者实例514提供集成流程516、运行时 518和平台细节520。API 504和工作者实例514可以处理在iFlow期间创建 的消息522。
Figure BDA0001886843530000091
表1=每容器大小参数和条件
一些架构决策可以基于在单个iFlow工作者集的情况下对API服务器/ 工作者拆分的评估。单个iFlow工作者集可以在复杂度与资源优化之间提供 公平的折衷,假设如下:1)需要一个预热的容器库,因为容器的动态启动太 耗时;2)根据使用率,成本可能会上升的风险仍然存在,因为跨容器的资源 共享相当低(其中每个租户的iFlow使用率<50%);3)API服务器可以使用负 载平衡器进行调度,从而允许由平台处理负载平衡、故障转移和自动缩放; 4)对于定时器触发的iFlow(通常是稀有类型的iFlow),容器总是可以启动; 5)由于不同组的复杂挑战,将k个iFlow方法与动态分发相结合可能是不切 实际的;6)API服务器有可能成为单点故障(取决于部署拓扑结构),这可能 会对可扩展性和可靠性产生不利影响;并且7)在技术上可能的是,多个集成 流程暴露相同的端点。
在一些实现方式中,可以发生iFlow的拆分。在常规系统中,iFlow可 以从打包的beans.xml转换到OSGI束中。拆分意味着必须将端点推送到API 服务器,并且剩余的iFlow必须去往工作者。
可iFlow分类成三组:1)使用超文本传输协议(HTTP)端点的组,用于 iFlow的按需执行;2)使用快速调度的组,其中适配器定期轮询,并且如果 存在新数据,则必须开始处理,例如,使用文件传输协议(FTP)或Java消息 服务(JMS));以及3)使用不规则调度的组,包括一次运行或特定的调度机制。
用于拆分iFlow的技术可包括以下选项。在第一选项中,API服务器可 以重用相同的beans.xml。beans.xml可以部署到API服务器,其中只执行 消费者,因为路由定义是动态变化的。
第二选项可以使用具有用于端点的特定beans.xml的API服务器。在此 选项中,iFlow生成可以创建两个束:1)具有消费者端点和委托到工作者端 点的beans.xml;以及2)具有iFlow的其余功能的beans.xml。
第三选项可以使用Tomcat-API服务器,并且iFlow生成可以创建伪影(artifact),其中Tomcat-API服务器为每个iFlow和元数据提供单独的伺 服小程式,以处理iFlow到工作者的重定向(运行时处的通用重定向)。
图6是服务器到工作者交互的示例的框图。API服务器602可以重用运 行时以通过至少一个路由604(以及通过工作者节点608中的路由606)来暴 露端点。可以在API服务器上执行特定端点束。优点在于,可以在API服务 器上执行调度适配器,并且不需要针对轮询操作启动工作者。缺点包括:暴 露端点的运行时的占用空间(footprint)高于Tomcat运行时,并且某些适 配器的事务处理可能变得更加复杂,例如,JMS和适用性声明2(AS2)。基 于此信息,实现方式可以使用轻量级API服务器来避免beans.xml的拆分, 并且路由可以完全在工作者上运行。选定的实现方式还可以基于API服务器 如何识别将接管工作的工作者,所述工作包括将集成流程部署到工作者并在 没有任何请求出现的情况下驱逐iFlow。
例如,架构的选择可以基于例如发现与协调器功能合并,因为协调器负 责分发束和节点的生命周期,例如,向工作者部署iFlow束,因此工作者和 iFlow束的状态可在节点协调器处可用/存储。因此,用于协调器的选项可包 括以下内容。
协调器可以被认为是一个行动者。然而,评估可以确定协调器至少有两 个目的:节点管理和内容管理。关于节点管理,协调器负责节点(包括API 服务器)的所有生命周期操作。协调器负责启动和停止应用程序/pod。协调 器收集关于每个应用程序实例单个行动者的运行状况的信息,所述行动者查 询运行每个应用程序运行状况的应用程序的数量。协调器针对每个应用程序 /pod安装文件系统卷。协调器针对每个应用程序/pod定义并实施安全和网 络策略。协调器提供每个应用程序所需服务的绑定,并且在应用程序/pod 停止时清理资源。
在一些实现方式中,可以基于租赁的维度(例如,多租户节点或特定于 租户)将协调器拆分成两个主域。例如,协调器可以存在四个选项:1)多租 户节点协调器和多租户内容协调器;2)多租户节点协调器和特定于租户的内 容协调器;3)特定于租户的节点协调器和多租户内容协调器;以及4)特定于 租户的节点协调器和特定于租户的内容协调器。
图7是示出包括协调器802、运行时804和平台806的架构802a的示例 的框图。协调器802的租户资源管理器812负责工作者、共享和数据库的资 源利用和管理。协调器802的内容协调器810可以处理特定租户的内容。在 架构800a中,结果是租户资源管理器812是多租户,并且内容协调器810 是特定于租户的。
图8是示出包括协调器802、运行时804和平台806的架构800b的示例 的框图。在架构800b中,内容协调器810被分配给运行时804的微服务, 以处理工作者实例818的iFlow820的iFlow束。
API服务器814与工作者实例818之间的分离的目标是仅在存在对特定 iFlow的请求时才启动工作者。这意味着必须管理工作者节点实例,所述管 理包括启动新工作者(如果请求未使用iFlow实例)和停止在预定时间帧内未 使用的工作者。可以假设存在一库可用的工作者进行调度。在请求到达API 服务器814的情况下,工作者获得对应的iFlow,重定向消息,并且可以处 理执行。
API服务器814处理生命周期管理操作。优点是API服务器814完全处 理工作者和iFlow。缺点是与内容协调器810的功能重叠。每次需要生命周 期操作时,可以调用内容协调器810。优点是协调器802具有处理工作者和 iFlow的明确责任。缺点是API服务器814必须联系协调器802关于跨越微 服务的边界并且可能违反运行时804的部署。API服务器814可以调用内容 协调器810以启动新工作者并停止未使用的工作者。
图8是示出包括协调器802、运行时804和平台806的架构800C的示例 的框图。在架构800c中,iFlow可以直接部署到工作者节点,并且所有iFlow 都可以部署到租户的所有工作者节点。在使用单个iFlow容器的实现方式中, 当iFlow部署到具有动态分解的工作者时,还需要在稍后的时间点处将 iFlow部署到工作者。
API服务器814可以触发iFlow到工作者的部署。在此示例中,协调器 802可能成为部署的潜在瓶颈,工作者节点检索束。此外,工作者节点可以 从存储库获得束并部署束而无需联系任何其他节点。仅工作者就可以处理 iFlow的部署,并且工作者需要接管内容生命周期任务。
可以将消息执行和通信委托给工作者。在一些实现方式中,消息可以使 用HTTP来同步。消息可以存在于对象存储装置中。基于消息大小,可以直 接或使用对象存储装置来传输消息,这可以提供更好的资源利用率和线程管 理。在一些实现方式中,可以使用队列异步发送消息(暗示使用对象存储装 置)。消息传递完全可以依赖于对象存储装置的使用。然而,基于消息大小, 可以直接传输消息。所使用的消息传递技术可以取决于可靠性、延迟以及消 息代理或对象存储装置的使用的考虑因素。
图9是用于将流程重新分配给工作者集的方法900的示例的流程图。例 如,方法900可以由云平台集成系统102执行。为了清楚地呈现,以下描述 一般地描述了图1至图8的上下文中的方法900。
在902处,最初将一组流程部署到单个工作者集。作为示例,可以将 iFlow 202a-202d部署到工作者集204。
在904处,识别出与具有单个工作者集的工作者的初始运行时交互相关 联的负载平衡问题。例如,负载处理机108可以确定工作者集204具有重负 载(例如,90%)。
在906处,响应于识别负载平衡问题,对负载平衡问题进行分析以确定 是否自动缩放或生成新工作者集。例如,负载处理机108可以确定工作者集 204是否应当被自动缩放(例如,自动缩放成工作者集210和212),或者是 否应当由工作者集实例化器112生成新工作者集。
在908处,执行负载平衡以启动至少一个新工作者集。例如,负载处理 机108可以创建平衡负载所需的新工作者集210和212。
在910处,识别要移动到至少一个新工作者集的至少一个流程。例如, iFlow202a-202d可以由负载处理机108在新工作者集210和212中拆分。
在一些实施方式中,识别要移动到至少一个新工作者集的至少一个流程 包括随机移动所述至少一个流程。例如,iFlow 202a-202d中的随机的一个 可以由负载处理机108选择以移动到新工作者集210和212。
在一些实现方式中,识别要移动到至少一个新工作者集的至少一个流程 可以包括执行预计算以定义复杂度度量(例如,确定作为要被重新分配的候 选者的iFlow 202a-202e的复杂度)。例如,复杂度可以基于流程中的多个 步骤中的一个或多个或流程中的多个特殊步骤。特殊步骤可以包括例如映射 步骤和脚本步骤。可以基于复杂度度量跨工作者集分发流程。例如,iFlow 202a-202e的复杂度可以确定工作者集302-306中的哪一者将包含iFlow 202a-202e中的特定iFlow。
在912处,执行所识别的至少一个流程从当前工作者集到新工作者集的 移动。作为示例,参考图3,负载处理机108可以将iFlow_3 202c移动到工 作者集306。
图10是用于提供与本公开中描述的算法、方法、功能、过程、流程和 规程相关联的计算功能性的示例性计算机系统1000的框图。
图示的计算机1002旨在包括任何计算设备(诸如服务器、台式计算机、 膝上型/笔记本计算机、无线数据端口、智能电话、个人数字助理(PDA)、平 板计算设备)、这些设备内的一个或多个处理器、或任何其他合适的处理设 备,包括计算设备的物理或虚拟实例(或两者)。另外,计算机1002可以包 括计算机,所述计算机包括输入设备(诸如小键盘、键盘、触摸屏或可以接 受用户信息的其他设备)、以及传达与计算机1002的操作相关联的信息的输 出设备(包括数字数据、视觉或音频信息(或信息的组合)或图形用户界面(GUI))。
计算机1002可以充当客户端、网络组件、服务器、数据库或其他持久 性装置、或用于执行本公开中描述的主题的计算机系统的任何其他组件(或 角色的组合)。图示的计算机1002与网络1030可通信地耦合。在一些实现 方式中,计算机1002的一个或多个组件可以被配置为在环境内操作,包括 基于云计算、本地、全局或其他环境(或环境的组合)。
在高级别,计算机1002是电子计算设备,其可操作来接收、传输、处 理、存储或管理与所描述的主题相关联的数据和信息。根据一些实施方式, 计算机1002还可以包括应用服务器、电子邮件服务器、web服务器、高速缓 存服务器、流传送数据服务器、商业智能(BI)服务器或其他服务器(或者服 务器的组合)或与之通信耦合。
计算机1002可以通过网络1030从客户端应用程序接收请求(例如,在 另一计算机1002上执行),并通过在适当的软件应用程序中处理所述请求来 对接收到的请求作出响应。此外,还可以从内部用户(例如,从命令控制台 或通过其他适当的访问方法)、外部或第三方、其他自动化应用程序以及任 何其他适当的实体、个人、系统或计算机向计算机1002发送请求。
计算机1002的组件中的每一个可以使用系统总线1003进行通信。在一 些实现方式中,计算机1002的任何或所有组件(硬件或软件(或硬件和软件 的组合))可以使用API1012或服务层1013(或API 1012和服务层1013的组 合)通过系统总线1003彼此对接或与接口1004对接(或两者的组合)。API 1012可以包括用于例程、数据结构和对象类的规范。API1012可以是独立 于计算机语言的,也可以是依赖计算机语言的,并且是指完整的接口、单个 功能或甚至一组API。服务层1013向计算机1002或可通信地耦合到计算机 1002的其他组件(无论是否示出)提供软件服务。计算机1002的功能可以是 使用该服务层的所有服务消费者可访问的。诸如由服务层1013提供的那些 的软件服务通过定义的接口提供可重用的定义的业务功能。例如,接口可以 是用JAVA、C++或其他合适的语言编写的软件,从而以可扩展标记语言(XML) 格式或其他合适的格式提供数据。虽然被展示为计算机1002的集成组件, 但替代实现方式可以将API 1012或服务层1013展示为与计算机1002的其 他组件或可通信地耦合到计算机1002的其他组件(无论是否示出)相关的独 立组件。此外,在不脱离本公开的范围的情况下,API 1012或服务层1013 的任何或所有部分可以实现为另一软件模块、企业应用或硬件模块的子模块 (child/sub-module)。
计算机1002包括接口1004。尽管在图10中展示为单个接口1004,但 可以根据计算机1002的特定需求、期望或特定实现方式来使用两个或更多 个接口1004。计算机1002使用接口1004与分发式环境中的连接到网络 1030(无论是否示出)的其他系统通信。通常,接口1004包括以软件或硬件(或 软件和硬件的组合)编码并且可操作来与网络1030通信的逻辑。更具体地, 接口1004可以包括支持与通信相关联的一个或多个通信协议的软件,使得网络1030或接口的硬件可操作来在所示计算机1002内部和外部传送物理信 号。
计算机1002包括处理器1005。尽管在图10中展示为单个处理器1005, 但可以根据计算机1002的特定需求、期望或特定实现方式来使用两个或更 多个处理器。通常,处理器1005执行指令并操纵数据以执行计算机1002的 操作以及本公开中描述的任何算法、方法、功能、过程、流程和规程。
计算机1002还包括存储器1006,所述存储器1006保存可以连接到网络 1030(无论是否示出)的计算机1002或其他组件(或两者的组合)的数据。例 如,存储器1006可以是存储与本公开一致的数据的数据库。尽管在图10中 展示为单个存储器1006,但可以根据计算机1002的特定需求、期望或特定 实现方式以及所描述的功能来使用两个或更多个存储器。虽然存储器1006 被展示为计算机1002的集成组件,但在替代实施方式中,存储器1006可以在计算机1002的外部。
应用程序1007是算法软件引擎,其根据计算机1002的特定需要、期望 或特定实现方式来提供功能,特别是关于本公开中描述的功能。例如,应用 程序1007可以用作一个或多个组件、模块、应用程序等。此外,尽管展示 为单个应用程序1007,但应用程序1007可以实现为计算机1002上的多个应 用程序1007。另外,尽管被展示为与计算机1002集成在一起,但在替代实 现方式中,应用程序1007可以在计算机1002的外部。
可以存在与包含计算机1002的计算机系统相关联或在其外部的任何数 量的计算机1002,每个计算机1002通过网络1030进行通信。此外,在不脱 离本公开的范围的情况下,术语“客户端”、“用户”和其他适当的术语可以适 当地互换使用。此外,本公开预期许多用户可以使用一个计算机1002,或者 一位用户可以使用多个计算机1002。
在一些实现方式中,上述环境和系统的组件可以是任何计算机或处理设 备,诸如例如刀片服务器、通用个人计算机(PC)、麦金塔、工作站、基于UNIX 的工作站或任何其他合适的设备。换句话说,本公开考虑了除通用计算机之 外的计算机,以及没有常规操作系统的计算机。此外,组件可以适于执行任 何操作系统,包括Linux、UNIX、Windows、Mac
Figure BDA0001886843530000161
JavaTM、AndroidTM、 iOS或任何其他合适的操作系统。根据一些实施方式,组件还可以包括电子 邮件服务器、web服务器、高速缓存服务器、流传送数据服务器和/或其他合 适的服务器,或者与之可通信地耦合。
在上述环境和系统中使用的处理器可以是中央处理单元(CPU)、专用集 成电路(ASIC)、现场可编程门阵列(FPGA)或另一合适的组件。通常,每个处 理器可以执行指令并操纵数据以执行各种组件的操作。具体地,每个处理器 可以执行将请求和/或数据发送到环境的组件以及从环境的组件接收数据所 需的功能,诸如在外部、中间设备和目标设备之间进行通信。
上述组件、环境和系统可以包括一个存储器或多个存储器。存储器可以 包括任何类型的存储器或数据库模块,并且可以采用易失性和/或非易失性 存储器的形式,包括但不限于磁介质、光学介质、随机存取存储器(RAM)、 只读存储器(ROM)、可移动介质、或任何其他合适的本地或远程存储器组件。 存储器可以存储各种对象或数据,包括高速缓存、类、框架、应用程序、备 份数据、业务对象、作业、网页、网页模板、数据库表、存储业务和/或动态信息的存储库、以及任何其他适当的信息(包括任何参数、变量、算法、 指令、规则、约束),以用于与目标、中间和外部设备的目的相关联的参考。 存储器内的其他组件也是可能的。
无论具体实现方式如何,“软件”可以包括有形介质上的计算机可读指 令、固件、有线和/或编程硬件或其任何组合(视情况而定是暂时性的或非暂 时性的),其在被执行时可操作来执行至少本文所述的过程和操作。实际上, 每个软件组件可以用任何适当的计算机语言完全或部分地编写或描述,包括 C、C++、JavaTM、Visual Basic、汇编程序、
Figure BDA0001886843530000162
任何合适版本的4GL、 以及其他者。视情况而定,软件可以替代地包括多个子模块、第三方服务、 组件、库等。相反,各种组件的特征和功能可以视情况而定组合成单个组件。
设备可以包括任何计算设备,诸如智能电话机、平板计算设备、PDA、 台式计算机、膝上型/笔记本计算机、无线数据端口、这些设备内的一个或 多个处理器、或任何其他合适的处理设备。例如,设备可以包括计算机,所 述计算机包括输入设备(诸如小键盘、触摸屏、或可以接受用户信息的其他 设备)、以及传达与上述环境和系统的组件相关联的信息的输出设备(包括数 字数据、视觉信息或GUI)。GUI为了任何合适的目的与上述环境和系统的至少一部分对接,包括生成web浏览器的视觉表示。
前面的附图和随附的描述说明了示例性过程和计算机可实现的技术。上 述环境和系统(或其软件或其他组件)可以考虑使用、实现或执行用于执行这 些和其他任务的任何合适的技术。应当理解,这些过程仅用于说明目的,并 且所描述的或类似的技术可以在任何适当的时间执行,包括并发、单独、并 行和/或组合执行。另外,这些过程中的许多操作可以同时、并发、并行和/ 或以不同于所示的顺序发生。此外,只要方法保持适当,过程可以具有附加 操作、更少操作和/或不同操作。
换句话说,尽管已经根据某些实现方式和通常相关联的方法描述了本公 开,但这些实现方式的改变和置换以及方法对于本领域技术人员而言将是显 而易见的。因此,以上对示例性实现方式的描述不限定或约束本公开。在不 脱离本公开的精神和范围的情况下,其他改变、替换和变更也是可能的。

Claims (20)

1.一种计算机实现的方法,包括:
最初将一组流程部署到单个工作者集;
识别出与具有所述单个工作者集的工作者的初始运行时交互相关联的负载平衡问题;
响应于识别所述负载平衡问题,对所述负载平衡问题进行分析以确定是否自动缩放或生成新工作者集;
执行负载平衡以启动至少一个新工作者集;
识别要移动到所述至少一个新工作者集的至少一个流程;以及
执行所识别的至少一个流程从当前工作者集到新工作者集的移动。
2.如权利要求1所述的计算机实现的方法,其中负载平衡问题包括存储器不足异常。
3.如权利要求1所述的计算机实现的方法,其中识别要移动到所述至少一个新工作者集的至少一个流程包括随机移动所述至少一个流程。
4.如权利要求1所述的计算机实现的方法,其中识别要移动到所述至少一个新工作者集的至少一个流程包括:
执行预计算以定义复杂度度量;以及
基于所述复杂度度量跨工作者集分发流程。
5.如权利要求4所述的计算机实现的方法,其中所述复杂度度量是所述流程的复杂度的量度,包括所述流程中的多个步骤中的一个或多个或所述流程中的多个特殊步骤。
6.如权利要求5所述的计算机实现的方法,其中特殊步骤包括映射步骤和脚本步骤。
7.如权利要求1所述的计算机实现的方法,其中所述流程表示集成场景。
8.一种系统,包括:
存储器,所述存储器存储用于集成场景、负载平衡器规则和历史信息的信息表;以及
服务器,所述服务器执行操作,包括:
最初将一组流程部署到单个工作者集;
识别出与具有所述单个工作者集的工作者的初始运行时交互相关联的负载平衡问题;
响应于识别所述负载平衡问题,对所述负载平衡问题进行分析以确定是否自动缩放或生成新工作者集;
执行负载平衡以启动至少一个新工作者集;
识别要移动到所述至少一个新工作者集的至少一个流程;以及
执行所识别的至少一个流程从当前工作者集到新工作者集的移动。
9.如权利要求8所述的系统,其中负载平衡问题包括存储器不足异常。
10.如权利要求8所述的系统,其中识别要移动到所述至少一个新工作者集的至少一个流程包括随机移动所述至少一个流程。
11.如权利要求8所述的系统,其中识别要移动到所述至少一个新工作者集的至少一个流程包括:
执行预计算以定义复杂度度量;以及
基于所述复杂度度量跨工作者集分发流程。
12.如权利要求11所述的系统,其中所述复杂度度量是所述流程的复杂度的量度,包括所述流程中的多个步骤中的一个或多个或所述流程中的多个特殊步骤。
13.如权利要求12所述的系统,其中特殊步骤包括映射步骤和脚本步骤。
14.如权利要求8所述的系统,其中所述流程表示集成场景。
15.一种用计算机程序编码的非暂时性计算机可读介质,所述程序包括当由一个或多个计算机执行时致使所述一个或多个计算机执行包括以下操作的指令:
最初将一组流程部署到单个工作者集;
识别出与具有所述单个工作者集的工作者的初始运行时交互相关联的负载平衡问题;
响应于识别所述负载平衡问题,对所述负载平衡问题进行分析以确定是否自动缩放或生成新工作者集;
执行负载平衡以启动至少一个新工作者集;
识别要移动到所述至少一个新工作者集的至少一个流程;以及
执行所识别的至少一个流程从当前工作者集到新工作者集的移动。
16.如权利要求15所述的非暂时性计算机可读介质,其中负载平衡问题包括存储器不足异常。
17.如权利要求15所述的非暂时性计算机可读介质,其中识别要移动到所述至少一个新工作者集的至少一个流程包括随机移动所述至少一个流程。
18.如权利要求15所述的非暂时性计算机可读介质,其中识别要移动到所述至少一个新工作者集的至少一个流程包括:
执行预计算以定义复杂度度量;以及
基于所述复杂度度量跨工作者集分发流程。
19.如权利要求18所述的非暂时性计算机可读介质,其中所述复杂度度量是所述流程的复杂度的量度,包括所述流程中的多个步骤中的一个或多个或所述流程中的多个特殊步骤。
20.如权利要求19所述的非暂时性计算机可读介质,其中特殊步骤包括映射步骤和脚本步骤。
CN201811451745.4A 2018-10-01 2018-11-30 用于集成场景的负载分发 Pending CN110968422A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/148,008 US10783007B2 (en) 2018-10-01 2018-10-01 Load distribution for integration scenarios
US16/148,008 2018-10-01

Publications (1)

Publication Number Publication Date
CN110968422A true CN110968422A (zh) 2020-04-07

Family

ID=64426748

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811451745.4A Pending CN110968422A (zh) 2018-10-01 2018-11-30 用于集成场景的负载分发

Country Status (3)

Country Link
US (2) US10783007B2 (zh)
EP (1) EP3633508A1 (zh)
CN (1) CN110968422A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783007B2 (en) 2018-10-01 2020-09-22 Sap Se Load distribution for integration scenarios
US11392399B2 (en) * 2020-05-13 2022-07-19 Sap Se External binary sidecar for cloud containers
US11444832B2 (en) 2020-11-11 2022-09-13 Sap Se Integrating proxies from third party libraries within an integration environment

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140108489A1 (en) * 2012-10-15 2014-04-17 Et International, Inc. Flowlet-based processing
GB201611403D0 (en) * 2016-06-30 2016-08-17 Sophos Ltd Elastic outbound gateway
US9424429B1 (en) * 2013-11-18 2016-08-23 Amazon Technologies, Inc. Account management services for load balancers
US20170235609A1 (en) * 2016-02-12 2017-08-17 Coho Data Inc. Methods, systems, and devices for adaptive data resource assignment and placement in distributed data storage systems
CN107885599A (zh) * 2016-09-30 2018-04-06 达索系统公司 用一组并行运行的计算资源模拟3d场景的方法、程序和系统
US9946577B1 (en) * 2017-08-14 2018-04-17 10X Genomics, Inc. Systems and methods for distributed resource management
CN108112268A (zh) * 2015-04-30 2018-06-01 亚马逊技术有限公司 管理与自动扩展组相关的负载平衡器

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002317807A1 (en) 2001-07-16 2003-03-03 Sap Aktiengesellschaft Capturing data attribute of predefined type from user
US7461346B2 (en) 2002-07-30 2008-12-02 Sap Ag Editing browser documents
EP1406166B1 (en) 2002-10-01 2011-07-13 Sap Ag Validation of scripting languages with interfaces using annotations in XML
US7590614B2 (en) 2003-12-11 2009-09-15 Sap Ag Method, apparatus, and computer program product for implementing techniques for visualizing data dependencies
US7873942B2 (en) 2005-11-01 2011-01-18 Sap Ag Design-time architecture for self-contained patterns
US7853923B2 (en) 2005-12-29 2010-12-14 Sap Ag Specific runtime generators in a visual modeling language environment
US7774745B2 (en) 2005-12-29 2010-08-10 Sap Ag Mapping of designtime to runtime in a visual modeling language environment
US7840935B2 (en) 2005-12-29 2010-11-23 Sap Ag Restrictive visualization of a stereotype construct for entities in a visual modeling environment
US7840936B2 (en) 2005-12-29 2010-11-23 Sap Ag Support of a platform-independent model including descriptions of modeling language entities
US7757204B2 (en) 2005-12-29 2010-07-13 Sap Ag Limiting extensibility of a visual modeling language
US7734560B2 (en) 2006-08-23 2010-06-08 Sap Ag Loose coupling of pattern components with interface regeneration and propagation
US8689174B2 (en) 2006-12-28 2014-04-01 Sap Ag Extensibility of pattern components
US7962892B2 (en) 2006-12-28 2011-06-14 Sap Ag Designtime services for multiple patterns
US8126961B2 (en) 2007-07-19 2012-02-28 Sap Ag Integration of client and server development environments
US8341593B2 (en) 2008-10-23 2012-12-25 Sap Ag Integrated development framework for composite applications
US9411665B2 (en) 2012-09-05 2016-08-09 Sap Se Messaging infrastructure integration
US9996344B2 (en) 2016-07-28 2018-06-12 Sap Se Customized runtime environment
US10783007B2 (en) 2018-10-01 2020-09-22 Sap Se Load distribution for integration scenarios

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140108489A1 (en) * 2012-10-15 2014-04-17 Et International, Inc. Flowlet-based processing
US9424429B1 (en) * 2013-11-18 2016-08-23 Amazon Technologies, Inc. Account management services for load balancers
CN108112268A (zh) * 2015-04-30 2018-06-01 亚马逊技术有限公司 管理与自动扩展组相关的负载平衡器
US20170235609A1 (en) * 2016-02-12 2017-08-17 Coho Data Inc. Methods, systems, and devices for adaptive data resource assignment and placement in distributed data storage systems
GB201611403D0 (en) * 2016-06-30 2016-08-17 Sophos Ltd Elastic outbound gateway
CN107885599A (zh) * 2016-09-30 2018-04-06 达索系统公司 用一组并行运行的计算资源模拟3d场景的方法、程序和系统
US9946577B1 (en) * 2017-08-14 2018-04-17 10X Genomics, Inc. Systems and methods for distributed resource management

Also Published As

Publication number Publication date
US10783007B2 (en) 2020-09-22
US20200394080A1 (en) 2020-12-17
EP3633508A1 (en) 2020-04-08
US20200104190A1 (en) 2020-04-02
US11269691B2 (en) 2022-03-08

Similar Documents

Publication Publication Date Title
US10635664B2 (en) Map-reduce job virtualization
US9531604B2 (en) Prediction-based provisioning planning for cloud environments
US9851933B2 (en) Capability-based abstraction of software-defined infrastructure
US10929184B2 (en) Bandwidth aware resource optimization
US11467874B2 (en) System and method for resource management
US11269691B2 (en) Load distribution for integration scenarios
US20140196044A1 (en) SYSTEM AND METHOD FOR INCREASING THROUGHPUT OF A PaaS SYSTEM
Lordan et al. Colony: Parallel functions as a service on the cloud-edge continuum
US11848983B2 (en) Remotely discover and map a network resource model in a cloud environment
US20230222004A1 (en) Data locality for big data on kubernetes
US10248406B2 (en) Locale object management
US9628401B2 (en) Software product instance placement
US20130145004A1 (en) Provisioning using presence detection
US20150373071A1 (en) On-demand helper operator for a streaming application
Nino-Ruiz et al. Elastic scaling of e-infrastructures to support data-intensive research collaborations
Mosa et al. Towards a cloud native big data platform using micado
US11061743B2 (en) Event loop optimization through event ordering
US10171378B2 (en) System and method for allocating and reserving supervisors in a real-time distributed processing platform
Jaiswal et al. Enhanced framework for IoT applications on python based cloud simulator (pcs)
Xiong et al. Amino-a distributed runtime for applications running dynamically across device, edge and cloud
US20230315522A1 (en) Systems and methods for implementing distributed scheduling capabilities for computing clusters
KR102642396B1 (ko) 제한된 gpu리소스를 사용한 딥러닝 추론 모델을 위한 배치 스케줄링 장치
CN118069302A (zh) 一种数据处理方法、装置、电子设备和存储介质
Pilyai et al. Implementation and Benchmarking of Kubernetes Horizontal Pod Autoscaling Method to Event-Driven Messaging System
Dantas On Performance Tuning of Serverless IoT Applications

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