Software installation method and device

By deploying multiple different software on the second computing device and using URLs to identify target software, the problem of time-consuming software installation for multiple hosts in different local area networks is solved, and an efficient software installation process is achieved.

CN120670037APending Publication Date: 2025-09-19HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410324604.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-03-18
Publication Date
2025-09-19

AI Technical Summary

Technical Problem

When installing software for multiple hosts to be processed in different LANs, multiple TFTP servers need to be deployed, which results in a long preparation time and low efficiency of the entire process.

Method used

By deploying multiple different software on the second computing device and using the URL to identify the target software, the number of deployed second computing devices is reduced, and the efficiency of software installation is achieved.

Benefits of technology

It reduces the time spent on the initial deployment of software installation and improves the efficiency of the installation process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120670037A_ABST
    Figure CN120670037A_ABST
Patent Text Reader

Abstract

The invention discloses a software installation method and device, and relates to the technical field of computers. The software installation method is applied to a second computing device for remotely installing software for a first computing device, and a plurality of different pieces of software are stored in the second computing device. The software installation method comprises the steps that a second computing device receives a request sent by a first computing device based on a target uniform resource locator (URL), and then in response to the request, target software is sent to the first computing device for installation. The target URL is used for identifying target software in the multiple different pieces of software.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a software installation method and device. Background Art

[0002] Network booting refers to the process of obtaining software, boot programs, configuration information and other files from a remote server through the network when the computer starts up to complete the software installation and startup process.

[0003] Typically, after a host obtains an Internet Protocol (IP) address, it communicates with a Trivial File Transfer Protocol (TFTP) server on the same local area network (LAN) based on the IP address to obtain software and a boot program. The host then completes software installation and startup according to the boot program. However, each LAN requires a TFTP server, which increases the number of TFTP servers required. This increases the time required to prepare for software installation on multiple hosts deployed on different LANs, making the overall process of installing software on multiple hosts on different LANs inefficient. Summary of the Invention

[0004] The present application provides a software installation method and device to solve the problem that, during the process of installing software for pending hosts in different local area networks, a TFTP server needs to be deployed in each of the different local area networks, resulting in a long preparation time for installing software for multiple pending hosts deployed in different local area networks, and thus a low efficiency of the entire process of installing software on multiple pending hosts in different local area networks.

[0005] This application adopts the following technical solution.

[0006] In a first aspect, the present application provides a software installation method. The software installation method can be applied to a computer system or to a computing device that supports the computer system to implement the software installation method. The computing device is, for example, a server. In one possible example, the method is applied to a second computing device that remotely installs software for a first computing device, wherein the second computing device stores a plurality of different software. The method includes: the second computing device receives a request sent by the first computing device based on a target uniform resource locator (URL), and then, in response to the request, sends the target software to the first computing device for installation. The target URL is used to identify the target software among a plurality of different software.

[0007] Compared with storing only one operating system image on a TFTP server, multiple TFTP servers need to be deployed to install different software on multiple hosts. In this application, multiple different software are deployed on the second computing device. The software is identified by a URL. The multiple different software can meet the multiple different software installation requirements of the first computing device, reducing the number of second computing devices that need to be deployed to install multiple different software on the first computing device, thereby reducing the time spent in the early deployment stage (configuring the second computing device) of installing multiple different software on the first computing device, thereby reducing the time spent in the entire process of installing multiple different software on the first computing device (configuring the second computing device and installing the software on the first computing device), and improving the efficiency of the entire process of installing multiple different software on the first computing device.

[0008] In one possible scenario, the target URL includes at least one URL, each URL of the at least one URL identifying at least one software on the second computing device.

[0009] In a possible example, the URL identifies a storage path or a file path of the software in the second computing device.

[0010] In one possible scenario, the software is an operating system image.

[0011] In a possible example, the second computing device is a hypertext transfer protocol (HTTP) server, or a hypertext transfer protocol secure (HTTPS) server.

[0012] In one possible implementation, the above request includes the address information of the first computing device, and the second computing device sends the target software to the first computing device for installation in response to the request, including: the second computing device determines the target software identified by the target URL in response to the request, and then sends the target software to the first computing device for installation based on the address information of the first computing device.

[0013] In this application, the second computing device sends only the target software identified by the URL to the first computing device, ensuring that only the software required for installation by the first computing device is sent to the first computing device. Furthermore, the second computing device sends the target software to the first computing device for installation based on the first computing device's address information, ensuring accurate delivery of the target software to the first computing device and improving the accuracy of software installation.

[0014] In one possible scenario, the address information may be an IP address.

[0015] In a second aspect, the present application provides a software installation method. The software installation method can be applied to a computer system or to a computing device that supports the computer system to implement the software installation method. The computing device is, for example, a server. In one possible example, the method is applied to a computer system that remotely installs software for a first computing device. The computer system includes a second computing device that stores a plurality of different software, and a third computing device that assigns a URL to the first computing device, where the URL is used to identify the software on the second computing device. The software installation method includes: the third computing device assigns a target URL to the first computing device. The second computing device receives a request sent by the first computing device based on the target URL, and then, in response to the request, sends the target software to the first computing device for installation. The target software is used to identify the target software among a plurality of different software.

[0016] In one possible scenario, the third computing device and the second computing device may be the same computing device. For example, a single server may implement the functions of the second and third computing devices, such as assigning a URL to the first computing device, storing multiple different software programs, and, upon request from the first computing device, sending the target software indicated by the target URL in the request.

[0017] In one possible scenario, the target URL includes at least one URL, each URL of the at least one URL identifying at least one software on the second computing device.

[0018] In a possible example, the URL identifies a storage path or a file path of the software in the second computing device.

[0019] In one possible scenario, the software is an operating system image.

[0020] In a possible example, the second computing device is an HTTP server, or a Hypertext Transfer Protocol Secure HTTPS server.

[0021] In one possible implementation, the third computing device assigns a target URL to the first computing device, including: the third computing device receives the target URL configured by the user for the first computing device, and then configures the target URL to the first computing device based on the address information of the first computing device.

[0022] In this application, the third computing device configures the target URL to the first computing device through the target URL configured by the user for the first computing device, so that the first computing device can obtain the target software to be installed on the first computing device according to the corresponding URL. In addition, multiple first computing devices can obtain the software to be installed from the second computing device according to their corresponding URLs. In other words, the second computing device stores multiple different software, and each first computing device can obtain the corresponding software from the second computing device according to the URL assigned to it. This application only requires the deployment of one second computing device to complete the preliminary preparations for installing software for multiple first computing devices, reducing the time spent on preliminary preparations for software installation, thereby reducing the time spent on the overall process of installing different software for multiple first computing devices and improving the efficiency of the entire installation process.

[0023] In one possible scenario, the third computing device receives a user trigger operation on a control component on a user interface, and then, in response to the trigger operation, obtains a target URL configured by the user for the first computing device. The trigger operation is used to determine the configuration of the first computing device.

[0024] In one possible example, the third computing device displays a user interface on a front end, and then receives a user's triggering operation on a control component on the user interface. The front end can be a display built into the third computing device, or a display connected to the third computing device.

[0025] In one possible implementation, the third computing device configures the target URL to the first computing device based on the address information of the first computing device, including: the third computing device sends the target URL to the first computing device based on the address information of the first computing device, the hardware management platform in the first computing device stores the target URL, and the hardware management platform starts automatically when the computer is powered on.

[0026] In this application, the target URL is stored in the hardware management platform. Since the hardware management platform starts automatically when the computer is turned on, after the first computing device is turned on, the target software identified by it can be obtained through the target URL, thereby installing the target software on the first computing device and improving the efficiency of software installation.

