An assembly management method and device, electronic equipment and medium

By obtaining component dependency information in the BMC and determining the target interface from the pre-built interface library, the problems of high development cost, long cycle and poor flexibility of BMC firmware are solved, the decoupling of components and controller is realized, and the compatibility and stability of out-of-band management are improved.

CN122284993APending Publication Date: 2026-06-26SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
Filing Date
2026-03-18
Publication Date
2026-06-26

Smart Images

  • Figure CN122284993A_ABST
    Figure CN122284993A_ABST
Patent Text Reader

Abstract

This application discloses a component management method, apparatus, electronic device, and medium, relating to the field of computer technology. The method is applied to a controller and includes: acquiring a component to be loaded, wherein the component is used to implement out-of-band management of a computing device corresponding to the controller; parsing the component to obtain dependency information corresponding to the component, wherein the dependency information includes an application programming interface (API) identifier; determining a target interface corresponding to the component from a pre-built interface library based on the API identifier, wherein the interface library includes one or more of hardware APIs, communication APIs, and management APIs; and loading the component based on the target interface. This application reduces the difficulty of controller integration, shortens the controller adaptation cycle, and improves the controller's scalability and compatibility.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a component management method, apparatus, electronic device, and medium. Background Technology

[0002] As the integration of computing devices such as servers continues to increase, the types of hardware and out-of-band management functions that Baseboard Management Controllers (BMCs) need to support are also growing. Currently, in out-of-band management, the out-of-band management functions of components are typically integrated into the BMC in a fixed manner, resulting in a high degree of coupling between the management logic of different components and the BMC firmware. When adding or updating the out-of-band management functions of a component, the entire BMC firmware needs to be upgraded. For components with complex functions, it is also necessary to port third-party code from vendors to the BMC. Therefore, current BMC firmware suffers from problems such as high development and maintenance costs, long development cycles, and poor flexibility. Summary of the Invention

[0003] This application provides a component management method, apparatus, electronic device, and medium to at least solve the problems of high development and maintenance costs, long development cycles, and poor flexibility in current BMC firmware.

[0004] This application provides a component management method applied to a controller, including: Obtain the components to be loaded, whereby the components are used to implement out-of-band management of the computing devices corresponding to the controller; The component is parsed to obtain the dependency information corresponding to the component, including the application programming interface identifier; Based on the application programming interface identifier, the target interface corresponding to the component is determined from the pre-built interface library. The interface library includes one or more of the following: hardware application programming interface, communication application programming interface, and management application programming interface. The hardware application programming interface is used to realize the physical layer interaction between the controller and the computing device. The communication application programming interface is used to realize the interaction between the controller and the computing device based on the preset communication protocol. The management application programming interface is used to realize the interaction between the component and the controller. Load the component based on the target interface.

[0005] This application also provides a component management device for a controller, comprising: The acquisition module is used to acquire components to be loaded, whereby the components are used to implement out-of-band management of the computing devices corresponding to the controller; The parsing module is used to parse the component and obtain the dependency information corresponding to the component. The dependency information includes the application programming interface identifier. The determination module is used to determine the target interface corresponding to the component from a pre-built interface library based on the application programming interface identifier. The interface library includes one or more of the following: hardware application programming interface, communication application programming interface, and management application programming interface. The hardware application programming interface is used to realize the physical layer interaction between the controller and the computing device. The communication application programming interface is used to realize the interaction between the controller and the computing device based on a preset communication protocol. The management application programming interface is used to realize the interaction between the component and the controller. Loading module, used to load components based on the target interface.

[0006] This application also provides an electronic device, including: a memory for storing a computer program; and a processor for implementing the steps of any of the above-described component management methods when executing the computer program.

[0007] This application also provides a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the steps of any of the above-described component management methods.

[0008] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of any of the above-described component management methods.

[0009] This application, through the matching of components and interface libraries, eliminates the need for components to be coupled with the core logic of the controller (such as the baseboard management controller) or the underlying hardware of the computing device. Out-of-band management functions can be implemented through the target interface, decoupling the components from the controller, avoiding interaction differences between different computing device components, improving the compatibility of components with the controller and computing device, and reducing the adaptation complexity of out-of-band management functions. Furthermore, the three types of interfaces in the interface library clearly define the interaction paths between the controller and the computing device, and between the components and the controller, improving the stability and reliability of the out-of-band management process. Attached Figure Description

[0010] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0011] Figure 1 A flowchart illustrating a component management method provided in an embodiment of this application; Figure 2 A schematic diagram illustrating the component unloading process provided in an embodiment of this application; Figure 3An architecture diagram of the controller provided in the embodiments of this application; Figure 4 This is a schematic diagram of the structure of a component management device provided in an embodiment of this application; Figure 5 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0012] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.

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

