Application management method and system

By configuring multiple tenant templates through the application management system, the problem of low tenant opening efficiency was solved, and a fast and flexible tenant template selection and opening process was achieved.

CN121008716APending Publication Date: 2025-11-25HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410658732.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-05-25
Publication Date
2025-11-25

AI Technical Summary

Technical Problem

Tenants are inefficient in the process of opening a lease, and customized development is required according to business needs, which affects the efficiency of tenants opening leases.

Method used

The application management system obtains application metadata, configures multiple tenant templates, each template corresponds to at least one business requirement, and provides tenants with options to achieve flexible configuration and rapid deployment.

Benefits of technology

It improves the efficiency of tenants opening leases, allowing them to quickly select a suitable tenant template to open a lease based on their actual needs, thus simplifying the lease opening process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121008716A_ABST
    Figure CN121008716A_ABST
Patent Text Reader

Abstract

The invention provides an application management method and system, and the method and system can improve the leasing efficiency of a tenant. The application management method can be applied to an application management system. In specific implementation, an application management system obtains metadata of an application, and the metadata of the application is used for describing functions of the application and resources needed by the application. And then, the application management system configures a plurality of tenant templates of the application according to the metadata of the application, and provides the plurality of tenant templates, each tenant template corresponds to at least one business demand, and each tenant template comprises part or all of the metadata of the application.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of software as a service (SaaS), and in particular to an application management method and system. BACKGROUND

[0002] SaaS is a software application mode for providing software services through a network. In this mode, an application provider provides hosting services for applications, so that tenants can purchase and use the applications provided by the application provider through the network. However, in specific implementations, the business needs of different tenants are not the same, and therefore, before the tenants open the tenancy, the tenant administrator usually needs to customize and develop the applications provided by the application provider according to the business needs of the tenants, which affects the efficiency of opening the tenancy of the tenants. SUMMARY

[0003] The present application provides an application management method and system, which can improve the efficiency of opening the tenancy of the tenants.

[0004] In a first aspect, the present application provides an application management method, which can be applied to an application management system. Specifically, the application management system obtains metadata of an application, the metadata of the application being used to describe the functions of the application and the resources required by the application. Then, the application management system configures a plurality of tenant templates of the application according to the metadata of the application, and provides the plurality of tenant templates, wherein each tenant template corresponds to at least one business requirement, and each tenant template includes part or all of the metadata of the application.

[0005] In the technical solution provided by the present application, the application management system can pre-configure a plurality of tenant templates, and provide the plurality of pre-configured tenant templates to the tenants, so that the tenants can select appropriate tenant templates according to actual needs to directly open the tenancy, thereby improving the efficiency of opening the tenancy of the tenants.

[0006] In an implementation manner, the plurality of tenant templates includes a first tenant template. The application management system configuring the plurality of tenant templates of the application according to the metadata of the application includes: the application management system selecting metadata specified by configuration information of a user from the metadata of the application according to the configuration information, and the first tenant template including the selected metadata. In this way, flexible configuration of the tenant template is realized.

[0007] In an implementation manner, the application management system further obtains a tenancy opening request of a tenant, the tenancy opening request including an identifier of a first tenant template specified by the tenant, and then performs initialization processing on the metadata in the first tenant template according to the tenancy opening request, thereby completing the tenancy opening of the tenant.

[0008] In an implementation, the metadata of the application comprises one or more of: metadata of an API in the application, wherein the API in the application is used to access an entity in the application; metadata of a page in the application; metadata of a control in the application; metadata of a function module in the application; metadata of a menu in the application; metadata of a resource required to run the application.

[0009] In an implementation, the first tenant template corresponds to a first business requirement, and the first tenant template comprises one or more of: metadata of a function module required by the first business requirement; metadata of a resource required by the first business requirement; metadata of a menu required by the first business requirement; instance data required by the first business requirement.

[0010] In an implementation, the plurality of tenant templates further comprises a second tenant template, the first tenant template is used to implement a first function of the application, and the second tenant template is used to implement the first function and a second function of the application, wherein the second function depends on the implementation of the first function.

[0011] In a second aspect, the present application provides an application management system. The system comprises an obtaining module, a tenant template configuration module and a display module. The obtaining module is configured to obtain metadata of an application, the metadata of the application being used to describe functions of the application and resources required by the application. The tenant template configuration module is configured to configure a plurality of tenant templates of the application according to the metadata of the application, each tenant template corresponding to at least one business requirement, and each tenant template comprising part or all of the metadata of the application. The display module is configured to provide the plurality of tenant templates.

[0012] In an implementation, the plurality of tenant templates comprises a first tenant template. The tenant template configuration module is configured to select metadata specified by configuration information of a user from the metadata of the application according to the configuration information, and the first tenant template comprises the selected metadata.

