WO2021179842A1 - 一种集成开发环境的构建方法、装置、设备及介质 - Google Patents

一种集成开发环境的构建方法、装置、设备及介质 Download PDF

Info

Publication number
WO2021179842A1
WO2021179842A1 PCT/CN2021/074554 CN2021074554W WO2021179842A1 WO 2021179842 A1 WO2021179842 A1 WO 2021179842A1 CN 2021074554 W CN2021074554 W CN 2021074554W WO 2021179842 A1 WO2021179842 A1 WO 2021179842A1
Authority
WO
WIPO (PCT)
Prior art keywords
ide
user
resource
instance
user device
Prior art date
Application number
PCT/CN2021/074554
Other languages
English (en)
French (fr)
Inventor
王亚伟
叶巍
陈丰
王谦
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2021179842A1 publication Critical patent/WO2021179842A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Definitions

  • This application relates to the field of computer technology, and in particular to a method, device, equipment and computer-readable storage medium for constructing an integrated development environment.
  • IDE integrated development environment
  • Cloud IDE is the development trend of current development tools. Cloud IDE allows developers to establish a connection with an IDE instance in the cloud through a networked terminal (for example, a host, tablet or mobile phone) at any place and time, and perform development activities such as coding and debugging in the browser.
  • a networked terminal for example, a host, tablet or mobile phone
  • This application provides a method for constructing an integrated development environment (IDE). Based on this method, the problem of cloud-based IDEs that occupy more network resources and poor user experience can be solved.
  • This application also provides corresponding devices, equipment, computer-readable storage media, and computer program products.
  • this application provides an IDE construction method.
  • the method is applied to an IDE construction system, which specifically includes a user device, a management device, and a resource providing device.
  • the management device receives the IDE instance creation request sent by the user device, and then the management device deploys the IDE kernel on the resources provided by the resource providing device to form an IDE instance, and then the management device sends connection information to the user device so that the user device and the IDE Establish a connection between the instances to realize the decoupling of the management device and the resource providing device.
  • the network traffic between the user device and the IDE instance can be transferred through the connection based on the user network, there is no need to forward it through the management device, which reduces the network resources occupied by the management device.
  • different users do not need to share the network resources of the management device, which avoids the problem that some users' regular operations occupy a large amount of network resources, which affects the user experience of other users, and improves the user experience.
  • the management device does not need to forward network traffic, so the management device does not need to configure a large network bandwidth, which can reduce operating costs. Even if the number of users continues to increase, there is no need to increase the network bandwidth of the management device, avoiding linear growth in operating costs.
  • this method supports the realization of cloud-based IDEs on self-contained resources or resources provided by cloud service providers.
  • the cloud-based IDE can be implemented on different types of resources such as virtual machines and containers, and has high flexibility.
  • a connection can be established between the user device and the IDE instance through routing.
  • the connection information includes a routing address.
  • the user device and the IDE instance can establish a connection in a routing manner based on the routing address. Since the network traffic generated by the establishment of the connection is forwarded through routing, it will not reach the IDE instance directly. In this way, traffic filtering can be implemented, preventing illegal elements from maliciously attacking the IDE instance, affecting users' access to the IDE instance, and improving access security.
  • the management device may obtain the IDE front-end components through routing, and then establish a connection with the IDE instance through the IDE front-end components. Specifically, the management device may receive the access request generated by the user device according to the routing address, and then route the access request to the resource, and then route the IDE front-end component obtained from the resource to the user device, so that the user device can communicate with the user device through the IDE front-end component.
  • the IDE instance establishes a connection.
  • the IDE construction system may also include a routing device.
  • the connection information sent by the management device to the user device includes the routing address
  • the user device can access the routing device based on the routing address, route through the routing device to obtain the IDE front-end component, and establish a connection with the IDE instance through the IDE front-end component.
  • the access request includes the ID of the IDE instance
  • the management device can also determine that the ID of the IDE instance is valid before routing the access request to the resource, which can reduce invalid access and improve user experience.
  • the access request also includes a user identification
  • the management device may also determine that the user identification carried in the access request is in the user list of the IDE instance before routing the access request to the resource.
  • the user list includes user IDs corresponding to users who are allowed to use the IDE instance. The foregoing implementation method verifies the user authority before routing the access request, which prevents users who do not have the use authority from accessing the IDE instance and ensures security.
  • the connection information sent by the management device to the user device may include the address of the resource.
  • the address of the resource can be used to directly establish a connection between the user device and the IDE instance, which improves the efficiency of connection establishment and further improves the efficiency of IDE construction.
  • the management device may also send a token to the user device.
  • the token is specifically used to authenticate the user device by the management device before establishing a connection between the user device and the IDE instance, thus avoiding a user device that does not have the corresponding authority from establishing a connection with the IDE instance , To ensure safety.
  • this application provides an IDE construction method.
  • the method is applied to an IDE construction system, which specifically includes a user device, a management device, and a resource providing device.
  • the user device sends an IDE instance creation request to the management device, and then the user device receives the connection information sent when the management device deploys the IDE core on the resources provided by the resource providing device to form the IDE instance, and then the user device according to the The connection information establishes a connection with the IDE instance.
  • This method realizes the decoupling of the management device and the resource providing device.
  • the network traffic between the user device and the IDE instance is transmitted through the user network without the management device for forwarding. This is the solution This solves the problem that the management device occupies more network resources and the user experience is poor.
  • connection information includes a routing address, so that the user device can establish a connection with the IDE instance according to the routing address.
  • the user device may generate an access request according to the routing address, and then send the access request to the management device, and then the user device may receive the management device by routing the access request to the resource and obtaining it from the resource.
  • IDE front-end components and then the user device can establish a connection with the IDE instance through the IDE front-end components.
  • the IDE construction system also includes a routing device, which is independent of the management device.
  • the user device can generate an access request according to the routing address, and then send the access request to the routing device, and then the user device can receive The routing device routes the access request to the resource and obtains the IDE front-end component from the resource, and then the user device can establish a connection with the IDE instance through the IDE front-end component.
  • the connection information includes the address of the resource.
  • the user device can directly establish a connection with the IDE instance based on the address of the resource. Specifically, the user device generates an access request according to the address of the resource, sends the access request to the resource, and then the user device receives the IDE front-end component sent by the IDE instance formed on the resource, and then the user device can directly establish a connection with the IDE instance through the IDE front-end component. Connection.
  • this application provides a management device.
  • the management device includes: a communication module and a management module.
  • the communication module is used to receive the IDE instance creation request of the integrated development environment sent by the user device, the management module is used to deploy the IDE kernel on the resources provided by the resource providing device to form the IDE instance, and the communication module is also used to provide the user with The device sends connection information to establish a connection between the user device and the IDE instance.
  • connection information includes a routing address
  • the user device and the IDE instance establish a connection through the routing address
  • the device further includes a routing module
  • the communication module is further configured to receive an access request generated by the user device according to the routing address;
  • the routing module is configured to route the access request to the resource, and route the IDE front-end component obtained from the resource to the user device, so that the user device passes through the IDE front-end component and the user device.
  • the IDE instance establishes a connection.
  • the access request includes the ID of the IDE instance
  • the routing module is further configured to:
  • the access request further includes a user identification
  • the routing module is further configured to:
  • the resource Before routing the access request to the resource, determine that the user identifier carried in the access request is in the user list corresponding to the IDE instance, where the user list includes users corresponding to users who are allowed to use the IDE instance Logo.
  • connection information includes the address of the resource, and the address of the resource is used to directly establish a connection between the user device and the IDE instance.
  • the communication module is also used to:
  • this application provides a user device.
  • the user device includes various modules for executing the IDE construction method in the second aspect or any one of the possible implementation manners of the second aspect.
  • this application provides a device.
  • the device may be a computer.
  • the device includes a processor and a memory.
  • the processor and the memory communicate with each other.
  • the processor is configured to execute instructions stored in the memory, so that the device executes the IDE construction method in any implementation manner of the first aspect or the second aspect.
  • the present application provides a computer-readable storage medium having instructions stored in the computer-readable storage medium, which when run on a computer, cause the computer to execute any one of the first or second aspects above Implementation of the IDE construction method described in the method.
  • this application provides a computer program product containing instructions, which when run on a computer, causes the computer to execute the IDE construction method described in any one of the implementations of the first aspect or the second aspect.
  • FIG. 1A is a system architecture diagram 100 provided by an embodiment of this application.
  • FIG. 1B is a system architecture diagram 200 provided by an embodiment of this application.
  • FIG. 2 is a schematic structural diagram of a management device provided by an embodiment of the application.
  • FIG. 3 is a system architecture diagram 300 provided by an embodiment of this application.
  • FIG. 4 is an interactive flowchart of an IDE construction method provided by an embodiment of the application.
  • Fig. 5 is a schematic diagram of an interface for creating a configuration page for an IDE instance provided by an embodiment of the application
  • FIG. 6 is a schematic diagram of a process for generating a token according to an embodiment of the application.
  • FIG. 7 is an interactive flowchart of an IDE construction method provided by an embodiment of the application.
  • FIG. 8 is a schematic structural diagram of a device provided by an embodiment of this application.
  • the integrated development environment (IDE) in the embodiments of the present application is an application program used to provide a program development environment.
  • the application program includes at least one component.
  • the so-called component refers to a simple encapsulation of data and methods.
  • components can also be called components, controls, and so on.
  • the components included in the IDE can be divided into two types: front-end components and back-end components.
  • the front-end component refers to the component that realizes the interaction with the user, which is specifically used to receive the data input by the user, display the data requested by the user, and so on.
  • the back-end component refers to a component that processes data, and is specifically used to process the received data according to the set logic, or obtain data from the database for processing, and so on.
  • the IDE may integrate at least one of tools such as a code editor, a compiler, a debugger, and a graphical user interface.
  • the IDE front-end components may include components related to the graphical user interface
  • the IDE back-end components may include components related to compilers, debuggers, and the like.
  • IDEs can be divided into local IDEs and cloud IDEs.
  • the front-end components and back-end components of the local IDE are deployed locally.
  • the local is also called the local device.
  • Local devices include user devices under the direct control of users (such as user terminals such as laptop computers), or devices that are geographically close to the above-mentioned user devices (such as mobile hard drives, flash drives, etc. connected to user terminals such as laptop computers) equipment).
  • Cloud-based IDEs have at least some components, such as back-end components, deployed in the cloud.
  • the cloud in the embodiment of the present application is the end corresponding to the local, that is, the resource end that the local user remotely accesses through the network.
  • the resource can be the user's own resource or the resource provided by the cloud service provider.
  • the cloud service provider provides a management device, and the management device can respond to a user-triggered IDE instance creation operation to create an IDE on the user's own resources or resources provided by the cloud service provider.
  • Resources can also be divided into physical resources or virtual resources based on types.
  • physical resources refer to physically isolated computing resources, storage resources, communication resources, etc., such as independent servers, storage devices, and communication devices.
  • Virtual resources refer to computing resources, storage resources, communication resources, etc. that are isolated from the operating system or process level, for example, multiple virtual machines (VM) or multiple containers (content) deployed on a server .
  • VM virtual machines
  • content content
  • IDE In order to implement functions such as code editing, compilation, and debugging, the above IDE needs to be executed.
  • An application that is running in the memory of a resource can be called an instance.
  • the IDE running in the memory of the resource can also be called an IDE instance.
  • cloud-based IDEs have the characteristics of flexible deployment and ease of use, they have gradually become the current development trend of developer tools.
  • cloud-based IDEs mainly adopt a centralized management architecture, that is, all network traffic between IDE front-end components and IDE back-end components are forwarded through a proprietary management device.
  • this architecture brings convenience to traffic monitoring, the management device requires more network resources.
  • this application provides an IDE construction method.
  • this method avoids the problems of large network resource requirements and poor user experience of the cloud-based IDE.
  • the management device receives the IDE instance creation request from the user device, and then, in response to the IDE instance creation request, deploys the IDE kernel on the resources provided by the resource providing device to form an IDE instance, and then sends connection information to the user device to Establish a connection between the user device and the IDE instance.
  • the network traffic between the user device and the IDE instance can be transferred through the above-mentioned user network-based connection without forwarding through the management device, thereby reducing the network resources occupied by the management device.
  • different users do not need to share the network resources of the management device, which avoids the problem that some users' regular operations occupy a large amount of network resources, which affects the user experience of other users, and improves the user experience.
  • the management device does not need to be configured with a large network bandwidth, which can reduce operating costs. Even if the number of users continues to increase, there is no need to increase the network bandwidth of the management device, avoiding linear growth in operating costs.
  • this method supports the realization of cloud-based IDEs on self-contained resources or resources provided by cloud service providers.
  • the cloud-based IDE can be implemented on different types of resources such as virtual machines and containers, and has high flexibility.
  • When adding resource types there is no need for the management device to modify the management panel parameters, which has better compatibility.
  • the IDE construction method provided by the embodiment of the present application is executed by the IDE construction system.
  • the IDE construction system includes a user device 102, a management device 104, and a resource providing device 106.
  • the user device 102 can run on various terminal computing devices, such as a mobile phone, a notebook computer, a tablet computer, or a personal desktop computer, and so on.
  • the management device 104 and the resource providing device 106 may run in a cloud computing cluster (including at least one cloud computing device, such as a cloud server, etc.).
  • the resources provided by the resource providing device 106 are resources provided by a cloud service provider.
  • FIG. 1A the resources provided by the resource providing device 106 are resources provided by a cloud service provider.
  • the resource provided by the resource providing device 106 is the user's own resources, and the management device 104 and the resource providing device 106 run in their respective cloud computing clusters.
  • FIG. 1B is an example of using the user's own resources to run in the user's computing cluster. In other scenarios, the user's own resources can also be run in a physical machine, such as a server.
  • the user device 102 may specifically be a browser, or other application programs that can be used as a traffic portal.
  • the user can trigger the IDE instance creation operation through the user device 102, and the user device 102 generates an IDE instance creation request in response to the IDE instance creation operation, and sends the IDE instance creation request to the management device 104.
  • the IDE instance creation request may carry configuration parameters of the IDE instance, and the configuration parameters may include related configuration parameters such as calculation performance parameters, storage performance parameters, and network performance parameters.
  • the configuration parameters may be 64-core virtual central processor unit (vCPU), 256G memory, and 10 Gigabit network card, which may be specifically denoted as 64 vCPUs/256G/10 Gigabit.
  • the management device 104 determines a resource matching the configuration parameters from the resource providing device 106 according to the aforementioned IDE instance creation request, and deploys an IDE kernel on the resource to form an IDE instance.
  • the IDE core is specifically a code file used to form an IDE instance.
  • the code file includes code fragments corresponding to IDE front-end components and IDE back-end components.
  • the code file also includes code fragments corresponding to the IDE front-end component and the script generator of the IDE back-end component.
  • Deploying the IDE kernel specifically includes generating an executable file from the above code file, for example, generating a software package (such as an npm package), and then placing the executable file into a target environment, and configuring the target environment to enable the executable file to execute.
  • generating an executable file from the above code file for example, generating a software package (such as an npm package), and then placing the executable file into a target environment, and configuring the target environment to enable the executable file to execute.
  • the management device 104 sends connection information to the user device 102, so that a connection between the user device 102 and the IDE instance formed on the resource provided by the resource providing device 106 can be established.
  • the user device 102 may first obtain the IDE front-end components from the resources provided by the resource providing device 106 according to the connection information, and then establish a connection with the IDE instance through the IDE front-end components.
  • connection information sent by the management device 104 to the user device may include a routing address.
  • a connection between the user device 102 and the IDE instance can be established in a routing manner based on the routing address.
  • Fig. 2 shows a schematic structural diagram of the management device 104 in the scenario of Fig. 1A or Fig. 1B.
  • the management device 104 includes a communication module 1042 and a management module 1044.
  • the communication module 1042 is used to receive the IDE example creation request sent by the user device 102
  • the management module 1044 is used to deploy the IDE kernel on the resources provided by the resource providing device 106 to form an IDE instance
  • the communication module 1042 is also used to send the user device 102
  • the connection information is sent to establish a connection between the user device 102 and the IDE instance.
  • the management device 104 may further include a routing module 1046.
  • the management device 104 may perform routing through the routing module, thereby establishing a connection between the user device 102 and the IDE instance.
  • the communication module 1042 receives the access request generated by the user device according to the routing address, the routing module 1046 routes the access request to the resource, and routes the IDE front-end components obtained from the resource to the user device 102 to The user device 102 establishes a connection with the IDE instance through the IDE front-end component.
  • the management device 104 may further include a storage module 1048.
  • the storage module 1048 is used to store the address of the resource where the IDE instance is located. Specifically, when the management module 1044 deploys an IDE core on the resource provided by the resource providing device 106 to form an IDE instance, the communication module 1042 can obtain the address of the resource, and the storage module 1048 stores the address of the resource. Wherein, when storing the address of the resource, the storage module 1048 can store the ID of the IDE instance and the address of the corresponding resource, so that the address of the resource can be found based on the ID of the IDE instance, and routing is performed based on the address of the resource.
  • the storage module 1048 can also store the user list corresponding to the IDE instance.
  • the user list includes user IDs corresponding to users allowed to use the IDE instance.
  • the storage module 1048 can store the ID of the IDE instance and the corresponding user list for subsequent search.
  • the routing module 1046 may also verify the ID of the IDE instance and the user ID before routing the access request.
  • the access request can include the ID of the IDE instance and the user ID.
  • the routing module 1046 can query whether the ID of the IDE instance carried in the access request exists in the storage module 1048. If it is, it indicates that the ID of the IDE instance is valid.
  • the module 1046 can perform operations for routing access requests.
  • the routing module 1046 can also determine whether the user identification carried in the access request is in the user list of the storage module 1048, if yes, then perform the operation of routing the access request to the resource, if not, end the current process.
  • the routing module 1046 only needs to verify the ID of the IDE instance, and when the storage module 1048 does not store the ID of the IDE instance, the user ID can be verified.
  • the management device 104 in FIG. 2 may not include the routing module 1046 and the storage module 1048.
  • the functions of the routing module 1046 and the storage module 1048 can be implemented by separate devices, for example, can be implemented by separate routing devices and storage devices.
  • the IDE construction system further includes a routing device 108 and a storage device 110.
  • the user device 102 sends an IDE instance creation request to the management device 104, the management device 104 deploys an IDE kernel on the resources provided by the resource providing device 106 to form an IDE instance, and then the management device 104 obtains the address of the resource and stores it in the storage device 110.
  • the management device 104 may also store the ID of the IDE instance and the corresponding user list in the storage device 110 together.
  • the management device 104 can then send the connection information to the user device 102.
  • the connection information specifically includes a routing address.
  • the user device 102 can generate an access request according to the routing address and send the access request to the routing device 108.
  • the routing device 108 receives the access request, it first determines that the ID of the IDE instance in the access request is valid according to the ID of the IDE instance stored in the storage device 110, and then, according to the user list stored in the storage device 110, determines the information contained in the access request.
  • the user is identified in the user list, the access request is routed to the resource, the IDE front-end component is obtained from the resource, and the IDE front-end component is routed to the user device 102.
  • the user device 102 establishes a connection with the IDE instance through the IDE front-end component.
  • the user device 102 in FIG. 3 can be deployed in a terminal computing device, and the management device 104, the resource providing device 106, the routing device 108, and the storage device 110 can be deployed in a cloud computing cluster in a variety of ways.
  • the management device 104, the resource providing device 106, the routing device 108, and the storage device 110 may be deployed in the same cloud computing cluster, or separately deployed in different cloud computing clusters.
  • the deployment in different cloud computing clusters can be that each of the management device 104, the resource providing device 106, the routing device 108, and the storage device 110 is deployed in an independent cloud computing cluster, or it can be a combination of two.
  • the form is deployed in two cloud computing clusters, or any three are deployed in one cloud computing cluster, and the remaining one device is deployed in another cloud computing cluster.
  • the connection information sent by the management device 104 to the user device 102 may include the address of the resource.
  • the user device 102 may also directly establish a connection with the IDE instance based on the address of the resource.
  • the user device 102 can access the resource based on the address of the resource, obtain the IDE front-end component from the resource, and then directly establish a connection with the IDE instance through the IDE front-end component.
  • the method includes:
  • S402 The user device 102 sends an IDE instance creation request to the management device 104.
  • the user device 102 may display an IDE instance creation configuration page, which carries an IDE instance configuration component, and the configuration component can be used to configure the performance parameters of the IDE instance to be created.
  • the performance parameters include at least one of calculation performance parameters, storage performance parameters, and network performance parameters.
  • the user can configure the component configuration parameters through the aforementioned IDE instance, and the user device generates an IDE instance creation request according to the configuration parameters in response to the user's configuration operation, and sends the IDE instance creation request to the management device 104.
  • the user device 102 may also automatically generate an IDE instance creation request, for example, automatically generate an IDE instance creation request when the set conditions are met, and send the IDE instance creation request to the management device 104.
  • Figure 5 shows an interface diagram of the IDE instance creation configuration page.
  • the user can select the vCPU type, memory size, and network card size through the drop-down selection box. For example, select 64vCPUs, 256G memory, and 10 Gigabit network card.
  • the IDE instance creation configuration page can also generate an estimated price based on the above configuration parameters selected by the user for the user's reference. When the user thinks that the price is too high or too low, the configuration parameters can be adjusted.
  • the user can then click the confirmation control on the IDE instance creation configuration page to trigger the IDE instance creation operation, and the user device 102 generates an IDE instance creation request in response to the operation, and the IDE instance creation request carries the above-mentioned configuration parameters.
  • the user can also directly select the default configuration check box, and then click the confirm control to trigger the IDE instance creation operation.
  • the user device 102 generates an IDE instance creation request in response to the operation, and the IDE instance creation request carries There are default configuration parameters.
  • the management device 104 deploys an IDE core on the resources provided by the resource providing device 106 to form an IDE instance.
  • the resources provided by the resource providing device 106 may be resources provided by the user, or resources provided by a cloud service provider.
  • the resource providing device 106 can manage the user's own resources or the resources provided by the cloud service provider, so as to provide resource services in a unified manner.
  • the management device 104 may determine a resource matching the IDE instance to be created according to the received IDE instance creation request. Specifically, the management device 104 may compare the configuration parameters carried in the IDE instance creation request with the parameters of the resources provided by the resource providing device 106, and deploy the IDE kernel on the resources whose parameters match the configuration parameters carried in the IDE instance creation request, thereby forming IDE example.
  • the IDE core is specifically a code file used to form an IDE instance.
  • the code file includes code fragments corresponding to all components required to form IDE instances on resources, including code fragments corresponding to IDE front-end components and IDE back-end components.
  • the code file also includes code fragments corresponding to the script generator of the IDE front-end component and the script generator of the IDE back-end component.
  • the IDE core may be provided by a cloud service provider.
  • the cloud service provider can provide several types of IDE cores, such as visual studio (VS), eclipse (eclipse) and other types of IDE cores. Users can also create IDE instances. Specify the type of IDE instance to be created. In this way, the management device 104 can also select the corresponding IDE core to deploy to the resource provided by the resource providing device 106 according to the type of IDE instance to be created carried in the IDE instance creation request.
  • the management device 104 can compile code files used to form IDE instances on the resources to form IDE front-end components, IDE back-end components, and script generators for IDE front-end components and script generators for IDE back-end components.
  • the IDE instance is formed when the device is executed.
  • the script generator of the IDE front-end component generates the script of the IDE front-end component when the IDE instance is started, which is also called a front-end script (running on the user device 102).
  • the script generator of the IDE back-end component generates the script of the IDE back-end component when the instance starts, also called the back-end script (running in the cloud).
  • the management device 104 may also assign a unique identifier to the IDE instance, so as to subsequently identify the IDE instance based on the identifier.
  • the management device 104 may generate the ID of the IDE instance in a random manner, or generate the ID of the IDE instance based on the creation time and the creation sequence, which is not limited in the embodiment of the present application.
  • the front-end components of the IDE are also in the cloud when the IDE instance is created or deployed.
  • the management device 104 obtains the address of the resource from the resource providing device 106.
  • the address of the resource is used to implement communication with the resource. Based on this, the address of the resource can be any address that can identify the location of the resource in the network.
  • the address of the resource may be an Internet Protocol address (IP address).
  • IP address is a logical address. Every network and every device in the Internet has a logical address, which can be used to shield differences in physical addresses.
  • the address of the resource may also be a physical address (physical address), that is, a medium access control (MAC) address.
  • the resource providing device 106 may record the actual address of each physical resource, and the actual address is specifically the IP address or MAC address of the physical resource.
  • the resource providing device 106 can record not only the actual address of each resource, but also the virtual address of the resource.
  • the virtual address is specifically a virtual address generated by the resource providing device 106 virtualizing the resource to perform unified management.
  • the management device 104 stores the ID of the IDE instance and the address of the corresponding resource and the user list.
  • the management device 104 may store the address of the resource so as to subsequently access the resource based on the address of the resource. Taking into account the needs of different users to create IDE instances, the management device 104 can assign an identifier to each IDE instance. In this way, when the management device 104 stores the address of the resource, it can also store the ID of the IDE instance and the address of the corresponding resource. In order to distinguish between different IDE instances.
  • the management device 104 may also set user permissions to use the IDE instance described above, and users with corresponding user permissions can use the IDE instance described above. Based on this, the management device 104 may generate a corresponding user list for the created IDE instance, and the user list includes user identifications corresponding to users who are allowed to use the IDE instance. Correspondingly, when the management device 104 stores the address of the resource, it can also store the user list corresponding to the IDE instance deployed on the resource.
  • the management device 104 when the management device 104 stores the ID of the IDE instance and the address of the corresponding resource and the user list, it can be stored in the storage module 1048 shown in FIG.
  • the storage device 110 of the device 104 the storage module 1048 and the storage device 110 may use a centralized storage mechanism for storage, or may use a distributed storage mechanism for storage.
  • a distributed storage mechanism such as storing the ID of the IDE instance, the address of the corresponding resource and the user list in the distributed cache, on the one hand, it can improve security, on the other hand, it can improve the efficiency of subsequent searches and improve the efficiency of IDE construction. .
  • S408 may not be executed in the IDE construction method.
  • the management device 104 may not execute the step of storing the address of the resource.
  • the management device 104 determines the token according to the ID of the IDE instance, the user list and other information.
  • the token is specifically used to authenticate the user device 102 by the management device 104 before establishing a connection between the user device and the IDE instance, that is, the management device 104 verifies whether the user device 102 has access to the IDE The permissions of the instance.
  • the management device 104 may perform calculations based on information related to the IDE instance, such as the instance ID of the IDE instance, and user related information such as the user list (including the user ID corresponding to the user who is allowed to use the IDE instance), and other information, for example, Hash calculation to generate a token.
  • information related to the IDE instance such as the instance ID of the IDE instance
  • user related information such as the user list (including the user ID corresponding to the user who is allowed to use the IDE instance)
  • other information for example, Hash calculation to generate a token.
  • the management device 104 may also determine the token based on information including an expiration time stamp (expiration).
  • the expiration timestamp refers to the expiration time set for the token.
  • the token will become invalid, which can prevent illegal elements from stealing historical tokens for authentication, and accessing the IDE instance after the authentication is passed, causing normal user access to be affected or user data tampered.
  • the management device 104 may assemble the ID of the IDE instance, the user list (including the user ID of the user who is allowed to use the IDE instance), and the expiration time stamp (expiration). The assembly result is obtained, and then the management device 104 can use its own private key to sign the assembly result, and obtain a token based on the signature result.
  • the management device 104 may assemble information including instance id, user ID, expiration, etc. by means of splicing, etc., and the assembly result may specifically be expressed in a JS object notation (javascript object notation, JSON) format. Then, the management device 104 may use a JSON-based development standard, such as a JS object notation web token (json web token, JWT) to generate a token.
  • JS object notation web token json web token, JWT
  • JWT includes three parts: header, payload and signature.
  • the header carries two parts of information, specifically the declaration type (jwt in this embodiment) and the declaration encryption algorithm.
  • the statement type may be jwt
  • the statement encryption algorithm may be a hash algorithm, for example, a hash-based message authentication code secure hash algorithm (hash-based message authentication code secure hash algorithm 256, HMAC SHA256).
  • the payload stores valid information, which can specifically include the above assembly results.
  • the signature may specifically be encrypted by the management device 104 for the encrypted header and the encrypted payload connection string, using its own private key, combined with the encryption algorithm declared by the header, to obtain the signature.
  • JSON-based JWT can achieve cross-language support, that is, C#, JavaScript, NodeJS, PHP and many other languages can use JWT. Furthermore, JWT has a relatively simple structure and occupies fewer bytes, which is very convenient for transmission.
  • the token-based authentication mechanism is stateless, and there is no need to retain the user’s authentication information or session information on the server. Therefore, applications based on the token authentication mechanism, such as the cloud IDE in the embodiment of this application, do not need to consider where the user is. Server login provides convenience for application expansion.
  • the management device 104 determines the token based on user-related information, it can not only perform calculations to determine the token based on the user ID, but also perform calculations in conjunction with the organization ID (org ID) of the user’s organization. Token, which can increase the complexity of the token and make the result of token-based authentication more credible.
  • S410 is only an optional implementation manner proposed to improve security. In some embodiments, S410 may not be executed in the IDE construction method.
  • S412 The management device 104 sends connection information to the user device 102.
  • the connection information sent by the management device 104 to the user device 102 may enable the user device 102 to establish a connection with the IDE instance according to the connection information.
  • the user device 102 may establish a long connection with the IDE instance.
  • a long connection is a persistent connection that transmits data in both directions, rather than a connection that is established every time a data interaction is performed, and the connection is interrupted when the interaction ends. Interaction through long connections can improve interaction efficiency and avoid waste of resources.
  • the management device 104 may send the above-mentioned connection information to the user device 102 when the IDE instance is deployed and started.
  • the connection information can be divided into the following situations.
  • the connection information includes the routing address, and the user device 102 and the IDE instance establish a connection by routing according to the routing address; in the other case, the connection information includes the address of the resource, and the user device 102 directly connects to the IDE instance according to the address of the resource. Establish a connection without routing.
  • connection information may also carry the token determined in S410, so that the user device 102 initiates an authentication request based on the token before establishing a connection, and then executes the establishment after the authentication is passed. The operation of the connection.
  • the present application decouples the management device 104 from the resource providing device 106, and the management device 104 only performs standard operations, such as deploying an IDE core to the resources provided by the resource providing device 106, IDE front-end components and
  • the network traffic between the IDE instances is transmitted through the user network established between the two, such as a user virtual private cloud (VPC) connection.
  • the management device 104 does not need to care about how the network traffic flows between the IDE instance and the IDE front-end components. Transmission, in this way, greatly reduces the network resources occupied by the management device 104, prevents some users from occupying too many network resources for regular operations, which affects the access of other users, and improves the user experience.
  • the management device 104 does not need to forward the network traffic between the user device 102 and the IDE instance, and there is no need to configure a larger network bandwidth for the management device 104, which reduces operating costs.
  • the user device 102 can establish a connection with the IDE instance based on the connection information.
  • the embodiment of the present application also provides an implementation manner for establishing a connection between the user device 102 and the IDE instance through a routing method.
  • the method further includes:
  • S414 The user device 102 sends an access request to the management device 104.
  • the user device 102 when the user device 102 receives the above-mentioned connection information, it can automatically generate an access request according to the routing address in the connection information, and send the access request to the management device 104.
  • the access request includes the ID of the IDE instance and the user ID, and the access request is specifically used to access the resource for deploying the above-mentioned IDE instance, and obtain the IDE front-end component from the resource.
  • the user device 102 may also send an access request to the management device 104 in response to an access operation triggered by the user.
  • S416 The management device 104 determines that the ID of the IDE instance is valid.
  • the management device 104 can store the ID of the created IDE instance. Based on this, the management device 104 can also, when receiving an access request from the user device 102, query whether the ID of the IDE instance carried in the access request exists, and if so, it indicates the user
  • the IDE instance accessed by the device 102 is an IDE instance that has been created, and the ID of the IDE instance is valid, and the management device 104 can perform subsequent steps. If not, it indicates that the IDE instance accessed by the user device 102 is an IDE instance that has not been created yet. The identifier of is invalid, and the management device 104 can end the current process.
  • the management device 104 includes a storage module 1048.
  • the storage module 1048 stores the ID of the IDE instance
  • the management device 104 can query the storage module 1048 to determine whether the ID of the IDE instance carried in the access request exists.
  • the management device 104 does not include the above-mentioned storage module 1048 or the storage module 1048 does not store the ID of the IDE instance, but a separate storage device 110 stores the ID of the IDE instance, the management device 104 can query the storage device 110 to determine that the access request is in progress. Whether the ID of the carried IDE instance exists.
  • S418 The management device 104 determines that the user identifier carried in the access request is in the user list.
  • the management device 104 may also perform identity verification on the user to confirm whether the user requesting access is a user who is allowed to access the IDE instance. Specifically, the management device 104 may obtain the user identification carried in the access request, and determine whether the user identification exists in the user list. If so, it indicates that the user requesting access is a user allowed to access the IDE instance, and the management device 104 can perform subsequent operations; if not, it indicates that the user requesting access is not a user allowed to access the IDE instance, and the management device 104 can end the current process.
  • S416 and S418 are only an optional implementation manner proposed to improve security. In some embodiments, S416 and S418 may not be executed in the IDE construction method.
  • S420 The management device 104 routes the access request to the resource.
  • the management device 104 can route the user device 102 according to the address of the resource. The sent access request is routed to the resource.
  • the management device 104 obtains the IDE front-end component from the resource.
  • the IDE front-end components are specifically components related to user interaction.
  • the IDE front-end component may include a user interface (UI) component.
  • the IDE front-end components may include any one or more of a UI component of a code editor, a UI component of a compiler, and a UI component of a debugger.
  • the management device 104 When the management device 104 routes the access request to the resource, the IDE instance deployed in the resource can generate an access response in response to the access request, and the access response includes the IDE front-end component.
  • the management device 104 can obtain the IDE front-end component from the resource by receiving the access response.
  • S424 The management device 104 routes the IDE front-end component to the user device 102.
  • the management device 104 routes the IDE front-end components to the user device 102.
  • the user device 102 can deploy the aforementioned IDE front-end components, so that the user can trigger operations such as code editing, compilation, and debugging based on the aforementioned IDE front-end components.
  • the IDE front-end components are also in the cloud when the IDE instance is created or deployed.
  • the user device 102 can download the IDE front-end components and run the IDE front-end Components. It should be noted that the user can use the user device 102 on different devices to access resources to download the IDE front-end components, and interact with the IDE instances in the cloud through the above-mentioned IDE front-end components on different devices to achieve anytime and anywhere development (coding anytime and anywhere). ).
  • this application also provides a specific example to illustrate the process of obtaining the IDE front-end component by the user device 102.
  • the IP address of the user terminal device to which the user device 102 belongs is 119.2.1.82
  • the IP address of the server to which the management device 104 belongs is 121.3.13.148
  • the IP address of the resource where the IDE instance is deployed is 136.34.21.109.
  • the user device 102 first sends an access request to the management device 104.
  • the management device 104 routes the access request to the resource according to the resource's IP address 136.34.21.109.
  • the management device 104 receives the IDE front-end component returned by the IDE instance on the resource, and then returns the IDE front-end component To the user terminal device with the IP address of 119.2.1.82, the user device 102 on the user terminal device obtains the aforementioned IDE front-end component.
  • S414, S420, S422, and S424 are only an implementation manner for the user device 102 to obtain the IDE front-end components.
  • the user device 102 may not perform the foregoing steps, but may be implemented in other manners.
  • S426 The user device 102 sends an authentication request carrying the token to the management device 104.
  • the token carried in the authentication request is the token determined in S410 in the embodiment shown in FIG. 4.
  • S428 The management device 104 sends an authentication response carrying the authentication result to the user device 102. If the authentication result indicates that the authentication is passed, S430 is executed, and if not, the process is ended.
  • the user device 102 may first send an authentication request to the management device 104, and the management device 104 may decrypt the token in the authentication request to obtain user-related information, IDE instance-related information, and an expiration timestamp.
  • the user-related information specifically includes a user list
  • the IDE instance-related information specifically includes the ID of the IDE instance.
  • the management device 104 may perform authentication based on the above-mentioned information obtained by decryption. Specifically, the management device 104 can query whether the ID of the IDE instance that is the same as the ID of the decrypted IDE instance is stored, whether the user list that is the same as the decrypted user list is stored, and whether the current time has reached the expiration timestamp, If the management device 104 stores the ID of the IDE instance and the user list, and the current time does not reach the expiration timestamp, the authentication is passed, otherwise the authentication is not passed. The management device 104 generates an authentication response according to the above authentication result, and returns the authentication response to the user device 102. When the authentication result in the authentication response indicates that the authentication is passed, the subsequent steps can be executed, and when the authentication result in the authentication response indicates that the authentication is not passed, the current process can be ended.
  • S426 and S428 are only an optional implementation manner proposed to improve security. In some embodiments, S426 and S428 may not be executed in the IDE construction method.
  • S430 The user device 102 establishes a connection between the IDE front-end component and the IDE instance.
  • the user device 102 establishes a user-based network connection between the IDE front-end component and the IDE instance, which can avoid network traffic between the IDE front-end component and the IDE instance. For example, the network traffic generated by the user update code is forwarded through the management device 104, resulting in the management device 104 Occupy more network resources, affect user experience, and increase operating costs.
  • the user device 102 may establish a long connection when establishing a connection between the IDE front-end component and the IDE instance.
  • the user device 102 may establish a persistent connection between the IDE front-end component and the IDE instance through the HyperText Transfer Protocol (HTTP), and the persistent connection established based on this method is also referred to as the HTTP persistent connection.
  • HTTP HyperText Transfer Protocol
  • the user device 102 may also establish a long connection between the IDE front-end component and the IDE instance through a web socket.
  • the web socket runs full-duplex communication between the IDE front-end components and the IDE instance. Either party can push data to the other end through the established connection.
  • the web socket establishes a connection once, and the connection status can be maintained. Compared with polling Continuously establish connections, greatly improving processing efficiency.
  • connection between the user device 102 and the IDE instance through the IDE front-end component is only an implementation manner for establishing a connection between the user device 102 and the IDE instance.
  • the user device 102 The connection with the IDE instance can be established in other ways.
  • FIG. 7 is exemplified by the management device 104 including the routing module 1046 and the storage module 1048.
  • the functions of the routing module 1046 and the storage module 1048 may be implemented by the routing device. 108 and the storage device 110 are implemented, and will not be repeated here.
  • the management device 104 includes:
  • the communication module 1042 is configured to receive the IDE instance creation request sent by the user device 102;
  • the management module 1044 is used to deploy an IDE core on the resources provided by the resource providing device 106 to form an IDE instance;
  • the communication module is also used to send connection information to the user device 102, so as to establish a connection between the user device 102 and the IDE instance.
  • the communication module 1042 please refer to the description of S402 and S412 in the embodiment shown in FIG. 4, and the specific implementation of the management module 1044 can refer to the description of S404 in the embodiment shown in FIG.
  • connection information includes a routing address
  • the user device 102 and the IDE instance establish a connection through the routing address
  • the device 104 further includes a routing module 1046;
  • the communication module 1042 is further configured to receive an access request generated by the user device 102 according to the routing address;
  • the routing module 1046 is configured to route the access request to the resource, and route the IDE front-end components obtained from the resource to the user device 102, so that the user device 102 passes through the IDE front-end The component establishes a connection with the IDE instance.
  • the communication module 1042 refers to the description of related content in S414 in the embodiment shown in FIG. 7, and the specific implementation of the routing module 1046 can refer to the description of related content in S420 and S424 in the embodiment shown in FIG.
  • the access request includes the ID of the IDE instance
  • the routing module 1046 is further configured to:
  • routing module 1046 For the specific implementation of the routing module 1046, refer to the description of S416 in the embodiment shown in FIG. 7.
  • the access request further includes a user identification
  • the routing module 1046 is further configured to:
  • the resource Before routing the access request to the resource, determine that the user identifier carried in the access request is in the user list corresponding to the IDE instance, where the user list includes users corresponding to users who are allowed to use the IDE instance Logo.
  • routing module 1046 For the specific implementation of the routing module 1046, refer to the description of S418 in the embodiment shown in FIG. 7.
  • connection information includes the address of the resource, and the address of the resource is used to directly establish a connection between the user device 102 and the IDE instance.
  • the communication module 1042 is also used to:
  • a token is sent to the user device 102, and the token is used to authenticate the user device 102 before establishing a connection between the user device 102 and the IDE instance.
  • the management device 104 may correspond to the method described in the embodiment of the present application, and the above-mentioned and other operations and/or functions of each module of the management device 104 are used to implement the various methods in FIG. 4 or FIG. 7 respectively. For the sake of brevity, the corresponding process will not be repeated here.
  • the embodiment of the present application also provides a device.
  • the device may be a computer, which is specifically used to implement the functions of the management device 104 in the embodiment shown in FIG. 2.
  • FIG. 8 provides a schematic structural diagram of a device.
  • the device 500 includes a bus 501, a processor 502, a communication interface 503, and a memory 504.
  • the processor 502, the memory 504, and the communication interface 503 communicate through a bus 501.
  • the bus 501 may be a peripheral component interconnect standard (PCI) bus or an extended industry standard architecture (EISA) bus, etc.
  • PCI peripheral component interconnect standard
  • EISA extended industry standard architecture
  • the bus can be divided into address bus, data bus, control bus and so on. For ease of presentation, only one thick line is used to represent in FIG.
  • the communication interface 503 is used to communicate with the outside. For example, it is used to receive an IDE instance creation request sent by the user device 102, or send connection information to the user device 102, and so on.
  • the processor 502 may be a central processing unit (CPU).
  • the memory 504 may include a volatile memory (volatile memory), such as a random access memory (random access memory, RAM).
  • the memory 504 may also include a non-volatile memory (non-volatile memory), such as a read-only memory (ROM), flash memory, HDD or SSD.
  • the memory 504 stores executable code, and the processor 502 executes the executable code to execute the aforementioned IDE construction method.
  • each module of the management device 104 described in the embodiment of FIG. 2 is realized by software
  • the management module 1044 and the routing module 1046 in FIG. 2 are executed.
  • the software or program code required for the function is stored in the memory 504.
  • the function of the storage module 1048 can be implemented by the memory 504.
  • the function of the communication module 1042 can be implemented through the communication interface 503.
  • the communication interface 503 receives the IDE instance creation request sent by the user device 102, and transmits it to the processor 502 via the bus 501.
  • the processor 502 executes the program code corresponding to each module stored in the memory 504 and executes the IDE construction method to construct a network Cloud-based IDE with low resource occupancy rate and better user experience.
  • the embodiment of the present application also provides a computer-readable storage medium, which includes instructions, which when run on a computer, cause the computer to execute the above-mentioned IDE construction method applied to the management device 104.
  • the embodiments of the present application also provide a computer program product.
  • the computer program product When the computer program product is executed by a computer, the computer executes any one of the aforementioned IDE construction methods.
  • the computer program product may be a software installation package. In the case where any method of the aforementioned IDE construction method is required, the computer program product can be downloaded and executed on the computer.
  • the device embodiments described above are only illustrative, and the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physically separate.
  • the physical unit can be located in one place or distributed across multiple network units. Some or all of the modules can be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • the connection relationship between the modules indicates that they have a communication connection between them, which may be specifically implemented as one or more communication buses or signal lines.
  • this application can be implemented by means of software plus necessary general hardware.
  • it can also be implemented by dedicated hardware including dedicated integrated circuits, dedicated CPUs, dedicated memory, Dedicated components and so on to achieve.
  • all functions completed by computer programs can be easily implemented with corresponding hardware.
  • the specific hardware structures used to achieve the same function can also be diverse, such as analog circuits, digital circuits or special-purpose circuits. Circuit etc.
  • software program implementation is a better implementation in more cases.
  • the technical solution of this application essentially or the part that contributes to the existing technology can be embodied in the form of a software product, and the computer software product is stored in a readable storage medium, such as a computer floppy disk. , U disk, mobile hard disk, ROM, RAM, magnetic disk or optical disk, etc., including several instructions to make a computer device (which can be a personal computer, training device, or network device, etc.) execute the various embodiments described in this application method.
  • a computer device which can be a personal computer, training device, or network device, etc.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.
  • the computer instructions may be transmitted from a website, computer, training device, or data.
  • the center transmits to another website, computer, training equipment, or data center through wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.).
  • wired such as coaxial cable, optical fiber, digital subscriber line (DSL)
  • wireless such as infrared, wireless, microwave, etc.
  • the computer-readable storage medium may be any available medium that can be stored by a computer or a data storage device such as a training device or a data center integrated with one or more available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, and a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk (SSD)).

