Application management method and system

By configuring multiple tenant templates through the application management system, the problem of low tenant activation efficiency was solved, and the effect of quickly selecting and initializing applications was achieved.

WO2025246999A1PCT designated stage Publication Date: 2025-12-04HUAWEI TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/095814
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-05-25
Filing Date
2025-05-19
Publication Date
2025-12-04

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

An application management system is provided that can configure multiple tenant templates by obtaining application metadata. Each tenant template corresponds to different business needs, and tenants can choose the appropriate template to start renting directly.

Benefits of technology

It improves the efficiency of tenant registration, allowing tenants to quickly select a suitable tenant template to initialize the application, thus simplifying the registration process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025095814_04122025_PF_FP_ABST
    Figure CN2025095814_04122025_PF_FP_ABST
Patent Text Reader

Abstract

The present application provides an application management method and system, capable of improving the tenant provisioning efficiency. The application management method can be applied to an application management system. In specific implementations, the application management system acquires metadata of an application, wherein the metadata of the application is used for describing a function of the application and a resource required by the application. Then, on the basis of the metadata of the application, the application management system configures a plurality of tenant templates of the application, and provides the plurality of tenant templates, wherein each tenant template corresponds to at least one service demand, and each tenant template comprises some or all of the metadata of the application.
Need to check novelty before this filing date? Find Prior Art

Description

An application management method and system

[0001] This application claims priority to Chinese Patent Application No. 202410658732.3, filed on May 25, 2024, entitled “An Application Management Method and System”, the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of Software as a Service (SaaS), and more particularly to an application management method and system. Background Technology

[0003] SaaS is a software application model that delivers software services over the internet. In this model, the application provider offers application hosting services, allowing tenants to purchase and use the applications offered by the provider online. However, in practice, different tenants have different business needs. Therefore, before a tenant can subscribe, the tenant administrator usually needs to customize the application provided by the application provider according to the tenant's business requirements, which can affect the efficiency of the subscription process. Summary of the Invention

[0004] This application provides an application management method and system that can improve the efficiency of tenant registration.

[0005] Firstly, this application provides an application management method that can be applied to an application management system. Specifically, the application management system obtains the metadata of an application, which describes the application's functions and required resources. Then, the application management system configures multiple tenant templates for the application based on the application's metadata and provides these multiple tenant templates, wherein each tenant template corresponds to at least one business requirement, and each tenant template includes some or all of the application's metadata.

[0006] In the technical solution provided in this application, the application management system can pre-configure multiple tenant templates and provide the tenants with the above-mentioned configured multiple tenant templates, so that the tenants can select the appropriate tenant template to start renting directly according to their actual needs, thereby improving the efficiency of tenants starting renting.

[0007] In one implementation, multiple tenant templates include a first tenant template. The application management system configures multiple tenant templates based on the application's metadata by selecting metadata specified in the user's configuration information from the application's metadata. The first tenant template includes the selected metadata. This enables flexible configuration of tenant templates.

[0008] In one implementation, the application management system also obtains the tenant's lease opening request, which includes the identifier of the first tenant template specified by the tenant. Then, it performs initialization processing on the metadata in the first tenant template according to the lease opening request, thereby completing the tenant lease opening.

[0009] In one implementation, the application's metadata includes one or more of the following: metadata of APIs in the application, wherein the APIs in the application are used to access entities in the application; metadata of pages in the application; metadata of controls in the application; metadata of functional modules in the application; metadata of menus in the application; and metadata of resources required to run the application.

[0010] In one implementation, 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; metadata of the resources required by the first business requirement; metadata of the menu required by the first business requirement; and instance data required by the first business requirement.

[0011] In one implementation, the multiple tenant templates also include 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 both the first function and the second function of the application, wherein the second function depends on the implementation of the first function.

