CN104298525A - 复杂约束条件下多组件软件部署的自动化与自适应方法及其部署管理系统 - Google Patents

复杂约束条件下多组件软件部署的自动化与自适应方法及其部署管理系统 Download PDF

Info

Publication number
CN104298525A
CN104298525A CN201410500293.XA CN201410500293A CN104298525A CN 104298525 A CN104298525 A CN 104298525A CN 201410500293 A CN201410500293 A CN 201410500293A CN 104298525 A CN104298525 A CN 104298525A
Authority
CN
China
Prior art keywords
deployment
constraint
equipment
list
software
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.)
Granted
Application number
CN201410500293.XA
Other languages
English (en)
Other versions
CN104298525B (zh
Inventor
陈哲
朱云龙
黄志球
魏欧
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.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
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 Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN201410500293.XA priority Critical patent/CN104298525B/zh
Publication of CN104298525A publication Critical patent/CN104298525A/zh
Application granted granted Critical
Publication of CN104298525B publication Critical patent/CN104298525B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种复杂约束条件下多组件软件部署的自动化与自适应方法及其部署管理系统,属于计算机软件部署和维护技术领域。首先使用部署描述语言描述多组件软件的部署需求及其部署约束条件,然后通过使用设备状态信息探测器、约束求解器和自动部署器,部署管理系统能够根据部署需求和实时探测到的设备状态信息,通过调用约束求解器,自动地、动态地生成满足约束条件的部署计划,并自动执行部署活动,从而实现对复杂约束条件下多组件软件部署的自动化和自适应支持,同时软件部署的效率高、成本低、质量好。

Description

复杂约束条件下多组件软件部署的自动化与自适应方法及其部署管理系统
技术领域
本发明涉及一种多组件软件部署的自动化与自适应方法及其部署管理系统,属于计算机软件部署和维护技术领域。
背景技术
软件部署是指在软件开发完成后保证软件可用并正常运行的过程,包括安装、配置、激活、升级、停止、卸载等一系列活动。多组件软件的部署过程可以分为两个阶段:部署设计和部署执行。部署设计人员通过分析软件组件的部署需求和所有可用部署设备的信息,提出一个可行的部署计划,而部署计划本质上表达的是软件组件和部署设备之间的部署映射关系,这个映射关系能满足所有的软件部署需求。部署执行人员在得到部署计划之后,就可以在每一个设备上部署相应的软件组件。
近年来,随着计算设备的多样化和网络化,部署在这些设备上的多组件软件的体系结构和设计要求变得越来越复杂化,多组件软件的部署需求通常包含复杂的部署约束条件,而部署计划必须满足这些复杂的约束条件。例如,在普适计算环境下,由于使用了大量的不同类型、不同计算能力且网络化的计算设备进行协同工作,使得应用软件往往具有复杂的体系结构和设计要求,进而产生复杂的部署约束条件;在云计算环境下,由于系统将大量异构的、分布式的计算设备或存储资源作为一个整体进行管理,使得系统管理软件同样具有复杂的体系结构和设计要求,进而产生复杂的部署约束条件。此外,在这些软件的运行过程中,设备的失效、设备离开或加入一个网络,都可能导致原有部署计划的失效,使得设计人员必须对部署计划进行动态调整。
这些新情况使得软件部署变得具有挑战性。一方面,由于多组件软件的部署约束条件的复杂性,生成正确的部署计划是非常困难的,尤其是由人工对部署约束条件进行分析,从而生成部署计划的时候,得到的部署计划往往包含考虑不全面和错误的情况。另一方面,多组件软件系统的部署计划可能是动态变化的,例如,可能需要根据应用环境的变化而动态地添加或删除某设备上所部署的组件,网络结构的变化可能导致原有部署计划的失效等等,所以部署计划也应该相应地做出动态调整,并被及时执行,以保证软件的正确运行。因此,复杂的部署约束条件和动态变化的部署计划使得多组件软件的部署成为一项非常复杂而具有挑战性的工作。
目前,已有许多不同的软件部署方法和工具被应用到多组件软件的部署工作中,这些工具主要可以分为两类:手动部署和自动化部署。
手动部署是指:部署设计人员通过人工分析软件组件的部署需求和部署设备信息,生成部署计划,然后将部署计划输入部署工具中,最后部署工具根据部署计划完成软件的安装等相关活动。其优点在于,人工分析过程可以适用于任意的软件系统和部署需求,适用性强。其缺点在于:对于复杂约束条件下大规模多组件软件系统的部署工作,(1)部署设计人员和执行人员需要手动分析和管理各项部署活动,很可能会超出普通技术人员的能力范围;(2)部署约束条件的复杂性使得手动分析的成本大幅度增加,而且非常容易出错,甚至难以完成;(3)部署计划的动态变化使得手动管理的成本大幅度增加,部署计划的调整可能不及时,而且非常容易出错。
自动化部署是指:依据部署设备运行的网络环境,部署工具利用特定的协议获取部署设备信息,然后在人工辅助下生成部署计划,最后部署工具根据部署计划自动完成软件的安装等相关活动。其优点在于,自动化部署可以利用特定的协议自动完成部署设备信息的获取,自动管理部署设备,并自动执行部署计划,一定程度上减少了人力成本。其缺点在于:(1)只能适用于特定的网络环境,不具有普适性;(2)只能处理较简单的部署需求,对于用户自定义的复杂部署约束条件的分析仍然依赖于人工,使得分析成本较高,而且非常容易出错,甚至难以完成;(3)没有考虑到网络环境中设备失效、设备离开或新设备加入等情况导致的部署计划的动态变化,不能实现部署的自适应。
因此,有必要提供一种新的软件部署的方法和技术,以实现对复杂约束条件下多组件软件部署的支持,尽量减少人工的参与,保证部署过程的自动化和自适应,从而克服现有软件部署方法和工具中存在的技术问题。
发明内容
发明目的:为了克服现有技术中存在的不足,本发明提供一种复杂约束条件下多组件软件部署的自动化与自适应方法,通过引入部署描述语言、设备状态信息探测器、约束求解器和自动部署器等模块,使得设计人员可以方便而准确地描述多组件软件的部署需求及其部署约束条件,然后部署管理系统可以根据部署需求和实时探测到的设备状态信息,通过调用约束求解器,自动地、动态地生成满足约束条件的部署计划,并自动执行部署活动,从而实现对复杂约束条件下多组件软件部署的自动化和自适应支持,克服现有软件部署方法和工具中存在的技术问题。
为实现上述目的,本发明采用的技术方案为:一种复杂约束条件下多组件软件部署的自动化与自适应方法,首先使用部署描述语言描述多组件软件的部署需求及其部署约束条件,然后通过使用设备状态信息探测器、约束求解器和自动部署器,部署管理系统能够根据部署需求和实时探测到的设备状态信息,通过调用约束求解器,自动地、动态地生成满足约束条件的部署计划,并自动执行部署活动,从而实现对复杂约束条件下多组件软件部署的自动化和自适应支持,
所述部署描述语言,用于以代码的形式来描述软件部署需求中涉及到的主要元素,包括:软件组件、部署约束、设备状态信息探测器、各软件组件必须满足的部署约束列表。通过实现该部署描述语言的语言解析器,可以从部署描述代码中解析获得组件列表、约束列表、探测器列表、组件约束矩阵等。
本发明的基本思想包括:步骤1、定义部署描述语言,以实现对软件系统的部署需求的准确描述;2、使用部署描述语言对软件系统包含的组件、部署约束和探测器进行描述;3、利用部署描述语言的语言解析器从部署需求的描述代码中获取组件列表、约束列表和探测器列表;4、将探测器部署到部署目标设备上,运行并实时获取设备的状态信息;5、利用约束求解器基于设备的状态信息对部署约束进行自动求解;6、根据约束求解器的求解结果,生成相应的部署计划;7、根据部署计划,自动部署器自动完成软件系统组件的下载、安装等部署活动;8、在软件运行过程中,当设备状态发生变化时,需要进行部署调整时,重新执行步骤4-7。
利用该部署描述语言及其语言解析器,本发明采用的技术方案包括以下步骤:
第1步:在所有可用设备上安装部署管理系统的客户端,所述客户端包括设备状态信息探测器和自动部署器;所述客户端用于获取指定位置的软件、运行获取的软件并获取信息以及与服务器端通信;同时在主控服务器上安装部署管理系统的服务器端,所述服务器端包括约束求解器,所述服务器端用于解析部署描述代码、生成部署计划以及与客户端通信;
第2步:对待部署的多组件软件系统进行结构和部署需求分析,得到多组件软件系统的部署需求,使用部署描述语言以代码的形式对该部署需求进行描述;
第3步:利用部署描述语言的语言解析器对第2步得到的部署描述语言的描述内容进行解析,得到组件列表、约束列表、探测器列表,所述约束包括独立约束和关联约束;由组件列表和约束列表中用到的独立约束获得组件约束矩阵MCom;通过分析约束列表中用到的独立约束的内容,获取需要使用的探测器列表;
第4步:部署管理系统的服务器端将需要使用的探测器列表发送给所有已连接设备的客户端,各个设备利用部署管理系统的客户端,实时获取设备的状态信息,并将这些信息发送给服务器端;
第5步:部署管理系统的服务器端接收客户端发送的设备状态信息,并存储为状态信息表MInfo,然后计算各个设备满足独立约束的情况,并存储为设备约束矩阵MDev;
第6步:根据组件约束矩阵MCom和设备约束矩阵MDev的值,将独立约束和关联约束分别转化为命题逻辑表达式或者其他表达能力更强的高级逻辑表达式,并用合取连词∧连接,作为待求解逻辑表达式;
第7步:利用约束求解器对第6步得到的待求解逻辑表达式进行可满足性求解,根据约束求解器的输出,如果该逻辑表达式可满足,则得到一个求解结果;如果该逻辑表达式不可满足,则表示“该部署需求的约束条件不可满足”,转至第2步重新设计部署需求;
第8步:将约束求解器的求解结果转换为对应的部署计划;
第9步:部署管理系统的服务器端将第3步得到的组件列表和第8步得到的部署计划发送给所有客户端,然后客户端根据部署计划和组件列表中给出的信息,自动完成对应组件的下载、安装、配置、激活部署活动;
第10步:在软件的运行过程中,服务器端对客户端的状态进行实时监控,当设备状态发生变化时,如果需要调整部署计划,则重新执行第4步至第9步。
所述第2步中的部署描述语言的描述内容包括:对多组件软件系统中各个组件的定义、对各个部署约束条件的定义、对各个设备状态信息探测程序的定义、对各软件组件必须满足的部署约束列表的定义。
所述第3步中对第2步得到的部署描述语言的描述内容进行解析的方法包括:根据多组件软件系统中各个组件的定义,得到组件列表,其中组件个数为x个;根据各个部署约束条件的定义,得到约束列表,所述约束包括独立约束和关联约束;根据各个设备状态信息探测程序的定义,得到探测器列表;最后对部署需求代码区进行解析,按独立约束被使用的顺序对用到的独立约束依次编号,其中包含z个独立约束;根据各软件组件必须满足的部署约束列表的定义,由组件列表和用到的独立约束获得组件约束矩阵MCom;所述组件约束矩阵MCom是一个x×z大小的布尔类型矩阵,用于记录部署描述代码中组件和需要满足的独立约束之间的对应关系,其中,x为组件列表中组件的个数,z为独立约束的个数;如果第i行第j列的元素为1,则表示第i个组件必须满足第j个约束,如果为0,则表示第i个组件不需要满足第j个约束;通过分析用到的独立约束的内容,获取需要使用的探测器列表。
所述第4步中实时获取设备的状态信息的方法:所述各个设备,其中设备个数为y个,利用部署管理系统的客户端,根据需要使用的探测器列表中给出的获取地址,自动下载需要使用的探测器列表中包含的所有探测器,然后运行下载完成的探测器,并调用需要使用的探测器列表中给出的探测器部署接口。
所述第5步中设备约束矩阵MDev是一个y×z大小的布尔类型矩阵,用于记录设备及其满足的独立约束之间的对应关系,其中,y为设备的个数,z为独立约束的个数,如果第i行第j列的元素为1,则表示第i个设备满足第j个约束,如果为0,则表示第i个设备不满足第j个约束。
所述第6步中待求解逻辑表达式的建立方法:首先引入一组新的布尔命题变量deploy(i,j),其中1≤i≤x,1≤j≤y,取值范围为0和1,表示是否将第i个组件部署到第j个设备,然后对独立约束和关联约束分别进行转化:
第61步:将独立约束转化为如下命题逻辑表达式:
其中,deploy(i,j)为布尔命题变量,i和j为下标变量,MCom(i,k)为MCom矩阵第i行第k列元素的值,MDev(j,k)为MDev矩阵第j行第k列元素的值;该逻辑表达式表示,对于任意的组件i和设备j,如果将组件i部署在设备j上,那么设备j必须满足组件i所需要满足的所有独立约束;
第62步:将关联约束转化为命题逻辑表达式的方法:
第621步:对于第i个组件的部署设备数的关联约束,转化为如下命题逻辑表达式:其中k代表第i个组件的部署设备数;
第622步:对于第i个组件必须部署在与第k个组件相同设备上的关联约束,转化为如下命题逻辑表达式:即:如果第i个组件部署在第j个设备上,则第k个组件也部署在第j个设备上;
第623步:对于第i个组件必须部署在比第k个组件部署的设备的s状态的值大的设备上的关联约束,转化为如下命题逻辑表达式:
即:如果第i个组件部署在第j个设备上,第k个组件部署在第n个设备上,那么设备j的s状态的值大于设备n的s状态的值;
第63步:用合取连词∧连接第61步和第62步中得到的所有命题逻辑表达式,作为待求解逻辑表达式。
所示第7步中,根据约束求解器的输出,如果该逻辑表达式可满足,则得到一个求解结果,所述的求解结果为第6步中引入的一组新的布尔命题变量deploy(i,j)的值,其中1≤i≤x,1≤j≤y,如果deploy(i,j)的值为1,则表示第i个组件可以部署在第j个设备上;如果为0,则表示第i个组件不可以部署在第j个设备上。
所述第7步中约束求解器为CSP、SAT、SMT求解器中的一个以上的任意组合。
一种复杂约束条件下多组件软件自动化与自适应部署管理系统,包括客户端和服务器端,所述客户端安装在所有可用设备上,所述服务器端安装在主控服务器上,且所述客户端和服务器端相互通信;所述客户端用于获取指定位置的软件、运行获取的软件并获取信息,所述服务器端用于解析部署描述代码、生成部署计划;所述客户端包括设备状态信息探测器和自动部署器;而所述服务器端包括输入端、部署描述语言模块、处理模块以及约束求解器:
所述设备状态信息探测器用于根据处理模块发送的需要使用的探测器列表对客户端上设备的状态信息进行探测,并将探测到的设备状态信息发送给处理模块;
所述自动部署器用于根据语言解析器发送的组件列表和约束求解器发送的部署计划,自动完成对应组件的下载、安装、配置、激活部署活动;
所述输入端用于对待部署的多组件软件系统的结构和部署需求进行输入,并将该输入发送给部署描述语言模块;
所述部署描述语言模块中内置有语言解析器,所述部署描述语言模块用于以代码的形式对待部署的多组件软件系统的结构和部署需求进行描述,并将该描述信息发送给语言解析器;
所述语言解析器对部署描述语言模块的描述信息进行解析,得到组件列表、约束列表、探测器列表,并将该组件列表、约束列表、探测器列表发送给处理模块,同时将该组件列表发送给客户端上的自动部署器;
所述处理模块根据语言解析器发送的约束列表中用到的独立约束和组件列表获得组件约束矩阵MCom;通过分析约束列表中用到的独立约束的内容,获取需要使用的探测器列表,并将需要使用的探测器列表发送给设备状态信息探测器;同时所述处理模块接收设备状态信息探测器发送的设备状态信息,存储为状态信息表MInfo,然后计算各个设备满足独立约束的情况,并存储为设备约束矩阵MDev;然后根据组件约束矩阵MCom和设备约束矩阵MDev的值,将独立约束和关联约束分别转化为命题逻辑表达式或者其他表达能力更强的高级逻辑表达式,并用合取连词∧连接,作为待求解逻辑表达式,并将该待求解逻辑表达式发送给约束求解器;
所述约束求解器用于根据待求解逻辑表达式进行可满足性求解,根据约束求解器的输出,如果该逻辑表达式可满足,则得到一个求解结果,将该求解结果转换为对应的部署计划,同时将该部署计划发送给客户端上的自动部署器;如果该逻辑表达式不可满足,则表示“该部署需求的约束条件不可满足”,则对输入端重新输入待部署的多组件软件系统的结构和部署需求。
本发明提供的复杂约束条件下多组件软件部署的自动化与自适应方法及其部署管理系统,相比现有技术,具有以下有益效果:
(1)本发明实现了更强的部署自动化功能。部署设计人员只需要使用部署描述语言准确描述部署需求及其约束条件,部署管理系统就可以利用相应的语言解析器自动提取相关信息,自动探测设备状态信息,自动生成部署计划,自动执行软件部署活动,并确保满足所有的约束条件。由于本发明方法实现了各项部署活动的自动化,使得普通技术人员就能够完成复杂的多组件软件部署工作,从而降低人力成本。
(2)本发明通过引入约束求解器模块对复杂约束条件进行自动求解,实现了复杂约束条件下多组件软件的部署计划的自动生成,解决了现实中复杂约束条件所带来的部署分析难题,提高了软件部署效率,使得部署设计的成本大幅度降低,而且不容易出错。
(3)本发明通过引入设备状态信息探测器,实时获取设备的状态信息,当设备状态发生变化导致需要调整部署计划时,可以及时重新生成部署计划并自动执行,实现了对软件部署的自适应。由于本发明方法实现了对多组件软件的部署计划动态变化的自适应,使得部署设计和执行的成本大幅度降低,而且不容易出错。
综上所述,本发明可以解决复杂约束条件下多组件软件的自动化与自适应部署的难题,相比于已有技术,本发明具有更强的部署自动化功能,支持复杂约束条件下多组件软件的部署计划的自动生成,支持对多组件软件的部署计划动态变化的自适应,因此在提高多组件软件部署的效率、降低成本和保证质量等方面有非常重要的作用,有良好的社会效益。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合具体实施例对本发明的技术方案进行详细描述,但不作为本发明的限定。
一种复杂约束条件下多组件软件部署的自动化与自适应方法,如图1所示,首先使用部署描述语言描述多组件软件的部署需求及其部署约束条件,然后通过使用设备状态信息探测器、约束求解器和自动部署器,部署管理系统能够根据部署需求和实时探测到的设备状态信息,通过调用约束求解器,自动地、动态地生成满足约束条件的部署计划,并自动执行部署活动,从而实现对复杂约束条件下多组件软件部署的自动化和自适应支持。
所述部署描述语言,用于以代码的形式来描述软件部署需求中涉及到的主要元素,包括但不限于以下元素:软件组件、部署约束、设备状态信息探测器、各软件组件必须满足的部署约束列表。通过实现该部署描述语言的语言解析器,可以从部署描述代码中解析获得组件列表、约束列表、探测器列表、组件约束矩阵等。
一种复杂约束条件下多组件软件自动化与自适应部署管理系统,如图1所示,包括客户端和服务器端,所述客户端安装在所有可用设备上,所述服务器端安装在主控服务器上,且所述客户端和服务器端相互通信;所述客户端用于获取指定位置的软件、运行获取的软件并获取信息,所述服务器端用于解析部署描述代码、生成部署计划;所述客户端包括设备状态信息探测器和自动部署器;而所述服务器端包括输入端、部署描述语言模块、处理模块以及约束求解器:
所述设备状态信息探测器用于根据处理模块发送的需要使用的探测器列表对客户端上设备的状态信息进行探测,并将探测到的设备状态信息发送给处理模块;
所述自动部署器用于根据语言解析器发送的组件列表和约束求解器发送的部署计划,自动完成对应组件的下载、安装、配置、激活部署活动;
所述输入端用于对待部署的多组件软件系统的结构和部署需求进行输入,并将该输入发送给部署描述语言模块;
所述部署描述语言模块中内置有语言解析器,所述部署描述语言模块用于以代码的形式对待部署的多组件软件系统的结构和部署需求进行描述,并将该描述信息发送给语言解析器;
所述语言解析器对部署描述语言模块的描述信息进行解析,得到组件列表、约束列表、探测器列表,并将该组件列表、约束列表、探测器列表发送给处理模块,同时将该组件列表发送给客户端上的自动部署器;
所述处理模块根据语言解析器发送的约束列表中用到的独立约束和组件列表获得组件约束矩阵MCom;通过分析约束列表中用到的独立约束的内容,获取需要使用的探测器列表,并将需要使用的探测器列表发送给设备状态信息探测器;同时所述处理模块接收设备状态信息探测器发送的设备状态信息,存储为状态信息表MInfo,然后计算各个设备满足独立约束的情况,并存储为设备约束矩阵MDev;然后根据组件约束矩阵MCom和设备约束矩阵MDev的值,将独立约束和关联约束分别转化为命题逻辑表达式或者其他表达能力更强的高级逻辑表达式,并用合取连词∧连接,作为待求解逻辑表达式,并将该待求解逻辑表达式发送给约束求解器;
所述约束求解器用于根据待求解逻辑表达式进行可满足性求解,根据约束求解器的输出,如果该逻辑表达式可满足,则得到一个求解结果,将该求解结果转换为对应的部署计划,同时将该部署计划发送给客户端上的自动部署器;如果该逻辑表达式不可满足,则表示“该部署需求的约束条件不可满足”,则对输入端重新输入待部署的多组件软件系统的结构和部署需求。
本例中,为了便于清楚说明相关概念,定义一种简单的部署描述语言,实际使用的部署描述语言可以是该语言的扩展,从而具有更强的表达能力。从语法结构上,这种简单的部署描述语言可以分为如下几个部分:
(1)组件定义(component):对多组件软件系统中某个组件的定义,字段包括:version组件版本号,path组件获取地址,interface组件部署接口。
(2)约束定义(constraint):对某个部署约束条件的定义,说明某个探测器获取的某个状态信息必须满足的约束。
(3)探测器定义(probe):对某个设备状态信息探测程序的定义,字段包括:path探测程序获取地址,interface探测程序部署接口。
(4)部署需求定义(deploy):对各软件组件必须满足的部署约束列表的定义,即组件和约束的对应关系,说明方式为:在组件名称后面列出若干个必须满足的约束名称,用逗号隔开。
利用该部署描述语言及其语言解析器,本发明方法的具体操作步骤如下:
第1步:在所有可用设备上安装部署管理系统的客户端,客户端的主要功能包括:获取指定位置的软件,运行获取的软件并获取信息,与服务器端通信等;所述客户端包括设备状态信息探测器和自动部署器;在主控服务器上安装部署管理系统的服务器端,服务器端的主要功能包括:解析部署描述代码,生成部署计划,与客户端通信等;所述服务器端包括约束求解器;在设备连接可用的情况下,客户端可以连接并注册到服务器端,并能够相互收发消息。
第2步:对待部署的多组件软件系统进行结构和部署需求分析,得到多组件软件系统的部署需求;然后使用部署描述语言以代码的形式对部署需求进行准确描述,描述内容包括但不限于如下部分:
(1)组件:对多组件软件系统中各个组件的定义,包括:组件版本号,组件获取地址,组件部署接口(用于安装、配置、激活、升级、停止、卸载组件等一系列活动)等。
(2)约束:对各个部署约束条件的定义,说明某个探测器获取的某个状态信息必须满足的约束。
(3)探测器:对各个设备状态信息探测程序的定义,包括:探测程序获取地址、探测程序部署接口(用于安装、配置、激活、升级、停止、卸载探测程序等一系列活动)等。
(4)部署需求:对各软件组件必须满足的部署约束列表的定义,即组件和约束的对应关系。约束分为两类:独立约束和关联约束。其中,独立约束是指该约束的满足仅仅依赖于一个设备的状态信息,而关联约束是指该约束的满足依赖于其他设备的状态信息,或依赖于其他组件的部署情况。
本例中,对待部署的多组件软件系统进行结构和部署需求分析得知,该软件系统包含3个组件,其中,组件一要求部署设备的CPU频率大于1.5GHz、硬盘可用空间大于100GB、操作系统类型为Linux,组件二要求部署在与组件一相同的设备上,且该设备的内存大于4GB、CPU频率大于1GHz,组件三要求同时部署在两个设备上,且它们的硬盘大小都大于1TB,CPU频率都大于组件一部署的设备的CPU频率。使用部署描述语言以代码的形式对部署需求进行描述,代码如下(加粗字体为代码关键字):
其中,com1必须满足两个独立约束,com2必须满足的第1、2个约束为关联约束,第3个约束为独立约束,com3必须满足的第1、3个约束为关联约束,第2个约束为独立约束。
第3步:利用部署描述语言的语言解析器对第2步得到的部署描述代码进行解析,先依次获得组件列表(假设包含x个组件)、约束列表、探测器列表,最后对部署需求代码区进行解析,按独立约束被使用的顺序对用到的独立约束依次编号(假设包含z个独立约束),由组件列表和独立约束获得组件约束矩阵MCom;其中,组件约束矩阵MCom是一个x×z大小的布尔类型矩阵,用于记录部署描述代码中组件和需要满足的独立约束之间的对应关系,如果第i行第j列的元素为1,则表示第i个组件必须满足第j个约束,如果为0,则表示第i个组件不需要满足第j个约束。通过分析用到的独立约束的内容,可以获取需要使用的探测器列表。
本例中,利用语言解析器对第2步得到的部署描述代码进行解析,先依次获得组件列表(包含3个组件)、约束列表、探测器列表,最后对deploy代码区进行解析,按独立约束被使用的顺序对用到的独立约束依次编号(包含4个独立约束),其中,约束cons编号为c1,匿名约束“os.type=Linux”编号为c2,约束cons_a和cons_b分别编号为c3和c4。按照组件及其必须满足的独立约束之间的对应关系,可以获得如下3×4大小的布尔类型的组件约束矩阵MCom:
其中,com1-com3分别代表部署描述代码中依次定义的3个组件,c1-c4分别代表部署描述代码中deploy代码区依次使用的4个独立约束。通过分析用到的独立约束的内容,可以获取需要探测的信息,依次包括:cpu.speed,hd.free,os.type,mem.size和hd.size,因此需要使用的探测器列表包括四个探测器:cpu,hd,os和mem。
第4步:部署管理系统的服务器端将需要使用的探测器列表发送给所有已连接设备的客户端(假设共y个设备),各个设备利用部署管理系统的客户端,根据探测器列表中给出的获取地址,自动下载探测器列表中包含的所有探测器,然后运行下载完成的探测器,并调用探测器列表中给出的探测器部署接口,实时获取设备的状态信息,并将这些信息发送给服务器端。
本例中,各个设备利用部署管理系统的客户端,将探测器列表中包含的四个探测器cpu,hd,os和mem下载到设备上,运行并实时获取设备的状态信息,并将这些信息发送给服务器端。本例中各个设备的状态信息如下:
(1)设备dev1的CPU速度为1.7GHz,硬盘大小400G,可用空间120G,操作系统为Linux,内存6G。
(2)设备dev2的CPU速度为3GHz,硬盘大小2048G,可用空间50G,操作系统为Win8,内存1G。
(3)设备dev3的CPU速度为2.8GHz,硬盘大小1536G,可用空间100G,操作系统为Linux,内存512M。
(4)设备dev4的CPU速度为2.2GHz,硬盘大小400G,可用空间150G,操作系统为Linux,内存8G。
第5步:部署管理系统的服务器端接收客户端发送的设备状态信息,并存储为状态信息表MInfo,然后计算各个设备满足独立约束的情况,并存储为设备约束矩阵MDev。其中,设备约束矩阵MDev是一个y×z大小的布尔类型矩阵,用于记录设备及其满足的独立约束之间的对应关系,如果第i行第j列的元素为1,则表示第i个设备满足第j个约束,如果为0,则表示第i个设备不满足第j个约束。
本例中,部署管理系统接收到设备状态信息后,可以获得如下状态信息表MInfo:
MInfo dev1 dev2 dev3 dev4
cpu.speed 1.7 3 2.8 2.2
hd.free 120 50 100 150
os.type Linux Win8 Linux Linux
mem.size 6 1 0.512 8
hd.size 400 2048 1536 400
然后,根据状态信息表,可以计算各个设备满足独立约束的情况,并存储为如下4×4大小的布尔类型的设备约束矩阵MDev:
其中,dev1-dev4分别代表4个可用设备,c1-c4分别代表部署描述代码中deploy代码区依次使用的4个独立约束。
第6步:根据组件约束矩阵MCom和设备约束矩阵MDev的值,将独立约束和关联约束分别转化为命题逻辑表达式(或者其他表达能力更强的高级逻辑表达式),并用合取连词∧连接,作为待求解逻辑表达式。具体来说,首先引入一组新的布尔命题变量deploy(i,j),其中1≤i≤x,1≤j≤y,取值范围为0和1,表示是否将第i个组件部署到第j个设备,然后对独立约束和关联约束分别进行转化:
(1)将独立约束转化为如下命题逻辑表达式:
其中,deploy(i,j)为布尔命题变量(i和j为下标变量),MCom(i,k)为MCom矩阵第i行第k列元素的值,MDev(j,k)为MDev矩阵第j行第k列元素的值。该逻辑表达式表示,对于任意的组件i和设备j,如果将组件i部署在设备j上,那么设备j必须满足组件i所需要满足的所有独立约束。
本例中,将独立约束转化为如下命题逻辑表达式:
(deploy(1,1)→(MCom(1,1)→MDev(1,1))∧…∧(MCom(1,4)→MDev(1,4)))∧…∧(deploy(3,4)→(MCom(3,1)→MDev(4,1))∧…∧(MCom(3,4)→MDev(4,4)))
根据组件约束矩阵MCom和设备约束矩阵MDev的值,代入以上表达式得到:
(deploy(1,1)→(1→1)∧(1→1)∧(0→1)∧(0→0))∧…∧
(deploy(3,4)→(0→1)∧(0→1)∧(0→1)∧(1→0))
(2)将关联约束转化为命题逻辑表达式的方法依赖于具体的关联约束。由于关联约束的种类依赖于实际的部署需求,复杂多样,无法一一穷举,因此,本发明仅列举如下关联约束的转化实例作为说明,不作为对关联约束种类的限定:
a)对于第i个组件的部署设备数的关联约束,转化为如下命题逻辑表达式:
其中k代表第i个组件的部署设备数。本例中,对于com1有 ( Σ 1 ≤ j ≤ 4 deploy ( 1 , j ) ) = 1 , 对于com2有 ( Σ 1 ≤ j ≤ 4 deploy ( 2 , j ) ) = 1 , 对于com3有 ( Σ 1 ≤ j ≤ 4 deploy ( 3 , j ) ) = 2 .
b)对于第i个组件必须部署在与第k个组件相同设备上的关联约束,转化为如下命题逻辑表达式:即:如果第i个组件部署在第j个设备上,则第k个组件也部署在第j个设备上。本例中,将com2必须满足的第2个约束转化为:然后展开以上表达式得到:
(deploy(2,1)→deploy(1,1))∧…∧(deploy(2,4)→deploy(1,4))
c)对于第i个组件必须部署在比第k个组件部署的设备的s状态的值大的设备上的关联约束,转化为如下命题逻辑表达式:
即:如果第i个组件部署在第j个设备上,第k个组件部署在第n个设备上,
那么设备j的s状态的值大于设备n的s状态的值。本例中,将com3必须满足
的第3个约束转化为:
其中s状态为cpu.speed。根据状态信息表MInfo的值,代入以上表达式得到:
((deploy(3,1)∧deploy(1,1))→0)∧((deploy(3,1)∧deploy(1,2))→0)∧…∧
((deploy(3,4)∧deploy(1,3))→0)∧((deploy(3,4)∧deploy(1,4))→0)
最后,用合取连词∧连接以上各种情况得到的所有命题逻辑表达式,作为待求解逻辑表达式。
第7步:利用约束求解器对第6步得到的待求解逻辑表达式进行可满足性求解。目前可用的约束求解器包括各种具有不同表达能力和特性的CSP、SAT、SMT求解器,例如Choco、Sugar、MiniSAT、Lingeling、Z3、CVC4等,因此需要先将待求解逻辑表达式表示为某约束求解器的指定输入格式。根据约束求解器的输出,如果该逻辑表达式可满足,则得到第6步中引入的一组新的布尔命题变量deploy(i,j)的值(也就是一个x×y大小的布尔类型矩阵,其中1≤i≤x,1≤j≤y),如果deploy(i,j)的值为1,则表示第i个组件可以部署在第j个设备上,如果为0,则表示第i个组件不可以部署在第j个设备上;如果该逻辑表达式不可满足,则提示部署设计人员“该部署需求的约束条件不可满足”,转至第2步重新设计部署需求。
本例中,求解得到的组件设备矩阵deploy如下:
deploy dev1 dev2 dev3 dev4
com1 1 0 0 0
com2 1 0 0 0
com3 0 1 1 0
其中,com1-com3分别代表3个组件,dev1-dev4分别代表4个设备。
第8步:将约束求解器的求解结果(即deploy矩阵)转换为对应的部署计划。
本例中,将约束求解器的求解结果转换为对应的部署计划,即:将组件一部署到设备一上,组件二部署到设备一上,组件三部署到设备二和设备三上。
第9步:部署管理系统的服务器端将第3步得到的组件列表和第8步得到的部署计划发送给所有客户端,然后客户端根据部署计划和组件列表中给出的信息,自动完成对应组件的下载、安装、配置、激活等部署活动。
本例中,部署管理系统的客户端根据第8步得到的部署计划和第3步得到的组件列表,通过调用组件部署接口,设备一自动完成组件一和组件二的部署,设备二自动完成组件三的部署,设备三自动完成组件三的部署。
第10步:在软件的运行过程中,服务器端对客户端的状态进行实时监控,当设备状态发生变化时,如果需要调整部署计划,则重新执行第4步至第9步。
本例中,在软件的运行过程中,由于在设备dev1上安装了其它应用软件,使得dev1的可用硬盘空间减小为20GB,从而不再满足com1必须满足的cons约束,所以需要对部署计划做出调整。因此,重新执行第4步至第9步来调整部署计划。
通过执行第4步和第5步,可以获得如下状态信息表MInfo:
MInfo dev1 dev2 dev3 dev4
cpu.speed 1.7 3 2.8 2.2
hd.free 20 50 100 150
os.type Linux Win8 Linux Linux
mem.size 6 1 0.512 8
hd.size 400 2048 1536 400
然后,根据状态信息表,可以计算各个设备满足独立约束的情况,并存储为如下4×4大小的布尔类型的设备约束矩阵MDev:
通过执行第6步的约束转化和第7步的约束可满足性求解,得到的组件设备矩阵deploy如下:
deploy dev1 dev2 dev3 dev4
com1 0 0 0 1
com2 0 0 0 1
com3 0 1 1 0
通过执行第8步,将约束求解器的求解结果转换为对应的部署计划,即:将组件一部署到设备四上,组件二部署到设备四上,组件三部署到设备二和设备三上。通过执行第9步,部署管理系统的客户端调用组件部署接口,设备一自动完成组件一和组件二的停止和卸载,设备四自动完成组件一和组件二的部署,设备二和设备三则不作改变。最后执行第10步继续进行实时监控。
经过上述步骤的操作,即可根据复杂的部署需求和部署设备的实时状态,实现复杂约束条件下多组件软件部署的自动化与自适应。
综上所述,本发明可以解决复杂约束条件下多组件软件的自动化与自适应部署的难题,相比于已有技术,本发明具有更强的部署自动化功能,支持复杂约束条件下多组件软件的部署计划的自动生成,支持对多组件软件的部署计划动态变化的自适应,因此在提高多组件软件部署的效率、降低成本和保证质量等方面有非常重要的作用,有良好的社会效益。
以上所述仅是本发明的部分实施方式。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干优化和改进,或者对其中部分技术特征进行等同替换,这些改进和替换也应视为本发明的保护范围。