[0013] In an implementation, the obtaining module is further configured to obtain a lease request of a tenant, the lease request comprising an identifier of a first tenant template specified by the tenant. The application management system further comprises an execution module, the execution module being configured to perform initialization processing on the metadata in the first tenant template according to the lease request.

[0014] In an implementation, the metadata of the application comprises one or more of: metadata of an API in the application, wherein the API in the application is used to access an entity in the application; metadata of a page in the application; metadata of a control in the application; metadata of a function module in the application; metadata of a menu in the application; metadata of a resource required to run the application.

[0015] In an implementation, the first tenant template corresponds to a first business requirement, and the first tenant template comprises one or more of: metadata of a function module required by the first business requirement; metadata of a resource required by the first business requirement; metadata of a menu required by the first business requirement; instance data required by the first business requirement.

[0016] In an implementation, the plurality of tenant templates further comprises a second tenant template, the first tenant template is used to implement a first function of an application, and the second tenant template is used to implement the first function and a second function of the application, wherein the second function depends on the first function for implementation.

[0017] In a third aspect, the present application provides another application management system. The system is implemented by a single computing device or a computing device cluster composed of a plurality of computing devices. The system comprises a processor and a memory, wherein the processor is configured to execute instructions stored in the memory to cause the computing device to perform part or all of the methods described in the foregoing first aspect and any implementation thereof.

[0018] In a fourth aspect, the present application provides a computer program product comprising instructions. The computer program product can be a software or program product comprising instructions capable of running on a computing device or stored in any available medium. When the computer program product runs on the computing device, it causes the computing device to perform part or all of the methods described in the foregoing first aspect and any implementation thereof.

[0019] In a fifth aspect, the present application provides a computer readable storage medium. The computer storage medium comprises computer program instructions, when the computer program instructions are executed by a computing device, causing the computing device to perform part or all of the methods described in the foregoing first aspect and any implementation thereof. BRIEF DESCRIPTION OF DRAWINGS

[0020] Figure 1 is a schematic diagram of a tenant opening provided by the present application;

[0021] Figure 2 is a schematic diagram of an application scenario provided by the present application;

[0022] Figure 3 is a flowchart of an application management method provided by the present application;

[0023] Figure 4 is a schematic diagram of a tenant template planning page provided by the present application;

[0024] Figure 5 is a structural schematic diagram of a tenant template display page provided by the present application;

[0025] Figure 6is a structural schematic diagram of an application management system provided by the present application;

[0026] Figure 7 is a structural schematic diagram of another application management system provided by the present application;

[0027] Figure 8 is a structural schematic diagram of another application management system provided by the present application. DETAILED DESCRIPTION

[0028] Tenant onboarding refers to the process of a tenant purchasing an application to initialize the application. Here, a tenant refers to a user using an application, as well as a series of data created and used by the user, such as an account, user data, and used computing resources, network resources, and storage resources, etc.

[0029] In order to solve the problem of low efficiency of tenant onboarding, the present application provides an application management method. The method can be applied to an application management system. The application management system can configure a plurality of tenant templates of an application according to metadata of the application, wherein one tenant template corresponds to at least one business requirement, and one tenant template includes part or all of the metadata of the application for realizing part or all of the functions of the application. The application management system also displays the above-mentioned plurality of configured tenant templates to the tenant, so that the tenant can select a suitable tenant template according to the business requirement to directly onboarding. Therefore, the above-mentioned method provided by the present application can improve the efficiency of tenant onboarding.

[0030] The technical solutions provided by the present application will be described below in conjunction with the accompanying drawings.

[0031] Referring to Figure 1 , Figure 1 a tenant onboarding scenario to which the present application is applicable is shown. As Figure 1 shown, the scenario includes a client 100, a client 200, and an application management system 300, wherein the application management system 300 is connected with the client 100 and the client 200 through a network, which can be a wide area network or a local area network.

[0032] The client 100 and the client 200 can both be software or an application program deployed on a terminal device, for example, a browser. The terminal device includes, for example, a desktop computer, a notebook computer, a tablet computer, a smart phone, a wearable device, etc.

[0033] The application management system 300 can be implemented by a single computing device or a computing device cluster composed of a plurality of computing devices. The computing device can be a server (for example, a central server, an edge server, a local server in a local data center), or a terminal device such as a desktop computer, a notebook computer, or a smart phone, etc. Figure 1Taking the application management system 300 implemented through a single computing device as an example, the structure of an application management system 300 is exemplified. Figure 1 As shown, the application management system 300 may include a bus 301, a processor 302, a memory 303, and a communication interface 304, wherein the processor 302, the memory 303, and the communication interface 304 communicate with each other via the bus 301. It should be understood that this application does not limit the number of processors 302 and memory 303 in the application management system 300; for simplicity, Figure 1 The following description uses a processor 302 and a memory 303 as an example.

