INTEGRATION OF A STANDARD NETWORK PROTOCOL LAYER IN A WEB BROWSER BY COMPILATION TO WEBASSEMBLY AND USE OF A WEBSOCKET

20210099553 ยท 2021-04-01

    Inventors

    Cpc classification

    International classification

    Abstract

    A standard network protocol layer is integrated in a Web browser by compilation to Webassembly and use of a Websocket. A method for connecting a local client device to a remote computing resource, by establishing a computing session in accordance with a standard protocol includes: executing on the client device a Web browsing application; opening a first tunnel with a server GATEWAY; wherein the opening of the first tunnel between the client device and the GATEWAY commands the opening of a network connection with the remote resource. The Web application executed on the local client calculates data packets in accordance with a standard protocol (RDP or SSH for example) and commands the transmission of the data packets to the remote resource in the native format of said protocol, without transcoding or transformation other than the standard processing of websockets, by way of the server gateway (Proxy websocket) ensuring the transfer without modification of the packet received from the client device, to the remote server.

    Claims

    1.-4. (canceled)

    5. A method for connecting a local client device to a remote computing resource, by establishing a computing session in accordance with a standard protocol comprising: executing on the client device a web browsing application; opening a first tunnel websocket with a server gateway, the opening of the first tunnel between the client device and the server gateway commanding the opening of a network connection with the remote resource; wherein the web browsing application executed on the local client calculates data packets in accordance with a standard protocol and commands a transmission of the data packets to the remote resource in a native format of the standard protocol, without transcoding or transformation other than standard processing of websockets, by way of the server gateway ensuring a transfer without modification of the packet received from the client device to a remote server; and wherein a computer code of the standard protocol comprises a JavaScript component with three layers, including: a layer for interfacing with input-output devices; a network interface layer ensuring control of the web socket; and a protocol layer comprising a standard code compiled in ASM.js or Webassembly from a source code in a high-level language.

    6. The method of claim 5, wherein the standard protocol comprises a remote desktop protocol (RDP) or a secure shell (SSH) protocol.

    7. The method of claim 5, wherein the layer for interfacing with the input-output devices comprises a display layer executing display commands from the standard protocol.

    8. The method of claim 5, wherein the layer for interfacing with the input-output devices performs a function of interaction with input devices.

    9. The method of claim 8, wherein the input devices comprise a keyboard and/or a mouse.

    10. The method of claim 5, wherein an input/output protocol code preloads protocol packet into memory of the local client device to allow asynchronous operation.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0048] The present disclosure will be best understood upon reading the following detailed description of a non-restrictive exemplary embodiment, while referring to the appended drawings, wherein:

    [0049] FIG. 1 is a schematic view of the functional architecture of one infrastructure according to the disclosure;

    [0050] FIG. 2 shows a schematic view of the architecture of the client workstation.

    DETAILED DESCRIPTION

    [0051] Disclosed is a terminal application server (1) that comprises one or more websocket/TCP socket gateway computer server(s) (2), and a plurality of client workstations executing, in particular, a web browser application (4).

    [0052] The terminal application server (1) communicates with the external environment using a standard protocol, for example, RDP or SSH. The solution according to the disclosure does not involve any intervention or modification of the terminal application server (1) or its communication interfaces.

    [0053] The main part of the disclosure is reflected in the modifications made to the application embedded in the browser (4), as detailed in FIG. 2 and executed by the client workstation (3).

    [0054] This embedded application consists of several layers: [0055] a display layer (7) executing display commands from the protocol, e.g. bitmap, character, text, image plot, etc., according to the RDP or SSH protocol. This layer also performs functions of interaction with the keyboard, the mouse and more generally the input devices. This layer consists of a JavaScript program written specifically for the protocol, for example, in an HTML5 language. This layer is available for a variety of devices, such as computers, cell phones, touch screen tablets, etc. [0056] a protocol layer (6) compiled to asm.js or Webassembly, using, for example, the Emscripten compilation string, assembled from a code strain written in a high-level language, typically in C or C++. This layer implements the decoding and encoding of the network protocol, from known libraries available as a source code, for example, the ReDemPtion code (trade name of the WALLIX company, available under free license, which is a free implementation of the RDP protocol of the MICROSOFT company).

    [0057] This protocol layer preferably controls the protocol data preloading functions of the input/output layer (5).

    [0058] An input/output layer (5) based on the HTML5 Websocket protocol. This input/output layer (5) preloads the protocol packets into the RAM of the client workstation, so as to enable asynchronous operation, and to adapt the solution according to the present disclosure to an essentially synchronous protocol.

    [0059] When initiating a connection, three solutions are provided: [0060] the first solution provides that the gateway server (2) imposes the target (predefined application terminal (1), and not modifiable by the client device (3)). [0061] the second solution provides for a prior negotiation for the configuration of the terminal application server (1), by a mechanism linked to the gateway server (2). [0062] the third solution provides for the installation of a specific protocol extension, commanding the opening of the session, prior to the start of the main protocol.

    [0063] The gateway server (2) provides a simple relay function of the underlying protocol, between the WEBSOCKET transport layer 5 and the transport layer between the gateway server (2) and the terminal application server (1). Unlike the solution of the prior art, the gateway 2 does not provide any intelligent functions such as protocol decoding, bitmap caching, etc., functions that, according to the disclosure, are performed by the application embedded in the browser of the client workstation.

    [0064] The gateway server (2) can execute a standard code of the APACHE module type ensuring the WEB SOCKET relay to the terminal application server 1.