[0027] In one possible scenario, the address information of the first computing device indicates the IP address of a host management platform in the first computing device. The third computing device sends a target URL to the host management platform based on the IP address of the host management platform. The host management platform then forwards the target URL to the hardware management platform for storage. The host management platform is used to manage the first computing device, and the hardware management platform automatically starts upon startup.

[0028] In a possible example, the host management platform may be a baseboard management controller (BMC), and the hardware management platform may be a basic input output system (BIOS).

[0029] In one possible implementation, the above request includes the address information of the first computing device, and the second computing device sends the target software to the first computing device for installation in response to the request, including: the second computing device determines the target software identified by the target URL in response to the request, and then sends the target software to the first computing device for installation based on the address information of the first computing device.

[0030] In a third aspect, the present application provides a software installation device. The software installation device is applied to a computer system or a computing device that supports the computer system to implement a software installation method. The software installation device includes various modules for executing the software installation method in the first aspect or any optional implementation of the first aspect. In one possible example, the software installation device is applied to a second computing device that remotely installs software for a first computing device, and the second computing device stores multiple different software. The software installation device includes:

[0031] The receiving module is configured to receive a request sent by the first computing device based on a target uniform resource locator (URL). The target URL is used to identify a target software among a plurality of different software.

[0032] The response module is used to send the target software to the first computing device for installation in response to the request.

[0033] In one possible implementation, the request includes the address information of the first computing device. The response module is specifically configured to, in response to the request, determine the target software identified by the target URL, and then send the target software to the first computing device for installation based on the address information of the first computing device.

[0034] In one possible scenario, the software is an operating system image.

[0035] In a possible example, the second computing device is an HTTP server, or a Hypertext Transfer Protocol Secure HTTPS server.

[0036] In a fourth aspect, the present application provides a software installation device. The software installation device is applied to a computer system or to a computing device that supports the computer system to implement a software installation method. The software installation device includes various modules for executing the software installation method in the first aspect or any optional implementation of the first aspect. In one possible example, the method is applied to a computer system that remotely installs software for a first computing device. The computer system includes a second computing device that stores multiple different software programs, and a third computing device that assigns a uniform resource locator (URL) to the first computing device. The URL is used to identify the software on the second computing device. The software installation device includes:

[0037] The allocation module is used to allocate a target URL to the first computing device, where the target URL is used to identify a target software among a plurality of different software.

[0038] The receiving module is used to receive a request sent by the first computing device based on the target URL.

[0039] The response module is used to send the target software to the first computing device for installation in response to the request.

[0040] In one possible implementation, the allocation module is specifically configured to receive a target URL configured by a user for a first computing device, and then configure the target URL to the first computing device according to address information of the first computing device.

[0041] In one possible implementation, the allocation module is further specifically used to receive a trigger operation of a user on a control component on a user interface, and then, in response to the user's trigger operation on the control component, obtain a target URL configured by the user for the first computing device; the trigger operation is used to determine the configuration of the first computing device.

[0042] In one possible implementation, the allocation module is further configured to send a target URL to the first computing device based on the address information of the first computing device. The target URL is stored by a hardware management platform in the first computing device, and the hardware management platform is automatically started upon startup.

[0043] In one possible implementation, the request includes the address information of the first computing device. The response module is specifically configured to, in response to the request, determine the target software identified by the target URL, and then send the target software to the first computing device for installation based on the address information of the first computing device.

[0044] In one possible scenario, the software is an operating system image.

[0045] In a possible example, the second computing device is an HTTP server, or a Hypertext Transfer Protocol Secure HTTPS server.

[0046] In a fifth aspect, the present application provides a chip. The chip includes an interface circuit and a control circuit. The interface circuit is configured to receive a request sent by a first computing device based on a URL, and the interface circuit and the control circuit cooperate to execute the method of the first aspect or any possible implementation of the first aspect, and / or execute the method of the second aspect or any possible implementation of the second aspect.

[0047] In a sixth aspect, the present application provides a computing device cluster. The computing device cluster includes at least one computing device, each computing device including a memory and a processor. The memory of the at least one computing device is used to store computer instructions. When the processor of the at least one computing device executes the computer instructions, it implements the method of the first aspect or any possible implementation of the first aspect, and / or implements the method of the second aspect or any possible implementation of the second aspect.

[0048] In a seventh aspect, the present application provides a computer-readable storage medium. The storage medium stores a computer program or instructions, which, when executed by a processing device, implements the method of the first aspect or any possible implementation of the first aspect, and / or implements the method of the second aspect or any possible implementation of the second aspect.

[0049] In an eighth aspect, the present application provides a computer program product. The computer program product includes a computer program or instructions, which, when executed by a processing device, implements the method of the first aspect or any possible implementation of the first aspect, and / or implements the method of the second aspect or any possible implementation of the second aspect.

[0050] The beneficial effects of the second to eighth aspects above can be referred to the first aspect or any possible implementation of the first aspect, and will not be described in detail here. Based on the implementations provided in the above aspects, this application can also be further combined to provide more implementations. BRIEF DESCRIPTION OF THE DRAWINGS

[0051] Figure 1 Schematic diagram of the system image installation process Figure 1 ;

[0052] Figure 2 Schematic diagram of the system image installation process Figure 2 ;

[0053] Figure 3 An application scenario diagram of a computer system provided in this application;

[0054] Figure 4 A flowchart of a software installation method provided in this application;

[0055] Figure 5a Schematic diagram of the graphical user interface provided for this application;

[0056] Figure 5b Schematic diagram of the address allocation process provided for this application;

[0057] Figure 5c A flowchart of the operating system image installation method provided in this application;

[0058] Figure 6 A schematic diagram of the structure of a software installation device provided in this application Figure 1 ;

[0059] Figure 7 A schematic diagram of the structure of a software installation device provided in this application Figure 2 ;

[0060] Figure 8 A schematic diagram of the structure of a computing device provided in this application;

[0061] Figure 9 A schematic diagram of the structure of a computing device cluster provided in this application;

[0062] Figure 10 A schematic diagram of the connection between computing devices provided in this application. DETAILED DESCRIPTION

[0063] To facilitate understanding, the technical terms involved in this application are first introduced.

[0064] A BMC is a small operating system independent of the processor. It's a chip integrated into the motherboard or plugged into the motherboard via a bus. Externally, it presents itself as a standard RJ45 (registered jack 45) network port and has a uniquely addressed firmware system. Servers typically use a BMC to monitor hardware health, record anomalies, and generate alarms. The BMC runs BMC firmware.

[0065] BIOS is a set of programs that are fixed to a read-only memory (ROM) on the computer's motherboard. It stores the computer's most important basic input and output programs, self-test programs after power-on, and detection programs. It can read and write specific information about system settings from the processor.

[0066] A URL is used to specify the address of a resource on the internet. A URL is a unique identifier for a web (world wide web) interface, image, video, file, or other resource on the internet. Users can access and retrieve these resources through the URL.

[0067] Dynamic Host Configuration Protocol (DHCP) is a network protocol used to automatically assign IP addresses and other network configuration information to computers and other devices on a local area network (LAN). A computer or computing device running DHCP is called a DHCP server, which dynamically assigns IP addresses and other network configuration information to client devices connected to the LAN.

[0068] TFTP is a protocol for simple file transfers on computer networks. A computer or computing device running TFTP is called a TFTP server, providing simple file transfer services. TFTP servers are commonly used in scenarios such as network booting, firmware updates, and configuration file transfers.