Claims (9)

1.一种复杂约束条件下多组件软件部署的自动化与自适应方法,其特征在于:首先使用部署描述语言描述多组件软件的部署需求及其部署约束条件,然后通过使用设备状态信息探测器、约束求解器和自动部署器,部署管理系统能够根据部署需求和实时探测到的设备状态信息,通过调用约束求解器,自动地、动态地生成满足约束条件的部署计划,并自动执行部署活动,从而实现对复杂约束条件下多组件软件部署的自动化和自适应支持。
2.根据权利要求1所述的复杂约束条件下多组件软件部署的自动化与自适应方法,其特征在于,包括以下步骤:
第1步:在所有可用设备上安装部署管理系统的客户端,所述客户端包括设备状态信息探测器和自动部署器;所述客户端用于获取指定位置的软件、运行获取的软件并获取信息以及与服务器端通信;同时在主控服务器上安装部署管理系统的服务器端,所述服务器端包括约束求解器,所述服务器端用于解析部署描述代码、生成部署计划以及与客户端通信;
第2步:对待部署的多组件软件系统进行结构和部署需求分析,得到多组件软件系统的部署需求,使用部署描述语言以代码的形式对该部署需求进行描述;
第3步:利用部署描述语言的语言解析器对第2步得到的部署描述语言的描述内容进行解析,得到组件列表、约束列表、探测器列表,所述约束包括独立约束和关联约束;由组件列表和约束列表中用到的独立约束获得组件约束矩阵MCom;通过分析约束列表中用到的独立约束的内容,获取需要使用的探测器列表;
第4步:部署管理系统的服务器端将需要使用的探测器列表发送给所有已连接设备的客户端,各个设备利用部署管理系统的客户端,实时获取设备的状态信息,并将这些信息发送给服务器端;
第5步:部署管理系统的服务器端接收客户端发送的设备状态信息,并存储为状态信息表MInfo,然后计算各个设备满足独立约束的情况,并存储为设备约束矩阵MDev;
第6步:根据组件约束矩阵MCom和设备约束矩阵MDev的值,将独立约束和关联约束分别转化为命题逻辑表达式或者其他表达能力更强的高级逻辑表达式,并用合取连词∧连接,作为待求解逻辑表达式;
第7步:利用约束求解器对第6步得到的待求解逻辑表达式进行可满足性求解,根据约束求解器的输出,如果该逻辑表达式可满足,则得到一个求解结果;如果该逻辑表达式不可满足,则表示“该部署需求的约束条件不可满足”,转至第2步重新设计部署需求;
第8步:将约束求解器的求解结果转换为对应的部署计划;
第9步:部署管理系统的服务器端将第3步得到的组件列表和第8步得到的部署计划发送给所有客户端,然后客户端根据部署计划和组件列表中给出的信息,自动完成对应组件的下载、安装、配置、激活部署活动;
第10步:在软件的运行过程中,服务器端对客户端的状态进行实时监控,当设备状态发生变化时,如果需要调整部署计划,则重新执行第4步至第9步。
3.根据权利要求2所述的复杂约束条件下多组件软件部署的自动化与自适应方法,其特征在于:所述第2步中的部署描述语言的描述内容包括:对多组件软件系统中各个组件的定义、对各个部署约束条件的定义、对各个设备状态信息探测程序的定义、对各软件组件必须满足的部署约束列表的定义。
4.根据权利要求3所述的复杂约束条件下多组件软件部署的自动化与自适应方法,其特征在于:所述第3步中对第2步得到的部署描述语言的描述内容进行解析的方法包括:根据多组件软件系统中各个组件的定义,得到组件列表,其中包含x个组件;根据各个部署约束条件的定义,得到约束列表,所述约束包括独立约束和关联约束;根据各个设备状态信息探测程序的定义,得到探测器列表;最后对部署需求代码区进行解析,按独立约束被使用的顺序对用到的独立约束依次编号,其中包含z个独立约束;根据各软件组件必须满足的部署约束列表的定义,由组件列表和用到的独立约束获得组件约束矩阵MCom;所述组件约束矩阵MCom是一个x×z大小的布尔类型矩阵,用于记录部署描述代码中组件和需要满足的独立约束之间的对应关系,其中,x为组件列表中组件的个数,z为独立约束的个数;如果第i行第j列的元素为1,则表示第i个组件必须满足第j个约束,如果为0,则表示第i个组件不需要满足第j个约束;通过分析用到的独立约束的内容,获取需要使用的探测器列表。
5.根据权利要求4所述的复杂约束条件下多组件软件部署的自动化与自适应方法,其特征在于:所述第4步中实时获取设备的状态信息的方法:所述各个设备,其中设备共y个,利用部署管理系统的客户端,根据需要使用的探测器列表中给出的获取地址,自动下载需要使用的探测器列表中包含的所有探测器,然后运行下载完成的探测器,并调用需要使用的探测器列表中给出的探测器部署接口。
6.根据权利要求5所述的复杂约束条件下多组件软件部署的自动化与自适应方法,其特征在于:所述第5步中设备约束矩阵MDev是一个y×z大小的布尔类型矩阵,用于记录设备及其满足的独立约束之间的对应关系,其中,y为设备的个数,z为独立约束的个数,如果第i行第j列的元素为1,则表示第i个设备满足第j个约束,如果为0,则表示第i个设备不满足第j个约束。
7.根据权利要求6所述的复杂约束条件下多组件软件部署的自动化与自适应方法,其特征在于:所述第6步中待求解逻辑表达式的建立方法:首先引入一组新的布尔命题变量deploy(i,j),其中1≤i≤x,1≤j≤y,取值范围为0和1,表示是否将第i个组件部署到第j个设备,然后对独立约束和关联约束分别进行转化:
第61步:将独立约束转化为如下命题逻辑表达式:
其中,deploy(i,j)为布尔命题变量,i和j为下标变量,MCom(i,k)为MCom矩阵第i行第k列元素的值,MDev(j,k)为MDev矩阵第j行第k列元素的值;该逻辑表达式表示,对于任意的组件i和设备j,如果将组件i部署在设备j上,那么设备j必须满足组件i所需要满足的所有独立约束;
第62步:将关联约束转化为命题逻辑表达式的方法:
第621步:对于第i个组件的部署设备数的关联约束,转化为如下命题逻辑表达式:其中k代表第i个组件的部署设备数;
第622步:对于第i个组件必须部署在与第k个组件相同设备上的关联约束,转化为如下命题逻辑表达式:即:如果第i个组件部署在第j个设备上,则第k个组件也部署在第j个设备上;
第623步:对于第i个组件必须部署在比第k个组件部署的设备的s状态的值大的设备上的关联约束,转化为如下命题逻辑表达式:
即:如果第i个组件部署在第j个设备上,第k个组件部署在第n个设备上,那么设备j的s状态的值大于设备n的s状态的值;
第63步:用合取连词∧连接第61步和第62步中得到的所有命题逻辑表达式,作为待求解逻辑表达式。
8.根据权利要求7所述的复杂约束条件下多组件软件部署的自动化与自适应方法,其特征在于:所述第7步中,根据约束求解器的输出,如果该逻辑表达式可满足,则得到一个求解结果,所述的求解结果为第6步中引入的一组新的布尔命题变量deploy(i,j)的值,其中1≤i≤x,1≤j≤y,如果deploy(i,j)的值为1,则表示第i个组件可以部署在第j个设备上;如果为0,则表示第i个组件不可以部署在第j个设备上;所述第7步中约束求解器为CSP、SAT、SMT求解器中的一个以上的任意组合。
9.一种基于权利要求1-8任一所述的复杂约束条件下多组件软件自动化与自适应部署管理系统,其特征在于:包括客户端和服务器端,所述客户端安装在所有可用设备上,所述服务器端安装在主控服务器上,且所述客户端和服务器端相互通信;所述客户端用于获取指定位置的软件、运行获取的软件并获取信息,所述服务器端用于解析部署描述代码、生成部署计划;所述客户端包括设备状态信息探测器和自动部署器;而所述服务器端包括输入端、部署描述语言模块、处理模块以及约束求解器:
所述设备状态信息探测器用于根据处理模块发送的需要使用的探测器列表对客户端上设备的状态信息进行探测,并将探测到的设备状态信息发送给处理模块;
所述自动部署器用于根据语言解析器发送的组件列表和约束求解器发送的部署计划,自动完成对应组件的下载、安装、配置、激活部署活动;
所述输入端用于对待部署的多组件软件系统的结构和部署需求进行输入,并将该输入发送给部署描述语言模块;
所述部署描述语言模块中内置有语言解析器,所述部署描述语言模块用于以代码的形式对待部署的多组件软件系统的结构和部署需求进行描述,并将该描述信息发送给语言解析器;
所述语言解析器对部署描述语言模块的描述信息进行解析,得到组件列表、约束列表、探测器列表,并将该组件列表、约束列表、探测器列表发送给处理模块,同时将该组件列表发送给客户端上的自动部署器;
所述处理模块根据语言解析器发送的约束列表中用到的独立约束和组件列表获得组件约束矩阵MCom;通过分析约束列表中用到的独立约束的内容,获取需要使用的探测器列表,并将需要使用的探测器列表发送给设备状态信息探测器;同时所述处理模块接收设备状态信息探测器发送的设备状态信息,存储为状态信息表MInfo,然后计算各个设备满足独立约束的情况,并存储为设备约束矩阵MDev;然后根据组件约束矩阵MCom和设备约束矩阵MDev的值,将独立约束和关联约束分别转化为命题逻辑表达式或者其他表达能力更强的高级逻辑表达式,并用合取连词∧连接,作为待求解逻辑表达式,并将该待求解逻辑表达式发送给约束求解器;
所述约束求解器用于根据待求解逻辑表达式进行可满足性求解,根据约束求解器的输出,如果该逻辑表达式可满足,则得到一个求解结果,将该求解结果转换为对应的部署计划,同时将该部署计划发送给客户端上的自动部署器;如果该逻辑表达式不可满足,则表示“该部署需求的约束条件不可满足”,则对输入端重新输入待部署的多组件软件系统的结构和部署需求。
CN201410500293.XA 2014-09-25 2014-09-25 复杂约束条件下多组件软件部署的自动化与自适应方法及其部署管理系统 Expired - Fee Related CN104298525B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410500293.XA CN104298525B (zh) 2014-09-25 2014-09-25 复杂约束条件下多组件软件部署的自动化与自适应方法及其部署管理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410500293.XA CN104298525B (zh) 2014-09-25 2014-09-25 复杂约束条件下多组件软件部署的自动化与自适应方法及其部署管理系统