[0034] Bus 301 can be a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, a Unified Bus (Ubus or UB), a Compute Express Link (CXL) bus, a Cache Coherent Interconnect for Accelerators (CCIX) bus, etc. The Unified Bus is also known as the Lingqu Bus. Buses can be divided into address buses, data buses, control buses, etc. For ease of representation, Figure 1 The bus 301 is represented by only one line, but this does not mean that the application management system 300 has only one bus or one type of bus. The bus 301 may include a path for transmitting information between various components in the application management system 300 (e.g., processor 302, memory 303, and communication interface 304).

[0035] The processor 302 can include a central processing unit (CPU), an application-specific integrated circuit (ASIC), or a programmable logic device (PLD). The PLD can be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), a data processing unit (DPU), a neural network processing unit (NPU), a system on chip (SoC), an offload card, an acceleration card, or any combination thereof.

[0036] The memory 303 can include a volatile memory, such as a random access memory (RAM). The memory 303 can also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a mechanical hard disk drive (HDD), or a solid state drive (SSD). In addition, the memory 303 can also be implemented by a storage class memory (SCM), a phase change memory (PCM), or other types of storage media.

[0037] It is worth noting that the same type of storage medium can be configured in the application management system 300 to implement the function of the memory 303, or two or more types of storage media can be configured to implement the function of the memory 303, which is not limited in the present application.

[0038] The memory 303 stores executable program codes. The processor 302 implements the application management method provided by the present application by executing the program codes in the memory 303. The memory 303 also stores data generated in the process of the processor 302 executing the program codes.

[0039] The communication interface 304 uses a transceiver module such as, but not limited to, a network interface card, a transceiver, to enable the application management system 300 to communicate with other devices or communication networks, for example, the application management system 300 can communicate with the client 100 and the client 200 through the communication interface 304.

[0040] In the scenario shown in Figure 1 In the scenario shown in

[0041] In an implementation, the above-mentioned functions provided by the application management system 300 can be provided to the application provider in the form of cloud services. The following will be described taking the application scenario shown in Figure 2 In the scenario shown in Figure 2 The application management system 300 is deployed in a data center and provides cloud services based on the basic resources (including computing resources, storage resources, network resources, etc.) provided by the data center. The application provider can remotely access the cloud management platform through a local client (for example, a browser), register an account on the cloud management platform, and log in to the cloud management platform through the account. After that, the application provider can purchase the services provided by the application management system 300 on the cloud management platform. After the purchase is successful, the application provider can complete the development (including configuring multiple tenant templates of the application) and deployment of the application on the application management system 300. The application management system 300 can also provide the multiple tenant templates of the application to other tenants through the cloud management platform, so that other tenants can purchase and use the application provided by the application provider.

[0042] Next, combined with Figure 3The application management method shown above describes the functions of the application management system 300 in more detail.

[0043] In step 101, the client 100 sends the metadata of the user-configured application to the application management system 300. Accordingly, the communication interface 304 in the application management system 300 receives the metadata of the user-configured application.

[0044] Specifically, the communication interface 304 can provide an application programming interface (API) or a graphical user interface (GUI), through which the user can input the metadata of the application. Accordingly, the client 100 sends the metadata of the user-configured application to the communication interface 304. Here, the user refers to the person who develops the application. The metadata of the application is used to describe the functions of the application and the resources required to run the application

[0045] In an implementation manner, the storage 303 pre-stores metadata configuration rules. When the user wants to develop an application based on the application management system 300, the processor 302 can instruct the communication interface 304 to show the metadata configuration rules to the user, so that the user can configure the metadata of the application on the application management system 300 based on the rules.

[0046] The metadata configuration rules are obtained based on the functions, resource configurations, user experiences, and other application design dimensions of the application. The metadata configuration rules are used to instruct the user to configure the metadata of the application from the following aspects: which functional modules the application needs to include, which functional modules have a correlation relationship, which pages and entities (i.e., data tables) the functional modules need to include, which pages have a correlation relationship, which controls the pages need to include, which pages need a page menu, which API calls the entities need to use, which resources (including computing resources, storage resources, and network resources) are required to run each functional module, and the like.

[0047] Based on the metadata configuration rules described above, the metadata of the user-configured application can include one or more of the following types:

[0048] (1) Metadata of API

[0049] The metadata of the API is used to describe the API in the application. The API in the application is an interface for accessing the entities (i.e., data tables) in the application. Through the API, various data operations such as data query, data modification, data insertion, or deletion can be performed on the entities. The metadata of the API can specifically include the name of the API, the identification of the API, the parameters in the API, the authentication and authorization mechanism of the API, the response status code of the API, the version information of the API, and other information related to the API.

[0050] Metadata of a page