[0069] HTTP is an application layer protocol used to transmit hypertext data (such as Hypertext Markup Language (HTML)). A computer or computing device running HTTP services is called an HTTP server, which is used to receive HTTP requests from clients and return corresponding HTTP responses. HTTP servers are used to host and provide content such as web pages, applications, and static resources for users to access.

[0070] HTTPS is a network protocol for securely transmitting hypertext data. Building on HTTP, it ensures the security of the transmission process through transmission encryption and identity authentication. A computer or computing device that supports HTTPS is called an HTTPS server, which provides secure HTTP services. An HTTPS server uses Secure Sockets Layer (SSL) / Transport Layer Security (TLS) encryption technology to establish an encrypted channel between the client and server, protecting the security of transmitted data.

[0071] Currently, to install an operating system on a host, the host is often operated directly on the host side to install the operating system on the host, or the host is operated remotely through network booting to install the operating system on the host.

[0072] The following two solutions are provided for remotely operating a host and installing an operating system on the host.

[0073] Option 1, such as Figure 1 As shown, Figure 1 Schematic diagram of the system image installation process Figure 1 .exist Figure 1The illustrated architecture includes multiple hosts, as well as multiple different DHCP servers and TFTP servers. For example, the multiple hosts include host 1 and host 2. Host 1 and host 2 require different operating systems (OSs), which can also be referred to as systems. OS image 1 is installed on host 1, and OS image 2 is installed on host 2. TFTP servers store OS images, such as OS image 1 on TFTP server 1 and OS image 2 on TFTP server 2.

[0074] To deploy different operating systems on host 1 and host 2, host 1, DHCP server 1, and TFTP server 1 (the TFTP server that stores the OS image to be installed on host 1) are assigned to local area network 1, and host 2, DHCP server 2, and TFTP server 2 (the TFTP server that stores the OS image to be installed on host 2) are assigned to local area network 2.

[0075] The following describes the process of installing OS images on host 1 and host 2, taking the installation of OS image 1 on host 1 as an example.

[0076] After host 1 boots up, it sends a request for an IP address to DHCP server 1 within its local area network (LAN 1). DHCP server 1 responds to the request by returning a specific IP address to host 1. This specific IP address is the IP address assigned to host 1 by DHCP server 1. Based on its IP address, host 1 communicates with TFTP server 1 within its local area network, requesting network booting. In response to host 1's request, TFTP server 1 sends the stored OS image 1 and boot files to host 1 according to its IP address, thereby helping host 1 install and boot the operating system.

[0077] However, in Solution 1, different hosts may have different OS images installed. Therefore, hosts with the same OS image installed must be grouped into the same LAN, which also requires a DHCP server and TFTP server. In other words, a TFTP server must be deployed on each LAN, increasing the number of TFTP servers required. Preparing for software installation on multiple hosts takes a long time, making the overall software installation process on multiple hosts on different LANs inefficient.

[0078] Option 2, such as Figure 2 As shown, Figure 2 Schematic diagram of the system image installation process Figure 2 .exist Figure 2The architecture shown includes multiple hosts, as well as multiple different DHCP servers and TFTP servers. For example, the multiple hosts include host 1 and host 2, each of which requires a different OS. OS image 1 is installed on host 1, and OS image 2 is installed on host 2. The TFTP servers store OS images. For example, TFTP server 1 stores OS image 1, and TFTP server 2 stores OS image 2.

[0079] First, the user needs to obtain the media access control (MAC) addresses of host 1 and host 2 on the host side, and bind the MAC addresses of host 1 and host 2 to the DHCP server.

[0080] For example, bind the MAC address of host 1 to DHCP server 1, and bind the MAC address of host 2 to DHCP server 2.

[0081] Secondly, because host 1 and host 2 need to install different OS images, and the TFTP server only stores one OS image, host 1 and host 2 must obtain the OS images from different TFTP servers. DHCP server 1 and DHCP server 2 bind the MAC address of host 1 and host 2, respectively, so that DHCP server 1 assigns IP address 1 to host 1 and IP address 2 to host 2. DHCP server 1 also assigns the IP address of TFTP server 1 to host 1 and the IP address of TFTP server 2 to host 2.

[0082] Based on the IP address of TFTP server 1 assigned to it by DHCP server 1, host 1 determines that the OS image 1 it needs to install is stored in TFTP server 1. Therefore, host 1 communicates with TFTP server 1 according to its IP address 1 and requests TFTP server 1 to perform network boot. In response to the request of host 1, TFTP server 1 sends OS image 1 and boot file to host 1, thereby helping host 1 to install and start the operating system.

[0083] Based on the IP address of TFTP server 2 assigned to it by DHCP server 2, host 2 determines that the OS image 2 it needs to install is stored in TFTP server 2. Therefore, host 2 communicates with TFTP server 2 according to its IP address 2 and requests TFTP server 2 to perform network boot. In response to the request of host 2, TFTP server 2 sends OS image 2 and boot file to host 2, thereby helping host 2 to install and start the operating system.

[0084] However, in Solution 2, different hosts may have different OS images installed, and the TFTP server only stores one OS image. The DHCP server only assigns IP addresses and the TFTP server's IP address to hosts bound to their MAC addresses. Consequently, the DHCP server assigns the same TFTP IP address to hosts that need to install the same type of software. In other words, each different OS image requires a TFTP server, increasing the number of TFTP servers required. Preparing for software installation on multiple hosts takes a long time, and the overall process of installing software on multiple hosts on different local area networks is inefficient.

[0085] Based on this, the present application provides a software installation method. This method is applied to a second computing device that remotely installs software for a first computing device. The second computing device stores multiple different software programs. The method includes: the second computing device receives a request sent by the first computing device based on a target URL, and then, in response to the request, sends the target software to the first computing device for installation. The target URL is used to identify the target software among the multiple different software programs.

[0086] Compared with storing only one OS image on a TFTP server, multiple TFTP servers need to be deployed to install different software on multiple hosts. In this application, multiple different software are deployed on the second computing device. The software is identified by URL. The multiple different software can meet the multiple different software installation requirements of the first computing device, reducing the number of second computing devices that need to be deployed to install multiple different software on the first computing device, thereby reducing the time spent in the early deployment stage (configuring the second computing device) of installing multiple different software on the first computing device, thereby reducing the time spent in the entire process of installing multiple different software on the first computing device (configuring the second computing device and installing the software on the first computing device), and improving the efficiency of the entire process of installing multiple different software on the first computing device.

[0087] The software installation method provided in this application can be applied to Figure 3 The computer system shown in FIG. Figure 3 As shown, Figure 3 This is an application scenario diagram of a computer system provided in this application. The computer system includes a server 310, a host 320, a host 330, and a host 340.

[0088] The server 310 includes at least one computing device. For detailed description of the computing device, please refer to the following Figure 8 The host 320 among the hosts 320 , 330 and 340 is taken as an example for description. The host 320 may include a processor 321 , a BMC 322 , a memory 323 , a communication interface 324 and a bus 325 .

[0089] Exemplarily, the processor 321 and the BMC 322 are located on the same motherboard. The processor 321 runs BIOS, and the BMC 322 runs BMC firmware.

[0090] The processor 321 may include one or more processing units, for example, the above-mentioned processing units may include a CPU, an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), discrete gates, transistor logic devices, discrete hardware components, a baseband processor, and / or a neural network processor (NPU), an artificial intelligence (AI) chip, etc., or any one or a combination thereof.

[0091] The memory 323 can be used to store computer executable program code, which includes instructions. The processor 321 executes various functional applications and data processing of the host 320 by running the instructions stored in the internal memory. The memory 323 may include a program storage area and a data storage area. Among them, the program storage area can store an operating system, BIOS, etc. The data storage area can store data (such as fault information) created during the use of the host 320. In addition, the memory may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, a universal flash storage (UFS), etc.