Publications (2)

Publication Number Publication Date
CN104298525A true CN104298525A (zh) 2015-01-21
CN104298525B CN104298525B (zh) 2017-10-31

Family

ID=52318265

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410500293.XA Expired - Fee Related CN104298525B (zh) 2014-09-25 2014-09-25 复杂约束条件下多组件软件部署的自动化与自适应方法及其部署管理系统

Country Status (1)

Country Link
CN (1) CN104298525B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193614A (zh) * 2017-06-23 2017-09-22 郑州云海信息技术有限公司 一种自动提示、自动记录、自动预装操作系统的方法
CN108255697A (zh) * 2016-12-29 2018-07-06 卡斯柯信号有限公司 基于smt的车载控制器软件半形式化需求验证系统及方法
CN109165102A (zh) * 2018-09-28 2019-01-08 北京航空航天大学 一种基于智能合约的约束求解器分布式调度方法
CN109298868A (zh) * 2018-08-22 2019-02-01 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 测绘影像数据处理软件智能动态部署及卸载方法
CN110199232A (zh) * 2016-11-29 2019-09-03 西门子股份公司 用于进行检查的方法、设备和计算机程序产品
CN110780946A (zh) * 2019-10-30 2020-02-11 京东数字科技控股有限公司 用于处理信息的方法和装置
WO2022068643A1 (zh) * 2020-09-29 2022-04-07 华为技术有限公司 多任务部署的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060168581A1 (en) * 2005-01-21 2006-07-27 Karl Goger Software deployment system
CN101183444A (zh) * 2007-12-13 2008-05-21 浪潮通信信息系统有限公司 一种软件部署监控管理核查方法
CN101453367A (zh) * 2007-11-30 2009-06-10 华为技术有限公司 软件部署方法和系统及软件部署服务器和用户服务器
CN101788917A (zh) * 2010-02-26 2010-07-28 浪潮(北京)电子信息产业有限公司 一种部署应用软件的方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060168581A1 (en) * 2005-01-21 2006-07-27 Karl Goger Software deployment system
CN101453367A (zh) * 2007-11-30 2009-06-10 华为技术有限公司 软件部署方法和系统及软件部署服务器和用户服务器
CN101183444A (zh) * 2007-12-13 2008-05-21 浪潮通信信息系统有限公司 一种软件部署监控管理核查方法
CN101788917A (zh) * 2010-02-26 2010-07-28 浪潮(北京)电子信息产业有限公司 一种部署应用软件的方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
靳志成: ""云计算环境下的软件动态部署"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110199232A (zh) * 2016-11-29 2019-09-03 西门子股份公司 用于进行检查的方法、设备和计算机程序产品
CN108255697A (zh) * 2016-12-29 2018-07-06 卡斯柯信号有限公司 基于smt的车载控制器软件半形式化需求验证系统及方法
CN108255697B (zh) * 2016-12-29 2021-05-14 卡斯柯信号有限公司 基于smt的车载控制器软件半形式化需求验证系统及方法
CN107193614A (zh) * 2017-06-23 2017-09-22 郑州云海信息技术有限公司 一种自动提示、自动记录、自动预装操作系统的方法
CN109298868A (zh) * 2018-08-22 2019-02-01 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 测绘影像数据处理软件智能动态部署及卸载方法
CN109298868B (zh) * 2018-08-22 2024-01-09 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 测绘影像数据处理软件智能动态部署及卸载方法
CN109165102A (zh) * 2018-09-28 2019-01-08 北京航空航天大学 一种基于智能合约的约束求解器分布式调度方法
CN109165102B (zh) * 2018-09-28 2022-04-01 北京航空航天大学 一种基于智能合约的约束求解器分布式调度方法
CN110780946A (zh) * 2019-10-30 2020-02-11 京东数字科技控股有限公司 用于处理信息的方法和装置
WO2022068643A1 (zh) * 2020-09-29 2022-04-07 华为技术有限公司 多任务部署的方法及装置

