CN115964646A - 用于应用微服务的异构图生成 - Google Patents

用于应用微服务的异构图生成 Download PDF

Info

Publication number
CN115964646A
CN115964646A CN202211238469.XA CN202211238469A CN115964646A CN 115964646 A CN115964646 A CN 115964646A CN 202211238469 A CN202211238469 A CN 202211238469A CN 115964646 A CN115964646 A CN 115964646A
Authority
CN
China
Prior art keywords
application
identifying
nodes
microservices
graph
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
CN202211238469.XA
Other languages
English (en)
Inventor
S·G·塔米尔瑟尔瓦姆
U·M·德赛
S·班约帕迪亚
A·马泰
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN115964646A publication Critical patent/CN115964646A/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/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • 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/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及用于应用微服务的异构图生成。一个实施例提供了一种方法,包括:接收描述要拆分成多个微服务的应用的信息;利用微服务顾问应用来识别该应用的应用元素;利用微服务顾问应用从所述应用元素生成异构图,其中所述异构图内的每个节点表示应用元素并且其中所述异构图内的每条边表示由该边连接的两个节点之间的关系;基于识别节点之间的关系的偏好的用户输入,识别所述异构图内享有共同属性的节点组;以及基于所识别的节点组,从微服务顾问应用提供用于将所述应用拆分成微服务的推荐,其中所述推荐包括所述应用的多个微服务和应当被包括在所述微服务中的每个微服务内的应用元素。

Description

