CN112346853A - 用于分布应用的方法和设备 - Google Patents

用于分布应用的方法和设备 Download PDF

Info

Publication number
CN112346853A
CN112346853A CN202010788606.1A CN202010788606A CN112346853A CN 112346853 A CN112346853 A CN 112346853A CN 202010788606 A CN202010788606 A CN 202010788606A CN 112346853 A CN112346853 A CN 112346853A
Authority
CN
China
Prior art keywords
application
runtime
requirements
preparation
application management
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
CN202010788606.1A
Other languages
English (en)
Inventor
H.格罗布-利普斯基
M.齐默曼
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN112346853A publication Critical patent/CN112346853A/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/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
    • 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/5044Allocation 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 hardware capabilities
    • 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/5055Allocation 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 software capabilities, i.e. software resources associated or available to the machine
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity
    • 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

Abstract

用于分布应用(21)的方法(20),其特征在于以下特征:将所述应用(21)的运行时要求(22)馈送(23)到应用管理(24),通过所述应用管理(24)产生(25)语义描述(26),并且将所述描述(26)转发(27)到运行时环境(28),并且根据所述描述(26),将所述应用(21)在所述运行时环境(28)内基于其运行时要求(22)选择性地分布到云计算平台(10)、计算中心(11、12、13)、服务器(14)或终端设备上。

Description

