CN109471616A - 基于应用Jar包文件的应用编排方法及装置 - Google Patents

基于应用Jar包文件的应用编排方法及装置 Download PDF

Info

Publication number
CN109471616A
CN109471616A CN201811255273.5A CN201811255273A CN109471616A CN 109471616 A CN109471616 A CN 109471616A CN 201811255273 A CN201811255273 A CN 201811255273A CN 109471616 A CN109471616 A CN 109471616A
Authority
CN
China
Prior art keywords
apmb package
jar apmb
jar
application
dependence
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
CN201811255273.5A
Other languages
English (en)
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.)
Digital Trade Technology (beijing) Co Ltd
Original Assignee
Digital Trade Technology (beijing) Co Ltd
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 Digital Trade Technology (beijing) Co Ltd filed Critical Digital Trade Technology (beijing) Co Ltd
Priority to CN201811255273.5A priority Critical patent/CN109471616A/zh
Publication of CN109471616A publication Critical patent/CN109471616A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于应用Jar包文件的应用编排方法及装置,方法包括:统计分布式系统中所有应用Jar包文件,得到应用Jar包文件列表;针对应用Jar包文件列表中任一应用Jar包文件均进行分析,得到该应用Jar包文件与其他应用Jar包文件的调用依赖关系;遍历应用Jar包文件列表中所有应用Jar包文件间的调用依赖关系,统计所有应用Jar包文件的依赖权重值;根据所有应用Jar包文件的依赖权重值进行排序,得到分布式系统中应用Jar包文件编排的先后顺序,以便根据先后顺序对分布式系统中所有应用Jar包文件进行编排。利用本发明实现对分布式系统中应用代码的零侵入,实现编排的自动化处理,减少人工干预所花费的时间和人力成本。

Description