用于应用微服务的异构图生成
背景技术
随着远程计算或服务环境(例如,远程网络环境、云计算环境等)的增加,更多的用户和实体将应用和其他服务的托管移动到远程服务环境。通过将应用和其他服务的托管移动到远程服务环境,用户和其他实体能够减少对内部资源(例如,基础设施、计算资源、人力资源等)的使用并减少与应用和其他服务相关联的其他成本。此外,由于远程服务环境通常具有比用户或实体本地具有的资源显著更多的资源,特别是计算资源,用户或实体能够更容易地缩放在远程服务环境上托管的应用。
发明内容
综上所述,本发明的一个方面提供了一种方法,包括:接收描述要拆分成多个微服务的应用的信息;利用微服务顾问应用来识别所述应用的应用元素;利用所述微服务顾问应用从所述应用元素生成异构图,其中所述异构图内的每个节点表示应用元素,并且其中所述异构图内的每条边表示由所述边连接的两个节点之间的关系;利用所述微服务顾问应用并利用图聚类技术,基于所述异构图内的边,识别所述异构图内享有共同属性的节点组,所述共同属性可以是用户识别节点之间的关系的重要性;以及基于所识别的节点组,从所述微服务顾问应用提供用于将所述应用拆分成微服务的推荐,其中所述推荐包括所述应用的多个微服务和应当被包括在所述微服务的每个微服务内的应用元素。
本发明的另一个方面提供了一种装置,包括:至少一个处理器;以及计算机可读存储介质,所述计算机可读存储介质具有与其一起实现的计算机可读程序代码,所述计算机可读程序代码可由所述至少一个处理器执行;其中所述计算机可读程序代码被配置为接收描述要拆分成多个微服务的应用的信息;其中所述计算机可读程序代码被配置为使用微服务顾问应用来识别所述应用的应用元素;其中所述计算机可读程序代码被配置为利用所述微服务顾问应用从所述应用元素生成异构图,其中所述异构图内的每个节点表示应用元素,并且其中所述异构图内的每条边表示由所述边连接的两个节点之间的关系;其中所述计算机可读程序代码被配置为利用所述微服务顾问应用并利用图聚类技术,基于所述异构图内的边,识别所述异构图内享有共同属性的节点组,所述共同属性可以是用户识别节点之间的关系的重要性;并且其中所述计算机可读程序代码被配置为基于所识别的节点组从所述微服务顾问应用提供将所述应用拆分成微服务的推荐,其中所述推荐包括所述应用的多个微服务和应当被包括在所述微服务的每个微服务内的应用元素。
本发明的另外的方面提供一种计算机程序产品,包括:计算机可读存储介质,其具有随其实现的计算机可读程序代码,所述计算机可读程序代码可由处理器执行;其中所述计算机可读程序代码被配置为接收描述要拆分成多个微服务的应用的信息;其中所述计算机可读程序代码被配置为使用微服务顾问应用来识别所述应用的应用元素;其中所述计算机可读程序代码被配置为利用所述微服务顾问应用从所述应用元素生成异构图,其中所述异构图内的每个节点表示应用元素,并且其中所述异构图内的每条边表示由所述边连接的两个节点之间的关系;其中所述计算机可读程序代码被配置为利用所述微服务顾问应用并利用图聚类技术,基于所述异构图内的边,识别所述异构图内享有共同属性的节点组,所述共同属性可以是用户识别节点之间的关系的重要性;并且其中所述计算机可读程序代码被配置为基于所识别的节点组从所述微服务顾问应用提供将所述应用拆分成微服务的推荐,其中所述推荐包括所述应用的多个微服务和应当被包括在所述微服务的每个微服务内的应用元素。
为了更好地理解本发明的示例性实施例及其其他和进一步的特征和优点,结合附图参考以下描述,并且在所附权利要求中指出本发明要求保护的实施例的范围。
附图说明
图1示出了利用微服务顾问应用提供用于将应用拆分成微服务的推荐的方法,该微服务顾问应用生成应用元素的异构图并随后使用异构图来识别应用元素的组或团体。
图2A示出了应用元素之间的直接关联的示例。
图2B示出了应用元素之间的间接关联的示例。
图3示出了利用微服务顾问应用提供用于将应用拆分成微服务的推荐的示例总体***架构,该微服务顾问应用生成应用元素的异构图并随后使用异构图来识别应用元素的组或团体。
图4示出了计算机***。
具体实施方式
将容易理解的是,除了描述的示例性实施方式之外,如本文中的附图中一般描述和示出的,可以以各种不同的配置布置和设计本发明的实施方式的部件。因此,如附图中表示的本发明的实施方式的以下更详细的描述并不旨在限制所要求保护的本发明的实施方式的范围,而是仅仅表示本发明的示例性实施方式。
贯穿本说明书提及“一个实施例”或“实施例”(之类)意指结合该实施例所描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个本说明书中的各个地方出现的短语“在一个实施方式中”或“在实施方式中”等不一定都是指相同的实施方式。
此外,所描述的特征、结构或特性可在至少一个实施例中以任何合适的方式组合。在以下描述中,提供了许多具体细节以给出对本发明的实施例的透彻理解。然而,相关领域的技术人员可以很好地认识到,本发明的实施例可以在没有其特定细节中的至少一个的情况下实践,或者可以利用其他方法、组件、材料等来实践。在其他情况下,未详细示出或描述公知的结构、材料或操作,以避免模糊本发明的各方面。
通过参考附图将最好地理解本发明的所示实施例。以下说明仅旨在通过举例的方式并且简单地展示如在此要求的本发明的某些选定的示范性实施例。应当注意,附图中的流程图和框图示出了根据本发明的不同实施例的***、装置、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个方框可表示代码的模块、片段或部分,其包括用于实现指定的逻辑功能的至少一个可执行指令。
还应注意,在一些替代实施例中,框中所指出的功能可不按图中所指出的次序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以下将具体参照图1至图4。应当理解,本文宽泛示出的过程、布置和产品可在本质上任何合适的计算机***或计算机***组上或根据其执行,计算机***或计算机***组可通过说明性和非限制性示例的方式包括诸如在图4中的以12’指示的***或服务器。根据示例性实施例,无论在分布式网络中的服务器计算机、客户端计算机、节点计算机或其任何组合上,相对于图1-图3论述的大部分(如果不是全部)处理步骤、组件和输出可以通过处理单元和***存储器(诸如图4中分别以16’和28’指示的那些)执行或利用。
将应用移动到远程服务环境以用于托管的一个问题是,即使不是不可能,也难以将整个应用移动到远程服务环境。具体地,将被称为微服务的应用的较小部分移动到远程服务环境更容易,从而允许在远程服务环境的不同部分上托管不同部分。这对于远程服务环境的资源的最佳使用可以是有益的。此外,远程服务环境被更好地配备以运行应用的较小部分。由此,单个应用需要被分解或拆分成更小的模块、部分或微服务,以便被移动到远程服务环境并由远程服务环境有效地托管。
将应用拆分成多个微服务的另一益处(即使没有被托管或移动到远程服务环境)是大的单个应用比多个较小的微服务更难以管理和更难以缩放。此外,使用单个应用的典型功能会出现问题。例如,如果仅需要更新应用的一部分,则当应用是单个大应用时,整个应用必须被更新,这与如果应用已经被拆分成微服务则仅更新单个或几个微服务相反。
将应用拆分成微服务的困难在于,有许多不同的技术来拆分应用。例如,一个用户可能基于最多使用的服务来选择拆分应用,而另一用户可能基于服务的资源使用来选择拆分同一应用。用于拆分应用的另一技术是基于应用的各部分的功能。用于拆分应用的不同技术导致技术之间的迥异的分割,或者重叠的分割。由此,选择如何拆分应用非常依赖于用户,并且所选择的技术可能不最终是用于将应用移动到远程服务应用的最佳技术。
因而,实施例提供了一种用于利用微服务顾问应用提供将应用拆分成微服务的推荐的***和方法,该微服务顾问应用生成应用元素的异构图并随后利用该异构图来识别应用元素的组或团体。所描述的***和方法能够识别来自被称为单体应用的较大应用的块或微服务、应当创建多少微服务、以及在每个微服务拆分中应当包括什么功能或应用元素。此外,所描述的***和方法提供特定微服务拆分推荐的理由。
该***利用微服务顾问应用,其能够利用描述要拆分成微服务的应用的信息来对应用拆分进行推荐。微服务顾问应用识别目标应用的应用元素。应用元素可以包括文件、对象、表格、持有对象、类、应用和组成应用或在应用内使用的任何其他元素或工件。微服务顾问应用从应用元素生成异构图,在异构图中节点表示应用元素并且边表示由该边连接的节点之间的关系。图的生成包括识别应用元素之间的直接和间接关联。该图是异构图,因为它能够从不仅仅是程序中识别应用元素以及应用元素之间的关系,例如,除了程序之外,***还可以从对象、表格、事务中识别元素和关系。
使用在所述图中识别的边,微服务顾问应用能够识别享有共同属性的节点组。共同属性可以是共同偏好、共同域、共同技术等。在识别组时,顾问应用可以使用图聚类技术。另外,在识别组时,***可以考虑关于应当被分组的应用元素的任何用户约束或偏好。例如,用户可以识别特定应用元素应当被分组在一起。由此,顾问应用将确保在聚类时将这些元素分组在一起。一旦识别了节点组(称为团体),***就向用户提供用于将应用拆分成微服务的推荐。该推荐不仅识别微服务,而且识别微服务的数量和应当包括在每个微服务中的应用元素。
这样的***对于将应用拆分成微服务的当前***提供了技术改进。所描述的***和方法能够自动识别应如何将应用拆分成微服务并且向用户做出其推荐,而不是依赖于用户来确定应如何拆分应用。这种自动识别和推荐生成在当前技术中找不到。在确定拆分时,***生成并利用异构图,所述异构图能够识别应用元素之间的直接和间接关联、应用元素之间的亲和性(affinity)、程序之外的异构特征和程序与程序的依赖性,并且还考虑任何用户提供的关于重要性的信息或者与应用元素之间的关系相关的其他信息。这些技术在当前的应用拆分技术中未被使用。由此,所描述的***为应用拆分提供了比在依赖于用户手动确定应如何拆分应用的常规***和方法中发现的技术更高效且一致的技术。
图1示出了利用微服务顾问应用提供将应用拆分成微服务的推荐的方法,该微服务顾问应用生成应用元素的异构图并随后利用异构图识别应用元素的组或团体。在101,***接收描述要拆分成多个微服务的应用的信息。应用可以是单体应用,意味着它是单层软件应用,其中用户接口和数据访问代码被组合成来自单个平台的单个程序。换言之,应用可以独立地运行,并且不需要访问其他服务或微服务来执行预期的功能。该应用是用户想要拆分成不同微服务的应用。例如,用户可能想要在远程服务环境上托管应用,从而需要将应用拆分成更小的块或微服务。作为另一示例,用户可能简单地想要拆分应用以使其更容易缩放、管理等。换言之,用户想要将应用从单体应用转换成微服务应用。
在102,微服务顾问应用识别应用的应用元素。微服务顾问应用是被特别编程以获取应用信息并生成应用拆分推荐的应用。微服务顾问应用可以包括允许用户向应用提供输入的图形用户界面。微服务应用可以包括接口或特殊编程,其允许应用与其他程序、数据库、数据存储位置、应用等进行对接,以便捕获信息、执行分析、生成异构图、以及向用户提供输出。
应用元素可以包括类、对象、资源、文件、持有对象、表格、程序、事务和作为应用的一部分、由应用访问或以其他方式连接到应用的任何其他元素。为了识别应用元素,顾问应用可以接收与应用有关的信息,该信息识别应用并且示出应用如何工作,例如,应用的不同部分如何与其他部分交互、应用如何运行等等。例如,该信息可以是输入工件,其可包括应用的源文件、与应用对应的代码、二进制源文件等。根据所接收的信息,***可以解析所接收的信息并且执行分析以推断应用的一些附加信息。也可在不首先解析所接收的信息的情况下执行分析。一个或多个分析可被执行并且可包括运行时分析、数据分析、静态代码分析、依赖性分析、日志分析、程序分析等。
所执行的任何分析帮助***尝试理解所接收的信息和应用,并且因此理解应用的元素。例如,***可解析源代码并识别接入点、执行特定功能的代码部分、代码内的多个类、执行的操作、应用等所使用的资源(例如,表、文件等)、代码依赖关系等。作为另一示例,该***可分析运行时日志以识别应用服务被调用的频率、应用服务的调用图等。***还可识别或推断关于应用的其他信息,例如,用于对应用进行编程的编程语言、运行时间、资源使用和分配等。接收的信息和附加信息可用于识别关于应用的信息,以便识别应用如何可被拆分成不同的微服务。
单个应用可包括各自执行不同功能的许多不同模块或部分。作为示例,电子商务应用可以包括客户服务部分、产品库存部分、事务部分等。这些部分中的每一个可以包括其自身的应用元素。另外,来自一个部分的一些应用元素可以访问、通信或调用来自另一部分的应用元素。例如,一个部分可访问包含在另一部分内的持有对象或表格。持有对象是表示真实世界对象的代码。使用电子商务示例,真实世界对象可以是特定顾客,并且持有对象是表示该特定顾客的程序代码。
在103,微服务顾问应用生成包括节点和边的异构图。图内的节点表示或对应于应用元素。图内的边表示由边连接的应用元素之间的关系。异构图包括应用自身的所有应用元素,并且还包括该应用外部的、但被应用访问、提供信息、或者以其他方式与应用进行通信或者在应用之间进行调用的任何元素。这些均由异构图中的节点表示。
生成异构图可以包括利用能够识别应用元素之间的关系的神经网络。由于在异构图的生成中利用神经网络,神经网络更多地学习不同的应用元素以及什么构成应用元素之间的关系。因此,神经网络允许微服务顾问应用随着时间的过去而关于什么被认为是应用元素以及什么构成了关系和应用元素之间的关系的类型变得更加精细和精确。
根据对应用的分析和/或使用神经网络,微服务顾问应用能够识别应用元素之间的关系或关联。当应用元素中的任一个在彼此之间通信或彼此调用时,识别关系或关联。这些通信可以跨应用部分,从应用到应用外部的元素,或在特定应用部分内。微服务顾问应用识别许多不同应用元素之间的关系或关联而不仅仅是程序之间的关系或关联的能力允许顾问应用生成异构图。
此外,关系或关联可以是直接关系/关联或间接关系/关联。具有直接关系/关联的应用元素被识别为彼此直接通信的那些应用元素,例如,如果一程序应用元素调用表格应用元素的话。因此,识别直接关联包括识别在彼此之间进行通信的应用元素。具有间接关系/关联的应用元素被识别为与一共同应用元素通信但彼此不一定通信的那些应用。例如,均与同一持有对象应用元素通信的两个应用元素将具有间接关系。换言之,当单个应用元素被一个以上的其他应用元素访问时,可以识别间接关联。访问单个应用元素的那些应用元素将具有间接关联。应当注意,相同的应用元素可以具有与彼此的直接和间接关系两者。例如,应用元素可以彼此直接通信,并且两者还可以与另一共同的其他应用元素通信。
图2A示出了图格式200A中的应用元素之间的直接关系。应用元素201与应用元素202直接通信。这些应用元素201和202都由图200A内的节点表示。由于这些应用元素201和202彼此通信,边203连接这两个应用元素201和202,指示应用元素201和202之间的直接关联。
图2B示出了图格式200B中的应用元素之间的间接关系。应用元素204由节点表示。此外,应用元素207由节点表示。这些应用元素204和207都与由节点表示的应用元素205通信。这些应用元素204和207到应用元素205的通信由边206表示。由于应用元素204和207都与共同的应用元素205通信,因此应用元素204和207被识别为具有与彼此的间接关系。
在104,微服务顾问应用确定在异构图内是否能够识别节点组。节点组可被称为节点的团体或聚类。为了执行分组,顾问应用可以使用图聚类技术,例如无监督聚类算法。通常,无监督聚类算法工作以将类似节点一起分组成单个聚类。由此,为了识别异构图内的节点组,微服务顾问应用识别享有共同属性(例如,共同偏好、共同域、共同技术等)的节点。该共同属性可以从不同的应用工件中识别。例如,可基于生成图时所识别的直接和/或间接关联来识别共同属性。因此,鉴于基于图内的边识别的应用元素的直接和/或间接关联,可执行识别节点组。
可以使用其他因素来确定属性。例如,顾问应用可以识别应用元素之间的类亲和性(CA)。亲和性识别一应用功能内的类是否具有与其他应用功能内的其他类的某种连接或关系,即使它们可能不直接彼此通信。类亲和性可用于识别属性。其他因素可以包括类间使用(ICU)、路径类同现(PCC)、事务(TR)等。这些因素可以指示应用元素之间的某连接并且还识别应用元素之间的关系的强度,这可以用于识别属性。
在执行聚类时,顾问应用可以考虑用户提供的约束或要求。例如,用户可指示特定资源使用要求、运行时要求、最大类或对象要求、最大模块大小等。作为另一示例,用户可以指示应当被分组或从不应当被分组的应用元素。作为最后的示例,用户可以识别实现特定接口的特定应用元素的集合可被拆分,但是对表进行更新的程序从不应当被拆分。
当识别团体时,用户还可以识别应用元素之间的特定关系的重要性。例如,用户可以识别那些特定节点或节点之间的关系对于一起保持在单个聚类中是重要的,或者可替换地,对于保持在分离的聚类中是重要的。用户还可以识别加权的重要性。例如,用户可识别图内的一种关系比图内的另一种关系更重要或更不重要。由此,微服务顾问应用能够利用关注机制来捕捉图神经网络内关系的重要性,并且至少部分地基于所识别的重要性来对图中的节点进行聚类。使用所提供的要求或约束,***能够将节点聚类到满足或符合期望要求或约束的聚类中。由此,顾问应用能够在执行聚类时利用各因素、用户提供的输入等。还可以使用机器学习模型或从先前聚类连续学习的神经网络来执行聚类。
如果在104处不能识别聚类,则在105处顾问应用可以不采取动作。顾问应用还可以通知用户聚类不能被识别。另一方面,如果在104处可以识别聚类,则在105,顾问应用可以提供用于将应用拆分成微服务的推荐。在提供推荐时,***可以向用户提供允许用户对聚类进行任何修改的第一遍推荐。因此,向用户提供验证团体或聚类并识别任何离群值的机会。然后,该输入可以被合并到聚类中,并且聚类由顾问应用细化。然后可以生成最终的微服务聚类并在提供给用户的推荐内提供或使用它。
推荐可识别应将应用拆分成多少微服务。换言之,推荐识别应用的微服务的数量。另外,推荐识别应当被包括在推荐内的每个微服务内的应用元素。推荐是基于聚类和在聚类内使用的因素。因此,推荐基于用户提供的信息、约束和/或要求。顾问应用还可以提供推荐的理由。理由可以包括识别在微服务聚类推荐中使用了哪些因素或者或哪些因素对微服务聚类推荐具有更高的影响。理由允许用户容易地识别应当对在聚类中使用的聚类算法或因素作出的任何改变。
图3示出了微服务顾问应用的整体***。顾问应用获得描述要拆分成微服务的应用的信息。该信息可从数据储存库301A、对应于该应用的源代码301B等获得。顾问应用执行分析302,例如静态代码分析、运行时数据分析、数据分析、依赖性分析、日志分析、程序分析等。根据分析,顾问应用生成具有表示应用元素的节点和表示应用元素之间的关系的边的异构图。一旦生成图,顾问应用基于不同因素303(例如,用户案例、类间使用、路径类同现、事务、类亲和性等)将节点的组聚类成团体。结果是基于异构图网络304的节点组,称为团体。这些团体可以发送至用户306用于验证并且用于用户识别任何离群值。任何用户输入被合并并且最终化的微服务305被输出给用户306作为用于将应用拆分成微服务的推荐。
如图4所示,计算节点10’中的计算机***/服务器12’以通用计算设备的形式示出。计算机***/服务器12’的组件可以包括但不限于:至少一个处理器或处理单元16’、***存储器28’、以及将包括***存储器28’的各种***组件耦合到处理器16’的总线18’。总线18’表示若干类型的总线结构中的至少一个,所述总线结构包括存储器总线或存储器控制器、***总线、加速图形端口、以及使用各种总线架构中的任一个的处理器或局部总线。作为示例而非限制,此类架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及***组件互连(PCI)总线。
计算机***/服务器12’通常包括各种计算机***可读介质。这种介质可以是可由计算机***/服务器12’访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质。
***存储器28’可包括易失性存储器形式的计算机***可读介质,诸如随机存取存储器(RAM)30’和/或高速缓存32’。计算机***/服务器12’还可以包括其他可移动/不可移动、易失性/非易失性计算机***存储介质。仅通过示例的方式,存储***34’可被设置用于从不可移除的非易失性磁性介质(未示出,并且通常称为“硬盘驱动器”)读取或写入到不可移除的非易失性磁性介质。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,以及用于从可移动非易失性光盘(如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。在这种情况下,每个可通过至少一个数据介质接口连接至总线18’。如下面将进一步描绘和描述的,存储器28’可以包括具有被配置为执行本发明的实施方式的功能的一组(例如,至少一个)程序模块的至少一个程序产品。
具有一组(至少一个)程序模块42’的程序/实用程序40’,以及操作***、至少一个应用程序、其他程序模块和程序数据可以存储在存储器28’中(作为示例而非限制)。操作***、至少一个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。程序模块42’通常执行如本文所描述的本发明的实施例的功能和/或方法。
计算机***/服务器12’还可以与诸如键盘、指示设备、显示器24’等的至少一个外部设备14’通信,使得用户能够与计算机***/服务器12’交互的至少一个设备;和/或使计算机***/服务器12’能够与至少一个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可通过I/O接口22’发生。而且,计算机***/服务器12’可以通过网络适配器20’与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)的至少一个网络通信。如所描述的,网络适配器20’通过总线18’与计算机***/服务器12’的其他组件通信。应当理解,虽然未示出,但是其他硬件和/或软件部件可以与计算机***/服务器12’结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器和数据归档存储***等。
本公开已出于说明和描述的目的而呈现,但并不旨在是详尽的或限制性的。对于本领域普通技术人员而言,许多修改和变化将是显而易见的。选择并描述这些实施例以便解释原理和实际应用,并且使本领域的其他普通技术人员能够理解本披露。
虽然本文已经参考附图描述了本发明的说明性实施例,但是应理解,本发明的实施例不限于那些精确的实施例,并且在不脱离本公开的范围或精神的情况下,本领域技术人员可以在其中影响各种其他改变和修改。本发明可以是***、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质。
计算机可读存储媒体可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储媒体不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输媒体传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)、以及常规的过程式程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的***、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的***来实现。