[0014] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0015] First, the application scenarios of the embodiments of this application will be introduced by way of example.

[0016] In modern server architectures, servers achieve efficient interconnection with key components such as smart network interface cards (NICs), Redundant Array of Independent Disks (RAID) controllers, and Artificial Intelligence (AI) accelerator cards via the Peripheral Component Interconnect Express (PCIe) bus protocol. The Baseboard Management Controller (BMC), as the core of out-of-band server management, connects to various server components via physical buses such as PCIe and Inter-Integrated Circuit (I2C). Based on communication protocols such as the Management Component Transport Protocol (MCTP), Power Management Bus (PMBus), and Intelligent Platform Management Bus (IPMB), it performs out-of-band management functions such as component status monitoring, configuration adjustment, and fault reporting.

[0017] For the same type of server component, if they belong to different manufacturers, the specific implementation of the server component will be different, resulting in differences in out-of-band management communication interfaces. This often requires BMC firmware to be adapted to server components in different scenarios, which makes BMC firmware development difficult and time-consuming. Furthermore, with the continuous development of server technology, server components are gradually evolving towards intelligence, heterogeneity, and diversification, which increases the difficulty of out-of-band management of BMC-based server components.

[0018] In related technologies, to achieve out-of-band management of server components from different manufacturers, developers need to adapt the out-of-band management interfaces of each manufacturer's components one by one during the BMC firmware development phase. For components with simple logic, interface adaptation code needs to be written manually, while for complex server components, it is also necessary to port the component manufacturer's code for adaptation, and then compile and release it after adaptation. When a new type of server component is added, the above process needs to be repeated. Furthermore, it is evident that the current out-of-band management function of BMC firmware suffers from poor scalability, long development cycles, and high development difficulty. In addition, to ensure compatibility with the component management logic of various manufacturers, BMC firmware needs to integrate a large amount of differentiated adaptation code, resulting in low storage space utilization of BMC firmware.

[0019] In view of this, this application provides a component management method to solve the problems of poor out-of-band management function scalability, long development cycle, high development difficulty, and low storage space utilization of the BMC firmware.

[0020] According to an embodiment of the present invention, a component management method embodiment is provided. It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions. Furthermore, although a logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than that shown here.

[0021] This embodiment provides a component management method applicable to controllers, such as BMCs, Complex Programmable Logic Devices (CPLDs), and Micro Controller Units (MCUs). Figure 1 This is a flowchart of a component management method provided according to an embodiment of the present invention, such as... Figure 1 As shown, the process includes: S101, retrieve the component to be loaded.

[0022] The component is used to implement out-of-band management of the computing devices corresponding to the controller.

[0023] Specifically, a component can be understood as an out-of-band management plugin, developed by server component manufacturers, which encapsulates the out-of-band management logic of a specific component. For example, a component contains a metadata file and a binary program file. The metadata file records basic information about the component, such as component ID, component version, component group, vendor, dependency information, digest, and digital signature. Here, dependency information indicates the preconditions required for the component to run, including but not limited to interface identifiers, dependent components, and resource requirements. The binary program file refers to the component's binary program, used to implement the out-of-band management of the corresponding server component.

[0024] Out-of-band management refers to operations such as status monitoring, configuration adjustment, and troubleshooting of server components.

[0025] Here, components to be loaded can also be understood as components to be activated, started, etc.

[0026] S102, parse the component to obtain the dependency information corresponding to the component.

[0027] The dependency information includes the Application Programming Interface (API) identifier.

[0028] For example, an application programming interface (API) identifier is a string or encoding that identifies a standardized interface.

[0029] S103, based on the application programming interface identifier, determines the target interface corresponding to the component from the pre-built interface library.

[0030] The interface library includes one or more of the following: hardware application programming interface, communication application programming interface, and management application programming interface. The hardware application programming interface is used to realize the physical layer interaction between the controller and the computing device. The communication application programming interface is used to realize the interaction between the controller and the computing device based on a preset communication protocol. The management application programming interface is used to realize the interaction between the component and the controller.

[0031] Specifically, the interface library refers to a set of standardized interfaces pre-built in the controller, serving as a bridge for interaction between components, the controller, and computing device parts. Among them, the hardware application programming interface (API) is the controller's physical peripheral interface, used to implement physical layer interaction between server components and the controller. For example, the hardware API can be General Purpose Input / Output (GPIO), I2C, Universal Asynchronous Receiver / Transmitter (UART), and other physical peripheral-related interfaces. The communication API is an interface encapsulating standard communication protocols, used for protocol layer interaction between the controller and server components. For example, the communication API can be an MCTP protocol data transmission / reception interface, a PMBus parameter read / write interface, or an IPMB message transmission interface. The management API defines the API interfaces for interaction between this component and the controller's out-of-band management functions, as well as the user interfaces provided by the controller, such as the Intelligent Platform Management Interface (IPMI) and Redfish.