[0012] Secondly, this application provides an application management system. The system includes an acquisition module, a tenant template configuration module, and a display module. The acquisition module acquires the application's metadata, which describes the application's functions and required resources. The tenant template configuration module configures multiple tenant templates for the application based on its metadata. Each tenant template corresponds to at least one business requirement, and each tenant template includes some or all of the application's metadata. The display module provides the aforementioned multiple tenant templates.

[0013] In one implementation, multiple tenant templates include a first tenant template. The tenant template configuration module is used to select metadata specified by the configuration information from the application's metadata based on the user's configuration information, and the first tenant template includes the selected metadata.

[0014] In one implementation, the acquisition module is further configured to acquire a tenant's lease request, which includes an identifier of a first tenant template specified by the tenant. The application management system also includes an execution module, which performs initialization processing on the metadata in the first tenant template based on the lease request.

[0015] In one implementation, the application's metadata includes one or more of the following: metadata of APIs in the application, wherein the APIs in the application are used to access entities in the application; metadata of pages in the application; metadata of controls in the application; metadata of functional modules in the application; metadata of menus in the application; and metadata of resources required to run the application.

[0016] In one implementation, 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; metadata of the resources required by the first business requirement; metadata of the menu required by the first business requirement; and instance data required by the first business requirement.

[0017] In one implementation, the multiple tenant templates also include 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 both the first function and the second function of the application, wherein the second function depends on the implementation of the first function.

[0018] Thirdly, this application provides another application management system. This system is implemented through a single computing device or a cluster of computing devices comprising multiple computing devices. The system includes a processor and a memory, wherein the processor executes instructions stored in the memory to cause the computing device to perform some or all of the methods described in the first aspect and any of its implementations.

[0019] Fourthly, this application provides a computer program product containing instructions. This computer program product may be a software or program product containing instructions that can run on a computing device or be stored on any usable medium. When the computer program product is run on a computing device, it causes the computing device to perform some or all of the methods described in the first aspect and any implementation thereof.

[0020] Fifthly, this application provides a computer-readable storage medium. The computer storage medium includes computer program instructions that, when executed by a computing device, cause the computing device to perform some or all of the methods described in the first aspect and any implementation thereof. Attached Figure Description

[0021] Figure 1 is a schematic diagram of a tenant opening a lease according to this application;

[0022] Figure 2 is a schematic diagram of an application scenario provided in this application;

[0023] Figure 3 is a flowchart illustrating an application management method provided in this application;

[0024] Figure 4 is a schematic diagram of a tenant template planning page provided in this application;

[0025] Figure 5 is a structural diagram of a tenant template display page provided in this application;

[0026] Figure 6 is a schematic diagram of the structure of an application management system provided in this application;

[0027] Figure 7 is a schematic diagram of another application management system provided in this application;

[0028] Figure 8 is a schematic diagram of another application management system provided in this application. Detailed Implementation

[0029] Tenant registration refers to the process from a tenant purchasing an application to its initialization. Here, a tenant refers to a user of the application, as well as a series of data created and used by that user, such as accounts, user data, and the computing, network, and storage resources used.

[0030] To address the issue of low tenant activation efficiency, this application provides an application management method. This method can be applied to an application management system. The application management system can configure multiple tenant templates for an application based on its metadata. Each tenant template corresponds to at least one business requirement and includes some or all of the application's metadata to implement some or all of the application's functionalities. The application management system also displays these configured tenant templates to the tenant, allowing the tenant to select the appropriate template to activate the application directly based on its business needs. Therefore, the method provided in this application can improve the efficiency of tenant activation.

[0031] The technical solution provided in this application will now be described with reference to the accompanying drawings.

[0032] Referring to Figure 1, Figure 1 illustrates a tenant registration scenario to which this application applies. As shown in Figure 1, the scenario includes client 100, client 200, and application management system 300, wherein application management system 300 is connected to client 100 and client 200 via a network, which can be a wide area network or a local area network.