[0051] The metadata of a page is used to describe a page in an application. A page in an application refers to a carrier for user interaction with the application. The metadata of a page can specifically include a name of the page, an identifier of the page, components in the page, an association relationship between different components, an association relationship between different pages, and other information related to the page. Among them, the components in the page are modules or parts that constitute the page, and are used to display specific content or implement specific functions, and can specifically be a combination of hypertext markup language (HTML) elements, cascading style sheets, and JavaScript code. Different components have an association relationship, for example, one component can need data or functions provided by another component to normally run and display. Similarly, different pages also have an association relationship, for example, one page can need data or functions provided by another page to normally run and display.

[0052] Metadata of a control

[0053] The metadata of a control is used to describe a control in a page. A control in a page refers to a part in the page that interacts with a user or displays information, such as a button, an input box, a check box, a drop-down box, and the like. The metadata of a control can specifically include a name of the control, an identifier of the control, an association relationship between the control and a page (that is, which pages include the control), and other information related to the control.

[0054] Metadata of a function module

[0055] The metadata of a function module is used to describe a function module in an application. A function module in an application refers to a module obtained by dividing the application according to functions possessed by the application, and one function module is responsible for implementing one function of the application. The function modules in an application can be divided into two categories, one is a basic function module, and the other is a value-added function module. Among them, the basic function module is used to provide a basic function, and the basic function is a basic function that the application needs to have. The value-added function module is used to provide a value-added function, and the value-added function refers to an additional function provided on the basis of the basic function. For example, for an artificial intelligence (AI) application, the basic function can be the ability of AI reasoning, and the value-added function can be an acceleration function to complete AI reasoning faster. For example, for a data governance application, the basic function can be a data storage function, and the value-added function can be a data analysis capability, a data visualization capability, and the like provided based on different business needs, to better support enterprises to make decisions.

[0056] The metadata of the function module can specifically include the name of the function module, the identifier of the function module, the entity in the function module, the association relationship between the entity and the API (i.e., which API can be used to access the entity), the association relationship between the function module and the page (i.e., which pages are included in the function module), the association relationship between different function modules, and other information related to the function module.

[0057] (5) Metadata of menu

[0058] The metadata of the menu is used to describe the menu of the page. The menu of the page is a way for the user to open the page, i.e., the user can open the page associated with the menu of the page. The metadata of the menu can include the name of the menu, the identifier of the menu, the style of the menu, the association relationship between the menu and the page, and other information related to the menu.

[0059] (6) Metadata of resources required for running the application

[0060] The metadata of the resources required for running the application is used to describe the resources required for running the application, such as storage resources, computing resources, network resources, etc. Specifically, the metadata of the storage resources required for running the application can include the number of storage resources, the type of each storage resource (e.g., database, object storage, etc.), the capacity of each storage resource, the identifier of each storage resource, the association relationship between the storage resource and the function module (i.e., which function module uses the storage resource), and other information related to the storage resource. Similarly, the metadata of the computing resources required for running the application can include the number of computing resources, the type of each computing resource (e.g., virtual machine, container, etc.), the identifier of each computing resource, the association relationship between the computing resource and the function module (i.e., which function module uses the computing resource), and other information related to the computing resource. The metadata of the network resources required for running the application can include the number of network resources, the type of each network resource, the identifier of each network resource, the association relationship between the network resource and the function module (i.e., which function module uses the network resource), and other information related to the network resource.

[0061] In step 102, the processor 302 configures the plurality of tenant templates of the application according to the metadata of the application.

[0062] The tenant template refers to a set of function and resource definitions planned according to business requirements and required by the tenant. One tenant template corresponds to one business requirement, and one tenant template includes part or all of the metadata of the application.

[0063] Taking one tenant template (hereinafter referred to as "target tenant template") as an example, the application management system 300 can obtain the target tenant template through the following steps:

[0064] In step 1, the communication interface 304 receives the configuration information of the user.

[0065] Specifically, the communication interface 304 provides a tenant template configuration page which displays description information of various metadata of the application, for example, including the identification of the function module, the identification of the menu, the identification of the resource. The user can input the configuration information based on the above-mentioned page, accordingly, the client 100 will send the user's configuration information to the communication interface 304, and then the communication interface 304 can receive the user's configuration information. Wherein, the configuration information input by the user can include the identification of the target function module, and optionally, can also include one or more of the identification of the target menu, the identification of the target resource. The target function module, the target menu, the target resource and the target instance data are determined by the user according to the target business requirement.

