A control method, storage medium, electronic device and program product

By obtaining the comparison and analysis of the device hardware configuration information and the license configuration information, and determining and demonstrating the target functions that support use, the problem of software functions that cannot be used normally due to the device hardware not being supported is solved, and the user experience and system compatibility are improved.

CN120234781BActive Publication Date: 2025-08-12INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202510726006.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-05-30
Publication Date
2025-08-12
Estimated Expiration
2045-05-30

AI Technical Summary

Technical Problem

In the prior art, even if the user obtains the corresponding license, the software function cannot be used normally because the device hardware does not support it, which affects the user experience.

Method used

By obtaining the hardware configuration information of the device and the license configuration information of the software, performing comparison and analysis, we will determine whether each function supports use, and only display the target functions that are supported for use.

Benefits of technology

Ensure that users can only access functions that can be used normally under the hardware conditions of their devices, improve user experience and enhance the compatibility and controllability of the software system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120234781B_ABST
    Figure CN120234781B_ABST
Patent Text Reader

Abstract

The present application discloses a control method, storage medium, electronic device and program product, which relates to the field of data storage technology. First, in response to the startup instruction of the software, the hardware configuration information of the device and the license configuration information of the software are obtained; wherein the license configuration information includes indication information of whether each function of the software supports the use for different device hardware configurations; then, based on the hardware configuration information and the license configuration information, a comparative analysis is performed to determine whether each function supports the use for the hardware configuration of the device; then, based on the analysis results, the target function that supports the use is determined from each function, and the target function is displayed. Compared with the current existing technology, the present application can not only realize the management of function usage permissions, but also realize the judgment of whether the function actually supports operation, ensuring that users can only access functions that can be normally used under the hardware conditions of their devices, while improving the user experience and enhancing the compatibility and controllability of the software system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the technical field of data storage, and in particular to a control method, a storage medium, an electronic device, and a program product. Background Art

[0002] License Control refers to a method of protecting the rights and intellectual property rights of manufacturers through authorization documents or serial numbers. It can also realize flexible business models, improve user experience and enhance market competitiveness.

[0003] Currently, licensing control in related technologies focuses on controlling the availability of software features. For example, a user may be presented with complete software functionality, but some or all of the functionality may be unavailable due to a lack of appropriate licensing. However, even with licensed software, some features may be unavailable due to hardware incompatibilities, impacting the user experience. Summary of the Invention

[0004] The present disclosure provides a control method, storage medium, electronic device, and program product. Its primary purpose is to address the technical issue in related technologies where some software functions cannot be used normally even if the user has obtained the corresponding license due to hardware not supporting them, thus affecting the user's experience.

[0005] In a first aspect, the present application provides a control method, comprising:

[0006] In response to a software startup instruction, obtaining hardware configuration information of the device and license configuration information of the software, wherein the license configuration information includes information indicating whether various functions of the software are supported for different device hardware configurations;

[0007] Performing a comparative analysis based on the hardware configuration information and the license configuration information to determine whether each function is supported by the hardware configuration of the device;

[0008] According to the analysis result, a target function supported for use is determined from the various functions, and the target function is displayed.

[0009] In a second aspect, the present application provides a control device, comprising:

[0010] an acquisition module configured to, in response to a software startup instruction, acquire hardware configuration information of a device and license configuration information of the software, wherein the license configuration information includes information indicating whether various functions of the software are supported for use with different device hardware configurations;

[0011] an analysis module configured to perform a comparative analysis based on the hardware configuration information and the permission configuration information to determine whether each function is supported by the hardware configuration of the device;

[0012] The determination module is configured to determine a target function supported for use from the various functions according to the analysis result, and display the target function.

[0013] In a third aspect, the present application provides a computer-readable storage medium having a computer program stored thereon, which implements the method of the first aspect when the computer program is executed by a processor.

[0014] In a fourth aspect, the present application provides an electronic device comprising a storage medium, a processor, and a computer program stored on the storage medium and executable on the processor, wherein the processor implements the method of the first aspect when executing the computer program.

[0015] In a fifth aspect, the present application provides a computer program product having a computer program stored thereon, which implements the method of the first aspect when the computer program is executed by a processor.

[0016] The present disclosure provides a control method, storage medium, electronic device and program product, wherein the method includes: first, in response to the startup instruction of the software, obtaining the hardware configuration information of the device and the license configuration information of the software; wherein the license configuration information includes indication information of whether each function of the software supports the use for different device hardware configurations; then, based on the hardware configuration information and the license configuration information, a comparative analysis is performed to determine whether each function supports the use for the hardware configuration of the device; then, based on the analysis results, the target function that supports the use is determined from each function, and the target function is displayed. Compared with the current existing technology, the present application combines the hardware configuration information with the license configuration information, filters out the target functions that support the use according to the analysis results, and only displays these target functions to the user, which can not only realize the management of the function use rights, but also realize the judgment of whether the function actually supports the operation, thereby ensuring that the user can only access the functions that can be normally used under the hardware conditions of their device, while improving the user experience and enhancing the compatibility and controllability of the software system.

