Software packaging method and device based on topological graph, medium and product
Through the software packaging method based on topology graph, RPM packages and their dependency libraries are generated and compressed, the problems of missing and insufficient testing in software installation are solved, and high compatibility and efficient automated installation testing are achieved.
Patent Information
- Application Number
- CN202510269776.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-07
- Publication Date
- 2025-07-25
AI Technical Summary
During the installation of existing software, there are problems such as missing dependency libraries, long testing time, inadequate testing, and incompatibility of multiple test types, especially when software deployment lacks data simulators with high compatibility and high concurrency capabilities.
Through a topology diagram-based method, the software architecture topology diagram is determined, the RPM package and its dependency library are generated, and the preset program is used for compression processing to form a software compressed file. It supports drawing software architecture on the web interface, provides a variety of installation and deployment environments, and realizes one-click automatic installation and testing.
Improves the success rate of software installation and test compatibility, avoids the missing dependency library, simplifies the deployment process, and improves testing efficiency and compatibility.
Smart Images

Figure CN120371376A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and particularly to a software packaging method, device, medium, and product based on a topology map. Background Art
[0002] In recent years, with the rapid development of the technological level, the development and application of software are very important for software deployment in manufacturers such as wafer manufacturing. At the current stage of deployment, operation and maintenance personnel need to collect the middleware and dependent libraries required for this installation according to experience. Since it is a manual operation, there may be a situation of missing dependencies during actual deployment. Moreover, any file entering and leaving the wafer factory requires approval, which wastes the final deployment time on these avoidable errors.
[0003] At the current stage, the software architecture is not closely linked to the actual installation and deployment. Moreover, the pre-installation test before deployment requires manual step-by-step installation and testing according to the installation document, often resulting in long test time and insufficient testing.
[0004] Daily automated test work requires simulating various types of test data. However, there is currently no simulator specifically used to simulate data that can be compatible to simulate and generate multiple types of test data for subsequent automated testing, and it cannot support multiple servers to concurrently simulate data, nor can it flexibly set the frequency of simulated data and record the results of simulated data in the form of a visual interface. Therefore, how to perform data simulation with high compatibility and high concurrency is a major technical problem in this field. Summary of the Invention
[0005] An object of the present application is to provide a software packaging method, device, medium and product based on a topology graph, which can at least solve problems such as missing dependencies during software installation, long software testing time, insufficient testing, and incompatibility of multiple testing types. The present application determines a package manager according to the installed environment information; in the package manager, in response to a topology graph drawing operation, determines a software architecture topology graph; according to the environment information and the software architecture topology graph, generates an RPM package of the software, and determines the dependency library of the RPM package; compresses the RPM package and the dependency library of the RPM package through a preset program to obtain a software compressed file. By adopting this solution, according to the middleware involved in the topology graph, when finally packaging, the middleware and the dependency library will be automatically packaged through standard operations, avoiding the missing of dependency libraries caused by manual operations. By drawing the corresponding software architecture on the Web interface and drawing the dependency relationship between software in advance, what you see is what you get. And each element on the topology graph will be bound to the software source and deployment-related operations in actual operations, and provides multiple installation and deployment environments, and can be automatically installed and tested in multiple environments with one key, improving the compatibility of testing.
[0006] To achieve the above object, some embodiments of the present application provide the following aspects:
[0007] In a first aspect, some embodiments of the present application provide a software packaging method based on a topology graph, and the method includes:
[0008] Determine a package manager according to the installed environment information;
[0009] In the package manager, in response to a topology graph drawing operation, determine a software architecture topology graph;
[0010] According to the environment information and the software architecture topology graph, generate an RPM package of the software, and determine the dependency library of the RPM package;
[0011] Compress the RPM package and the dependency library of the RPM package through a preset program to obtain a software compressed file.
[0012] In a second aspect, some embodiments of the present application further provide an electronic device, and the electronic device includes: one or more processors; and a memory storing computer program instructions, and when the computer program instructions are executed, the processors execute the steps of the method as described above.
[0013] In a third aspect, some embodiments of the present application further provide a computer-readable medium, on which computer program instructions are stored, and the computer program instructions can be executed by a processor to implement the method as described above.
[0014] In a fourth aspect, some embodiments of the present application further provide a computer program product, including computer programs / instructions, which, when executed by a processor, implement the steps of the method described above.
[0015] Compared with the related art, in the solution provided by the embodiments of the present application, a package manager is determined according to the installed environment information; in the package manager, in response to an operation of drawing a topology diagram, a software architecture topology diagram is determined; according to the environment information and the software architecture topology diagram, an RPM package of the software is generated, and a dependency library of the RPM package is determined; the RPM package and the dependency library of the RPM package are compressed by a preset program to obtain a software compressed file. In this technical solution, according to the middleware involved in the topology diagram, when finally packaging, the middleware and the dependency library will be automatically packaged through standard operations, avoiding the lack of dependency libraries caused by manual operations. By drawing the corresponding software architecture on the Web interface and drawing the dependency relationships between software in advance, what you see is what you get. And each element on the topology diagram will be bound to software sources and deployment-related operations in actual operations, and multiple installation and deployment environments are provided to automatically perform installation tests in multiple environments with one key, improving the compatibility of the tests. Description of the Drawings
[0016] One or more embodiments are exemplarily illustrated by pictures in the corresponding drawings. These exemplary illustrations do not constitute limitations on the embodiments. Elements with the same reference numerals in the drawings are represented as similar elements, unless otherwise stated, and the drawings in the drawings do not constitute a proportional limitation.
[0017] Figure 1 FIG. is an exemplary flowchart of a software packaging method based on a topology diagram provided by some embodiments of the present application;
[0018] Figure 2 FIG. is a schematic diagram of hierarchical drawing provided by some embodiments of the present application;
[0019] Figure 3 FIG. is a schematic diagram of the architecture process of an installer tool installation program provided by some embodiments of the present application;
[0020] Figure 4 An exemplary structural diagram of the electronic device is disclosed. Detailed Embodiments
[0021] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings in the embodiments of this application. Obviously, the described embodiments are some, but not all, of the embodiments of this application. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of this application without creative efforts shall fall within the scope of protection of this application.
[0022] The first embodiment
[0023] The first embodiment of this application relates to a software packaging method based on a topology diagram. As Figure 1 shown, the method may include the following steps:
[0024] Step S101, determine the package manager according to the installed environment information;
[0025] In this solution, specifically, the installed environment information is the system environment, which may include system types such as Redhat and openEuler, for example. Selecting the environment information for this deployment installation may include the system type, and may also include the system version and system architecture (x86_64, arm, etc.). According to the filled-in environment information, select the corresponding type of rpm package. Among them, the RPM (Red Hat Package Manager) package is a software package format widely used in the Linux system and is often used for Red Hat and its derivative distributions (such as CentOS, Fedora, etc.). The following is a detailed introduction to it:
[0026] Simple commands can be used to install, upgrade, and uninstall software. For example, to install a software package named package.rpm, you can use the rpm - ivh package.rpm command (where i represents installation, v represents displaying detailed information, and h represents showing the installation progress in the form of a hash progress bar); when uninstalling the corresponding software package, use the rpm - e package_name command (package_name is the software package name without the suffix.rpm).
[0027] The RPM package usually records relevant information such as other software packages it depends on, which is convenient for the system to check and prompt which dependent software needs to be installed first during installation. However, its ability to handle dependency relationships is relatively limited, and sometimes manual intervention is required to ensure that all dependencies are correctly installed in complex dependency situations.
[0028] Easy to manage and query: You can conveniently query the detailed information of installed software packages through the rpm command. For example, to view the version of a certain software package, use the rpm -q package_name command; to view the list of files included in the software package, you can use the rpm -ql package_name command, etc.
[0029] An RPM package is actually an archive file that contains various types of files required for installing software, such as executable programs, configuration files, documentation, library files, etc., and also has corresponding metadata information, such as software name, version number, release number, dependency relationships, description information, etc. These information help the system to identify and correctly process software packages.
[0030] Developers or packagers can use tools such as rpmbuild to create RPM packages. Usually, they need to prepare the source code of the software or the compiled binary files, and then write the spec file according to the specifications. In the spec file, define the relevant attributes of the software package, installation and uninstallation scripts, file organization structure, dependency relationships, etc. Finally, use rpmbuild to package the corresponding files into an RPM - formatted software package according to the spec file.
[0031] Step S102, in the program package manager, in response to the topology diagram drawing operation, determine the software architecture topology diagram;
[0032] The software architecture topology diagram is a graphical representation used to intuitively display information such as the structural relationships, interaction methods, and deployment situations among the components of a software system. In a software development project, different roles (such as architects, developers, testers, operation and maintenance personnel, etc.) can quickly understand the overall architecture of the software system through the topology diagram, which is convenient for effective communication among all parties and reduces problems caused by misunderstandings. For example, developers can clarify how the modules they are responsible for are connected to other parts based on it, and operation and maintenance personnel can understand the deployment locations and associated situations of each component for subsequent maintenance work. When an architect conceives the software architecture, by drawing the topology diagram, they can sort out the relationships among various functional modules, services, data storage, etc., and then optimize the system design to ensure that the system has good scalability, reliability, performance, and other characteristics. For example, reasonably plan the call sequence and communication mechanism between different services to avoid performance bottlenecks or unreasonable coupling situations. As an important part of the software architecture - related documents, it is convenient to consult when reviewing, upgrading, or troubleshooting the software system later. It can clearly present the initial design ideas and structural layout of the system, and help new personnel joining the project quickly familiarize themselves with the overall situation of the software.
[0033] The hierarchical architecture topology diagram divides the software system according to functional levels. Common ones include the presentation layer (responsible for interacting with users and displaying interfaces, etc.), the business logic layer (processing core business logics), the data access layer (interacting with data storages such as databases), etc. There are clear upper and lower dependency relationships between each layer, and the upper layer calls the services provided by the lower layer to complete corresponding functions. In enterprise-level Web application development, like an e-commerce system, the presentation layer may be the web page interface seen by users, the business logic layer processes business logics such as order processing and product management, and the data access layer is responsible for interacting with the database to obtain and store data such as product information and user information. The hierarchical architecture topology diagram can clearly show the main modules of each layer and the call directions between them.
[0034] The microservices architecture topology diagram shows multiple relatively independent microservices and their interaction relationships. Each microservice can usually be developed, deployed, and run independently, with its own business functions and corresponding APIs. Microservices collaborate through lightweight communication mechanisms (such as RESTful APIs, message queues, etc.), presenting an overall distributed and decentralized structural feature. In a large online social platform, there may be a user service microservice (responsible for user registration, login, information management, etc.), a moments microservice (processing functions such as dynamic publishing, browsing, liking, and commenting), a message notification microservice (pushing various messages to users), etc. The microservices architecture topology diagram will indicate the names of each microservice, the provided interfaces, and their mutual calls or interactions through message queues.
[0035] The client-server architecture topology diagram highlights the two main parts of the client and the server and their connection relationship. The client is usually software running on the user's terminal device (such as a desktop client application, a mobile application, etc.). The server is responsible for receiving client requests, processing the business, and returning corresponding results. They communicate through the network in the middle, and different network protocols (such as HTTP, TCP, etc.) may be involved. In an online music playback application, the music playback client installed on the user's mobile phone sends requests such as song search, playback, and download to the server. The server stores music resources and responds to the client requests. The client-server architecture topology diagram will reflect this request-response interaction path and the main functional modules involved on both sides.
[0036] In one embodiment, in response to a topology diagram drawing operation in the package manager, determining a software architecture topology diagram includes:
[0037] In response to a topology diagram drawing operation in the package manager, draw a server-side template at the first level and server-side nodes at the second level to obtain a software architecture topology diagram.
[0038] Among them, in the operation of drawing a topology diagram, nodes at different levels can be drawn. For example, by drawing a server template at the first level and server nodes at the second level, a software architecture topology diagram can be obtained.
[0039] Figure 2 It is a schematic diagram of hierarchical drawing provided according to some embodiments of the present application. As Figure 2 shown, a server template is drawn at the first level, including Other Softwares, Nginx, Redis, Mysql, etc., and other types of server templates can also be included. Server nodes are drawn at the second level. For example, specific server nodes are drawn under Other Softwares, including server1, server2, etc.
[0040] In one embodiment, after drawing a server template at the first level and server nodes at the second level, it further includes:
[0041] Obtaining a configuration file of the current server node through an interaction operation on each server node.
[0042] Among them, the configuration file can be configured with additional information of each server node. For example, it can include dependency libraries and can also include other information. The configuration file is mainly used to centrally manage various parameters, attributes, additional information, etc. related to each server node in the software architecture, so that this information can be easily read, modified, and then applied to links such as the deployment, operation, and maintenance of the software system. Common configuration file formats are as follows: INI format, with a simple and clear structure, organizes information in the form of sections, keys, and values. Different sections are enclosed in square brackets, and each section contains several key-value pairs to represent specific configuration items and corresponding values. It is suitable for relatively simple configuration requirements and can be selected when the additional information of the server node is not particularly complex. For example, the configuration of a small local server application, etc. YAML format, with a concise format and strong readability, uses indentation to represent hierarchical relationships, supports the configuration of multiple data types (such as strings, numbers, lists, dictionaries, etc.), and the configuration content looks more intuitive and is easy to understand and edit. It is widely used in many modern software projects, especially in scenarios involving relatively complex microservice architectures but where the configuration file is expected to be clear and easy to read, and can well configure various detailed additional information of server nodes. JSON format, a lightweight data exchange format based on key-value pairs, with strict syntax and clear data structure, is convenient for parsing and processing, and is often used to transfer configuration information between different components and also has advantages in network application scenarios. Applicable scenarios: If it is necessary for the configuration file to interact with other systems or programming languages conveniently, for example, to transfer server configuration-related data in a front-end and back-end separated project, the JSON format is a good choice.
[0043] This solution can use the configuration file to manage the additional information of the server nodes well, including the dependency libraries and other various relevant information, so as to better support the deployment and operation and maintenance of the software architecture.
[0044] In one embodiment, the configuration file includes the dependency library information of the current server node.
[0045] Dependency library information, libraries. These code libraries usually encapsulate some general functions, algorithms or implementation logics in specific domains. Software developers can avoid rewriting code by referring to these dependency libraries, improve development efficiency, and at the same time use the existing tested and optimized code to improve the quality and performance of the software. For example, when developing a Python-based web application, it may depend on the Flask library to quickly build a web framework and the SQLAlchemy library to implement the interaction with the database; in a graphics processing software developed in C++, it may depend on the OpenCV library to perform various image processing operations, such as image filtering and feature extraction.
[0046] By using dependency libraries, development time and resources can be saved. In software development, many basic and general functions do not need to be developed from scratch, and directly using the ready-made dependency libraries can significantly shorten the development cycle. For example, to implement encryption and decryption functions, if writing code from the most basic algorithms by oneself may take a lot of time and effort, while using a library like Python's cryptography library, which already has mature encryption and decryption-related functions and classes available for calling, can quickly implement the corresponding functions, allowing developers to focus more on the development of the core business logic of the software. Dependency libraries usually go through a large number of tests, optimizations, and verifications in actual application scenarios. Using them can reduce the probability of software vulnerabilities and errors. For example, using well-known open-source database connection libraries, they have better guarantees in terms of the stability of database connections and the accuracy of data transmission, and are more reliable than simple connection codes written by oneself, which helps to improve the stability and reliability of the entire software system. With the help of dependency libraries, new functions can be easily added to the software or integrated with other systems. For example, in the development of an e-commerce website, if you want to add a payment function, by connecting to the relevant dependency libraries provided by a third-party payment platform (such as Alipay's payment SDK, etc.), you can easily achieve the docking with the payment system and complete the online payment function; another example is to integrate machine learning functions into a data analysis software. By introducing machine learning-related dependency libraries such as scikit-learn, various machine learning algorithms provided by it can be used for data analysis and prediction operations in the software.
[0047] In this solution, specifically, the software architecture installed this time can be drawn in the form of a topology diagram. The first level is the service template (i.e., the software template, which can be dragged and dropped through a pre-provided toolbar), and the second level is the server node (i.e., the instantiation of the software template on different servers, which can be added by clicking the plus sign on the corresponding software template). At the same time, on different server node elements, relevant configuration files for uploading and starting are uploaded through interactive operations to ensure that the service can read the correct configuration files and start normally.
[0048] Step S103, generate an RPM package for the software according to the environment information and the software architecture topology diagram, and determine the dependency libraries of the RPM package;
[0049] According to the topology diagram of the filled installation environment, an RPM package that meets the requirements is automatically generated, as well as the dependency libraries for pulling these RPM packages.
[0050] Step S104, perform compression processing on the RPM package and the dependency libraries of the RPM package through a preset program to obtain a software compressed file.
[0051] In this solution, the preset program can be a middleware, such as using installer. Then this solution can be compressed into a complete tar.gz package through the installer server program, which is convenient for actual installation and deployment.
[0052] In one embodiment, performing compression processing on the RPM package and the dependency libraries of the RPM package through a preset program to obtain a software compressed file includes:
[0053] Organize the files of the RPM package and the dependency libraries of the RPM package in a folder according to a preset hierarchical order to obtain a file to be compressed;
[0054] Perform compression processing on the file to be compressed through a preset program to obtain a software compressed file.
[0055] In this solution, all files are organized in a folder according to a certain level and compressed into a complete tar.gz package through the installer server program, which is convenient for actual installation and deployment. Specifically, the placement level of the files can be determined according to the level of the drawn software topology diagram, and the files can be organized by first placing the RPM package and then placing the dependency libraries of the RPM package to obtain a folder to be compressed or a file to be compressed.
[0056] The technical solution provided in this embodiment determines a package manager according to the installed environment information; in response to a topology diagram drawing operation in the package manager, determines a software architecture topology diagram; generates an RPM package of the software according to the environment information and the software architecture topology diagram, and determines the dependency libraries of the RPM package; performs compression processing on the RPM package and the dependency libraries of the RPM package through a preset program to obtain a software compressed file. This technical solution can, according to the middleware involved in the topology diagram, automatically package the middleware and the dependency libraries through standard operations during final packaging, avoiding the lack of dependency libraries caused by manual operations. By drawing the corresponding software architecture on the Web interface and drawing the dependency relationships between software in advance, what you see is what you get. And each element on the topology diagram will be bound to software sources and deployment-related operations in actual operations, and provides multiple installation and deployment environments, enabling one-click automatic installation and testing in multiple environments, improving the compatibility of testing.
[0057] In one embodiment, after performing compression processing on the RPM package and the dependency libraries of the RPM package through a preset program to obtain a software compressed file, the method further includes:
[0058] Performs pre-installation testing on the software compressed file according to the environment information and generates a test report.
[0059] Among them, various environments can be simulated through tools for installation and corresponding testing. Thus, test results in various environments can be obtained to improve compatibility. The installer provides multiple installation and deployment environments, enables one-click automatic installation and testing in multiple environments, and finally gives a test report.
[0060] Figure 3 It is a schematic diagram of the architecture process of the installer tool installation program according to some embodiments of the present application. As Figure 3 shown, Installer FE Server (Installer Front-End Server): Represented by a square box with a Windows icon, responsible for interacting with users, and may be the interface for users to operate the installation program.
[0061] Installer Backend Server (Installer Back-End Server): Represented by a square box with a blue border, which is the core of the entire installation program, responsible for processing installation requests and coordinating other components.
[0062] Installer Database (Installer Database): Represented by a square box with a gray border, storing data required by the installation program, such as configuration information, user data, etc.
[0063] RPM Package Center: Represented by a box with a blue border, it may be a component for managing and distributing RPM packages (Red Hat Package Manager).
[0064] tar.gz package: Represented by a wavy line, it may be a software package required by the installer and stored in the tar.gz format.
[0065] The arrows between these components indicate the flow of data and requests:
[0066] There is a two-way arrow between the installer front-end server and the installer back-end server, indicating that there is interaction and data transfer between them.
[0067] There is a two-way arrow between the installer back-end server and the installer database, indicating that the back-end server needs to read and write data from the database.
[0068] There is a one-way arrow between the installer back-end server and the RPM Package Center, indicating that the back-end server obtains the required software packages from the RPM Package Center.
[0069] There is a one-way arrow between the installer back-end server and the tar.gz package, indicating that the back-end server may obtain data or software from this compressed package.
[0070] This architecture flowchart is usually used in the design and development of software installers to help developers understand the relationships between components and the data flow, ensuring the smooth progress of the installation process.
[0071] In this technical solution, the dependency relationships between software packages are managed in a standardized manner. Due to the integrity of the improved installation source, there will be no situation of missing dependencies during actual installation and deployment;
[0072] This technical solution has standardized the discrete deployment and installation method. Since the preparation of deployment materials has become more standardized and process-based after improvement, the probability of errors has been reduced.
[0073] In addition, some embodiments of this application also provide an electronic device. The electronic device can be various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, etc. The electronic device can also be various forms of mobile devices, such as personal digital processors, cellular phones, smart phones, wearable devices, and other similar computing devices.
[0074] The electronic device includes: one or more processors; and a memory storing computer program instructions that, when executed, cause the processors to perform the steps of the method provided in any one or more of the above embodiments. Figure 4 An exemplary structural diagram of the electronic device is disclosed. As Figure 4 shown, the electronic device includes: one or more processors 401, a memory 402, and interfaces for connecting the components, including a high-speed interface and a low-speed interface. Each component is interconnected using different buses and can be mounted on a common motherboard or otherwise installed as required. The processor can process instructions executed within the electronic device, including instructions stored in the memory or on the memory to display graphical information of a GUI on an external input / output device (such as a display device coupled to the interface). In some other embodiments, if needed, multiple processors and / or multiple buses can be used with multiple memories and multiple memories. Similarly, multiple electronic devices can be connected, with each device providing part of the necessary operations (such as an array of servers, a set of blade servers, or a multi-processor system). Among them, the components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present application described and / or claimed herein.
[0075] The electronic device may further include: an input device 403 and an output device 404. The processor 401, the memory 402, the input device 403, and the output device 404 can be connected by a bus or other means, Figure 4 taking connection by bus as an example.
[0076] The input device 403 can receive input digital or character information and generate signal inputs related to the user settings and function controls of the electronic device, such as input devices like touchscreens, keypads, mice, trackpads, touchpads, pointing sticks, one or more mouse buttons, trackballs, joysticks, etc. The output device 404 may include a display device, an auxiliary lighting device (such as an LED), and a haptic feedback device (such as a vibration motor), etc. The display device may include, but is not limited to, a liquid crystal display (LCD), a light-emitting diode (LED) display, and a plasma display. In some embodiments, the display device may be a touchscreen.
[0077] To provide interaction with a user, the electronic device may be a computer. The computer has: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or an LCD (liquid crystal display) monitor); and a keyboard and a pointing device (e.g., a mouse or a trackball), through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).
[0078] In the embodiments of the present application, a computer program / instructions is stored on a computer-readable medium. When the computer program / instructions are executed by a processor, the steps of the method provided in any one or more of the above embodiments are implemented. The computer-readable medium may be included in the electronic device described in the above embodiments; or it may exist separately without being assembled into the device. The above computer-readable medium carries one or more computer-readable instructions.
[0079] The memory 402 can be used as a non-transitory computer-readable storage medium for storing non-transitory software programs, non-transitory computer-executable programs, and modules. The processor 401 executes various functional applications and data processing of the server by running the non-transitory software programs, instructions, and modules stored in the memory 402, so as to implement the program instructions / modules corresponding to the method provided in any one or more of the above embodiments of the present application.
[0080] The memory 402 may include a program storage area and a data storage area. Among them, the program storage area can store an operating system and application programs required for at least one function; the data storage area can store data created according to the use of the electronic device, etc. In addition, the memory 402 may include a high-speed random access memory, and may also include a non-transitory memory, such as at least one disk storage device, a flash memory device, or other non-transitory solid-state storage devices. In some embodiments, the memory 402 may optionally include a memory remotely set relative to the processor 401, and these remote memories can be connected to the electronic device through a network. Examples of the above network include but are not limited to the Internet, an enterprise intranet, a local area network, a mobile communication network, and combinations thereof.
[0081] It should be noted that the computer-readable medium described in this application can be a computer-readable signal medium, a computer-readable storage medium, or any combination of the two. The computer-readable medium can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the above. More specific examples of the computer-readable storage medium can include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In this application, the computer-readable medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
[0082] The computer-readable medium includes permanent and non-permanent, removable and non-removable media, and information storage can be implemented by any method or technology. The information can be computer-readable instructions, data structures, program modules, or other data. Examples of the computer's storage medium include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory, or other memory technologies, compact disc read-only memory (CD-ROM), digital versatile disc (DVD), or other optical storage, magnetic cassette tapes, magnetic disk storage, or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device.
[0083] The computer program code for performing the operations of this application can be written in one or more programming languages or combinations thereof. The programming languages include object-oriented programming languages such as Java, Smalltalk, C++, and also include conventional procedural programming languages such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, executed as an independent software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (for example, by using an Internet service provider to connect through the Internet).
[0084] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. For example, an application specific integrated circuit (ASIC), a general-purpose computer, or any other similar hardware device can be used. In some embodiments, the software program of the present application can be executed by a processor to implement the above steps or functions. Similarly, the software program (including related data structures) of the present application can be stored in a computer-readable recording medium, such as a RAM memory, a magnetic or optical drive, or a floppy disk and the like. In addition, some steps or functions of the present application can be implemented by hardware, for example, as a circuit that cooperates with the processor to execute each step or function.
[0085] The computer program product provided by the embodiments of the present application includes one or more computer programs / instructions. When the computer program / instructions are executed by a processor, they wholly or partly generate the processes or functions described in the embodiments of the present application. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by wire (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer, or a data storage device such as a server or data center that includes one or more integrated available media. The available medium can be a magnetic medium (such as a floppy disk, a hard disk, a magnetic tape), an optical medium (such as a DVD), or a semiconductor medium (such as a solid state disk (SSD)), etc.
[0086] The flowcharts and block diagrams in the accompanying drawings illustrate the possible architectures, functions, and operations of devices, methods, and computer program products according to various embodiments of the present application. In this regard, each block in the flowchart or block diagram may represent a module, a segment of a program, or a part of code that contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than that marked in the accompanying drawings. For example, two consecutive blocks shown may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, and the combinations of blocks in the block diagram and / or flowchart, may be implemented by a dedicated hardware-based system that performs the specified functions or operations, or may be implemented by a combination of dedicated hardware and computer instructions.
[0087] The scope of the present application is defined by the appended claims rather than the above description. Therefore, all changes that fall within the meaning and scope of the equivalent elements of the claims are intended to be included in the present application. Any reference numerals in the claims should not be construed as limiting the claims involved. In addition, it is obvious that the term "comprising" does not exclude other units or steps, and the singular does not exclude the plural. The multiple units or devices stated in the apparatus claims may also be implemented by one unit or device through software or hardware. The terms "first", "second", etc. are only used for descriptive distinction and do not represent any specific order, nor can they be understood as indicating or implying relative importance.
[0088] As described above, the above are only specific embodiments of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art within the technical scope disclosed in the present application can easily mention changes or substitutions, which should all be covered by the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims, and the above embodiments should be regarded as exemplary and non-limiting.
Claims
1. A software packaging method based on a topological graph, characterized in that The method includes: Determine a package manager according to the installed environment information; In the package manager, in response to a topology graph drawing operation, determine a software architecture topology graph; Generate an RPM package of the software according to the environment information and the software architecture topology graph, and determine the dependency libraries of the RPM package; Perform compression processing on the RPM package and the dependency libraries of the RPM package through a preset program to obtain a software compressed file.
2. The method according to claim 1, characterized in that, In the package manager, in response to a topology graph drawing operation, determine a software architecture topology graph, including: In the package manager, in response to a topology graph drawing operation, draw a server template at the first level and server nodes at the second level to obtain a software architecture topology graph.
3. The method according to claim 2, wherein After drawing a server template at the first level and server nodes at the second level, it further includes: Obtain a configuration file of the current server node through an interactive operation on each server node.
4. The method according to claim 3, wherein The configuration file includes dependency library information of the current server node.
5. The method according to claim 1, characterized in that, Perform compression processing on the RPM package and the dependency libraries of the RPM package through a preset program to obtain a software compressed file, including: Organize the files of the RPM package and the dependency libraries of the RPM package in a folder according to a preset hierarchical order to obtain a file to be compressed; Perform compression processing on the file to be compressed through a preset program to obtain a software compressed file.
6. The method according to claim 1, wherein After performing compression processing on the RPM package and the dependency libraries of the RPM package through a preset program to obtain a software compressed file, the method further includes: Perform pre-installation testing on the software compressed file according to the environment information and generate a test report.
7. An electronic device, characterized in that, The electronic device includes: One or more processors; and A memory storing computer program instructions, which when executed cause the processor to execute the steps of the method according to any one of claims 1 to 7.
8. A computer-readable medium having computer programs / instructions stored thereon, characterized in that, The computer program / instructions, when executed by the processor, implement the steps of the method according to any one of claims 1 to 7.
9. A computer program product, comprising a computer program / instructions, characterized in that, The computer program / instructions, when executed by the processor, implement the steps of the method according to any one of claims 1 to 7.