Claims (20)

1.一种方法,包括:
接收描述要被拆分成多个微服务的应用的信息;
利用微服务顾问应用来识别所述应用的应用元素;
利用所述微服务顾问应用从所述应用元素生成异构图,其中所述异构图内的每个节点表示应用元素,并且其中所述异构图内的每条边表示由所述边连接的两个节点之间的关系;
利用所述微服务顾问应用并利用图聚类技术,基于所述异构图内的所述边,识别所述异构图内享有共同属性的节点组;以及
基于所识别的节点组,从所述微服务顾问应用提供用于将所述应用拆分成微服务的推荐,其中所述推荐包括所述应用的多个微服务和应当被包括在所述微服务中的每个微服务内的应用元素。
2.根据权利要求1所述的方法,其中,识别节点组是鉴于用户提供的约束来执行的。
3.根据权利要求1所述的方法,其中所述生成包括识别应用元素之间的间接关联,并且其中识别节点组是鉴于所述间接关联来执行的。
4.根据权利要求3所述的方法,其中,识别间接关联包括识别被一个以上的其他应用元素访问的应用元素。
5.根据权利要求1所述的方法,其中所述生成包括识别应用元素之间的直接关联,并且其中识别节点组是鉴于所述直接关联来执行的。
6.根据权利要求5所述的方法,其中,识别直接关联包括识别在彼此之间通信的应用元素。
7.根据权利要求1所述的方法,其中,识别节点组是鉴于应用元素之间的亲和性来执行的。
8.根据权利要求1所述的方法,其中,所述生成包括利用神经网络生成所述异构图。
9.根据权利要求1所述的方法,其中,所述提供包括提供所述推荐的理由。
10.根据权利要求1所述的方法,其中,所述应用元素包括选自由以下各项组成的组中的元素:类、对象、资源和文件。
11.一种装置,包括:
至少一个处理器;以及
计算机可读存储介质,所述计算机可读存储介质具有随其实施且可由所述至少一个处理器执行的计算机可读程序代码;
其中所述计算机可读程序代码被配置为执行根据权利要求1至10中任一项所述的方法中的步骤。
12.一种计算机程序产品,包括:
计算机可读存储介质,其具有随其实施的计算机可读程序代码,所述计算机可读程序代码可由处理器执行;
其中所述计算机可读程序代码被配置为接收描述要拆分成多个微服务的应用的信息;
其中所述计算机可读程序代码被配置为利用微服务顾问应用来识别所述应用的应用元素;
其中所述计算机可读程序代码被配置为利用所述微服务顾问应用从所述应用元素生成异构图,其中所述异构图内的每个节点表示应用元素并且其中所述异构图内的每条边表示由所述边连接的两个节点之间的关系;
其中所述计算机可读程序代码被配置为利用所述微服务顾问应用并利用图聚类技术,基于所述异构图内的所述边,识别所述异构图内享有共同属性的节点组;并且
其中所述计算机可读程序代码被配置为基于所识别的节点组从所述微服务顾问应用提供用于将所述应用拆分成微服务的推荐,其中所述推荐包括所述应用的多个微服务和应当被包括在所述微服务中的每个微服务内的应用元素。
13.根据权利要求12所述的计算机程序产品,其中,识别节点组是鉴于用户提供的约束来执行的。
14.根据权利要求12所述的计算机程序产品,其中所述生成包括识别应用元素之间的间接关联,并且其中识别节点组是鉴于所述间接关联来执行的。
15.根据权利要求14所述的计算机程序产品,其中,识别间接关联包括识别被一个以上的其他应用元素访问的应用元素。
16.根据权利要求12所述的计算机程序产品,其中所述生成包括识别应用元素之间的直接关联,并且其中识别节点组是鉴于所述直接关联来执行的。
17.根据权利要求16所述的计算机程序产品,其中,识别直接关联包括识别在彼此之间通信的应用元素。
18.根据权利要求12所述的计算机程序产品,其中,识别节点组是鉴于应用元素之间的亲和性来执行的。
19.根据权利要求12所述的计算机程序产品,其中,所述生成包括利用神经网络生成所述异构图。
20.根据权利要求12所述的计算机程序产品,其中,所述提供包括提供所述推荐的理由。
CN202211238469.XA 2021-10-11 2022-10-11 用于应用微服务的异构图生成 Pending CN115964646A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/498,406 US11836538B2 (en) 2021-10-11 2021-10-11 Heterogeneous graph generation for application microservices
US17/498,406 2021-10-11