用于分布应用的方法和设备
技术领域
本发明涉及一种用于分布应用的方法。本发明还涉及相应的设备、相应的计算机程序和相应的存储介质。
背景技术
在IT管理领域,通常用术语“软件分布”(software deployment)总结了用于在计算机上和计算中心中安装软件应用的各种过程。
边缘计算(Edge Computing)基于众所周知的云计算,是指在计算机网络的拓扑边缘(edge)处的分散数据处理。为此,数据流部分地在现场(例如直接在终端设备上或工厂内)、部分地在云中予以处理,以节约资源。
WO 2018/206502 A1描述了一种用于分配本地模块化计算机网络的数字资源的方法,根据输入数据组向该模块化计算机网络的模块分别分配资源的资源值,所述输入数据组具有带有需求值的资源请求。为此首先读入所述输入数据组,然后从每个计算模块调用代表各自模块的可用性的资源值。然后将所述需求值与调用的资源值进行比较。根据结果,分配所请求的资源。
US 9,336,060 B2描述了一种基于类似方案的中间件服务框架。
CN 107357241 A公开了来自工业物联网环境的相关解决方案。
CN 109144659 A讨论了用于边缘计算功能的实时迁移的技术,特别是基于边缘计算功能的要求和节点的利用率。
发明内容
本发明提供了根据独立权利要求的用于分布应用的方法、相应的设备、相应的计算机程序以及相应的机器可读存储介质。
所建议的解决方案基于以下认识:在现代的企业基础设施中无法将工作负载分布在整个组织上。通用的企业基础设施目前不具有完全联网的体系结构,因为它不支持分布式服务层以及针对其组织的与所述服务层关联的管理功能。此外,应用功能目前通常不在诸如容器和虚拟机的虚拟化环境中执行,也不作为独立的功能模块执行。此外,所述应用功能的要求以及所述基础设施的拓扑和各自资源的给定条件通常不是系统范围内机器可读的,这使得目前无法对功能进行自动放置或动态的自动移位。
在这种背景下,根据本发明的方案的基本思想在于,根据各自应用功能的要求,将应用功能自动和动态地分配或重新分配到基础设施内最有利于执行所述应用功能的位置。
在此,所述基础设施由一系列在拓扑上分布式的节点组成。这些节点与诸如数据处理单元、存储器等资源相关联。
此外,这些节点也直接或间接彼此连接,并且直接或间接地与终端设备连接。
在系统启动时,所述拓扑的至少一个中心节点得到识别并配备服务层(platformas a service,平台即服务,PaaS;function as a service,功能即服务,FaaS)。从该中心节点开始,所述拓扑的其余节点同样配备有相应的层,从而产生分布在整个拓扑上的层。如果终端设备适合于此,该终端设备也可以配备有相应的层。
逻辑将所述应用功能的要求与可用资源进行匹配。所述逻辑可在所述基础设施内在中央或本地PaaS或FaaS层的中央或本地边缘管理功能的范围内可用。
此外,所述系统的其他逻辑监视目前的资源可用性,以支持对所述应用功能的要求以及对应用功能的动态和自动化分配和重新分配的要求的满足。该逻辑同样应当在所述拓扑的每个PaaS或FaaS层中可用。
如上所提到的,也可以根据终端设备的性能来分配这些应用功能。如果终端设备配备了PaaS或FaaS层,则该终端设备同样可以触发所述应用功能向另一个节点的重新分配。如果所述终端设备本身不具有PaaS或FaaS层,则由所述基础设施内的另一个PaaS或FaaS节点进行所述重新分配。
与上面提到的一些解决方案相比,该解决方案的优点是它基于通用系统模型。所概述的方法特别是不限于移动通信系统。此外,通用终端设备并且不一定是移动设备或传感器设备也被支持作为终端设备。这些终端设备提供不同类型的数据,并且例如不限于传感器数据。
在此,该概念考虑了通用基础设施单元和资源,例如虚拟化的或非虚拟化的计算能力、存储器、连接资源和通信资源以及用于管理所提到的资源的应用功能。
可以使用发布和订阅方法(publish-subscribe)和可配置消息来协调关于运行工具的信息的分布,所述运行工具例如是计算能力、存储器、连接性等。可以将相应的方法应用于应用功能的要求。语义方法也应当用于描述计算机网络中可用的运行工具及其关系以及所述应用功能的要求。
通过从属权利要求中列出的措施,可以对独立权利要求中说明的基本思想进行有利的扩展和改进。从而根据本发明的企业基础设施例如由全局计算中心、多个区域计算中心以及在区域层面上的其他本地计算中心组成,所述其他本地计算中心为远程位置提供基础设施服务。其他运行工具可以例如从诸如Microsoft Azure或Amazon Web Services(AWS)的公共云调用。例如,在本地计算中心内或附近,诸如工厂环境中的服务器的其他网络节点可用于实现应用功能。
根据另一方面可以规定,应用管理以分布在运行时间环境上的方式进行。在此,计算中心、服务器和公共云资源配备有分布式PaaS或FaaS层,以下也称为边缘运行时(ERT)。ERT包含所谓的边缘服务(Edge Service)、本地所需的管理功能以及其他PaaS和FaaS典型的功能。
附图说明
附图中示出了本发明的实施例,并且在下面的描述中对这些实施例进行更详细的解释。
图1示出了根据本发明的基础设施。
图2示出了根据本发明的方法的流程图。
图3示例性示出了机器学习、远程监视和质量预测的应用功能。
具体实施方式
根据本发明的应用管理应当能够完全集中地或如图1中混合地工作:作为部分集中、部分分散的应用管理24。下面基于图2更详细地描述后一种混合解决方案。在这种情况下,基础设施的拓扑可供分散的ERT 28使用并被定期更新。
应用具有不同的功能。从语义上在应用编程接口(application programminginterface,API)、优先级、等待时间、带宽、计算能力、资源成本、功率等方面来描述对这些应用功能的要求。这些语义描述作为输入被馈送23到中央应用管理24中。所述中央应用管理自身产生25配置描述(edge compute as code,边缘计算即代码),所述配置描述被分布到每个本地ERT 28上,或者分布到分配给应用21或特定应用功能的基础设施节点的ERT 28上。对于大型基础设施来说,边缘计算即代码的分布也可以在拓扑上受限制地进行。对应用功能的要求的改变导致语义描述26的改变,而所述语义描述的改变继而导致ERT 28的边缘计算即代码描述的改变。
此外,向ERT 28的应用管理24提供资源的语义描述,例如涉及当前的存储器状态、计算能力、带宽、等待时间、资源成本等。
可以将拓扑信息、资源信息和应用信息的更新例如限制在特定的地理区域,以避免过多的更新并减少通信耗费。为此,例如可以设置自学习逻辑。还可以应用发布-订阅机制以便将更新限制于先前已经通过具有特定配置的订阅消息表达了其兴趣的ERT 28。在此,当前存在的资源关系应当是始终已知的,特别是在高负载下。在预给定的时间段期间未被用于分配或重新分配的基础设施装置可以被排除在定期和及时的更新之外。然后应当在较低的网络负载的情况下以更长的时间间隔更新拓扑信息。
中央应用管理24评估配置文件,并基于其运行时要求22、所述拓扑和所述基础设施节点的属性来分布所述应用功能。
图3示例性示出了机器学习31(machine learning,ML)、远程监视32(remotemonitoring,RM)和质量预测33(quality prediction,QP)的用于联网工业的中央应用功能。
已经订阅了各自应用21或已由全局计算中心11的应用管理24选择的区域计算中心12和本地计算中心13的ERT 28从全局计算中心11获得所述应用功能的语义描述26。ERT28还具有当前的拓扑信息和资源能力。基于这些拓扑信息、当前资源能力和编码的描述26,全局计算中心11选择本地计算中心13以实现所述应用功能。通过所述全局计算中心进行的放置在首次放置的范围内进行,或者与周期性重复的优化过程关联地进行。
通过改变代码状况、拓扑状况或资源状况,所涉及的本地计算中心13的ERT 28触发所述应用功能的重新分配。然后,ERT 28根据全局计算中心11、本地计算中心13和服务器14的配置、拓扑和资源状况现场(on premises)重新分配ML 31、RM 32和QP 33。
n个基础设施节点InfrKnoteni定义了所述基础设施的拓扑。中央和本地ERT 28根据所述拓扑的所有节点InfrKnoteni的目前资源关系创建和维护资源列表。此外,InfrKnoteni的每个ERT 28从相关的功能列表中知道所述应用功能的要求,例如应用功能k的等待时间要求latenzAnforderungk
下面的表格基于示例示出了当前等待时间值以及节点与终端设备之间的资源成本:
节点 等待时间 资源成本
Figure 85385DEST_PATH_IMAGE002
InfrKnoten<sub>22</sub> 100 100 250
InfrKnoten<sub>9</sub> 110 80 245
如果将等待时间设定为决定性要求,则在该示例中选择InfrKnoten22,因为等待时间22是请求终端设备与InfrKnoten22之间的最低等待时间。相反,如果将成本定义为决定性要求,则选择InfrKnoten9。多个标准的组合(必要时具有反映要求的等级的权重)也可以用作决定基础。例如,基于1.5⋅100+1⋅100=250和1.5⋅110+1⋅80=245的计算,可以做出选择InfrKnoten9的决定。
首次放置通过中央应用管理24进行。如果适用以下关系式:latenzAnforderungk≥等待时间i',则应用管理24在仅考虑等待时间的情况下将infrKnoteni'选择为所述资源列表中具有最低等待时间的节点。
此该示例中如下设计一种替换:理想情况下,通过InfrKnoteni'的本地ERT 28触发替换过程。替代地,所述替换过程也可以通过中央应用管理24启动。在此,值得推荐的是使用迟滞来延迟所述替换并避免否则引起威胁的乒乓效应。
一旦满足关系式:latenzAnforderungk+h≤等待时间i',就检查当前的资源列表。由于所述资源列表经常被更新,因此应用管理24选择另一个节点InfrKnoteni''作为替换。
理想情况下,其他应用的转移也通过InfrKnoteni'的本地ERT 28触发。替代地,也可以由中央应用管理24来触发所述转移,特别是在循环优化过程的范围中。
下面的表格考虑了节点InfrKnoten22的功能Funktion3和Funktion7。由于严格的等待时间要求,必须将其他功能Funktion8转移到同一节点。
应用功能 计算能力 等待时间要求
Funktion<sub>3</sub> 100 100
Funktion<sub>7</sub> 120 500
Funktion<sub>8</sub> 100 50
但是,如果将Funktion8分配给节点InfrKnoten22,则当前测量可以识别出节点InfrKnoten22上的可用计算能力降低;在这种情况下,所需要的计算能力总计为320,因此超过了为20的可用计算能力:
节点 计算能力 对于Funktion<sub>3</sub>的在终端设备方面的等待时间 对于Funktion<sub>7</sub>的在终端设备方面的等待时间
InfrKnoten<sub>22</sub> 300 90 150
InfrKnoten<sub>9</sub> 300 200 260
如果就像在这种情况下那样计算能力要求的总和超过所述可用计算能力至少滞后值h,则检查当前的资源列表。由于无法确定可以满足Funktion8的等待时间要求的替代节点InfrKnoteni,因此启动了另一个功能的转移。
在当前给出的示例中,为Funktion7选择节点InfrKnoten9,因为该功能提出了较低的等待时间要求。