[0017] It should be understood that the content described in this section is not intended to identify the key or important features of the embodiments of the present application, nor is it intended to limit the scope of the present application. Other features of the present application will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] In order to more clearly illustrate the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0019] Figure 1 A flow chart of a control method provided in an embodiment of the present application is shown;

[0020] Figure 2 A flow chart of another control method provided in an embodiment of the present application is shown;

[0021] Figure 3 A schematic diagram showing an example provided by an embodiment of the present application is shown;

[0022] Figure 4 A schematic structural diagram of a control device provided in an embodiment of the present application is shown. DETAILED DESCRIPTION

[0023] The following will be combined with the accompanying drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0024] It should be noted that, in the description of this application, the terms "comprises," "includes," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. The terms "first," "second," etc., in this application are used to distinguish similar objects, and are not used to describe a particular order or sequence.

[0025] License control protects manufacturers' rights and intellectual property rights through authorization documents or serial numbers. It also enables flexible business models, improves user experience, and enhances market competitiveness. By properly designing and implementing a license control mechanism, developers can protect their own interests while providing users with better services and experiences, achieving a win-win situation.

[0026] Communication devices such as storage and firewalls have many advanced features, each with its own unique use case, thus meeting the diverse requirements of different customers. A customer may choose one or more advanced features based on their use case, rather than requiring all features. To manage costs, customers are reluctant to pay for features they don't use, and vendors are reluctant to give away too many advanced features for free. This is where licensing control comes in. For the same product, you can purchase only the features you need, saving customers money and protecting vendors' investments.

[0027] Storage products are generally divided into high-end, mid-range, and low-end products to meet various customer needs. Different products are not only differentiated in terms of hardware, but also have some trade-offs in software features. However, to facilitate product maintenance and save costs, a system is often adapted to different hardware platforms. This requires licensing to control the advanced features supported by different hardware platforms, while also controlling the use rights of multiple advanced features on a single platform.

[0028] Currently, licensing control solutions can only control whether a function can be used and the scope or quantity of its use. They cannot control whether the same set of software needs to support the function for different hardware configurations of communication equipment (such as the number of CPU cores, memory capacity, number and type of hard disks, etc.). Therefore, they cannot meet the diverse needs of the market and cannot accurately control software cost investment.

[0029] In order to improve the technical problem that some software functions in the current related technologies cannot be used normally even if the user obtains the corresponding license because the device hardware does not support it, which affects the user's experience.

[0030] This embodiment provides a control method, such as Figure 1 As shown, the method comprises the following steps:

[0031] Step 101: In response to a software startup instruction, obtain hardware configuration information of a device and license configuration information of the software.

[0032] The permission configuration information includes indication information on whether various functions of the software are supported for use with respect to different device hardware configurations. In this embodiment, the device may be a storage device.

[0033] In some examples, the license configuration information explicitly indicates whether various software features are supported on different hardware configurations, providing a basis for subsequent feature enablement decisions. Alternatively, a high-level feature may be used to refer to a specific software function (such as storage), whose availability depends on the device's hardware configuration and the instructions in the pre-configured license configuration information.

[0034] Step 102: Perform a comparative analysis based on the hardware configuration information and the license configuration information to determine whether each function is supported by the hardware configuration of the device.

[0035] For example, the hardware configuration information of the device, such as the number of CPU cores, memory capacity, and number of hard disks, can be read and then compared with the preset license configuration information (including the support status of each function under different hardware configurations) to determine whether the various functions of the software meet the support conditions of the current hardware environment, thereby determining which functions can be enabled and ensuring that the use of functions matches the hardware capabilities, thereby improving the system's compatibility, stability, and management efficiency.

[0036] Step 103: Determine the target function to be supported from among the various functions according to the analysis results, and display the target function.

[0037] For example, based on the comparative analysis results of hardware configuration information and preset policies, the system selects target functions that are in line with the current device capabilities and allowed to be enabled, and presents these functions to the user in a visual manner, thereby achieving precise control of the function display status and ensuring that users only see function options that match their devices and can be used normally, thereby improving the user experience.

[0038] Compared with the current existing technology, this embodiment first responds to the software startup instruction to obtain the hardware configuration information of the device and the license configuration information of the software; wherein, the license configuration information includes indication information on whether each function of the software supports the use for different device hardware configurations; then, based on the hardware configuration information and the license configuration information, a comparative analysis is performed to determine whether each function supports the use for the hardware configuration of the device; then, based on the analysis results, the target function that supports the use is determined from each function, and the target function is displayed. This embodiment first determines whether the license configuration is supported based on the product type, and on the basis that the feature is supported by the product, further determines whether the specific product model has the ability to support the feature in combination with the node type, so that the system can flexibly customize functional characteristics according to different hardware platforms, realize refined management and control of product functions, and improve the adaptability and flexibility of the software system.