[0033] Both client 100 and client 200 can be software or applications deployed on terminal devices, such as browsers. These terminal devices include, for example, desktop computers, laptops, tablets, smartphones, and wearable devices.

[0034] The application management system 300 can be implemented using a single computing device or a cluster of computing devices. The computing device can be a server (e.g., a central server, an edge server, or a local server in a local data center), or a terminal device such as a desktop computer, laptop computer, or smartphone. Figure 1 illustrates the structure of an application management system 300 using a single computing device as an example. As shown in Figure 1, 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 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 describes an example using one processor 302 and one memory 303.

[0035] 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 categorized as address buses, data buses, control buses, etc. For ease of representation, only one line is used in Figure 1, but this does not mean that the application management system 300 has only one bus or one type of bus. Bus 301 can include pathways for transmitting information between various components in the application management system 300 (e.g., processor 302, memory 303, and communication interface 304).

[0036] The processor 302 may include a central processing unit (CPU), an application-specific integrated circuit (ASIC), or a programmable logic device (PLD). The PLD may 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 accelerator card, or any combination thereof.

[0037] Memory 303 may include volatile memory, such as random access memory (RAM). Memory 303 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD). Furthermore, memory 303 may also be implemented using storage class memory (SCM), phase change memory (PCM), or other types of storage media.

[0038] It is worth noting that the application management system 300 can be configured with the same type of storage media to realize the function of the memory 303, or it can be configured with two or more types of storage media to realize the function of the memory 303. This application does not limit this.

[0039] The memory 303 stores executable program code. The processor 302 executes the program code in the memory 303 to implement the application management method provided in this application. The memory 303 also stores data generated during the execution of the program code by the processor 302.

[0040] The communication interface 304 uses transceiver modules such as, but not limited to, network interface cards and transceivers 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 client 100 and client 200 through the communication interface 304.

[0041] In the scenario shown in Figure 1, a user (such as an application developer) can configure application metadata on the application management system 300 via client 100 and communication interface 304. After receiving the user-configured application metadata, the application management system 300 stores the metadata in memory 303. Then, the processor 302 of the application management system 300 can retrieve the application metadata from memory 303, configure multiple tenant templates for the application based on the metadata and business requirements, and store the correspondence between the application metadata and the tenant templates in memory 303. Each tenant template corresponds to at least one business requirement, and a tenant template may include some or all of the application's metadata. The processor 302 can also generate application code based on the application metadata and store the application code in memory 303. The processor 302 can also run the application based on the application metadata and application code. When a tenant (such as an enterprise) wants to use the application, the tenant can send a rental request to the application management system 300 via client 200 and communication interface 304. The processor 302 of the application management system 300 can perform initialization processing on the metadata in the tenant template specified by the tenant according to the rental request, thereby realizing the rental of the tenant.

[0042] In one implementation, the functions provided by the application management system 300 can be offered to application providers as cloud services. The following example illustrates this using Figure 2: As shown in Figure 2, the application management system 300 is deployed in a data center and provides cloud services based on the basic resources provided by the data center (including computing resources, storage resources, network resources, etc.). Application providers can remotely access the cloud management platform through a local client (e.g., a browser), register an account on the cloud management platform, log in with their account, and then purchase services provided by the application management system 300. After successful purchase, the application provider can complete application development (including configuring multiple tenant templates for the application) and deployment on the application management system 300. The application management system 300 can also provide multiple tenant templates of the application to other tenants through the cloud management platform, enabling other tenants to purchase and use the applications provided by the application provider.

[0043] Next, the functions of the application management system 300 will be described in more detail, referring to the application management method shown in Figure 3.

[0044] Step 101: Client 100 sends the metadata of the user-configured application to application management system 300. Correspondingly, communication interface 304 in application management system 300 receives the metadata of the user-configured application.

[0045] Specifically, communication interface 304 can provide an application programming interface (API) or a graphical user interface (GUI). Users can input application metadata through the API or GUI, and correspondingly, client 100 will send the user-configured application metadata to communication interface 304. Here, "user" refers to the personnel involved in developing the application. The application metadata describes the application's functionality and the resources required to run it.