Claims (10)

1.一种用于分布应用(21)的方法(20),
其特征在于以下特征:
将所述应用(21)的运行时要求(22)馈送(23)到应用管理(24),通过所述应用管理(24)产生(25)语义描述(26),并且
将所述描述(26)转发(27)到运行时环境(28),并且
根据所述描述(26),将所述应用(21)在所述运行时环境(28)内基于其运行时要求(22)选择性地分布到云计算平台(10)、计算中心(11、12、13)、服务器(14)或终端设备上。
2.根据权利要求1所述的方法(20),
其特征在于,
所述应用(21)实现以下功能中的至少一个:
-机器学习(31),
-远程监视(32),或
-质量预测(33)。
3.根据权利要求1或2所述的方法(20),
其特征在于,
所述计算中心(11、12、13)包括以下中的至少一个:
-全局计算中心(11),
-区域计算中心(11),或
-本地计算中心(11)。
4.根据权利要求1至3中任一项所述的方法(20),
其特征在于,
所述运行时要求(22)涉及以下服务中的至少一项:
开发人员和分发编程接口,
操作员接口,
网络应用编程接口,或
容器虚拟化编程接口。
5.根据权利要求1至4中任一项所述的方法(20),
其特征在于,
将所述运行时要求(22)作为清单文件馈送给所述应用管理(24),所述清单文件包括以下至少一项:
数据负载,
延迟,或
带宽。
6.根据权利要求1至5中任一项所述的方法(20),
其特征在于以下特征:
在所述分发之后,持续监视所述应用(21)以及当前的资源状况并相互比较,以及根据需要在所述运行时环境(28)内重新分布所述应用(21)。
7.根据权利要求1至6中任一项所述的方法(20),
其特征在于以下特征:
所述应用管理(24)集中地进行和/或以分布在所述运行时环境(28)上的方式进行。
8.一种计算机程序,所述计算机程序被设计为执行根据权利要求1至7中任一项所述的方法(20)。
9.一种机器可读存储介质,在所述机器可读存储介质上存储有根据权利要求8所述的计算机程序。
10.一种设备(10、11、12、13、14),所述设备被设计为执行根据权利要求1至7中任一项所述的方法(20)。
CN202010788606.1A 2019-08-08 2020-08-07 用于分布应用的方法和设备 Pending CN112346853A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102019211908.5A DE102019211908A1 (de) 2019-08-08 2019-08-08 Verfahren und Vorrichtung zum Verteilen einer Anwendung
DE102019211908.5 2019-08-08