[0039] In order to further illustrate the specific implementation process of the method of this embodiment, this embodiment provides the following Figure 2 The specific method shown includes:

[0040] Step 201: In response to a software startup instruction, obtain hardware configuration information of the device and license configuration information of the software.

[0041] The license configuration information includes information indicating whether each function of the software is supported for use with respect to different device hardware configurations.

[0042] For example, the system first obtains the device's hardware configuration information and software licensing information. Based on this information, the system defines the communication device's product name and corresponding Machine Type Model (MTM) value according to preset naming rules, taking into account the CPU type and processing capabilities. Each MTM value uniquely identifies a specific product model. For example, the MTM value corresponding to "Storage HF400G3-M25" is "3111-M25," indicating a hybrid flash storage product with an Intel CPU and 25 drive slots. The MTM value corresponding to "Storage HF400G3-M25F" is "3112-M25," representing an all-flash storage product within the same series. This correspondence between standardized naming and unique MTM values allows the system to accurately identify device models and their hardware capabilities, providing fundamental support for subsequent hardware-configuration-based functional support determination and licensing control.

[0043] Optionally, step 201 may specifically include: obtaining pre-written target information from key product data on the backplane of the device and / or from key product data on the mainboard of the device; parsing the target information to obtain hardware configuration information.

[0044] For example, pre-written target information is retrieved from the key product data on the device's backplane or motherboard. This information contains the device's hardware configuration details and other important attributes. By parsing this target information, the device's hardware configuration information, such as CPU type, memory capacity, storage configuration, etc., can be accurately obtained. Specifically, at startup, the system can automatically read and parse the data in the VPD to identify the specific model of the device and its hardware specifications, and then determine whether the device supports specific advanced features or licenses, achieving a precise match between software functions and hardware capabilities.

[0045] In some examples, based on the market's varying demands for product performance, functionality, and cost, the system can predefine multiple node types at the initial design stage. These types are typically categorized into high-end, mid-end, and low-end levels to meet diverse application scenarios and user groups.

[0046] For example, high-end nodes are usually equipped with high-performance CPUs, large-capacity memory, and high-speed storage media, and are suitable for core business scenarios with high requirements for stability, processing power, and response speed; mid-range nodes strike a balance between performance and cost, and are suitable for most conventional business applications; low-end nodes are oriented towards basic functional requirements and are suitable for environments with limited budgets or low performance requirements.

[0047] For example, by pre-dividing node types, not only can the hardware resources be reasonably configured, but also differentiated management can be performed at the software license control level to ensure that product versions of different levels can match the corresponding market demand.

[0048] In some examples, to ensure that the configuration information of product types and node types is stable and reliable throughout the life cycle of the device, the system writes it into the backplane Vital Product Data (VPD) or the motherboard VPD for fixed storage. VPD is a standardized information structure stored in the non-volatile memory of hardware devices, commonly used to record the key attributes and configuration parameters of the device. By writing the product type (such as Storage HF400G3-M25, etc.) and the corresponding node type (high-end, mid-range, low-end) information into VPD, the device identity and hardware level can be uniquely identified, avoiding product identification errors caused by configuration file loss or tampering.

[0049] In some examples, the information in the VPD can be automatically read and verified by the software system when the device is started, providing a basis for subsequent function activation control, license verification, and technical support.

[0050] Step 202: Obtain first configuration information and second configuration information from the license configuration information.

[0051] The first configuration information includes indication information on whether each function supports the use of device hardware configurations of different products, and the second configuration information includes indication information on whether each function supports the use of device hardware configurations of different models under the product.

[0052] In some examples, first configuration information (svc_products.xml) and second configuration information (svc_nodetype.xml) files can be configured in the licensing control module according to product requirements to preset support for advanced features by hardware configurations of various products.

[0053] For example, the configuration in the svc_products.xml file defines whether a type of product supports a specific feature license, ensuring that the software functionality matches the overall strategy of the product line; while the svc_nodetype.xml file further refines it to specific device models, determining whether a certain model of device supports a specific feature license, thereby implementing function enablement control based on hardware capabilities.

[0054] In some examples, the combination of first and second configuration information enables not only broad licensing decisions based on product families, but also precise functional support determinations for specific hardware configurations, ensuring that end users can only access and use advanced features on their devices that are supported by the hardware and have been licensed accordingly. This layered configuration approach enhances system flexibility and maintainability, improves the user experience, and avoids issues with unavailable features due to hardware incompatibility.

[0055] Step 203: Compare the hardware configuration information, the first configuration information, and the second configuration information to determine whether each function is supported by the hardware configuration of the device.