[0046] In one implementation, the memory 303 pre-stores metadata configuration rules. When a user wants to develop an application based on the application management system 300, the processor 302 can instruct the communication interface 304 to display the metadata configuration rules to the user, so that the user can configure the application's metadata on the application management system 300 based on the rules.

[0047] Metadata configuration rules are derived from settings based on multiple application design dimensions, including application functionality, resource configuration, and user experience. These rules instruct users to configure application metadata in the following ways: which functional modules the application should include, which modules have relationships, which pages and entities (i.e., data tables) each module should include, which pages have relationships, which controls each page should include, which pages should have menus, which APIs should entities be called by, and what resources (including computing, storage, and network resources) are required to run each functional module.

[0048] Based on the above metadata configuration rules, the metadata configured by the user for the application can include one or more of the following categories:

[0049] (1) API metadata

[0050] API metadata describes the APIs within an application. An application's API is an interface used to access entities (i.e., data tables) within the application. Through APIs, various data operations can be performed on these entities, such as data querying, data modification, data insertion, and deletion. API metadata can specifically include the API name, API identifier, API parameters, API authentication and authorization mechanisms, API response status codes, API version information, and other API-related information.

[0051] (2) Page metadata

[0052] Page metadata describes the pages within an application. A page in an application refers to the medium through which the user interacts with the application. Specifically, page metadata can include information related to the page, such as its name, identifier, components, relationships between components, and relationships between different pages. Components within a page are modules or parts that make up the page, used to display specific content or implement specific functions. These can be combinations of Hypertext Markup Language (HTML) elements, Cascading Style Sheets (CSS), and JavaScript code. Different components have relationships; for example, one component may require data or functionality from another component to function correctly and be displayed. Similarly, different pages also have relationships; for example, one page may require data or functionality from another page to function correctly and be displayed.

[0053] (3) Metadata of the control

[0054] Metadata for controls describes the controls on a page. Controls on a page refer to components that interact with the user or display information, such as buttons, input boxes, checkboxes, and dropdown lists. Specifically, control metadata can include the control's name, its identifier, and its association with the page (i.e., which pages include the control), among other control-related information.

[0055] (4) Metadata of functional modules

[0056] Metadata for functional modules describes the functional modules within an application. A functional module is a module derived from the application's functionalities, responsible for implementing one of its functions. Functional modules can be categorized into two types: basic functional modules and value-added functional modules. Basic functional modules provide fundamental functions—the essential capabilities the application must possess. Value-added functional modules provide additional features built upon the basic functionalities. For example, in artificial intelligence (AI) applications, a basic function might be AI inference capabilities, while a value-added feature could be acceleration features to speed up AI inference. Similarly, in data governance applications, a basic function might be data storage, while value-added features could include data analysis and visualization capabilities tailored to different business needs, better supporting enterprise decision-making.

[0057] The metadata of a functional module can specifically include the name of the functional module, the identifier of the functional module, the entities in the functional module, the relationship between the entities and APIs (i.e., which APIs the entities can access), the relationship between the functional module and pages (i.e., which pages the functional module includes), the relationship between different functional modules, and other information related to the functional module.

[0058] (5) Menu metadata

[0059] Menu metadata describes the page's menu. A page's menu is a way for users to access a page; that is, users can open related pages through the page's menu. Menu metadata can include menu-related information such as the menu's name, identifier, style, and its relationship to the page.

[0060] (6) Metadata of resources required to run the application