[0092] The communication interface 324 is used to implement communication between the host 320 and external devices or components.

[0093] Bus 325 is used to transmit information between the processor 321, BMC 322, memory 323, and communication interface 324. In addition to a data bus, bus 325 may also include a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as bus 325 in the figure.

[0094] In one possible scenario, the bus 325 can be a peripheral component interconnect express (PCIe) high-speed bus, or an extended industry standard architecture (EISA) bus, a unified bus (Ubus or UB), a compute express link (CXL), a cache coherent interconnect for accelerators (CCIX), a quick path interconnect (QPI), an intelligent platform management interface (IPMI), a serial peripheral interface (SPI), or other buses used to implement data interaction standards or protocols. For example, the processor 321 can access the memory 323 via the PCIe bus. The processor 321 can be connected to the memory 323 via a double data rate (DDR) bus. Here, different processors 321 may use different data buses to communicate with the memory 323. Therefore, the DDR bus can also be replaced with other types of data buses. The embodiment of the present application does not limit the bus type.

[0095] The host 320 among the hosts 320, 330 and 340 is taken as an example for description. The host 320 may be a terminal server, a smart phone, a notebook computer, a tablet computer, a personal desktop computer or a smart camera.

[0096] The host 320 and the server 310 can communicate with each other via wired means, such as Ethernet, optical fiber, and a PCIe bus provided in a computer system for connecting the server 310 and the host 320; or they can communicate with each other via wireless means, such as the Internet, wireless fidelity (WIFI), and ultra wide band (UWB) technology.

[0097] In a possible scenario, the server 310 may also be other computing devices, such as a personal desktop computer, a laptop computer, etc.

[0098] It should be noted that Figure 3This is just an example provided in the embodiment of the present application. The computer system may also include more or fewer hosts or servers. The host 320 in the computer system may also include other processors, or power supplies, hard disks, optical drives, chassis, cooling systems, and other input and output controllers and interfaces that support the operation of the processors. Figure 3 The embodiment of the present application does not limit the form and quantity of the other processors or the hardware supporting the operation of the processors.

[0099] For example, the host 320 is a first computing device, and the at least one computing device indicated by the server 310 includes a second computing device and a third computing device. The third computing device is used to assign a target URL to the first computing device. The second computing device calculates the request sent by the first computing device based on the target URL and, in response to the request, sends the target software to the first computing device for installation.

[0100] The at least one computing device indicated by server 310 is a computer system used to remotely install software on a first computing device. A second computing device in the computer system stores multiple different software programs. The third computing device is used to assign a URL to the first computing device, where the URL is used to identify the software on the second computing device. The target URL is used to identify a target software program among the multiple different software programs.

[0101] The implementation of the software installation method provided in the embodiment of the present application will be described in detail below with reference to the accompanying drawings.

[0102] Figure 4 This is a flowchart of a software installation method provided by this application. The method provided in this embodiment can be applied to Figure 3 In the computer system shown, the software installation method of the embodiment of the present application is executed by computing device 420 and computing device 430 as an example for explanation. Computing device 410 can also be called a first computing device, computing device 420 can also be called a second computing device, and computing device 430 can be called a third computing device.

[0103] In the first possible scenario, computing device 410 and computing device 420 are in the same local area network. Computing device 420 responds to the request of computing device 410 and provides guidance for installing the OS image to computing device 410, thereby installing the OS image in computing device 410.

[0104] In a second possible scenario, computing device 410 and computing device 420 are in the same local area network. Computing device 420 responds to a request from computing device 410 and provides guidance for computing device 410 on deploying development tools (such as IntelliJ IDEA), thereby deploying development tools, operating environment, etc. in computing device 410.

[0105] The above two possible application scenarios are merely examples provided in this embodiment and should not be construed as limiting this application. In other scenarios of this application, computing device 420, in response to a request from computing device 410, provides guidance for computing device 410 to update software, thereby updating the software on computing device 410.

[0106] Please continue to see Figure 4 This embodiment uses the software installation method applied to the first possible scenario as an example for description. The method includes the following steps S410 to S430.

[0107] S410 , the computing device 430 assigns a target URL to the computing device 410 .

[0108] The target URL is used to identify a target software among multiple different software.

[0109] Exemplarily, the target URL includes at least one URL, and each URL in the at least one URL identifies at least one software on the computing device 420. In other words, at least one software can be stored under the file path indicated by a URL.

[0110] The computing device 410 may include at least one computing device, such as Figure 5a As shown, computing device 410 may include computing device 410a, computing device 410b, and computing device 410c, that is, computing device 410a, computing device 410b, and computing device 410c are each assigned a corresponding target URL. For example, computing device 430 assigns URL1 as the target URL to computing device 410a, computing device 430 assigns URL2 as the target URL to computing device 410b, and computing device 430 assigns URL3 as the target URL to computing device 410c.

[0111] In one possible example, the multiple software are stored in different file directories of the computing device 420. Therefore, the URL corresponding to the software may carry the specific file path of the software (also called storage address or storage path), for example: http: / / example.com / os / photo1.img, where os / photo1.img is the file path of the software in the computing device 420.

[0112] It is worth noting that the above os / photo1.img is not the complete file path of the software in the computing device 420. The computing device 420 can map http: / / example.com / os1 / photo1.img to the complete file path of the software stored in the computing device 420, / var / www / os1 / photo1.img.

[0113] In another possible example, computing device 420 dynamically generates a corresponding URL based on the storage location of the software. For example, the software's URL address can be dynamically generated based on the relative path information of the software in various directories. Thus, there is a one-to-one correspondence between the software and the URL.

[0114] In one possible scenario, the computing device 420 maintains a correspondence between software and URLs.

[0115] For example, in this correspondence, URL1 corresponds to software 1, URL2 corresponds to software 2, URL3 corresponds to software 3, and so on.

[0116] Regarding the computing device 430 assigning the content of the target URL to the computing device 410 , two possible implementations are provided below.

[0117] In a first possible embodiment, the computing device 430 already knows the address information of the computing device 410. The computing device 430 assigns a target URL to the computing device 410 according to the address information of the computing device 410.

[0118] The computing device 430 receives the target URL configured by the user for the computing device 410 , and configures the target URL to the computing device 410 according to the address information of the computing device 410 .

[0119] In one possible implementation, the computing device 430 receives the target URL configured by the user for the computing device 410, including: the computing device 430 receives the user's triggering operation on the control component on the user interface, and obtains the target URL configured by the user for the computing device 410 in response to the user's triggering operation on the control component.

[0120] The triggering operation is used to determine the configuration of the computing device 410. The user interface may include a control component of the URL and / or a control component of the computing device.

[0121] like Figure 5a As shown, Figure 5a This is a schematic diagram of the graphical user interface provided by this application. The control components in the user interface can take various forms, such as a square or a switch shape, and this application is not limited thereto. The control components are used to provide a first function, for example: a control component for URL1, a control component for URL2, a control component for URL3, and so on. A user triggering the control component for URL1 can indicate that URL1 should be used as the target URL for computing device 410a.

[0122] In one possible example, computing device 430 may display a user interface on a front end. The front end may refer to a display or screen connected to computing device 430, or a display or screen provided by computing device 430, and this application is not limited thereto. For example, the front end may be a terminal through which a user accesses computing device 430.

[0123] In one possible scenario, the computing device 430 receives the user's triggering operation on the control component, including: the computing device 430 obtains the user's triggering operation on the control component on the user interface through various input devices (keyboard, mouse, touch screen, etc.).