[0056] In some examples, by obtaining the hardware configuration information of the device and combining it with the preset first configuration information and second configuration information, a multi-level comparative analysis can be performed to accurately determine whether each advanced function is allowed to be enabled under the current hardware configuration. This implements function permission control based on hardware capabilities, ensures that software functions match device hardware, avoids the enabling of incompatible or invalid functions, and improves system stability and adaptability.

[0057] Optionally, step 203 may specifically include: obtaining product information and node information of the device from the hardware configuration information; based on the first configuration information, determining whether the device hardware configuration for the product information of each function supports use; if there is a first function among each function that supports use of the device hardware configuration for the product information, then based on the second configuration information and node information, determining whether the first function supports use of the device hardware configuration for the model corresponding to the node information.

[0058] For example, when the device starts up, the licensing control module reads the product type, node type, and device memory capacity information from the VPD of the backplane and motherboard during the initialization phase. By parsing this data, the system can accurately identify the specific model of the device and its hardware configuration. Subsequently, the acquired data will be compared and analyzed with the configuration files svc_products.xml and svc_nodetype.xml to determine which feature license options are supported by the specific model device. The svc_products.xml file determines whether a certain type of product supports licenses for specific features, while svc_nodetype.xml is detailed to determine whether the specific device model supports these feature licenses. Based on this comparison result, the licensing control module will present all the feature license options supported by the device and automatically block those advanced features that are not supported by the current hardware configuration.

[0059] In some examples, such as Figure 3The overall decision logic flow is as follows: During system startup, the product name and its corresponding MTM value are predefined, along with the node type (e.g., high-end, mid-range, and low-end). This information is then written to the VPD on the backplane or motherboard for storage. Next, based on product requirements, the svc_products.xml and svc_nodetype.xml files are configured in the licensing control module to predefine support for advanced features for each product's hardware configuration. When the device boots and enters the initialization phase, the system reads and records the relevant information in the VPD, including key hardware configuration data such as product type, node type, and memory capacity.

[0060] For example, after the initialization phase, the system starts to perform a support judgment for the feature license: first, it judges whether the product information configuration in svc_products.xml is valid. If the configuration is invalid, it is directly determined that the feature license is not supported and is not displayed; if the configuration is valid, continue to check the node information configuration in svc_nodetype.xml. Then further verify the validity of the node information configuration in svc_nodetype.xml. If the configuration is invalid, it is also determined that the feature license is not supported and is not displayed; if the configuration is valid, continue to check whether the memory configuration of the node meets the requirements. Then evaluate whether the memory configuration of the node meets the requirements of the feature license. If the memory configuration does not meet the requirements, it is determined that the feature license is not supported and is not displayed; if the memory configuration meets the requirements, the feature license is finally displayed.

[0061] In some examples, by comparing hardware configuration information, first configuration information, and second configuration information, it is possible to accurately determine which feature licenses are supported on the current device, and only display these supported function options, thereby preventing users from attempting to use incompatible advanced features, improving user experience and system stability.

[0062] Step 204: Determine the target function to be supported from among the various functions according to the analysis results, and display the target function.

[0063] For example, based on the results of the comparative analysis, the system selects target functions that meet the support conditions of the current device hardware configuration from all the functions of the software, and classifies and organizes these normally usable functions and displays them to the user, ensuring that the user only sees function options that match their device, thereby improving usage efficiency and experience.

[0064] Optionally, based on the relevant content of step 203, step 204 may specifically include: if the first function is supported for the device hardware configuration of the model corresponding to the node information, determining the target function based on the first function and displaying the target function.

[0065] For example, when the first function is determined to be supported under the model and hardware configuration corresponding to the device node information, the system confirms the function as the target function, includes it in the list of enabled functions, and finally presents it to the user in a visual manner to ensure that it can be used normally on the current device.

[0066] Optionally, before determining the target function based on the first function as described above, the method of this embodiment may further specifically include: obtaining the first hardware resources currently available to the device; and obtaining the second hardware resources required to support the use of the first function from the second configuration information; accordingly, step 204 may further specifically include: making a judgment based on the first hardware resources and the second hardware resources, and if the hardware resources currently available to the device support the use of the first function, then using the first function as the target function.

[0067] For example, the first hardware resources actually possessed by the device are compared and analyzed with the required second hardware resources to determine whether the current device meets the hardware conditions for the operation of the function. Only when the available resources of the device reach or exceed the resource configuration standards required for the function, the first function is confirmed as the target function and included in the scope of final display and activation, thereby ensuring the stable operation and good performance of the function on the device.

[0068] Optionally, the above judgment is made based on the first hardware resources and the second hardware resources. If the hardware resources currently available to the device support the use of the first function, the first function is used as the target function. Specifically, it may also include: determining the first memory resources currently available to the device based on the first hardware resources, and determining the second memory resources required to support the use of the first function based on the second hardware resources; judging based on the first memory resources and the second memory resources. If the memory resources currently available to the device can support the use of the first function, the first function is used as the target function.