[0061] Metadata for the resources required to run an application describes the resources needed to run the application, such as storage resources, computing resources, and network resources. Specifically, the metadata for storage resources can include the quantity of storage resources, the type of each storage resource (e.g., database, object storage), the capacity of each storage resource, the identifier of each storage resource, and the association between the storage resource and functional modules (i.e., which functional module uses the storage resource). Similarly, the metadata for computing resources can include the quantity of computing resources, the type of each computing resource (e.g., virtual machine, container), the identifier of each computing resource, and the association between the computing resource and functional modules (i.e., which functional module uses the computing resource). The metadata for network resources can include the quantity of network resources, the type of each network resource, the identifier of each network resource, and the association between the network resource and functional modules (i.e., which functional module uses the network resource).

[0062] Step 102: Processor 302 configures multiple tenant templates for the application based on the application's metadata.

[0063] A tenant template is a set of functional and resource definitions planned according to business requirements, including those required by the tenant. One tenant template corresponds to one business requirement, and one tenant template includes some or all of the application's metadata.

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

[0065] Step 1: Communication interface 304 receives the user's configuration information.

[0066] Specifically, communication interface 304 provides a tenant template configuration page, which displays descriptive information about various application metadata, such as identifiers of functional modules, menus, and resources. Users can input configuration information on this page, and client 100 will send the user's configuration information to communication interface 304, which in turn can receive the user's configuration information. The configuration information input by the user may include the identifier of the target functional module, and optionally, one or more identifiers of the target menu and target resources. The target functional module, target menu, target resource, and target instance data are determined by the user based on target business requirements.

[0067] Optionally, the configuration information input by the user may also include instance data, the relationships between different instance data, and the relationships between instance data and user-specified metadata. Instance data refers to basic data that the tenant can directly use after renting, such as user role data, application lifecycle management data, and icon data. To facilitate understanding of instance data, a specific example is provided below: Assume the configuration information input by the user includes user role data, icon data, the relationships between user role data and icon data, and the relationships between menu metadata and icon data. Then, when the tenant selects the target tenant template to rent, the processor 302 can automatically create the user roles and icons required by the tenant. User roles can be displayed through their associated icons, and menus can also be displayed through their associated icons.

[0068] Step 2: The processor 302 configures the target tenant template according to the user's configuration information.

[0069] Specifically, processor 302 selects the metadata specified in the configuration information from the application's metadata based on the user's configuration information. The metadata specified in the configuration information is the metadata required by the target business requirements, and the target tenant template includes the selected metadata. In addition, when the user-input configuration information includes instance data, relationships between different instance data, and relationships between instance data and user-specified metadata, the target tenant template also includes instance data, relationships between different instance data, and relationships between instance data and user-specified metadata. Therefore, the target tenant template may include one or more of the following: metadata of functional modules required by the target business requirements, metadata of resources required by the target business requirements, metadata of menus required by the target business requirements, and instance data required by the target business requirements.

[0070] In the above process, the processor 302 can select the metadata required by the target business requirement from the application's metadata in the following way: The processor 302 determines the metadata required by the target business requirement based on the matching relationship between the identifier in the configuration information and the identifier in the application's metadata. In a specific implementation, taking an identifier in the configuration information (assumed to be identifier m) and an identifier in the application's metadata (assumed to be identifier n) as an example, the processor 302 can determine the matching relationship between identifier m and identifier n by calculating the similarity between them. When the matching relationship is greater than a threshold, identifier m and identifier n are determined to match; otherwise, identifier m and identifier n are determined not to match.

[0071] To facilitate understanding, the following example illustrates the configuration process for multiple tenant templates in an application:

[0072] Assume that the application includes functional module 1, functional module 2 and functional module 3, where functional module 1 is used to implement the basic functions of the application, functional module 2 is used to implement the value-added function 1 of the application, and functional module 3 is used to implement the value-added function 2 of the application.

[0073] Considering that there may be four types of business requirements in practical applications, where business requirement 1 requires only basic functions, business requirement 2 requires both basic functions and value-added function 1, business requirement 3 requires both basic functions and value-added function 2, and business requirement 4 requires basic functions, value-added function 1, and value-added function 2, four tenant templates can be configured. Tenant template 1 corresponds to business requirement 1, tenant template 2 corresponds to business requirement 2, tenant template 3 corresponds to business requirement 3, and tenant template 4 corresponds to business requirement 4.