[0124] Regarding the specific implementation of the trigger operation, three possible examples are provided below.

[0125] Example 1: The trigger operation may be a user's confirmation of the control component through a keyboard, such as the trigger operation being a confirmation (enter) key triggered by the user.

[0126] In Example 2, the triggering operation may be a user clicking or sliding a URL control component with a mouse. For example, the user clicks the control component of URL1 with a mouse and then drags the control component of URL1 to the control component of computing device 410a, thereby indicating that URL1 is used as the target URL of computing device 410a.

[0127] Example 3: The trigger operation may be a user clicking or sliding a control component on a touch screen.

[0128] The above examples are only optional implementations provided in this embodiment and should not be understood as limiting the present application. In other embodiments of the present application, the trigger operation may also be air operation or voice control.

[0129] In one possible scenario, the terminal accesses a user interface provided by the computing device 430 to display the user interface on the terminal.

[0130] In one possible implementation, the computing device 430 configures the target URL to the first computing device based on the address information of the computing device 410, including: the computing device 430 sends the target URL to the computing device 410 based on the address information of the computing device 410, the hardware management platform in the computing device 410 stores the target URL, and the hardware management platform starts automatically when the computer is turned on.

[0131] In one possible scenario, the address information may be an IP address.

[0132] In one possible example, computing device 430 assigns a target URL to computing device 410 based on the IP address of computing device 410 , including: computing device 430 remotely accesses computing device 410 through the IP address of computing device 410 to configure the target URL of the target software to computing device 410 .

[0133] For example, the computing device 430 may establish a file transfer protocol (FTP) connection with the computing device 410 according to the IP address of the computing device 410 , thereby configuring a target URL for the computing device 410 on the computing device 430 side.

[0134] In one possible scenario, computing device 430 already knows that the IP address of computing device 410 is the IP address of the BMC (also known as the host management platform) in computing device 420. In this scenario, computing device 430 can use a tool that supports the Intelligent Platform Management Interface (IPMI), such as ipmitool, to connect to the BMC of computing device 410 through a command line. Based on the connection between computing device 430 and the BMC in computing device 410, computing device 430 configures the URL into the BMC of computing device 410.

[0135] For example, computing device 430 may use the command line in the ipmi tool: ipmitool -I lanplus -H<BMC_IP> -U <username> -P <password>chassis status is connected to the BMC of the computing device 410, and then through ipmitool-I lanplus-H<BMC_IP> -U <username> -P <password>raw <command> The URL is configured into the BMC of the computing device 410. The aforementioned process requires the IP address of the BMC.

[0136] In the above situation, this application also proposes a possible example, in which the computing device 430 accesses the BMC's web interface according to the IP address of the BMC in the computing device 410, and then configures the URL in the file upload or configuration option of the web interface to transmit the URL to the BMC of the computing device 420.

[0137] Furthermore, the BMC in the computing device 410 sends the URL to the directory specified by the BIOS (also known as the hardware management platform) in the computing device 410 for storage based on a link (such as an IPMI channel) between the BMC and the BIOS (also known as the hardware management platform) in the computing device 410 .

[0138] It is worth noting that the link between the BMC and BIOS requires the IP address of the BMC and the IP address of the BIOS. The host management platform is used to manage the computing device 410, and the hardware management platform is used to manage multiple hardware in the computing device 420. Moreover, the hardware management platform can be automatically started when the computer is turned on.

[0139] In this application, the computing device 430 configures the URL to the BMC in the computing device 410, and transfers the URL to the BIOS for storage through the BMC, so that when the BIOS is started, the target software indicated by the target URL can be directly obtained through the target URL, thereby achieving rapid installation of the target software, thereby improving the efficiency of the computing device 410 in installing the target software.

[0140] In a second possible embodiment, computing device 430 does not know the IP address of computing device 410. Computing device 440 first assigns an IP address to computing device 410, and computing device 430 then assigns a target URL for identifying the target software on computing device 430 to computing device 410 based on the IP address of computing device 410.

[0141] It is worth noting that after computing device 440 assigns an IP address to computing device 410, it gives the IP address of computing device 410 to computing device 430. Figure 3 The server 310 includes one or more of at least one computing device.

[0142] In one possible scenario, computing device 440 sends the IP address of computing device 410 to computing device 430 .

[0143] In another possible scenario, the user obtains the IP address of the computing device 410 from the computing device 440 , and then configures the IP address of the computing device 410 to the computing device 430 .

[0144] In one possible implementation, computing device 440 assigns an IP address to computing device 410, including: computing device 440 and computing device 410 are in the same local area network, computing device 410 sends an address request to computing device 440 after startup, and computing device 440 receives and responds to the address request to assign an IP address to computing device 410.

[0145] like Figure 5b As shown, Figure 5b Schematic diagram of the address allocation process provided for this application. Figure 5b The content shown includes the following steps ①-⑧.

[0146] Step 1: When the computing device 410 starts up, it sends a message (address request) to the broadcast address on the local area network (such as 255.255.255.255). This message contains the MAC address of the computing device 410 and the information requesting to obtain an IP address.

[0147] Step ②: The computing device 440 obtains a message from the broadcast address.

[0148] Step 3: In response to the message, computing device 440 sends an Offer message to the broadcast address. The Offer message includes the available IP address and other network configuration information (such as subnet mask, gateway, domain name system (DNS) server, etc.). The Offer message is also sent via broadcast.

[0149] Step 4: The computing device obtains the Offer message from the broadcast address.

[0150] Step ⑤: In response to the Offer message, the computing device 410 selects one of the IP addresses and sends a corresponding Request message to request allocation of the selected IP address.

[0151] Step 6: The computing device 440 obtains the Request message from the broadcast address.

[0152] Step 7: In response to the Request message, the computing device 440 sends an acknowledgment (Ack) message to the broadcast address, confirming the allocation of its designated IP address and other allocation information. The Ack message is also sent via broadcast.

[0153] Step ⑧: The computing device 410 obtains a confirmation message from the broadcast address, thereby enabling the computing device 440 to allocate an IP address to the computing device 410.

[0154] In the above example, the computing device 440 may be a DHCP server.

[0155] In one possible scenario, the computing device 440 may allocate an IP address to the BMC or BIOS in the computing device 410 through the example of the second possible implementation manner described above, which is not described in detail here.

[0156] Regarding the IP address of computing device 410 , the content of the target URL for identifying the target software on computing device 430 is allocated to computing device 410 . This can be described in the first possible implementation method described above and will not be elaborated on here.

[0157] S420 , the computing device 420 receives the request sent by the computing device 410 through the target URL.

[0158] The following uses Python as an example to illustrate the content of a request sent by computing device 410 to computing device 430 via a target URL. For example, computing device 410 sends an HTTP GET request to a specified URL and then saves the obtained target software to the example file. The following is a possible code:

[0159] import requests

[0160] url='http: / / example.com / files / photo1.img'

[0161] response = requests.get(url)

[0162] with open('example','wb')asfile:

[0163] file.write(response.content)

[0164] S430 , the computing device 420 sends the target software to the computing device 410 for installation in response to the request.

[0165] The computing device 410 sends a request to the computing device 420 via the target URL to obtain the target software identified by the URL. In response to the request, the computing device 420 sends the target software identified by the target URL to the computing device 410.

[0166] In one possible scenario, when the computing device 420 sends the target software to the computing device 410 , it may also send a boot program, parameters, and other content.

[0167] The bootstrap program defines the software installation process. It automates the software installation process through a script and configures the parameters required for the software to be installed or run. These parameters may include the target software's installation options, network settings, software package selection, and license agreement.

