Software servitization method, device and equipment
The software service platform configures cloud services under the multi-tenant deployment mode, which solves the problems of low efficiency of software SaaS transformation and data isolation design, and realizes efficient software service and tenant data security.
Patent Information
- Application Number
- CN202311744619.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-08-26
- Filing Date
- 2023-12-18
- Publication Date
- 2025-02-28
AI Technical Summary
In the prior art, the software SaaS transformation process is inefficient, time-consuming, and has difficulties in data isolation and application isolation design.
The target software and multi-tenant deployment mode are obtained through the software service platform, and the first cloud service is configured, including at least one functional software module, and the data and service request isolation in the multi-tenant deployment mode are supported.
The software service can be achieved without the software provider transforming the target software by itself, which improves the transformation efficiency and tenant experience, and enhances the security of tenant data.
Smart Images

Figure CN119544501A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of IT technology, and in particular to a method, apparatus and device for software service. Background Art
[0002] Software as a service (SaaS) can provide software services through the Internet. SaaS providers can deploy software uniformly on servers, and customers can order the required software services from SaaS providers through the Internet according to their actual work needs, and obtain the software services provided by SaaS providers through the Internet.
[0003] At present, many software companies still have traditional software (i.e. non-SaaS software). If traditional software is to be SaaS-ized (i.e. service-oriented, configuring the software as a cloud service), it is usually necessary to design the architecture of the traditional software as SaaS-ized according to the SaaS-ization model, thus completing the SaaS-ization of the traditional software. However, the current process of software SaaS-ization transformation takes a lot of time, making the transformation efficiency low. Summary of the invention
[0004] The present application provides a method, apparatus and device for software service, which can improve the efficiency of software service.
[0005] In a first aspect, the present application provides a method for software service, which may include:
[0006] The software service platform can obtain a software configuration instruction, which is used to instruct the acquisition of the target software. In addition, the software service platform can obtain a cloud service configuration instruction, which is used to instruct the configuration of the first cloud service according to the target software, the first cloud service includes at least one functional software module, and the cloud service configuration instruction also includes a multi-tenant deployment mode selection instruction, which is used to instruct the acquisition of the multi-tenant deployment mode, and the multi-tenant deployment mode is used to indicate the isolation method between multiple tenant data when the first cloud service provides services to multiple tenants, and the isolation method between multiple tenant data includes at least one of the following: physical isolation, logical isolation, and data sharing. Then, the software service platform can configure the first cloud service according to the cloud service configuration instruction, and the first cloud service is used to remotely provide the function of the target software to the tenant according to at least one functional software module, and the function of the target software includes at least one of the following: data processing function, data storage function, and the first cloud service also includes a tenant management module, and the tenant management module is used to allocate a first functional software module to the first tenant according to the request of the first tenant among the multiple tenants, and the first functional software module is used to provide the function of the target software to the first tenant, and the first functional software module allocated to the first tenant by the tenant management module satisfies the isolation method between multiple tenant data indicated by the multi-tenant deployment mode.
[0007] Based on the above technical solution, the software service platform can obtain the target software and the multi-tenant deployment mode, and configure the first cloud service according to the target software and the multi-tenant deployment mode, and the first cloud service includes at least one functional software module. When the functional software module is allocated to the tenant, the functional software module can provide the tenant with the function of the target software. In this way, the target software can be serviced without the software provider having to transform the target software by itself, thereby improving the efficiency of software service. In addition, the multi-tenant deployment mode is used to indicate the isolation method between multiple tenant data when the first cloud service provides services to multiple tenants. In this way, not only can the deployment mode of the target software service be increased, but also a rich selection can be provided for tenants, thereby improving the tenant's rental experience. In addition, the functional software module satisfies the isolation method between multiple tenant data indicated by the multi-tenant deployment mode, thereby ensuring the security of tenant data.
[0008] In conjunction with the first aspect, in a possible design method, the data may include: business data, and the multi-tenant deployment mode includes: a data multi-tenancy mode, and the data multi-tenancy mode is used to indicate the isolation method between the business data of multiple tenants when the first cloud service provides services to multiple tenants. The isolation method between the business data of multiple tenants indicated by the data multi-tenancy mode includes at least one of the following: database isolation, data architecture isolation, data table isolation, and business data sharing.
[0009] That is, the software service platform can configure the first cloud service according to the isolation method between the business data indicated by the data multi-tenancy mode to obtain the functional software module in the isolation method. In this way, it can not only improve the software provider's software transformation experience, but also provide tenants with rich choices.
[0010] In combination with the first aspect, in another possible design, the data further includes: service request, and the multi-tenant deployment mode further includes: application multi-tenancy mode, and the application multi-tenancy mode is used to indicate the isolation method between the service requests of multiple tenants when the first cloud service provides services to multiple tenants. The isolation method between the service requests of multiple tenants indicated by the application multi-tenancy mode includes at least one of the following: physical isolation, container isolation, virtual machine isolation, namespace isolation, and service request sharing.
[0011] That is, the software service platform can configure the first cloud service according to the isolation method between the service requests indicated by the application multi-tenancy mode to obtain functional software modules of different application multi-tenancy modes. In this way, it can not only improve the software provider's software transformation experience, but also provide tenants with rich choices.
[0012] In combination with the first aspect, in another possible design approach, the software service platform may provide a multi-tenant configuration interface, where the multi-tenant configuration interface is used to prompt for input of a multi-tenant deployment mode.
[0013] In this way, it is convenient for software providers to set the multi-tenant deployment mode of functional software modules through the multi-tenant configuration interface, thereby configuring different functional software modules.
[0014] In combination with the first aspect, in another possible design method, the cloud service configuration instructions also include: resource configuration instructions, the resource configuration instructions are used to instruct the acquisition of resource configuration information, the resource configuration information is used to indicate the function set of the target software provided by the first cloud service to multiple tenants; wherein the first functional software module is specifically used to provide the first tenant with at least one function in the function set indicated by the resource configuration information.
[0015] That is to say, the software service platform can also configure the first cloud service according to the resource configuration information to obtain functional software modules that can support different function sets. In this way, it can not only improve the software provider's software transformation experience, but also provide tenants with rich choices, allowing users to select functional software modules according to actual needs.
[0016] In combination with the first aspect, in another possible design mode, the function set of the target software includes a first function and a second function. The method may also include: the software service platform provides the first function to the first tenant through a first application programming interface (API) of the first functional software module, and provides the second function to the second tenant through a second API of the first functional software module; or, at least one functional software module also includes a second functional software module, and the software service platform provides the first function to the first tenant through the first functional software module, and provides the second function to the second tenant through the second functional software module.
[0017] That is to say, the software service platform can adjust the implemented function set by controlling the function modules in the function software module, and can also adjust the implemented function set by controlling the API associated with the function software module.
[0018] In combination with the first aspect, in another possible design manner, the software configuration includes at least one of the following: software resources, an image file, an image configuration file, and a script.
[0019] In combination with the first aspect, in another possible design, at least one functional software module includes: a first functional software module, a second functional software module allocated to a second tenant, and the data isolation method when the first functional software module and the second functional software module provide services to the tenant is physical isolation or logical isolation. The method may also include: the software service platform may obtain a first service request of the first tenant and a second service request of the second tenant. Afterwards, the software service platform may use the first functional software module to process the first service request, and use the second functional software module to process the second service request.
[0020] In this way, different functional software modules handle service requests from different tenants, which can not only improve the security of tenants' use of cloud services, but also ensure the efficiency of processing service requests.
[0021] In combination with the first aspect, in another possible design, the at least one functional software module further includes: a third functional software module allocated to a third tenant and a fourth tenant, and the third functional software module provides services to the tenants in a data isolation manner of data sharing. The method may also include: the software service platform may obtain a third service request of the third tenant and a fourth service request of the fourth tenant, and use the third functional software module to process the third service request and the fourth service request.
[0022] It is understandable that having one functional software module handle service requests from different tenants can reduce the cost of tenants using cloud services.
[0023] In combination with the first aspect, in another possible design method, the software configuration instruction includes any one of the following: software configuration of the target software, storage address of the target software, and target communication interface, and the target communication interface is used to communicate with a second cloud service deployed with the target software.
[0024] In combination with the first aspect, in another possible design, the method may further include: the software service platform may obtain a service management request of the first tenant, the service management request is used to request to update the data isolation mode and / or function set when the first functional software module provides services to the first tenant. Afterwards, in response to the service management request of the first tenant, the software service platform may adjust the data isolation mode and / or function set when the first functional software module provides services to the first tenant.
[0025] It is understandable that, through service management requests, the software service platform can adjust the data isolation method and / or function set of the subscribed functional software modules, so that after subscribing to the functional software modules, the tenants can change the relevant functions of the subscribed functional software modules according to actual needs, thereby improving the tenants' subscription experience.
[0026] In a second aspect, the present application provides a computing device cluster, the computing device cluster comprising at least one computing device, each computing device comprising a processor and a memory. The processor of at least one computing device is used to execute instructions stored in the memory of at least one computing device, so that the computing device cluster executes the method described in the first aspect and any possible design thereof.
[0027] In a third aspect, the present application provides a chip system, which is applied to a computing device cluster. The chip system includes one or more interface circuits and one or more processors. The interface circuit and the processor are interconnected by a line. The interface circuit is used to receive a signal from a memory of the computing device cluster and send the signal to the processor, where the signal includes a computer instruction stored in the memory. When the processor executes the computer instruction, the computing device cluster executes the method described in the first aspect and any possible design thereof.
[0028] In a fourth aspect, the present application provides a computer-readable storage medium, which includes computer instructions. When the computer instructions are executed on a computing device cluster, the computing device cluster executes the method described in the first aspect and any possible design thereof.
[0029] In a fifth aspect, the present application provides a computer program product, which, when executed on a computer, enables the computer to execute the method described in the first aspect and any possible design thereof.
[0030] It can be understood that the beneficial effects that can be achieved by the computing device cluster described in the second aspect and any possible design method provided above, the chip system described in the third aspect, the computer-readable storage medium described in the fourth aspect, and the computer program product described in the fifth aspect can be referred to as the beneficial effects in the first aspect and any possible design method thereof, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Figure 1 A schematic diagram of an example of software service provided in an embodiment of the present application;
[0032] Figure 2 A schematic diagram of a system architecture of a communication system provided in an embodiment of the present application;
[0033] Figure 3 A schematic diagram of the system architecture of a software service platform provided in an embodiment of the present application;
[0034] Figure 4 A flowchart of a method for software service provided in an embodiment of the present application;
[0035] Figure 5 A schematic diagram of an example of database deployment provided in an embodiment of the present application;
[0036] Figure 6 A schematic diagram of another example of database deployment provided in an embodiment of the present application;
[0037] Figure 7 A schematic diagram of another example of database deployment provided in an embodiment of the present application;
[0038] Figure 8 A schematic diagram of an example of application software deployment provided in an embodiment of the present application;
[0039] Fig. 9 A schematic diagram of another example of application software deployment provided in an embodiment of the present application;
[0040] Fig.10 A schematic diagram of another example of application software deployment provided in an embodiment of the present application;
[0041] Fig.11 A schematic diagram of an example of a display interface provided in an embodiment of the present application;
[0042] Fig.12 A schematic diagram of another example of a display interface provided in an embodiment of the present application;
[0043] Fig.13 An example schematic diagram of a configuration function software module provided in an embodiment of the present application;
[0044] Fig.14 A schematic diagram of an example of cloud service management provided in an embodiment of the present application;
[0045] Fig.15 A flowchart of a method for configuring a functional software module provided in an embodiment of the present application;
[0046] Fig.16 A schematic diagram of another example of a display interface provided in an embodiment of the present application;
[0047] Fig.17 A schematic diagram of an example of account authority management provided in an embodiment of the present application;
[0048] Fig.18 A flowchart of another method of software service provided in an embodiment of the present application;
[0049] Fig.19 A schematic diagram of the composition of a software service device provided in an embodiment of the present application;
[0050] Fig. 20 A schematic diagram of the structure of a computing device provided in an embodiment of the present application;
[0051] Fig.21 A schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application;
[0052] Fig. 22 A schematic diagram of the structural composition of another computing device cluster provided in an embodiment of the present application. DETAILED DESCRIPTION
[0053] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0054] In this application, the character " / " generally indicates that the objects before and after are in an "or" relationship. For example, A / B can be understood as A or B.
[0055] The terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of the features. In the description of this embodiment, unless otherwise specified, "plurality" means two or more.
[0056] In addition, the terms "including" and "having" and any variations thereof mentioned in the description of this application are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device that includes a series of steps or modules is not limited to the listed steps or modules, but may optionally include other steps or modules that are not listed, or may optionally include other steps or modules that are inherent to these processes, methods, products or devices.
[0057] In addition, in the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present concepts in a specific way.
[0058] With the popularity of SaaS software (i.e., cloud services), more and more companies hope to convert traditional software into cloud services. Users only need a device and the Internet to access cloud services anytime and anywhere. Users do not need to install and maintain software locally, which greatly reduces the threshold for use. In addition, cloud services are continuously updated and upgraded by SaaS providers to ensure that users always use the latest version of the software.
[0059] However, currently, traditional small and medium-sized software companies will encounter many problems in the process of software service transformation, such as the design problems of multi-tenancy of data and applications, the problem of automated deployment of cloud services, the problem of version upgrade after tenants deploy cloud services, the problem of tenant data security, the problem of cloud service operation, the problem of cloud service operation and maintenance, the problem of management of multiple cloud services, etc. Each of the above problems involves highly professional fields, which require experts in related fields to carry out architecture design and development by developers, and this process requires a lot of manpower and financial resources. In addition, SaaS transformation takes a long time (usually at least six months) and the transformation efficiency is low.
[0060] To this end, an embodiment of the present application provides a method for software service. In the method, the software service platform can obtain the target software and the multi-tenant deployment mode, and configure the first cloud service according to the target software and the multi-tenant deployment mode, and the first cloud service includes at least one functional software module. When the functional software module is allocated to the tenant, the functional software module can provide the tenant with the function of the target software. In this way, the target software can be serviced without the software provider having to transform the target software himself, thereby improving the efficiency of software service. In addition, the multi-tenant deployment mode is used to indicate the isolation method between multiple tenant data when the first cloud service provides services to multiple tenants. In this way, not only can the deployment mode of the target software service be increased, but the functional software module also satisfies the isolation method between multiple tenant data indicated by the multi-tenant deployment mode, thereby improving the security of tenant data.
[0061] It should be noted that, in the embodiment of the present application, converting the software into SaaS refers to configuring the cloud service corresponding to the software, and the functions of the software can be realized through the functional software modules in the cloud service.
[0062] For example, Figure 1 As shown, if the isolation methods between data indicated by the multi-tenant deployment mode include: isolation method a, isolation method b, and isolation method c, the software service platform can generate functional software module a, functional software module b, and functional software module c based on software A. Among them, functional software module a satisfies isolation method a, functional software module b satisfies isolation method b, and functional software module c satisfies isolation method c.
[0063] Among them, the target software in the embodiment of the present application is traditional software. For example, the target software can be an embedded application (i.e., a system application of the electronic device) or a downloadable application installed in the electronic device through an installation package. Among them, the embedded application is an application provided as part of the implementation of an electronic device (such as a mobile phone). A downloadable application is an application that can provide its own Internet Protocol Multimedia Subsystem (Internet Protocol Multimedia Subsystem, IMS) connection, and the downloadable application can be an application pre-installed in the terminal or a third-party application that can be downloaded and installed in the terminal by the user.
[0064] For example, the target software may be file management software, which includes multiple file management functions. For another example, the target software may be image processing software, which includes multiple image processing functions.
[0065] Exemplarily, the electronic device in the embodiments of the present application may be a tablet computer, a mobile phone, a handheld computer, a laptop computer, an ultra-mobile personal computer (UMPC), a netbook, a cellular phone, a personal digital assistant (PDA), an augmented reality (AR) device, a virtual reality (VR) device, a vehicle-mounted device, or the like. The embodiments of the present application do not impose any special restrictions on the specific form of the electronic device.
[0066] The implementation environment of the embodiments of the present application is introduced below.
[0067] like Figure 2 As shown, a communication system provided by an embodiment of the present application includes: a computing device cluster 201, and at least one electronic device (such as a first electronic device 202 and a second electronic device 203). The computing device cluster 201 can communicate wirelessly with the first electronic device 202 and the second electronic device 203 respectively.
[0068] The computing device cluster 201 can be connected by a set of loosely integrated computer software or hardware to collaborate closely to complete computing work, and the computing device cluster 201 can also be regarded as a computer. A single computer in the computing device cluster 201 is usually called a node, and the nodes can be connected through a local area network, high-speed interconnection, remote direct memory access (RDMA), distributed shared memory, etc. The computing device cluster 201 can include one or more clusters of a high-availability cluster, a load balancing cluster, a high-performance computing cluster, and a high-availability cluster. The computing device cluster 201 may include: hardware resources (such as servers, memory, CPU, etc.) and service resources (such as software, integrated development environment, etc.).
[0069] In an embodiment of the present application, the computing device cluster 201 can be used to SaaS-ize traditional software, that is, to configure the cloud service of the software. For example, a software service platform is deployed in the computing device cluster 201, and the software service platform is used to SaaS-ize the software. The computing device cluster 201 can receive an instruction from the first electronic device 202 (i.e., the device used by the software provider), which is used to instruct the acquisition of the software, and the computing device cluster 201 can configure the cloud service corresponding to the software based on the instruction. In addition, the computing device cluster 201 can receive an instruction from the second electronic device 203 (i.e., the device used by the user who rents the cloud service), and use the resources in the computing device cluster 201 to perform corresponding tasks.
[0070] The first electronic device 202 can be used to manage the cloud service. For example, the first electronic device 202 can display the interface of the software service platform, and the software provider can operate on the interface of the software service platform, and the first electronic device 202 sends instructions to the computing device cluster 201 to instruct the computing device cluster 201 to perform corresponding tasks.
[0071] The second electronic device 203 can subscribe to (or rent) cloud services. In addition, the second electronic device 203 can be used to manage the rented cloud services. For example, the second electronic device 203 can display the interface of the software service platform, and the user who rents the cloud service (referred to as the tenant) can operate on the interface of the software service platform, and the second electronic device 203 sends instructions to the computing device cluster 201 to instruct the computing device cluster 201 to perform corresponding tasks.
[0072] After introducing the implementation environment of the embodiment of the present application, the software service platform deployed on the computing device cluster is introduced below.
[0073] like Figure 3 As shown, a software service platform (such as a multi-tenant multi-Saa application management platform) provided in an embodiment of the present application includes: a system management module, a deployment module, an application update module, a tenant account module, a metering module, an operation module, and an operation and maintenance module.
[0074] The system management module is used to manage cloud services. For example, the system management module can add new cloud services (i.e., cloud services corresponding to new software) to the software service platform. Figure 3 As shown in the figure, if there is cloud service A corresponding to software 1 in the cloud service, the system management module can also add cloud service B corresponding to software 2. For another example, the system management module can add a functional software module of the cloud service in the software service platform (that is, update the functional software module in the existing cloud service). Figure 3 As shown, if there is a functional software module A1 in cloud service A, the system management module can add a functional software module A2 in cloud service A. For another example, the system management module can delete an existing cloud service (i.e., the cloud service corresponding to the removed software) in the software service platform; or, the system management module can delete a functional software module of a cloud service in the software service platform. For another example, the system management module can manage resource accounts, which are accounts associated with resources in the computing device cluster, such as accounts for logging into a database, accounts for logging into a cloud service, etc.
[0075] It should be noted that the software service platform may include cloud services corresponding to different software. Figure 3As shown, the software service platform includes: cloud service A corresponding to software 1, and cloud service B corresponding to software 2, wherein software 1 is provided by software provider 1, and software 2 is provided by software provider 2. It should be understood that each software provider can provide one or more software, and the embodiments of the present application are not limited to this. In addition, each cloud service may include at least one functional software module, for example, cloud service A may include functional software module A1 and functional software module A2, and cloud service B may include functional software module B1 and functional software module B2.
[0076] The deployment module is used to deploy the cloud services subscribed by the tenant. Figure 3 The deployment module can deploy functional software module A1 and functional software module A2 for tenant 1, and deploy functional software module A2 and functional software module B1 for tenant 2.
[0077] Furthermore, after the functional software module is deployed for the tenant, cloud resources may be allocated to the functional software module to run the functional software module.
[0078] The application update module is used to update the cloud service. For example, the application update module can be used to upgrade or downgrade the version of the cloud service. For another example, the application update module can be used to upgrade or downgrade the functional software module, such as upgrading or downgrading the set of functions that can be implemented by the functional software module, or upgrading or downgrading the functional software module's isolation method for data.
[0079] In an exemplary embodiment, the application update module can upgrade the cloud service through a preset upgrade method. For example, the preset upgrade method may include: blue-green upgrade, grayscale upgrade, rolling upgrade, replacement upgrade and other upgrade methods.
[0080] Exemplary, combined Figure 3 , if the function set of the function software module A1 in tenant 1 includes: function a and function b, the application update module can upgrade the function set of the function software module A1, and the function set of the upgraded function software module A1 includes: function a, function b and function c. For another example, if the version of the function software module A2 in tenant 1 is 1.0, the application update module can upgrade the version of the function software module A2 to 1.1.
[0081] The tenant account module is used to manage tenant accounts and other role information under the software service platform. For example, the tenant account module can create a new tenant account. For another example, the tenant account module can modify the information of a tenant account. For another example, the tenant account module can delete a tenant account.
[0082] The metering module is used to count the amount of resources consumed by tenants using cloud services or the amount of resources consumed by tenants using functional software modules in cloud services. For example, there is tenant a in the software service platform, and tenant a subscribes to cloud service a and cloud service b. The metering module can count the amount of resources used by tenant a for cloud service a, and can also count the amount of resources used by tenant a for cloud service b. The metering module can also be used to count the amount of resources used by tenants for all subscribed cloud services. For example, tenant a subscribes to cloud service a and cloud service b, then the metering module can count the sum of the amount of resources used by tenant a for cloud service a and the amount of resources used for cloud service b.
[0083] The operation module is used to calculate the tenant retention rate, usage rate, and resource consumption rate of cloud services.
[0084] The tenant retention rate is used to indicate the number of tenants who continue to subscribe to cloud services within a preset period. For example, if the preset period is 1 year, the number of tenants who subscribe to cloud service a at the beginning of the year is 100. After 1 year, the number of tenants who are still subscribing to cloud service a is 80, and the tenant retention rate is 80%.
[0085] The usage rate of a cloud service indicates how often a tenant uses the cloud service within a preset period. For example, if the preset period is 1 week, and the tenant uses cloud service a on 3 days within 1 week, the usage rate of the cloud service is 3 / 7.
[0086] The resource consumption rate of a cloud service is used to indicate the proportion of the resource consumption of the cloud service to the resource consumption of all cloud services within a preset period. For example, if the preset period is 1 week, the resource consumption of cloud service A within 1 week is 100, and the resource consumption of all cloud services in the software service platform is 10000, then the resource consumption rate of cloud service A is 1%.
[0087] It should be noted that the embodiments of the present application do not limit the preset period. For example, the preset period may be 1 week, 1 month, 1 year, etc.
[0088] The operation and maintenance module is used to manage the amount of resources used by the tenant. For example, the operation and maintenance module can obtain the amount of resources used by the tenant. For another example, the operation and maintenance module can obtain the amount of resources used by each cloud service subscribed by the tenant. For another example, the operation and maintenance module can set the resources used by the tenant (or the amount of resources used by each cloud service or functional software module). In addition, the operation and maintenance module can also generate resource alarm messages. For example, when the amount of resources used by the tenant is greater than the preset resource threshold, the operation and maintenance module can generate a resource alarm message, indicating that the amount of resources used by the tenant exceeds the preset resource threshold.
[0089] In some embodiments, the software service platform may further include: a tenant control software module (also referred to as a console software module). The tenant control software module is used to provide tenants with management functions for the subscribed cloud services. The tenant control software module may include: an organization management module, a user management module, a permission control module, a single sign-on module, and an authentication module.
[0090] The organization management module is used to update the tenant's domain name. For example, the tenant's domain name is changed from domain name a to domain name b. The domain name of each tenant in the software service platform is different. In addition, the organization management module can also be used to manage the tenant's domain name. For example, the organization management module can detect whether there is an identical domain name. If so, a domain name warning message is issued to instruct the tenant to modify the domain name.
[0091] Optionally, the organization management module can also be used to manage subscribed cloud services. For example, the organization management module can renew cloud services. For another example, the organization management module can unsubscribe from cloud services.
[0092] The user management module is used to manage user accounts under the tenant. The user accounts under the tenant refer to accounts that can use or manage the cloud services subscribed by the tenant. For example, enterprise a subscribes to cloud service A. Enterprise a includes: employee 1, employee 2, and employee 3. The accounts of employee 1, employee 2, and employee 3 are user accounts under enterprise a.
[0093] For example, the user management module can set the account number and password of the user account. For another example, the user management module can add a user account. For another example, the user management module can delete a user account.
[0094] The permission control module is used to manage the permissions of user accounts under the tenant. For example, the permission control module can increase the permissions of the user account to use cloud services. For another example, the permission control module can increase the management permissions of the user account. For another example, the permission control module can be used to manage the relationship between the user account and the cloud service. For another example, the permission control module can be used to manage the relationship between the user account and the software resources.
[0095] For example, if the cloud services subscribed by the tenant include: cloud service A, cloud service B, and cloud service C. User account a can use cloud service A. The permission control module can increase the permission of user account a to use cloud service B. Alternatively, the permission control module can increase the management permission of user account a to other user accounts (such as adjusting user account a from a common user to an administrator), and user account a with management permission can adjust the permissions of other user accounts.
[0096] The single sign-on module is used to coordinate the single sign-on between all cloud services subscribed by the tenant. Single sign-on means that in multiple application systems, users only need to log in once to access all mutually trusted application systems. For example, if the cloud services subscribed by the tenant include: cloud service A and cloud service B, the single sign-on module can associate cloud service A and cloud service B. After the user logs in to cloud service A, he can use cloud service B without logging in to cloud service B.
[0097] The authentication module is used to verify the user account that logs into the software service platform.
[0098] It should be noted that the execution subject of the software service method provided in the present application can be a software service device, and the software service device can be a computing device cluster. The computing device cluster can be one or more server clusters composed of multiple servers. Alternatively, the computing device cluster can also be a distributed cluster. Alternatively, multiple servers in the computing device cluster can be cloud servers. The embodiments of the present application do not limit the specific implementation method of the computing device cluster.
[0099] At the same time, the software servitization device can also be the central processing unit (CPU) of the computing device cluster, or the control module for software servitization in the computing device cluster, or the software servitization platform for software servitization deployed in the computing device cluster. Alternatively, the software servitization device can be a server in the computing device cluster (such as a physical server or a cloud server). Alternatively, the software servitization device can be an electronic device. In the embodiment of the present application, the method for executing software servitization on a software servitization platform is taken as an example to illustrate the method for software servitization provided in the embodiment of the present application.
[0100] In an embodiment of the present application, the software provider may upload the target software to the software service platform, and the software service platform may convert and configure the target software into the first cloud service. The software service platform may obtain the target software. In addition, the software provider may set the multi-tenant deployment mode of the first cloud service on the software service platform, and the software service platform may configure the first cloud service according to the target software and the multi-tenant deployment mode.
[0101] The present application embodiment provides a method for software service, such as Figure 4 As shown, the software service method may include:
[0102] S401, the software service platform obtains software configuration instructions.
[0103] The software configuration instruction is used to instruct the acquisition of the target software.
[0104] It should be noted that, in the embodiments of the present application, the software service platform obtains the target software in the following three ways. Method 1: the software service platform can directly obtain the target software. Method 2: the software service platform can indirectly obtain the target software through the address. Method 3: the software service platform can obtain the target software from other cloud services (i.e., cloud services different from the first cloud service). The three ways of obtaining the target software are introduced below.
[0105] In some embodiments, in the first mode, that is, the software service platform directly obtains the target software, the software configuration instruction can be used to instruct to obtain the software configuration of the target software, and the software configuration instruction includes the software configuration of the target software. The software configuration includes at least one of the following: software resources, image files, image configuration files, and scripts.
[0106] In a possible design, the software resource can be used to indicate the resource of the function corresponding to the target software. The software resource can include at least one of the following: front-end page, page element, component, application programming interface (Application Programming Interface, API), etc.
[0107] It should be noted that the front-end page refers to the application page that can be displayed in the electronic device after the target software is run, and the number of displays of the front-end page can be multiple. Page elements refer to elements in the application page, such as buttons in the page, colors of the page, options in the page, etc. Each front-end page can correspond to multiple page elements. Component refers to the smallest unit that can independently complete the deployment of the software system during the deployment process. Component is the encapsulation of data and methods. API can complete the same communication between programs (such as calling methods between programs).
[0108] Optionally, the software configuration may also include: component port, access path, component name, component type, microservice access prefix, access port number, image version number, image repository address, etc.
[0109] An image file is a file generated by packaging components. The image file can be stored in the software service platform. Usually, one image file corresponds to one component. When deploying cloud services, functional software modules can be deployed based on the image file.
[0110] The image configuration file refers to the configuration information used when the image file is started. The configuration information may include: database link address, user name, password, middleware connection information, log server connection information, log format, etc.
[0111] A script is a script used to initialize a database. The script may include basic information used to initialize the database, such as the structure of the built-in initial library table, initial data, functional elements, interface list, etc.
[0112] In a possible implementation, the first electronic device may send a software upload request to the software service platform, the software upload request being used to request uploading the target software to the software service platform, the software upload request may include: software configuration of the target software. Afterwards, the software service platform may receive the software upload request from the first electronic device to obtain the software configuration of the target software.
[0113] In an exemplary embodiment, the software service platform may provide a software upload interface. The first electronic device may log in to the software service platform and display the software upload interface. Afterwards, in response to the user's upload operation, the first electronic device may send a software upload request to the software service platform. For example, the first electronic device may display the software upload interface through a browser.
[0114] In some other embodiments, in the second mode, that is, the software service platform indirectly obtains the target software through the address, the software configuration instruction can be used to instruct to obtain the target software from the storage address. The software configuration instruction may include the storage address of the target software.
[0115] In an embodiment of the present application, the software service platform can obtain the target software according to the storage address of the target software.
[0116] In a possible implementation, the target software may be pre-stored in the software service platform, and the software service platform may obtain the target software from the software service platform according to the storage address of the target software.
[0117] Exemplarily, the software configuration of the target software may be pre-stored in the software service platform by the developer.
[0118] In another possible implementation, the target device stores the target software, and the software service platform can obtain the target software from the target device according to the storage address of the target software.
[0119] In other embodiments, in mode 3, the software service platform can obtain the target software from other cloud services, and the software configuration instruction can be used to instruct to obtain the target software through a target communication interface, and the software configuration instruction includes a target communication interface, and the target communication interface is used to communicate with a second cloud service where the target software is deployed. The second cloud service is different from the first cloud service.
[0120] In an embodiment of the present application, the software service platform can send a software acquisition request to the second cloud service, and the software acquisition request is used to instruct to acquire the image file and image configuration file of the target software. Afterwards, the software service platform can receive the image file and image configuration file from the second cloud service.
[0121] S402: The software service platform obtains cloud service configuration instructions.
[0122] The cloud service configuration instruction is used to instruct to configure the first cloud service according to the target software, and the first cloud service includes at least one functional software module. It should be understood that each functional software module is obtained based on the target software, and the functional software module can realize the function of the target software, that is, the functional software module can provide services for tenants.
[0123] In an embodiment of the present application, the cloud service configuration instruction also includes a multi-tenant deployment mode selection instruction, and the multi-tenant deployment mode selection instruction is used to indicate the acquisition of a multi-tenant deployment mode. The multi-tenant deployment mode is used to indicate the isolation method between multiple tenant data when the first cloud service provides services to multiple tenants. The isolation method between multiple tenant data includes at least one of the following: physical isolation, logical isolation, and data sharing.
[0124] The selection instruction may be to provide multiple options to the user and then receive a selection instruction from the user for one of the options, or to prompt the user to enter an instruction on his own and then match an isolation method based on the instruction. The above methods can be regarded as obtaining the multi-tenant deployment mode selection instruction.
[0125] It should be noted that in the embodiments of the present application, data may include at least one of the following: business data, service request. Among them, business data refers to data that needs to be stored in the database software, or data that will cause changes in the data in the database software. Service requests are data that do not need to be stored in the database software, or data that will not cause changes in the data in the database software. Service requests can be data used to instruct the cloud service to provide services to tenants, that is, service requests are data to be processed sent by the second electronic device (i.e., the electronic device used by the tenant) to the software service platform.
[0126] It should be understood that in the embodiments of the present application, physical isolation refers to the isolation of data on physical devices, that is, data is located on different physical devices. Logical isolation refers to the logical isolation of data on the same physical device through program configuration. Data sharing refers to data on the same physical device without logical isolation through programs.
[0127] The following uses business data as an example to introduce how to isolate data from multiple tenants.
[0128] In the embodiment of the present application, when the data is business data, the multi-tenant deployment mode includes: a data multi-tenancy mode, which is used to indicate the isolation method between the business data of multiple tenants when the first cloud service provides services to multiple tenants. It should be understood that the isolation method between business data refers to the method of storing business data. That is, when the data is business data, the target software may include database software.
[0129] The isolation method between the business data of multiple tenants indicated by the data multi-tenancy mode includes at least one of the following: database isolation, data architecture isolation, data table isolation, and business data sharing.
[0130] In the case where the data is business data, physical isolation is database isolation (also known as data source isolation), which is used to indicate that a tenant uses a single database. In other words, a tenant's data can use a single database, that is, the database only stores the data of one tenant. In this implementation, even if two database software runs in the same computing instance, that is, two computer software share the same physical resources, it is also considered to constitute physical isolation.
[0131] For example, Figure 5 As shown, when the cloud service provides services to tenant 1 and tenant 2, the data isolation method is database isolation. Tenant 1 can use database A to store business data, and tenant 2 can use database B to store business data.
[0132] It is understandable that by adopting the database isolation method, one tenant uses one database to store data. In this way, the security of tenant data can be improved. In addition, one database stores the data of one tenant, which can facilitate the management and repair of data.
[0133] In an embodiment of the present application, when the data is business data, logical isolation may include: data architecture isolation (also referred to as column isolation) and / or data table isolation.
[0134] Data architecture isolation is used to indicate that the business data of multiple tenants share a database, but the data schema is isolated. In other words, the business data of multiple tenants can be stored in one database, but the business data of different tenants are stored in different data schemas.
[0135] For example, Figure 6As shown, when the cloud service provides services to tenant 3 and tenant 4, the data isolation method is data architecture isolation, then tenant 3 and tenant 4 can use database C together (database A includes data architecture C1 and data architecture C2), and tenant 3 uses data architecture C1 to store business data, and tenant 4 uses data architecture C2 to store business data.
[0136] Data table isolation is used to indicate that the business data of multiple tenants share a database, but use different data tables. In other words, the business data of multiple tenants can be stored in one database, and the business data of different tenants are stored in different data tables.
[0137] Exemplarily, data table isolation can be achieved by adding a prefix to the table name of the data table and adding a new data table.
[0138] It is understandable that the data architecture isolation and data table isolation methods can make business data use the same database, but achieve logical isolation through program configuration. In this way, the business data of different tenants can be isolated, improving the security of tenant data. In addition, one database can also provide services for multiple tenants to reduce tenant costs.
[0139] In the case where the data is business data, the data sharing is business data sharing, and business data sharing is used to indicate that the business data of multiple tenants share one database and one data table.
[0140] For example, Figure 7 As shown, when the cloud service provides services to tenants 5 and 6, the data isolation method is business data sharing, then tenants 5 and 6 can use database D together (database D includes data table D1 and data table D2), and tenants 5 and 6 use data table D1 together to store business data. For example, data table D1 may include tenant fields, and one tenant corresponds to one tenant field. As shown in Table 1, it shows how business data of different tenants are stored in one data table.
[0141] Table 1
[0142] name Tenant Field Zhang San A1 Li Si A2
[0143] As shown in Table 1, the tenant whose tenant field is A1 (such as tenant 5) has a name of Zhang San. The tenant whose tenant field is A2 (such as tenant 6) has a name of Li Si.
[0144] It is understandable that in the shared database mode, multiple tenants share one database and one data table, which can reduce the cost of storing data for tenants.
[0145] After introducing the isolation method between the business data of multiple tenants, the following will take data as an example of service request to introduce the isolation method between the data of multiple tenants.
[0146] In an embodiment of the present application, when the data is a service request, the multi-tenant deployment mode includes: an application multi-tenancy mode, and the application multi-tenancy mode is used to indicate the isolation method between the service requests of multiple tenants when the first cloud service provides services to multiple tenants. It should be understood that the isolation method between service requests refers to the method in which the functional software module executes the service request. That is, when the data is a service request, the target software may include application software, which is used to provide the function of processing the service request.
[0147] Among them, the isolation method between multiple tenant data indicated by the application multi-tenancy mode includes at least one of the following: physical isolation, container isolation, virtual machine isolation, namespace isolation, and service request sharing.
[0148] When the data is a service request, physical isolation is used to indicate that a service request of one tenant can use one physical device alone, that is, the physical device only processes the service request of one tenant.
[0149] It should be noted that the physical device in this application may refer to one or more servers in a computing device cluster. Alternatively, the physical device may refer to one or more computing device clusters.
[0150] For example, Figure 8 As shown, functional software module A1 is deployed in physical device A, functional software module B1 is deployed in physical device B, and the isolation mode of service requests when the cloud service provides services for tenant 1 and tenant 2 is physical isolation. Then tenant 1 can use functional software module A1 to process service requests, and tenant 2 can use functional software module B1 to process service requests.
[0151] It is understandable that in physical isolation, tenants use the functional software modules in a single device, which can improve the privacy and security of tenants' use of cloud services and ensure the performance of cloud services.
[0152] In an embodiment of the present application, when the data is a service request, logical isolation may include at least one of the following: container isolation, virtual machine isolation, and namespace isolation. Among them, container isolation is used to indicate that service requests of multiple tenants can share a physical device, and service requests of different tenants use different containers, that is, one container processes the service request of one tenant. Virtual machine isolation is used to indicate that service requests of multiple tenants can share a physical device, and service requests of different tenants use different virtual machines, that is, one virtual machine processes the service request of one tenant. Namespace isolation is used to indicate that service requests of multiple tenants can share a physical device, and service requests of different tenants use different namespaces, that is, one namespace processes the service request of one tenant.
[0153] It should be noted that logical isolation means that various objects (such as virtual machines, containers, namespaces, etc.) can share the resources of a physical device.
[0154] For example, Fig. 9 As shown, the physical device C includes namespace a and namespace b. Functional software module C1 is deployed in namespace a, and functional software module C2 is deployed in namespace b. When the cloud service provides services to tenants 3 and 4, the isolation method of service requests is namespace isolation. Then tenant 3 can use functional software module C1 to process service requests, and tenant 4 can use functional software module C2 to process service requests.
[0155] It can be understood that when the data is a service request, through logical isolation, the service requests of multiple tenants can share the resources in a physical device, and each tenant can use the functional software module in a logical space independently, thereby improving the privacy and security of the service request.
[0156] In the embodiment of the present application, when the data is a service request, the data sharing is service request sharing, wherein service request sharing is used to indicate that service requests of multiple tenants can share a functional software module, that is, a functional software module can process service requests of different tenants.
[0157] For example, Fig.10 As shown, the physical device D includes namespace c and namespace d, the function software module D1 is deployed in namespace c, and the function software module D2 is deployed in namespace d. When the cloud service provides services to tenants 5 and 6, the isolation mode of service requests is service request sharing. Then tenants 5 and 6 can jointly use the function software module D1 to process service requests.
[0158] It is understandable that in service request sharing, multiple tenants use the same functional software module to process service requests, which can reduce the cost of tenants using cloud services.
[0159] The above is an introduction to the case where the data is business data or service request. In some embodiments, the data may also include business data and service requests, and the multi-tenant deployment mode includes: data multi-tenancy mode and application multi-tenancy mode, and the target software may include database software and application software. The multi-tenant deployment mode is used to indicate the isolation method between the business data of multiple tenants and the isolation method between the service requests of multiple tenants when the first cloud service provides services to multiple tenants.
[0160] In the embodiment of the present application, when the data includes business data and service requests, the isolation method between multiple tenant data can be a combination of the isolation method between business data and the isolation method between service requests. It should be understood that when the isolation method between multiple tenant data can be a combination of the isolation method between business data and the isolation method between service requests, the isolation method between data indicated by the multi-tenant deployment mode can have at least one set of combined isolation methods.
[0161] Exemplarily, the isolation methods between multiple tenant data may include at least one of the following: combined isolation method 1 (database isolation and physical isolation), combined isolation method 2 (database isolation and container isolation), combined isolation method 3 (database isolation and service request sharing), combined isolation method 4 (data architecture isolation and physical isolation), combined isolation method 5 (data architecture isolation and service request sharing), combined isolation method 4 (business data sharing and container isolation), etc. It should be understood that the above is an introduction to the isolation methods between multiple tenant data in the form of examples, and the embodiments of the present application do not limit the combination of the isolation methods between business data and the isolation methods between service requests.
[0162] In an embodiment of the present application, the software service platform may provide a multi-tenant configuration interface, which is used to prompt for input of a multi-tenant deployment mode. The first electronic device may log in to the software service platform and display the multi-tenant configuration interface. Afterwards, the first electronic device may receive a configuration operation of the software provider in the multi-tenant configuration interface. In response to the configuration operation, the first electronic device may determine the multi-tenant deployment mode. Afterwards, the first electronic device may send a multi-tenant deployment mode selection instruction to the software service platform, which is used to instruct the acquisition of the multi-tenant deployment mode.
[0163] For example, the following describes the multi-tenant configuration interface by taking the isolation method between multiple tenant data as a combination of the isolation method between business data and the isolation method between service requests as an example. Fig.11As shown, the software service platform can provide a multi-tenant configuration interface 1101, which may include: application multi-tenant mode option 1102 (such as SHARED, i.e. service request sharing), data multi-tenant mode option 1103 (such as COLUMN, i.e. data sharing mode). Optionally, the multi-tenant configuration interface 1101 may also include: application name, English name, (service) architecture, application version, description, idssa App ID (i.e. account number of backend service), etc. The software provider may enter information in the multi-tenant configuration interface 1101. Afterwards, in response to the software provider's operation of the "Submit" button, the first electronic device may determine the multi-tenant deployment mode and send a multi-tenant deployment mode selection instruction to the software service platform. Optionally, the first electronic device may repeatedly display the multi-tenant configuration interface 1101 to increase the isolation method between the data indicated by the multi-tenant deployment mode.
[0164] S403: The software service platform configures the first cloud service according to the cloud service configuration instruction.
[0165] The first cloud service is used to remotely provide the functions of the target software to the tenant based on at least one functional software module.
[0166] In an embodiment of the present application, the functions of the target software include at least one of the following: data processing function, data storage function. In the case where the functions of the target software include data processing function, the target software may include application software, and the functional software module is a functional software module corresponding to the application software. In the case where the functions of the target software include data storage function, the target software may include database software, and the functional software module is a functional software module corresponding to the database software. In the case where the functions of the target software include data processing function and data storage function, the target software may include application software and database software, and the functional software modules may include: functional software modules corresponding to the application software and functional software modules corresponding to the database software.
[0167] It should be noted that database software can also process data, so application software can include database software.
[0168] In a possible implementation, the software service platform can generate at least one functional software module according to the target software and the multi-tenant deployment mode, and one functional software module corresponds to a data isolation method. It should be understood that the data isolation method includes any one of the following: an isolation method between business data, an isolation method between service requests, and a group of combined isolation methods.
[0169] In some embodiments, the software service platform may provide an application display interface, which is used to display information of functional software modules.
[0170] For example, Fig.12 As shown, the application display interface 1201 may include: data multi-tenancy mode 1202, application multi-tenancy mode 1203. Optionally, the application display interface 1201 may also include: application name, service architecture, package type, multi-tenancy model (i.e., multi-tenant deployment mode), status, etc. Taking the e-commerce application in the first row as an example of a functional software module, the application name of the e-commerce application is "e-commerce application", the service architecture is "microservice", the package type is "basic version", the multi-tenant deployment mode is "COLUMN-SHARED", the data multi-tenancy mode is "COLUMN", the application multi-tenancy mode is "SHARED", and the status is "available on the shelves". For an introduction to other information parameters of the basic version of the e-commerce application, please refer to Fig.12 The contents in the article will not be repeated here.
[0171] It should be noted that for the introduction of other applications in the application display interface 1201, you can refer to the introduction of the basic version of the e-commerce application in the first row, which will not be repeated here. Among them, "DATASOURCE" displayed in the application display interface 1201 is database isolation, "NAMESPACE" is namespace isolation, and "SCHEMA" is data architecture isolation.
[0172] In the embodiment of the present application, the first cloud service further includes a tenant management module, which is used to allocate a first functional software module to the first tenant according to a request of the first tenant among the multiple tenants. The first functional software module is used to provide the first tenant with the function of the target software, and the first functional software module allocated to the first tenant by the tenant management module satisfies the isolation method between the multiple tenant data indicated by the multi-tenant deployment mode.
[0173] That is, after configuring at least one functional software module in the first cloud service, the first tenant can request the first functional software module from the at least one functional software module to provide services for the first tenant. Since the first functional software module is configured based on the multi-tenant deployment mode, when the first functional software module processes the data of the first tenant, the data can be processed in accordance with the configured isolation method between the data.
[0174] Exemplarily, if the first functional software module requested by the first tenant provides a service in which the isolation mode between data is combined isolation mode 1 (such as database isolation, container isolation), the first functional software module may include: functional software module a for implementing data processing functions and functional software module b for implementing data storage functions. Functional software module a can be deployed separately in a container to process service requests, and functional software module b can store the first tenant's data separately in a database.
[0175] Based on the above technical solution, the software service platform can obtain the target software and the multi-tenant deployment mode, and configure the first cloud service according to the target software and the multi-tenant deployment mode, and the first cloud service includes at least one functional software module. When the functional software module is allocated to the tenant, the functional software module can provide the tenant with the function of the target software. In this way, the target software can be serviced without the software provider having to transform the target software by itself, thereby improving the efficiency of software service. In addition, the multi-tenant deployment mode is used to indicate the isolation method between multiple tenant data when the first cloud service provides services to multiple tenants. In this way, not only can the deployment mode of the target software service be increased, but also a rich selection can be provided for tenants, thereby improving the tenant's rental experience. In addition, the functional software module satisfies the isolation method between multiple tenant data indicated by the multi-tenant deployment mode, thereby ensuring the security of tenant data.
[0176] In the above embodiments, the software provider can provide a multi-tenant deployment mode, thereby configuring the cloud service to provide different data isolation methods. In some embodiments, the software provider can also provide resource configuration information of the software, thereby configuring the cloud service to provide a set of different data processing functions (hereinafter referred to as a function set).
[0177] In an embodiment of the present application, the cloud service configuration instruction also includes: a resource configuration instruction, the resource configuration instruction is used to instruct the acquisition of resource configuration information, and the resource configuration information is used to indicate the function set of the target software provided by the first cloud service to multiple tenants. Among them, the first functional software module is specifically used to provide the first tenant with at least one function in the function set indicated by the resource configuration information. It should be understood that the resource configuration information indicates the function set of the target software, which means that the software service platform can implement the data processing function in the function set corresponding to the resource configuration information based on the resource configuration information.
[0178] In a possible implementation, the software service platform can obtain resource configuration information according to the resource configuration instruction. Afterwards, the software service platform can generate a functional module according to the resource configuration information, and the functional module is used to implement the data processing function. One functional module corresponds to one data processing function, and one functional software module may include at least one functional module. In a possible design, the resource configuration information may include: page configuration information, page element configuration information, and interface list configuration information.
[0179] Exemplarily, the page configuration information may be the page identifier of the front-end page, the page element configuration information may be the identifier of the page element, and the interface list configuration information may be the identifier of the interface. For example, if the resource configuration information a corresponds to function a, the resource configuration information a may include: the identifier of page a associated with function a, the identifier b of element b associated with function a (such as a button to start function a), and the identifier of interface d that implements function a.
[0180] It should be noted that the embodiment of the present application does not limit the number of page configuration information, the number of page element configuration information, and the number of interface list configuration information in the resource configuration information. For example, a set of resource configuration information may include 1 page configuration information, 3 page element configuration information, and 2 interface list configuration information.
[0181] In a possible implementation, the software service platform may provide a resource configuration interface, and the resource configuration interface is used to provide a prompt to input resource configuration information. The first electronic device may display the resource configuration interface and receive a resource configuration operation input by the software provider to the resource configuration interface. In response to the resource configuration operation input by the software provider to the resource configuration interface, the first electronic device may obtain the resource configuration information.
[0182] Optionally, the resource configuration interface and the multi-tenant configuration interface may be the same interface. Alternatively, the resource configuration interface and the multi-tenant configuration interface may be different interfaces.
[0183] It is understandable that, through resource configuration instructions, the function set of the functional software module can be formulated based on the resource configuration information. In this way, not only can the software provider's software transformation experience be improved, but also the functional software modules with different function sets can be provided to the tenants to improve the tenant's usage experience.
[0184] It should be noted that different functional software modules can provide different function sets, and the function set can include at least one data processing function. In the embodiment of the present application, the function set provided by the functional software module can be controlled in two ways. Method 1: Control the functional module in the functional software module. Method 2: Control the use permission of the API of the target software.
[0185] In the first approach (ie, controlling the functional modules in the functional software module), the functional software module may include at least one functional module, and the at least one functional module corresponds to the resource configuration information, and the resource configuration information is part of the resource configuration information of the target software.
[0186] That is, in the first mode, the resource configuration information can be divided into multiple groups of resource configuration information, each group of resource configuration information can generate at least one functional module in a functional software module. Moreover, each group of resource configuration information is different, and the functional modules included in the functional software modules corresponding to different resource configuration information are also different.
[0187] It can be understood that one data processing function corresponds to one functional module, and by controlling the functional modules included in the functional software module, the software service platform can adjust the function sets of different functional software modules, thereby obtaining functional software modules with different function sets.
[0188] Optionally, in the case where the resource configuration information is part of the resource configuration information of the target software, the software service platform stores a correspondence between the function identifier and the resource configuration information, and the resource configuration instruction includes the function identifier. In response to the resource configuration operation input by the tenant to the resource configuration interface, the first electronic device can obtain the function identifier. Afterwards, the first electronic device can send the function identifier to the software service platform. The software service platform can receive the function identifier from the first electronic device and determine the resource configuration information according to the function identifier.
[0189] It can be understood that by sending function identifiers, the configuration process of software providers can be reduced, thereby improving the efficiency of software SaaS.
[0190] In the second approach (ie, controlling the use rights of the target software's API), the functional software module provides a response through at least one application programming interface API of the target software, and one API is associated with one data processing function.
[0191] In the embodiment of the present application, the software service platform can adjust the function set of the functional software module by setting the usage rights of the API of the target software. The software service platform can store the corresponding relationship between the functional software module and the usage rights of the API.
[0192] It should be noted that in the embodiments of the present application, the resource configuration information may be all resource configuration information of the target software. That is to say, each functional software module has a functional module corresponding to all resource configuration information. Moreover, the API corresponds to the functional module, and the functional module corresponding to the API with usage permission can provide data processing functions, that is, the tenant can call the functional module. The functional module corresponding to the API without usage permission cannot provide data processing functions, that is, the tenant cannot call the functional module.
[0193] Exemplarily, if the functional software module has the permission to use API1, API2 and API3, the functional software module can provide responses through API1, API2 and API3 to implement the data processing functions of API1, API2 and API3.
[0194] It is understandable that an API is associated with a data processing function, and the functional software module provides a response through the API of the target software. In this way, the function sets of different functional software modules can be adjusted by controlling the API, thereby obtaining functional software modules with different function sets.
[0195] In some embodiments, the function set of the target software may include a first function and a second function. The software as a service platform may provide different functions to different tenants through one or more functional software modules.
[0196] In one possible design, the first functional software module may include a first API and a second API. When the first tenant requests to use the first function, the software service platform may provide the first function to the first tenant through the first programming interface API of the first functional software module. When the second tenant requests to use the second function, the software service platform may provide the second function to the second tenant through the second API of the first functional software module.
[0197] That is, the first functional software module may provide multiple functions and provide services to different tenants through different APIs.
[0198] In another possible design, the at least one functional software module further includes a second functional software module. The software service platform can provide the first function to the first tenant through the first functional software module, and provide the second function to the second tenant through the second functional software module.
[0199] That is, the first cloud service can provide services to different tenants by configuring different functional software modules.
[0200] The above is an introduction to the functional set of software modules in cloud service configuration by software service platform. The following introduces the way of configuring functional software modules in cloud service by taking cloud service configuration instructions including multi-tenant deployment mode selection instructions and resource configuration instructions as an example.
[0201] In an embodiment of the present application, when the cloud service configuration instructions include multi-tenant deployment mode selection instructions and resource configuration instructions, the software service platform can generate at least one functional software module based on the target software, multi-tenant deployment mode and resource configuration information, and one functional software module corresponds to a data isolation method and a function set.
[0202] For example, Fig.13 As shown, the function set of the target software can be divided into function set 1, function set 2 and function set 3. Among them, function software module 1 is generated by combining isolation mode 1 (such as business data sharing and service request sharing) and function set 1, function software module 2 is generated by combining isolation mode 2 (such as data architecture isolation and namespace isolation) and function set 2, and function software module 3 is generated by combining isolation mode 3 (such as database isolation and physical isolation) and function set 3.
[0203] In some embodiments, after the software service platform completes configuration of at least one functional software module in the first cloud service, the tenant can subscribe to one or more functional software modules through the software service platform, so that the tenant management module allocates functional software modules to the tenant.
[0204] In an embodiment of the present application, the second electronic device (i.e., the electronic device used by the tenant) is logged in with the target tenant account of the tenant. The second electronic device can receive the subscription operation of the tenant. In response to the subscription operation, the second electronic device can send at least one subscription request to the software service platform, and one subscription request is used to request to subscribe to a functional software module. Afterwards, the software service platform can receive at least one subscription request from the second electronic device (or the target tenant account).
[0205] It should be noted that the second electronic device may send one subscription request each time, or the second electronic device may send multiple subscription requests at the same time, which is not limited in the embodiment of the present application.
[0206] For each functional software module subscribed by a subscription request, the software service platform can deploy the functional software module for the tenant according to the multi-tenant deployment mode corresponding to the functional software module and / or the resource configuration information corresponding to the functional software module, so as to deploy at least one functional software module.
[0207] That is to say, a tenant can subscribe to a functional software module or multiple functional software modules corresponding to a software (such as functional software modules with different data isolation methods, functional software modules with different function sets). Alternatively, a tenant can also subscribe to functional software modules corresponding to different software. This embodiment of the application is not limited to this.
[0208] Exemplary, combined Fig.13 , the tenant can subscribe to functional software module 1, functional software module 2 and functional software module 3 at the same time.
[0209] In one possible design, the software service platform can deploy the functional software modules subscribed by the tenants on the software service platform.
[0210] In another possible design, the software service platform can deploy the functional software modules subscribed by the tenants on the first cloud platform, which is different from the software service platform.
[0211] After the software service platform allocates a functional software module to a tenant, the tenant can use the functional software module. The following describes the process of tenants using the functional software module.
[0212] In some embodiments, the tenant may use a functional software module with physical or logical isolation as the data isolation method. The at least one functional software module includes: a first functional software module, and a second functional software module allocated to a second tenant, and the first functional software module and the second functional software module provide services to the tenant in a data isolation method of physical or logical isolation. That is, the first tenant and the second tenant both subscribe to the functional software module with physical or logical isolation as the data isolation method.
[0213] In an embodiment of the present application, the software service platform can obtain a first service request of a first tenant and a second service request of a second tenant. Afterwards, the software service platform can use a first functional software module to process the first service request and use a second functional software module to process the second service request.
[0214] Exemplary, combined Figure 8 , when the first functional software module (such as functional software module A1) and the second functional software module (such as functional software module A2) provide services to tenants, the data isolation method is physical isolation, then the service request sent by tenant 1 is processed by the functional software module A1 deployed in physical device A, and the service request sent by tenant 2 is processed by the functional software module B1 deployed in physical device B. For another example, combined with Fig. 9 When the first functional software module (such as functional software module C1) and the second functional software module (such as functional software module C2) provide services to tenants, the data isolation method is logical isolation. The service request sent by tenant 3 is processed by the functional software module C1 deployed in the namespace a of the physical device C, and the service request sent by tenant 4 is processed by the functional software module C2 deployed in the namespace b of the physical device C.
[0215] Optionally, when the functional software module is deployed on the first cloud platform, the software service platform can send a call request to the first cloud platform to call the functional software module in the first cloud platform to process the service request. In addition, the first cloud platform can send the processing result of processing the service request to the software service platform.
[0216] It is understandable that having different functional software modules handle service requests of different tenants can not only improve the security of tenants' use of cloud services, but also ensure the efficiency of processing service requests.
[0217] In other embodiments, the tenants may use a functional software module whose data isolation mode is data sharing. The at least one functional software module further includes: a third functional software module allocated to the third tenant and the fourth tenant, and the data isolation mode when the third functional software module provides services to the tenants is data sharing. That is, the third tenant and the fourth tenant both subscribe to the functional software module whose data is shared in the data isolation mode.
[0218] In the embodiment of the present application, the software service platform can obtain the third service request of the third tenant and the fourth service request of the fourth tenant. Afterwards, the software service platform can use the third functional software module to process the third service request and the fourth service request.
[0219] Exemplary, combined Fig.10 When the third functional software module (such as functional software module D1) provides services to tenants, the data isolation method is data sharing. Then the service requests sent by tenants 5 and 6 are processed by the functional software module D1 deployed in the namespace c of the physical device D.
[0220] It is understandable that having one functional software module handle service requests from different tenants can reduce the cost of tenants using cloud services.
[0221] In some embodiments, after the tenant subscribes to an application through the software service platform and before the software service platform deploys the application, the software service platform can deploy a tenant control software module for the tenant, which is used to manage the user account, resource configuration information, etc. under the tenant.
[0222] In an embodiment of the present application, the second electronic device may send a control application deployment request to the software service platform, and the control application deployment request includes: an application multi-tenancy mode of the tenant control software module. Afterwards, the software service platform may deploy the tenant control software module according to the application multi-tenancy mode of the tenant control software module.
[0223] For example, Fig.14 As shown, when tenants subscribe to applications, they can be divided into management and business aspects. In the management aspect, the management functions of tenants may include: single sign-on, organization / user master data management, permission management, etc. In the business aspect, multiple applications can be subscribed, such as functional software module 1 including function 1 and function 2, and functional software module 2 including function 3 and function 4. When performing tenant-level deployment, it can be divided into microservices of master data and management. At the same time, when performing functional software module-level deployment, functional software modules can be deployed according to business specifications (i.e., function sets) and multi-tenant deployment mode.
[0224] The following introduces the process of deploying functional software modules by taking the software service platform as an example to deploy functional software modules for target tenant accounts according to the multi-tenant deployment mode (the interval method between the indicated data) corresponding to the functional software modules and the resource configuration information corresponding to the functional software modules.
[0225] like Fig.15 As shown, the software service platform can determine the application multi-tenancy mode of the tenant control software module. If the application multi-tenancy mode of the tenant control software module is service request sharing, the software service platform determines whether there is a namespace of the tenant control software module and a microservice of the tenant control software module (such as network management service, tenant service, authorization service, etc.). If there is a namespace and microservice of the tenant control software module (and the tenant control software module of the namespace is service request sharing), the software service platform can reuse the tenant control software module and microservice of the namespace. If there is no namespace and microservice of the tenant control software module, the software service platform can create a namespace and deploy microservices for the tenant control software module (i.e., deploy the tenant control software module). If the application multi-tenancy mode of the tenant control software module is namespace isolation, the software service platform creates a namespace and microservice of the tenant control software module. If the application multi-tenancy mode of the tenant control software module is physical isolation, the software service platform allocates physical devices to the tenant control software module and deploys microservices on the physical devices.
[0226] Afterwards, the software service platform can determine the application multi-tenancy mode of the functional software module. If the application multi-tenancy mode of the functional software module is service request sharing, the software service platform determines whether there is a namespace and microservice of the functional software module. If there is a namespace and microservice of the functional software module (and the functional software module of the namespace is service request sharing), the software service platform can reuse the namespace and microservice. If there is no namespace and microservice of the functional software module, the software service platform can create a namespace for the functional software module and deploy microservices (i.e., functional software modules). If the application multi-tenancy mode of the functional software module is namespace isolation, the software service platform creates a namespace for the functional software module and deploys microservices. If the application multi-tenancy mode of the functional software module is physical isolation, the software service platform determines the physical device of the functional software module and deploys microservices on the physical device.
[0227] In the process of deploying microservices, the software service platform can determine the software configuration (such as image, script, etc.) of the functional software module based on the resource configuration information. Then, the software service platform can deploy the software configuration in the corresponding namespace or physical device.
[0228] In addition, the software service platform can determine the data multi-tenancy mode of the functional software module (the isolation method between the indicated data). If the data multi-tenancy mode of the functional software module is data sharing, the software service platform determines whether there is a data table corresponding to the functional software module. If there is a data table corresponding to the functional software module, reuse the already created data table. If the data table of the functional software module does not exist, create the data table of the functional software module. If the data multi-tenancy mode of the functional software module is data architecture isolation (i.e., shared database, independent use of data architecture), the software service platform creates the data architecture and data table of the functional software module. If the data multi-tenancy mode of the functional software module is database isolation (i.e., independent use of database, independent use of data architecture), the software service platform creates a new database and creates a data table.
[0229] It should be noted that the embodiments of the present application do not limit the database. For example, the database may be a hierarchical database, a network database, or a relational database service (RDS).
[0230] It is understandable that for each functional software module subscribed by the subscription request, the software service platform can deploy the functional software module for the target tenant account according to the multi-tenant deployment mode corresponding to the functional software module and / or the resource configuration information corresponding to the functional software module, so as to deploy at least one functional software module. In this way, the tenant can select different functional software modules in a software according to actual needs, which provides tenants with multiple choices and improves the tenant's user experience.
[0231] In some embodiments, after the software service platform deploys the tenant control software module for the tenant, the software service platform may also manage the tenant control software module.
[0232] In an embodiment of the present application, the software service platform may provide a tenant management interface, and the tenant application management interface is used to manage the tenant control software module.
[0233] For example, Fig.16 As shown, the software service platform can display a tenant management interface 1601, which can display information about the tenant control software module of "Tenant 1" and information about the tenant control software module of "Tenant 2". For example, the information about the tenant control software module can include: application name, subscription time, expiration time, order source, status, etc. The tenant management interface 1601 can also display an operation button (such as a "disable" button), which is used to trigger the tenant to stop using the tenant control software module. Optionally, the tenant management interface 1601 can display information about the tenant control software module of the software service platform.
[0234] In some embodiments, after a tenant subscribes to at least one functional software module through the software as a service platform, the tenant may manage the functional software module through the software as a service platform.
[0235] In an embodiment of the present application, the software service platform can obtain a service management request from the first tenant, and the service management request is used to request an update of the data isolation mode and / or function set when the first functional software module provides services to the first tenant. Afterwards, in response to the service management request from the first tenant, the software service platform can adjust the data isolation mode and / or function set when the first functional software module provides services to the first tenant.
[0236] In a possible design, when the service management request is used to request an isolation mode for updating data, the software service platform can adjust the multi-tenant deployment mode of the first functional software module according to the service management request. The service management request may include: an identifier of the functional software module, an identifier of the current multi-tenant deployment mode, and an identifier of the multi-tenant deployment mode to be updated.
[0237] It should be noted that the service management request may request to update the application multi-tenancy mode. Alternatively, the service management request may request to update the data multi-tenancy mode. Alternatively, the service management request may request to update the application multi-tenancy mode and the data multi-tenancy mode. This embodiment of the present application does not limit this.
[0238] For example, if the data isolation methods indicated by the current multi-tenant deployment mode include: service request sharing and data architecture isolation, and the data isolation methods indicated by the multi-tenant deployment mode to be updated include: namespace isolation and database isolation, the software service platform deploys the functional software module on a physical device, creates a new database, and stores the data in the new database.
[0239] In another possible design, when the service management request is used to request to update the function set, the software service platform can adjust the resource configuration information of the first functional software module according to the service management request. The service management request may include: an identifier of the functional software module, current resource configuration information, and resource configuration information to be updated.
[0240] In an exemplary embodiment, adjusting resource configuration information may include: adding resource configuration information, deleting resource configuration information, modifying resource configuration information, etc.
[0241] For example, if the current function set of the functional software module includes: function a and function b, the current resource configuration information includes: page a, page b, page element 1, page element 2, interface a, and interface b. The updated function set includes: function a, function b, and function c, and the resource configuration information to be updated may include: page a, page b, page c, page element 1, page element 2, page element 3, interface a, interface b, and interface c.
[0242] It should be noted that the process of the software service platform adjusting the resource configuration information of the subscribed functional software module can be the process of actively adjusting the application for the tenant, or it can be the process of updating the application version, that is, the version of the functional software module after adjustment is different from the version of the functional software module before adjustment.
[0243] Optionally, in a case where the service management request is used to request an update of a function set, the software service platform may adjust the API usage permission of the first function software module according to the service management request.
[0244] It is understandable that, through service management requests, the software service platform can adjust the data isolation method and / or function set of the subscribed functional software modules, so that after subscribing to the functional software modules, the tenants can change the relevant functions of the subscribed functional software modules according to actual needs, thereby improving the tenants' subscription experience.
[0245] In some embodiments, the subscription request may further include: subscription duration, that is, the subscription duration is the duration of the subscription function software module. For example, the subscription duration may be one week, one month, one year, etc.
[0246] In one possible design, the second electronic device may send a renewal request to the software service platform, where the renewal request is used to request an update of the subscription duration of the first functional software module. The software service platform may receive the renewal request from the second electronic device and update the subscription duration of the first functional software module.
[0247] In some embodiments, after the tenant subscribes to the functional software module through the software-as-a-service platform, the tenant may create an account for the functional software module so that the user can use the functional software module through the account.
[0248] In an embodiment of the present application, the second electronic device may send a user creation request to the software service platform, the user creation request being used to request the creation of a target user account for the first functional software module, the first functional software module being any functional software module that the target tenant account has subscribed to among multiple functional software modules, the target user account being a first type of account or a second type of account, the first type of account being used to use the functional software module, and the second type of account being used to manage the functional software module. Afterwards, the software service platform may receive the user creation request from the target tenant account, and generate the target user account according to the user creation request, so as to establish a relationship between the target user account and the first functional software module.
[0249] In a possible design, the user creation request may include: an identifier of the first functional software module and an account type. When the account type is a first-category account, the target user account generated by the software service platform is a first-category account, and the target user account can use the first functional software module. When the account type is a second-category account, the target user account generated by the software service platform is a second-category account, and the target user account can manage the first functional software module.
[0250] It should be understood that the target user account can use the first functional software module means that the electronic device that logs into the target user account can use the functional software module. The target user account can manage the first functional software module means that the electronic device that logs into the target user account can use the functional software module, and can adjust the configuration of the functional software module (such as used resources, multi-tenant deployment mode, function set, etc.), and can manage the user account that uses the first functional software module, etc.
[0251] It is understandable that the software service platform can enable other users to use the functional software modules by creating user accounts for the subscribed functional software modules. In addition, user accounts are divided into first-class accounts and second-class accounts, which can facilitate tenants to set different user account types and manage user permissions.
[0252] In some embodiments, after the tenant creates a user account through the software-as-a-service platform, the account type of the user account may also be adjusted.
[0253] In the embodiment of the present application, the second electronic device may send a first user management request to the software service platform, the first user management request is used to adjust the account type of the target user account in the first functional software module, and the software service platform may receive the first user management request from the target tenant account. Afterwards, the software service platform adjusts the account type of the target user account in the first functional software module according to the first user management request.
[0254] In an exemplary embodiment, the first user management request may include: a target user account and a target account type. If the current target user account is a first-type account, the target account type may be a second-type account, and the software service platform may adjust the target account from the first-type account to the second-type account.
[0255] It is understandable that, through the first user management request, the software service platform can adjust the account type of the target user account, thereby adjusting the permissions of the user account to facilitate the tenant's management of the user account.
[0256] In some embodiments, the tenant can not only adjust the account type of the user account through the software service platform, but also adjust the usage permissions of the functional software modules for the user account.
[0257] In an embodiment of the present application, the second electronic device may send a second user management request to the software service platform, the second user management request being used to request the addition of an account type of the target user account in the second functional software module, the second functional software module being any functional software module to which the target tenant account has subscribed among the plurality of functional software modules, the second functional software module being different from the first functional software module. Afterwards, the software service platform receives the second user management request from the target tenant account, and according to the second user management request, adds the account type of the target user account in the second functional software module.
[0258] That is to say, the software service platform can establish an association relationship between a user account and multiple functional software modules, and the account types of the user account in different functional software modules are different.
[0259] For example, Fig.17 As shown, user account 1 can be a first type of account in functional software module 1, can be a second type of account in functional software module 2, and can be a first type of account in functional software module 3.
[0260] Optionally, a functional software module may also be associated with at least one first-category account and / or at least one second-category account.
[0261] Exemplary, combined Fig.17 , user account 2 is a first-class account in functional software module 1 and is also a first-class account in functional software module 2.
[0262] It is understandable that, through the second user management request, the permission of a new functional software module can be added to the target user account, so that the tenant can manage the user account more conveniently to improve the user experience.
[0263] In some embodiments, the software service platform can also monitor the amount of resources used by the functional software modules.
[0264] In an embodiment of the present application, the software service platform can obtain the resource usage of the first functional software module. Afterwards, the software service platform can compare the resource usage of the first functional software module with a preset resource threshold. If the resource usage of the first functional software module is greater than the preset resource threshold, the software service platform generates a resource warning message, and the resource warning message is used to indicate that the resource usage is greater than the preset resource threshold.
[0265] In one possible design, the resource usage of the first functional software module refers to the amount of resources used by the first functional software module. The embodiment of the present application does not limit the resources. For example, the resources may include: computing resources, storage resources, network resources, etc.
[0266] It should be noted that the embodiments of the present application do not limit the preset resource amount threshold. For example, the preset resource amount threshold is 800 MHz, 1000 MHz, 5000 MHz, etc.
[0267] For example, if the amount of resources used by functional software module a is 1000 and the preset resource threshold is 800, the software service platform can generate a resource alarm message, such as "The resources used by functional software module a have exceeded the package threshold, please adjust in time."
[0268] Optionally, the preset resource amount threshold may be set by the software as a service platform, or may be set by a tenant.
[0269] In an exemplary embodiment, the second electronic device may send a resource subscription request to the software service platform, the resource subscription request being used to request a target resource amount. The software service platform receives the resource subscription request from the second electronic device and sets a target resource amount for the target tenant account.
[0270] That is, the target tenant account has subscribed to the resources of the target resource volume, and the target tenant account can use the resources of the target resource volume.
[0271] Optionally, the resource subscription request may include an identifier of the first functional software module, and the software service platform may set a target resource amount for the first functional software module.
[0272] That is, the target tenant account subscribes to the target resource amount for the first functional software module, and the first functional software module can use the target resource amount.
[0273] It is understandable that the software service platform can monitor the resource usage of the applications used by the tenants. In the case where the functional software module uses a large amount of resources, the tenant can be notified through an alarm message.
[0274] Optionally, the software service platform can obtain the resource usage of all applications subscribed by the target tenant account. Afterwards, the software service platform can determine the tenant resource usage based on the resource usage of all applications subscribed by the target tenant account, and the tenant resource usage is the sum of the resource usage of all subscribed applications.
[0275] The following is an introduction to the process of software providers uploading software and tenants subscribing to cloud services in this application with specific examples. Fig.18 As shown, the software provider (i.e., the first electronic device) can prepare the front-end image and back-end image of the software and the access path, port and other information (i.e., software configuration). Afterwards, the first electronic device can put the functional software module on the platform (i.e., the software service platform). The specific listing process may include: entering the component information (component name, component type, microservice access prefix, port number) contained in the software, entering the version of the image of the component corresponding to the software, the warehouse address of the image, etc., entering the database execution script used for software initialization, entering the configuration item file corresponding to the component under the software, and entering the resource information of the application (page, page element, interface, etc.). Then, the first electronic device can formulate multiple functional software modules (i.e., different packages corresponding to the software) through the software service platform. Specifically, the first electronic device can enter the basic new information of the package (package name, supported enterprise scale, etc.) on the software service platform, enter the data multi-rent mode (also known as the data multi-group model) and the application multi-rent mode (also known as the application multi-group model), and can also enter the resource configuration information. In this way, the software service platform can configure multiple functional software modules corresponding to the software. Then, the tenant can subscribe to the functional software module. The software service platform can complete the deployment of functional software modules according to the data multi-tenancy mode, application multi-tenancy mode, front-end and back-end images, and database initialization scripts, and configure file information. In addition, the target tenant account can implement user management, organization management and other functions through the console application (i.e., tenant control software module). Then, the tenant can log in and use the functional software module, and the software service platform can implement tenant management, operation, and other functions.
[0276] The above mainly introduces the solution provided by the embodiment of the present application from the perspective of an electronic device. It is understandable that, in order to realize the above functions, the electronic device includes a hardware structure and / or software module corresponding to the execution of each function. Those skilled in the art should easily realize that, in combination with the method steps of a software service of each example described in the embodiment disclosed in this application, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or electronic device software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0277] The embodiments of the present application can divide the software service device into functional modules or functional units according to the above method examples. For example, each functional module or functional unit can be divided according to each function, or two or more functions can be integrated into one processing module. The above integrated modules can be implemented in the form of hardware or in the form of software functional modules or functional units. Among them, the division of modules or units in the embodiments of the present application is schematic, which is only a logical functional division. There may be other division methods in actual implementation.
[0278] The present application also provides a software service device, such as Fig.19 As shown, it includes: an acquisition module 1901, a processing module 1902, and a sending module 1903.
[0279] The acquisition module 1901 is used to acquire software configuration instructions, which are used to instruct the acquisition of target software. The acquisition module 1901 is also used to acquire cloud service configuration instructions, which are used to instruct the configuration of a first cloud service according to the target software. The first cloud service includes at least one functional software module. The cloud service configuration instructions also include a multi-tenant deployment mode selection instruction, which is used to instruct the acquisition of a multi-tenant deployment mode. The multi-tenant deployment mode is used to indicate the isolation method between multiple tenant data when the first cloud service provides services to multiple tenants. The isolation method between multiple tenant data includes at least one of the following: physical isolation, logical isolation, and data sharing. Processing module 1902 is used to configure the first cloud service according to the cloud service configuration instruction. The first cloud service is used to remotely provide the functions of the target software to the tenant according to at least one functional software module. The functions of the target software include at least one of the following: data processing function, data storage function. The first cloud service also includes a tenant management module. The tenant management module is used to allocate a first functional software module to the first tenant according to the request of the first tenant among multiple tenants. The first functional software module is used to provide the functions of the target software to the first tenant. The first functional software module allocated to the first tenant by the tenant management module satisfies the isolation method between the data of multiple tenants indicated by the multi-tenant deployment mode.
[0280] In one possible design, sending module 1903 is used to provide a multi-tenant configuration interface, and the multi-tenant configuration interface package is used to prompt for input of a multi-tenant deployment mode.
[0281] In another possible design, the acquisition module 1901 is further used to acquire the first service request of the first tenant and the second service request of the second tenant. The processing module 1902 is further used to process the first service request using the first functional software module. The processing module 1902 is further used to process the second service request using the second functional software module.
[0282] Among them, the acquisition module 1901, the processing module 1902, the sending module 1903 and can all be implemented by software, or can be implemented by hardware. Exemplarily, the following takes the acquisition module 1901 as an example to introduce the implementation method of the acquisition module 1901. Similarly, the implementation methods of the processing module 1902, the sending module 1903 and can refer to the implementation method of the acquisition module 1901.
[0283] As an example of a software functional unit, the acquisition module 1901 may include code running on a computing instance. Among them, the computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Further, the above-mentioned computing instance may be one or more. For example, the acquisition module 1901 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 in the same region (region) or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including a data center or multiple data centers with close geographical locations. Among them, usually a region may include multiple AZs.
[0284] Similarly, multiple hosts / virtual machines / containers used to run the code can be distributed in the same virtual private cloud (VPC) or in multiple VPCs. Usually, a VPC is set up in a region. For cross-region communication between two VPCs in the same region and between VPCs in different regions, a communication gateway needs to be set up in each VPC to achieve interconnection between VPCs through the communication gateway.
[0285] As an example of a hardware functional unit, the acquisition module 1901 may include at least one computing device, such as a server, etc. Alternatively, the acquisition module 1901 may also be a device implemented using 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) or any combination thereof.
[0286] The multiple computing devices included in the acquisition module 1901 can be distributed in the same region or in different regions. The multiple computing devices included in the acquisition module 1901 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the acquisition module 1901 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
[0287] It should be noted that, in other embodiments, the acquisition module 1901 can be used to execute any step in the software servitization method, the processing module 1902 can be used to execute any step in the software servitization method, and the sending module 1903 can be used to execute any step in the software servitization method. The acquisition module 1901, the processing module 1902, the sending module 1903 and the steps responsible for implementation can be specified as needed. The full functions of the software servitization device are realized by implementing the acquisition module 1901, the processing module 1902, the sending module 1903 and the different steps in the software servitization method respectively.
[0288] The present application also provides a computing device 200. Fig. 20 As shown, the computing device 200 includes: a bus 2002, a processor 2004, a memory 2006, and a communication interface 2008. The processor 2004, the memory 2006, and the communication interface 2008 communicate with each other through the bus 2002. The computing device 200 can be a server or a terminal device. It should be understood that the present application does not limit the number of processors and memories in the computing device 200.
[0289] The bus 2002 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig. 20 The bus 2004 may include a path for transmitting information between various components of the computing device 200 (eg, the memory 2006, the processor 2004, and the communication interface 2008).
[0290] The processor 2004 may include any one or more of a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).
[0291] The memory 2006 may include a volatile memory, such as a random access memory (RAM). The processor 2004 may also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state drive (SSD).
[0292] The memory 2006 stores executable program codes, and the processor 2004 executes the executable program codes to respectively implement the functions of the aforementioned acquisition module 1901, processing module 1902, and sending module 1903, thereby implementing the software service method. That is, the memory 2006 stores instructions for executing the software service method.
[0293] The communication interface 2003 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 200 and other devices or a communication network.
[0294] The embodiment of the present application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.
[0295] like Fig.21 As shown, the computing device cluster includes at least one computing device 200. The memory 2006 in one or more computing devices 200 in the computing device cluster may store the same instructions for executing the software servitization method.
[0296] In some possible implementations, the memory 2006 of one or more computing devices 200 in the computing device cluster may also store partial instructions for executing the software servitization method. In other words, the combination of one or more computing devices 200 may jointly execute the instructions for executing the software servitization method.
[0297] It should be noted that the memory 2006 in different computing devices 200 in the computing device cluster can store different instructions, which are respectively used to execute part of the functions of the software service-based device. That is, the instructions stored in the memory 2006 in different computing devices 200 can implement the functions of one or more modules in the acquisition module 1901, the processing module 1902 and the sending module 1903.
[0298] In some possible implementations, one or more computing devices in the computing device cluster may be connected via a network, which may be a wide area network or a local area network. Fig. 22 A possible implementation is shown. Fig. 22 As shown, two computing devices 200A and 200B are connected via a network. Specifically, the network is connected via a communication interface in each computing device. In this type of possible implementation, the memory 2006 in the computing device 200A stores instructions for executing the functions of the acquisition module 1901 and the sending module 1903. At the same time, the memory 2006 in the computing device 200B stores instructions for executing the functions of the processing module 1902.
[0299] Fig. 22 The connection method between the computing device clusters shown can be based on the consideration that the software service method provided in this application requires the storage of a large amount of user data (such as tenant data, business data) and software configuration data of various software, so it is considered that the functions implemented by the processing module 1902 are handed over to the computing device 200B for execution.
[0300] It should be understood that Fig. 22 The functions of the computing device 200A shown in FIG. 200A may also be completed by multiple computing devices 200. Similarly, the functions of the computing device 200B may also be completed by multiple computing devices 200.
[0301] The present application embodiment also provides another computing device cluster. The connection relationship between the computing devices in the computing device cluster can be similar to that of Fig.21 and Fig. 22 The connection mode of the computing device cluster is different in that the memory 2006 in one or more computing devices 200 in the computing device cluster may store the same instructions for executing the software servitization method.
[0302] In some possible implementations, the memory 2006 of one or more computing devices 200 in the computing device cluster may also store partial instructions for executing the software servitization method. In other words, the combination of one or more computing devices 200 may jointly execute the instructions for executing the software servitization method.
[0303] The embodiment of the present application also provides a computer program product including instructions. The computer program product may be software or a program product including instructions that can be run on a computing device or stored in any available medium. When the computer program product is run on at least one computing device, the at least one computing device is caused to perform a method of software service, or a method of software service.
[0304] The embodiment of 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 tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk). The computer-readable storage medium includes instructions that instruct the computing device to execute a method for software servitization, or instruct the computing device to execute a method for software servitization.
[0305] The above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the protection scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for software service, characterized in that: The method comprises: Acquire a software configuration instruction, wherein the software configuration instruction is used to instruct acquisition of target software; Obtaining a cloud service configuration instruction, the cloud service configuration instruction is used to instruct configuration of a first cloud service according to the target software, the first cloud service includes at least one functional software module, the cloud service configuration instruction further includes a multi-tenant deployment mode selection instruction, the multi-tenant deployment mode selection instruction is used to instruct acquisition of a multi-tenant deployment mode, the multi-tenant deployment mode is used to indicate an isolation method between data of multiple tenants when the first cloud service provides services to multiple tenants, the isolation method between data of multiple tenants includes at least one of the following: physical isolation, logical isolation, and data sharing; The first cloud service is configured according to the cloud service configuration instruction, the first cloud service is used to remotely provide the function of the target software to the tenant according to the at least one functional software module, the function of the target software includes at least one of the following: data processing function, data storage function, the first cloud service also includes a tenant management module, the tenant management module is used to allocate a first functional software module to the first tenant according to a request of the first tenant among the multiple tenants, the first functional software module is used to provide the function of the target software to the first tenant, and the first functional software module allocated to the first tenant by the tenant management module satisfies the isolation method between the multiple tenant data indicated by the multi-tenant deployment mode.
2. The method according to claim 1, characterized in that The data includes: business data, and the multi-tenant deployment mode includes: a data multi-tenancy mode, and the data multi-tenancy mode is used to indicate the isolation method between the business data of the multiple tenants when the first cloud service provides services to the multiple tenants; The isolation method between the business data of the multiple tenants indicated by the data multi-tenancy mode includes at least one of the following: database isolation, data architecture isolation, data table isolation, and business data sharing.
3. The method according to claim 1 or 2, characterized in that: The data further includes: a service request, and the multi-tenant deployment mode further includes: an application multi-tenancy mode, the application multi-tenancy mode being used to indicate an isolation method between service requests of the multiple tenants when the first cloud service provides services to the multiple tenants; The isolation method between the service requests of the multiple tenants indicated by the application multi-tenancy mode includes at least one of the following: physical isolation, container isolation, virtual machine isolation, namespace isolation, and service request sharing.
4. The method according to any one of claims 1 to 3, characterized in that The method further comprises: A multi-tenant configuration interface is provided, wherein the multi-tenant configuration interface is used to prompt for input of the multi-tenant deployment mode.
5. The method according to any one of claims 1 to 4, characterized in that The cloud service configuration instructions also include: resource configuration instructions, the resource configuration instructions are used to instruct the acquisition of resource configuration information, the resource configuration information is used to indicate the function set of the target software provided by the first cloud service to the multiple tenants; wherein, the first functional software module is specifically used to provide the first tenant with at least one function in the function set indicated by the resource configuration information.
6. The method according to claim 5, characterized in that The function set of the target software includes a first function and a second function, and the method further includes: Provide a first function to a first tenant through a first programming interface API of a first functional software module, and provide a second function to a second tenant through a second API of the first functional software module; or, The at least one functional software module further includes a second functional software module, and the first function is provided to the first tenant through the first functional software module, and the second function is provided to the second tenant through the second functional software module.
7. The method according to any one of claims 1 to 6, characterized in that The at least one functional software module includes: the first functional software module and a second functional software module allocated to the second tenant, and the data isolation method when the first functional software module and the second functional software module provide services to the tenant is the physical isolation or the logical isolation; the method further includes: Obtaining a first service request of the first tenant and a second service request of the second tenant; Processing the first service request using the first functional software module; The second service request is processed using the second functional software module.
8. The method according to any one of claims 1 to 7, characterized in that The at least one functional software module further includes: a third functional software module allocated to the third tenant and the fourth tenant, wherein the data isolation mode when the third functional software module provides services to the tenants is the data sharing; and the method further includes: Acquire a third service request of the third tenant and a fourth service request of the fourth tenant; The third service request and the fourth service request are processed using the third functional software module.
9. The method according to any one of claims 1 to 8, characterized in that The software configuration instruction includes any one of the following: software configuration of the target software, a storage address of the target software, and a target communication interface, where the target communication interface is used to communicate with a second cloud service where the target software is deployed.
10. The method according to any one of claims 1 to 9, characterized in that The method further comprises: Obtaining a service management request of the first tenant, where the service management request is used to request updating a data isolation method and / or a function set when the first functional software module provides services to the first tenant; In response to the service management request of the first tenant, the data isolation mode and / or function set when the first functional software module provides services to the first tenant is adjusted.
11. A software service device, characterized in that: The method comprises: An acquisition module, used for acquiring software configuration instructions, wherein the software configuration instructions are used for instructing to acquire target software; The acquisition module is further used to acquire a cloud service configuration instruction, the cloud service configuration instruction is used to instruct to configure a first cloud service according to the target software, the first cloud service includes at least one functional software module, the cloud service configuration instruction also includes a multi-tenant deployment mode selection instruction, the multi-tenant deployment mode selection instruction is used to instruct to acquire a multi-tenant deployment mode, the multi-tenant deployment mode is used to indicate an isolation method between the data of the multiple tenants when the first cloud service provides services to the multiple tenants, and the isolation method between the data of the multiple tenants includes at least one of the following: physical isolation, logical isolation, and data sharing; A processing module is used to configure the first cloud service according to the cloud service configuration instruction, the first cloud service is used to remotely provide the functions of the target software to the tenant according to the at least one functional software module, the functions of the target software include at least one of the following: data processing function, data storage function, the first cloud service also includes a tenant management module, the tenant management module is used to allocate a first functional software module to the first tenant among the multiple tenants according to a request of the first tenant, the first functional software module is used to provide the functions of the target software to the first tenant, and the first functional software module allocated by the tenant management module to the first tenant meets the isolation method between the multiple tenant data indicated by the multi-tenant deployment mode.
12. The device according to claim 11, characterized in that The data includes: business data, and the multi-tenant deployment mode includes: a data multi-tenancy mode, and the data multi-tenancy mode is used to indicate the isolation method between the business data of the multiple tenants when the first cloud service provides services to the multiple tenants; The isolation method between the business data of the multiple tenants indicated by the data multi-tenancy mode includes at least one of the following: database isolation, data architecture isolation, data table isolation, and business data sharing.
13. The device according to claim 11 or 12, characterized in that The data further includes: a service request, and the multi-tenant deployment mode further includes: an application multi-tenancy mode, and the application multi-tenancy mode is used to indicate an isolation method between service requests of the multiple tenants when the first cloud service provides services to the multiple tenants; The isolation method between the service requests of the multiple tenants indicated by the application multi-tenancy mode includes at least one of the following: physical isolation, container isolation, virtual machine isolation, namespace isolation, and service request sharing.
14. The device according to any one of claims 11 to 13, characterized in that The device also includes: The sending module is used to provide a multi-tenant configuration interface, and the multi-tenant configuration interface is used to prompt for input of the multi-tenant deployment mode.
15. The device according to any one of claims 11 to 14, characterized in that The cloud service configuration instructions also include: resource configuration instructions, the resource configuration instructions are used to instruct the acquisition of resource configuration information, the resource configuration information is used to indicate the function set of the target software provided by the first cloud service to the multiple tenants; wherein, the first functional software module is specifically used to provide the first tenant with at least one function in the function set indicated by the resource configuration information.
16. The device according to claim 15, characterized in that The function set of the target software includes a first function and a second function, and the method further includes: Provide a first function to a first tenant through a first programming interface API of a first functional software module, and provide a second function to a second tenant through a second API of the first functional software module; or, The at least one functional software module further includes a second functional software module, and the first function is provided to the first tenant through the first functional software module, and the second function is provided to the second tenant through the second functional software module.
17. The device according to any one of claims 11 to 16, characterized in that The at least one functional software module includes: the first functional software module and a second functional software module allocated to the second tenant, and the data isolation method when the first functional software module and the second functional software module provide services to the tenant is the physical isolation or the logical isolation; The acquisition module is further used to acquire a first service request of the first tenant and a second service request of the second tenant; The processing module is further configured to process the first service request using the first functional software module; The processing module is further configured to process the second service request using the second functional software module.
18. The device according to any one of claims 11 to 17, characterized in that The at least one functional software module further includes: a third functional software module allocated to a third tenant and a fourth tenant, wherein the data isolation mode when the third functional software module provides services to the tenants is the data sharing; The acquisition module is further used to acquire the third service request of the third tenant and the fourth service request of the fourth tenant; The processing module is further configured to use the third functional software module to process the third service request and the fourth service request.
19. The device according to any one of claims 11 to 18, characterized in that The software configuration instruction includes any one of the following: software configuration of the target software, a storage address of the target software, and a target communication interface, where the target communication interface is used to communicate with a second cloud service where the target software is deployed.
20. The device according to any one of claims 11 to 19, characterized in that The method further comprises: The acquisition module is further used to acquire a service management request of the first tenant, where the service management request is used to request to update a data isolation method and / or a function set when the first functional software module provides services to the first tenant; The processing module is further configured to, in response to a service management request of the first tenant, adjust a data isolation method and / or a function set when the first functional software module provides services to the first tenant.
21. A computing device cluster, characterized in that: comprising at least one computing device, each computing device comprising a processor and a memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method according to any one of claims 1 to 10.
22. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster executes the method according to any one of claims 1 to 10.
23. A computer-readable storage medium, characterized in that: The method comprises computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster performs the method according to any one of claims 1 to 10.
Citation Information
Cited By
Configuration methods, terminal devices and network devices
WO2026193671A1