[0032] It is understood that the number of target interfaces is not limited in the embodiments of this application. A target interface can be a single type of interface from the aforementioned interface library, or a combination of multiple types of interfaces. A target interface of the same type can include multiple specific interface examples. A target interface can be multiple hardware application programming interfaces (APIs), for example, simultaneously including GPIO level control interfaces, I2C data transmission interfaces, and UART serial communication interfaces, to meet the collaborative operation requirements of components for different physical peripherals of the computing device. For example, if a component needs to detect the presence status of a component through a GPIO interface and read the component configuration parameters through an I2C interface, multiple APIs can be matched as target interfaces. In this way, regardless of whether the target interface is multiple interfaces of a single type or multiple interfaces of multiple types, it is accurately matched and determined from the interface library through the component's API identifier, ensuring that the component can only obtain the interface resources required to complete out-of-band management functions. This satisfies diverse interaction needs while ensuring the accuracy and security of interface calls.

[0033] S104, Load components based on the target interface.

[0034] Specifically, based on the target interface, independent runtime resources can be allocated to the controller, a call chain between the component and the target interface can be established, and the component can be loaded.

[0035] In this embodiment, by matching components with the interface library, components do not need to be coupled with the core logic of the controller (such as the baseboard management controller) or the underlying hardware of the computing device. Out-of-band management functions can be implemented through the target interface, decoupling the components from the controller. This avoids interaction differences between different computing device components, improves the compatibility of components with the controller and computing device, and reduces the adaptation complexity of out-of-band management functions. Furthermore, the three types of interfaces in the interface library clearly define the interaction paths between the controller and the computing device, and between the components and the controller, improving the stability and reliability of the out-of-band management process.

[0036] In some embodiments, in addition to the foregoing embodiments, the dependency information further includes a component identifier, which indicates the target component that the component depends on.

[0037] Specifically, the target component is a prerequisite component required for the operation of the current component, serving as the foundational support for the current component to implement out-of-band management functions. For example, the graphics processing unit (GPU) temperature monitoring component needs a PCIe bus driver component to establish communication with the GPU; this PCIe bus driver component is the target component.

[0038] For example, a component identifier can be a component name, a component version number, a component number, etc.

[0039] In S104 above, the component is loaded based on the target interface, specifically including the following: a1 retrieves the loading status of the target component corresponding to the component identifier.

[0040] Specifically, the loading state refers to the running readiness of the target component in the controller, including states such as completed loading, loading in progress, and not loaded. When the component's loading state is completed, it indicates that the component can implement the corresponding out-of-band management functions.

[0041] a2, when the loading status indicates that the target component has been loaded, builds the runtime environment corresponding to the component based on the target interface.

[0042] Specifically, the runtime environment refers to the foundation upon which the component runs, used to isolate and constrain the component's behavior, including but not limited to API call permissions and resource allocation.

[0043] In one possible implementation, a2 above includes the following steps: First, based on the target interface, generate the component's interface call rules.

[0044] Specifically, the API call rules are used to constrain the API calls made by components in the controller, including but not limited to the API identifier for the call, call permissions, and call methods.

[0045] For example, the interface library pre-defines interface description information for each interface, including but not limited to interface identifier, interface type, interface function description, interface invocation method (e.g., synchronous call, asynchronous call), data transmission format, and call frequency limit threshold (e.g., a maximum of 10 calls per second). Based on the interface description information of the target interface, interface invocation rules for the target interface are generated. For instance, components can be restricted to accessing the target interface only through a pre-defined invocation method, transmitting only data conforming to a specified format, and the call frequency cannot exceed the threshold.

[0046] Then, obtain the interface type of the target interface.

[0047] Specifically, the interface type is the category of the target interface, used to distinguish the function of the interface. For example, hardware application programming interface type, communication application programming interface type, and management application programming interface type.

[0048] Next, based on the interface type, determine the memory information allocated to the component, as well as the files that the component has access to.

[0049] Specifically, memory information is used to indicate memory-related parameters allocated to the component, including but not limited to memory size, memory region, and read / write permissions. For example, allocating a 10MB independent memory region to the component and restricting the component's access permission to that region to read operations.

[0050] Files that a component has access to are those that the component can read or write during runtime, such as configuration files and log files. Other files are not accessible to the component.

[0051] In one possible implementation, the interface library also includes a mapping between interface types and their corresponding memory information and files. This allows the system to retrieve the memory information and accessible files corresponding to the target interface from the interface library based on the interface type.

[0052] For example, since hardware interfaces need to handle physical layer data interaction, the preset memory size in the mapping relationship between interface type and corresponding memory information and files is 8MB, and the files that can be accessed include hardware configuration files and physical layer log files.

