CN111026405B - 软件部署方法、装置及相关节点 - Google Patents
软件部署方法、装置及相关节点 Download PDFInfo
- Publication number
- CN111026405B CN111026405B CN201911212533.5A CN201911212533A CN111026405B CN 111026405 B CN111026405 B CN 111026405B CN 201911212533 A CN201911212533 A CN 201911212533A CN 111026405 B CN111026405 B CN 111026405B
- Authority
- CN
- China
- Prior art keywords
- configuration information
- flow
- module
- node
- functional module
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种软件部署方法、装置、相关节点以及计算机可读存储介质。该方法包括:确定待部署软件的数据处理流程的拆分位置;基于所述拆分位置对所述数据处理流程进行分解,获得第一配置信息和第二配置信息;基于所述第一配置信息和第二配置信息,对所述待部署软件进行部署。本发明实施例能够提高软件部署的灵活性。
Description
技术领域
本发明实施例涉及边缘计算技术领域,尤其涉及一种软件部署方法、装置、相关节点以及计算机可读存储介质。
背景技术
随着物联网的发展,人们对物联网数据的处理产生了大量需求,基于物联网流计算的应用也越来越多。在物联网部分场景中,物联网数据在上传到平台之前,需要在终端和网关侧进行相应的边缘计算来实现本地数据的预处理,以减少上传数据量或减少敏感数据上传。
目前,对终端和网关侧进行边缘计算的软件部署,主要是通过本地软件下载和云端空中下载(Over The Air,OTA)这两种方式进行。其中,本地软件下载的软件部署方式主要是将软件包在本地下载或烧录至终端中来实现软件部署,而云端OTA的软件部署方式主要是在云端给终端和网关下发软件包来实现软件部署。
然而,上述两种软件部署方式都是以一次软件打包的方式进行,该软件都是由用户自己开发生成,并自主通过本地软件下载或云端OTA的方式进行部署,该部署无法及时随平台需求变化,因此,边缘计算的软件部署存在灵活性比较差的问题。
发明内容
本发明实施例提供一种软件部署方法、装置、相关节点以及计算机可读存储介质,以解决现有技术中边缘计算的软件部署存在灵活性比较差的问题。
第一方面,本发明实施例提供一种软件部署方法,应用于第一节点,所述方法包括:
获取待部署软件的部署配置信息;其中,所述部署配置信息包括目标配置信息,所述目标配置信息用于指示构建所述待部署软件的数据处理流程,所述数据处理流程由至少一功能模块和各所述功能模块的有向连接构成;
确定所述数据处理流程的拆分位置;其中,所述拆分位置为断开相邻两个功能模块的有向连接的位置;
基于所述拆分位置对所述数据处理流程进行分解,获得第一配置信息和第二配置信息;其中,所述第一配置信息用于指示所述第一节点构建第一处理子流程,所述第二配置信息用于指示第二节点构建第二处理子流程;所述第一处理子流程由输入接口模块和所述数据处理流程中拆分位置之后的功能模块的有向连接构成,所述第二处理子流程由所述数据处理流程中拆分位置之前的功能模块和输出接口模块的有向连接构成;所述第一配置信息中包括第一连接配置信息,所述第二配置信息中包括第二连接配置信息,所述第一连接配置信息和所述第二连接配置信息用于将所述输出接口模块和输入接口模块建立连接;
基于所述第一配置信息和第二配置信息,对所述待部署软件进行部署。
第二方面,本发明实施例提供一种软件部署方法,应用于第二节点,所述方法包括:
接收第一节点发送的第二配置信息;
按照所述第二配置信息中的第二模块信息,加载所述第二模块信息对应的第二功能模块的运行代码;
按照所述第二配置信息中的第二功能模块的有向连接信息,基于加载的运行代码构建所述第二处理子流程。
第三方面,本发明实施例提供一种软件部署装置,应用于第一节点,所述装置包括:
获取模块,用于获取待部署软件的部署配置信息;其中,所述部署配置信息包括目标配置信息,所述目标配置信息用于指示构建所述待部署软件的数据处理流程,所述数据处理流程由至少一功能模块和各所述功能模块的有向连接构成;
确定模块,用于确定所述数据处理流程的拆分位置;其中,所述拆分位置为断开相邻两个功能模块的有向连接的位置;
分解模块,用于基于所述拆分位置对所述数据处理流程进行分解,获得第一配置信息和第二配置信息;其中,所述第一配置信息用于指示所述第一节点构建第一处理子流程,所述第二配置信息用于指示第二节点构建第二处理子流程;所述第一处理子流程由输入接口模块和所述数据处理流程中拆分位置之后的功能模块的有向连接构成,所述第二处理子流程由所述数据处理流程中拆分位置之前的功能模块和输出接口模块的有向连接构成;所述第一配置信息中包括第一连接配置信息,所述第二配置信息中包括第二连接配置信息,所述第一连接配置信息和所述第二连接配置信息用于将所述输出接口模块和输入接口模块建立连接;
部署模块,用于基于所述第一配置信息和第二配置信息,对所述待部署软件进行部署。
第四方面,本发明实施例提供一种软件部署装置,应用于第二节点,所述装置包括:
接收模块,用于接收第一节点发送的第二配置信息;
加载模块,用于按照所述第二配置信息中的第二模块信息,加载所述第二模块信息对应的第二功能模块的运行代码;
构建模块,用于按照所述第二配置信息中的第二功能模块的有向连接信息,基于加载的运行代码构建所述第二处理子流程。
第五方面,本发明实施例提供一种第一节点,包括第一处理器,第一存储器,存储在所述第一存储器上并可在所述第一处理器上运行的计算机程序,所述计算机程序被所述第一处理器执行时实现上述软件部署方法的步骤。
第六方面,本发明实施例提供一种第二节点,包括第二处理器,第二存储器,存储在所述第二存储器上并可在所述第二处理器上运行的计算机程序,所述计算机程序被所述第二处理器执行时实现上述软件部署方法的步骤。
第七方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被第一处理器执行时实现上述第一节点侧软件部署方法的步骤,或者被第二处理器执行时实现上述第二节点侧软件部署方法的步骤。
本发明实施例提供的软件部署方法、装置、相关节点以及计算机可读存储介质,首先,获取待部署软件的部署配置信息;其中,所述部署配置信息包括目标配置信息,所述目标配置信息用于指示构建所述待部署软件的数据处理流程,所述数据处理流程由至少一功能模块和各所述功能模块的有向连接构成;然后,确定所述数据处理流程的拆分位置;基于所述拆分位置对所述数据处理流程进行分解,获得第一配置信息和第二配置信息;最后,基于所述第一配置信息和第二配置信息,对所述待部署软件进行部署。
本发明实施例中,通过在第一节点侧和第二节点侧共用待部署软件的数据处理流程;基于模块化配置,在拆分位置分解所述数据处理流程,并在所述拆分位置分别添加输出接口模块和输入接口模块,同时,通过第一连接配置信息和第二连接配置信息将所述输出接口模块和输入接口模块建立连接,这样,能够分解获得第一处理子流程和第二处理子流程,同时能够将第一处理流程和第二处理子流程建立连接,如此,能够将第一处理流程和第二处理子流程灵活解耦到第一节点侧和第二节点侧,提高软件部署的灵活性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获取其他的附图。
图1是本发明实施例提供的软件部署方法的流程示意图之一;
图2是本发明实施例提供的软件部署方法的流程示意图之二;
图3是本发明实施例提供的软件部署方法应用的软件部署系统的结构示意图;
图4是待部署软件的数据处理流程的示意图;
图5是云端节点构建的第一处理子流程的示意图;
图6是边缘节点构建的第二处理子流程的示意图;
图7是本发明实施例提供的软件部署装置的结构示意图之一;
图8是本发明实施例提供的软件部署装置的结构示意图之二;
图9是本发明实施例提供的第一节点的结构示意图;
图10是本发明实施例提供的第二节点的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
下面首先对本发明实施例提供的软件部署方法进行说明。
需要说明的是,本发明实施例提供的软件部署方法可以应用于软件部署系统,该软件部署系统用于在第一节点侧和第二节点侧共用相同的待部署软件的数据处理流程,对该待部署软件的数据处理流程进行分解,并通过模块化配置灵活解耦获得第一处理子流程和第二处理子流程,从而可以分别将第一处理子流程和第二处理子流程灵活部署于第一节点和第二节点,进而在第一节点和第二节点的协同下可以实现灵活的软件部署配置。
其中,该软件部署系统包括第一节点和第二节点,所述第一节点可以为云端节点,比如为云端服务器,用于获取待部署软件的数据处理流程,并对该数据处理流程进行分解,通过模块化配置灵活解耦获得第一处理子流程和第二处理子流程,并将第一处理子流程和第二处理子流程灵活部署于第一节点和第二节点。所述第二节点可以为边缘节点,比如为终端设备或者与终端设备关联的网关设备,用于接收用于部署第二处理子流程的第二配置信息,对所述第二处理子流程进行自动部署。
参见图1,图中示出了本发明实施例提供的软件部署方法的流程示意图之一。应用于第一节点,如图1所示,该方法可以包括如下步骤:
步骤101,获取待部署软件的部署配置信息;其中,所述部署配置信息包括目标配置信息,所述目标配置信息用于指示构建所述待部署软件的数据处理流程,所述数据处理流程由至少一功能模块和各所述功能模块的有向连接构成。
步骤102,确定所述数据处理流程的拆分位置。
其中,所述拆分位置为断开相邻两个功能模块的有向连接的位置。
步骤103,基于所述拆分位置对所述数据处理流程进行分解,获得第一配置信息和第二配置信息。
其中,所述第一配置信息用于指示所述第一节点构建第一处理子流程,所述第二配置信息用于指示第二节点构建第二处理子流程;所述第一处理子流程由输入接口模块和所述数据处理流程中拆分位置之后的功能模块的有向连接构成,所述第二处理子流程由所述数据处理流程中拆分位置之前的功能模块和输出接口模块的有向连接构成,所述第一配置信息中包括第一连接配置信息,所述第二配置信息中包括第二连接配置信息,所述第一连接配置信息和所述第二连接配置信息用于将所述输出接口模块和输入接口模块建立连接。
步骤104,基于所述第一配置信息和第二配置信息,对所述待部署软件进行部署。
在步骤101中,所述待部署软件的部署配置信息可以存储于本地,相应的,所述第一节点可以从本地获取待部署软件的部署配置信息。所述第一节点也可以包括流程构建单元,用户可以利用该流程构建单元,定义所需要部署的软件即待部署软件的数据处理流程,并对定义生成的部署配置信息进行提交,相应的,所述流程构建单元即可获得待部署软件的部署配置信息。以下实施例中,将以获取用户提交的部署配置信息为例进行详细说明。
具体的,用户可以在软件部署平台上定义所需要部署的软件的数据处理流程,比如,定义该数据处理流程的模块信息和有向连接信息,所述模块信息用于指示构建该数据处理流程的功能模块,所述有向连接信息用于指示该数据处理流程的各功能模块的有向连接,根据所述模块信息和有向连接信息,即可构建该数据处理流程。
其中,该数据处理流程中的功能模块可以包括以下至少一种:
开放给用户定义的函数编程模块;
预定义给用户配置的数据处理模块;
边缘数据输入模块;
边缘数据本地输出模块;
云端数据输出模块。
用户根据所需要部署的软件,定义待部署软件的数据处理流程中的功能模块,并定义各功能模块的有向连接,提交这些信息后,流程构建单元即可获得目标配置信息。
同时,用户提交的部署配置信息还可以包括其他配置信息,比如,所述部署配置信息还可以包括标定配置信息、指定配置信息和性能配置信息。
具体的,用户在待部署软件的数据处理流程中,可以标定哪些功能模块必须在边缘节点进行处理,提交后,云端节点可以获得标定配置信息,该标定配置信息可以在一定程度上指示云端节点对数据处理流程进行分解。比如,数据处理流程包括功能模块A、功能模块B和功能模块C,功能模块A有向连接至功能模块B,功能模块B有向连接至功能模块C,其中,标定配置信息包括功能模块B,也就是说,功能模块B必须部署于边缘节点,因此,云端节点在分解数据处理流程时,可以将功能模块B分解至第一处理子流程中。
在数据处理流程定义完成之后,用户还可以指定需要部署软件的边缘节点,比如终端设备或网关,提交后,云端节点可以获得指定配置信息,该指定配置信息可以指示云端节点将分解获得的第一处理子流程进行发送给需要部署软件的边缘节点。
另外,用户还可以定义一些可选的指标,提交后,云端节点可以获得性能配置信息,该性能配置信息可以包括边缘设备计算能力指标、端到端延迟需求指标和边缘处理偏好指标中的至少一种,其中,该边缘设备计算能力指标可以理解为边缘节点处理流程的资源量,该端到端延迟需求指标可以理解为云端节点处理流程的延迟时限,该边缘处理偏好指标可以理解为该数据处理流程在边缘节点的处理倾向,比如,该边缘处理偏好指标为优先边缘处理,也就是说,该数据处理流程优先部署于边缘节点处理,该边缘处理偏好指标为不在边缘处理,也就是说,该数据处理流程不部署于边缘节点处理。
在步骤102中,所述云端节点还可以包括流程分解单元,所述流程分解单元用于确定所述数据处理流程的拆分位置,并基于所述拆分位置对所述数据处理流程进行分解,获得第一配置信息和第二配置信息。
具体的,所述流程分解单元获取至少一目标功能模块;其中,所述目标功能模块为所述数据处理流程中未执行分配给所述第一节点和第二节点的功能模块;按照第一参数和/或第二参数对各所述目标功能模块执行分配,获得所述数据处理流程的拆分位置;其中,所述第一参数包括所述第一节点处理流程的延迟时限和所述第二节点处理流程的资源量,所述第二参数包括各所述目标功能模块的输出数据量。
若待部署软件的数据处理流程包括边端数据本地输出模块,则该边端数据本地输出模块必须在边缘节点进行处理,若待部署软件的数据处理流程包括云端数据输出模块,则该云端数据输出模块必须在云端节点进行处理,若待部署软件的数据处理流程中还包括标定在边缘节点进行处理的功能模块,则这些功能模块也需要部署于边缘节点进行处理,相应的,所述数据处理流程中剩余的功能模块即为目标功能模块。
这些目标功能模块按照第一参数和/或第二参数对各所述目标功能模块执行分配,获得所述数据处理流程的拆分位置;其中,所述第一参数包括所述第一节点处理流程的延迟时限和所述第二节点处理流程的资源量,所述第二参数包括各所述目标功能模块的输出数据。
所述拆分位置相邻两端分别为第一目标功能模块和第二目标功能模块,所述数据处理流程中所述第一目标功能模块有向连接至第二目标功能模块;所述拆分位置基于以下任一策略确定:
所述数据处理流程中从所述第一目标功能模块至末端功能模块的延迟时间大于所述第一节点处理流程的延迟时限,且所述数据处理流程中从所述第二目标功能模块至末端功能模块的延迟时间小于或等于所述第一节点处理流程的延迟时限;
所述第一目标功能模块为所述数据处理流程的所有目标功能模块中输出数据量最少的目标功能模块;
所述数据处理流程中从首端功能模块至所述第一目标功能模块的计算量之和小于或等于所述第二节点处理流程的资源量,且所述数据处理流程中从首端功能模块至所述第二目标功能模块的计算量之和大于所述第二节点处理流程的资源量;
所述拆分位置为目标综合效用值对应的连接位置,所述目标综合效用值为所述数据处理流程中用于连接两端目标功能模块的各连接位置对应的综合效用值中最小的综合效用值;其中,所述综合效用值基于目标参数确定,所述目标参数包括所述数据处理流程中从连接位置靠近末端功能模块一端连接的第三目标功能模块至末端功能模块的延迟时间、所述数据处理流程中从所述第三目标功能模块至末端功能模块的计算量之和、所述数据处理流程中从首端功能模块至所述连接位置另一端连接的第四目标功能模块的计算量之和和所述第四目标功能模块的输出数据量中至少两种。
按照第一参数和/或第二参数对各所述目标功能模块执行分配,获得所述数据处理流程的拆分位置可以有四种分配策略。
第一种分配策略为延迟满足策略,具体过程可以为:
将所有的目标功能模块先全部部署于云端节点,然后估算部署于云端节点的处理子流程中端到端的延迟时间,若延迟时间大于云端节点处理流程的延迟时限,则将云端节点的处理子流程中靠近边缘节点的处理子流程中的功能模块,按照最小距离依次移入至边缘节点的处理子流程中,直到延迟时间低于云端节点处理流程的延迟时限。若未规定云端节点处理流程的延迟时限,则将目标功能模块全部部署于云端节点的处理子流程中。
第二种分配策略为上传数据量策略,具体过程可以为:
在目标功能模块所构建的流程中,输出数据量最少的连接位置为拆分位置,拆分位置之前和之后的各目标功能模块分别分配至边缘节点的处理子流程中和云端节点的处理子流程中。需要说明的是,将拆分位置一端靠近云端数据输出模块的目标功能模块分配至云端节点的处理子流程中。
第三种分配策略为边缘计算量策略,具体过程可以为:
评估边缘节点的处理子流程的各功能模块的计算量,并累计计算量,若累计的计算量小于或等于边缘节点处理流程的资源量,则将靠近边缘节点的处理子流程的目标功能模块按照最小距离移入至边缘节点的处理子流程中,直到累计的计算量大于边缘节点处理流程的资源量。剩余的目标功能模块则分配至云端节点处理。
第四种分配策略为综合策略,具体过程可以为:
在目标功能模块所构建的流程中,使得边缘节点的处理子流程中各功能模块累计的计算量、云端节点的处理子流程中各功能模块累计的计算量、云端节点的处理子流程中端到端的延迟时间和边缘节点上传至云端节点的数据量中上述至少两种参数的综合效用值最小的连接位置为拆分位置,拆分位置之前和之后的各目标功能模块分别分配至边缘节点的处理子流程中和云端节点的处理子流程中。需要说明的是,将拆分位置一端靠近云端数据输出模块的目标功能模块分配至云端节点的处理子流程中。
其中,在计算综合效用值时,可以通过边缘节点的处理子流程中各功能模块累计的计算量、云端节点的处理子流程中各功能模块累计的计算量、云端节点的处理子流程中端到端的延迟时间和边缘节点上传至云端节点的数据量中上述至少两种参数加权计算得到。
在步骤103中,基于拆分位置,对待部署软件的数据处理流程进行分解,拆分为边缘节点的处理子流程和云端节点的处理子流程,并根据两个子流程之间的拆分位置,定义对应的数据流接口和接口中的数据流标识,从而获得第一处理子流程和第二处理子流程。
具体的,在边缘节点的处理子流程中,在拆分位置添加输出接口模块,获得第二处理子流程,所述第二配置信息包括第二连接配置信息,所述第二连接配置信息可以包括云端节点的第一标识、数据流标识和数据传输协议等,所述第二连接配置信息可以配置在输出接口模块中,比如,所述输出接口模块可以定义为边缘数据交互模块,该边缘数据交互模块绑定云端节点的第一标识和数据流标识。
在云端节点的处理子流程中,在拆分位置添加输入接口模块,获得第一处理子流程,所述第一配置信息包括第一连接配置信息,所述第一连接配置信息可以包括边缘节点的第二标识、数据流标识和数据传输协议等,所述第一连接配置信息可以配置在输入接口模块中,比如,该输入接口模块可以为云端数据交互模块,该云端数据交互模块绑定需要处理的边缘节点的第二标识和数据流标识。
所述输出接口模块和输入接口模块对应,通过第一连接配置信息和第二连接配置信息将所述输出接口模块和输入接口模块建立连接,从而实现云端节点和边缘节点的连接。也就是说,云端数据交互模块绑定的边缘节点和边缘数据交互模块绑定的云端节点对应,使得第二标识对应的边缘节点可以通过边缘数据交互模块将目标数据流发送给第一标识对应的云端节点,而所述第一标识对应的云端节点通过云端数据交互模块接收第二标识对应的边缘节点发送的目标数据流,该目标数据流为数据流标识对应的数据流。
在步骤104中,所述云端节点还可以包括流程下发单元和云端流程处理单元,所述流程分解单元将数据处理流程进行分解之后,将获得的第一配置信息下发给云端流程处理单元,以供云端流程处理单元基于所述第一配置信息构建第一处理子流程。
同时,所述流程分解单元将获得的第二配置信息发给流程下发单元,该流程下发单元将第二配置信息打包成软件包发送给边缘节点,以供边缘节点基于所述第二配置信息,创建第二处理子流程。
为减少软件包的大小,该流程下发单元打包时,可以比对边缘节点已有的功能模块,对已有的功能模块只打包功能模块的配置信息,对边缘节点上没有的功能模块,同时打包功能模块的运行代码和配置信息。
所述云端流程处理单元按照所述第一配置信息中的第一模块信息,加载所述第一模块信息对应的第一功能模块的运行代码;按照所述第一配置信息中的第一功能模块的有向连接信息,基于加载的运行代码构建所述第一处理子流程。
经过上述步骤,云端节点基于待部署软件的数据处理流程,完成了对待部署软件的自动部署。
相应的,边缘节点接收第一节点发送的第二配置信息;按照所述第二配置信息中的第二模块信息,加载所述第二模块信息对应的第二功能模块的运行代码;按照所述第二配置信息中的第二功能模块的有向连接信息,基于加载的运行代码构建所述第二处理子流程。
所述按照所述第二配置信息中的第二模块信息,加载所述第二模块信息对应的各第二功能模块的运行代码,包括:
若所述第二模块信息中仅包括第二功能模块的配置信息,基于所述配置信息,从本地加载所述第二功能模块的运行代码;
若所述第二模块信息中包括第二功能模块的运行代码和配置信息,基于所述配置信息,加载所述第二模块信息中所述第二功能模块的运行代码。
如此,通过边缘节点接收第二配置信息,并基于第二配置信息构建第二处理子流程,从而使得云端节点在边缘节点的协同下完成了对待部署软件的自动部署。
另外,所述云端流程处理单元构建完成第一处理子流程之后,将云端数据接入模块接收到的边缘节点发送的目标数据流作为输入数据,对第一处理子流程进行处理。
本发明实施例提供的软件部署方法,通过在第一节点侧和第二节点侧共用待部署软件的数据处理流程;基于模块化配置,在拆分位置分解所述数据处理流程,并在所述拆分位置分别添加输出接口模块和对应的输入接口模块,这样,能够分解获得第一处理子流程和第二处理子流程,同时能够将第一处理流程和第二处理子流程建立连接,如此,能够将第一处理流程和第二处理子流程灵活解耦到第一节点侧和第二节点侧,提高软件部署的灵活性。
另外,软件部署开发比较便捷,用户只需定义待部署软件端到端的数据处理流程和边缘处理偏好指标即可,同时,支持用户无感知的自动化边缘任务分配。
参见图2,图中示出了本发明实施例提供的软件部署方法的流程示意图之二。应用于第二节点,如图2所示,该方法可以包括如下步骤:
步骤201,接收第一节点发送的第二配置信息;
步骤202,按照所述第二配置信息中的第二模块信息,加载所述第二模块信息对应的第二功能模块的运行代码;
步骤203,按照所述第二配置信息中的第二功能模块的有向连接信息,基于加载的运行代码构建所述第二处理子流程。
在步骤201中,所述边缘节点可以包括流程加载单元,该流程加载单元接收云端节点下发的软件包,对该软件包进行解包,获得第二配置信息。
在步骤202中,所述流程加载单元基于第二配置信息中的第二模块信息,加载所述第二模块信息对应的第二功能模块的运行代码。具体的,所述流程加载单元判定所述第二模块信息是否包括第二功能模块的运行代码,若包括,则直接基于所述第二模块信息中第二功能模块的配置信息,加载所述第二功能模块的运行代码,若不包括,则从本地获取第二功能模块的运行代码,并基于所述第二模块信息中第二功能模块的配置信息,加载所述第二功能模块的运行代码。
在步骤203中,加载好运行代码之后,该流程加载单元按照所述第二配置信息中的第二功能模块的有向连接信息,基于加载的运行代码构建所述第二处理子流程。
另外,边缘节点还可以包括边缘流程处理单元,该边缘流程处理单元基于构建的第一处理子流程,对输入数据执行处理,根据第一处理子流程中的边缘数据本地输出模块和边缘数据交互模块,将数据处理结果在本地输出或上传到云端节点。
本发明实施例中,通过边缘节点接收第二配置信息,并基于第二配置信息构建第二处理子流程,从而使得云端节点在边缘节点的协同下完成了对待部署软件的自动部署。
进一步的,云端节点可以根据第一处理子流程和第二处理子流程的处理情况,优化待部署软件的运行性能。
具体的,云端流程处理单元在对第一处理子流程处理过程中,可以统计所述第一处理子流程中首端第一功能模块至末端第一功能模块的延迟时间,获得第一统计延迟时间,同时,还可以统计所述第一处理子流程的计算负载,获得第一统计计算负载,同时,还可以所述第一处理子流程的计算功耗,获得第一统计计算功耗。然后,所述云端流程处理单元可以将所述第一统计延迟时间、第一统计计算负载和第一统计计算功耗发送给流程分解单元。
另外,边缘流程处理单元在对第二处理子流程处理过程中,也可以统计所述第二处理子流程中首端第二功能模块至末端第二功能模块的延迟时间,获得第二统计延迟时间,同时,还可以统计所述第二处理子流程的计算负载,获得第二统计计算负载,同时,还可以所述第二处理子流程的计算功耗,获得第二统计计算功耗。然后,所述边缘流程处理单元可以将所述第二统计延迟时间、第二统计计算负载和第二统计计算功耗上报给云端节点的流程分解单元。
该流程分解单元可以基于第一统计信息和第二统计信息中至少一种,对所述数据处理流程的拆分位置进行调整,重新获得所述数据处理流程的拆分位置,所述第一统计信息包括第一统计延迟时间、第一统计计算负载和第一统计计算功耗,所述第二统计信息包括第二统计延迟时间、第二统计计算负载和第二统计计算功耗。
比如,若第一统计延迟时间大于云端节点处理流程的延迟时限,则需要将云端节点的处理子流程中靠近边缘节点的处理子流程的功能模块移入至边缘节点的处理子流程中,从而调整待部署软件的数据处理流程的拆分位置。
又比如,若第二统计计算量大于边缘节点处理流程的计算量,则需要将边缘节点的处理子流程中靠近云端节点的处理子流程的功能模块移入至云端节点的处理子流程中,从而调整待部署软件的数据处理流程的拆分位置。
所述云端节点在重新获得所述数据处理流程的拆分位置之后,重新对所述待部署软件的数据处理流程进行分解,以重新对所述待部署软件进行部署,从而进一步优化待部署软件的运行性能。
下面对本发明实施例提供的软件部署方法举例进行详细说明。
应用场景:对边缘节点高频率采集的数据进行平均后上报给云端节点,以减少边缘节点上传至云端节点的数据量。
参见图3,图中示出了本发明实施例提供的软件部署方法应用的软件部署系统的结构示意图,如图3所示,软件部署系统包括:云端节点和边缘节点;其中,云端节点包括流程构建单元、流程分解单元、流程下发单元和云端流程处理单元,边缘节点包括流程加载单元和边缘流程处理单元。
该软件部署方法具体过程如下:
首先,流程构建单元获取用户A提交的部署配置信息。
其中,部署配置信息包括目标部署信息,所述目标部署信息用于指示构建所述待部署软件的数据处理流程,所述数据处理流程由至少一功能模块和各所述功能模块的有向连接构成,待部署软件的数据处理流程包括边缘数据本地输出模块、边缘数据输入模块、时间窗口平均模块(该功能模块为开放给用户定义的函数编程模块)和云端数据输出模块,待部署软件的数据处理流程如图4所示。
所述部署配置信息还包括标定配置信息,所述标定配置信息标定时间窗口平均模块位于边缘节点处理。所述部署配置信息还包括指定配置信息,所述指定配置信息指定需要部署软件的边缘节点为标识devB的边缘节点。所述部署配置信息还包括性能配置信息,所述性能配置信息包括边缘设备计算能力指标、端到端延迟需求指标和边缘处理偏好指标;所述边缘设备计算能力指标为边缘计算能力ARM-cortexM0,端到端延迟需求指标为无延迟需求,边缘处理偏好指标为优先边缘处理。
然后,所述流程分解单元按照以上任意一种分配策略确定所述数据处理流程的拆分位置,并基于所述拆分位置对所述数据处理流程进行分解,获得第一配置信息和第二配置信息。
其中,所述第一配置信息用于指示所述第一节点构建第一处理子流程,所述第二配置信息用于指示第二节点构建第二处理子流程。第一处理子流程包括和云端数据交互模块和云端数据输出模块,第一处理子流程如图5所示;第二处理子流程包括边缘数据本地输出模块、边缘数据输入模块、时间窗口平均模块和边缘数据交互模块,第二处理子流程如图6所示。
边缘数据交互模块指定接入标识onenet的云端节点和交互的目标数据流名称dsname1。云端数据交互模块指定标识devB的边缘节点和交互的目标数据流名称dsname1。
接着,流程分解单元将第一配置信息发给云端流程处理单元,同时,将第二配置信息发给流程下发单元。
接着,流程下发单元将第二配置信息打包成软件包,下发给标识devB的边缘节点。
由于标识devB的边缘节点中已包含边缘输入模块、边缘数据本地输出模块和边缘数据交互模块,因此,只需要将这三个功能模块的配置信息进行打包,而需要将时间窗口平均模块的运行代码和该功能模块的配置信息同时打包。
其中,功能模块的配置信息中包括功能模块的参数配置。
比如,边缘输入模块的配置信息包括:数据输入设备端口、数据输入解析方式和模版。
边缘数据本地输出模块的配置信息包括:输出方式(串口输出、写文件)、输出目标(设备输出端口或文件)和输出格式模版。
云端数据输出模块的配置信息包括:云端平台类型或平台协议、平台地址、输出设备名称和数据流名称。
时间窗口平均模块的配置信息包括:时间窗口大小和平均计算类型(算术平均、几何平均)。
接着,边缘节点的流程加载单元接收第一节点发送的第二配置信息,基于第二配置信息中的第二模块信息,加载所述第二模块信息对应的第二功能模块的运行代码,按照所述第二配置信息中的第二功能模块的有向连接信息,基于加载的运行代码构建所述第二处理子流程。
接着,边缘流程处理单元对构建的第二处理子流程进行处理,将边缘数据交互模块配置的名称为dsname1的数据流上报给云端平台。
接着,云端流程处理单元按照所述第一配置信息中的第一模块信息,加载所述第一模块信息对应的第一功能模块的运行代码;按照所述第一配置信息中的第一功能模块的有向连接信息,基于加载的运行代码构建所述第一处理子流程,并通过流计算引擎加载运行。其中,云端数据交互模块将收到的标识为devB的边缘节点发送的名称为dsname1的数据流作为构建的第一处理子流程的输入数据,对所述第一处理子流程进行处理,处理后的数据输出到云端数据库进行存储。
下面对本发明实施例提供的软件部署装置进行说明。
参见图7,图中示出了本发明实施例提供的软件部署装置的结构示意图之一。应用于第一节点,如图7所示,软件部署装置700包括:
确定模块701,用于确定待部署软件的数据处理流程的拆分位置;其中,所述数据处理流程由至少一功能模块和各所述功能模块的有向连接构成,所述拆分位置为断开相邻两个功能模块的有向连接的位置;
分解模块702,用于基于所述拆分位置对所述数据处理流程进行分解,获得第一配置信息和第二配置信息;其中,所述第一配置信息用于指示所述第一节点构建第一处理子流程,所述第二配置信息用于指示第二节点构建第二处理子流程;所述第一处理子流程由输入接口模块和所述数据处理流程中拆分位置之后的功能模块的有向连接构成,所述第二处理子流程由所述数据处理流程中拆分位置之前的功能模块和输出接口模块的有向连接构成,所述输出接口模块和所述输入接口模块对应;
部署模块703,用于基于所述第一配置信息和第二配置信息,对所述待部署软件进行部署。
可选的,所述确定模块701,具体用于获取至少一目标功能模块;其中,所述目标功能模块为所述数据处理流程中未执行分配给所述第一节点和第二节点的功能模块;按照第一参数和/或第二参数对各所述目标功能模块执行分配,获得所述数据处理流程的拆分位置;其中,所述第一参数包括所述第一节点处理流程的延迟时限和所述第二节点处理流程的资源量,所述第二参数包括各所述目标功能模块的输出数据量。
可选的,所述拆分位置相邻两端分别为第一目标功能模块和第二目标功能模块,所述数据处理流程中所述第一目标功能模块有向连接至第二目标功能模块;所述拆分位置基于以下任一策略确定:
所述数据处理流程中从所述第一目标功能模块至末端功能模块的延迟时间大于所述第一节点处理流程的延迟时限,且所述数据处理流程中从所述第二目标功能模块至末端功能模块的延迟时间小于或等于所述第一节点处理流程的延迟时限;
所述第一目标功能模块为所述数据处理流程的所有目标功能模块中输出数据量最少的目标功能模块;
所述数据处理流程中从首端功能模块至所述第一目标功能模块的计算量之和小于或等于所述第二节点处理流程的资源量,且所述数据处理流程中从首端功能模块至所述第二目标功能模块的计算量之和大于所述第二节点处理流程的资源量;
所述拆分位置为目标综合效用值对应的连接位置,所述目标综合效用值为所述数据处理流程中用于连接两端目标功能模块的各连接位置对应的综合效用值中最小的综合效用值;其中,所述综合效用值基于目标参数确定,所述目标参数包括所述数据处理流程中从连接位置靠近末端功能模块一端连接的第三目标功能模块至末端功能模块的延迟时间、所述数据处理流程中从所述第三目标功能模块至末端功能模块的计算量之和、所述数据处理流程中从首端功能模块至所述连接位置另一端连接的第四目标功能模块的计算量之和和所述第四目标功能模块的输出数据量中至少两种。
可选的,所述部署模块703,具体用于将所述第二配置信息发送给所述第二节点;基于所述第一配置信息,构建所述第一处理子流程。
可选的,所述确定模块701,还用于基于第一统计延迟时间、第一统计计算量、第二统计延迟时间和第二统计计算量中至少一种,对所述数据处理流程的拆分位置进行调整,重新获得所述数据处理流程的拆分位置;
其中,第一统计延迟时间为在所述第一处理子流程的处理过程中,统计获得的所述第一处理子流程中首端第一功能模块至末端第一功能模块的延迟时间,所述第一统计计算量为在所述第一处理子流程的处理过程中,统计获得的所述第一处理子流程中首端第一功能模块至末端第一功能模块的计算量之和;所述第二统计延迟时间为接收的所述第二节点发送的在所述第二处理子流程的处理过程中,统计获得的所述第二处理子流程中首端第二功能模块至末端第二功能模块的延迟时间,所述第二统计计算量为接收的所述第二节点发送的在所述第二处理子流程的处理过程中,统计获得的所述第二处理子流程中首端第二功能模块至末端第二功能模块的计算量之和。
本发明实施例提供的软件部署装置能够实现上述第一节点侧方法实施例中实现的各个过程,并能达到相同的有益效果,为避免重复,这里不再赘述。
参见图8,图中示出了本发明实施例提供的软件部署装置的结构示意图之二。应用于第二节点,如图8所示,软件部署装置800包括:
接收模块801,用于接收第一节点发送的第二配置信息;
加载模块802,用于按照所述第二配置信息中的第二模块信息,加载所述第二模块信息对应的第二功能模块的运行代码;
构建模块803,用于按照所述第二配置信息中的第二功能模块的有向连接信息,基于加载的运行代码构建所述第二处理子流程。
可选的,加载模块802,具体用于若所述第二模块信息中仅包括第二功能模块的配置信息,基于所述配置信息,从本地加载所述第二功能模块的运行代码;若所述第二模块信息中包括第二功能模块的运行代码和配置信息,基于所述配置信息,加载所述第二模块信息中所述第二功能模块的运行代码。
本发明实施例提供的软件部署装置能够实现上述第二节点侧方法实施例中实现的各个过程,并能达到相同的有益效果,为避免重复,这里不再赘述。
参见图9,图中示出了本发明实施例提供的第一节点的结构示意图。如图9所示,第一节点900包括:第一处理器901、第一存储器902、第一用户接口903和第一总线接口904。
第一处理器901,用于读取第一存储器902中的程序,执行下列过程:
确定待部署软件的数据处理流程的拆分位置;其中,所述数据处理流程由至少一功能模块和各所述功能模块的有向连接构成,所述拆分位置为断开相邻两个功能模块的有向连接的位置;
基于所述拆分位置对所述数据处理流程进行分解,获得第一配置信息和第二配置信息;其中,所述第一配置信息用于指示所述第一节点构建第一处理子流程,所述第二配置信息用于指示第二节点构建第二处理子流程;所述第一处理子流程由输入接口模块和所述数据处理流程中拆分位置之后的功能模块的有向连接构成,所述第二处理子流程由所述数据处理流程中拆分位置之前的功能模块和输出接口模块的有向连接构成,所述输出接口模块和所述输入接口模块对应;
基于所述第一配置信息和第二配置信息,对所述待部署软件进行部署。
在图9中,总线架构可以包括任意数量的互联的总线和桥,具体由第一处理器901代表的一个或多个处理器和第一存储器902代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。第一总线接口904提供接口。针对不同的用户设备,第一用户接口903还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
第一处理器901负责管理总线架构和通常的处理,第一存储器902可以存储第一处理器901在执行操作时所使用的数据。
可选的,第一处理器901,具体用于:
获取至少一目标功能模块;其中,所述目标功能模块为所述数据处理流程中未执行分配给所述第一节点和第二节点的功能模块;
按照第一参数和/或第二参数对各所述目标功能模块执行分配,获得所述数据处理流程的拆分位置;其中,所述第一参数包括所述第一节点处理流程的延迟时限和所述第二节点处理流程的资源量,所述第二参数包括各所述目标功能模块的输出数据量。
可选的,所述拆分位置相邻两端分别为第一目标功能模块和第二目标功能模块,所述数据处理流程中所述第一目标功能模块有向连接至第二目标功能模块;所述拆分位置基于以下任一策略确定:
所述数据处理流程中从所述第一目标功能模块至末端功能模块的延迟时间大于所述第一节点处理流程的延迟时限,且所述数据处理流程中从所述第二目标功能模块至末端功能模块的延迟时间小于或等于所述第一节点处理流程的延迟时限;
所述第一目标功能模块为所述数据处理流程的所有目标功能模块中输出数据量最少的目标功能模块;
所述数据处理流程中从首端功能模块至所述第一目标功能模块的计算量之和小于或等于所述第二节点处理流程的资源量,且所述数据处理流程中从首端功能模块至所述第二目标功能模块的计算量之和大于所述第二节点处理流程的资源量;
所述拆分位置为目标综合效用值对应的连接位置,所述目标综合效用值为所述数据处理流程中用于连接两端目标功能模块的各连接位置对应的综合效用值中最小的综合效用值;其中,所述综合效用值基于目标参数确定,所述目标参数包括所述数据处理流程中从连接位置靠近末端功能模块一端连接的第三目标功能模块至末端功能模块的延迟时间、所述数据处理流程中从所述第三目标功能模块至末端功能模块的计算量之和、所述数据处理流程中从首端功能模块至所述连接位置另一端连接的第四目标功能模块的计算量之和和所述第四目标功能模块的输出数据量中至少两种。
可选的,第一处理器901,具体用于:
将所述第二配置信息发送给所述第二节点;
基于所述第一配置信息,构建所述第一处理子流程。
第一处理器901,还用于:
基于第一统计延迟时间、第一统计计算量、第二统计延迟时间和第二统计计算量中至少一种,对所述数据处理流程的拆分位置进行调整,重新获得所述数据处理流程的拆分位置;
其中,第一统计延迟时间为在所述第一处理子流程的处理过程中,统计获得的所述第一处理子流程中首端第一功能模块至末端第一功能模块的延迟时间,所述第一统计计算量为在所述第一处理子流程的处理过程中,统计获得的所述第一处理子流程中首端第一功能模块至末端第一功能模块的计算量之和;所述第二统计延迟时间为接收的所述第二节点发送的在所述第二处理子流程的处理过程中,统计获得的所述第二处理子流程中首端第二功能模块至末端第二功能模块的延迟时间,所述第二统计计算量为接收的所述第二节点发送的在所述第二处理子流程的处理过程中,统计获得的所述第二处理子流程中首端第二功能模块至末端第二功能模块的计算量之和。
优选的,本发明实施例还提供一种第一节点,包括第一处理器901,第一存储器902,存储在第一存储器902上并可在所述第一处理器901上运行的计算机程序,该计算机程序被第一处理器901执行时实现上述第一节点侧软件部署方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
参见图10,图中示出了本发明实施例提供的第二节点的结构示意图。如图10所示,第二节点1000包括:第二处理器1001、第二存储器1002、第二用户接口1003和第二总线接口1004。
第二处理器1001,用于读取第二存储器1002中的程序,执行下列过程:
接收第一节点发送的第二配置信息;
按照所述第二配置信息中的第二模块信息,加载所述第二模块信息对应的第二功能模块的运行代码;
按照所述第二配置信息中的第二功能模块的有向连接信息,基于加载的运行代码构建所述第二处理子流程。
在图10中,总线架构可以包括任意数量的互联的总线和桥,具体由第二处理器1001代表的一个或多个处理器和第二存储器1002代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。第二总线接口1004提供接口。针对不同的用户设备,第二用户接口1003还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
第二处理器1001负责管理总线架构和通常的处理,第二存储器1002可以存储第二处理器1001在执行操作时所使用的数据。
可选的,第二处理器1001,具体用于:
若所述第二模块信息中仅包括第二功能模块的配置信息,基于所述配置信息,从本地加载所述第二功能模块的运行代码;
若所述第二模块信息中包括第二功能模块的运行代码和配置信息,基于所述配置信息,加载所述第二模块信息中所述第二功能模块的运行代码。
优选的,本发明实施例还提供一种第二节点,包括第二处理器1001,第二存储器1002,存储在第二存储器1002上并可在所述第二处理器1001上运行的计算机程序,该计算机程序被第二处理器1001执行时实现上述第二节点侧软件部署方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被第一处理器执行时实现上述第一节点侧软件部署方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述,或者,该计算机程序被第二处理器执行时实现上述第二节点侧软件部署方法实施例的各个过程,且能达到相同的技术效果。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种软件部署方法,应用于第一节点,其特征在于,所述方法包括:
确定待部署软件的数据处理流程的拆分位置;其中,所述数据处理流程由至少一功能模块和各所述功能模块的有向连接构成,所述拆分位置为断开相邻两个功能模块的有向连接的位置;
基于所述拆分位置对所述数据处理流程进行分解,获得第一配置信息和第二配置信息;其中,所述第一配置信息用于指示所述第一节点构建第一处理子流程,所述第二配置信息用于指示第二节点构建第二处理子流程;所述第一处理子流程由输入接口模块和所述数据处理流程中拆分位置之后的功能模块的有向连接构成,所述第二处理子流程由所述数据处理流程中拆分位置之前的功能模块和输出接口模块的有向连接构成;所述第一配置信息中包括第一连接配置信息,所述第二配置信息中包括第二连接配置信息,所述第一连接配置信息和所述第二连接配置信息用于将所述输出接口模块和输入接口模块建立连接;
基于所述第一配置信息和第二配置信息,对所述待部署软件进行部署;
所述确定待部署软件的数据处理流程的拆分位置,包括:
获取至少一目标功能模块;其中,所述目标功能模块为所述数据处理流程中未执行分配给所述第一节点和第二节点的功能模块;
按照第一参数和/或第二参数对各所述目标功能模块执行分配,获得所述数据处理流程的拆分位置;其中,所述第一参数包括所述第一节点处理流程的延迟时限和所述第二节点处理流程的资源量,所述第二参数包括各所述目标功能模块的输出数据量。
2.根据权利要求1所述的方法,其特征在于,所述拆分位置相邻两端分别为第一目标功能模块和第二目标功能模块,所述数据处理流程中所述第一目标功能模块有向连接至第二目标功能模块;所述拆分位置基于以下任一策略确定:
所述数据处理流程中从所述第一目标功能模块至末端功能模块的延迟时间大于所述第一节点处理流程的延迟时限,且所述数据处理流程中从所述第二目标功能模块至末端功能模块的延迟时间小于或等于所述第一节点处理流程的延迟时限;
所述第一目标功能模块为所述数据处理流程的所有目标功能模块中输出数据量最少的目标功能模块;
所述数据处理流程中从首端功能模块至所述第一目标功能模块的计算量之和小于或等于所述第二节点处理流程的资源量,且所述数据处理流程中从首端功能模块至所述第二目标功能模块的计算量之和大于所述第二节点处理流程的资源量;
所述拆分位置为目标综合效用值对应的连接位置,所述目标综合效用值为所述数据处理流程中用于连接两端目标功能模块的各连接位置对应的综合效用值中最小的综合效用值;其中,所述综合效用值基于目标参数确定,所述目标参数包括所述数据处理流程中从连接位置靠近末端功能模块一端连接的第三目标功能模块至末端功能模块的延迟时间、所述数据处理流程中从所述第三目标功能模块至末端功能模块的计算量之和、所述数据处理流程中从首端功能模块至所述连接位置另一端连接的第四目标功能模块的计算量之和和所述第四目标功能模块的输出数据量中至少两种。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第一配置信息和第二配置信息,对所述待部署软件进行部署,包括:
将所述第二配置信息发送给所述第二节点;
基于所述第一配置信息,构建所述第一处理子流程。
4.根据权利要求3所述的方法,其特征在于,所述确定待部署软件的数据处理流程的拆分位置,包括:
基于第一统计信息和第二统计信息中至少一种,对所述数据处理流程的拆分位置进行调整,重新获得所述数据处理流程的拆分位置;
其中,所述第一统计信息包括第一统计延迟时间、第一统计计算负载和第一统计计算功耗,所述第一统计延迟时间为在所述第一处理子流程的处理过程中,统计获得的所述第一处理子流程中首端第一功能模块至末端第一功能模块的延迟时间,所述第一统计计算负载为在所述第一处理子流程的处理过程中,统计获得的所述第一处理子流程的计算负载;所述第一统计计算功耗为在所述第一处理子流程的处理过程中,统计获得的所述第一处理子流程的计算功耗;
所述第二统计信息包括第二统计延迟时间、第二统计计算负载和第二统计计算功耗,所述第二统计延迟时间为所述第二节点在所述第二处理子流程的处理过程中,统计获得的所述第二处理子流程中首端第二功能模块至末端第二功能模块的延迟时间,所述第二统计计算负载为所述第二节点在所述第二处理子流程的处理过程中,统计获得的所述第二处理子流程的计算负载,所述第二统计计算功耗为所述第二节点在所述第二处理子流程的处理过程中,统计获得的所述第二处理子流程的计算功耗。
5.一种软件部署方法,应用于第二节点,其特征在于,所述方法包括:
接收第一节点发送的第二配置信息;
按照所述第二配置信息中的第二模块信息,加载所述第二模块信息对应的第二功能模块的运行代码;
按照所述第二配置信息中的第二功能模块的有向连接信息,基于加载的运行代码构建第二处理子流程;
所述第一节点,用于:
确定待部署软件的数据处理流程的拆分位置;其中,所述数据处理流程由至少一功能模块和各所述功能模块的有向连接构成,所述拆分位置为断开相邻两个功能模块的有向连接的位置;
基于所述拆分位置对所述数据处理流程进行分解,获得第一配置信息和第二配置信息;其中,所述第一配置信息用于指示所述第一节点构建第一处理子流程,所述第二配置信息用于指示第二节点构建第二处理子流程;所述第一处理子流程由输入接口模块和所述数据处理流程中拆分位置之后的功能模块的有向连接构成,所述第二处理子流程由所述数据处理流程中拆分位置之前的功能模块和输出接口模块的有向连接构成;所述第一配置信息中包括第一连接配置信息,所述第二配置信息中包括第二连接配置信息,所述第一连接配置信息和所述第二连接配置信息用于将所述输出接口模块和输入接口模块建立连接;
所述确定待部署软件的数据处理流程的拆分位置,包括:
获取至少一目标功能模块;其中,所述目标功能模块为所述数据处理流程中未执行分配给所述第一节点和第二节点的功能模块;
按照第一参数和/或第二参数对各所述目标功能模块执行分配,获得所述数据处理流程的拆分位置;其中,所述第一参数包括所述第一节点处理流程的延迟时限和所述第二节点处理流程的资源量,所述第二参数包括各所述目标功能模块的输出数据量。
6.根据权利要求5所述的方法,其特征在于,所述按照所述第二配置信息中的第二模块信息,加载所述第二模块信息对应的各第二功能模块的运行代码,包括:
若所述第二模块信息中仅包括第二功能模块的配置信息,基于所述配置信息,从本地加载所述第二功能模块的运行代码;
若所述第二模块信息中包括第二功能模块的运行代码和配置信息,基于所述配置信息,加载所述第二模块信息中所述第二功能模块的运行代码。
7.一种软件部署装置,应用于第一节点,其特征在于,所述装置包括:
确定模块,用于确定待部署软件的数据处理流程的拆分位置;其中,所述数据处理流程由至少一功能模块和各所述功能模块的有向连接构成,所述拆分位置为断开相邻两个功能模块的有向连接的位置;
分解模块,用于基于所述拆分位置对所述数据处理流程进行分解,获得第一配置信息和第二配置信息;其中,所述第一配置信息用于指示所述第一节点构建第一处理子流程,所述第二配置信息用于指示第二节点构建第二处理子流程;所述第一处理子流程由输入接口模块和所述数据处理流程中拆分位置之后的功能模块的有向连接构成,所述第二处理子流程由所述数据处理流程中拆分位置之前的功能模块和输出接口模块的有向连接构成;所述第一配置信息中包括第一连接配置信息,所述第二配置信息中包括第二连接配置信息,所述第一连接配置信息和所述第二连接配置信息用于将所述输出接口模块和输入接口模块建立连接;
部署模块,用于基于所述第一配置信息和第二配置信息,对所述待部署软件进行部署;
所述确定模块,具体用于:
获取至少一目标功能模块;其中,所述目标功能模块为所述数据处理流程中未执行分配给所述第一节点和第二节点的功能模块;
按照第一参数和/或第二参数对各所述目标功能模块执行分配,获得所述数据处理流程的拆分位置;其中,所述第一参数包括所述第一节点处理流程的延迟时限和所述第二节点处理流程的资源量,所述第二参数包括各所述目标功能模块的输出数据量。
8.一种软件部署装置,应用于第二节点,其特征在于,所述装置包括:
接收模块,用于接收第一节点发送的第二配置信息;
加载模块,用于按照所述第二配置信息中的第二模块信息,加载所述第二模块信息对应的第二功能模块的运行代码;
构建模块,用于按照所述第二配置信息中的第二功能模块的有向连接信息,基于加载的运行代码构建第二处理子流程;
所述第一节点,用于:
确定待部署软件的数据处理流程的拆分位置;其中,所述数据处理流程由至少一功能模块和各所述功能模块的有向连接构成,所述拆分位置为断开相邻两个功能模块的有向连接的位置;
基于所述拆分位置对所述数据处理流程进行分解,获得第一配置信息和第二配置信息;其中,所述第一配置信息用于指示所述第一节点构建第一处理子流程,所述第二配置信息用于指示第二节点构建第二处理子流程;所述第一处理子流程由输入接口模块和所述数据处理流程中拆分位置之后的功能模块的有向连接构成,所述第二处理子流程由所述数据处理流程中拆分位置之前的功能模块和输出接口模块的有向连接构成;所述第一配置信息中包括第一连接配置信息,所述第二配置信息中包括第二连接配置信息,所述第一连接配置信息和所述第二连接配置信息用于将所述输出接口模块和输入接口模块建立连接;
所述确定待部署软件的数据处理流程的拆分位置,包括:
获取至少一目标功能模块;其中,所述目标功能模块为所述数据处理流程中未执行分配给所述第一节点和第二节点的功能模块;
按照第一参数和/或第二参数对各所述目标功能模块执行分配,获得所述数据处理流程的拆分位置;其中,所述第一参数包括所述第一节点处理流程的延迟时限和所述第二节点处理流程的资源量,所述第二参数包括各所述目标功能模块的输出数据量。
9.一种第一节点,其特征在于,包括第一处理器,第一存储器,存储在所述第一存储器上并可在所述第一处理器上运行的计算机程序,所述计算机程序被所述第一处理器执行时实现如权利要求1至4中任一项所述的软件部署方法的步骤。
10.一种第二节点,其特征在于,包括第二处理器,第二存储器,存储在所述第二存储器上并可在所述第二处理器上运行的计算机程序,所述计算机程序被所述第二处理器执行时实现如权利要求5至6中任一项所述的软件部署方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被第一处理器执行时实现如权利要求1至4中任一项所述的软件部署方法的步骤,或者被第二处理器执行时实现如权利要求5至6中任一项所述的软件部署方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911212533.5A CN111026405B (zh) | 2019-12-02 | 2019-12-02 | 软件部署方法、装置及相关节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911212533.5A CN111026405B (zh) | 2019-12-02 | 2019-12-02 | 软件部署方法、装置及相关节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111026405A CN111026405A (zh) | 2020-04-17 |
CN111026405B true CN111026405B (zh) | 2023-04-28 |
Family
ID=70207666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911212533.5A Active CN111026405B (zh) | 2019-12-02 | 2019-12-02 | 软件部署方法、装置及相关节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111026405B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112130931B (zh) * | 2020-09-27 | 2023-01-06 | 联想(北京)有限公司 | 一种应用部署方法、节点、系统及存储介质 |
CN114462900B (zh) * | 2022-04-13 | 2022-07-29 | 云智慧(北京)科技有限公司 | 一种业务活动节点的拆分方法、装置及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733380A (zh) * | 2017-04-21 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 应用部署方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577232A (zh) * | 2013-11-04 | 2014-02-12 | 交通银行股份有限公司 | 面向应用的集群式部署it架构环境的方法及设备 |
US10797943B2 (en) * | 2017-04-12 | 2020-10-06 | International Business Machines Corporation | Configuration management in a stream computing environment |
CN108737463A (zh) * | 2017-04-17 | 2018-11-02 | 北京神州泰岳软件股份有限公司 | 一种软件部署方法、服务器和系统 |
US10733168B2 (en) * | 2017-10-26 | 2020-08-04 | Sap Se | Deploying changes to key patterns in multi-tenancy database systems |
CN107682206B (zh) * | 2017-11-02 | 2021-02-19 | 北京中电普华信息技术有限公司 | 基于微服务的业务流程管理系统的部署方法及系统 |
CN109040686B (zh) * | 2018-08-22 | 2020-12-01 | 苏宁云计算有限公司 | 一种物联网摄像系统中的软件部署方法及物联网摄像系统 |
CN109857407B (zh) * | 2018-10-24 | 2022-04-19 | 京信网络系统股份有限公司 | 基站上层软件的部署方法、装置、存储介质及设备 |
-
2019
- 2019-12-02 CN CN201911212533.5A patent/CN111026405B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733380A (zh) * | 2017-04-21 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 应用部署方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111026405A (zh) | 2020-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111026405B (zh) | 软件部署方法、装置及相关节点 | |
JP2021057033A (ja) | 産業制御システムハイパーコンバージドアーキテクチャ | |
CN111147387A (zh) | 一种混合sdn网络的流量控制方法及装置 | |
KR20230067691A (ko) | 차량 업그레이드 방법 및 장치 | |
DE60018023T2 (de) | System, Vorrichtung und Verfahren zum Übertragen von "keep-alive" Nachrichten in einem Kommunikationsnetzwerk | |
CN108777629B (zh) | 处理规则的修改方法、装置及设备 | |
CN111865736A (zh) | 一种设备控制方法及装置 | |
CN110489126A (zh) | 编译任务的执行方法和装置、存储介质及电子装置 | |
CN113055478A (zh) | 一种设备数据的处理方法、装置、设备及介质 | |
CN109617806B (zh) | 一种数据流量调度方法及装置 | |
CN110474960B (zh) | 一种虚拟化网络中业务部署的方法和装置 | |
CN112685287A (zh) | 产品数据的测试方法、装置、存储介质及电子装置 | |
CN108347377A (zh) | 数据转发方法及装置 | |
US20100292979A1 (en) | Method for assistance with the construction and validation of an avionics platform | |
CN110569129A (zh) | 资源分配方法及装置、存储介质、电子装置 | |
CN110430236B (zh) | 一种部署业务的方法以及调度装置 | |
Suter et al. | Fog application allocation for automation systems | |
CN113472591B (zh) | 一种业务性能的确定方法及装置 | |
US11228502B2 (en) | Aggregation platform, requirement owner, and methods thereof | |
CN114442590A (zh) | 车辆诊断方法、设备、诊断通信装置、服务器及存储介质 | |
CN112968794A (zh) | 网络功能链部署方法、装置、终端设备以及存储介质 | |
CN113282063A (zh) | 缝制产线的配置方法及装置 | |
CN109884972A (zh) | 数据的处理方法及装置、存储介质和电子装置 | |
CN106295410B (zh) | 双系统下载文件的方法及其装置 | |
CN109743232A (zh) | 一种接口探测方法及装置 |
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 |