Abstract

一种集成开发环境IDE的构建方法,包括:管理装置(104)接收用户装置(102)发送的IDE实例创建请求(S402),所述管理装置(104)在资源提供装置(106)提供的资源上部署IDE内核以形成IDE实例(S404),所述管理装置(104)向所述用户装置(102)发送连接信息(S412),以使所述用户装置(102)和所述IDE实例之间建立连接。该方法通过对管理装置(104)和资源提供装置(106)进行解耦,使得用户装置(102)和IDE实例之间的网络流量无需通过管理装置(104)进行转发,减少了管理装置(104)占用的网络资源,避免了不同用户共享管理装置(104)的网络资源导致访问变慢,提高了用户体验。

Description

一种集成开发环境的构建方法、装置、设备及介质 技术领域
本申请涉及计算机技术领域,尤其涉及一种集成开发环境的构建方法、装置、设备以及计算机可读存储介质。
背景技术
随着计算机技术的发展,辅助开发者进行软件开发的工具也随之产生。其中,集成有代码编辑器、编译器、调试器和图形用户界面等工具中的至少一种,且用于提供程序开发环境的应用程序称之为集成开发环境(integrated development environment,IDE)。
云化IDE(cloud IDE)是当前开发工具发展的趋势。云化IDE允许开发者在任意地点、时间,通过一个联网终端(例如可以是一台主机、平板电脑或者手机)与云端的IDE实例建立连接,在浏览器中进行编码和调试等开发活动。
然而,当前云化IDE普遍存在占用较多网络资源、用户体验不佳的问题。基于此,业界亟需提供一种网络资源占用率低、用户体验较好的云化IDE,以满足开发需求。
发明内容
本申请提供了一种集成开发环境(integrated development environment,IDE)的构建方法,基于该方法可以解决云化IDE占用较多网络资源、用户体验不佳的问题。本申请还提供了对应的装置、设备、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种IDE的构建方法。该方法应用于IDE的构建系统,该构建系统具体包括用户装置、管理装置和资源提供装置。具体地,管理装置接收用户装置发送的IDE实例创建请求,然后管理装置在资源提供装置提供的资源上部署IDE内核以形成IDE实例,接着管理装置向用户装置发送连接信息,以使用户装置和IDE实例之间建立连接,从而实现管理装置和资源提供装置的解耦。
由于用户装置和IDE实例之间的网络流量可以通过基于用户网络的连接进行传递,无需通过管理装置进行转发,减少了管理装置占用的网络资源。在基于构建好的IDE进行应用开发时,不同用户无需共享管理装置的网络资源,避免了一些用户的常规操作占用大量网络资源,导致另一些用户的用户体验受影响的问题,提高了用户体验。
而且,管理装置无需进行网络流量的转发,因此管理装置无需配置较大的网络带宽,如此可以降低运营成本。即使用户数不断增加,也无需增加管理装置的网络带宽,避免了运营成本线性增长。
此外,该方法支持在自带资源或云服务提供商提供的资源上实现云化IDE。该云化IDE可以在不同种类的资源如虚拟机、容器上实现,具有较高的灵活性。当新增资源种类时,由于管理装置和资源提供装置已经解耦,管理装置也无需对管理面(management panel)的参数进行修改,因而具有较好的兼容性。
在一种可能的实现方式中,用户装置和IDE实例之间可以通过路由方式建立连接。具体地,连接信息包括路由地址,如此,用户装置和IDE实例可以基于路由地址,从而以路由方式建立连接。由于建立连接所产生的网络流量是通过路由转发的,不会直接到 达IDE实例,如此可以实现流量过滤,避免非法分子恶意攻击IDE实例,影响用户访问IDE实例,提高了访问安全性。
在一些可能的实现方式中,管理装置可以通过路由方式获取IDE前端组件,然后通过IDE前端组件建立与IDE实例之间的连接。具体地,管理装置可以接收用户装置根据路由地址生成的访问请求,然后路由该访问请求至资源,接着将从资源处获取的IDE前端组件路由至用户装置,从而使得用户装置可以通过IDE前端组件与IDE实例建立连接。
在一些可能的实现方式中,IDE的构建系统还可以包括路由装置。如此,管理装置向用户装置发送的连接信息包括路由地址时,用户装置可以基于该路由地址访问路由装置,通过路由装置进行路由获得IDE前端组件,并通过该IDE前端组件与IDE实例建立连接。
在一些可能的实现方式中,访问请求中包括所述IDE实例的标识,管理装置还可以在路由访问请求至资源之前,确定IDE实例的标识有效,如此可以减少无效访问,提高用户体验。
在一些可能的实现方式中,访问请求中还包括用户标识,管理装置还可以在路由访问请求至资源之前,确定访问请求携带的用户标识在IDE实例的用户列表中。其中,该用户列表包括允许使用IDE实例的用户对应的用户标识。上述实现方式通过在路由访问请求之前对用户权限进行验证,避免了不具有使用权限的用户访问IDE实例,保障了安全性。
在一些可能的实现方式中,管理装置向用户装置发送的连接信息可以包括资源的地址。其中,资源的地址可以用于用户装置和IDE实例直接建立连接,如此提高了连接建立效率,进而提高了IDE的构建效率。
在一些可能的实现方式中,管理装置还可以向用户装置发送令牌。该令牌具体用于在所述用户装置和所述IDE实例之间建立连接之前,由所述管理装置对所述用户装置鉴权,如此避免了不具有相应权限的用户装置与IDE实例建立连接,保障了安全性。
第二方面,本申请提供了一种IDE的构建方法。该方法应用于IDE的构建系统,该构建系统具体包括用户装置、管理装置和资源提供装置。具体地,用户装置向管理装置发送IDE实例创建请求,然后用户装置接收所述管理装置在所述资源提供装置提供的资源上部署IDE内核以形成IDE实例时发送的连接信息,接着用户装置根据所述连接信息建立与所述IDE实例的连接。该方法实现了管理装置和资源提供装置的解耦,用户在基于构建好的IDE进行应用开发时,用户装置和IDE实例之间的网络流量均通过用户网络传递,无需管理装置进行转发,如此解决了管理装置占用较多网络资源,用户体验不佳的问题。
在一些可能的实现方式中,连接信息包括路由地址,如此,用户装置可以根据路由地址建立与IDE实例的连接。
在一些可能的实现方式中,用户装置可以根据路由地址生成访问请求,然后向管理装置发送访问请求,接着用户装置可以接收管理装置通过路由所述访问请求至所述资源并从所述资源处获取的IDE前端组件,再接着用户装置可以通过IDE前端组件与IDE实例建立连接。
在一些可能的实现方式中,IDE的构建系统还包括路由装置,该路由装置独立于所述管理装置,用户装置可以根据路由地址生成访问请求,然后向路由装置发送访问请求, 接着用户装置可以接收路由装置通过路由所述访问请求至所述资源并从所述资源处获取的IDE前端组件,再接着用户装置可以通过IDE前端组件与IDE实例建立连接。
在一些可能的实现方式中,连接信息包括资源的地址。用户装置可以基于资源的地址和IDE实例直接建立连接。具体地,用户装置根据资源的地址生成访问请求,向资源发送所述访问请求,然后用户装置接收资源上形成的IDE实例发送的IDE前端组件,接着用户装置可以通过IDE前端组件直接建立与IDE实例的连接。
第三方面,本申请提供了一种管理装置。所述管理装置包括:通信模块和管理模块。其中,通信模块用于接收用户装置发送的集成开发环境IDE实例创建请求,管理模块用于在资源提供装置提供的资源上部署IDE内核以形成IDE实例,所述通信模块还用于向所述用户装置发送连接信息,以使所述用户装置和所述IDE实例之间建立连接。
在一些可能的实现方式中,所述连接信息包括路由地址,所述用户装置和所述IDE实例通过所述路由地址建立连接。
在一些可能的实现方式中,所述装置还包括路由模块;
所述通信模块,还用于接收所述用户装置根据所述路由地址生成的访问请求;
所述路由模块,用于路由所述访问请求至所述资源,将从所述资源处获取的IDE前端组件,路由至所述用户装置,以使所述用户装置通过所述IDE前端组件与所述IDE实例建立连接。
在一些可能的实现方式中,所述访问请求中包括所述IDE实例的标识,所述路由模块还用于:
在路由所述访问请求至所述资源之前,确定所述IDE实例的标识有效。
在一些可能的实现方式中,所述访问请求中还包括用户标识,所述路由模块还用于:
在路由所述访问请求至所述资源之前,确定所述访问请求携带的用户标识在所述IDE实例对应的用户列表中,其中,所述用户列表包括允许使用所述IDE实例的用户对应的用户标识。
在一些可能的实现方式中,所述连接信息包括所述资源的地址,所述资源的地址用于所述用户装置和所述IDE实例直接建立连接。
在一些可能的实现方式中,所述通信模块还用于:
向所述用户装置发送令牌,所述令牌用于在所述用户装置和所述IDE实例之间建立连接之前,对所述用户装置鉴权。
第四方面,本申请提供了一种用户装置。所述用户装置包括用于执行第二方面或第二方面任一种可能实现方式中的IDE的构建方法的各个模块。
第五方面,本申请提供一种设备。所述设备可以是计算机。所述设备包括处理器和存储器。所述处理器、所述存储器进行相互的通信。所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行如第一方面或第二方面的任一种实现方式中的IDE的构建方法。
第六方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面的任一种实现方式所述的IDE的构建方法。
第七方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面的任一种实现方式所述的IDE的构建方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1A为本申请实施例提供的一种系统架构图100;
图1B为本申请实施例提供的一种系统架构图200;
图2为本申请实施例提供的一种管理装置的结构示意图;
图3为本申请实施例提供的一种系统架构图300;
图4为本申请实施例提供的一种IDE的构建方法的交互流程图;
图5为本申请实施例提供的一种IDE实例创建配置页面的界面示意图;
图6为本申请实施例提供的一种生成令牌的流程示意图;
图7为本申请实施例提供的一种IDE的构建方法的交互流程图;
图8为本申请实施例提供的一种设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请提供的实施例中的方案进行描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。
为了便于理解本申请的技术方案,下面对本申请实施例涉及的一些技术术语进行介绍。
本申请实施例中的集成开发环境(integrated development environment,IDE)是用于提供程序开发环境的应用程序。该应用程序包括至少一个组件,所谓组件是指对数据和方法的简单封装,在一些编程语言体系中,组件也可以称为部件、控件等等。基于组件的作用,可以将IDE包括的组件分为前端组件和后端组件两种类型。
前端组件是指实现和用户交互的组件,具体用于接收用户输入的数据,显示用户请求的数据等等。后端组件是指对数据进行处理的组件,具体用于按照设定的逻辑对接收到的数据进行处理,或者从数据库中获取数据进行处理等等。在本申请实施例中,IDE可以集成代码编辑器、编译器、调试器和图形用户界面等工具中的至少一种。IDE前端组件可以包括与图形用户界面相关的组件,IDE后端组件可以包括与编译器、调试器等相关的组件。
基于部署方式不同,IDE可以分为本地IDE和云化IDE(cloud IDE)。其中,本地IDE的前端组件和后端组件均部署在本地。其中,本地也称作本地设备。本地设备包括处于用于用户直接控制之下的用户设备(例如笔记本电脑等用户终端),或者与上述用户设备地理上接近的设备(例如连接至笔记本电脑等用户终端上的移动硬盘、闪存盘等设备)。云化IDE则至少有一部分组件,例如后端组件,部署在云端。本申请实施例中的云端是与本地相对应的一端,即本地用户通过网络远程访问的资源端。其中,资源可以是用户 自带资源,也可以是云服务提供商提供的资源。云服务提供商提供有管理装置,管理装置可以响应于用户触发的IDE实例创建操作,在用户自带资源或者云服务提供商提供的资源上创建IDE。
资源还可以基于类型划分为物理资源或虚拟资源。其中,物理资源是指物理隔离的计算资源、存储资源、通信资源等,例如独立的服务器、存储设备、通信设备等。虚拟资源是指从操作系统或进程等层面进行隔离的计算资源、存储资源、通信资源等,例如,一台服务器上部署的多个虚拟机(virtual machine,VM)或者多个容器(content)等。
为了实现代码编辑、编译、调试等功能,需要执行上述IDE。在资源的内存中处于运行状态的应用程序可以称之为实例(instance)。基于此,资源的内存中处于运行状态的IDE也可以称之为IDE instance。
考虑到云化IDE具有部署灵活、易于使用等特性,其已逐渐成为当前开发者工具发展的趋势。目前,云化IDE主要采用集中式管理架构,即IDE前端组件和IDE后端组件之间的所有网络流量均通过专有的管理装置进行转发。这种架构虽然给流量监控带来了便利,但是管理装置需要占用较多的网络资源。用户的一些常规操作,如克隆较大的代码仓,将导致大量网络资源被占用,进而造成其他用户的访问变慢,用户体验不佳。
为此,本申请提供了一种IDE的构建方法。该方法通过将构建系统的管理装置和资源提供装置进行解耦,避免了云化IDE的网络资源需求大、用户体验不佳的问题。具体地,管理装置接收来自于用户装置的IDE实例创建请求,然后响应于该IDE实例创建请求,在资源提供装置提供的资源上部署IDE内核以形成IDE实例,接着向用户装置发送连接信息,以使用户装置和IDE实例之间建立连接。
如此,用户装置和IDE实例之间的网络流量可以通过上述基于用户网络的连接进行传递,无需通过管理装置进行转发,减少管理装置占用的网络资源。在基于构建好的IDE进行应用开发时,不同用户无需共享管理装置的网络资源,避免了一些用户的常规操作占用大量网络资源,导致另一些用户的用户体验受影响的问题,提高了用户体验。而且无需管理装置进行网络流量的转发,因此管理装置无需配置较大的网络带宽,如此可以降低运营成本。即使用户数不断增加,也无需增加管理装置的网络带宽,避免了运营成本线性增长。
此外,该方法支持在自带资源或云服务提供商提供的资源上实现云化IDE。该云化IDE可以在不同种类的资源如虚拟机、容器上实现,具有较高的灵活性。当新增资源种类时,也无需管理装置对管理面(management panel)的参数进行修改,具有较好的兼容性。
为了使得本申请的技术方案更加清楚、易于理解,接下来,结合附图对本申请的应用环境进行介绍。
如图1A所示,本申请实施例提供的IDE的构建方法由IDE的构建系统执行。该IDE的构建系统包括用户装置102、管理装置104和资源提供装置106。其中,用户装置102可以运行在各种终端计算设备上,例如:手机、笔记本电脑、平板电脑或者个人台式电脑等等。管理装置104和资源提供装置106可以运行在云计算集群(包括至少一个云计算设备,例如:云服务器等)。在图1A所示的场景中,资源提供装置106提供的资源为云服务提供商提供的资源。当然,在本申请实施例的另一场景中,如图1B所示,资源提供装置106提供的资源为用户自带的资源,管理装置104和资源提供装置106分别运行 在各自的云计算集群中。需要说明,图1B是以用户自带的资源运行于用户的计算集群中进行示例说明的,在其他场景下,用户自带的资源也可以运行于物理机,如服务器中。
用户装置102具体可以是浏览器,或者是其他可以作为流量入口的应用程序。用户可以通过该用户装置102触发IDE实例创建操作,用户装置102响应于该IDE实例创建操作,生成IDE实例创建请求,并向管理装置104发送IDE实例创建请求。其中,IDE实例创建请求中可以携带IDE实例的配置参数,该配置参数可以包括计算性能参数、存储性能参数、网络性能参数等相关配置参数。在一个示例中,配置参数可以为64核虚拟处理器(virtual central processor unit,vCPU)、256G内存以及万兆网卡,具体可以记作64vCPUs/256G/万兆。
然后,管理装置104根据上述IDE实例创建请求,从资源提供装置106中确定与上述配置参数相匹配的资源,并在该资源上部署IDE内核以形成IDE实例。其中,IDE内核具体是用于形成IDE实例的代码文件。该代码文件包括IDE前端组件和IDE后端组件对应的代码片段。当然代码文件还包括IDE前端组件和IDE后端组件的脚本生成器对应的代码片段。部署IDE内核具体包括将上述代码文件生成可执行文件,例如生成软件包(如npm包),然后将可执行文件放入目标环境,配置目标环境使得可执行文件能够执行。
接着,管理装置104向用户装置102发送连接信息,以使用户装置102和资源提供装置106提供的资源上形成的IDE实例之间建立连接。在实际应用时,用户装置102可以根据连接信息先从资源提供装置106提供的所述资源处获取IDE前端组件,然后通过IDE前端组件建立与IDE实例之间的连接。
考虑到安全性,管理装置104向用户装置发送的连接信息可以包括路由地址,如此,用户装置102和IDE实例之间可以基于路由地址通过路由方式建立连接。图2示出了图1A或图1B场景中管理装置104的一个结构示意图。
如图2所示,管理装置104包括通信模块1042和管理模块1044。其中,通信模块1042用于接收用户装置102发送的IDE示例创建请求,管理模块1044用于在资源提供装置106提供的资源上部署IDE内核以形成IDE实例,通信模块1042还用于向用户装置102发送连接信息,以使用户装置102和IDE实例之间建立连接。
在一些可能的实现方式中,管理装置104还可以包括路由模块1046。管理装置104可以通过路由模块进行路由,从而在用户装置102和IDE实例之间建立连接。具体地,通信模块1042接收用户装置根据路由地址生成的访问请求,路由模块1046路由所述访问请求至所述资源,将从所述资源处获取的IDE前端组件路由至所述用户装置102,以使用户装置102通过所述IDE前端组件与所述IDE实例建立连接。
在一些可能的实现方式中,管理装置104还可以包括存储模块1048。该存储模块1048用于存储IDE实例所在资源的地址。具体地,管理模块1044在资源提供装置106提供的资源上部署IDE内核形成IDE实例时,通信模块1042可以获取该资源的地址,存储模块1048存储该资源的地址。其中,存储模块1048在存储资源的地址时,可以存储IDE实例的标识以及对应的资源的地址,以便后续基于IDE实例的标识查找资源的地址,基于该资源的地址进行路由。
进一步地,存储模块1048还可以存储IDE实例对应的用户列表。该用户列表包括允许使用所述IDE实例的用户对应的用户标识。存储模块1048在存储上述用户列表时,可 以存储IDE实例的标识以及对应的用户列表,以便后续查找。
基于此,路由模块1046还可以在路由访问请求前,先对IDE实例的标识和用户标识进行验证。具体地,访问请求中可以包括IDE实例的标识和用户标识,路由模块1046可以查询访问请求中携带的IDE实例的标识在存储模块1048中是否存在,若是,则表明该IDE实例的标识有效,路由模块1046可以执行路由访问请求的操作。路由模块1046还可以确定访问请求中携带的用户标识是否在存储模块1048的用户列表中,若是,再执行向资源路由访问请求的操作,若否,则结束当前流程。当然,存储模块1048未存储用户列表时,路由模块1046对IDE实例的标识进行验证即可,存储模块1048未存储IDE实例的标识时,对用户标识进行验证即可。
需要说明的是,图2中的管理装置104也可以不包括路由模块1046和存储模块1048。路由模块1046和存储模块1048的功能可以通过单独的装置实现,例如可以通过单独的路由装置和存储装置实现。
参见图3所示的系统架构图,在图3的场景中,IDE的构建系统还包括路由装置108和存储装置110。用户装置102向管理装置104发送IDE实例创建请求,管理装置104在资源提供装置106提供的资源上部署IDE内核形成IDE实例,然后管理装置104获取资源的地址,存储在存储装置110中。管理装置104在进行存储时,还可以将IDE实例的标识以及对应的用户列表一并存储在存储装置110中。
然后管理装置104可以向用户装置102发送连接信息。该连接信息具体包括路由地址,如此,用户装置102可以根据路由地址生成访问请求,并向路由装置108发送访问请求。,路由装置108接收到访问请求,先根据存储装置110中存储的IDE实例的标识,确定访问请求中的IDE实例的标识有效,然后根据存储装置110中存储的用户列表,确定访问请求中携带的用户标识在用户列表中,再路由所述访问请求至所述资源,然后从资源处获取IDE前端组件,并将该IDE前端组件路由至用户装置102。用户装置102通过IDE前端组件与IDE实例建立连接。
需要说明的是,图3中的用户装置102可以部署在终端计算设备中,管理装置104、资源提供装置106、路由装置108以及存储装置110可以以多种方式部署在云计算集群中。例如,管理装置104、资源提供装置106、路由装置108以及存储装置110可以部署于同一云计算集群,或者分别部署于不同的云计算集群。其中,部署于不同的云计算集群可以是管理装置104、资源提供装置106、路由装置108以及存储装置110中的每个装置分别部署于一个独立的云计算集群,也可以是以两两组合的形式部署于两个云计算集群,或者是任意三个部署于一个云计算集群,剩下的一个装置部署于另一个云计算集群。
在一些可能的实现方式中,管理装置104向用户装置102发送的连接信息可以包括资源的地址,如此,用户装置102还可以基于资源的地址直接建立与IDE实例的连接。具体地,用户装置102可以基于资源的地址访问资源,从资源处获得IDE前端组件,然后通过IDE前端组件直接建立与IDE实例的连接。
接下来,从用户装置102、管理装置104和资源提供装置106交互的角度对本申请实施例提供的IDE的构建方法的各个步骤进行详细说明。
参见图4所示的IDE的构建方法的流程图,该方法包括:
S402:用户装置102向管理装置104发送IDE实例创建请求。
在具体实现时,用户装置102可以显示IDE实例创建配置页面,该页面承载有IDE 实例配置组件,该配置组件可以用于配置待创建的IDE实例的性能参数。其中,性能参数包括计算性能参数、存储性能参数以及网络性能参数中的至少一种。
用户可以通过上述IDE实例配置组件配置参数,用户装置响应于用户的配置操作,根据配置参数生成IDE实例创建请求,向管理装置104发送IDE实例创建请求。在一些实现方式中,用户装置102也可以自动生成IDE实例创建请求,例如在设定条件满足时自动生成IDE实例创建请求,并向管理装置104发送IDE实例创建请求。
为了便于理解,本申请还提供了一具体示例进行说明。图5示出了IDE实例创建配置页面的一个界面示意图,如图5所示,用户可以通过下拉选择框选择vCPU类型、内存大小以及网卡大小,如选择64vCPUs、256G内存以及万兆网卡,此时IDE实例创建配置页面还可以根据用户选择的上述配置参数生成预估价格,以供用户参考。当用户认为价格过高或过低时,可以调整配置参数。然后用户可以点击IDE实例创建配置页面的确认控件,以触发IDE实例创建操作,用户装置102响应于该操作生成IDE实例创建请求,该IDE实例创建请求中携带有上述配置参数。
在图5的示例中,用户也可以直接选中默认配置复选框,然后点击确认控件触发IDE实例创建操作,如此,用户装置102响应于该操作生成IDE实例创建请求,该IDE实例创建请求中携带有默认配置参数。
S404:管理装置104在资源提供装置106提供的资源上部署IDE内核以形成IDE实例。
资源提供装置106提供的资源可以是用户自带资源,也可以是云服务提供商提供的资源。资源提供装置106可以对用户自带资源或者云服务提供商提供的资源进行管理,以便统一提供资源服务。
在具体实现时,管理装置104可以根据接收到的IDE实例创建请求,确定与待创建的IDE实例相匹配的资源。具体地,管理装置104可以将IDE实例创建请求携带的配置参数与资源提供装置106提供的资源的参数进行比较,在参数与IDE实例创建请求携带的配置参数相符的资源上部署IDE内核,从而形成IDE实例。
其中,IDE内核具体是用于形成IDE实例的代码文件。该代码文件包括在资源上形成IDE实例所需要的所有组件对应的代码片段,包括IDE前端组件和IDE后端组件对应的代码片段。当然,代码文件还包括IDE前端组件的脚本生成器和IDE后端组件的脚本生成器对应的代码片段。
IDE内核可以是云服务提供商提供的。在一些实现方式中,云服务提供商可以提供若干类别的IDE内核,例如视觉工作室(visual studio,VS)、日食(eclipse)等若干类别的IDE内核,用户在进行IDE实例创建时还可以指定待创建的IDE实例的类型,如此,管理装置104还可以根据IDE实例创建请求携带的待创建的IDE实例的类型选择对应的IDE内核部署至资源提供装置106所提供的资源上。
管理装置104可以在资源上编译用于形成IDE实例的代码文件,进而形成IDE前端组件、IDE后端组件以及IDE前端组件的脚本生成器和IDE后端组件的脚本生成器,上述组件和脚本生成器执行时形成IDE实例。其中,IDE前端组件的脚本生成器在IDE实例启动时生成IDE前端组件的脚本,也称作前端脚本(运行于用户装置102)。IDE后端组件的脚本生成器在实例启动时生成IDE后端组件的脚本,也称作后端脚本(运行于云端)。
在创建IDE实例后,管理装置104还可以为该IDE实例分配一个唯一性标识,以便后续基于该标识识别IDE实例。在具体实现时,管理装置104可以通过随机方式生成IDE实例的标识,或者是基于创建时间和创建顺序生成IDE实例的标识,本申请实施例对此不作限定。
需要说明的是,在本申请实施例的云化IDE中,IDE前端组件在IDE实例创建或者部署时也是在云端的。
S406:管理装置104从资源提供装置106获取资源的地址。
资源的地址用于实现和资源的通信,基于此,资源的地址可以是任意能够标识资源在网络中位置的地址。在一些实现方式中,资源的地址可以是网际协议地址(internet protocol address,IP address)。IP地址属于逻辑地址,互联网中的每一个网络和每一个设备均具有逻辑地址,该逻辑地址可以用于屏蔽物理地址的差异。在一些情况下,资源的地址也可以是物理地址(physical address),也即介质访问控制(medium access control,MAC)地址。
资源提供装置106提供的资源为物理资源时,资源提供装置106可以记录各物理资源的实际地址,该实际地址具体为物理资源的IP地址或MAC地址。资源提供装置106提供的资源为虚拟资源时,资源提供装置106不仅可以记录各资源的实际地址,还记录该资源的虚拟地址。该虚拟地址具体是资源提供装置106对资源进行虚拟化,从而进行统一管理所生成的虚拟地址。
S408:管理装置104存储IDE实例的标识以及对应的资源的地址和用户列表。
管理装置104可以存储资源的地址,以便后续基于该资源的地址访问资源。考虑到不同用户创建IDE实例的需求,管理装置104可以为每一个IDE实例分配标识,如此,管理装置104在存储资源的地址时,还可以将IDE实例的标识以及对应的资源的地址进行存储,从而实现区分不同IDE实例。
在一些可能的实现方式中,考虑到使用安全性,管理装置104还可以设置使用上述IDE实例的用户权限,具有相应用户权限的用户可以使用上述IDE实例。基于此,管理装置104可以针对创建的IDE实例生成对应的用户列表,用户列表包括允许使用该IDE实例的用户对应的用户标识。对应地,管理装置104在存储资源的地址时,还可以存储部署于该资源上的IDE实例对应的用户列表。
需要说明的是,管理装置104在存储IDE实例的标识以及对应的资源的地址和用户列表时,可以将其存储在如图3所示的存储模块1048中,也可以将其存储在独立于管理装置104的存储装置110中。其中,存储模块1048、存储装置110可以采用集中式存储机制进行存储,也可以采用分布式存储机制进行存储。采用分布式存储机制如将IDE实例的标识以及对应的资源的地址和用户列表存储在分布式缓存中,一方面可以提高安全性,另一方面可以提高后续查找时的效率,提高IDE的构建效率。
应理解,在一些实施例中,执行IDE的构建方法也可以不执行S408。例如,用户装置102根据资源的地址建立与IDE实例之间的连接时,管理装置104可以不执行存储资源的地址的步骤。
S410:管理装置104根据IDE实例的标识、用户列表等信息确定令牌。
令牌具体用于在所述用户装置和所述IDE实例之间建立连接之前,所述管理装置104对所述用户装置102鉴权(authentication),即管理装置104验证用户装置102是否具有 访问IDE实例的权限。
具体实现时,管理装置104可以根据IDE实例相关信息如IDE实例的标识instance ID、用户相关信息如用户列表(包括允许使用上述IDE实例的用户对应的用户标识user ID)等信息进行计算,例如进行哈希计算,从而生成令牌(token)。
考虑到安全性,管理装置104还可以基于过期时间戳(expiration)在内的信息确定令牌。其中,过期时间戳是指为令牌设置的过期时间。当到达过期时间戳指示的时刻时,令牌会失效,如此可以避免非法分子窃取历史令牌进行鉴权,并在鉴权通过后访问IDE实例,导致用户正常访问受到影响或者用户数据被篡改。
在具体实现时,如图6所示,管理装置104可以将IDE实例的标识(instance ID)、用户列表(包括允许使用上述IDE实例的用户的user ID)和过期时间戳(expiration)进行组装,得到组装结果,然后管理装置104可以利用自身持有的私钥对上述组装结果进行签名,根据上述签名结果可以获得令牌(token)。
其中,管理装置104可以采用拼接等方式对instance id、user ID和expiration等在内的信息进行组装,组装结果具体可以采用JS对象简谱(javascript object notation,JSON)格式进行表示。接着,管理装置104可以利用基于JSON的开发标准如JS对象简谱网页令牌(json web token,JWT)生成令牌。
具体地,JWT包括三部分:头部(header)、载荷(payload)和签名(signature)。其中,头部承载两部分信息,具体为声明类型(本实施例中为jwt)和声明加密的算法。在本实施例中,声明类型可以是jwt,声明加密的算法可以是哈希算法,例如哈希消息认证码安全哈希算法(hash-based message authentication code secure hash algorithm 256,HMAC SHA256)。载荷存放有效信息,具体可以包括上述组装结果。签名具体可以由管理装置104针对加密后的头部以及加密后的载荷连接组成的字符串,采用自身持有的私钥,结合头部声明的加密算法进行加密,从而得到签名。
考虑到JSON具有较好的通用性,基于JSON的JWT能够实现跨语言支持,即C#、JavaScript、NodeJS、PHP等许多语言均可以使用JWT。进一步地,JWT的构成比较简单,占用字节较少,非常便于传输。此外,基于token的鉴权机制是无状态的,无需在服务端保留用户的认证信息或者会话信息,如此,基于token认证机制的应用如本申请实施例中的云化IDE无需考虑用户在哪一台服务器登录,为应用的扩展提供了便利。
还需要说明的是,管理装置104在基于用户相关信息确定令牌时,不仅可以基于用户标识进行计算确定令牌,还可以结合用户所在组织的组织标识(organization ID,org ID)进行计算以确定令牌,如此可以提高令牌复杂性,使得基于令牌的鉴权结果更加可信。
应理解,S410仅是为了提高安全性提出的一种可选实施方式。在一些实施例中,执行IDE的构建方法也可以不执行S410。
S412:管理装置104向用户装置102发送连接信息。
具体地,管理装置104向用户装置102发送的连接信息,可以使得用户装置102根据该连接信息建立与IDE实例之间的连接。考虑到用户在进行开发时需要频繁操作,例如,频繁编辑、频繁点击,用户装置102可以和IDE实例之间建立长连接。其中,长连接是双向传输数据的持久连接,而非每进行一次数据交互即建立一次连接,交互结束即中断的连接。通过长连接进行交互可以提高交互效率,避免资源浪费。
在具体实现时,管理装置104可以在IDE实例部署并启动时,向用户装置102发送 上述连接信息。基于建立连接方式不同,连接信息可以分为以下几种情况。一种情况为,连接信息包括路由地址,用户装置102和IDE实例根据路由地址通过路由的方式建立连接;另一种情况为连接信息包括资源的地址,用户装置102直接根据资源的地址与IDE实例建立连接,无需经过路由。
考虑到安全性,在一些实现方式中,连接信息中还可以携带S410中确定的令牌,以便用户装置102在建立连接前先基于令牌发起鉴权请求,并在鉴权通过后再执行建立连接的操作。
通过上述实施例的描述,可知本申请将管理装置104与资源提供装置106进行解耦,管理装置104仅执行标准操作,如部署IDE内核至资源提供装置106提供的资源上等,IDE前端组件和IDE实例间的网络流量均通过二者之间建立的基于用户网络如用户虚拟私有云(virtual private cloud,VPC)的连接传输,管理装置104不必关心网络流量如何在IDE实例和IDE前端组件之间传输,如此,大大减少了管理装置104占用的网络资源,避免了一些用户的常规操作占用较多网络资源,导致其他用户的访问受到影响,提高了用户体验。而且,管理装置104无需转发用户装置102和IDE实例之间的网络流量,无需为管理装置104配置较大的网络带宽,降低了运营成本。
在图4所示实施例中,管理装置104向用户装置102发送连接信息后,用户装置102可以基于连接信息建立与IDE实例之间的连接。为了便于理解,本申请实施例还提供了一种通过路由方式建立用户装置102与IDE实例之间的连接的实现方式。
参见图7所示的IDE的构建方法的交互流程图,在图4所示实施例的基础上,该方法还包括:
S414:用户装置102向管理装置104发送访问请求。
具体地,用户装置102可以在接收到上述连接信息时,自动根据连接信息中的路由地址生成访问请求,向管理装置104发送访问请求。其中,访问请求中包括IDE实例的标识和用户标识,该访问请求具体用于访问部署上述IDE实例的资源,从资源处获得IDE前端组件。在另一些可能的实现方式中,用户装置102也可以响应于用户触发的访问操作,向管理装置104发送访问请求。
S416:管理装置104确定所述IDE实例的标识有效。
管理装置104可以存储已创建的IDE实例的标识,基于此,管理装置104还可以在接收到用户装置102的访问请求时,查询访问请求中携带的IDE实例的标识是否存在,若是,则表明用户装置102访问的IDE实例为已创建的IDE实例,该IDE实例的标识有效,管理装置104可以执行后续步骤,若否,则表明用户装置102访问的IDE实例为尚未创建的IDE实例,该IDE实例的标识无效,管理装置104可以结束当前流程。
具体地,管理装置104包括存储模块1048,该存储模块1048存储IDE实例的标识时,管理装置104可以查询该存储模块1048,从而确定访问请求中携带的IDE实例的标识是否存在。管理装置104不包括上述存储模块1048或者是存储模块1048未存储IDE实例的标识,而是由单独的存储装置110存储IDE实例的标识时,管理装置104可以查询存储装置110,从而确定访问请求中携带的IDE实例的标识是否存在。
S418:管理装置104确定所述访问请求携带的用户标识在所述用户列表中。
在一些实现方式中,管理装置104还可以对用户进行身份验证,确认请求访问的用 户是否是允许访问IDE实例的用户。具体地,管理装置104可以获取访问请求携带的用户标识,确定该用户标识是否存在于用户列表中。若是,则表明请求访问的用户是允许访问IDE实例的用户,管理装置104可以执行后续操作;若否,则表明请求访问的用户不是允许访问IDE实例的用户,管理装置104可以结束当前流程。
应理解,S416、S418仅是为了提高安全性提出的一种可选实施方式。在一些实施例中,执行IDE的构建方法也可以不执行S416、S418。
S420:管理装置104路由所述访问请求至所述资源。
由于用户装置102所要访问的是部署于资源提供装置106提供的资源上的IDE实例,管理装置104知晓资源的地址,因此,管理装置104可以根据所述资源的地址通过路由方式,将用户装置102发送的访问请求路由至资源。
S422:管理装置104从所述资源处获取IDE前端组件。
IDE前端组件具体是与用户交互相关的组件。在本实施例中,IDE前端组件可以包括用户界面(user interface,UI)组件。例如,IDE前端组件可以包括代码编辑器的UI组件、编译器的UI组件、调试器的UI组件中的任意一种或多种。
管理装置104将访问请求路由至资源时,部署于资源的IDE实例可以响应于该访问请求,生成访问响应,该访问响应包括IDE前端组件。管理装置104可以通过接收访问响应,实现从资源处获取IDE前端组件。
S424:管理装置104将所述IDE前端组件路由至所述用户装置102。
管理装置104将IDE前端组件路由至用户装置102,如此,用户装置102可以部署上述IDE前端组件,从而使得用户可以基于上述IDE前端组件,触发代码编辑、编译、调试等操作。
在本申请实施例中,IDE前端组件在IDE实例创建或部署的时候也是在云端的,当用户装置102跳转到部署完成的IDE实例时,用户装置102可以下载IDE前端组件,并运行IDE前端组件。需要说明的是,用户可以采用不同设备上的用户装置102访问资源,以下载IDE前端组件,并通过不同设备上的上述IDE前端组件和云端的IDE实例交互,实现随时随地开发(coding anytime and anywhere)。
为了方便理解,本申请还提供了一具体示例,对用户装置102获取IDE前端组件的过程进行示例说明。在该示例中,用户装置102所属的用户终端设备的IP地址为119.2.1.82,管理装置104所属的服务器的IP地址为121.3.13.148,部署IDE实例的资源的IP地址为136.34.21.109。用户装置102先向管理装置104发送访问请求,管理装置104根据资源的IP地址136.34.21.109将访问请求路由至资源,管理装置104接收资源上IDE实例返回的IDE前端组件,然后将IDE前端组件返回至IP地址为119.2.1.82的用户终端设备,该用户终端设备上的用户装置102即获得上述IDE前端组件。
应理解,S414、S420、S422和S424仅仅是用户装置102获取IDE前端组件的一种实现方式,在一些实施例中,用户装置102也可以不执行上述步骤,而是采用其他方式实现。
S426:用户装置102向管理装置104发送携带令牌的鉴权请求。
其中,鉴权请求中携带的令牌即为图4所示实施例中S410确定的令牌。
S428:管理装置104向用户装置102发送携带鉴权结果的鉴权响应。若鉴权结果表征鉴权通过,则执行S430,若否,则结束流程。
考虑到安全性,用户装置102可以先向管理装置104发送鉴权请求,管理装置104可以对鉴权请求中的令牌进行解密,得到与用户相关信息、与IDE实例相关信息以及过期时间戳。其中,与用户相关信息具体包括用户列表,与IDE实例相关信息具体包括IDE实例的标识。
管理装置104可以基于解密得到的上述信息进行鉴权。具体地,管理装置104可以查询是否存储有与解密得到的IDE实例的标识相同的IDE实例的标识,是否存储有与解密得到的用户列表相同的用户列表,以及判断当前时间是否到达过期时间戳,若管理装置104存储有上述IDE实例的标识、用户列表,而且当前时间也并未到达过期时间戳,则鉴权通过,否则鉴权不通过。管理装置104根据以上鉴权结果生成鉴权响应,向用户装置102返回鉴权响应。当鉴权响应中鉴权结果表示鉴权通过,则可以执行后续步骤,当鉴权响应中鉴权结果表示鉴权不通过,则可以结束当前流程。
应理解,S426、S428仅是为了提高安全性提出的一种可选实施方式。在一些实施例中,执行IDE的构建方法也可以不执行S426、S428。
S430:用户装置102通过IDE前端组件和IDE实例之间建立连接。
用户装置102通过IDE前端组件和IDE实例之间建立基于用户网络的连接,可以避免IDE前端组件和IDE实例之间网络流量,如用户更新代码产生的网络流量通过管理装置104转发,导致管理装置104占用较多网络资源,影响用户体验,以及增加运营成本的问题。
考虑到响应效率和网络资源利用率,用户装置102在建立IDE前端组件和IDE实例之间的连接时可以建立长连接。在一些实现方式中,用户装置102可以通过超文本传输协议(Hyper Text Transfer Protocol,HTTP)建立IDE前端组件和IDE实例之间的长连接,基于该方式建立的长连接也称作HTTP长连接。
在另一些实现方式中,用户装置102也可以通过网络套接字(web socket)建立IDE前端组件和IDE实例之间的长连接。web socket运行IDE前端组件和IDE实例之间进行全双工通信,任一方可以通过建立的连接将数据推送到另一端,web socket建立一次连接,即可一直保持连接状态,相较于通过轮询不断建立连接,大大提高了处理效率。
应理解,用户装置102通过IDE前端组件与IDE实例之间建立连接仅仅是用户装置102和IDE实例之间建立连接的一种实现方式,在本申请实施例其他可能的实现方式中,用户装置102和IDE实例可以通过其他方式建立连接。
需要说明的是,图7所示实施例是以管理装置104包括路由模块1046和存储模块1048进行示例说明的,在一些可能的实现方式中,路由模块1046和存储模块1048的功能可以由路由装置108和存储装置110实现,在此不再赘述。
图4和图7所示实施例中虚线或者虚线框标识的步骤为本申请实施例的可选步骤,在一些可能的实现方式中,上述步骤也可以不执行,或者采用其他方式执行,本申请实施例对此不作限定。
上文中结合图1至图7,详细描述了本申请所提供的IDE的构建方法,下面将结合附图,描述根据本申请所提供的用于构建IDE的管理装置以及相应的设备。
参见图4所示的管理装置104的结构示意图,该管理装置104包括:
通信模块1042,用于接收用户装置102发送的集成开发环境IDE实例创建请求;
管理模块1044,用于在资源提供装置106提供的资源上部署IDE内核以形成IDE实例;
所述通信模块,还用于向所述用户装置102发送连接信息,以使所述用户装置102和所述IDE实例之间建立连接。
其中,通信模块1042的具体实现可以参见图4所示实施例中S402、S412相关内容描述,管理模块1044的具体实现可以参见图4所示实施例中S404相关内容描述,在此不再赘述。
在一些可能的实现方式中,所述连接信息包括路由地址,所述用户装置102和所述IDE实例通过所述路由地址建立连接。
在一些可能的实现方式中,所述装置104还包括路由模块1046;
所述通信模块1042,还用于接收所述用户装置102根据所述路由地址生成的访问请求;
所述路由模块1046,用于路由所述访问请求至所述资源,将从所述资源处获取的IDE前端组件,路由至所述用户装置102,以使所述用户装置102通过所述IDE前端组件与所述IDE实例建立连接。
其中,通信模块1042的具体实现可以参见图7所示实施例中S414相关内容描述,路由模块1046的具体实现可以参见图7所示实施例中S420、S424相关内容描述。
在一些可能的实现方式中,所述访问请求中包括所述IDE实例的标识,所述路由模块1046还用于:
在路由所述访问请求至所述资源之前,确定所述IDE实例的标识有效。
其中,路由模块1046的具体实现可以参见图7所示实施例中S416相关内容描述。
在一些可能的实现方式中,所述访问请求中还包括用户标识,所述路由模块1046还用于:
在路由所述访问请求至所述资源之前,确定所述访问请求携带的用户标识在所述IDE实例对应的用户列表中,其中,所述用户列表包括允许使用所述IDE实例的用户对应的用户标识。
其中,路由模块1046的具体实现可以参见图7所示实施例中S418相关内容描述。
在一些可能的实现方式中,所述连接信息包括所述资源的地址,所述资源的地址用于所述用户装置102和所述IDE实例直接建立连接。
在一些可能的实现方式中,所述通信模块1042还用于:
向所述用户装置102发送令牌,所述令牌用于在所述用户装置102和所述IDE实例之间建立连接之前,对所述用户装置102鉴权。
根据本申请实施例的管理装置104可对应于执行本申请实施例中描述的方法,并且管理装置104的各个模块的上述和其它操作和/或功能分别为了实现图4或图7中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种设备。该设备可以是计算机,具体用于实现如图2所示实施例中管理装置104的功能。图8提供了一种设备的结构示意图,如图8所示,设备500包括总线501、处理器502、通信接口503和存储器504。处理器502、存储器504和通信接口503之间通过总线501通信。总线501可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard  architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口503用于与外部通信。例如,用于接收用户装置102发送的IDE实例创建请求,或者向用户装置102发送连接信息等等。
其中,处理器502可以为中央处理器(central processing unit,CPU)。存储器504可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器504还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器,HDD或SSD。
存储器504中存储有可执行代码,处理器502执行该可执行代码以执行前述IDE的构建方法。
具体地,在实现图2所示实施例的情况下,且图2实施例中所描述的管理装置104的各模块为通过软件实现的情况下,执行图2中的管理模块1044、路由模块1046功能所需的软件或程序代码存储在存储器504中。存储模块1048功能可以通过存储器504实现。通信模块1042功能可以通过通信接口503实现。通信接口503接收用户装置102发送的IDE实例创建请求,将其通过总线501传输至处理器502,处理器502执行存储器504中存储的各模块对应的程序代码,执行IDE的构建方法,以构建网络资源占用率低、用户体验较好的云化IDE。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括指令,当其在计算机上运行时,使得计算机执行上述应用于管理装置104的IDE的构建方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品被计算机执行时,所述计算机执行前述IDE的构建方法的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前述IDE的构建方法的任一方法的情况下,可以下载该计算机程序产品并在计算机上执行该计算机程序产品。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。 当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