基于应用Jar包文件的应用编排方法及装置
技术领域
本发明涉及软件领域,具体涉及一种基于应用Jar包文件的应用编排方法及装置。
背景技术
当前基于微服务的分布式架构,已经成为各个业务系统架构的主流。微服务架构的特点是服务节点多,服务之间的依赖多,往往会形成复杂的网状调用链。使得在多个应用进行版本发布前,先需要依靠人工先整理各应用间的依赖关系的先后顺序,根据各应用依赖关系的先后顺序对应用进行编排后发布。由于需要依赖人工较多,导致需要花费大量的时间,且人工完成应用编排比较困难。
现有技术采用在业务系统的各应用代码中进行埋点,当业务间发生应用调用时,在日志中记录应用间调用关系。将日志发送到日志收集处理中心,由日志收集处理中心对日志进行计算生成应用之间调用关系,即应用间依赖关系的先后顺序。以两个应用(应用A,应用B)之间的调用关系为例:需要在应用A和应用B的应用代码中均进行埋点,当应用A调用应用B时,两个应用调用日志记录调用和被调用关系。然后将日志发送给日志收集处理中心,对日志进行计算解析,得到两个应用调用关系,即应用A对应用B具有依赖关系。现有技术对业务系统的各应用代码进行埋点,侵入修改了业务系统运行时的行为,运行时执行了与实际业务逻辑没有任何关系的代码,从而对业务系统构成性能上的开销损耗。进一步,为了记录日志,对日志进行计算,得到应用间依赖关系的先后顺序,需要额外的部署和维护一定量的日志采集和计算服务器,增加了财务和人力上的开销成本。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于应用Jar包文件的应用编排方法及装置。
根据本发明的一个方面,提供了一种基于应用Jar包文件的应用编排方法,其包括:
统计分布式系统中所有应用Jar包文件,得到应用Jar包文件列表;
针对应用Jar包文件列表中任一应用Jar包文件,执行以下步骤:
对该应用Jar包文件进行分析,得到该应用Jar包文件与其他应用Jar包文件的调用依赖关系;
遍历应用Jar包文件列表中所有应用Jar包文件间的调用依赖关系,统计所有应用Jar包文件的依赖权重值;
根据所有应用Jar包文件的依赖权重值进行排序,得到分布式系统中应用Jar包文件编排的先后顺序,以便根据先后顺序对分布式系统中所有应用Jar包文件进行编排。
根据本发明的另一方面,提供了一种基于应用Jar包文件的应用编排装置,其包括:
列表模块,适于统计分布式系统中所有应用Jar包文件,得到应用Jar包文件列表;
分析模块,适于对应用Jar包文件列表中任一应用Jar包文件进行分析,得到该应用Jar包文件与其他应用Jar包文件的调用依赖关系;其中,针对应用Jar包文件列表中任一应用Jar包文件均执行分析模块;
遍历模块,适于遍历应用Jar包文件列表中所有应用Jar包文件间的调用依赖关系,统计所有应用Jar包文件的依赖权重值;
排序模块,适于根据所有应用Jar包文件的依赖权重值进行排序,得到分布式系统中应用Jar包文件编排的先后顺序,以便根据先后顺序对分布式系统中所有应用Jar包文件进行编排。
根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行上述基于应用Jar包文件的应用编排方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述基于应用Jar包文件的应用编排方法对应的操作。
根据本发明提供的基于应用Jar包文件的应用编排方法及装置,统计分布式系统中所有应用Jar包文件,得到应用Jar包文件列表;针对应用Jar包文件列表中任一应用Jar包文件,执行以下步骤:对该应用Jar包文件进行分析,得到该应用Jar包文件与其他应用Jar包文件的调用依赖关系;遍历应用Jar包文件列表中所有应用Jar包文件间的调用依赖关系,统计所有应用Jar包文件的依赖权重值;根据所有应用Jar包文件的依赖权重值进行排序,得到分布式系统中应用Jar包文件编排的先后顺序,以便根据先后顺序对分布式系统中所有应用Jar包文件进行编排。利用本发明实现对分布式系统中应用代码的零侵入,即在不需要修改应用代码的前提下,通过对应用Jar包文件的分析,得到所有应用Jar包文件间的调用依赖关系,即应用Jar包文件间相互调用的依赖关系,进而统计得到应用Jar包文件的依赖权重值。方便根据应用Jar包文件的依赖权重值的排序进行编排,实现编排的自动化处理,减少人工干预所花费的时间和人力成本,也减少额外的对编排顺序所构建的分析采集系统,大大降低花销成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的基于应用Jar包文件的应用编排方法的流程图;
图2示出了根据本发明一个实施例的基于应用Jar包文件的应用编排装置的功能框图;
图3示出了根据本发明一个实施例的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的基于应用Jar包文件的应用编排方法的流程图。如图1所示,基于应用Jar包文件的应用编排方法具体包括如下步骤:
步骤S101,统计分布式系统中所有应用Jar包文件,得到应用Jar包文件列表。
本实施例可以适用于基于微服务的各种分布式系统,根据分布式系统所需要的各种服务,统计分布式系统中涉及的所有应用Jar包文件,得到应用Jar包文件列表。应用Jar包文件列表中包括应用Jar包文件名称、具体的应用Jar包文件等。本实施例在分布式系统的所有应用代码打包生成应用Jar包文件后执行,因此,本实施例不涉及对应用代码本身的修改,不需要对分布式系统中与业务相关的应用代码进行代码注入等处理,也不需要专门收集应用代码间相互调用所产生的日志信息等,实现对应用代码的零入侵。
步骤S102,针对应用Jar包文件列表中任一应用Jar包文件进行分析,得到该应用Jar包文件与其他应用Jar包文件的调用依赖关系。
应用Jar包文件列表中所有应用Jar包文件均需要执行该步骤。从应用Jar包文件列表中获取任一应用Jar包文件,对该应用Jar包文件进行分析,以便得到该应用Jar包文件与其他应用Jar包文件的调用依赖关系。构建的调用依赖关系为该应用Jar包文件调用了其他应用Jar包文件。具体的,可以查找该应用Jar包文件的配置文件中是否引用其他应用Jar包文件。当应用Jar包文件需要调用其他应用Jar包文件时,该应用Jar包文件的配置文件中的环境参数中需要包含其他应用Jar包文件的名称,通过查找应用Jar包文件的配置文件中是否引用其他应用Jar包文件,可以确定应用Jar包文件是否调用其他应用Jar包文件。若是,确定该应用Jar包文件调用了其他应用Jar包文件,则构建该应用Jar包文件与其他应用Jar包文件的调用依赖关系。调用依赖关系表明该应用Jar包文件调用了其他应用Jar包文件,其他应用Jar包文件被其该应用Jar包文件直接调用。一条调用依赖关系中包括调用与被调用的两个应用Jar包文件。对应用Jar包文件列表中所有应用Jar包文件均进行分析后,得到两两应用Jar包文件间的调用依赖关系。
进一步,当查找该应用Jar包文件的配置文件中不存在引用其他应用Jar包文件时,该应用Jar包文件也不存在其他该应用Jar包文件的配置文件中,可以确定该应用Jar包文件为独立的应用Jar包文件,不需要调用其他应用Jar包文件,其在编排时,不受其他应用Jar包文件编排顺序的影响。
步骤S103,遍历应用Jar包文件列表中所有应用Jar包文件间的调用依赖关系,统计所有应用Jar包文件的依赖权重值。
由于应用Jar包文件的配置文件中一般仅引用被其直接调用的其他应用Jar包文件,因此,得到的调用依赖关系为该应用Jar包文件直接调用其他应用Jar包文件的调用依赖关系,无法得到该应用Jar包文件间接调用其他应用Jar包文件的调用依赖关系。因此,还需要遍历应用Jar包文件列表中所有应用Jar包文件间的调用依赖关系,根据所有应用Jar包文件间的调用依赖关系,构建分布式系统的应用Jar包文件调用链。如应用Jar包文件A调用应用Jar包文件B,应用Jar包文件B调用应用Jar包文件C,得到的应用Jar包文件调用链为应用Jar包文件A->应用Jar包文件B->应用Jar包文件C,其中应用Jar包文件A直接调用应用Jar包文件B,应用Jar包文件A间接调用应用Jar包文件C,应用Jar包文件B直接调用应用Jar包文件C。其中,应用Jar包文件的依赖权重值与其被其他应用Jar包文件直接调用以及间接调用的次数相关。
应用Jar包文件的依赖权重值等于调用该应用Jar包文件的其他应用Jar包文件依赖权重值与直接调用该应用Jar包文件的其他应用Jar包文件的个数之和。因此,在计算应用Jar包文件的依赖权重值时,需要按照调用与被调用的调用依赖关系依次计算。即根据应用Jar包文件调用链,从调用链的初始调用应用Jar包文件开始计算,依次计算被其直接调用的应用Jar包文件,直至最终被调用的应用Jar包文件,得到所有应用Jar包文件的依赖权重值。在计算所有应用Jar包文件的依赖权重值的之前,预先设置所有应用Jar包文件初始的依赖权重值为0。如根据调用链中应用Jar包文件A->应用Jar包文件B->应用Jar包文件C,应用Jar包文件A未被任何其他应用Jar包文件调用,则应用Jar包文件A的依赖权重值为0。应用Jar包文件B被应用Jar包文件A直接调用,应用Jar包文件B的依赖权重值等于应用Jar包文件A的依赖权重值加上1(当前调用链,应用Jar包文件A->应用Jar包文件B,直接调用应用Jar包文件B的应用Jar包文件为1个),应用Jar包文件B的依赖权重值为1;应用Jar包文件C被应用Jar包文件B直接调用,应用Jar包文件C的依赖权重值等于应用Jar包文件B的依赖权重值加上1(当前调用链,应用Jar包文件B->应用Jar包文件C,直接调用应用Jar包文件C的应用Jar包文件为1个),应用Jar包文件C的依赖权重值为2。若还有调用链为应用Jar包文件D->应用Jar包文件C,应用Jar包文件C被应用Jar包文件D直接调用,应用Jar包文件C的依赖权重值等于现有应用Jar包文件C的依赖权重值加上应用Jar包文件D的依赖权重值加上1(当前调用链,应用Jar包文件D->应用Jar包文件C,直接调用应用Jar包文件C的应用Jar包文件为1个),若应用Jar包文件D的依赖权重为1,应用Jar包文件C的依赖权重值为2+1+1=4。
进一步,若应用Jar包文件没有被其他应用Jar包文件调用,也没有调用其他应用Jar包文件,该应用Jar包文件为独立的应用Jar包文件,其依赖权重值可以为0,也可以为任意数字,不影响应用编排。
步骤S104,根据所有应用Jar包文件的依赖权重值进行排序,得到分布式系统中应用Jar包文件编排的先后顺序,以便根据先后顺序对分布式系统中所有应用Jar包文件进行编排。
计算得到所有应用Jar包文件的依赖权重值后,可知,被其他应用Jar包文件直接调用以及间接调用的次数越多的应用Jar包文件的依赖权重值越大。为使应用可以正确编排,需要将被调用的应用Jar包文件先进行编排。因此,可以根据所有应用Jar包文件的依赖权重值从大到小进行排序,将依赖权重值大的应用Jar包文件的编排顺序优先,将依赖权重值小的应用Jar包文件的编排顺序放在后面,从而得到分布式系统中应用Jar包文件编排的先后顺序,根据编排先后顺序可以完成对分布式系统中所有应用Jar包文件进行编排。
根据本发明提供的基于应用Jar包文件的应用编排方法,统计分布式系统中所有应用Jar包文件,得到应用Jar包文件列表;针对应用Jar包文件列表中任一应用Jar包文件,执行以下步骤:对该应用Jar包文件进行分析,得到该应用Jar包文件与其他应用Jar包文件的调用依赖关系;遍历应用Jar包文件列表中所有应用Jar包文件间的调用依赖关系,统计所有应用Jar包文件的依赖权重值;根据所有应用Jar包文件的依赖权重值进行排序,得到分布式系统中应用Jar包文件编排的先后顺序,以便根据先后顺序对分布式系统中所有应用Jar包文件进行编排。利用本发明实现对分布式系统中应用代码的零侵入,即在不需要修改应用代码的前提下,通过对应用Jar包文件的分析,得到所有应用Jar包文件间的调用依赖关系,即应用Jar包文件间相互调用的依赖关系,进而统计得到应用Jar包文件的依赖权重值。方便根据应用Jar包文件的依赖权重值的排序进行编排,实现编排的自动化处理,减少人工干预所花费的时间和人力成本,也减少额外的对编排顺序所构建的分析采集系统,大大降低花销成本。
图2示出了根据本发明一个实施例的基于应用Jar包文件的应用编排装置的功能框图。如图2所示,基于应用Jar包文件的应用编排装置包括如下模块:
列表模块210适于:统计分布式系统中所有应用Jar包文件,得到应用Jar包文件列表。
分析模块220适于:对应用Jar包文件列表中任一应用Jar包文件进行分析,得到该应用Jar包文件与其他应用Jar包文件的调用依赖关系;其中,针对应用Jar包文件列表中任一应用Jar包文件均执行分析模块220。
遍历模块230适于:遍历应用Jar包文件列表中所有应用Jar包文件间的调用依赖关系,统计所有应用Jar包文件的依赖权重值。
排序模块240适于:根据所有应用Jar包文件的依赖权重值进行排序,得到分布式系统中应用Jar包文件编排的先后顺序,以便根据先后顺序对分布式系统中所有应用Jar包文件进行编排。
可选地,分析模块220进一步适于:查找该应用Jar包文件的配置文件中是否引用其他应用Jar包文件;若是,构建该应用Jar包文件与其他应用Jar包文件的调用依赖关系。
可选地,遍历模块230进一步适于:遍历所有应用Jar包文件间的调用依赖关系,构建分布式系统的应用Jar包文件调用链;根据应用Jar包文件调用链,统计得到所有应用Jar包文件的依赖权重值。
可选地,装置还包括:设置模块250。
设置模块250适于:设置所有应用Jar包文件初始的依赖权重值为0。
可选地,遍历模块230进一步适于:按照调用与被调用的调用依赖关系依次计算应用Jar包文件调用链中所有应用Jar包文件的依赖权重值;其中,应用Jar包文件的依赖权重值与其被其他应用Jar包文件直接调用以及间接调用的次数相关。
以上各模块的描述参照方法实施例中对应的描述,在此不再赘述。
本申请还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于应用Jar包文件的应用编排方法。
图3示出了根据本发明一个实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图3所示,该电子设备可以包括:处理器(processor)302、通信接口(Communications Interface)304、存储器(memory)306、以及通信总线308。
其中:
处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。
通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器302,用于执行程序310,具体可以执行上述基于应用Jar包文件的应用编排方法实施例中的相关步骤。
具体地,程序310可以包括程序代码,该程序代码包括计算机操作指令。
处理器302可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器306,用于存放程序310。存储器306可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序310具体可以用于使得处理器302执行上述任意方法实施例中的基于应用Jar包文件的应用编排方法。程序310中各步骤的具体实现可以参见上述基于应用Jar包文件的应用编排实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于应用Jar包文件的应用编排装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种基于应用Jar包文件的应用编排方法,其特征在于,所述方法包括:
统计分布式系统中所有应用Jar包文件,得到应用Jar包文件列表;
针对所述应用Jar包文件列表中任一应用Jar包文件,执行以下步骤:
对该应用Jar包文件进行分析,得到该应用Jar包文件与其他应用Jar包文件的调用依赖关系;
遍历所述应用Jar包文件列表中所有应用Jar包文件间的调用依赖关系,统计所有应用Jar包文件的依赖权重值;
根据所有应用Jar包文件的依赖权重值进行排序,得到分布式系统中应用Jar包文件编排的先后顺序,以便根据所述先后顺序对分布式系统中所有应用Jar包文件进行编排。
2.根据权利要求1所述的方法,其特征在于,所述对该应用Jar包文件进行分析,得到该应用Jar包文件与其他应用Jar包文件的调用依赖关系进一步包括:
查找该应用Jar包文件的配置文件中是否引用其他应用Jar包文件;
若是,构建该应用Jar包文件与其他应用Jar包文件的调用依赖关系。
3.根据权利要求1所述的方法,其特征在于,所述遍历所述应用Jar包文件列表中所有应用Jar包文件间的调用依赖关系,统计所有应用Jar包文件的依赖权重值进一步包括:
遍历所有应用Jar包文件间的调用依赖关系,构建分布式系统的应用Jar包文件调用链;
根据所述应用Jar包文件调用链,统计得到所有应用Jar包文件的依赖权重值。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
设置所有应用Jar包文件初始的依赖权重值为0;
所述根据所述应用Jar包文件调用链,统计得到所有应用Jar包文件的依赖权重值进一步包括:
按照调用与被调用的调用依赖关系依次计算所述应用Jar包文件调用链中所有应用Jar包文件的依赖权重值;其中,应用Jar包文件的依赖权重值与其被其他应用Jar包文件直接调用以及间接调用的次数相关。
5.一种基于应用Jar包文件的应用编排装置,其特征在于,所述装置包括:
列表模块,适于统计分布式系统中所有应用Jar包文件,得到应用Jar包文件列表;
分析模块,适于对所述应用Jar包文件列表中任一应用Jar包文件进行分析,得到该应用Jar包文件与其他应用Jar包文件的调用依赖关系;其中,针对所述应用Jar包文件列表中任一应用Jar包文件均执行所述分析模块;
遍历模块,适于遍历所述应用Jar包文件列表中所有应用Jar包文件间的调用依赖关系,统计所有应用Jar包文件的依赖权重值;
排序模块,适于根据所有应用Jar包文件的依赖权重值进行排序,得到分布式系统中应用Jar包文件编排的先后顺序,以便根据所述先后顺序对分布式系统中所有应用Jar包文件进行编排。
6.根据权利要求5所述的装置,其特征在于,所述分析模块进一步适于:
查找该应用Jar包文件的配置文件中是否引用其他应用Jar包文件;
若是,构建该应用Jar包文件与其他应用Jar包文件的调用依赖关系。
7.根据权利要求5所述的装置,其特征在于,所述遍历模块进一步适于:
遍历所有应用Jar包文件间的调用依赖关系,构建分布式系统的应用Jar包文件调用链;
根据所述应用Jar包文件调用链,统计得到所有应用Jar包文件的依赖权重值。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
设置模块,适于设置所有应用Jar包文件初始的依赖权重值为0;
所述遍历模块进一步适于:
按照调用与被调用的调用依赖关系依次计算所述应用Jar包文件调用链中所有应用Jar包文件的依赖权重值;其中,应用Jar包文件的依赖权重值与其被其他应用Jar包文件直接调用以及间接调用的次数相关。
9.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-4中任一项所述的基于应用Jar包文件的应用编排方法对应的操作。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-4中任一项所述的基于应用Jar包文件的应用编排方法对应的操作。
CN201811255273.5A 2018-10-26 2018-10-26 基于应用Jar包文件的应用编排方法及装置 Pending CN109471616A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811255273.5A CN109471616A (zh) 2018-10-26 2018-10-26 基于应用Jar包文件的应用编排方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811255273.5A CN109471616A (zh) 2018-10-26 2018-10-26 基于应用Jar包文件的应用编排方法及装置