Also Published As

Publication number Publication date
CN104298525B (zh) 2017-10-31

Similar Documents

Publication Publication Date Title
CN104298525A (zh) 复杂约束条件下多组件软件部署的自动化与自适应方法及其部署管理系统
Leitao et al. Smart agents in industrial cyber–physical systems
CN102508437B (zh) 一种飞机供电控制管理系统仿真用多功能机电系统仿真方法
CN105511881A (zh) 一种通用机载交互数据的管理方法
Zhang et al. Approach for integrated modular avionics reconfiguration modelling and reliability analysis based on AADL
US20110196655A1 (en) System and method for generating three dimensional functional space reservation systems of a vehicle
CN105701277A (zh) 一种基于aadl建模的航电系统架构实时性分析方法
CN107241591A (zh) 一种机载雷达嵌入式3d视频图像显示方法及系统
CN114610440A (zh) 模拟机系统的运行环境构建方法及系统
CN104834628A (zh) 多态计算平台及其构造方法
CN109189376B (zh) 数字飞行器集群源代码的人工智能书写方法
CN102393820A (zh) 一种楼宇监控系统控制逻辑的实现方法
CN104933267A (zh) 一种工业电子系统的行为逻辑建模方法
Kündig A note on the meaning of “Embedded systems”
Chuprat Divisible load scheduling of real-time task on heterogeneous clusters
Salibekyan et al. A new approach for distributed computing in embedded systems
Chamari et al. Generating metadata schema for data-driven smart buildings
Kamijo et al. A Class Structured Software Development Platform for Onboard Computers of Small Satellites
CN113886103A (zh) 接口调用方法、装置、计算机设备以及存储介质
Li et al. Research on the System Construction of Spaceborne Adaptive Software and Its Key Technologies
Xia et al. Property preservation of time Petri net reduction
Zhang et al. Cluster synchronization of stochastic two‐layer networks with infinite distributed delays via delayed pinning impulsive control
Stoyenko Real Time Computing
Wang et al. An Approach to Develop Architecture of ARINC653-Based Avionic Software
CN114815781A (zh) 一种飞控系统柔性集成测试平台及测试方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171031

Termination date: 20190925

CF01 Termination of patent right due to non-payment of annual fee