Claims (16)

  1. 一种集成开发环境IDE的构建方法,其特征在于,应用于所述IDE的构建系统,所述构建系统包括用户装置、管理装置和资源提供装置,所述方法包括:
    所述管理装置接收所述用户装置发送的IDE实例创建请求;
    所述管理装置在所述资源提供装置提供的资源上部署IDE内核以形成IDE实例;
    所述管理装置向所述用户装置发送连接信息,以使所述用户装置和所述IDE实例之间建立连接。
  2. 根据权利要求1所述的方法,其特征在于,所述连接信息包括路由地址,所述用户装置和所述IDE实例通过所述路由地址建立连接。
  3. 根据权利要求2所述的方法,其特征在于,所述方法还包括:
    所述管理装置接收所述用户装置根据所述路由地址生成的访问请求;
    所述管理装置路由所述访问请求至所述资源;
    所述管理装置将从所述资源处获取的IDE前端组件路由至所述用户装置,以使所述用户装置通过所述IDE前端组件与所述IDE实例建立连接。
  4. 根据权利要求3所述的方法,其特征在于,所述访问请求中包括所述IDE实例的标识,在所述管理装置路由所述访问请求至所述资源之前,所述方法还包括:
    所述管理装置确定所述IDE实例的标识有效。
  5. 根据权利要求3或4所述的方法,其特征在于,所述访问请求中包括用户标识,在所述管理装置路由所述访问请求至所述资源之前,所述方法还包括:
    所述管理装置确定所述访问请求携带的用户标识在所述IDE实例对应的用户列表中,其中,所述用户列表包括允许使用所述IDE实例的用户对应的用户标识。
  6. 根据权利要求1所述的方法,其特征在于,所述连接信息包括所述资源的地址,所述资源的地址用于所述用户装置和所述IDE实例直接建立连接。
  7. 根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
    所述管理装置向所述用户装置发送令牌,所述令牌用于在所述用户装置和所述IDE实例之间建立连接之前,所述管理装置对所述用户装置鉴权。
  8. 一种管理装置,其特征在于,所述管理装置包括:
    通信模块,用于接收用户装置发送的集成开发环境IDE实例创建请求;
    管理模块,用于在资源提供装置提供的资源上部署IDE内核以形成IDE实例;
    所述通信模块,还用于向所述用户装置发送连接信息,以使所述用户装置和所述IDE实例之间建立连接。
  9. 根据权利要求8所述的装置,其特征在于,所述连接信息包括路由地址,所述用户装置和所述IDE实例通过所述路由地址建立连接。
  10. 根据权利要求8所述的装置,其特征在于,所述装置还包括路由模块;
    所述通信模块,还用于接收所述用户装置根据所述路由地址生成的访问请求;
    所述路由模块,用于路由所述访问请求至所述资源,将从所述资源处获取的IDE前端组件路由至所述用户装置,以使所述用户装置通过所述IDE前端组件与所述IDE实例建立连接。
  11. 根据权利要求10所述的装置,其特征在于,所述访问请求中包括所述IDE实例的标识,所述路由模块还用于:
    在路由所述访问请求至所述资源之前,确定所述IDE实例的标识有效。
  12. 根据权利要求10或11所述的装置,其特征在于,所述访问请求中包括用户标识,所述路由模块还用于:
    在路由所述访问请求至所述资源之前,确定所述访问请求携带的用户标识在所述IDE实例对应的用户列表中,其中,所述用户列表包括允许使用所述IDE实例的用户对应的用户标识。
  13. 根据权利要求8所述的装置,其特征在于,所述连接信息包括所述资源的地址,所述资源的地址用于所述用户装置和所述IDE实例直接建立连接。
  14. 根据权利要求8至13任一项所述的装置,其特征在于,所述通信模块还用于:
    向所述用户装置发送令牌,所述令牌用于在所述用户装置和所述IDE实例之间建立连接之前,对所述用户装置鉴权。
  15. 一种设备,其特征在于,所述设备包括处理器和存储器;
    所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行如权利要求1至7任一项所述的方法。
  16. 一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得所述计算机执行如权利要求1至7中任一项所述的方法。