Publications (1)

Publication Number Publication Date
CN115964646A true CN115964646A (zh) 2023-04-14

Family

ID=85798763

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211238469.XA Pending CN115964646A (zh) 2021-10-11 2022-10-11 用于应用微服务的异构图生成

Country Status (3)

Country Link
US (1) US11836538B2 (zh)
JP (1) JP2023057543A (zh)
CN (1) CN115964646A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116166366B (zh) * 2023-04-24 2023-07-21 国网江西省电力有限公司信息通信分公司 一站式电网多样式专题图自动成图***及方法
CN116501383B (zh) * 2023-06-26 2023-08-22 亚信科技(中国)有限公司 微服务的分配方法、装置、电子设备及可读存储介质
CN117311801B (zh) * 2023-11-27 2024-04-09 湖南科技大学 一种基于网络化结构特征的微服务拆分方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117055957A (zh) 2017-04-28 2023-11-14 Lz实验室有限公司 基于单体遗留应用的微服务的容器化部署
CN111465944B (zh) * 2017-10-27 2024-04-05 渊慧科技有限公司 用于生成对象的结构化表示的图形神经网络***
US10827020B1 (en) * 2019-10-03 2020-11-03 Hewlett Packard Enterprise Development Lp Assignment of microservices
US11416243B2 (en) * 2020-01-23 2022-08-16 International Business Machines Corporation Microservice decomposition strategy of monolithic applications
US20210390405A1 (en) * 2020-06-11 2021-12-16 Ulsan National Institute Of Science And Technology Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
US20220309334A1 (en) * 2021-03-23 2022-09-29 Adobe Inc. Graph neural networks for datasets with heterophily