Publications (1)

Publication Number Publication Date
CN109471616A true CN109471616A (zh) 2019-03-15

Family

ID=65666234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811255273.5A Pending CN109471616A (zh) 2018-10-26 2018-10-26 基于应用Jar包文件的应用编排方法及装置

Country Status (1)

Country Link
CN (1) CN109471616A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486470A (zh) * 2020-12-15 2021-03-12 恩亿科(北京)数据科技有限公司 基于文件依赖关系自动调整文件窗口顺序的方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880784A (zh) * 2012-07-31 2013-01-16 东南大学 一种基于数据依赖的组合服务可信性计算方法
US20140130009A1 (en) * 2012-11-07 2014-05-08 Oracle International Corporation System and method for composing a telecommunication application by orchestrating application components
CN104765621A (zh) * 2014-01-02 2015-07-08 国际商业机器公司 一种在集群节点中部署程序的方法和系统
CN106487912A (zh) * 2016-10-26 2017-03-08 北京荣之联科技股份有限公司 多服务应用的管理与发布方法及装置
CN107391101A (zh) * 2017-04-21 2017-11-24 阿里巴巴集团控股有限公司 一种信息处理方法及装置
CN107526639A (zh) * 2017-08-16 2017-12-29 杭州朗和科技有限公司 资源编排的方法、介质、装置和计算设备
CN107870845A (zh) * 2017-10-19 2018-04-03 北京工业大数据创新中心有限公司 面向微服务架构应用的管理方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880784A (zh) * 2012-07-31 2013-01-16 东南大学 一种基于数据依赖的组合服务可信性计算方法
US20140130009A1 (en) * 2012-11-07 2014-05-08 Oracle International Corporation System and method for composing a telecommunication application by orchestrating application components
CN104765621A (zh) * 2014-01-02 2015-07-08 国际商业机器公司 一种在集群节点中部署程序的方法和系统
CN106487912A (zh) * 2016-10-26 2017-03-08 北京荣之联科技股份有限公司 多服务应用的管理与发布方法及装置
CN107391101A (zh) * 2017-04-21 2017-11-24 阿里巴巴集团控股有限公司 一种信息处理方法及装置
CN107526639A (zh) * 2017-08-16 2017-12-29 杭州朗和科技有限公司 资源编排的方法、介质、装置和计算设备
CN107870845A (zh) * 2017-10-19 2018-04-03 北京工业大数据创新中心有限公司 面向微服务架构应用的管理方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王华 等: "一种分布式软件发布部署系统", 《计算机系统应用》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486470A (zh) * 2020-12-15 2021-03-12 恩亿科(北京)数据科技有限公司 基于文件依赖关系自动调整文件窗口顺序的方法及系统