[0053] For example, communication interfaces need to cache protocol data. In the mapping relationship between interface type and corresponding memory information and files, the preset memory size is 16MB, and the files that can be accessed include protocol configuration files and communication log files.

[0054] For example, since the management interface needs to interact with the controller core, the preset memory size in the mapping relationship between the interface type and the corresponding memory information and files is 12MB, and the files that can be accessed include management status files and system log fragments.

[0055] Furthermore, if there are multiple target interfaces, the memory size corresponding to each target interface is summed to obtain the total memory size of all target interfaces, and the file access ranges corresponding to various interfaces are merged to remove duplicate file paths.

[0056] Finally, the runtime environment is built based on the API call rules, memory information, and files.

[0057] For example, based on memory information, a memory region corresponding to the component is created to ensure that the component can only access this memory region and cannot access other memory regions outside the specified boundaries.

[0058] For example, a file-based configuration file access control list. The file access control list explicitly specifies the file path, filename, and corresponding operation permissions (e.g., read permission, write permission) that the component needs to access.

[0059] For example, the API call rules are loaded into the controller, the component running process is established, and it is ensured that the API calls initiated by the component comply with the API call rules, such as whether the API called by the component is the target API, whether the way the component calls the target API is compliant, whether the data format is correct, and whether the call frequency exceeds the limit.

[0060] In this way, by generating interface call rules based on the target interface and allocating memory information and file access permissions according to the interface type, a runtime environment can be built, enabling fine-grained permission control and resource isolation for component operation. This effectively prevents components from accessing resources without authorization or occupying unreasonable memory space, improves the security of controller operation, and enhances the resource utilization of the controller.

[0061] a3 loads components based on the runtime environment.

[0062] Specifically, the firmware of the component is loaded into the runtime environment, an interaction link is established between the component and the target interface and the target component, the component process is started, and the component is ensured to work collaboratively with the target component through the target interface, thereby realizing the corresponding out-of-band management function.

[0063] In this embodiment, building a runtime environment for the target component after it has been loaded ensures that the component can directly call the out-of-band management functions of the target component after loading, avoiding runtime anomalies due to missing dependent components and improving the reliability of component loading. Furthermore, building a dedicated runtime environment for the component based on the target interface and executing the component creates a security sandbox, isolating the component from controller resources and other components, reducing the risk of resource contention, lowering the possibility of unauthorized access, and improving the security of controller operation.

[0064] In some embodiments, based on the foregoing embodiments, the components include a digital signature and a first digest.

[0065] Specifically, a digital signature refers to a sequence of characters generated by the component publisher, such as the component manufacturer, using a private key to encrypt key information in the component, such as the component identifier and component version number. This signature is used to verify the legitimacy and authenticity of the component.

[0066] The first digest is a fixed-length hash value calculated using a hash algorithm based on the complete firmware of the component, such as the binary program code and metadata files mentioned above. For example, the digest of the component is determined using the MD5 message digest algorithm.

[0067] Before determining the target interface corresponding to a component from a pre-built interface library based on the application programming interface identifier, the method provided in this application embodiment further includes the following: First, the component is verified based on its digital signature.

[0068] For example, the controller uses the public key published by the component publisher to decrypt the digital signature. If the key component information contained in the decrypted digital signature, such as the component identifier, is consistent with the information declared in the component, then the component is determined to have passed the digital signature verification.

[0069] Then, once the component passes verification, a second digest of the component is determined based on the component's firmware.

[0070] Specifically, the second digest refers to the hash value obtained by the controller after acquiring the component, which is calculated again using the same hash algorithm as the first digest on the complete firmware of the component. This hash value is then compared with the first digest to verify the integrity of the component.

[0071] Finally, based on the first and second digests, the component is subjected to a second verification. Once the component passes the second verification, the target interface is determined from the interface library based on the application programming interface identifier.

[0072] For example, if the character sequences of the first digest and the second digest are consistent, the component is determined to have passed the secondary verification, indicating that the component firmware is complete and has not been tampered with. If the first digest and the second digest are inconsistent, the component has failed the secondary verification, and the component loading process is terminated.

[0073] In this embodiment, digital signatures effectively intercept illegally forged malicious components, ensuring the legitimate and trustworthy origin of the loaded components. Furthermore, secondary verification of the component's firmware digest verifies the integrity of the component's firmware, preventing tampering or replacement during transmission or storage. This avoids risks such as functional failures and security vulnerabilities caused by loaded tampered components. In this embodiment, digital signatures, through these two aspects, ensure the secure and stable operation of the controller's out-of-band management functions.

[0074] In some embodiments, based on any of the foregoing embodiments, and depending on the runtime environment, after loading the components, such as... Figure 2 As shown, the method provided in this application embodiment also includes the following: S201, in response to the component's unload command, interrupts the component's process.