[0074] Referring to Figure 4, which illustrates the configuration process for tenant template 2, when the user clicks the "Create Tenant Template" option, the tenant template configuration page displays a card for tenant template 2. This card includes the identifier of tenant template 2 (shown as ID1 in the figure) and the creation time (shown as Time1 in the figure). When the user clicks the "Edit" option, the right side of the tenant template configuration page displays descriptive information about various application metadata, such as the identifiers of functional module 1, functional module 2, and functional module 3. Since business requirement 2 requires both basic functionality and value-added functionality 1, the user can check the "identifier of functional module 1" and the "identifier of functional module 2." Similarly, the user can check the required metadata for menus and storage resources on the tenant template configuration page, and can also configure the required instance data. Afterward, the user clicks the "Save" option, thus completing the configuration of tenant template 2. Following the above process, the user can also complete the configuration of tenant template 1, tenant template 3, and tenant template 4.

[0075] Step 3: The processor 302 stores the target tenant template into the memory 303.

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

[0077] Step 103: Processor 302 generates application code based on application metadata.

[0078] The memory 303 pre-stores a code library, which includes multiple code templates and identifiers of functional modules corresponding to each code template. Therefore, the processor 302 can select one or more code templates from the code library based on the identifiers of functional modules in the application's metadata. The selected code templates are those that match the identifiers, and the application's code includes the code templates selected from the code library. Specifically, the processor 302 can determine whether a matching code template exists by calculating the similarity between the identifier of the functional module and the identifier of the functional module corresponding to the code template. The specific implementation process can be found in step 102 above regarding the matching process of identifiers m and n, and will not be described further here.

[0079] Considering that in practical applications, there may be situations where the identifier of a certain functional module in the application does not match the identifiers of the corresponding functional modules in all code templates in the code library, communication interface 304 also provides a code editing interface, which can be implemented through API or GUI. For functional modules whose identifiers do not match, users can write the corresponding code for that functional module through this interface. Therefore, the application's code can include the code templates selected from the code library mentioned above, as well as the code written by the user.

[0080] It should be noted that this application does not limit the execution order of steps 102 and 103. That is, the processor 302 may execute step 102 first and then step 103, or it may execute step 103 first and then step 102, or it may execute steps 102 and 103 in parallel.

[0081] Step 104: Processor 302 provides multiple tenant templates for the application.

[0082] 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.

[0083] For ease of understanding, the following example uses the tenant template described in Figure 4. The communication interface 304 can provide multiple tenant templates for the application through the page shown in Figure 5. As shown in Figure 5, the tenant template display page displays the description information of tenant template 1, tenant template 2, tenant template 3, and tenant template 4. Specifically, the description information for tenant template 1 is: the name of this tenant template is "Tenant Template 1," and this tenant template can implement basic functions; the description information for tenant template 2 is: the name of this tenant template is "Tenant Template 2," and this tenant template can implement basic functions and value-added function 1; the description information for tenant template 3 is: the name of this tenant template is "Tenant Template 3," and this tenant template can implement basic functions and value-added function 2; the description information for tenant template 4 is: the name of this tenant template is "Tenant Template 4," and this tenant template can implement basic functions, value-added function 1, and value-added function 2.

[0084] 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.

[0085] 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.

[0086] 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.

[0087] Specifically, processor 302 obtains the tenant's identity information and the identifier of the tenant template specified by the tenant by parsing the lease request. Then, it creates a tenant ID and a tenant space associated with the tenant ID based on the tenant's identity information. The tenant space is used to store the tenant's relevant data, and the processor determines the metadata and instance data in the tenant template based on the identifier of the tenant template specified by the tenant. Afterward, processor 302 executes the application code based on the metadata and instance data in the specified tenant template to obtain initialization data, and then stores the initialization data in the tenant space.