[0069] For example, before determining the target function, the system first evaluates the device's available first memory resources based on the device's current first hardware resources, and simultaneously obtains the second memory resource requirements required to support the use of the first function from the second configuration information. The system then compares and analyzes the device's existing first memory resources with the second memory resources required to support the first function. If the device's currently available memory resources meet or exceed the requirements to support the function, the system determines that the device can support the use of the first function, confirms it as the target function, and prepares to display it to the user for use, ensuring that the enabled function can run stably and efficiently on the device, avoiding functional failure or performance degradation due to insufficient memory.

[0070] Optionally, the license configuration information also includes license information on whether each function of the software supports trial for different device hardware configurations; accordingly, the method of this embodiment may further specifically include: determining the functions that support trial from the target functions based on the license information in the license configuration information; and in response to an execution instruction for the functions that support trial, controlling the execution of the functions that support trial according to the trial period.

[0071] In some examples, the system can filter out trial-supported functions from the identified target functions based on the trial license information in the license configuration information, and control their use according to the preset trial period when the user executes the function. For example, when a user attempts to enable a certain advanced function, the system will check whether the function is allowed for trial and the corresponding trial duration or number of times. If it is still within the trial period, normal use is allowed; otherwise, its use is restricted or the user is prompted to purchase a formal license. This not only enhances the flexibility of function use, but also provides strong support for product promotion and customer experience.

[0072] Optionally, the method of this embodiment also includes: determining the second function that is not supported from each function based on the analysis results; constructing a functional dependency graph between software functions, wherein the functional dependency graph includes functional nodes of each software function, and the edges between the functional nodes represent the dependency relationship between the software functions; taking the functional node of the second function in the functional dependency graph as the starting node, and performing traversal in the functional dependency graph; obtaining each functional node that is reachable from the starting node through a path during the traversal process, and the path is composed of edges; after the traversal is completed, using each functional node obtained by the traversal as an associated function that cannot operate normally because the second function does not support use; obtaining a simplified function that can replace the second function and / or the associated function, the simplified function belongs to the target function that is supported; filtering the target function according to the associated function; accordingly, step 204 may specifically include: displaying the target function after filtering out the associated function, and displaying the function introduction information of the simplified function that can replace the second function and / or the associated function.

[0073] In some examples, a layer-by-layer comparison can be performed based on hardware configuration information. If the analysis determines that the current product supports a certain function, the specific node model can be further determined to determine whether it meets the requirements, and the final judgment can be made based on the current device's available hardware resources. If a function cannot be enabled due to reasons such as product unsupport, node model mismatch, or insufficient hardware resource configuration, it will be determined as an unsupported secondary function. For example, if the device has insufficient memory or no independent graphics card, certain high-performance video export functions will be marked as secondary functions, ensuring that users can only access functions that their device actually supports and has been authorized for, thereby achieving precise function permission control and optimizing user experience.

[0074] For example, after traversing the function dependency graph, all function nodes connected by paths are considered to be all related functions that directly or indirectly depend on the second function. The target function is then further filtered based on these related functions to ensure that the function list presented to the user is consistent with the device capabilities and meets the functional requirements.

[0075] For example, a simplified function may have lower hardware requirements or more basic operational capabilities for its implementation, but can meet the user's core needs for the corresponding secondary function to a certain extent. For example, when certain high-performance video export functions are unavailable due to hardware limitations, low-definition video export functions can be used as simplified alternatives. By mapping and matching simplified functions with secondary functions, the system can provide users with feasible functional alternatives and display functional introduction information of simplified functions that can replace secondary functions and / or related functions on the interface, thereby improving the user experience.

[0076] In some embodiments, products and node types may be predefined, as exemplified in the following table:

[0077] Table 1

[0078]

[0079] For example, by pre-defining product types and node types and writing them into the VPD (key product data) of the device backplane or motherboard for solidification and preservation, it is ensured that information such as device model and hardware configuration can be accurately identified. At the same time, two configuration files, svc_products.xml and svc_nodetype.xml, are preset in the licensing control module to define the support of different products and nodes for various advanced features. Among them, svc_products.xml sets whether a certain type of product supports specific features and its trial rights, while svc_nodetype.xml is refined to the specific device model to further determine whether it has the corresponding function support capabilities, and the final judgment is made in combination with hardware parameters such as memory capacity.

[0080] For example, after the device is started, the licensing control module enters the initialization phase and automatically reads and parses key information such as the product name, MTM value, Model Type, node type, and memory configuration in the VPD. This data is then compared layer by layer with the policy configuration in svc_products.xml and svc_nodetype.xml: first, basic support is determined based on the product configuration, then further filtered based on the node configuration, and finally, the final supported features are determined based on hardware conditions such as memory capacity. For example, a product supports FlashCopy, NAS, Remote Copy, InMetro, etc. in the product configuration, but does not support SSD Cache; in the node configuration, FlashCopy support is blocked due to specific model restrictions; finally, based on the device memory configuration, the InMetro feature is further excluded, retaining only the NAS and Remote Copy functions.