[0168] exist Figure 4 In the illustrated content, computing device 420 may be an HTTP server or an HTTPS server. Computing device 420 is configured to respond to a request sent by computing device 410 via a target URL and return the target software identified by the target URL to computing device 410. The target software may be an OS image, such as a Linux kernel.

[0169] Compared with the direct interaction between the computing device 410 and the TFTP server, which results in insecure data transmission, in the present application, the computing device 410 interacts with the HTTPS server. Since HTTPS incorporates the TLS / SSL encryption protocol to protect the security of data transmission, the security of data during the data transmission process is ensured, thereby improving the security and reliability of the data.

[0170] In one possible implementation, the computing device 420 sends the target software to the computing device 410 for installation in response to the request, including: the computing device 420 determines the target software identified by the target URL in response to the request, and then sends the target software to the computing device 410 for installation based on the address information of the computing device 410.

[0171] In one possible scenario, the address information is used to indicate the IP address of the computing device 410 .

[0172] Illustratively, the computing device 420 determines the target software under the file path according to the file path indicated by the target URL, and then sends the target software to the computing device 410 for installation according to the IP address of the computing device 410 .

[0173] For example, computing device 420 sends a message to computing device 410 , wherein the message header carries the IP address of computing device 410 , and the message body carries the target software.

[0174] Regarding the content of installing the target software on the computing device 410 , two possible implementations are provided below.

[0175] In a first possible implementation, computing device 410 sets the boot order in BIOS settings to boot from the memory to ensure that computing device 410 can identify the target software in the memory when it boots. Computing device 410 receives the target software selected by the user and installs it according to the target software selected by the user.

[0176] When the user selects the target software, if only one target software is stored in the memory, there will be only one option on the computing device 410, which indicates the target software. If multiple target software are stored in the memory, there will be multiple options on the computing device 410, and the user must ensure that the correct target software is selected for installation.

[0177] In a second possible implementation, the BIOS includes the target software, boot program, parameters, and other content. Computing device 420 sets the boot order in the BIOS settings to boot from memory, ensuring that computing device 410 can identify the target software, boot program, and parameters in memory upon startup. Computing device 410 receives the target software selected by the user and uses the boot program to configure parameters for the target software, deploy the operating environment, and perform installation bootstrapping, thereby installing the target software selected by the user on computing device 410.

[0178] Regarding the content of the target software selected by the user, reference may be made to the description of the first possible implementation method under S430 above, which will not be elaborated here.

[0179] Compared with storing only one OS image on a TFTP server, multiple TFTP servers need to be deployed to install different software on multiple hosts. In this application, multiple different software are deployed on the computing device 420. The software is identified by a URL. The multiple different software can meet the multiple different software installation requirements of the computing device 410, reducing the number of computing devices 420 that need to be deployed to install multiple different software on the computing device 410, thereby reducing the time spent in the early deployment stage (configuring the computing device 420) of installing multiple different software on the computing device 410, thereby reducing the time spent in the entire process of installing multiple different software on the computing device 410 (configuring the computing device 420 and installing the software on the computing device 410), and improving the efficiency of the entire process of installing multiple different software on the computing device 410.

[0180] It is worth noting that the computing device 420 , the computing device 430 , and the computing device 440 may be the same server.

[0181] For Figure 4 The following is a complete example of the content shown. Figure 5c As shown, Figure 5c This is a flowchart of the operating system image installation method provided in this application. Figure 5c The content shown is described as follows: the operating system is Linux, and the computing device 440 and the computing device 430 are DHCP servers 510, the computing device 420 is an HTTPS server 520, and the computing device 410 is an HTTPS client 530. Figure 5c The method shown includes the following steps ① to ⑨.

[0182] Step ①: The HTTPS client 530 initiates a first request to the DHCP server 510 for obtaining an IP address and a startup file.

[0183] The startup file may be a shimmaa64.efi file, which is typically a boot loader for verifying and starting an operating system.

[0184] For the details of step ①, please refer to the description of the second possible implementation method under S410 above, which will not be repeated here.

[0185] Step ②: In response to the first request, the DHCP server 510 allocates an IP address and a first target URL of the startup file to the HTTPS client 530 .

[0186] Step ③: The HTTPS client 530 sends a second request for obtaining the startup file to the HTTPS server 520 according to the first target URL and IP address.

[0187] Step ④: In response to the second request, the HTTPS server 520 sends the target startup file identified by the first target URL to the HTTPS client 530.

[0188] The target startup file is a file stored in the file path of the HTTPS server 520 identified by the first target URL.

[0189] Step 5: The HTTPS client 530 loads the target startup file, and then sends a third request for obtaining the configuration file to the HTTPS server 520 according to the first target URL.

[0190] The configuration file may be grub.cfg, which contains configuration information required for booting, such as operating system options, kernel parameters, etc. Through grub.cfg, the boot loader can be customized.

[0191] In this embodiment, the HTTPS client 530 enables secureboot, and then verifies and loads the target startup file through secureboot.

[0192] Secureboot is used to protect computer systems from malware and unauthorized operating systems or drivers. To load a custom EFI executable file (such as shaimaa.efi) through Secureboot, you need to ensure that the EFI file has been digitally signed and the corresponding key has been added to the UEFI firmware's trust list.

[0193] The grub.cfg file includes the configuration for the Linux kernel and initrd (initial RAM disk). The Linux kernel and initrd configurations are the secondary target URLs stored in HTTPS server 520. The initrd configuration specifies the path and options for the initrd. The initrd contains key components required to boot the Linux kernel, such as drivers and file system modules.

[0194] Step ⑥: In response to the third request, the HTTPS server 520 sends a configuration file including the configuration of the Linux kernel and initrd to the HTTPS client 530.

[0195] The HTTPS client 530 reads the configuration file and obtains the second target URL where the Linux kernel and initrd are stored in the HTTPS server 520 .

[0196] Step 7: The HTTPS client 530 sends a fourth request for obtaining the Linux kernel and initrd to the HTTPS server 520 according to the second target URL.

[0197] Step ⑧: In response to the fourth request, the HTTPS server 520 sends the Linux kernel and initrd identified by the second target URL to the HTTPS client 530.

[0198] Step 9: The HTTPS client 530 uses the boot loader and initrd to install the Linux kernel and start the Linux kernel.

[0199] It's worth noting that before HTTPS server 520 and HTTPS client 530 can communicate in steps ③-⑧ above, they must establish a secure communication connection, known as a TLS handshake. During this process, HTTPS server 520 and HTTPS client 530 undergo a series of negotiations and verifications to ensure data can be transmitted securely between them.

[0200] It is understood that in order to implement the functions in the above embodiments, the management service module includes hardware structures and / or software modules that perform the corresponding functions. Those skilled in the art should readily appreciate that, in combination with the units and method steps of the various examples described in the embodiments disclosed in this application, this application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in hardware or in a computer software-driven hardware manner depends on the specific application scenario and design constraints of the technical solution.

[0201] Combined with the above Figures 3 to 5c , describes in detail the software installation method provided by this application, and will be combined with Figure 6 , Figure 6 A schematic diagram of the structure of a software installation device provided in this application Figure 1 , describing the software installation apparatus provided in the present application. The software installation apparatus 600 can be used to implement the functions of the computing device 420 in the above method embodiment, and thus can also achieve the beneficial effects possessed by the above method embodiment.

[0202] like Figure 6 As shown, the software installation apparatus 600 includes a receiving module 610 and a response module 620. The software installation apparatus 600 is used to remotely install software on a second computing device for a first computing device, where the second computing device stores multiple different software programs. In one possible example, the specific process of the software installation apparatus 600 for implementing the above-mentioned data software installation method includes the following process:

[0203] A receiving module, configured to receive a request sent by a first computing device of a software installation apparatus based on a target uniform resource locator (URL); the target URL of the software installation apparatus is used to identify a target software among a plurality of different software of the software installation apparatus;

[0204] The response module is used to send the target software of the software installation device to the first computing device of the software installation device for installation in response to the request of the software installation device.

[0205] The receiving module 610 and the responding module 620 can be implemented by software or hardware. For example, the implementation of the receiving module 610 will be described below using the receiving module 610 as an example. Similarly, the implementation of the responding module 620 can refer to the implementation of the receiving module 610.

[0206] As an example of a software functional unit, receiving module 610 may include code running on a computing instance. A computing instance may include at least one of a physical host (such as computing device 420 ), a virtual machine, and a container. Furthermore, the computing instance may be one or more. For example, receiving module 610 may include code running on multiple hosts / virtual machines / containers.

[0207] It should be noted that the multiple hosts / virtual machines / containers used to run the code can be distributed in the same region or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code can be distributed in the same availability zone (AZ) or in different AZs, with each AZ including one data center or multiple geographically close data centers. Typically, a region can include multiple AZs.

[0208] Similarly, multiple hosts / virtual machines / containers running the code can be distributed within the same VPC or across multiple VPCs. Typically, a VPC is set up within a region. Cross-region communication between two VPCs within the same region, or between VPCs in different regions, requires a communication gateway within each VPC to interconnect the VPCs.

[0209] As an example of a hardware functional unit, the receiving module 610 may include at least one computing device, such as a server. Alternatively, the receiving module 610 may be implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0210] The multiple computing devices included in the receiving module 610 can be distributed in the same region or in different regions. The multiple computing devices included in the receiving module 610 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the receiving module 610 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of servers, ASICs, PLDs, CPLDs, FPGAs, GALs, and other computing devices.

[0211] It should be noted that, in other embodiments, the receiving module 610 can be used to execute any step in the software installation method, and the response module 620 can be used to execute any step in the software installation method. The steps that the receiving module 610 and the response module 620 are responsible for implementing can be specified as needed. The full functions of the computing device 420 can be realized by respectively implementing different steps in the software installation method through the receiving module 610 and the response module 620.

[0212] It is worth noting that the computing device 420 of the aforementioned embodiment may correspond to the software installation device 600, and may correspond to executing the method according to the embodiment of the present application. Figures 3 to 5c The corresponding corresponding subjects, and the operations and / or functions of each module in the software installation device 600 are respectively to achieve Figures 3 to 5c For the sake of brevity, the corresponding processes of each method in the corresponding embodiment are not repeated here.

[0213] Combined with the above Figures 3 to 5c , describes in detail the software installation method provided by this application, and will be combined with Figure 7 , Figure 7 A schematic diagram of the structure of a software installation device provided in this application Figure 2 , describing the software installation apparatus provided in accordance with the present application. Software installation apparatus 700 can be used to implement the functions of computing device 420 and computing device 430 in the above-described method embodiments, thereby also achieving the beneficial effects of the above-described method embodiments. The apparatus is applied to a computer system that remotely installs software for a first computing device. The computer system includes computing device 420 storing a plurality of different software programs, and computing device 430 that assigns a URL to computing device 410. The URL is used to identify the software on computing device 420.

[0214] like Figure 7 As shown, the software installation apparatus 700 includes a distribution module 710 , a receiving module 720 and a response module 730 . The computing device 430 includes the distribution module 710 , and the computing device 430 includes the receiving module 720 and the response module 730 .

[0215] an allocation module for allocating a target URL to a first computing device of a software installation apparatus; the software installation apparatus target URL is used to identify a target software among a plurality of different software of the software installation apparatus, and the third computing device of the software installation apparatus includes the software installation apparatus allocation module;

[0216] A receiving module, configured to receive a request sent by the first computing device of the software installation apparatus based on the target URL;

[0217] The response module is used to send the software installation device target software to the software installation device first computing device for installation in response to the software installation device request; the software installation device second computing device includes a software installation device receiving module and a software installation device response module.

[0218] For the detailed implementation of the allocation module 710 , the receiving module 720 and the response module 730 , reference may be made to the above-mentioned content of the receiving module 610 , which will not be described in detail here.

[0219] in addition, Figure 6 or Figure 7 The software installation device 600 shown can also be implemented by a communication device, where the communication device may refer to the computing device 420 or the computing device 430 in the aforementioned embodiment, or, when the communication device is a chip or chip system applied to a processing device, the software installation device 600 can also be implemented by the chip or chip system.

[0220] An embodiment of the present application also provides a chip system, which includes a control circuit and an interface circuit. The interface circuit is used to obtain requests, and the control circuit is used to respond to requests to implement the functions of the computing device 420 in the above method.

[0221] In a possible design, the chip system further includes a memory for storing program instructions and / or data. The chip system can be composed of a chip or include a chip and other discrete devices.

[0222] The present application also provides a computing device, please refer to Figure 8 , Figure 8 This is a schematic diagram of the structure of a computing device provided in this application. Computing device 800 includes a bus 802, a processor 804, a memory 806, and a communication interface 808. The processor 804, the memory 806, and the communication interface 808 are connected to each other via bus 802. Computing device 800 can be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in computing device 800. For example, computing device 800 can implement the functions of at least one of the computing devices 420, 430, and 440 described above.

[0223] The bus 802 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 8 The bus 802 may include a path for transmitting information between various components of the computing device 800 (eg, the processor 804, the memory 806, and the communication interface 808).

[0224] The processor 804 may include any one or more processors such as a CPU, a GPU, a microprocessor (MP), or a DSP.

[0225] The memory 806 may include volatile memory, such as random access memory (RAM). The processor 804 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).

[0226] Memory 806 stores executable program code. Processor 804 executes the executable program code to implement the functions of the aforementioned receiving module 610 and response module 620, or to implement the functions of the aforementioned distribution module 710, receiving module 720, and response module 730, thereby implementing the software installation method. In other words, memory 806 stores instructions for executing the software installation method.

[0227] Communication interface 808 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to enable communication between computing device 800 and other devices or communication networks. Computing device 800 can be a computer (e.g., a server) in a cloud data center, a computer in an edge data center, or a terminal.

[0228] For the functions that can be realized by deploying the above-mentioned computing device 420, computing device 430 or computing device 440 in different computing devices 800, different computing devices 800 can communicate with each other through a communication network.

[0229] Embodiments of the present application also provide a computing device cluster. The computing device cluster includes at least one computing device, which can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.

[0230] like Figure 9 As shown, Figure 9 This is a schematic diagram of the structure of a computing device cluster provided in this application. The computing device cluster includes at least one computing device 800. The memory 806 of one or more computing devices 800 in the computing device cluster may store the same instructions for executing the software installation method.

[0231] In some possible implementations, the memory 806 of one or more computing devices 800 in the computing device cluster may also store partial instructions for executing the software installation method. In other words, the combination of one or more computing devices 800 can jointly execute the instructions for executing the software installation method.

[0232] It should be noted that the memory 806 in different computing devices 800 in the computing device cluster can store different instructions, each for executing a portion of the functions of the software installation method. In other words, the instructions stored in the memory 806 in different computing devices 800 can implement the functions of one or more of the receiving module 610 and the responding module 620, or implement the functions of one or more of the assigning module 710, the receiving module 720, and the responding module 730.