[0075] Specifically, the uninstall command is used to instruct the removal of a component from the controller. For example, an uninstall command can be sent to the controller when a server component is updated or when a component malfunction is detected.

[0076] A component's process refers to an independent execution unit formed by the component in the runtime environment, including but not limited to the component's data processing logic and interface call chain.

[0077] For example, after receiving the component's uninstallation instruction, the controller queries the component's process status. If the process is running, it sends a termination signal to the process.

[0078] S202, Recycle operating environment.

[0079] Specifically, reclaiming the runtime environment refers to releasing the resources allocated to components, such as memory allocated to components, file access permissions for components, and permissions to call target interfaces.

[0080] For example, the memory area corresponding to the component is released, the memory area is marked as free, and the component runtime data stored in the memory area is cleared.

[0081] For example, deleting the file access control list configured for the component revokes the component's read and write permissions to the file, thereby revoking the component's file access permissions.

[0082] For example, delete the interface call rule bound to the component, thus breaking the call chain between the component and the target interface.

[0083] S203, Remove the component from the controller.

[0084] For example, remove all files, metadata, runtime logs, etc. associated with the component from the controller.

[0085] In this embodiment of the application, after obtaining the component's uninstallation instruction, the interrupt process can quickly terminate the component's operation, and the recycling of the runtime environment can release and reuse dedicated resources, improve the utilization rate of the controller system resources, and avoid resource waste. Furthermore, by deleting the component, residual data can be prevented from interfering with system operation or occupying storage resources.

[0086] In some embodiments, based on any of the foregoing embodiments, after loading the component based on the target interface, the method provided in this application embodiment further includes the following: First, heartbeat messages are periodically sent to the components.

[0087] Specifically, a heartbeat message refers to a data packet generated by the controller at a preset period to detect the operating status of a component. For example, a heartbeat message includes a message identifier, a sending timestamp, and a checksum, serving as a status detection signal between the controller and the component.

[0088] Then, if the component's response time to the heartbeat message exceeds the preset time, the component is managed based on the preset management strategy.

[0089] Specifically, response time refers to the time interval from when the controller sends a heartbeat message to when it receives a response message from the component.

[0090] The preset duration can be set according to component type, operating environment, and out-of-band management functions. For example, the preset duration for hardware interaction components can be set to 3 seconds, and the preset duration for communication protocol components can be set to 5 seconds.

[0091] Preset management strategies can include restarting components, uninstalling components, freezing components, generating alarm information, etc.

[0092] In this embodiment, the component status is continuously monitored by periodically sending heartbeat messages. When the response time exceeds a preset time, the component is processed according to a preset management strategy to detect component anomalies in a timely manner, prevent the failure of the corresponding out-of-band management function, and improve the reliability of out-of-band management.

[0093] In addition, the controller is also used to manage the lifecycle of various components. For example, it can save added components, such as metadata and configuration files, in a preset file system path according to their categories and dependencies for unified management, making it easy to quickly read the current component information and status when scanning components.

[0094] In some embodiments, based on any of the foregoing embodiments, when the out-of-band management functions of a component include multiple functions, after loading the component based on the target interface, the method provided in this application embodiment further includes the following: b1 retrieves the component's resource usage data.

[0095] Specifically, component resource usage data refers to the actual usage information of various controller resources by the component during operation, including but not limited to Central Processing Unit (CPU) utilization, memory usage, input / output (IO) access frequency, and bus bandwidth utilization. For example, the component's current CPU utilization is 55% and memory usage is 30MB.

[0096] b2, when the resource usage data does not meet the preset conditions, obtain multiple out-of-band management functions of the component, as well as the priority of each out-of-band management function.

[0097] Specifically, the preset conditions indicate the upper limit of resource usage set for the component, used to determine whether the component is experiencing abnormal resource consumption. For example, the preset conditions could be CPU utilization not exceeding 50%, memory usage not exceeding 20MB, and IO access frequency not exceeding 100 times per second, etc.

[0098] Out-of-band management functions refer to the specific out-of-band management services provided by the component at runtime. For example, out-of-band management functions can include component status monitoring, temperature acquisition, wind speed adjustment, and fault alarms.

[0099] The priority of out-of-band management functions indicates the importance of the corresponding components and can distinguish between core and non-core out-of-band management functions. For example, the out-of-band management function that implements fault alarms has the highest priority, the out-of-band management function that implements status data acquisition has the medium priority, and the out-of-band management function that implements log uploading has the lowest priority.

[0100] b3, based on the priority of each out-of-band management function, filters multiple out-of-band management functions to obtain the filtered out-of-band management functions.

[0101] It is understandable that the filtered out-of-band management functions are those with higher priority among all out-of-band management functions of the component.