Publications (1)

Publication Number Publication Date
CN112346853A true CN112346853A (zh) 2021-02-09

Family

ID=74191250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010788606.1A Pending CN112346853A (zh) 2019-08-08 2020-08-07 用于分布应用的方法和设备

Country Status (2)

Country Link
CN (1) CN112346853A (zh)
DE (1) DE102019211908A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021213702A1 (de) 2021-12-02 2023-06-07 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und System zum Betreiben eines Netzwerks

Also Published As

Publication number Publication date
DE102019211908A1 (de) 2021-02-11

Similar Documents

Publication Publication Date Title
EP2710470B1 (en) Extensible centralized dynamic resource distribution in a clustered data grid
US8510745B2 (en) Dynamic application placement under service and memory constraints
US7287179B2 (en) Autonomic failover of grid-based services
Phan et al. Traffic-aware horizontal pod autoscaler in Kubernetes-based edge computing infrastructure
CN105159775A (zh) 基于负载均衡器的云计算数据中心的管理系统和管理方法
CN104679594B (zh) 一种中间件分布式计算方法
CN110221920B (zh) 部署方法、装置、存储介质及系统
KR101696698B1 (ko) 상호 의존 관계가 있는 컴포넌트 분배 및 관리 방법
EP4167539A1 (en) Resource management method and system, proxy server, and storage medium
US20230037293A1 (en) Systems and methods of hybrid centralized distributive scheduling on shared physical hosts
CN111309491A (zh) 一种作业协同处理方法及系统
CN112711479A (zh) 服务器集群的负载均衡系统、方法、装置和存储介质
CN111240824B (zh) 一种cpu资源调度方法及电子设备
CN114416355A (zh) 资源调度方法、装置、系统、电子设备及介质
CN109413117B (zh) 分布式数据计算方法、装置、服务器及计算机存储介质
CN112346853A (zh) 用于分布应用的方法和设备
US20150286508A1 (en) Transparently routing job submissions between disparate environments
KR102119456B1 (ko) 분산 클라우드 환경에서의 분산 브로커 코디네이터 시스템 및 방법
Miranda et al. Dynamic communication-aware scheduling with uncertainty of workflow applications in clouds
CN114546631A (zh) 任务调度方法、控制方法、核心、电子设备、可读介质
Dai et al. A resource occupancy ratio-oriented load balancing task scheduling mechanism for flink
CN117149445B (zh) 一种跨集群负载均衡方法及装置、设备及存储介质
CN112416538A (zh) 一种分布式资源管理框架的多层次架构和管理方法
CN116069481B (zh) 一种共享gpu资源的容器调度系统及调度方法
Kumar et al. Artificial Intelligent Load Balance Agent on Network Traffic Across Multiple Heterogeneous Distributed Computing Systems

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