[0081] In the above embodiment, the features that the product ultimately supports are NAS and Remote Copy, but not SSDCache, FlashCopy, and InMetro features. This configuration allows the product to be positioned as a low-end product, specifically for customers who only need to try out the NAS and Remote Copy functions. Since it is clear that the three advanced features of SSD Cache, FlashCopy, and InMetro are not supported, the team does not need to pay attention to these unsupported features during the development and testing process, thereby effectively reducing unnecessary development and testing workload, simplifying the R&D process, and thus reducing overall development costs. The system can also accurately present functional options on the user's device that are both authorized and meet hardware requirements, effectively avoiding the problem of function unavailability due to hardware incompatibility, improving user experience, and enhancing the flexibility and controllability of the system.

[0082] Compared with the existing technology, this embodiment implements a hierarchical determination mechanism for advanced features through a licensing control module. First, it determines whether the license configuration is supported based on the product type. On the premise that the product supports it, it further determines whether the specific product model has the ability to support the function in combination with the node type. The method of this embodiment can flexibly control the support of different products for advanced functions based on the hardware configuration of the storage device (such as the number of CPU cores, memory capacity, number of hard disks, etc.), thereby realizing hierarchical management based on the hardware platform. This mechanism not only meets the diverse needs of the market, enabling products to accurately adapt to different user scenarios, but also effectively controls the cost investment in software development and maintenance, solves the problem of the inability to flexibly control the support status of product functions in related technologies, and improves the controllability and flexibility of the system.

[0083] The embodiment of the present application also provides a control device as Figure 1 and Figure 2 The specific implementation of the method shown is as follows Figure 4 As shown, the device includes: an acquisition module 31, an analysis module 32 and a determination module 33.

[0084] an acquisition module 31 configured to, in response to a software startup instruction, acquire hardware configuration information of a device and license configuration information of the software, wherein the license configuration information includes information indicating whether various functions of the software are supported for use with different device hardware configurations;

[0085] An analysis module 32 is configured to perform a comparative analysis based on the hardware configuration information and the permission configuration information to determine whether each function is supported by the hardware configuration of the device;

[0086] The determination module 33 is configured to determine a target function to be supported from among the various functions according to the analysis result, and to display the target function.

[0087] In some examples of this embodiment, the analysis module 32 is specifically configured to obtain first configuration information and second configuration information from the license configuration information, wherein the first configuration information includes indication information on whether the device hardware configurations of different products support the use of each function, and the second configuration information includes indication information on whether the device hardware configurations of different models under the product support the use of each function; based on the hardware configuration information, the first configuration information and the second configuration information, a comparison is performed to determine whether the hardware configuration of the device supports the use of each function.

[0088] In some examples of this embodiment, the analysis module 32 is further configured to obtain the product information and node information of the device from the hardware configuration information; based on the first configuration information, determine whether the respective functions are supported for use by the device hardware configuration for the product information; if there is a first function among the respective functions that is supported for use by the device hardware configuration for the product information, then based on the second configuration information and the node information, determine whether the first function is supported for use by the device hardware configuration of the model corresponding to the node information; accordingly, the determination module 33 is further configured to determine the target function based on the first function if the first function is supported for use by the device hardware configuration of the model corresponding to the node information.

[0089] In some examples of this embodiment, the analysis module 32 is further configured to obtain the first hardware resources currently available to the device; and, to obtain the second hardware resources required to support the use of the first function from the second configuration information; accordingly, the determination module 33 is further configured to make a judgment based on the first hardware resources and the second hardware resources, and if the hardware resources currently available to the device support the use of the first function, then the first function is used as the target function.

[0090] In some examples of this embodiment, the determination module 33 is further configured to determine the first memory resources currently available to the device based on the first hardware resources, and to determine the second memory resources required to support the use of the first function based on the second hardware resources; and to make a judgment based on the first memory resources and the second memory resources. If the memory resources currently available to the device can support the use of the first function, the first function is used as the target function.

[0091] In some examples of this embodiment, the acquisition module 31 is further configured to obtain pre-written target information from the key product data on the backplane of the device and / or from the key product data on the mainboard of the device; parse the target information to obtain the hardware configuration information.

[0092] In some examples of this embodiment, the license configuration information also includes license information on whether each function of the software supports trial for different device hardware configurations; accordingly, the determination module 33 is further configured to determine the functions that support trial from the target functions based on the license information in the license configuration information; and in response to an execution instruction for the functions that support trial, control the execution of the functions that support trial according to the trial period.