[0102] For example, the out-of-band management functions of the components are sorted in descending order of priority. The number of out-of-band management functions that need to be retained is determined based on the current resource scarcity. The out-of-band management functions with the highest priority are retained first, while functions with lower priority and unnecessary functions are excluded, thus obtaining the final filtered out-of-band management functions.

[0103] b4 manages components based on the filtered out-of-band management function.

[0104] Specifically, the control component runs the filtered out-of-band management functions, allowing them to call interfaces and use resources, while pausing and stopping the execution of unfiltered out-of-band management functions, reclaiming the resources occupied by unfiltered out-of-band management functions, and restricting the calls to the corresponding interfaces of unfiltered out-of-band management functions.

[0105] In one possible implementation, in b4 above, the component's runtime environment is adjusted based on the filtered out-of-band management function.

[0106] Optionally, the runtime environment includes memory size. Adjusting the component's runtime environment based on the selected out-of-band management functions specifically includes: determining the target memory size corresponding to the selected out-of-band management functions; and determining the adjusted memory size based on the target memory size corresponding to the selected out-of-band management functions.

[0107] Specifically, the target memory size refers to the minimum memory size required to support the normal operation of the filtered out-of-band management functions.

[0108] For example, the target memory size corresponding to the filtered out-of-band management functions can be determined by using a preset mapping relationship between out-of-band management functions and memory size.

[0109] For example, when there are multiple out-of-band management functions after filtering, the target memory sizes corresponding to the filtered out-of-band management functions are summed to obtain the adjusted memory size. When there is only one filtered out-of-band management function, the target memory size corresponding to the filtered out-of-band management function is determined as the adjusted memory size.

[0110] In this way, the target memory size is dynamically determined based on the selected out-of-band management functions, and excess memory in the operating environment is released. This enables the timely recovery of idle memory resources after component function degradation, avoiding memory waste, improving the memory utilization rate of the controller system, and reducing the resource space occupied by components. This prevents components from affecting the normal operation of the controller and other components due to excessive resource consumption, further improving the stability and security of system operation.

[0111] Optionally, the runtime environment includes a file access control list, which indicates the files that the component can access. The component's runtime environment is adjusted based on the filtered out-of-band management functions, specifically including: determining the files the component currently needs to access based on the filtered out-of-band management functions; and updating the file access control list based on the files the component currently needs to access.

[0112] For example, based on the preset mapping relationship between out-of-band management functions and files, the file corresponding to the filtered out-of-band management function is determined as the file that the component currently needs to access.

[0113] For example, the controller merges the file dependency information of all filtered functions, removes duplicate files, and obtains the files that the component needs to access to currently run, thus forming the final file access control list.

[0114] This ensures that components can only access configuration files, log files, or data files related to the currently filtered out-of-band management functions.

[0115] Optionally, the runtime environment includes interface call rules, which indicate the target interfaces called by the component. The runtime environment of the component is adjusted based on the filtered out-of-band management functions, specifically including: determining the final interface corresponding to the filtered out-of-band management functions from the target interfaces corresponding to the component, and removing all target interfaces except the final interface from the component's interface call rules.

[0116] For example, based on the preset mapping relationship between out-of-band management functions and interfaces, the final interface corresponding to the filtered out-of-band management function is determined from the target interfaces corresponding to the component.

[0117] In this way, only the target interfaces corresponding to the filtered out-of-band management functions are retained, so that the components can only access the target interfaces corresponding to the filtered out-of-band management functions.

[0118] In addition, after determining the selected out-of-band management functions, the preset conditions are adjusted based on the selected out-of-band management functions. For example, the preset conditions such as the upper limit of CPU utilization, the upper limit of IO frequency utilization, and the bus bandwidth limit of the component are readjusted, so as to realize the dynamic adjustment of the resources occupied by the component.

[0119] Understandably, when a component's out-of-band management function is a single function, the controller can determine whether to continue loading the component based on the actual situation. For example, if the single function is a core out-of-band management function, the controller will continue to load the component and run that function. If the single function is a non-core function, the controller will stop loading the component and release the resources occupied by the component. This avoids affecting the stability of the controller due to abnormal usage of a single function.

[0120] It is understandable that the above-mentioned pre-defined mapping relationships between out-of-band management functions and interfaces, between out-of-band management functions and files, and between out-of-band management functions and memory size are standard resource matching rules pre-configured on the controller side, used to characterize the minimum set of interfaces, file access range, and memory resources required for the normal operation of different out-of-band management functions.

[0121] When adjusting the component's runtime environment, the controller, based on the aforementioned locally pre-stored mapping relationship, filters and determines only the final interface, currently required access file, and target memory size that match the currently reserved function from the component's own defined target interface, required access file, and initial allocated memory, thereby achieving fine-grained control of the runtime environment.

