| With the development of Internet technology and software and hardware technology,the single software architecture can no longer meet the software requirements in complex heterogeneous environments,and the new software architecture based on microservices has become an important research field of software engineering.Existing enterprises have a large number of legacy application systems that are single systems.How to maximize the protection of enterprise legacy system resources and quickly and efficiently rebuild enterprise microservice architecture systems that adapt to complex application environments has become a research hotspot in software engineering field.The migration from monolithic architecture to microservice architecture faces many challenges.This thesis mainly focuses on the semantic understanding of monolithic legacy systems,structural feature extraction,automation of microservice splitting,and microservice architecture design.The main work is as follows:1.An automatic splitting method of microservices based on graph neural network is designed.Analyze the source code of the legacy system through static program analysis,and at the same time introduce the semantic coupling strategy of the domain-driven design idea,identify and construct the graph structure data,improve the variational graph autoencoder(VGAE)model,and embedding and clustering nodes Integrate into a graph neural network framework to enable clustering of application-like documents to generate suitable microservice candidates.The effectiveness of the microservice splitting method proposed in this thesis is verified through specific experiments.2.A model-driven reverse engineering approach is proposed to reduce the cost of understanding legacy systems.In terms of reverse-engineering structure from legacy source code,explore and extract features related to static structure,elements,and relationships between multiple elements of existing system designs,and represent them in the form of UML class diagrams;In terms of reverse extraction behavior,explore the functional methods of the source code,obtain relevant operations and operation implementation details,and express them in the form of UML activity diagrams.Convert the understanding of the source code into an easier-to-understand,higher-level UML model(class diagram and activity diagram),and designed as a plug-in for Intelli J IDEA to better support the improvement or migration of legacy systems.3.An algorithm for extracting microservice interfaces from activity diagrams is designed.Summarizes the basic components of microservice architecture and common microservice design patterns,sorts out the basic process of microservice construction,takes the open source legacy system as a practice,and refers to the obtained microservice splitting results to refactor the system and migrate it to build into a microservice system based on the Spring Cloud framework.Through functional testing and performance testing,it is verified that the microservice system functions normally and performs well.4.Designed and implemented an enterprise-oriented microservice building system(MBS).The system includes four microservices: access control,workspace,code extraction and splitting,and Flask.By using this system,it is possible to manage legacy single application programs,identify application information and split them,and finally obtain a candidate set of microservices.This system fits the usage scenarios in enterprises and can efficiently complete the identification and splitting of microservices sub-task. |