[0088] In one implementation, the processor 302 can determine the metadata and instance data in the tenant template based on the identifier of the tenant template specified by the tenant in the following manner: The memory 303 stores a first correspondence between the identifier of the tenant template and the metadata of the application, and a second correspondence between the identifier of the tenant template and the instance data, wherein the first correspondence indicates which metadata the tenant template includes, and the second correspondence indicates which instance data the tenant template includes. Therefore, the application management system 300 can determine the metadata in the specified tenant template based on the first correspondence and determine the instance data in the specified tenant template based on the second correspondence.

[0089] In the methods described in steps 101 to 106 above, the application management system 300 can configure multiple tenant templates of the application based on metadata and provide multiple tenant templates of the application to the tenants, so that the tenants can choose the appropriate tenant template to start renting directly according to their own business needs. The entire renting process is short and easy to operate, improving the tenants' experience.

[0090] The application management method provided in this application has been described in detail above with reference to Figures 1 to 5. It should be understood that Figure 1 is only an exemplary illustration of one structure of the application management system 300 provided in this application, and the application management system 300 may also have other structures.

[0091] Figure 6 illustrates another structure of the application management system 300 provided in this application, using an application management system 300 implemented through a computing cluster composed of multiple computing devices as an example. As shown in Figure 6, the application management system 300 includes multiple computing devices 400, each computing device 400 including a bus 401, a processor 402, a memory 403, and a communication interface 404, wherein the processor 402, memory 403, and communication interface 404 communicate with each other via the bus 401. It should be understood that this application does not limit the number of processors 402 and memory 403 in the computing devices 400; for simplicity, Figure 6 describes an example using one processor 402 and one memory 403.

[0092] Bus 401 can be a PCI bus, EISA bus, UB, CXL, CCIX, etc. For ease of illustration, it is represented by only one line in Figure 6, but this does not mean that the computing device 400 has only one bus or one type of bus. Bus 401 can include a path for transmitting information between various components of the computing device 400 (e.g., processor 402, memory 403, and communication interface 404).

[0093] Processor 402 may include any one or more of CPU, ASIC, and PLD.

[0094] The memory 403 may include volatile memory or non-volatile memory, and may be implemented using SCM, PCM, or other types of storage media. It is worth noting that the computing device 400 may be configured with the same type of storage media to implement the function of the memory 403, or it may be configured with two or more types of storage media to implement the function of the memory 403; this application does not limit this.

[0095] Memory 403 stores executable program code. Processor 402 executes the code in memory 403 to perform some of the operation steps performed by processor 302 in FIG. 3. That is, memory 403 stores some instructions for executing the above-described application management method. In one implementation, the memory 403 of one or more computing devices 400 in the application management system 300 may store the same partial instructions for executing the above-described application management method, or it may store different partial instructions for executing the above-described application management method. A combination of one or more computing devices 400 in the application management system 300 can jointly execute the above-described application management method.

[0096] The communication interface 404 uses transceiver modules such as, but not limited to, network interface cards and transceivers to enable communication between the computing device 400 and other devices or communication networks.

[0097] In one implementation, multiple computing devices 400 in the application management system 300 can be connected via a network, which can be a wide area network (WAN) or a local area network (LAN). Figure 7 illustrates one possible implementation. As shown in Figure 7, computing devices 400A and 400B are connected via a network. Specifically, they are connected to the network through communication interfaces in computing devices 400A and 400B. In this implementation, the memory 403 in computing device 400A stores instructions for executing steps 101 to 105, and the memory 403 in computing device 400B stores instructions for executing step 106.

[0098] The connection method between the computing device clusters shown in Figure 7 can be considered because the application operation will require storing a large amount of data and requires high operating efficiency. Therefore, the steps related to running the application are considered to be performed by computing device 400B. It should be understood that the function of computing device 400A in Figure 7 can also be performed by multiple computing devices 400, and similarly, the function of computing device 400B can also be performed by multiple computing devices 400.