[0122] In this embodiment, when the resource usage data does not meet the preset conditions, the functions of the components are filtered, and the components are managed based on the filtered out-of-band management functions. This enables functional degradation when the component uses resources abnormally, ensuring the continuous operation of the core out-of-band management functions while reducing the component's resource consumption. This avoids the controller becoming unstable due to excessive resource consumption by the components, and improves the resource utilization and stability of the controller in high-load scenarios.

[0123] Figure 3This is an architecture diagram of a controller. The controller includes a hardware interface layer, a core layer, a communication interface layer, a component management engine, a component layer, and a management application programming interface layer. The hardware interface layer provides hardware application programming interfaces and integrates various hardware communication methods such as management component transmission protocols, universal asynchronous transceiver input / output interfaces, and integrated circuit buses, thereby enabling physical layer data interaction between the controller and server components. The core layer, as the foundational core of the controller, is used for resource scheduling, process management, and providing the runtime environment for each component. The communication interface layer encapsulates communication protocols for data interaction between the controller and computing devices based on these protocols. The component management engine is responsible for component loading, verification, operation control, and unloading, and each business component carries specific out-of-band management functions. The component layer contains multiple components, such as component 1, component 2, component 3… component N, etc. The management application programming interface layer integrates various management protocols such as the intelligent platform management interface, Redfish, and the Simple Network Management Protocol (SNMP), enabling interaction between administrators and the controller, and completing the issuance of management commands and the reporting of status data.

[0124] The above mainly describes the solution provided by the embodiments of this application from a methodological perspective.

[0125] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method.

[0126] This application also provides a component management device for implementing the above embodiments and preferred embodiments; details already described will not be repeated. As used below, the term "module" can refer to a combination of software and / or hardware that performs a predetermined function. Although the device described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.

[0127] This embodiment provides a component management device applied to a controller, such as... Figure 4 As shown, it includes: The acquisition module 401 is used to acquire the component to be loaded, wherein the component is used to implement out-of-band management of the computing device corresponding to the controller; The parsing module 402 is used to parse the component and obtain the dependency information corresponding to the component, wherein the dependency information includes the application programming interface identifier; The determination module 403 is used to determine the target interface corresponding to the component from a pre-built interface library based on the application programming interface identifier. The interface library includes one or more of the following: hardware application programming interface, communication application programming interface, and management application programming interface. The hardware application programming interface is used to realize the physical layer interaction between the controller and the computing device. The communication application programming interface is used to realize the interaction between the controller and the computing device based on a preset communication protocol. The management application programming interface is used to realize the interaction between the component and the controller. Load module 404, used to load components based on the target interface.

[0128] The apparatus provided in this application, through the matching of components and the interface library, allows components to achieve out-of-band management functions without being coupled to the core logic of the controller (such as the baseboard management controller) or the underlying hardware of the computing device. This decouples the components from the controller, avoids interaction differences between different computing device components, improves the compatibility of components with the controller and computing device, and reduces the adaptation complexity of out-of-band management functions. Furthermore, the three types of interfaces in the interface library clearly define the interaction paths between the controller and the computing device, and between the components and the controller, improving the stability and reliability of the out-of-band management process.

[0129] In one possible implementation, the dependency information also includes a component identifier, which indicates the target component that the component depends on; and a loading module 404, which is specifically used to obtain the loading status of the target component corresponding to the component identifier. When the loading status indicates that the target component has been loaded, construct the runtime environment corresponding to the component based on the target interface; Load components based on the runtime environment.

[0130] In one possible implementation, the management module, specifically used to generate interface calling rules for the component based on the target interface before determining the target interface corresponding to the component from a pre-built interface library based on the application programming interface identifier; Get the interface type of the target interface; Based on the interface type, determine the memory information allocated to the component, as well as the files that the component has access permissions to; The runtime environment is built based on API call rules, memory information, and files.

[0131] In one possible implementation, the component includes a digital signature and a first digest; the device also includes a management module for verifying the component based on the digital signature; Once the component passes verification, a second digest of the component is determined based on the component's firmware; Based on the first and second digests, the component is subjected to secondary verification. After the component passes the secondary verification, the target interface is determined from the interface library based on the application programming interface identifier.

[0132] In one possible implementation, the device further includes an unloading module that, based on the runtime environment, interrupts the component's process in response to the component's unloading command after the component is loaded. Recycle the operating environment; Remove the component from the controller.

[0133] In one possible implementation, the management module is specifically used to periodically send heartbeat messages to the component after loading it based on the target interface. If a component's response time to a heartbeat message exceeds a preset time, the component will be managed based on a preset management strategy.