[0066] Optionally, the configuration information input by the user can also include instance data, the association relationship between different instance data, and the association relationship between the instance data and the metadata specified by the user. Wherein, the instance data refers to the basic data that can be directly used after the tenant is opened, for example, user role data, application lifecycle management data, icon data, etc. In order to facilitate the understanding of the instance data, the following will be described in conjunction with a specific example: assuming that the configuration information input by the user includes user role data, icon data, the association relationship between the user role data and the icon data, and the association relationship between the metadata of the menu and the icon data. Then, when the tenant selects the target tenant template for opening, the processor 302 can automatically create the user role and the icon required by the tenant, wherein the user role can be displayed through its associated icon, and the menu can also be displayed through its associated icon.

[0067] Step 2, the processor 302 configures the target tenant template according to the user's configuration information.

[0068] Specifically, the processor 302 selects the metadata specified by the configuration information from the metadata of the application according to the user's configuration information, wherein the metadata specified by the configuration information is the metadata required by the target business requirement, and the target tenant template includes the above-mentioned selected metadata. In addition, when the configuration information input by the user also includes instance data, the association relationship between different instance data, and the association relationship between the instance data and the metadata specified by the user, the target tenant template also includes the instance data, the association relationship between different instance data, and the association relationship between the instance data and the metadata specified by the user. Therefore, the target tenant template can include one or more of the following: the metadata of the function module required by the target business requirement, the metadata of the resource required by the target business requirement, the metadata of the menu required by the target business requirement, and the instance data required by the target business requirement.

[0069] In the foregoing process, the processor 302 can select the metadata required by the target service requirement from the metadata of the application by the following manner: the processor 302 determines the metadata required by the target service requirement according to the matching relationship between the identifier in the configuration information and the identifier in the metadata of the application. In a specific implementation, taking one identifier (supposed to be identifier m) in the configuration information and one identifier (supposed to be identifier n) in the metadata of the application as an example, the processor 302 can determine the matching relationship of the identifier m and the identifier n by calculating the similarity of the identifier m and the identifier n, wherein when the matching relationship of the two is greater than a threshold, it is determined that the identifier m and the identifier n match, otherwise, it is determined that the identifier m and the identifier n do not match.

[0070] For ease of understanding, the configuration process of the plurality of tenant templates of the application is introduced below in combination with a specific example:

[0071] Suppose that the application includes a function module 1, a function module 2 and a function module 3, wherein the function module 1 is used to implement the basic function of the application, the function module 2 is used to implement the value-added function 1 of the application, and the function module 3 is used to implement the value-added function 2 of the application.

[0072] It is considered that there can be four service requirements in actual application, wherein the service requirement 1 is only required to have the basic function, the service requirement 2 is required to have the basic function and the value-added function 1, the service requirement 3 is required to have the basic function and the value-added function 2, and the service requirement 4 is required to have the basic function, the value-added function 1 and the value-added function 2. Therefore, four tenant templates can be configured, wherein the tenant template 1 corresponds to the service requirement 1, the tenant template 2 corresponds to the service requirement 2, the tenant template 3 corresponds to the service requirement 3, and the tenant template corresponds to the service requirement 4.

[0073] Referring to Figure 4 , Figure 4 The configuration process of the tenant template 2 is shown. As Figure 4 shown, when the user clicks the "create tenant template" option, the tenant template configuration page displays the card of the tenant template 2, which includes the identifier (shown as ID1 in the figure) of the tenant template 2 and the creation time (shown as time 1 in the figure). When the user clicks the "edit" option, the right side of the tenant template configuration page displays the description information of various metadata of the application, for example, the identifier of the function module 1, the identifier of the function module 2 and the identifier of the function module 3. Since the service requirement 2 requires the basic function and the value-added function 1, the user can check "the identifier of the function module 1" and "the identifier of the function module 2". In this way, the user can check the metadata of the required menu and the metadata of the required storage resource on the tenant template configuration page, and can also configure the required instance data. Then, the user clicks the "save" option, thereby completing the configuration of the tenant template 2. Referring to the foregoing process, the user can also complete the configuration of the tenant template 1, the tenant template 3 and the tenant template 4.

[0074] Step ③, the processor 302 stores the target tenant template to the memory 303.

[0075] Specifically, the processor 302 can store the correspondence between the identification of the target tenant template and the metadata of the application to the memory 303, wherein the correspondence between the identification of the target tenant template and the metadata of the application is used to indicate which metadata of the application is contained in the target tenant template. When the target tenant template includes instance data, the processor 302 also stores the correspondence between the identification of the target tenant template and the instance data to the memory 303, wherein the correspondence between the identification of the target tenant template and the instance data is used to indicate which instance data is contained in the target tenant template.

[0076] Step 103, the processor 302 generates the code of the application according to the metadata of the application.

[0077] The code library is pre-stored in the memory 303, and the code library includes a plurality of code templates and the identification of the function module corresponding to each code template. Therefore, the processor 302 can select one or more code templates from the code library according to the identification of the function module in the metadata of the application, wherein the selected code template is the code template matching the identification, and the code of the application includes the above-mentioned selected code template from the code library. In a specific implementation, the processor 302 can determine whether there is a matching code template by calculating the similarity of the identification of the function module and the identification of the function module corresponding to the code template, and the specific implementation process can be referred to the matching process of the identification m and the identification n in the above-mentioned step 102, which will not be described here.