Similar Documents

Publication Publication Date Title
CN103154905B (zh) 用于组合应用的自动化分析的装置和方法
CN106681903B (zh) 生成测试用例的方法及装置
US9043775B2 (en) Method for identifying problematic loops in an application and devices thereof
CN108920146A (zh) 页面控制组件和可视化模拟操作系统
CN105630566A (zh) 应用页面加载时长的确定方法及装置
Peuster et al. The softwarised network data zoo
CN106649114B (zh) 对应用程序崩溃进行定位的方法和装置
CN109240908A (zh) 异常测试用例模板创建方法及装置
CN112380255A (zh) 一种业务处理方法、装置、设备和存储介质
CN116467189B (zh) 接口调用完成性能压测及全链路数据监控的方法和系统
CN109558313A (zh) 构建异常测试场景的方法及装置
CN103544271B (zh) 一种浏览器中加载图片处理窗口的方法和装置
CN109471616A (zh) 基于应用Jar包文件的应用编排方法及装置
CN109634714A (zh) 一种智能调度的方法及装置
CN106528551A (zh) 申请内存的方法和装置
Fehlmann et al. A framework for automated testing
Oliva et al. A change impact analysis approach for workflow repository management
Mishra et al. Analysis of test case prioritization in regression testing using genetic algorithm
CN110895460A (zh) 基于Jenkins的机器人系统集成方法、装置及终端设备
Badlaney et al. An introduction to data-flow testing
CN105224649A (zh) 一种数据处理方法和装置
CN113204330B (zh) 一种基于人工智能的程序开发设计方法及系统
CN109858204A (zh) 一种基于llvm的程序代码保护方法及装置
CN109033158A (zh) 基于指定时间窗的数据去重统计方法及装置
Ali et al. Model-based test case generation approach for mobile applications load testing using OCL enhanced activity diagrams

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190315

RJ01 Rejection of invention patent application after publication