[0134] In one possible implementation, the management module is also used to obtain the component's resource usage data after loading the component based on the target interface; If the resource usage data does not meet the preset conditions, obtain multiple out-of-band management functions of the component, as well as the priority of each out-of-band management function; Based on the priority of each out-of-band management function, multiple out-of-band management functions are filtered to obtain the filtered out-of-band management functions; Components are managed based on the filtered out-of-band management function.

[0135] For a description of the features in the embodiment corresponding to the component management device, please refer to the relevant description in the embodiment corresponding to the component management method, which will not be repeated here.

[0136] Embodiments of this application also provide an electronic device, such as... Figure 5 As shown, it includes a memory 10 and a processor 20. The memory 10 stores a computer program, and the processor 20 is configured to run the computer program to perform the steps in any of the above-described component management method embodiments.

[0137] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above-described component management method embodiments at runtime.

[0138] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0139] Embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above-described component management method embodiments.

[0140] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in any of the above-described component management method embodiments.

[0141] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0142] The foregoing has provided a detailed description of a component management method, apparatus, electronic device, and medium provided in this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are merely for the purpose of helping to understand the method and its core ideas. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this application.

Claims

1. A component management method, characterized in that, Applied to a controller, the method includes: Obtain the component to be loaded, wherein the component is used to implement out-of-band management of the computing device corresponding to the controller; The component is parsed to obtain the dependency information corresponding to the component, wherein the dependency information includes the application programming interface identifier; Based on the application programming interface identifier, a target interface corresponding to the component is determined from a pre-built interface library. The interface library includes one or more of hardware application programming interfaces, communication application programming interfaces, and management application programming interfaces. The hardware application programming interface is used to implement physical layer interaction between the controller and the computing device. The communication application programming interface is used to implement interaction between the controller and the computing device based on a preset communication protocol. The management application programming interface is used to implement interaction between the component and the controller. The component is loaded based on the target interface.

2. The method according to claim 1, characterized in that, The dependency information also includes a component identifier, which indicates the target component that the component depends on; loading the component based on the target interface includes: Obtain the loading status of the target component corresponding to the component identifier; When the loading status indicates that the target component has been loaded, a runtime environment corresponding to the component is constructed based on the target interface; Based on the aforementioned operating environment, the component is loaded.

3. The method according to claim 2, characterized in that, When the loading state indicates that the target component has been loaded, constructing a runtime environment corresponding to the component based on the target interface includes: Based on the target interface, generate the interface call rules for the component; Obtain the interface type of the target interface; Based on the interface type, determine the memory information allocated to the component, and the files that the component has access to; The runtime environment is constructed based on the interface call rules, the memory information, and the file.

4. The method according to any one of claims 1-3, characterized in that, The component includes a digital signature and a first digest; before determining the target interface corresponding to the component from a pre-built interface library based on the application programming interface identifier, the method further includes: The component is verified based on the digital signature; Once the component passes verification, a second digest of the component is determined based on the component's firmware; Based on the first digest and the second digest, the component is subjected to a second verification, so that when the component passes the second verification, the target interface is determined from the interface library based on the application programming interface identifier.

5. The method according to claim 2 or 3, characterized in that, After loading the component based on the aforementioned operating environment, the method further includes: In response to the component's uninstallation command, the component's process is interrupted; Reclaim the aforementioned operating environment; Remove the component from the controller.

6. The method according to any one of claims 1-3, characterized in that, After loading the component based on the target interface, the method further includes: Periodically send heartbeat messages to the component; If the response time of the component to the heartbeat message exceeds a preset time, the component will be managed based on a preset management strategy.

7. The method according to any one of claims 1-3, characterized in that, After loading the component based on the target interface, the method further includes: Obtain the resource usage data of the component; If the resource usage data does not meet the preset conditions, obtain multiple out-of-band management functions of the component, as well as the priority of each out-of-band management function; Based on the priority of each out-of-band management function, the multiple out-of-band management functions are filtered to obtain the filtered out-of-band management functions; The components are managed based on the filtered out-of-band management function.

8. A component management device, characterized in that, Applied to a controller, the device includes: An acquisition module is used to acquire components to be loaded, wherein the components are used to implement out-of-band management of the computing device corresponding to the controller; A parsing module is used to parse the component to obtain dependency information corresponding to the component, wherein the dependency information includes an application programming interface identifier; The determination module is used to determine the target interface corresponding to the component from a pre-built interface library based on the application programming interface identifier. The interface library includes one or more of hardware application programming interfaces, communication application programming interfaces, and management application programming interfaces. The hardware application programming interface is used to implement physical layer interaction between the controller and the computing device. The communication application programming interface is used to implement interaction between the controller and the computing device based on a preset communication protocol. The management application programming interface is used to implement interaction between the component and the controller. A loading module is used to load the component based on the target interface.

9. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor for implementing the steps of the component management method as described in any one of claims 1-7 when executing the computer program.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the component management method as described in any one of claims 1-7.