[0078] Considering that in actual application there may be a case that the identification of a function module in the application does not match the identification of the function module corresponding to all code templates in the code library, for this purpose, the communication interface 304 also provides a code editing interface, which can be implemented through API or GUI. For the function module whose identification does not match, the user can write the code corresponding to the function module through the interface. Then, the code of the application can include the above-mentioned selected code template from the code library and the code written by the user.

[0079] It should be noted that the present application does not limit the execution order of step 102 and step 103, that is, the processor 302 can execute step 102 first and then execute step 103, or execute step 103 first and then execute step 102, or execute step 102 and step 103 in parallel.

[0080] Step 104, the processor 302 provides a plurality of tenant templates of the application.

[0081] Specifically, the processor 302 instructs the communication interface 304 to display description information of multiple tenant templates of the application. The communication interface 304 can provide a tenant template display page, through which it can display description information of multiple tenant templates of the application. The description information of the tenant templates can be configured by the user and may include information such as the tenant template's identifier, creation time, and the business requirements that the tenant template can meet, helping tenants understand the tenant template.

[0082] For ease of understanding, the following will be based on the above. Figure 4 Taking the described tenant template as an example, the communication interface 304 can be accessed through... Figure 5 The page shown provides multiple tenant templates for the application: such as Figure 5 As shown, the tenant template display page displays descriptions for tenant template 1, tenant template 2, tenant template 3, and tenant template 4. Specifically, the description for tenant template 1 is: "This tenant template is named Tenant Template 1, and it provides basic functionality." The description for tenant template 2 is: "This tenant template is named Tenant Template 2, and it provides basic functionality and value-added functionality 1." The description for tenant template 3 is: "This tenant template is named Tenant Template 3, and it provides basic functionality and value-added functionality 2." The description for tenant template 4 is: "This tenant template is named Tenant Template 4, and it provides basic functionality, value-added functionality 1, and value-added functionality 2."

[0083] Step 105: Client 200 sends a lease request to application management system 300. Correspondingly, communication interface 304 in application management system 300 receives the lease request.

[0084] Specifically, client 200 can remotely access application management system 300 via communication interface 304. Then, the tenant can register an account on application management system 300 through client 100 and log in using their account and password. After successful login, the tenant can view multiple tenant templates for the application through client 200 and select the required template based on actual business needs. Correspondingly, client 200 generates a lease request based on the tenant's selection and sends the request to application management system 300. The lease request includes the identifier of the tenant template specified by the tenant and the tenant's identity information, which may include the tenant's account, password, and other information that can prove the tenant's identity.

[0085] Step 106: Processor 302 performs initialization processing on the metadata and instance data in the tenant template specified by the tenant according to the lease request.

[0086] Specifically, the processor 302 obtains the identity information of the tenant and the identification of the tenant template specified by the tenant by parsing the lease request, and then creates a tenant ID and a tenant space associated with the tenant ID according to the identity information of the tenant, wherein the tenant space is used to store the relevant data of the tenant, and determines the metadata and instance data in the tenant template according to the identification of the tenant template specified by the tenant. Subsequently, the processor 302 executes the code of the application according to the metadata and instance data in the above-mentioned specified tenant template to obtain initialization data, and then stores the initialization data to the tenant space.

[0087] In an implementation manner, the processor 302 can determine the metadata and instance data in the tenant template specified by the tenant according to the identification of the tenant template in the following manner: the memory 303 stores a first correspondence relationship between the identification of the tenant template and the metadata of the application, and a second correspondence relationship between the identification of the tenant template and the instance data, wherein the first correspondence relationship is used to indicate which metadata are included in the tenant template, and the second correspondence relationship is used to indicate which instance data are included in the tenant template. Therefore, the application management system 300 can determine the metadata in the above-mentioned specified tenant template according to the first correspondence relationship, and determine the instance data in the above-mentioned specified tenant template according to the second correspondence relationship.

[0088] In the method described in the above steps 101 to 106, the application management system 300 can drive the plurality of tenant templates of the application based on the metadata, and provide the plurality of tenant templates of the application to the tenant, so that the tenant can select a suitable tenant template to directly lease according to the business demand of the tenant, the whole leasing process is time-saving and convenient to operate, and the experience of the tenant is improved.

[0089] The above describes the application management method provided by the present application. Figures 1 to 5 The application management method provided by the present application is described in detail. It should be understood that, Figure 1 The structure of the application management system 300 provided by the present application is only exemplarily shown, and the application management system 300 can also have other structures.