[0099] Referring to Figure 8, Figure 8 shows a schematic diagram of the structure of another application management system 300 provided in this application. 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.

[0100] The acquisition module 501 is used to execute the steps 101, 102 (receiving configuration information input by the user), and 105 (receiving the rental request). The tenant template configuration module 502 is used to execute the steps 102 (configuring multiple tenant templates for the application based on the configuration information input by the user). The code generation module 503 is used to execute step 103. The display module 504 is used to execute step 104. The execution module 505 is used to execute step 106. The storage module 506 is used to store the application's metadata, first relationship, second relationship, and application code.

[0101] The acquisition module 501, tenant template configuration module 502, code generation module 503, display module 504, execution module 505, and storage module 506 can all be implemented in software or in hardware. For example, the implementation of the tenant template configuration module 502 will be described below. Similarly, the implementation of the acquisition module 501, code generation module 503, display module 504, execution module 505, and storage module 506 can refer to the implementation of the tenant template configuration module 502.

[0102] As an example of a software functional unit, the tenant template configuration module 502 may include code running on compute instances. A compute instance may include at least one of a physical host (compute device), a virtual machine, or a container. Further, the aforementioned compute instance may be one or more. For example, the tenant template configuration module 502 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed within the same region or in different regions. Further, the multiple hosts / virtual machines / containers used to run the code may be distributed within the same availability zone (AZ) or in different AZs, each AZ comprising one or more geographically proximate data centers. Typically, a region may include multiple AZs.

[0103] Similarly, multiple hosts / virtual machines / containers used to run this code can be distributed within the same Virtual Private Cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within a region. Communication between two VPCs within the same region, as well as between VPCs in different regions, requires a communication gateway to be set up within each VPC to enable interconnection between VPCs.

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

[0105] The tenant template configuration module 502 includes multiple computing devices that can be distributed within the same region or in different regions. Similarly, the tenant template configuration module 502 can be distributed within the same Availability Zone (AZ) or in different AZs. Likewise, the tenant template configuration module 502 can be distributed within the same VPC or across multiple VPCs. These computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, GALs, DPUs, NPUs, SoCs, offloading cards, and accelerator cards.

[0106] It should be noted that, in other embodiments, the acquisition module 501 can be used to execute any step in the above application management method, the tenant template configuration module 502 can be used to execute any step in the above application management method, the code generation module 503 can be used to execute any step in the above application management method, the display module 504 can be used to execute any step in the above application management method, the running module 505 can be used to execute any step in the above application management method, and the storage module 506 can be used to execute any step in the above application management method. The steps implemented by the acquisition module 501, code generation module 503, display module 504, running module 505, and storage module 506 can be specified according to actual needs. By implementing different steps in the above application management method through the acquisition module 501, code generation module 503, display module 504, running module 505, and storage module 506, all functions of the application management system 300 can be realized.

[0107] This application also provides a computer program product containing instructions. This computer program product may be a software or program product containing instructions capable of running on a computing device or stored on any available medium. When the computer program product runs on a computing device, it causes the computing device to perform the application management method described above.

[0108] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium capable of being stored by a computing device, or a data storage device such as a data center containing one or more available media. The aforementioned available media can be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., DVDs), or semiconductor media (e.g., solid-state drives). The computer-readable storage medium includes instructions that instruct the computing device to execute the application management method described above.

[0109] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit it. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of this 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.

Citation Information

Patent Citations

  • Function assembling and formulation method based on multi-tenant mode

    CN106201506A

  • SaaS multi-user service platform for time-sharing leasing

    CN109634717A

  • Master data engine based on multi-tenant SaaS application platform

    CN115510072A

  • Multi-tenant SaaS (Software as Service) system and method for randomly expanding service attributes by users

    CN117851400A

  • Updating data template changes using metadata

    US20220300486A1