PCT/CN2021/074554 2020-03-13 2021-01-30 一种集成开发环境的构建方法、装置、设备及介质 WO2021179842A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010174458.4 2020-03-13
CN202010174458.4A CN113391796B (zh) 2020-03-13 2020-03-13 一种集成开发环境的构建方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
WO2021179842A1 true WO2021179842A1 (zh) 2021-09-16

Family

ID=77616043

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/074554 WO2021179842A1 (zh) 2020-03-13 2021-01-30 一种集成开发环境的构建方法、装置、设备及介质

Country Status (2)

Country Link
CN (1) CN113391796B (zh)
WO (1) WO2021179842A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210191780A1 (en) * 2020-09-30 2021-06-24 Beijing Baidu Netcom Science Technology Co., Ltd. Method and apparatus for processing development machine operation task, device and storage medium

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023159900A1 (zh) * 2022-02-25 2023-08-31 华为云计算技术有限公司 远程开发的方法及装置
US11811878B1 (en) * 2022-03-31 2023-11-07 Amazon Technologies, Inc. Session manager providing bidirectional data transport
CN115061702A (zh) * 2022-08-19 2022-09-16 荣耀终端有限公司 一种ide管理方法及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104219127A (zh) * 2014-08-30 2014-12-17 华为技术有限公司 一种虚拟网络实例的创建方法以及设备
US20150067386A1 (en) * 2013-08-28 2015-03-05 Institute For Information Industry Integration network device and service integration method thereof
WO2017190357A1 (zh) * 2016-05-06 2017-11-09 华为技术有限公司 一种网络功能实例的管理方法及相关设备
CN110134378A (zh) * 2018-02-08 2019-08-16 腾讯科技(深圳)有限公司 应用程序创建方法及装置、计算机设备及存储介质
CN110716720A (zh) * 2018-07-12 2020-01-21 北京京东尚科信息技术有限公司 一种实现应用热部署的方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7530079B2 (en) * 2006-09-07 2009-05-05 Microsoft Corporation Managing application customization
CN108768957B (zh) * 2015-06-12 2021-10-15 华为技术有限公司 一种应用的用户信息管理的方法、设备及系统
CN109542611B (zh) * 2017-09-21 2021-05-14 中国移动通信集团重庆有限公司 数据库即服务系统、数据库调度方法、设备及存储介质
CN108848505B (zh) * 2018-07-10 2021-05-07 上海尚往网络科技有限公司 一种无线连接方法及设备
CN108989110A (zh) * 2018-07-20 2018-12-11 浪潮电子信息产业股份有限公司 一种vpc网络模型的构建方法及其相关设备
CN109104467B (zh) * 2018-07-25 2021-07-30 北京京东尚科信息技术有限公司 开发环境构建方法、装置以及平台系统和存储介质
CN110351384A (zh) * 2019-07-19 2019-10-18 深圳前海微众银行股份有限公司 大数据平台资源管理方法、装置、设备及可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150067386A1 (en) * 2013-08-28 2015-03-05 Institute For Information Industry Integration network device and service integration method thereof
CN104219127A (zh) * 2014-08-30 2014-12-17 华为技术有限公司 一种虚拟网络实例的创建方法以及设备
WO2017190357A1 (zh) * 2016-05-06 2017-11-09 华为技术有限公司 一种网络功能实例的管理方法及相关设备
CN110134378A (zh) * 2018-02-08 2019-08-16 腾讯科技(深圳)有限公司 应用程序创建方法及装置、计算机设备及存储介质
CN110716720A (zh) * 2018-07-12 2020-01-21 北京京东尚科信息技术有限公司 一种实现应用热部署的方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210191780A1 (en) * 2020-09-30 2021-06-24 Beijing Baidu Netcom Science Technology Co., Ltd. Method and apparatus for processing development machine operation task, device and storage medium