[0090] Figure 6 Taking the application management system 300 implemented by the computing cluster composed of a plurality of computing devices as an example, another structure of the application management system 300 provided by the present application is exemplarily shown. As shown in Figure 6 The application management system 300 includes a plurality of computing devices 400, and each computing device 400 includes a bus 401, a processor 402, a memory 403 and a communication interface 404, wherein the processor 402, the memory 403 and the communication interface 404 communicate through the bus 401. It should be understood that the number of the processor 402 and the memory 403 in the computing device 400 is not limited by the present application, and for the sake of simplicity, Figure 6 Taking one processor 402 and one memory 403 as an example for description.

[0091] Bus 401 can be a PCI bus or an EISA bus, a UB, a CXL, a CCIX, or the like. For ease of representation, Figure 6 Only one line is used to represent the bus 401 in FIG. 4, but this does not mean the computing device 400 has only one bus or only one type of bus. The bus 401 can include pathways to transfer information between the various components of the computing device 400 (e.g., the processor 402, the memory 403, and the communication interface 404).

[0092] The processor 402 can include any one or more of a CPU, an ASIC, a PLD.

[0093] The memory 403 can include a volatile memory and can also include a non-volatile memory. The memory 403 can also be implemented by an SCM, a PCM, or other types of storage media. It is worth noting that the same type of storage media can be configured to implement the memory 403 function in the computing device 400, or two or more types of storage media can be configured to implement the memory 403 function, which is not limited in the present application.

[0094] The memory 403 stores executable program code. The processor 402 executes the code in the memory 403 to perform Figure 3 part of the operation steps performed by the processor 302. That is, the memory 403 stores part of the instructions for performing the application management method described above. In an implementation manner, the memory 403 of one or more computing devices 400 in the application management system 300 can store the same part of the instructions for performing the application management method described above, or can store different part of the instructions for performing the application management method described above. The combination of one or more computing devices 400 in the application management system 300 can collectively perform the application management method described above.

[0095] The communication interface 404 uses a transceiver module such as but not limited to a network interface card, a transceiver, and the like to realize the communication between the computing device 400 and other devices or communication networks.

[0096] In an implementation manner, the plurality of computing devices 400 in the application management system 300 can be connected through a network, which can be a wide area network or a local area network, etc. Figure 7 A possible implementation manner is shown. As Figure 7As shown, the computing device 400A and the computing device 400B are connected through a network. Specifically, the computing device 400A and the computing device 400B are connected to the network through the communication interfaces. In this implementation, the memory 403 in the computing device 400A stores instructions for performing the steps 101-105, and the memory 403 in the computing device 400B stores instructions for performing the step 106.

[0097] Figure 7 The connection between the computing device cluster as shown can be that the application to be run will require storing a large amount of data and require fast running efficiency, and therefore the relevant steps of running the application are considered to be executed by the computing device 400B. It should be understood that, Figure 7 The functions of the computing device 400A in the system 100 can also be completed by multiple computing devices 400, and similarly, the functions of the computing device 400B can also be completed by multiple computing devices 400.

[0098] Referring to Figure 8 , Figure 8 A structure diagram of another application management system 300 provided by the present application is shown. As shown in Figure 8 The application management system 300 includes an acquisition module 501, a tenant template configuration module 502, a code generation module 503, a display module 504, a running module 505, and a storage module 506.

[0099] The acquisition module 501 is used to perform the step 101, the step 102 of receiving the configuration information input by the user, and the step 105 of receiving the lease request. The tenant template configuration module 502 is used to perform the step 102 of configuring the multiple tenant templates of the application according to the configuration information input by the user. The code generation module 503 is used to perform the step 103. The display module 504 is used to perform the step 104. The running module 505 is used to perform the step 106. The storage module 506 is used to store the metadata of the application, the first relationship, the second relationship, and the code of the application.

[0100] The acquisition module 501, the tenant template configuration module 502, the code generation module 503, the display module 504, the running module 505, and the storage module 506 can be implemented by software or by hardware. Exemplarily, the implementation of the tenant template configuration module 502 is introduced. Similarly, the implementation of the acquisition module 501, the code generation module 503, the display module 504, the running module 505, and the storage module 506 can refer to the implementation of the tenant template configuration module 502.

[0101] As an example of a software functional unit, the tenant template configuration module 502 can include code running on a compute instance. The compute instance can include at least one of a physical host (computing device), a virtual machine, a container. Further, the compute instance can be one or more. For example, the tenant template configuration module 502 can include code running on multiple hosts / virtual machines / containers. It is noted that the multiple hosts / virtual machines / containers running the code can be distributed in the same region, or in different regions. Further, the multiple hosts / virtual machines / containers running the code can be distributed in the same availability zone (AZ), or in different AZs, each of which includes one data center or multiple data centers in close geographical proximity. Typically, a region can include multiple AZs.

