WO2023093016A1 - 云端代码开发系统、方法、装置、设备及存储介质 - Google Patents
云端代码开发系统、方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- WO2023093016A1 WO2023093016A1 PCT/CN2022/099898 CN2022099898W WO2023093016A1 WO 2023093016 A1 WO2023093016 A1 WO 2023093016A1 CN 2022099898 W CN2022099898 W CN 2022099898W WO 2023093016 A1 WO2023093016 A1 WO 2023093016A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- virtual machine
- code
- task
- cloud server
- encoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present disclosure relates to the field of computer technology, in particular to cloud code development and online coding technology.
- Cloud code development provides cloud-integrated back-end cloud services. Compared with traditional front-end development models, cloud code development can provide complete back-end cloud services, including basic capabilities such as databases, storage, functions, and static hosting, which can greatly save With front-end hardware resources, users can even develop codes with high computing performance through smartphones. And with the development of computer technology, code development is gradually split from the original monolithic architecture model into multiple service applications consisting of many loosely coupled and independently deployable smaller components or services. Cloud code development can be easily implemented. It is well adapted to the collaborative development scenario.
- the present disclosure provides a cloud code development system, method, device, equipment and storage medium.
- a cloud code development system including:
- a client and a cloud server wherein the client includes an agent module and a remote server module;
- the remote server module is configured to obtain the code input by the user, and synchronize the code input by the user to the cloud server through stream synchronization;
- the cloud server is configured to establish an encoding virtual machine corresponding to the remote server module; write the code synchronized by the remote server module through stream synchronization into the virtual machine; use the encoding virtual machine to run the The above code generates the corresponding task;
- the proxy module is configured to pull the task from the cloud server and send the task to the remote server module;
- the remote server module is also used to execute the task.
- a cloud code development method which is applied to a client, and the method includes:
- a cloud code development method which is applied to a cloud server, and the method includes:
- the coding virtual machine is used to run the code to generate corresponding tasks.
- a cloud code development device which is applied to a client, and the device includes:
- the remote server module is used to obtain the code input by the user, and synchronize the code to the cloud server through stream synchronization;
- An agent module configured to pull a task from the cloud server, and send the task to the remote server module; wherein, the task is generated based on the code by an encoding virtual machine in the cloud server;
- the remote server module is also used to execute the task.
- a cloud code development device which is applied to a cloud server, and the device includes:
- a code synchronization module configured to write the code synchronized by stream synchronization into the virtual machine
- a task generating module configured to use the coding virtual machine to run the code to generate a corresponding task.
- an electronic device including:
- the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor, so that the at least one processor can execute the cloud code development described in any one of the present disclosure. method.
- a non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions are used to cause the computer to execute any one of the cloud code development methods described in the present disclosure .
- a computer program product including a computer program, and when the computer program is executed by a processor, the cloud code development method described in any one of the present disclosure is implemented.
- the cloud code development is realized, and compared with the code file synchronization method, the stream synchronization method can increase the code consistency between the client and the cloud server, and improve the response speed of the cloud code development.
- FIG. 1 is a schematic diagram according to a first embodiment of the present disclosure
- FIG. 2 is a schematic diagram according to a second embodiment of the present disclosure.
- Fig. 3 is a kind of schematic diagram according to the agent installation method of the present disclosure
- FIG. 4 is a schematic diagram according to a third embodiment of the present disclosure.
- FIG. 5 is a schematic diagram according to a fourth embodiment of the present disclosure.
- FIG. 6 is a schematic diagram of a cloud code development method applied to a client according to the present disclosure
- FIG. 7 is a schematic diagram of a cloud code development method applied to a cloud server according to the present disclosure.
- FIG. 8 is a block diagram of an electronic device used to implement the cloud code development method according to an embodiment of the present disclosure.
- IDE Integrated Development Environment, integrated development environment
- Transfer Protocol file transfer protocol
- the cloud server will update the local code file of the cloud server according to the code file sent by the client, so as to realize the cloud code development.
- problems such as slow access to code files, slow index establishment, slow search speed, and poor security, and the advanced functions of the IDE, such as Intellisense (intelligent prompt) functions, cannot be used.
- an embodiment of the present disclosure provides a cloud code development system, as shown in FIG. 1 , including:
- Client 11 and cloud server 12, described client 11 comprises proxy module 111 and remote server module 112;
- the remote server module 112 is configured to obtain the code input by the user, and synchronize the code input by the user to the cloud server through stream synchronization;
- the cloud server 12 is used to set up the encoding virtual machine corresponding to the remote server module; write the code synchronized by the remote server module into the virtual machine through stream synchronization; utilize the encoding virtual machine to run The code generates a corresponding task;
- the agent module 111 is configured to pull the task from the cloud server, and send the task to the remote server module 112;
- the remote server module 112 is also configured to execute the task.
- An agent module (Agent) and a remote server module (Remote-Server) are installed in the client, and a coding virtual machine corresponding to the Remote-Server is established in the cloud server.
- Remote-Server obtains the code input by the user in the client, and synchronizes the code to the corresponding coding virtual machine in the cloud server through stream synchronization.
- the coding virtual machine runs the received code and generates corresponding tasks.
- the Agent pulls tasks from the coding virtual machine of the cloud server and sends them to the remote server module for execution.
- the above task may be an advanced function task of the IDE, such as code jump, code auto-completion, code hover prompt, and the like.
- the Remote-Server in the embodiment of the present disclosure adopts the method of stream synchronization to realize the code synchronization with the cloud server, and the Remote-Server directly converts the code input by the user (including code deletion, overwriting, etc.) ) is synchronized to the coding virtual machine of the cloud server in the form of data flow, without waiting for the code file to be written and then synchronized to the cloud server in the form of a code file.
- the code of the cloud server and the local client are strongly consistent, and the code access speed Fast, fast indexing, fast search.
- the Agent pulls tasks from the cloud server to the Remote-Server for execution, which can realize the advanced functions of the IDE, such as code jump, code auto-completion, code hover prompts and other functions can be smoothly realized.
- the cloud server can be a host that requires remote operation.
- Applying the cloud code development system of the disclosed embodiment can make the experience of cloud code development consistent with the local experience, and can realize remote operation on any host that needs to be operated. It also supports operations such as debugging and compiling cloud programs, and can realize unified management of multiple hosts.
- the cloud server can realize code operation by means of a pseudo-terminal.
- the remote server module is specifically used to: establish a terminal emulator; obtain the code input by the user through the terminal emulator; use The code is sent to the coding virtual machine of the cloud server by means of real-time full-duplex synchronous communication;
- the cloud server is specifically used to: input the received code into the main pseudo-terminal of the encoding virtual machine, block the file descriptor of the main pseudo-terminal, and transfer the code to the main pseudo-terminal through the main pseudo-terminal Mapped to the slave pseudo-terminal, the code is input into the command processor of the coding virtual machine through the slave pseudo-terminal.
- Remote-Server can be an IDE developed based on VS code (Visual Studio Code, a source code editor). Remote-Server can call the remote fork-pty function to establish a pseudo-terminal in the virtual machine. The fork-pty function first calls the openpty function to obtain an available main pseudo-terminal. If the main pseudo-terminal is obtained successfully, a new process is created.
- This process will close the file descriptor of the main pseudo-terminal, and then call the login_tty function in the encoding virtual machine
- Start the slave pseudo-terminal use the master pseudo-terminal to map the code input by the user to the slave pseudo-terminal, and input the code from the pseudo-terminal to the command processor of the coding virtual machine, so as to realize the operation of the code, as shown in Figure 2, where TCP /IP is the network connection protocol, Bash represents the command processor of the coded virtual machine, and Websocket is a full-duplex communication protocol.
- the code input by the user is obtained through the terminal emulator, and the code collected by the terminal emulator is sent to the master pseudo-terminal by means of real-time full-duplex synchronous communication, and the file descriptor of the master pseudo-terminal is blocked.
- the pseudo-terminal is not responsible for the execution of the code, but maps the code input by the master pseudo-terminal to the slave pseudo-terminal, and the code is input from the pseudo-terminal to the command processor of the coding virtual machine, so as to realize the operation of the code.
- Code synchronization is carried out in the form of data flow, the cloud server and the local code of the client are strongly consistent, and the code access speed is fast, the index establishment is fast, and the search speed is fast.
- Agent and Remote-Server need to be installed in the client.
- the Agent is firstly installed on the client, and after the Agent is installed, the Remote-Server can be installed locally on the client by using the Agent.
- the Agent can also send a request to the cloud server, so as to establish an encoded virtual machine corresponding to the Remote-Server on the cloud server.
- the installation process of the Agent can be shown in Figure 3.
- the Platform (platform) interface, the Agent interface, and the Registe Agent (registered client) interface are first requested to perform initialization operations. Determine whether the Agent has been installed in the current device, and if so, stop the installation; otherwise, check the installation environment. First, determine whether the version of the client's local JDK (Java Development Kit, a software development kit) is higher than the required version (version 1.6 is used as an example in the figure). If not, determine whether the cloud server needs Patchelf ( A tool for modifying dynamic libraries and executable programs), if so, install the JDK corresponding to the first version (JDK1. .8_noPatch as an example).
- JDK Java Development Kit
- Patchelf A tool for modifying dynamic libraries and executable programs
- Agent software package client installation package
- client client installation package
- code server code server
- copy the codeserver plug-in and its user configuration to In vscode-server
- codeserver has not been installed
- patchelf is needed, if necessary, download vscode-server-Patchelf, if not, download vscode-server-noPatchelf.
- start vscode-server to report Host (host) information, IP information and other information to complete the installation.
- the Agent module is further configured to: manage the remote server module and the encoding virtual machine corresponding to the remote server module, wherein the management includes upgrade, backtracking, restart, deletion, addition and At least one of status checks.
- the Agent's management of the Remote-Server and the coding virtual machine may include at least one of upgrading, backtracking, restarting, deleting, adding and status checking.
- the user can create a Remote-Server locally on the client through the Agent, and the Agent will register the Remote-Server to the cloud server.
- the cloud server receives For the registration information of the Remote-Server, an encoding virtual machine corresponding to the Remote-Server will be established accordingly.
- the user When the user wants to backtrack the code to a certain point in time, the user sends a backtracking command for the coding virtual machine to the cloud server through the Agent, and the cloud server saves the The data needed for backtracking of the coding virtual machine (such as the image of the coding virtual machine, etc.), the cloud server uses the data to backtrack the coding virtual machine, and the coding virtual machine generates a corresponding backtracking task after the backtracking, and the Agent pulls the backtracking task to the Remote- Server execution, so as to realize the backtracking of Remote-Server.
- the data needed for backtracking of the coding virtual machine such as the image of the coding virtual machine, etc.
- the cloud server uses the data to backtrack the coding virtual machine, and the coding virtual machine generates a corresponding backtracking task after the backtracking, and the Agent pulls the backtracking task to the Remote- Server execution, so as to realize the backtracking of Remote-Server.
- the Agent can be used to manage the client's local Remote-Server and the encoding virtual machine in the cloud server, which is convenient for the management of the Remote-Server and the cloud server, and the Agent can be used to realize the upgrade of the Remote-Server and the cloud server , backtracking, restart, delete, add, and status detection, etc., to improve the usability of cloud code development.
- the proxy module is specifically configured to: periodically send a heartbeat request to the coding virtual machine, and determine that the coding virtual machine is available after receiving the reply information from the coding virtual machine ; When no response information from the encoding virtual machine is received within a preset number of consecutive cycles, it is determined that the encoding virtual machine is unavailable, and sending recovery information for the encoding virtual machine to the cloud server;
- the cloud server is further configured to use the encoding virtual machine to respond to the heartbeat request, and send reply information to the client; and restore the encoding virtual machine in response to the recovery information.
- the Agent can adopt a Client-server architecture design. For example, as shown in Figure 4, after the installation of the Agent in the client is completed, the Agent first registers in the cloud server to obtain legal access and control rights. After successfully installing the Remote-Server and the encoding virtual machine, the Agent can periodically send a heartbeat request to the encoding virtual machine, and after receiving the reply information from the encoding virtual machine to the heartbeat request, it can be determined that the encoding virtual machine is available.
- the Agent determines that the coding virtual machine In the event of an abnormality, the Agent can send recovery information indicating recovery of the abnormal encoding virtual machine to the cloud server, and recover the corresponding encoding virtual machine after the cloud server receives the recovery information.
- the cloud server can restore the unavailable coding virtual machine by restarting or migrating, so as to ensure the sequence of cloud code development; the cloud server can first try to restart the coding virtual machine, if the host machine of the coding virtual machine If the encoding virtual machine fails to restart due to other reasons, you can use the image file of the encoding virtual machine to re-create the encoding virtual machine on the available host machine, and remap the corresponding relationship to enable migration of coded virtual machines.
- the agent can use the heartbeat request to obtain the status of the coding virtual machine in the cloud server, and recover the unavailable coding virtual machine by restoring the information, so as to ensure the sequence of cloud code development and improve the efficiency of cloud code development. availability.
- the cloud server is further configured to use the coding virtual machine to add the task notification of the task to a notification queue;
- the proxy module is specifically configured to pull task notifications from the notification queue of the encoding virtual machine, and based on the task notification, pull the tasks from the encoding virtual machine, and send the tasks to the The remote server module; obtain the task execution of the remote server module, and send the task execution to the encoding virtual machine in the cloud server;
- the cloud server is further configured to use the coding virtual machine to update the tasks in the coding virtual machine according to the task execution situation.
- the coding virtual machine generates corresponding tasks during the process of running the code, for example, the tasks may be code jump, code auto-completion, code hover prompt, and the like.
- the encoding virtual machine can add the task notification of the task to the notification queue, and the Agent can obtain the task notification from the notification queue, and based on the task notification, pull the task from the encoding virtual machine to the client's local Remote-Server for execution.
- the Agent can update the task in the coding virtual machine according to the task execution status of the Remote-Server.
- the encoding virtual machine adds the task notification of the task to the notification queue, and the Agent pulls the task notification from the notification queue to facilitate the Agent to obtain the task notification; the Agent pulls the task based on the task notification, compared to the Pulling tasks directly from the task queue makes it easier for the Agent to manage tasks and ultimately improve task execution efficiency; in addition, the Agent returns the task execution status to the coding virtual machine, so that the coding virtual machine can update itself in real time according to the task execution status tasks, facilitate the management and execution of tasks, and ultimately improve the efficiency of task execution.
- the system further includes: a reverse proxy server 13 for forwarding between the client and the cloud server data message.
- the reverse proxy server provides the proxy service of the cloud server.
- the reverse proxy server can be Nginx (also known as Enginex, which is a high-performance reverse proxy web server). All services provided by the cloud server will be mounted on the reverse proxy server, and the address of the reverse proxy server will be exposed to the outside world, and the address of the cloud server will not be directly exposed to the Internet, so the security of the cloud server can be increased.
- the reverse proxy server also plays the role of load balancing and data forwarding, which can improve the load balancing between cloud servers and ensure accurate data forwarding.
- the embodiment of the present disclosure also provides a cloud code development method, which is applied to the client, see FIG. 6, the method includes:
- the obtaining the code input by the user, and synchronizing the code with the cloud server through stream synchronization includes:
- the code is sent to the coding virtual machine of the cloud server by means of real-time full-duplex synchronous communication.
- the method also includes:
- the pulling tasks from the cloud server includes:
- the method also includes:
- the task execution status of the task is acquired, and the task execution status is sent to the encoding virtual machine.
- the embodiment of the present disclosure also provides a cloud code development method, which is applied to a cloud server, see FIG. 7, and the method includes:
- writing the code synchronized through stream synchronization into the virtual machine includes:
- the method also includes:
- the encoded virtual machine In response to the recovery information indicating recovery of the encoded virtual machine, the encoded virtual machine is recovered.
- the method also includes:
- the coding virtual machine is used to update the tasks in the coding virtual machine according to the task execution status sent by the client.
- An embodiment of the present disclosure also provides a cloud code development device, which is applied to a client, and the device includes:
- the remote server module is used to obtain the code input by the user, and synchronize the code to the cloud server through stream synchronization;
- An agent module configured to pull a task from the cloud server, and send the task to the remote server module; wherein, the task is generated based on the code by an encoding virtual machine in the cloud server;
- the remote server module is also used to execute the task.
- the remote server module is specifically configured to: establish a terminal emulator; obtain the code input by the user through the terminal emulator; use real-time full-duplex synchronous communication to send the code to The coding virtual machine of the cloud server.
- the agent module is further configured to: manage the remote server module and the encoding virtual machine corresponding to the remote server module, wherein the management includes upgrade, backtracking, restart, deletion, addition and At least one of status checks.
- the proxy module is specifically configured to: periodically send a heartbeat request to the coding virtual machine, and determine that the coding virtual machine is available after receiving the reply information from the coding virtual machine ; If no response information from the encoding virtual machine is received within a preset number of consecutive cycles, it is determined that the encoding virtual machine is unavailable, and sending recovery information for the encoding virtual machine to the cloud server.
- the proxy module is specifically configured to: pull task notifications from the notification queue of the coding virtual machine, and pull the task notification from the coding virtual machine based on the task notification. task, sending the task to the remote server module; obtaining the task execution status of the remote server module, and sending the task execution status to the coding virtual machine in the cloud server.
- An embodiment of the present disclosure also provides a cloud code development device, which is applied to a cloud server, and the device includes:
- a code synchronization module configured to write the code synchronized by stream synchronization into the virtual machine
- a task generating module configured to use the coding virtual machine to run the code to generate a corresponding task.
- the code synchronization module is specifically configured to: input the received code into the main pseudo-terminal of the encoding virtual machine, and block the file descriptor of the main pseudo-terminal , mapping the code to a slave pseudo-terminal through the master pseudo-terminal, and inputting the code into the command processor of the encoding virtual machine through the slave pseudo-terminal.
- the device also includes:
- a heartbeat response module configured to use the encoding virtual machine to respond to the heartbeat request sent by the client, and send reply information to the client;
- a virtual machine recovery module configured to recover the coded virtual machine in response to the recovery information indicating recovery of the coded virtual machine.
- the device also includes:
- a task notification adding module configured to add the task notification of the task to the notification queue by using the encoding virtual machine
- a task update module configured to use the encoding virtual machine to update tasks in the encoding virtual machine according to the task execution status sent by the client.
- the present disclosure also provides an electronic device, a readable storage medium, and a computer program product.
- electronic equipment including:
- the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor, so that the at least one processor can execute the cloud code development described in any one of the present disclosure. method.
- a computer program product includes a computer program, and when the computer program is executed by a processor, any one of the cloud code development methods described in the present disclosure is implemented.
- FIG. 8 shows a schematic block diagram of an example electronic device 800 that may be used to implement embodiments of the present disclosure.
- Electronic device is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers.
- Electronic devices may also represent various forms of mobile devices, such as personal digital processing, cellular telephones, smart phones, wearable devices, and other similar computing devices.
- the components shown herein, their connections and relationships, and their functions, are by way of example only, and are not intended to limit implementations of the disclosure described and/or claimed herein.
- the device 800 includes a computing unit 801 that can execute according to a computer program stored in a read-only memory (ROM) 802 or loaded from a storage unit 808 into a random access memory (RAM) 803. Various appropriate actions and treatments. In the RAM 803, various programs and data necessary for the operation of the device 800 can also be stored.
- the computing unit 801, ROM 802, and RAM 803 are connected to each other through a bus 804.
- An input/output (I/O) interface 805 is also connected to the bus 804 .
- the I/O interface 805 includes: an input unit 806, such as a keyboard, a mouse, etc.; an output unit 807, such as various types of displays, speakers, etc.; a storage unit 808, such as a magnetic disk, an optical disk, etc. ; and a communication unit 809, such as a network card, a modem, a wireless communication transceiver, and the like.
- the communication unit 809 allows the device 800 to exchange information/data with other devices over a computer network such as the Internet and/or various telecommunication networks.
- the computing unit 801 may be various general-purpose and/or special-purpose processing components having processing and computing capabilities. Some examples of computing units 801 include, but are not limited to, central processing units (CPUs), graphics processing units (GPUs), various dedicated artificial intelligence (AI) computing chips, various computing units that run machine learning model algorithms, digital signal processing processor (DSP), and any suitable processor, controller, microcontroller, etc.
- the computing unit 801 executes various methods and processes described above, such as cloud code development methods.
- the cloud code development method may be implemented as a computer software program tangibly embodied in a machine-readable medium, such as the storage unit 808 .
- part or all of the computer program may be loaded and/or installed on the device 800 via the ROM 802 and/or the communication unit 809.
- the computer program When the computer program is loaded into the RAM 803 and executed by the computing unit 801, one or more steps of the cloud code development method described above can be performed.
- the computing unit 801 may be configured in any other suitable manner (for example, by means of firmware) to execute the cloud code development method.
- Various implementations of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips Implemented in a system of systems (SOC), complex programmable logic device (CPLD), computer hardware, firmware, software, and/or combinations thereof.
- FPGAs field programmable gate arrays
- ASICs application specific integrated circuits
- ASSPs application specific standard products
- SOC system of systems
- CPLD complex programmable logic device
- computer hardware firmware, software, and/or combinations thereof.
- programmable processor can be special-purpose or general-purpose programmable processor, can receive data and instruction from storage system, at least one input device, and at least one output device, and transmit data and instruction to this storage system, this at least one input device, and this at least one output device an output device.
- Program codes for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special purpose computer, or other programmable data processing devices, so that the program codes, when executed by the processor or controller, make the functions/functions specified in the flow diagrams and/or block diagrams Action is implemented.
- the program code may execute entirely on the machine, partly on the machine, as a stand-alone software package partly on the machine and partly on a remote machine or entirely on the remote machine or server.
- a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device.
- a machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
- a machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing.
- machine-readable storage media would include one or more wire-based electrical connections, portable computer discs, hard drives, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), optical fiber, compact disk read only memory (CD-ROM), optical storage, magnetic storage, or any suitable combination of the foregoing.
- RAM random access memory
- ROM read only memory
- EPROM or flash memory erasable programmable read only memory
- CD-ROM compact disk read only memory
- magnetic storage or any suitable combination of the foregoing.
- the systems and techniques described herein can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user. ); and a keyboard and pointing device (eg, a mouse or a trackball) through which a user can provide input to the computer.
- a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
- a keyboard and pointing device eg, a mouse or a trackball
- Other kinds of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and can be in any form (including Acoustic input, speech input or, tactile input) to receive input from the user.
- the systems and techniques described herein can be implemented in a computing system that includes back-end components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes front-end components (e.g., as a a user computer having a graphical user interface or web browser through which a user can interact with embodiments of the systems and techniques described herein), or including such backend components, middleware components, Or any combination of front-end components in a computing system.
- the components of the system can be interconnected by any form or medium of digital data communication, eg, a communication network. Examples of communication networks include: Local Area Network (LAN), Wide Area Network (WAN) and the Internet.
- a computer system may include clients and servers.
- Clients and servers are generally remote from each other and typically interact through a communication network.
- the relationship of client and server arises by computer programs running on the respective computers and having a client-server relationship to each other.
- the server can be a cloud server, a server of a distributed system, or a server combined with a blockchain.
- steps may be reordered, added or deleted using the various forms of flow shown above.
- each step described in the present disclosure may be executed in parallel, sequentially, or in a different order, as long as the desired result of the technical solution disclosed in the present disclosure can be achieved, no limitation is imposed herein.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种云端代码开发系统、方法、装置、设备及存储介质,涉及计算机技术领域,尤其涉及云端代码开发、在线编码技术领域。具体实现方案为:客户端包括代理模块及远程服务器模块;远程服务器模块获取用户输入的代码,并通过流同步的方式向云端服务器同步用户输入的代码;云端服务器建立远程服务器模块对应的编码虚拟机;将远程服务器模块通过流同步的方式同步的代码写入到虚拟机中;利用编码虚拟机运行代码,生成对应的任务;代理模块从云端服务器中拉取任务,并将任务发送给远程服务器模块;远程服务器模块还用于执行任务。实现了云端代码开发,流同步的方式能够增加客户端与云端服务器中代码的一致性,提高云端代码开发的响应速度。
Description
本申请要求于2021年11月26日提交中国专利局、申请号为202111422652.0发明名称为“云端代码开发系统、方法、装置、设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本公开涉及计算机技术领域,尤其涉及云端代码开发、在线编码技术。
云端代码开发提供云端一体化的后端云服务,与传统的前端开发模式相比,云端代码开发能够提供完整的后端云服务,包括数据库、存储、函数、静态托管等基础能力,能够大大节约前端的硬件资源,用户甚至可以通过智能手机实现对高运算性能代码的开发。并且随着计算机技术的发展,代码开发由原来单体式架构的模式,逐渐被拆分成多个由许多松散耦合且可独立部署的较小组件或服务组成的服务应用,云端代码开发能够很好的适应协同开发的场景。
发明内容
本公开提供了一种云端代码开发系统、方法、装置、设备及存储介质。
根据本公开的一方面,提供了一种云端代码开发系统,包括:
客户端及云端服务器,所述客户端包括代理模块及远程服务器模块;
所述远程服务器模块,用于获取用户输入的代码,并通过流同步的方式向所述云端服务器同步所述用户输入的代码;
所述云端服务器,用于建立所述远程服务器模块对应的编码虚拟机;将所述远程服务器模块通过流同步的方式同步的代码写入到所述虚拟机中;利用所述编码虚拟机运行所述代码,生成对应的任务;
所述代理模块,用于从所述云端服务器中拉取所述任务,并将所述任务发送给所述远程服务器模块;
所述远程服务器模块,还用于执行所述任务。
根据本公开的另一方面,提供了一种云端代码开发方法,应用于客户端,所述方法包括:
获取用户输入的代码,并通过流同步的方式向云端服务器同步所述代码;
从所述云端服务器中拉取任务,其中,所述任务为所述云端服务器中的编码虚拟机基于所述代码生成的;
执行所述任务。
根据本公开的另一方面,提供了一种云端代码开发方法,应用于云端服务器,所述方法包括:
建立编码虚拟机;
将通过流同步的方式同步的代码写入到所述虚拟机中;
利用所述编码虚拟机运行所述代码,生成对应的任务。
根据本公开的另一方面,提供了一种云端代码开发装置,应用于客户端,所述装置包括:
远程服务器模块,用于获取用户输入的代码,并通过流同步的方式向云端服务器同步所述代码;
代理模块,用于从所述云端服务器中拉取任务,并将所述任务发送给所述远程服务器模块;其中,所述任务为所述云端服务器中的编码虚拟机基于所述代码生成的;
所述远程服务器模块,还用于执行所述任务。
根据本公开的另一方面,提供了一种云端代码开发装置,应用于云端服务器,所述装置包括:
虚拟机建立模块,用于建立编码虚拟机;
代码同步模块,用于将通过流同步的方式同步的代码写入到所述虚拟机中;
任务生成模块,用于利用所述编码虚拟机运行所述代码,生成对应的任务。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开中任一所述的云端代码开发方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本公开中任一所述的云端代码开发方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开中任一所述的云端代码开发方法。
在本公开实施例中,实现了云端代码开发,并且相比于代码文件的同步方式,流同步的方式能够增加客户端与云端服务器中代码的一致性,提高云端代码开发的响应速度。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
为了更清楚地说明本发明实施例和现有技术的技术方案,下面对实施例和现有技术中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本公开第一实施例的示意图;
图2是根据本公开第二实施例的示意图;
图3是根据本公开Agent安装方法的一种示意图
图4是根据本公开第三实施例的示意图;
图5是根据本公开第四实施例的示意图;
图6是根据本公开的应用于客户端的云端代码开发方法的一种示意图;
图7是根据本公开的应用于云端服务器的云端代码开发方法的一种示意图;
图8是用来实现本公开实施例的云端代码开发方法的电子设备的框图。
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
相关的云端代码开发技术中,在客户端本地采用IDE(Integrated Development Environment,集成开发环境)来获取用户输入的代码,在用户编译的代码文件完成后,通过Samba(信息服务块)或者FTP(File Transfer Protocol,文件传输协议)方式将代码文件同步给云端服务器,由云端服务器根据客户端发送的代码文件来更新云端服务器本地的代码文件,从而实现云端代码开发。但是采用上述方式,会存在代码文件访问速度慢、索引建立慢、搜索速度慢以及安全性差等问题,并且无法使用IDE的高级功能,例如Intellisense(智能提示)功能等。
有鉴于此,本公开实施例提供了一种云端代码开发系统,参见图1,包括:
客户端11及云端服务器12,所述客户端11包括代理模块111及远程服务器模块112;
所述远程服务器模块112,用于获取用户输入的代码,并通过流同步的方式向所述云端服务器同步所述用户输入的代码;
所述云端服务器12,用于建立所述远程服务器模块对应的编码虚拟机;将所述远程服务器模块通过流同步的方式同步的代码写入到所述虚拟机中;利用所述编码虚拟机运行所述代码,生成对应的任务;
所述代理模块111,用于从所述云端服务器中拉取所述任务,并将所述任务发送给所述远程服务器模块112;
所述远程服务器模块112,还用于执行所述任务。
客户端中安装有代理模块(Agent)及远程服务器模块(Remote-Server),云端服务器中建立有Remote-Server对应的编码虚拟机。Remote-Server获取用户在客户端中输入的代码,并通过流同步的方式将代码同步给云端服务器中 对应的编码虚拟机。编码虚拟机运行接收到的代码,并生成相应的任务。Agent从云端服务器的编码虚拟机中拉取任务,并发送给远程服务器模块执行。上述任务可以为IDE的高级功能任务,例如代码跳转、代码自动补全、代码悬停提示等。
不同于相关技术中的代码文件同步,在本公开实施例中的Remote-Server采用流同步的方式实现与云端服务器的代码同步,Remote-Server直接将用户输入的代码(包括代码删除、覆盖等情况)以数据流的方式同步到云端服务器的编码虚拟机中,而无需等代码文件编写完成后在以代码文件的形式同步到云端服务器中,云端服务器与客户端本地的代码强一致,代码访问速度快、索引建立快、搜索速度快。此外,Agent从云端服务器拉取任务给Remote-Server执行,可以实现使用IDE的高级功能,代码跳转、代码自动补全、代码悬停提示等功能可以流畅实现。
一个例子中,云端服务器可以为需要远程操作的主机,应用本公开实施例的云端代码开发系统,可以使云端代码开发的体验达到和本地的体验一致,可以对任意需要操作的主机实现远程操作,并支持调试及编译云端程序等操作,能够实现对多个主机的统一管理。
云端服务器可以通过伪终端的方式来实现代码的运行,在一种可能的实施方式中,所述远程服务器模块具体用于:建立终端模拟器;通过所述终端模拟器获取用户输入的代码;利用实时全双工同步通信的方式将所述代码发送给所述云端服务器的编码虚拟机;
所述云端服务器具体用于:将接收到的所述代码输入到所述编码虚拟机的主伪终端中,阻断所述主伪终端的文件描述符,通过所述主伪终端将所述代码映射到从伪终端中,通过所述从伪终端将所述代码输入到所述编码虚拟机的命令处理器中。
一个例子中,Remote-Server可以为基于VS code(Visual Studio Code,一种源代码编辑器)开发的IDE。Remote-Server可以调用远程fork-pty函数,从而在虚拟机中建立伪终端。fork-pty函数首先调用openpty函数来获得可用的主伪终端,若主伪终端获取成功,则新建一个进程,该进程会关掉主伪终端的文件描述符,然后调用login_tty函数在编码虚拟机中启动从伪终端,利 用主伪终端将用户输入的代码映射给从伪终端,从伪终端将代码输入到编码虚拟机的命令处理器中,从而实现代码的运行,例如图2所示,其中TCP/IP为网络连接协议,Bash表示编码虚拟机的命令处理器,Websocket为一种全双工通信的协议。
在本公开实施例中,通过终端模拟器获取用户输入的代码,利用实时全双工同步通信的方式将终端模拟器采集的代码发送给主伪终端,阻断主伪终端的文件描述符,主伪终端并不负责代码的执行,而是将主伪终端输入的代码映射到从伪终端中,从伪终端将代码输入到编码虚拟机的命令处理器中,从而实现代码的运行,本公开中以数据流的方式进行代码同步,云端服务器与客户端本地的代码强一致,代码访问速度快、索引建立快、搜索速度快。
当首次使用客户端进行云端代码开发时,需要在客户端中安装Agent及Remote-Server。一个例子中,首先在客户端中安装Agent,在Agent安装完成后,可以利用Agent在客户端本地安装Remote-Server。在客户端本地安装Remote-Server的过程中,Agent还可以向云服务器端发送请求,从而在云服务器端建立Remote-Server对应的编码虚拟机。
一个例子中,Agent的安装过程可以如图3所示,开始安装后,首先请求Platform(平台)接口、Agent接口、Registe Agent(注册客户端)接口,进行初始化操作。判断当前设备中是否安装过Agent,若是则停止安装;若否则进行安装环境的检测。首先判断客户端本地的JDK(Java Development Kit,一种软件开发工具包)的版本是否高于要求的版本(图中以1.6版本为例),若不高于,则判定云端服务器是否需要Patchelf(一个用来修改动态库和可执行程序的工具),若是则安装对应第一版本的JDK(图中以JDK1.8_Patch为例),若不需要则安装对应第二版本的JDK(图中以JDK1.8_noPatch为例)。若客户端本地的JDK版本高于要求的版本,则启动Agent软件包(客户端安装包),判断客户端是否安装过codeserver(代码服务器),若安装过,则拷贝codeserver插件及其用户配置到vscode-server中;若未安装过codeserver,则判断是否需要Patchelf,若需要则下载vscode-server-Patchelf,若不需要则下载vscode-server-noPatchelf。启动vscode-server上报Host(主机)信息及IP信息等信息,从而完成安装。
Agent安装完成后,用户可以利用Agent来管理客户端本地的Remote-Server及云端服务器中的编码虚拟机。在一种可能的实施方式中,所述代理模块还用于:管理所述远程服务器模块及所述远程服务器模块对应的编码虚拟机,其中,管理包括升级、回溯、重启、删除、新增及状态检测中的至少一种。
Agent对Remote-Server及编码虚拟机的管理可以包括升级、回溯、重启、删除、新增及状态检测中的至少一种。一个例子中,以Remote-Server及编码虚拟机的新增为例,用户可以通过Agent在客户端本地建立Remote-Server,同时Agent会将该Remote-Server注册到云端服务器中,当云端服务器接收到针对Remote-Server的注册信息时,会相应的建立该Remote-Server对应的编码虚拟机。一个例子中,以Remote-Server及编码虚拟机的回溯为例,当用户希望将代码回溯到某个时间点时,用户通过Agent向云端服务器发送针对编码虚拟机的回溯指令,云端服务器中保存有编码虚拟机回溯需要的数据(例如编码虚拟机的镜像等),云端服务器利用该数据对编码虚拟机进行回溯,编码虚拟机回溯后会生成相应的回溯任务,Agent拉取该回溯任务给Remote-Server执行,从而实现Remote-Server的回溯。
在本公开实施例中,可以利用Agent来管理客户端本地的Remote-Server及云端服务器中的编码虚拟机,方便Remote-Server及云端服务器的管理,能够利用Agent来实现Remote-Server及云端服务器升级、回溯、重启、删除、新增及状态检测等,提高云端代码开发的可用性。
在一种可能的实施方式中,所述代理模块具体用于:周期性的向所述编码虚拟机发送心跳请求,在接收到所述编码虚拟机的答复信息后,判定所述编码虚拟机可用;在连续预设数量个周期内未接收到所述编码虚拟机的答复信息的情况下,判定所述编码虚拟机不可用,向所述云端服务器发送针对所述编码虚拟机的恢复信息;
所述云端服务器,还用于利用所述编码虚拟机响应所述心跳请求,向所述客户端发送答复信息;响应于所述恢复信息,恢复所述编码虚拟机。
一个例子中,Agent可以采用Client-server架构设计。例如图4所示,在客户端中的Agent安装完成后,Agent首先在云端服务器中进行注册,以取得 合法的访问及控制权限。在成功安装Remote-Server以及编码虚拟机后,Agent可以周期性向编码虚拟机发送心跳请求,在接收到编码虚拟机针对心跳请求的答复信息后,判定该编码虚拟机可用。若连续预设数量个周期(该预设数量可以根据实际情况自定义设置,例如设置为3次、4次或5次等)未接收到编码虚拟机的答复信息,则Agent判定该编码虚拟机异常,Agent可以向云端服务器发送表示恢复异常编码虚拟机的恢复信息,在云端服务器接收到恢复信息后,恢复相应的编码虚拟机。一个例子中,云端服务器可以通过重启或迁移等方式来恢复不可用的编码虚拟机,从而保证云端代码开发的顺序进行;云端服务器首先可以尝试重启该编码虚拟机,若因为编码虚拟机的宿主机等原因导致该编码虚拟机重启失败,则可以利用该编码虚拟机的镜像文件,在可用的宿主机上重新建立该编码虚拟机,并重新映射该新建立的编码虚拟机与Remote-Server的对应关系,以实现编码虚拟机的迁移。
在本公开实施例中,Agent利用心跳请求可以获取云端服务器中编码虚拟机的状态,并且可以通过恢复信息来恢复不可用的编码虚拟机,从而保证云端代码开发的顺序进行,提高云端代码开发的可用性。
在一种可能的实施方式中,所述云端服务器,还用于利用所述编码虚拟机将所述任务的任务通知添加到通知队列中;
所述代理模块,具体用于从所述编码虚拟机的通知队列中拉取任务通知,并基于所述任务通知,从所述编码虚拟机中拉取所述任务,将所述任务发送给所述远程服务器模块;获取所述远程服务器模块的任务执行情况,将所述任务执行情况发送给所述云端服务器中的编码虚拟机;
所述云端服务器,还用于利用所述编码虚拟机根据所述任务执行情况更新所述编码虚拟机中的任务。
一个例子中,例如图4所示,编码虚拟机在运行代码的过程中会生成对应的任务,例如任务可以为代码跳转、代码自动补全、代码悬停提示等。编码虚拟机可以将任务的任务通知添加到通知队列中,Agent可以从通知队列中获取任务通知,并基于任务通知从编码虚拟机中拉取任务给客户端本地的Remote-Server执行,在Remote-Server完成任务的执行后,Agent可以根据Remote-Server的任务执行情况,来更新编码虚拟机中的任务。
在本公开实施例中,编码虚拟机将任务的任务通知添加到通知队列中,Agent从通知队列中拉取任务通知,方便Agent获取任务通知;Agent基于任务通知来拉取任务,相比于Agent直接在任务队列中来拉取任务,更加方便Agent对任务的管理,最终提高任务的执行效率;此外Agent向编码虚拟机返回任务执行情况,从而使得编码虚拟机可以根据任务执行情况来实时更新自身的任务,便于任务的管理及执行,最终提高任务的执行效率。
为了进一步增加云端代码开发的安全性能,在一种可能的实施方式中,参见图5,所述系统还包括:反向代理服务器13,用于在所述客户端及所述云端服务器之间转发数据消息。
反向代理服务器提供云端服务器的代理服务,一个例子中,反向代理服务器可以为Nginx(也称为Enginex,是一个高性能的反向代理web服务器)。云端服务器提供的所有服务会挂载到反向代理服务器上,对外暴露的为反向代理服务器的地址,而云端服务器的地址并不直接暴露到互联网中,因此可以增加云端服务器的安全性。此外,反向代理服务器还起到负载均衡及数据转发的作用,从而可以提高云端服务器之间的负载均衡,保证数据的准确转发。
本公开实施例还提供了一种云端代码开发方法,应用于客户端,参见图6,所述方法包括:
S601,获取用户输入的代码,并通过流同步的方式向云端服务器同步所述代码;
S602,从所述云端服务器中拉取任务,其中,所述任务为所述云端服务器中的编码虚拟机基于所述代码生成的;
S603,执行所述任务。
在一种可能的实施方式中,所述获取用户输入的代码,并通过流同步的方式向云端服务器同步所述代码,包括:
建立终端模拟器,通过所述终端模拟器获取用户输入的代码;
利用实时全双工同步通信的方式将所述代码发送给所述云端服务器的编码虚拟机。
在一种可能的实施方式中,所述方法还包括:
周期性的向所述编码虚拟机发送心跳请求;
在接收到所述编码虚拟机的答复信息后,判定所述编码虚拟机可用;
在连续预设数量个周期内未接收到所述编码虚拟机的答复信息的情况下,判定所述编码虚拟机不可用,向所述云端服务器发送针对所述编码虚拟机的恢复信息。
在一种可能的实施方式中,所述从所述云端服务器中拉取任务,包括:
从所述编码虚拟机的通知队列中拉取任务的任务通知;
并基于所述任务通知,从所述编码虚拟机中拉取所述任务;
所述方法还包括:
获取所述任务的任务执行情况,将所述任务执行情况发送给所述编码虚拟机。
本公开实施例还提供了一种云端代码开发方法,应用于云端服务器,参见图7,所述方法包括:
S701,建立编码虚拟机;
S702,将通过流同步的方式同步的代码写入到所述虚拟机中;
S703,利用所述编码虚拟机运行所述代码,生成对应的任务。
在一种可能的实施方式中,所述将通过流同步的方式同步的代码写入到所述虚拟机中,包括:
将接收到的所述代码输入到所述编码虚拟机的主伪终端中,阻断所述主伪终端的文件描述符,通过所述主伪终端将所述代码映射到从伪终端中,通过所述从伪终端将所述代码输入到所述编码虚拟机的命令处理器中。
在一种可能的实施方式中,所述方法还包括:
利用所述编码虚拟机响应客户端发送心跳请求,向所述客户端发送答复信息;
响应于表示恢复所述编码虚拟机的恢复信息,恢复所述编码虚拟机。
在一种可能的实施方式中,所述方法还包括:
利用所述编码虚拟机将所述任务的任务通知添加到通知队列中;
利用所述编码虚拟机根据客户端发送的任务执行情况更新所述编码虚拟机中的任务。
本公开实施例还提供了一种云端代码开发装置,应用于客户端,所述装置包括:
远程服务器模块,用于获取用户输入的代码,并通过流同步的方式向云端服务器同步所述代码;
代理模块,用于从所述云端服务器中拉取任务,并将所述任务发送给所述远程服务器模块;其中,所述任务为所述云端服务器中的编码虚拟机基于所述代码生成的;
所述远程服务器模块,还用于执行所述任务。
在一种可能的实施方式中,所述远程服务器模块具体用于:建立终端模拟器;通过所述终端模拟器获取用户输入的代码;利用实时全双工同步通信的方式将所述代码发送给所述云端服务器的编码虚拟机。
在一种可能的实施方式中,所述代理模块还用于:管理所述远程服务器模块及所述远程服务器模块对应的编码虚拟机,其中,管理包括升级、回溯、重启、删除、新增及状态检测中的至少一种。
在一种可能的实施方式中,所述代理模块具体用于:周期性的向所述编码虚拟机发送心跳请求,在接收到所述编码虚拟机的答复信息后,判定所述编码虚拟机可用;在连续预设数量个周期内未接收到所述编码虚拟机的答复信息的情况下,判定所述编码虚拟机不可用,向所述云端服务器发送针对所述编码虚拟机的恢复信息。
在一种可能的实施方式中,所述代理模块具体用于:从所述编码虚拟机的通知队列中拉取任务通知,并基于所述任务通知,从所述编码虚拟机中拉取所述任务,将所述任务发送给所述远程服务器模块;获取所述远程服务器模块的任务执行情况,将所述任务执行情况发送给所述云端服务器中的编码虚拟机。
本公开实施例还提供了一种云端代码开发装置,应用于云端服务器,所述装置包括:
虚拟机建立模块,用于建立编码虚拟机;
代码同步模块,用于将通过流同步的方式同步的代码写入到所述虚拟机中;
任务生成模块,用于利用所述编码虚拟机运行所述代码,生成对应的任务。
在一种可能的实施方式中,所述代码同步模块,具体用于:将接收到的所述代码输入到所述编码虚拟机的主伪终端中,阻断所述主伪终端的文件描述符,通过所述主伪终端将所述代码映射到从伪终端中,通过所述从伪终端将所述代码输入到所述编码虚拟机的命令处理器中。
在一种可能的实施方式中,所述装置还包括:
心跳响应模块,用于利用所述编码虚拟机响应客户端发送心跳请求,向所述客户端发送答复信息;
虚拟机恢复模块,用于响应于表示恢复所述编码虚拟机的恢复信息,恢复所述编码虚拟机。
在一种可能的实施方式中,所述装置还包括:
任务通知添加模块,用于利用所述编码虚拟机将所述任务的任务通知添加到通知队列中;
任务更新模块,用于利用所述编码虚拟机根据客户端发送的任务执行情况更新所述编码虚拟机中的任务。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
其中,电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开中任一所述的云端代码开发方法。
计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开中任一所述的云端代码开发方法。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如云端代码开发方法。例如,在一些实施例中,云端代码开发方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的云端代码开发方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助 于固件)而被配置为执行云端代码开发方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类 的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (19)
- 一种云端代码开发系统,包括:客户端及云端服务器,所述客户端包括代理模块及远程服务器模块;所述远程服务器模块,用于获取用户输入的代码,并通过流同步的方式向所述云端服务器同步所述用户输入的代码;所述云端服务器,用于建立所述远程服务器模块对应的编码虚拟机;将所述远程服务器模块通过流同步的方式同步的代码写入到所述虚拟机中;利用所述编码虚拟机运行所述代码,生成对应的任务;所述代理模块,用于从所述云端服务器中拉取所述任务,并将所述任务发送给所述远程服务器模块;所述远程服务器模块,还用于执行所述任务。
- 根据权利要求1所述的系统,其中,所述远程服务器模块具体用于:建立终端模拟器;通过所述终端模拟器获取用户输入的代码;利用实时全双工同步通信的方式将所述代码发送给所述云端服务器的编码虚拟机;所述云端服务器具体用于:将接收到的所述代码输入到所述编码虚拟机的主伪终端中,阻断所述主伪终端的文件描述符,通过所述主伪终端将所述代码映射到从伪终端中,通过所述从伪终端将所述代码输入到所述编码虚拟机的命令处理器中。
- 根据权利要求1所述的系统,其中,所述代理模块还用于:管理所述远程服务器模块及所述远程服务器模块对应的编码虚拟机,其中,管理包括升级、回溯、重启、删除、新增及状态检测中的至少一种。
- 根据权利要求1所述的系统,其中,所述代理模块具体用于:周期性的向所述编码虚拟机发送心跳请求,在接收到所述编码虚拟机的答复信息后,判定所述编码虚拟机可用;在连续预设数量个周期内未接收到所述编码虚拟机的答复信息的情况下,判定所述编码虚拟机不可用,向所述云端服务器发送针对所述编码虚拟机的恢复信息;所述云端服务器,还用于利用所述编码虚拟机响应所述心跳请求,向所述客户端发送答复信息;响应于所述恢复信息,恢复所述编码虚拟机。
- 根据权利要求1所述的系统,其中,所述云端服务器,还用于利用所述 编码虚拟机将所述任务的任务通知添加到通知队列中;所述代理模块,具体用于从所述编码虚拟机的通知队列中拉取任务通知,并基于所述任务通知,从所述编码虚拟机中拉取所述任务,将所述任务发送给所述远程服务器模块;获取所述远程服务器模块的任务执行情况,将所述任务执行情况发送给所述编码虚拟机;所述云端服务器,还用于利用所述编码虚拟机根据所述任务执行情况更新所述编码虚拟机中的任务。
- 根据权利要求1所述的系统,其中,所述系统还包括:反向代理服务器,用于在所述客户端及所述云端服务器之间转发数据消息。
- 一种云端代码开发方法,应用于客户端,所述方法包括:获取用户输入的代码,并通过流同步的方式向云端服务器同步所述代码;从所述云端服务器中拉取任务,其中,所述任务为所述云端服务器中的编码虚拟机基于所述代码生成的;执行所述任务。
- 根据权利要求7所述的方法,其中,所述获取用户输入的代码,并通过流同步的方式向云端服务器同步所述代码,包括:建立终端模拟器,通过所述终端模拟器获取用户输入的代码;利用实时全双工同步通信的方式将所述代码发送给所述云端服务器的编码虚拟机。
- 根据权利要求7所述的方法,所述方法还包括:周期性的向所述编码虚拟机发送心跳请求;在接收到所述编码虚拟机的答复信息后,判定所述编码虚拟机可用;在连续预设数量个周期内未接收到所述编码虚拟机的答复信息的情况下,判定所述编码虚拟机不可用,向所述云端服务器发送针对所述编码虚拟机的恢复信息。
- 根据权利要求7所述的方法,其中,所述从所述云端服务器中拉取任务,包括:从所述编码虚拟机的通知队列中拉取任务的任务通知;并基于所述任务通知,从所述编码虚拟机中拉取所述任务;所述方法还包括:获取所述任务的任务执行情况,将所述任务执行情况发送给所述编码虚拟机。
- 一种云端代码开发方法,应用于云端服务器,所述方法包括:建立编码虚拟机;将通过流同步的方式同步的代码写入到所述虚拟机中;利用所述编码虚拟机运行所述代码,生成对应的任务。
- 根据权利要求11所述的方法,其中,所述将通过流同步的方式同步的代码写入到所述虚拟机中,包括:将接收到的所述代码输入到所述编码虚拟机的主伪终端中,阻断所述主伪终端的文件描述符,通过所述主伪终端将所述代码映射到从伪终端中,通过所述从伪终端将所述代码输入到所述编码虚拟机的命令处理器中。
- 根据权利要求11所述的方法,所述方法还包括:利用所述编码虚拟机响应客户端发送心跳请求,向所述客户端发送答复信息;响应于表示恢复所述编码虚拟机的恢复信息,恢复所述编码虚拟机。
- 根据权利要求11所述的方法,所述方法还包括:利用所述编码虚拟机将所述任务的任务通知添加到通知队列中;利用所述编码虚拟机根据客户端发送的任务执行情况更新所述编码虚拟机中的任务。
- 一种云端代码开发装置,应用于客户端,所述装置包括:远程服务器模块,用于获取用户输入的代码,并通过流同步的方式向云端服务器同步所述代码;代理模块,用于从所述云端服务器中拉取任务,并将所述任务发送给所述远程服务器模块;其中,所述任务为所述云端服务器中的编码虚拟机基于所述代码生成的;所述远程服务器模块,还用于执行所述任务。
- 一种云端代码开发装置,应用于云端服务器,所述装置包括:虚拟机建立模块,用于建立编码虚拟机;代码同步模块,用于将通过流同步的方式同步的代码写入到所述虚拟机中;任务生成模块,用于利用所述编码虚拟机运行所述代码,生成对应的任务。
- 一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求7-14中任一项所述的方法。
- 一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求7-14中任一项所述的方法。
- 一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求7-14中任一项所述的方法。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023508557A JP7538330B2 (ja) | 2021-11-26 | 2022-06-20 | クラウドコード開発システム、方法、装置、デバイス及び記憶媒体 |
| KR1020237004762A KR102759802B1 (ko) | 2021-11-26 | 2022-06-20 | 클라우드 코드 개발 시스템, 방법, 장치, 기기 및 저장 매체 |
| EP22847526.5A EP4209894A4 (en) | 2021-11-26 | 2022-06-20 | CLOUD CODE DEVELOPMENT SYSTEM, METHOD AND APPARATUS, APPARATUS AND STORAGE MEDIUM |
| US18/041,071 US12524208B2 (en) | 2021-11-26 | 2022-06-20 | Cloud code development system, method, apparatus, device and storage medium |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111422652.0 | 2021-11-26 | ||
| CN202111422652.0A CN114089974B (zh) | 2021-11-26 | 2021-11-26 | 云端代码开发系统、方法、装置、设备及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023093016A1 true WO2023093016A1 (zh) | 2023-06-01 |
Family
ID=80305049
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/099898 Ceased WO2023093016A1 (zh) | 2021-11-26 | 2022-06-20 | 云端代码开发系统、方法、装置、设备及存储介质 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US12524208B2 (zh) |
| EP (1) | EP4209894A4 (zh) |
| JP (1) | JP7538330B2 (zh) |
| KR (1) | KR102759802B1 (zh) |
| CN (1) | CN114089974B (zh) |
| WO (1) | WO2023093016A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116820526A (zh) * | 2023-08-25 | 2023-09-29 | 建信金融科技有限责任公司 | 操作系统升级方法、装置、设备及存储介质 |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114089974B (zh) * | 2021-11-26 | 2023-08-22 | 北京百度网讯科技有限公司 | 云端代码开发系统、方法、装置、设备及存储介质 |
| CN114640659B (zh) * | 2022-03-29 | 2023-09-19 | 北京白海科技有限公司 | 一种云端编码辅助方法、装置、电子设备及存储介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20130346946A1 (en) * | 2012-06-21 | 2013-12-26 | Microsoft Corporation | System for hosted, shared, source control build |
| US20150205587A1 (en) * | 2014-01-17 | 2015-07-23 | International Business Machines Corporation | Adaptive cloud aware just-in-time (jit) compilation |
| CN107295045A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种消息处理方法及装置 |
| CN112269570A (zh) * | 2020-11-13 | 2021-01-26 | 北京百度网讯科技有限公司 | 安全代码开发方法及设备、计算设备和介质 |
| CN114089974A (zh) * | 2021-11-26 | 2022-02-25 | 北京百度网讯科技有限公司 | 云端代码开发系统、方法、装置、设备及存储介质 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7451433B2 (en) * | 2004-05-21 | 2008-11-11 | Bea Systems, Inc. | System and method for descriptor classes |
| JP5950428B2 (ja) | 2010-08-05 | 2016-07-13 | 日東電工株式会社 | 線維化組織から正常組織を再生するための組成物 |
| US8924972B2 (en) * | 2012-09-27 | 2014-12-30 | Oracle International Corporation | Method and system for logging into a virtual environment executing on a host |
| CN103067502A (zh) * | 2012-12-31 | 2013-04-24 | 博彦科技(上海)有限公司 | 一种开发测试云的硬件系统 |
| US9880816B2 (en) | 2014-11-27 | 2018-01-30 | Sap Se | Simulator with local resource capabilities |
| US10007509B1 (en) | 2015-12-08 | 2018-06-26 | Amazon Technologies, Inc. | Container handover for device updates |
| CN105916100B (zh) * | 2016-04-01 | 2020-04-28 | 华为技术有限公司 | 代理心跳包的方法、装置和通信系统 |
| US11526533B2 (en) * | 2016-12-30 | 2022-12-13 | Dropbox, Inc. | Version history management |
| US10668990B2 (en) * | 2017-07-16 | 2020-06-02 | Lone Gull Holdings, Ltd. | Self-powered computing buoy |
| CN110502212B (zh) | 2018-05-16 | 2023-07-11 | 南京慕测信息科技有限公司 | 一种面向多语言的高并发在线开发支撑方法 |
| CN110471654A (zh) * | 2019-07-17 | 2019-11-19 | 深圳文理子科技有限公司 | 通信协议的云端开发系统及计算机软件程序产品 |
| US10817346B1 (en) * | 2019-09-23 | 2020-10-27 | ForgeRock, Inc. | Secure service isolation between instances of cloud products using a SaaS model |
| US11157242B2 (en) * | 2019-09-30 | 2021-10-26 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for local web components development within a cloud based computing environment |
| US11392844B1 (en) * | 2020-03-31 | 2022-07-19 | Amazon Technologies, Inc. | Customizable service for recommendations on source code quality |
| CN111773691A (zh) * | 2020-07-03 | 2020-10-16 | 珠海金山网络游戏科技有限公司 | 云游戏服务系统、云客户端及数据处理方法 |
| CN113377363B (zh) * | 2021-07-14 | 2022-03-08 | 深圳市集贤科技有限公司 | 对多种电控端私有协议自动生成源代码的云端实现方法 |
-
2021
- 2021-11-26 CN CN202111422652.0A patent/CN114089974B/zh active Active
-
2022
- 2022-06-20 JP JP2023508557A patent/JP7538330B2/ja active Active
- 2022-06-20 WO PCT/CN2022/099898 patent/WO2023093016A1/zh not_active Ceased
- 2022-06-20 KR KR1020237004762A patent/KR102759802B1/ko active Active
- 2022-06-20 US US18/041,071 patent/US12524208B2/en active Active
- 2022-06-20 EP EP22847526.5A patent/EP4209894A4/en not_active Withdrawn
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20130346946A1 (en) * | 2012-06-21 | 2013-12-26 | Microsoft Corporation | System for hosted, shared, source control build |
| US20150205587A1 (en) * | 2014-01-17 | 2015-07-23 | International Business Machines Corporation | Adaptive cloud aware just-in-time (jit) compilation |
| CN107295045A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种消息处理方法及装置 |
| CN112269570A (zh) * | 2020-11-13 | 2021-01-26 | 北京百度网讯科技有限公司 | 安全代码开发方法及设备、计算设备和介质 |
| CN114089974A (zh) * | 2021-11-26 | 2022-02-25 | 北京百度网讯科技有限公司 | 云端代码开发系统、方法、装置、设备及存储介质 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4209894A4 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116820526A (zh) * | 2023-08-25 | 2023-09-29 | 建信金融科技有限责任公司 | 操作系统升级方法、装置、设备及存储介质 |
| CN116820526B (zh) * | 2023-08-25 | 2023-11-24 | 建信金融科技有限责任公司 | 操作系统升级方法、装置、设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2024500263A (ja) | 2024-01-09 |
| KR102759802B1 (ko) | 2025-01-23 |
| US12524208B2 (en) | 2026-01-13 |
| CN114089974A (zh) | 2022-02-25 |
| US20240264804A1 (en) | 2024-08-08 |
| CN114089974B (zh) | 2023-08-22 |
| KR20230079348A (ko) | 2023-06-07 |
| JP7538330B2 (ja) | 2024-08-21 |
| EP4209894A4 (en) | 2024-01-17 |
| EP4209894A1 (en) | 2023-07-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111753997B (zh) | 分布式训练方法、系统、设备及存储介质 | |
| WO2024077885A1 (zh) | 容器集群的管理方法、装置、设备及非易失性可读存储介质 | |
| CN111930521A (zh) | 用于部署应用的方法、装置、电子设备及可读存储介质 | |
| CN112925651B (zh) | 应用资源部署方法、装置、电子设备和介质 | |
| CN113835822B (zh) | 跨云平台虚拟机迁移方法、装置、存储介质及电子装置 | |
| CN114089974B (zh) | 云端代码开发系统、方法、装置、设备及存储介质 | |
| CN112948018B (zh) | 用于小程序的动态库加载方法、装置、设备及介质 | |
| CN113656423B (zh) | 更新数据的方法及装置、电子设备和存储介质 | |
| CN113612643B (zh) | 云手机的网络配置方法、装置、设备以及存储介质 | |
| CN112925652A (zh) | 应用资源部署方法、装置、电子设备和介质 | |
| CN113691602A (zh) | 基于云手机的业务处理方法、系统、装置、设备及介质 | |
| EP4102360A1 (en) | Method and apparatus for starting up blockchain system, electronic device, and non-transitory computer-readable storage medium | |
| CN115756696A (zh) | 信息处理方法、装置、设备和介质 | |
| CN115408068A (zh) | 业务处理方法和装置 | |
| CN116774996A (zh) | 集成开发系统、代码处理方法、电子设备和存储介质 | |
| WO2024021554A1 (zh) | 数据迁移方法和装置 | |
| CN115373853A (zh) | 共享内存清理方法及装置、电子设备和介质 | |
| CN114372256A (zh) | 应用程序运行方法、装置、设备和存储介质 | |
| CN111966877A (zh) | 前端服务方法、装置、设备及存储介质 | |
| CN110019059B (zh) | 一种定时同步的方法和装置 | |
| CN114489588B (zh) | 时序图生成方法、装置、电子设备和存储介质 | |
| CN117194068A (zh) | 一种跨进程数据传输方法、系统、设备及存储介质 | |
| CN117056022A (zh) | Rpa任务的执行方法、装置、电子设备及存储介质 | |
| WO2023169193A1 (zh) | 用于生成智能合约的方法和装置 | |
| CN114070889A (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 2023508557 Country of ref document: JP |
|
| ENP | Entry into the national phase |
Ref document number: 2022847526 Country of ref document: EP Effective date: 20230203 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWG | Wipo information: grant in national office |
Ref document number: 18041071 Country of ref document: US |