Also Published As

Publication number Publication date
CN113391796A (zh) 2021-09-14
CN113391796B (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
WO2021179842A1 (zh) 一种集成开发环境的构建方法、装置、设备及介质
US11210139B2 (en) Remote management of distributed datacenters
US10839254B2 (en) Supporting manifest list for multi-platform application container images
CN112165532B (zh) 节点访问方法、装置、设备及计算机可读存储介质
US11469964B2 (en) Extension resource groups of provider network services
JP6058628B2 (ja) マルチノードアプリケーションのデプロイメント・システム
US20180262388A1 (en) Remote device deployment
US20160112262A1 (en) Installation and configuration of connected devices
CN109479062B (zh) 混合云计算系统中的使用跟踪
CN111885123B (zh) 一种跨K8s目标服务访问通道的构建方法及装置
CN109150978A (zh) 调试微服务的方法和装置
CN110944330A (zh) Mec平台部署方法及装置
US8925066B2 (en) Provisioning proxy for provisioning data on hardware resources
JP6661641B2 (ja) コンピューティングデバイス、サブスクリプションサーバ及び方法
Kirschnick et al. Towards an architecture for deploying elastic services in the cloud
CN110348225A (zh) 针对应用程序接口的安全漏洞确定方法和装置
US20230061228A1 (en) Managing shared applications at the edge of a content delivery network
US11604848B2 (en) Technologies for cross-device shared web resource cache
TW202301118A (zh) 動態微服務分配機制
US9756149B2 (en) Machine-specific instruction set translation
US10708129B1 (en) Changing hardware capabilities of a device
US9823944B2 (en) Deployment control device and deployment control method for deploying virtual machine for allowing access
AU2022245632A1 (en) Run-time communications protocol parameter adjustment in containerized applications
US20220066845A1 (en) Dynamic authenticatication an authorization of a containerized process
US20230319133A1 (en) Network interface device to select a target service and boot an application

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21767295

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21767295

Country of ref document: EP

Kind code of ref document: A1