[0102] Similarly, the multiple hosts / virtual machines / containers running the code can be distributed in the same virtual private cloud (VPC), or in multiple VPCs. Typically, a VPC is set up within a region, and a communication gateway is set up in each VPC for cross-region communication between two VPCs in the same region or between VPCs in different regions, and the interconnection between VPCs is achieved through the communication gateway.

[0103] As an example of a hardware functional unit, the tenant template configuration module 502 can include at least one computing device, such as a server, etc. Alternatively, the tenant template configuration module 502 can be a device implemented using a CPU, ASIC, or PLD, etc.

[0104] The multiple computing devices included in the tenant template configuration module 502 can be distributed in the same region, or in different regions. The multiple computing devices included in the tenant template configuration module 502 can be distributed in the same AZ, or in different AZs. Similarly, the multiple computing devices included in the tenant template configuration module 502 can be distributed in the same VPC, or in multiple VPCs. The multiple computing devices included in the tenant template configuration module 502 can be any combination of servers, ASICs, PLDs, CPLDs, FPGAs, GALs, DPUs, NPUs, SoCs, offload cards, acceleration cards, etc.

[0105] It should be noted that in other embodiments, the obtaining module 501 can be configured to perform any of the steps of the application management method described above, the tenant template configuration module 502 can be configured to perform any of the steps of the application management method described above, the code generation module 503 can be configured to perform any of the steps of the application management method described above, the display module 504 can be configured to perform any of the steps of the application management method described above, the running module 505 can be configured to perform any of the steps of the application management method described above, and the storage module 506 can be configured to perform any of the steps of the application management method described above. The steps to be implemented by the obtaining module 501, the code generation module 503, the display module 504, the running module 505, and the storage module 506 can be specified according to actual needs, and the entire function of the application management system 300 can be implemented by the obtaining module 501, the code generation module 503, the display module 504, the running module 505, and the storage module 506 respectively implementing different steps of the application management method described above.

[0106] The present application also provides a computer program product containing instructions. The computer program product can be a software or program product containing instructions, which can be run on a computing device or stored in any available medium. When the computer program product is run on the computing device, the computing device is caused to perform the application management method described above.

[0107] The present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by a computing device or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state disk), etc. The computer-readable storage medium includes instructions that instruct the computing device to perform the application management method described above.

[0108] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, and not to limit them. Although the present application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that they can still modify the technical solutions recorded in the foregoing embodiments, or make equivalent replacements to some technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the protection scope of the technical solutions of the embodiments of the present application.

Claims

1. An application management method, applied to an application management system, characterized in that, The method includes: Obtain the application's metadata, which describes the application's functionality and the resources required to run the application; Configure multiple tenant templates for the application based on the application's metadata. Each tenant template corresponds to at least one business requirement, and each tenant template includes some or all of the application's metadata. Provide the aforementioned multiple tenant templates.

2. The method according to claim 1, characterized in that, The plurality of tenant templates includes a first tenant template; The step of configuring multiple tenant templates for the application based on the application's metadata includes: Based on the user's configuration information, the metadata specified in the configuration information is selected from the application's metadata, and the first tenant template includes the selected metadata.

3. The method according to claim 2, characterized in that, The method further includes: Obtain the tenant's rental request, the rental request including the identifier of the first tenant template specified by the tenant; The metadata in the first tenant template is initialized according to the rental request.

4. The method according to claim 2 or 3, characterized in that, The application's metadata includes one or more of the following: Metadata of the application programming interface (API) in the application, wherein the API is used to access entities in the application; or, Metadata of the pages in the application; or, Metadata of controls in the application; or, Metadata of the functional modules in the application; or Metadata of the menu in the application; or, Metadata of the resources required to run the application.

5. The method according to claim 4, characterized in that, The first tenant template corresponds to the first business requirement, and the first tenant template includes one or more of the following: Metadata of the functional modules required by the first business requirement; or, The metadata of the resources required by the first business requirement; or, The metadata of the menu required by the first business requirement; or, The instance data required by the first business requirement.

6. The method according to any one of claims 2 to 5, characterized in that, The plurality of tenant templates also includes a second tenant template. The first tenant template is used to implement the first function of the application, and the second tenant template is used to implement the first function and the second function of the application. The second function depends on the first function for implementation.

7. An application management system, characterized in that, The system is implemented through a single computing device or a cluster of computing devices consisting of multiple computing devices; The system includes a processor and a memory, the processor being configured to execute instructions stored in the memory, causing the application management system to perform the operational steps of the method as described in any one of claims 1 to 6.

8. A computer program product containing instructions, characterized in that, When the instruction is executed by the computing device, the computing device performs the operational steps of the method as described in any one of claims 1 to 6.