[0233] In some possible implementations, one or more computing devices in a computing device cluster may be connected via a network, which may be a wide area network or a local area network. Figure 10 A possible implementation is shown. Figure 10 As shown, Figure 10 This application provides a schematic diagram of a connection between computing devices, in which two computing devices 800A and 800B are connected via a network. Specifically, the connection to the network is achieved through the communication interface in each computing device. In this type of possible implementation, the memory 806 in the computing device 800A stores instructions for executing the functions of the receiving module 610. At the same time, the memory 806 in the computing device 800B stores instructions for executing the functions of the responding module 620. Alternatively, the memory 806 in the computing device 800A stores instructions for executing the functions of the allocating module 710, and the memory 806 in the computing device 800B stores instructions for executing the functions of the receiving module 720 and the responding module 730.

[0234] It should be understood that Figure 10 The functionality of the computing device 800A shown in FIG. 8 may also be implemented by multiple computing devices 800. Similarly, the functionality of the computing device 800B may also be implemented by multiple computing devices 800.

[0235] The present application also provides a computer program product containing instructions. This computer program product can be software or a program product containing instructions that can be run on a computing device or stored on any available medium. When the computer program product is run on at least one computing device, it causes the at least one computing device to execute the software installation method described above.

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

[0237] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware or any combination thereof. When implemented using software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instructions are loaded and executed on a computer, the process or function described in the embodiments of the present application is performed in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user device or other programmable device. The computer program or instruction can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer program or instruction can be transmitted from one website, computer, server or data center to another website, computer, server or data center via wired or wireless means. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium, such as a floppy disk, a hard disk, or a tape; it can also be an optical medium, such as a digital video disc (DVD); it can also be a semiconductor medium, such as a solid state drive (SSD).

[0238] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in the present application, and such modifications or substitutions should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.< / password> < / username> < / password> < / username>

Claims

1. A software installation method, characterized in that: The method is applied to a second computing device that remotely installs software for a first computing device, wherein the second computing device stores a plurality of different software programs, and the method includes: The second computing device receives a request sent by the first computing device based on a target uniform resource locator (URL); the target URL is used to identify a target software among the plurality of different software; In response to the request, the second computing device sends the target software to the first computing device for installation.

2. The method according to claim 1, characterized in that The request includes address information of the first computing device, and the second computing device sends the target software to the first computing device for installation in response to the request, including: The second computing device determines the target software identified by the target URL in response to the request; The second computing device sends the target software to the first computing device for installation according to the address information of the first computing device.

3. The method according to claim 1 or 2, characterized in that The software is an operating system image.

4. The method according to any one of claims 1 to 3, characterized in that The second computing device is a Hypertext Transfer Protocol (HTTP) server or a Hypertext Transfer Security (HTTPS) server.

5. A software installation method, characterized in that: The method is applied to a computer system for remotely installing software on a first computing device, the computer system including a second computing device storing a plurality of different software programs, and a third computing device for assigning a uniform resource locator (URL) to the first computing device, the URL being used to identify the software on the second computing device. The method includes: The third computing device assigns a target URL to the first computing device, where the target URL is used to identify a target software among the plurality of different software; The second computing device receives the request sent by the first computing device based on the target URL; In response to the request, the second computing device sends the target software to the first computing device for installation.

6. The method according to claim 5, characterized in that The third computing device assigning a target URL to the first computing device includes: The third computing device receives a target URL configured by a user for the first computing device; The third computing device configures the target URL to the first computing device according to the address information of the first computing device.

7. The method according to claim 6, characterized in that The third computing device receives a target URL configured by a user for the first computing device, including: The third computing device receives a trigger operation of a control component on a user interface by a user; the trigger operation is used to determine configuration of the first computing device; The third computing device obtains the target URL configured by the user for the first computing device in response to the user triggering the control component.

8. The method according to claim 6 or 7, characterized in that The third computing device configures the target URL to the first computing device according to the address information of the first computing device, including: The third computing device sends the target URL to the first computing device according to the address information of the first computing device. The hardware management platform in the first computing device stores the target URL, and the hardware management platform starts automatically when the device is powered on.

9. The method according to any one of claims 5 to 8, characterized in that The request includes address information of the first computing device, and the second computing device sends the target software to the first computing device for installation in response to the request, including: The second computing device determines the target software identified by the target URL in response to the request; The second computing device sends the target software to the first computing device for installation according to the address information of the first computing device.

10. The method according to any one of claims 5 to 9, characterized in that The software is an operating system image.

11. The method according to any one of claims 5 to 10, characterized in that The second computing device is a Hypertext Transfer Protocol (HTTP) server or a Hypertext Transfer Security (HTTPS) server.

12. A software installation device, characterized in that: The apparatus is applied to a second computing device that remotely installs software on a first computing device, wherein the second computing device stores a plurality of different software programs, and the apparatus includes: a receiving module, configured to receive a request sent by the first computing device based on a target uniform resource locator (URL); the target URL is used to identify a target software among the plurality of different software; A response module is used to send the target software to the first computing device for installation in response to the request.

13. The device according to claim 12, characterized in that The request includes the address information of the first computing device, and the response module is specifically used to respond to the request, determine the target software identified by the target URL, and send the target software to the first computing device for installation according to the address information of the first computing device.

14. The device according to claim 12 or 13, characterized in that The software is an operating system image.

15. The device according to any one of claims 12 to 14, characterized in that The second computing device is a Hypertext Transfer Protocol (HTTP) server or a Hypertext Transfer Security (HTTPS) server.

16. A software installation device, characterized in that: The apparatus is applied to a computer system for remotely installing software on a first computing device, the computer system including a second computing device storing a plurality of different software programs, and a third computing device for assigning a uniform resource locator (URL) to the first computing device, the URL being used to identify the software on the second computing device. The apparatus includes: an allocation module, configured to allocate a target URL to the first computing device; the target URL is used to identify a target software among the plurality of different software, the third computing device including the allocation module; A receiving module, configured to receive a request sent by the first computing device based on a target URL; The response module is used to send the target software to the first computing device for installation in response to the request; the second computing device includes the receiving module and the response module.

17. The device according to claim 16, characterized in that The allocation module is specifically configured to receive a target URL configured by a user for the first computing device, and configure the target URL to the first computing device according to the address information of the first computing device.

18. The device according to claim 17, characterized in that The allocation module is further specifically used to receive a trigger operation of a control component by a user on a user interface, and in response to the user's trigger operation of the control component, obtain a target URL configured by the user for the first computing device; wherein the trigger operation is used to determine the configuration of the first computing device.

19. The device according to claim 17 or 18, characterized in that The allocation module is further specifically configured to send the target URL to the first computing device according to the address information of the first computing device, and the hardware management platform in the first computing device stores the target URL, and the hardware management platform automatically starts when the device is powered on.

20. The device according to any one of claims 16 to 19, characterized in that The request includes the address information of the first computing device, and the response module is specifically used to respond to the request, determine the target software identified by the target URL, and send the target software to the first computing device for installation according to the address information of the first computing device.

21. The device according to any one of claims 16 to 20, characterized in that The software is an operating system image.

22. The device according to any one of claims 16 to 21, characterized in that The second computing device is a Hypertext Transfer Protocol (HTTP) server or a Hypertext Transfer Security (HTTPS) server.

23. A computing device cluster, characterized in that: comprising at least one computing device, each computing device including a processor and a memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method according to any one of claims 1 to 4 and / or executes the method according to any one of claims 5 to 11.

24. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster executes the method according to any one of claims 1 to 4 and / or executes the method according to any one of claims 5 to 11.

25. A computer-readable storage medium, characterized in that The method comprises computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster performs the method according to any one of claims 1 to 4 and / or performs the method according to any one of claims 5 to 11.