[0093] In some examples of this embodiment, a second function that is not supported for use is determined from the various functions based on the analysis results; a functional dependency graph between software functions is constructed, wherein the functional dependency graph includes functional nodes of the various functions of the software, and the edges between the functional nodes represent the dependency relationship between the software functions; the functional node of the second function in the functional dependency graph is used as the starting node, and traversal is performed in the functional dependency graph; during the traversal process, each functional node reachable from the starting node through a path is obtained, and the path is composed of the edges; after the traversal is completed, each functional node obtained by the traversal is used as an associated function that cannot operate normally because the second function does not support use; a simplified function that can replace the second function and / or the associated function is obtained, and the simplified function belongs to a target function that is supported for use; the target function is filtered according to the associated function; accordingly, the determination module 33 is further configured to display the target function after filtering out the associated function, and display function introduction information for the simplified function that can replace the second function and / or the associated function.

[0094] It should be noted that for other corresponding descriptions of the functional units involved in the control device provided in this embodiment, please refer to Figure 1 and Figure 2 The corresponding description in will not be repeated here.

[0095] Based on the above Figure 1 and Figure 2 The method shown in FIG. 1 is a method for performing the above-mentioned steps. Accordingly, this embodiment further provides a computer-readable storage medium having a computer program stored thereon. When the computer program is executed by a processor, the computer program can realize the above-mentioned steps. Figure 1 and Figure 2 The method shown.

[0096] Based on the above Figure 1 and Figure 2 The method shown in FIG. 1 is a method for performing the above-mentioned operations. Accordingly, this embodiment further provides a computer program product having a computer program stored thereon. When the computer program is executed by a processor, the above-mentioned Figure 1 and Figure 2 The method shown.

[0097] Based on this understanding, the technical solution of the present application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, USB flash drive, mobile hard disk, etc.), and includes a number of instructions for enabling a computer device (which can be a personal computer, server, or network device, etc.) to execute the methods of various implementation scenarios of the present application.

[0098] Based on the above Figure 1 and Figure 2 The method shown, and Figure 4 In order to achieve the above-mentioned purpose, the embodiment of the present application further provides an electronic device, such as a personal computer or a server, which includes a storage medium and a processor; the storage medium is used to store a computer program; the processor is used to execute the computer program to achieve the above-mentioned Figure 1 and Figure 2 The method shown.

[0099] In some embodiments, the physical device may further include a user interface, a network interface, a camera, a radio frequency (RF) circuit, a sensor, an audio circuit, a Wi-Fi module, and the like. The user interface may include a display, an input unit such as a keyboard, and the like. Optional user interfaces may also include a USB interface and a card reader interface. In some embodiments, the network interface may include a standard wired interface or a wireless interface (such as a Wi-Fi interface).

[0100] Those skilled in the art will understand that the above-mentioned physical device structure provided in this embodiment does not constitute a limitation on the physical device, and may include more or fewer components, or a combination of certain components, or different component arrangements.

[0101] The storage medium may also include an operating system and a network communication module. The operating system is a program that manages the hardware and software resources of the physical device, supporting the execution of information processing programs and other software and / or programs. The network communication module is used to enable communication between components within the storage medium, as well as with other hardware and software within the physical information processing device.

[0102] Through the description of the above implementation methods, those skilled in the art can clearly understand that the present application can be implemented by means of software plus the necessary general hardware platform, or by hardware. By applying the solution of this embodiment, compared with the current existing technology, this embodiment first determines the specific model, node type and hardware configuration of the device by reading the VPD information of the device backplane or motherboard. Then, the first configuration file and the second configuration file are used to predefine the hardware configuration support of various products for advanced features to ensure that the software functions match the hardware capabilities. Based on this information, the system automatically performs license verification and function activation judgment at startup, and only displays advanced feature options that meet the current hardware configuration requirements and support. This not only improves the compatibility and flexibility of the software system, but also allows suppliers to accurately adjust the advanced feature support of different levels of products according to market demand, thereby better meeting market segmentation needs, optimizing user experience, and controlling cost investment. It enables the same software system to flexibly adapt to multiple hardware platforms, divide products into different levels such as high-end, mid-end and low-end according to hardware configuration, and accurately control the support of advanced features of each product.

[0103] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the terms "comprises," "comprising," or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article, or device that includes a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or device that includes the element.

[0104] The above are merely specific embodiments of the present application, which are intended to enable those skilled in the art to understand or implement the present application. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present application. Therefore, the present application will not be limited to these embodiments herein, but rather is intended to conform to the widest scope consistent with the principles and novel features of the present application.

Claims