Also Published As

Publication number Publication date
US11836538B2 (en) 2023-12-05
JP2023057543A (ja) 2023-04-21
US20230111379A1 (en) 2023-04-13

Similar Documents

Publication Publication Date Title
US11379347B2 (en) Automated test case generation for deep neural networks and other model-based artificial intelligence systems
US10976904B2 (en) Graphical chatbot interface facilitating user-chatbot interaction
CN115964646A (zh) 用于应用微服务的异构图生成
US10885332B2 (en) Data labeling for deep-learning models
US11100233B2 (en) Optimizing operating system vulnerability analysis
US11302096B2 (en) Determining model-related bias associated with training data
US11941496B2 (en) Providing predictions based on a prediction accuracy model using machine learning
US20200302350A1 (en) Natural language processing based business domain modeling
JP7410040B2 (ja) 仮想エージェント・システムにおけるクエリ認識レジリエンシの判断
US10782940B2 (en) Code library version management
US11144610B2 (en) Page content ranking and display
US10902046B2 (en) Breaking down a high-level business problem statement in a natural language and generating a solution from a catalog of assets
US11681501B2 (en) Artificial intelligence enabled open source project enabler and recommendation platform
US11789774B2 (en) Optimization of workload scheduling in a distributed shared resource environment
US10353795B2 (en) Standardizing run-time and historical customer and test environments and workloads comparisons using specific sets of key platform data points
US11138273B2 (en) Onboarding services
US10956436B2 (en) Refining search results generated from a combination of multiple types of searches
US10235395B2 (en) Keyword identification for an enterprise resource planning manager
US11599357B2 (en) Schema-based machine-learning model task deduction
US11847445B2 (en) Detecting business code areas in a mainframe application
US11334716B2 (en) Document anonymization including selective token modification
US11914733B2 (en) Timing for user data erasure requests
US20230409553A1 (en) Human-in-the-loop conflict resolution in a collaborative data labeling platform
US20230306774A1 (en) Search based on abstracted document structure image
US11551006B2 (en) Removal of personality signatures

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