1. A control method, characterized in that: include: In response to a software startup instruction, obtaining hardware configuration information of the device and license configuration information of the software, wherein the license configuration information includes information indicating whether various functions of the software are supported for different device hardware configurations; Performing a comparative analysis based on the hardware configuration information and the license configuration information to determine whether each function is supported by the hardware configuration of the device; Determine a target function that is supported for use from the various functions according to the analysis results, and display the target function, including: determining a second function that is not supported for use from the various functions according to the analysis results; constructing a functional dependency graph between software functions, wherein the functional dependency graph includes functional nodes of the various functions of the software, and edges between the functional nodes represent dependency relationships between software functions; using the functional node of the second function in the functional dependency graph as a starting node, and performing traversal in the functional dependency graph; obtaining various functional nodes that are reachable from the starting node through a path composed of the edges during the traversal process; after the traversal is completed, using various functional nodes obtained through the traversal as associated functions that cannot operate normally because the second function does not support use; obtaining a simplified function that can replace the second function and / or the associated function, the simplified function being a target function that is supported for use; filtering the target function according to the associated function; displaying the target function after filtering out the associated function, and displaying function introduction information for the simplified function that can replace the second function and / or the associated function.

2. The method according to claim 1, characterized in that The comparative analysis based on the hardware configuration information and the permission configuration information to determine whether each function is supported for the hardware configuration of the device includes: Obtaining first configuration information and second configuration information from the license configuration information, wherein the first configuration information includes information indicating whether each function is supported for use by device hardware configurations of different products, and the second configuration information includes information indicating whether each function is supported for use by device hardware configurations of different models under the product; A comparison is performed based on the hardware configuration information, the first configuration information, and the second configuration information to determine whether each function is supported by the hardware configuration of the device.

3. The method according to claim 2, characterized in that The comparing, based on the hardware configuration information, the first configuration information, and the second configuration information, to determine whether each function is supported by the hardware configuration of the device includes: Acquire product information and node information of the device from the hardware configuration information; Based on the first configuration information, determining whether the functions are supported by the device hardware configuration corresponding to the product information; If a first function among the functions is supported for the device hardware configuration of the product information, determining whether the first function is supported for the device hardware configuration of the model corresponding to the node information based on the second configuration information and the node information; The determining of a target function to be supported from among the various functions according to the analysis result includes: If the first function is supported by the hardware configuration of the device model corresponding to the node information, the target function is determined based on the first function.

4. The method according to claim 3, characterized in that Before determining the target function according to the first function, the method further includes: Acquire a first hardware resource currently available to the device; and Acquire, from the second configuration information, a second hardware resource required to support the use of the first function; Determining the target function according to the first function includes: A determination is made based on the first hardware resources and the second hardware resources; if the currently available hardware resources of the device support the use of the first function, the first function is used as the target function.

5. The method according to claim 4, characterized in that The determining, based on the first hardware resource and the second hardware resource, if the currently available hardware resources of the device support the use of the first function, using the first function as the target function includes: determining a first memory resource currently available to the device based on the first hardware resource, and determining a second memory resource required to support the use of the first function based on the second hardware resource; A determination is made based on the first memory resources and the second memory resources. If the currently available memory resources of the device can support the use of the first function, the first function is used as the target function.

6. The method according to claim 1, wherein The obtaining of the hardware configuration information of the device includes: Retrieving pre-written target information from key product data on a backplane of the device and / or from key product data on a mainboard of the device; The target information is parsed to obtain the hardware configuration information.

7. The method according to claim 1, characterized in that The license configuration information also includes license information on whether each function of the software supports trial use for different device hardware configurations; After presenting the target function, the method further includes: Determining, from the target functions, functions that support trial use based on the license information in the license configuration information; In response to an execution instruction for the trial-supporting function, execution of the trial-supporting function is controlled according to a trial period.

8. A control device, characterized in that: include: an acquisition module configured to, in response to a software startup instruction, acquire hardware configuration information of a device and license configuration information of the software, wherein the license configuration information includes information indicating whether various functions of the software are supported for use with different device hardware configurations; an analysis module configured to perform a comparative analysis based on the hardware configuration information and the permission configuration information to determine whether each function is supported by the hardware configuration of the device; A determination module is configured to determine a target function that is supported for use from the various functions according to the analysis results, and to display the target function, including: determining a second function that is not supported for use from the various functions according to the analysis results; constructing a functional dependency graph between software functions, wherein the functional dependency graph includes functional nodes of the various functions of the software, and edges between the functional nodes represent dependency relationships between software functions; taking the functional node of the second function in the functional dependency graph as a starting node, and performing traversal in the functional dependency graph; obtaining, during the traversal process, various functional nodes that are reachable from the starting node through a path composed of the edges; after the traversal is completed, using the various functional nodes obtained through the traversal as associated functions that cannot operate normally because the second function does not support use; obtaining a simplified function that can replace the second function and / or the associated function, the simplified function being a target function that is supported for use; filtering the target function according to the associated function; displaying the target function after filtering out the associated function, and displaying function introduction information for the simplified function that can replace the second function and / or the associated function.

9. An electronic device comprising a storage medium, a processor, and a computer program stored on the storage medium and executable on the processor, wherein: When the processor executes the computer program, the method according to any one of claims 1 to 7 is implemented.

Citation Information

Patent Citations

  • Software installation method and device

    CN110531990A