FR3078850A1 - METHOD, DEVICE AND SYSTEM FOR ACCESSING AN APPLICATION DEPLOYED IN A CONTAINER - Google Patents

METHOD, DEVICE AND SYSTEM FOR ACCESSING AN APPLICATION DEPLOYED IN A CONTAINER Download PDF

Info

Publication number
FR3078850A1
FR3078850A1 FR1852048A FR1852048A FR3078850A1 FR 3078850 A1 FR3078850 A1 FR 3078850A1 FR 1852048 A FR1852048 A FR 1852048A FR 1852048 A FR1852048 A FR 1852048A FR 3078850 A1 FR3078850 A1 FR 3078850A1
Authority
FR
France
Prior art keywords
application
clt
client device
app
disp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1852048A
Other languages
French (fr)
Other versions
FR3078850B1 (en
Inventor
Alexandre Devely
Jeremy Petit
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
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 Orange SA filed Critical Orange SA
Priority to FR1852048A priority Critical patent/FR3078850B1/en
Publication of FR3078850A1 publication Critical patent/FR3078850A1/en
Application granted granted Critical
Publication of FR3078850B1 publication Critical patent/FR3078850B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Dispositif (DA) permettant à un dispositif client (CLT) d'accéder à une application (APP), le dispositif (DA) exécutant un conteneur, dit "conteneur d'interface (C_IF)" et comportant : - un module de traitement (s_disp, s_snd, s_prn) configuré pour obtenir un événement (ev_disp, ev_snd, ev_prn) destiné à un périphérique de sortie (DISP, PRN, SND_out) du dispositif client (CLT) et généré par une application (APP) s'exécutant dans un conteneur d'application (C_APP); et - un module de communication (comm_disp, comm _snd, comm _prn) configuré pour générer et envoyer, sur obtention d'un dit événement (ev_disp, ev_snd, ev_prn), au moins un message (MSG_CLT) obtenu à partir de l'événement, destiné à et interprétable par le dispositif client (CLT).Device (DA) enabling a client device (CLT) to access an application (APP), the device (DA) executing a container, called "interface container (C_IF)" and comprising: - a processing module ( s_disp, s_snd, s_prn) configured to obtain an event (ev_disp, ev_snd, ev_prn) for an output device (DISP, PRN, SND_out) of the client device (CLT) and generated by an application (APP) running in a application container (C_APP); and a communication module (comm_disp, comm_snd, comm_prn) configured to generate and send, on obtaining an said event (ev_disp, ev_snd, ev_prn), at least one message (MSG_CLT) obtained from the event , intended for and interpretable by the client device (CLT).

Description

Arrière-plan de l'inventionInvention background

L'invention se rapporte au domaine général de l'accès, depuis un terminal d'un utilisateur, à une application exécutée distante.The invention relates to the general field of access, from a user's terminal, to a remote executed application.

Parmi les solutions existantes permettant l'accès à une application distante, on connaît les solutions s'exécutant dans une machine virtuelle s'exécutant sur un serveur distant et accessible via un bureau virtuel VDI (Virtual Desktop Infrastructure).Among the existing solutions allowing access to a remote application, solutions are known which run in a virtual machine running on a remote server and accessible via a virtual desktop VDI (Virtual Desktop Infrastructure).

Ces solutions présentent l'inconvénient de consommer des ressources (mémoire, capacité de calcul, ...) importantes au niveau du serveur, l'utilisation d'une machine virtuelle nécessitant en plus des ressources nécessaires à l'exécution de l'application elle-même, des ressources pour l'exécution d'un système d'exploitation complet, pour la gestion des librairies et éventuellement pour l'ordonnancement (scheduling) des applications.These solutions have the disadvantage of consuming significant resources (memory, computing capacity, etc.) at the server level, the use of a virtual machine requiring in addition the resources necessary for the execution of the application it -same, resources for the execution of a complete operating system, for the management of libraries and possibly for the scheduling of applications.

On connaît également une solution consistant à installer et à exécuter (autrement dit à « déployer ») une application dans un conteneur d'application hébergé dans un serveur. Le conteneur d'une application ne comporte que le code binaire de l'application et les librairies requises par l'application, autrement dit ses dépendances. Cette solution permet d'optimiser les ressources système par rapport à l'installation d'une machine virtuelle puisque seuls le code de l'application et les librairies nécessaires à son exécution sont installés.A solution is also known which consists of installing and executing (in other words “deploying”) an application in an application container hosted on a server. The container of an application contains only the binary code of the application and the libraries required by the application, in other words its dependencies. This solution makes it possible to optimize system resources compared to the installation of a virtual machine since only the application code and the libraries necessary for its execution are installed.

Cependant, il n'est pas possible, dans l'état actuel de la technique, de permettre à un utilisateur, d'interagir via une interface graphique de son dispositif client, avec une application s'exécutant dans un conteneur d'application.However, it is not possible, in the current state of the art, to allow a user to interact via a graphical interface of his client device, with an application executing in an application container.

L'invention vise une solution d'accès à une application distante qui ne présente pas les inconvénients des solutions existantes.The invention relates to a solution for accessing a remote application which does not have the drawbacks of existing solutions.

Objet et résumé de l'inventionSubject and summary of the invention

Plus particulièrement, l'invention vise un procédé permettant à un dispositif client d'accéder à une application. Le procédé est mis en œuvre dans un conteneur, dit « conteneur d'interface », et comporte les étapes suivantes :More particularly, the invention relates to a method allowing a client device to access an application. The method is implemented in a container, called an "interface container", and comprises the following steps:

— démarrage d'un module de traitement susceptible d'obtenir au moins un événement destiné à un périphérique de sortie du dispositif client et généré par une application s'exécutant dans un conteneur d'application; et — sur obtention d'un tel événement, envoi d'au moins un message obtenu à partir de cet événement, destiné à et interprétable par ce dispositif client.- start of a processing module capable of obtaining at least one event intended for an output device of the client device and generated by an application executing in an application container; and - on obtaining such an event, sending at least one message obtained from this event, intended for and interpretable by this client device.

On rappelle qu'un conteneur, exécuté par une machine, est un ensemble de processus isolés du reste des autres processus s'exécutant sur la même machine. Un conteneur s'exécute à partir d'une image qui fournit les fichiers nécessaires à la prise en charge de ses processus.Recall that a container, executed by a machine, is a set of processes isolated from the rest of the other processes executing on the same machine. A container runs from an image that provides the files necessary to support its processes.

De façon connue, une image est un ensemble de fichiers.As is known, an image is a set of files.

Un conteneur partage le système d'exploitation de la machine physique qui l'exécute.A container shares the operating system of the physical machine running it.

Un conteneur d'une application comporte le code binaire de l'application et les librairies requises par l'application. De ce fait le conteneur assure la portabilité et la cohérence de l’application entre divers environnements. Le conteneur d'une application est autonome et autosuffisant pour s'exécuter.A container of an application contains the binary code of the application and the libraries required by the application. Therefore the container ensures the portability and consistency of the application between various environments. The container of an application is autonomous and self-sufficient to run.

Un conteneur d'interface selon l'invention comporte le code binaire d'une ou plusieurs fonctionnalités assurées par ce conteneur d'interface, tels qu'un code binaire d'un serveur logiciel, d'un démon ou d'une fonction de communication ou de conversion, et des librairies requises par la fonctionnalité.An interface container according to the invention comprises the binary code of one or more functionalities ensured by this interface container, such as a binary code of a software server, of a daemon or of a communication function or conversion, and libraries required by the functionality.

Le dispositif client pouvant être utilisé dans le contexte de l'invention est un dispositif permettant l'accès à un site web, tel qu'un ordinateur, une tablette, un téléphone ou tout autre terminal utilisateur connecté.The client device that can be used in the context of the invention is a device allowing access to a website, such as a computer, a tablet, a telephone or any other connected user terminal.

L'invention permet de gérer différents types d'événement, par exemple des événements d’affichage, d’impression, de son...The invention makes it possible to manage different types of event, for example display, printing, sound events, etc.

Après l'exécution de l'étape de démarrage d'un module de traitement selon l'invention, le conteneur d'interface offre une couche logicielle permettant l’accès, à un utilisateur, via une interface de son dispositif client, à une application déployée dans un conteneur d’application et pouvant traiter des événements provenant de périphériques d'entrée du dispositif client et/ou générer des événements destinés à des périphériques de sortie du dispositif client.After the execution of the start-up step of a processing module according to the invention, the interface container offers a software layer allowing access, to a user, via an interface of his client device, to an application deployed in an application container and capable of processing events coming from input devices of the client device and / or generating events intended for output devices of the client device.

Le conteneur d'interface constitue alors une interface entre le dispositif client et une application d'un conteneur d'application, l'application étant choisie par l'utilisateur. Ceci permet de renforcer la sécurité de l'utilisation de l'application en fournissant une isolation entre le conteneur d'interface et le conteneur d'application.The interface container then constitutes an interface between the client device and an application of an application container, the application being chosen by the user. This makes it safer to use the application by providing isolation between the interface container and the application container.

L'invention permet d'utiliser à distance des applications nécessitant de communiquer avec des périphériques du dispositif client, sans nécessiter l'ensemble des ressources nécessaires à l'utilisation d'une machine virtuelle.The invention makes it possible to remotely use applications requiring communication with peripherals of the client device, without requiring all of the resources necessary for the use of a virtual machine.

L'invention peut être utilisée pour le télétravail. Un employeur ayant un dispositif client peut utiliser à distance et d'une façon sécurisée, des applications hébergées dans un réseau interne de l'entreprise, sans avoir besoin d'installer ces applications sur un dispositif client de l'employeur ou d'installer une machine virtuelle sur un serveur du réseau interne de l'entreprise. L'employeur peut accéder à une application hébergée dans le réseau interne via un navigateur web de son dispositif client. Le navigateur web assure différentes fonctions d'interface, par exemple une fonction d'affichage, en traitant des événements, par exemple des évènements d'affichage, générés par l'application.The invention can be used for teleworking. An employer with a client device can remotely and securely use applications hosted on an internal company network, without having to install these applications on an employer client device or install a virtual machine on a server of the internal company network. The employer can access an application hosted on the internal network via a web browser from their client device. The web browser provides various interface functions, for example a display function, by processing events, for example display events, generated by the application.

L'invention peut aussi être utilisée pour permettre à un prestataire externe à une entreprise, un accès temporaire à des applications utilisées au sein du réseau interne de l'entreprise sans avoir besoin d'utiliser un dispositif client de l'entreprise. L'invention permet en effet la mise à disposition d'un poste de travail sécurisé. Le prestataire n'a besoin que de se connecter au conteneur d'interface pour pouvoir accéder à une application conteneurisée.The invention can also be used to allow a service provider external to a company, temporary access to applications used within the internal network of the company without the need to use a client device of the company. The invention indeed allows the provision of a secure workstation. The provider only needs to connect to the interface container to be able to access a containerized application.

L'invention peut aussi être utilisée pour des sessions de formation. L'invention permet de proposer un poste de travail en ligne à chaque internaute, disposant de plusieurs applications nécessaires pour travailler.The invention can also be used for training sessions. The invention makes it possible to offer an online workstation to each Internet user, having several applications necessary for working.

Dans un mode de réalisation, l'application déployée dans un conteneur d'application est accessible via un navigateur web du dispositif client. Un utilisateur consulte, au moyen d'un dispositif client, un site web prédéfini via un navigateur web du dispositif client, au moyen par exemple d'une adresse prédéfinie, et s'authentifie pour se connecter à un conteneur d'interface. Le conteneur d'interface peut communiquer avec un ou plusieurs conteneurs d'application sur requête de l'utilisateur, via le dispositif client. Un utilisateur peut ainsi interagir avec une application déployée dans un conteneur d'application à travers le conteneur d'interface.In one embodiment, the application deployed in an application container is accessible via a web browser of the client device. A user consults, by means of a client device, a predefined website via a web browser of the client device, for example by means of a predefined address, and authenticates himself in order to connect to an interface container. The interface container can communicate with one or more application containers at the request of the user, via the client device. A user can thus interact with an application deployed in an application container through the interface container.

De ce fait, l'accès à une application selon l'invention est simple et rapide.Therefore, access to an application according to the invention is simple and quick.

Le conteneur d'application et le conteneur d'interface peuvent être mis en œuvre dans un réseau en nuage.The application container and the interface container can be implemented in a cloud network.

Dans un mode de réalisation de l'invention, un utilisateur accède, en utilisant un dispositif client, à un site web consultable sur un navigateur web par exemple de type HTML, par exemple un navigateur de type Google Chrome, Firefox, Opéra 12 ou Safari 6 (marques déposées) supportant le langage HTML5 (version 5.2 du HTML datée du 21 décembre 2017).In one embodiment of the invention, a user accesses, using a client device, a website that can be viewed on a web browser, for example of the HTML type, for example a browser of the Google Chrome, Firefox, Opera 12 or Safari type. 6 (registered trademarks) supporting the HTML5 language (version 5.2 of HTML dated December 21, 2017).

Dans un mode particulier de réalisation de l'invention, un conteneur d'application ne déploie qu'une seule application, ce qui garantit un niveau de sécurité supplémentaire. En effet, les conteneurs sont étanches les uns par rapport aux autres. Par exemple, si une application déployée dans un conteneur dédié est corrompue (virus, espionnage, ou autre faille de sécurité), la propagation de la corruption se limite à l'environnement d’exécution de l'application corrompue, donc à son propre conteneur, et n'impacte pas les autres applications déployées dans un autre conteneur.In a particular embodiment of the invention, an application container deploys only one application, which guarantees an additional level of security. In fact, the containers are tight relative to each other. For example, if an application deployed in a dedicated container is corrupted (virus, spy, or other security breach), the spread of corruption is limited to the execution environment of the corrupted application, therefore to its own container. , and does not impact other applications deployed in another container.

Toutefois, on peut aussi envisager qu'un conteneur d'application déploie plusieurs applications. Une propagation de la corruption d’une application déployée dans un conteneur se limite aux autres applications déployées dans le même conteneur.However, it is also conceivable that an application container deploys several applications. A spread of corruption of an application deployed in a container is limited to other applications deployed in the same container.

Le conteneur d'interface peut communiquer avec plusieurs conteneurs d'application.The interface container can communicate with several application containers.

Corrélativement, l'invention vise un dispositif permettant à un dispositif client d'accéder à une application, ce dispositif exécute un conteneur, dit conteneur d’interface et comporte :Correlatively, the invention relates to a device allowing a client device to access an application, this device executes a container, called an interface container and comprises:

— un module de traitement configuré pour obtenir un événement destiné à un périphérique de sortie du dispositif client et généré par une application s'exécutant dans un conteneur d'application ; et — un module de communication configuré pour générer et envoyer, sur obtention d'un événement destiné à un périphérique de sortie du dispositif client, au moins un message obtenu à partir de l’événement, destiné à et interprétable par le dispositif client.- a processing module configured to obtain an event intended for an output device of the client device and generated by an application executing in an application container; and - a communication module configured to generate and send, on obtaining an event intended for an output device of the client device, at least one message obtained from the event, intended for and interpretable by the client device.

Dans un mode de réalisation, le module de traitement du conteneur d'interface est un module logiciel.In one embodiment, the processing module of the interface container is a software module.

Les caractéristiques et avantages du dispositif selon l'invention présentés ci-après s'appliquent de la même façon au procédé selon l'invention.The characteristics and advantages of the device according to the invention presented below apply in the same way to the method according to the invention.

Dans un mode de réalisation, le dispositif permettant à un dispositif client d'accéder à une application comporte en outre :In one embodiment, the device allowing a client device to access an application further comprises:

— un module de communication configuré pour obtenir un événement généré par un périphérique d'entrée du dispositif client; et — un module de traitement configuré pour générer et envoyer, sur obtention d'un événement généré par un périphérique d'entrée, au moins un message obtenu à partir de l'événement, destiné pour et pouvant être traité par une application s'exécutant dans un conteneur d'application.- a communication module configured to obtain an event generated by an input device of the client device; and a processing module configured to generate and send, on obtaining an event generated by an input device, at least one message obtained from the event, intended for and capable of being processed by an application executing in an application container.

Le dispositif conforme à l'invention permet au dispositif client d'utiliser une application, générant ou traitant des événements relatifs à des périphériques d'entrée ou de sortie du dispositif client, sans qu'elle soit installée sur le dispositif client et sans avoir besoin d'installer une machine virtuelle sur un serveur accessible par le dispositif client.The device according to the invention allows the client device to use an application, generating or processing events relating to input or output devices of the client device, without it being installed on the client device and without needing install a virtual machine on a server accessible by the client device.

Dans un mode de réalisation, les modules de traitement et de communication exécutent des démons s'exécutant dans le conteneur d'interface.In one embodiment, the processing and communication modules execute daemons running in the interface container.

On rappelle qu'un démon est un processus qui n'a pas d'interface avec un utilisateur et peut être référé comme un processus machine à machine (M2M).It is recalled that a daemon is a process which has no interface with a user and can be referred to as a machine to machine (M2M) process.

Dans un mode de réalisation, le module de traitement configuré pour obtenir un événement destiné à un périphérique de sortie du dispositif client est le même que le module de traitement configuré pour générer et envoyer au moins un message obtenu à partir d’un événement généré par un périphérique d'entrée du dispositif client.In one embodiment, the processing module configured to obtain an event intended for an output device of the client device is the same as the processing module configured to generate and send at least one message obtained from an event generated by an input device of the client device.

Dans un mode de réalisation, le module de communication configuré pour générer et envoyer au moins un message obtenu à partir d'un événement destiné à un périphérique de sortie du dispositif client, est le même que le module de communication configuré pour obtenir un événement généré par un périphérique d'entrée du dispositif client.In one embodiment, the communication module configured to generate and send at least one message obtained from an event intended for an output device of the client device, is the same as the communication module configured to obtain a generated event by an input device of the client device.

Le dispositif selon l'invention peut être mis en œuvre dans un réseau en nuage (cloud).The device according to the invention can be implemented in a cloud network (cloud).

Il peut être placé en coupure entre le dispositif client et une machine exécutant un conteneur d’application.It can be placed in a break between the client device and a machine running an application container.

Dans un mode de réalisation, le dispositif selon l'invention comporte en outre un module de conversion placé en coupure entre un module de traitement et un module de communication, le module de conversion étant configuré pour:In one embodiment, the device according to the invention further comprises a conversion module placed in the cut-off between a processing module and a communication module, the conversion module being configured for:

— convertir le format d'un événement généré par une application et destiné à un périphérique de sortie, en un format supporté par le module de communication; ou/et pour — convertir le format d'un événement généré par un périphérique d'entrée du dispositif client en un format supporté par le module de traitement.- convert the format of an event generated by an application and intended for an output device, into a format supported by the communication module; or / and to - convert the format of an event generated by an input device of the client device into a format supported by the processing module.

Le module de conversion joue alors le rôle d'intermédiaire entre un module de traitement et un module de communication ne supportant pas un même standard de communication. Le dispositif conforme à l'invention peut donc présenter des ports côté dispositif client et des ports côté machine exécutant un conteneur d'application de natures différentes.The conversion module then acts as an intermediary between a processing module and a communication module that does not support the same communication standard. The device according to the invention can therefore have ports on the client device side and ports on the machine side executing an application container of different types.

Dans un mode de réalisation, des communications internes au dispositif permettant à un dispositif client d’accéder à une application sont régies par des sockets de type fichier. Ces communications internes sont les communications entre le module de communication et le module de traitement, et éventuellement entre le module de communication et le module de conversion et entre le module de conversion et le module de traitement.In one embodiment, communications internal to the device allowing a client device to access an application are governed by file type sockets. These internal communications are the communications between the communication module and the processing module, and possibly between the communication module and the conversion module and between the conversion module and the processing module.

Comme il est plus difficile d’intercepter des sockets de type fichier que des sockets exportés du dispositif permettant l'accès à une application vers un réseau, tels que des sockets TCP, ce mode de réalisation permet alors de renforcer la sécurité informatique de l'invention.As it is more difficult to intercept file type sockets than sockets exported from the device allowing access to an application to a network, such as TCP sockets, this embodiment then makes it possible to reinforce the computer security of the invention.

Dans un mode de réalisation de l'invention, le conteneur d'interface, exécuté par le dispositif permettant d’accéder à une application, assure au moins un service parmi un service d'affichage, un service d'impression, un service de son, et un service de transfert de fichiers. Cette liste de services est non limitative. En pratique, chacun de ces services peut être mis en œuvre par un démon s'exécutant dans le conteneur d'interface.In one embodiment of the invention, the interface container, executed by the device allowing access to an application, provides at least one service from a display service, a print service, a sound service , and a file transfer service. This list of services is not exhaustive. In practice, each of these services can be implemented by a daemon running in the interface container.

L'invention permet donc de centraliser des modules de traitement des événements d'affichage, d'impression, de son, de transfert de fichiers ou autres serveurs logiciels, au niveau du conteneur d'interface, et d'implémenter des clients à ces modules de traitement, en fonction du besoin de chaque application, au niveau des conteneurs d'application.The invention therefore makes it possible to centralize modules for processing display, printing, sound, file transfer or other software server events, at the interface container level, and to implement clients for these modules. processing, depending on the need for each application, at the level of the application containers.

De ce fait, un démon requis pour au moins deux applications différentes, tel qu'un module de traitement d'un événement d'impression, peut être partagé, en déployant le démon partagé dans le conteneur d'interface et en connectant le conteneur d'interface à au moins deux conteneurs d'application, déployant chacun une application.As a result, a daemon required for at least two different applications, such as a print event processing module, can be shared, by deploying the shared daemon in the interface container and connecting the container d interface to at least two application containers, each deploying an application.

Dans un mode de réalisation, le module de traitement est un serveur d'affichage configuré pour obtenir au moins un événement d'affichage généré par l’application et destiné à un écran du dispositif client.In one embodiment, the processing module is a display server configured to obtain at least one display event generated by the application and intended for a screen of the client device.

Le conteneur d'interface offre une interface graphique avec laquelle l'utilisateur peut interagir.The interface container provides a graphical interface with which the user can interact.

L'utilisateur du dispositif client peut ainsi bénéficier d'une interface graphique de l'application déployée dans un conteneur.The user of the client device can thus benefit from a graphical interface of the application deployed in a container.

Conformément à l'invention un écran du dispositif client désigne un écran physique, éventuellement tactile, ou un vidéo projecteur, ou autre périphérique d'affichage.According to the invention, a screen of the client device designates a physical screen, possibly a touch screen, or a video projector, or other display device.

Dans un exemple d'implémentation de l'invention, le module de traitement d'un événement d'affichage est un serveur X.org, version Xll, v.11.0 (marque déposée).In an exemplary implementation of the invention, the module for processing a display event is an X.org server, version Xll, v.11.0 (registered trademark).

Ce module de traitement implémente la gestion de l'écran, de la souris et du clavier du dispositif client.This processing module implements the management of the screen, the mouse and the keyboard of the client device.

Dans un mode de réalisation, le dispositif permettant à un dispositif client d’accéder à une application comporte en outre, un module configuré pour adapter le message obtenu à partir d'un événement d'affichage et destiné à l'écran du dispositif client à un paramètre d'affichage dudit écran (taille, résolution,...).In one embodiment, the device allowing a client device to access an application further comprises a module configured to adapt the message obtained from a display event and intended for the screen of the client device to a display parameter for said screen (size, resolution, etc.).

L'invention peut donc être utilisée par des dispositifs clients de différents tailles d'écran et ayant différentes résolutions graphiques. De plus, pour un dispositif client donné, l'affichage s'adapte à une modification ou un changement générés par une action de l'utilisateur, par exemple une modification de la résolution d'écran du dispositif client ou un changement de taille d'une fenêtre du navigateur.The invention can therefore be used by client devices of different screen sizes and having different graphic resolutions. In addition, for a given client device, the display adapts to a modification or change generated by a user action, for example a modification of the screen resolution of the client device or a change in screen size. a browser window.

Le module configuré pour adapter le message obtenu à partir de l'événement d'affichage peut contrôler l’exécution de l’application, par exemple en fermant une fenêtre d’interface graphique de l’application.The module configured to adapt the message obtained from the display event can control the execution of the application, for example by closing a window in the application's graphical interface.

Dans une implémentation particulière, le module d’adaptation relatif à l’affichage est de type RPC (Remote Procedure Call).In a particular implementation, the display adaptation module is of the RPC (Remote Procedure Call) type.

Dans un mode de réalisation, le module de traitement est un serveur de son configuré pour obtenir au moins un événement de type son généré par l’application et destiné à un périphérique de sortie de son du dispositif client.In one embodiment, the processing module is a sound server configured to obtain at least one sound type event generated by the application and intended for a sound output device of the client device.

Dans un mode de réalisation, le module de traitement est un serveur d'impression configuré pour obtenir au moins un événement d'impression généré par l’application et destiné à une imprimante connectée au dispositif client.In one embodiment, the processing module is a print server configured to obtain at least one print event generated by the application and intended for a printer connected to the client device.

Ce mode permet l'impression, par le dispositif client ou par une imprimante connectée au dispositif client, des documents obtenus par une application déployée dans un conteneur.This mode allows documents obtained by an application deployed in a container to be printed by the client device or by a printer connected to the client device.

Dans un mode de réalisation, le dispositif permettant à un dispositif client d'accéder à une application comporte en outre un module configuré pour transférer au moins un fichier du dispositif client vers ou depuis un espace de stockage.In one embodiment, the device allowing a client device to access an application further comprises a module configured to transfer at least one file from the client device to or from a storage space.

L’espace de stockage peut être compris dans un réseau en nuage et repéré par une adresse logique d'une ressource réseau de stockage, par exemple un chemin d'accès réseau à un dossier.The storage space can be included in a cloud network and identified by a logical address of a storage network resource, for example a network path to a folder.

L’espace de stockage peut être un volume local au dispositif permettant à un dispositif client d'accéder à une application, par exemple un répertoire.The storage space can be a volume local to the device allowing a client device to access an application, for example a directory.

Ce mode de réalisation permet à un utilisateur de stocker des fichiers ou des documents dans un espace de stockage externe au dispositif client et de récupérer des fichiers de l’espace de stockage d’une façon sécurisée à travers le conteneur d’interface.This embodiment allows a user to store files or documents in a storage space external to the client device and to recover files from the storage space in a secure manner through the interface container.

L’espace de stockage peut être partagé par plusieurs utilisateurs.The storage space can be shared by several users.

L'invention vise aussi un système permettant à un dispositif client d'accéder à une application, le système comportant :The invention also relates to a system allowing a client device to access an application, the system comprising:

— un dispositif permettant à un dispositif client d'accéder à une application, tel que décrit précédemment; et — un dispositif serveur comportant un module de gestion apte à gérer :- a device allowing a client device to access an application, as described above; and a server device comprising a management module capable of managing:

o un conteneur d'interface tel que décrit précédemment; et o au moins un conteneur d'une application accessible par le dispositif client, ladite application étant configurée pour générer des événements destinés à des périphériques de sortie du dispositif client via le conteneur d'interface.o an interface container as described above; and o at least one container of an application accessible by the client device, said application being configured to generate events intended for output devices of the client device via the interface container.

Le dispositif serveur est ici une machine physique, par exemple un ordinateur. On utilise l'expression « dispositif serveur » pour le distinguer d'un serveur logiciel tel qu'un module de traitement compris dans un conteneur d'interface.The server device here is a physical machine, for example a computer. The expression “server device” is used to distinguish it from a software server such as a processing module included in an interface container.

Dans un mode de réalisation de l'invention, le site web permettant l'accès au conteneur d'interface est hébergé dans le dispositif serveur du système selon l'invention.In one embodiment of the invention, the website allowing access to the interface container is hosted in the server device of the system according to the invention.

Dans un mode de réalisation de l'invention, le dispositif serveur comporte un module d'authentification de l'utilisateur du dispositif client et un module configuré pour créer, autrement dit instancier, le conteneur d’interface, pour cet utilisateur, suite à une authentification de l’utilisateur.In one embodiment of the invention, the server device comprises a module for authenticating the user of the client device and a module configured to create, in other words instantiate, the interface container, for this user, following a user authentication.

Le dispositif serveur crée le conteneur d’interface à partir d’une image de référence compatible avec son système d’exploitation.The server device creates the interface container from a reference image compatible with its operating system.

Le conteneur d'interface et le conteneur d'application peuvent être exécutés par des machines physiques distinctes.The interface container and the application container can be run by separate physical machines.

Le conteneur d'interface et le conteneur d'application peuvent être tous les deux exécutés par le dispositif serveur, ou par une autre même machine physique, par exemple mise en œuvre dans un réseau cloud. Dans ce cas, la latence de communication entre les conteneurs d'interface et d'application est donc réduite.The interface container and the application container can both be executed by the server device, or by another same physical machine, for example implemented in a cloud network. In this case, the communication latency between the interface and application containers is therefore reduced.

Dans un mode de réalisation, l'authentification d'un utilisateur du dispositif client est régie par un protocole choisi parmi les protocoles oAuth, Kerberos (Active Directory) et LDAP.In one embodiment, the authentication of a user of the client device is governed by a protocol chosen from the oAuth, Kerberos (Active Directory) and LDAP protocols.

Différents niveaux de sécurité d'utilisation de l'invention peuvent ainsi être envisagés.Different levels of security of use of the invention can thus be envisaged.

L'invention vise également un programme d'ordinateur sur un support d'enregistrement, ce programme étant susceptible d'être mis en œuvre dans un dispositif selon l'invention, ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la gestion d'au moins une application telle que décrite ci-dessus.The invention also relates to a computer program on a recording medium, this program being capable of being implemented in a device according to the invention, or more generally in a computer, this program comprising instructions adapted to the management of at least one application as described above.

Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other desirable form.

L'invention vise aussi des supports d’information ou d'enregistrement lisibles par un ordinateur, et comportant des instructions du programme d’ordinateur tel que mentionné cidessus.The invention also relates to information or recording media readable by a computer, and comprising instructions of the computer program as mentioned above.

Les supports d'information ou d'enregistrement peuvent être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, les supports peuvent comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy dise), un disque dur ou une mémoire flash.The information or recording media can be any entity or device capable of storing the program. For example, the supports may include a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or else a magnetic recording means, for example a floppy disk, a disc hard drive or flash memory.

D'autre part, les supports d’information ou d'enregistrement peuvent être des supports transmissibles tels qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par lien radio, par lien optique sans fil ou par d'autres moyens. Les programmes selon l'invention peuvent être en particulier téléchargés sur un réseau de type Internet.On the other hand, the information or recording media can be transmissible media such as an electrical or optical signal, which can be routed via an electrical or optical cable, by radio link, by wireless optical link or by other ways. The programs according to the invention can in particular be downloaded from a network of the Internet type.

Alternativement, chaque support d'informations ou d'enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution de la méthode en question.Alternatively, each information or recording medium can be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.

Brève description des dessinsBrief description of the drawings

D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures :Other characteristics and advantages of the present invention will emerge from the description given below, with reference to the appended drawings which illustrate an embodiment thereof devoid of any limiting character. In the figures:

— La figure 1 illustre une architecture d'un dispositif selon l'invention et d'un système selon l'invention selon un mode de réalisation;- Figure 1 illustrates an architecture of a device according to the invention and of a system according to the invention according to an embodiment;

— La figure 2 est un organigramme représentant des étapes d'un procédé conforme à un mode de réalisation de l'invention dans un contexte particulier de mise en œuvre;- Figure 2 is a flowchart representing steps of a method according to an embodiment of the invention in a particular context of implementation;

— La figure 3 illustre l'architecture matérielle d'un dispositif selon un mode de réalisation de l'invention;- Figure 3 illustrates the hardware architecture of a device according to an embodiment of the invention;

— La figure 4 présente l'architecture fonctionnelle d'un dispositif selon un mode de réalisation de l'invention; et — La figure 5 présente une architecture fonctionnelle d'un dispositif serveur compris dans un système selon un mode de réalisation de l'invention.- Figure 4 shows the functional architecture of a device according to an embodiment of the invention; and - Figure 5 shows a functional architecture of a server device included in a system according to an embodiment of the invention.

Description détailléedetailed description

La figure 1 présente l'architecture fonctionnelle d'un conteneur d'interface C_IF, d'un conteneur d'application C_APP, et l'architecture d'un dispositif DA et d'un système SA conformes à un mode de réalisation de l'invention, ce dispositif DA et ce système SA permettant à un dispositif client CLT d’accéder à une application APP distante.FIG. 1 presents the functional architecture of an interface container C_IF, of an application container C_APP, and the architecture of a device DA and of a system SA conforming to an embodiment of the invention, this device DA and this system SA allowing a client device CLT to access a remote APP application.

On se place ici dans un contexte dans lequel les différents modules de traitement du conteneur d'interface ont été démarrés suite à l'authentification d'un utilisateur du dispositif client. Ces étapes sont décrites ultérieurement en référence à la figure 2.We place ourselves here in a context in which the various processing modules of the interface container were started following the authentication of a user of the client device. These steps are described later with reference to Figure 2.

Dans ce mode de réalisation, le dispositif client CLT est un ordinateur comportant des périphériques d'entrée, tels qu'une souris, un clavier KB et un microphone MICRO, et des périphériques de sortie tels qu'un écran DISP, une imprimante PRN et un haut-parleur SND.In this embodiment, the CLT client device is a computer comprising input devices, such as a mouse, a KB keyboard and a MICRO microphone, and output devices such as a DISP screen, a PRN printer and an SND speaker.

Le dispositif client CLT communique avec un dispositif serveur SRV mis en œuvre dans un réseau en nuage selon le protocole HTTPS. En variante, il est notamment possible d'utiliser le protocole HTTP. D'autres protocoles sont envisageables.The CLT client device communicates with an SRV server device implemented in a cloud network according to the HTTPS protocol. As a variant, it is in particular possible to use the HTTP protocol. Other protocols are possible.

En particulier, le dispositif client CLT consulte, via un navigateur web installé sur le dispositif client, un site web prédéfini accessible via le dispositif serveur SRV.In particular, the CLT client device consults, via a web browser installed on the client device, a predefined website accessible via the SRV server device.

Le dispositif serveur SRV comporte un module de gestion de conteneurs MGC (figure 5). Suite à une demande du dispositif client CLT exprimée sur le site web, ce module instancie un conteneur d'interface C_IF. Dans ce mode de réalisation, le serveur SRV communique avec le conteneur d'interface C_IF en HTTPS.The SRV server device includes a MGC container management module (Figure 5). Following a request from the CLT client device expressed on the website, this module instantiates a C_IF interface container. In this embodiment, the SRV server communicates with the interface container C_IF in HTTPS.

Le conteneur d'interface C_IF est exécuté par le dispositif DA conforme à l'invention. Ce dispositif DA permet à l'utilisateur du dispositif client d'accéder, via son navigateur web et le serveur SRV, à une application APP s'exécutant dans un conteneur d'application C_APP.The interface container C_IF is executed by the device DA according to the invention. This DA device allows the user of the client device to access, via their web browser and the SRV server, an APP application executing in an application container C_APP.

Dans le mode de réalisation décrit, l'application APP s'exécute sur une machine physique MPhy.In the embodiment described, the APP application is executed on a physical machine MPhy.

Plus précisément, d'une façon générale et comme ultérieurement décrit en référence à la figure 2, dans ce mode de réalisation, plusieurs démons sont démarrés dans le conteneur d'interface C-IF, pour l'utilisateur suite à son authentification, chacun de ces démons étant configuré pour attendre des événements de différents types (affichage, son, impression, ...) susceptibles d'être générés par des applications s'exécutant dans des conteneurs d'application, et pour envoyer, sur réception de tels événements, des messages au dispositif client pour que les événements soient restitués par des périphériques de sortie.More specifically, in general and as subsequently described with reference to FIG. 2, in this embodiment, several daemons are started in the interface container C-IF, for the user following his authentication, each of these daemons being configured to wait for events of different types (display, sound, printing, etc.) capable of being generated by applications executing in application containers, and to send, upon receipt of such events, messages to the client device for events to be output by output devices.

Ce dispositif DA peut être mis en œuvre dans un réseau cloud.This DA device can be implemented in a cloud network.

Le dispositif DA peut être le dispositif serveur SRV lui-même.The DA device can be the SRV server device itself.

Dans cet exemple, le conteneur d'interface C_IF comporte un module d'affichage MOD_disp qui comporte un serveur d'affichage s_disp apte à traiter des requêtes comportant des événements d'affichage ev_disp en provenance d'un client d'affichage c_disp de l'application APP. Dans l'exemple de réalisation décrit ici, ce serveur d'affichage s_disp est un démon démarré après l'authentification de l'utilisateur, en attente d'événements d'affichage destinés au dispositif client CLT.In this example, the C_IF interface container includes a MOD_disp display module which includes an s_disp display server capable of processing requests comprising ev_disp display events originating from a c_disp display client of the APP application. In the exemplary embodiment described here, this display server s_disp is a daemon started after authentication of the user, awaiting display events intended for the client device CLT.

On suppose que le conteneur d'application C_APP exécute l'application APP comportant un module graphique se présentant sous la forme d'un client d'affichage c_disp.It is assumed that the application container C_APP executes the application APP comprising a graphics module in the form of a display client c_disp.

Le client d'affichage c-disp implémente la gestion des périphériques de base du dispositif client CLT, tels que l'écran DISP, la souris et le clavier KBThe c-disp display client implements the management of the basic devices of the CLT client device, such as the DISP screen, the mouse and the KB keyboard.

Dans ce mode de réalisation, le serveur d'affichage s_disp est un serveur X Windows System dont l'implémentation est X.org. Le serveur X utilise le module xf86-video-dummy pour créer un environnement graphique virtuel, dépourvu de carte d'écran physique.In this embodiment, the s_disp display server is an X Windows System server, the implementation of which is X.org. The X server uses the xf86-video-dummy module to create a virtual graphics environment, devoid of a physical screen card.

Le serveur d'affichage s_disp implémenté sous la forme de X.org peut être démarré selon la commande :The s_disp display server implemented as X.org can be started according to the command:

X.org -nolisten tcp -dpi 96 +extension RANDR -logfile /home/balloon/.logs/X.org.log -config /composer/X.org.conf :0X.org -nolisten tcp -dpi 96 + RANDR extension -logfile /home/balloon/.logs/X.org.log -config /composer/X.org.conf: 0

Dans ce mode de réalisation, le serveur X Windows System utilise le protocole Xll et le conteneur d'interface C_IF communique selon le protocole HTTPS avec le dispositif serveur SRV.In this embodiment, the Windows System X server uses the Xll protocol and the C_IF interface container communicates according to the HTTPS protocol with the SRV server device.

Dans ce mode de réalisation, le module d'affichage MOD_disp déployé par le conteneur d'interface C_IF comporte, comme présenté sur la figure 1 :In this embodiment, the MOD_disp display module deployed by the C_IF interface container comprises, as shown in FIG. 1:

le serveur d'affichage s_disp;the s_disp display server;

un module de conversion conv-disp configuré pour convertir des données reçues selon un premier protocole du client d'affichage c-disp, via le serveur d'affichage s-disp en des données destinées au dispositif client CLT et formatées selon un deuxième protocole et vice versa; et un module de communication comm_disp configuré pour communiquer avec le dispositif client CLT. Il est notamment configuré pour transmettre au navigateur web du dispositif client CLT des messages MSG_CLT générés par le serveur d'affichage s_dispa conv-disp conversion module configured to convert data received according to a first protocol from the display client c-disp, via the display server s-disp into data intended for the client device CLT and formatted according to a second protocol and vice versa; and a comm_disp communication module configured to communicate with the CLT client device. It is notably configured to transmit to the web browser of the CLT client device MSG_CLT messages generated by the display server s_disp

Dans le mode de réalisation décrit, le module de conversion conv-disp exécute le logiciel xllvnc pour convertir des données selon le protocole Xll en des données en protocole RFB (Remote Frame Buffer) et vice versa, RFB étant le protocole utilisé pour un serveur VNC (Virtual Network Computing)(non représenté sur la figure 2) ; par défaut un serveur VNC envoie/reçoit des sockets de type TCP.In the embodiment described, the conv-disp conversion module executes the xllvnc software to convert data according to the Xll protocol into data in RFB (Remote Frame Buffer) protocol and vice versa, RFB being the protocol used for a VNC server (Virtual Network Computing) (not shown in Figure 2); by default a VNC server sends / receives TCP type sockets.

Dans le mode de réalisation décrit, le module de communication comm_disp exécute une application Websockify qui permet de convertir des sockets de type TCP en des websockets supportées par le protocole HTTPS et interprétables par le navigateur web HTML5 du dispositif client CLT.In the embodiment described, the comm_disp communication module executes a Websockify application which makes it possible to convert TCP type sockets into websockets supported by the HTTPS protocol and interpretable by the HTML5 web browser of the CLT client device.

Dans ce mode de réalisation, le module de conversion conv-disp exécute la version 0.9.14 du processus xllvnc.In this embodiment, the conv-disp conversion module runs version 0.9.14 of the xllvnc process.

Dans ce mode de réalisation, le module de communication comm-disp exécute la version 1.0 du processus websokify.In this embodiment, the comm-disp communication module executes version 1.0 of the websokify process.

Dans ce mode de réalisation, le serveur d'affichage s_disp, le module de conversion conv_disp et le module de communication comm_disp sont des démons compris dans le conteneur d'interface C-IF et exécutés par le dispositif DA. Le module d'affichage MOD_disp comporte ces trois démons s_disp, comv_disp et comm_disp permettant la gestion des événements d'affichage.In this embodiment, the display server s_disp, the conversion module conv_disp and the communication module comm_disp are daemons included in the interface container C-IF and executed by the device DA. The MOD_disp display module includes these three s_disp, comv_disp and comm_disp daemons for managing display events.

Pour réduire la surface d'attaque et optimiser la charge du réseau, le serveur s_disp communique avec le client c_disp déployé par le conteneur d'application C_APP par des sockets ; les communications internes au module d'affichage MOD_disp sont aussi régies par des sockets ; le module de communication comm_disp est le seul à exporter ses services à l'extérieur du module MOD_Disp.To reduce the attack surface and optimize the network load, the s_disp server communicates with the c_disp client deployed by the C_APP application container by sockets; internal communications in the MOD_disp display module are also governed by sockets; the comm_disp communication module is the only one to export its services outside the MOD_Disp module.

Dans ce mode de réalisation, ce module comm_disp communique en RFB avec le dispositif serveur SRV via le portTCP/IP 6081.In this embodiment, this comm_disp module communicates in RFB with the server device SRV via the portTCP / IP 6081.

Dans ce mode de réalisation, la ligne de commande permettant le lancement de l'exécution du logiciel xllvnc du conteneur d'interface C_IF est : xllvnc -display :0 -xkb -noxinerama -shared -xrandr -nolookup -nopw -forever -unixsockonly /tmp/.unixxllvncIn this embodiment, the command line allowing the launch of the execution of the software xllvnc of the interface container C_IF is: xllvnc -display: 0 -xkb -noxinerama -shared -xrandr -nolookup -nopw -forever -unixsockonly / tmp / .unixxllvnc

Dans ce mode de réalisation, la ligne de commande permettant l'exécution de websockify au démarrage du conteneur d'interface C_IF est : python /composer/noVNC/utils/websockify/websockify.py -unix-target /tmp/.unixxllvnc 6081In this embodiment, the command line allowing the execution of websockify when the C_IF interface container is started is: python /composer/noVNC/utils/websockify/websockify.py -unix-target /tmp/.unixxllvnc 6081

Le navigateur web du dispositif client CLT est configuré pour recevoir des messages MSG-CLT transmis par le module comm_disp. Ces messages sont par exemple transmis via une librairie javascript VNC « no-vnc » du navigateur. La librairie no-vnc se charge de la réception des messages MSG_CLT relatifs à l'affichage sur l'écran DISP du dispositif client, et de la transmission au serveur SRV, d'événements ev_lect émis par le clavier KB ou par la souris du dispositif client CLT.The web browser of the CLT client device is configured to receive MSG-CLT messages transmitted by the comm_disp module. These messages are for example transmitted via a VNC “no-vnc” javascript library of the browser. The no-vnc library is responsible for receiving MSG_CLT messages relating to the display on the DISP screen of the client device, and for transmitting to the SRV server, ev_lect events sent by the KB keyboard or by the device mouse. CLT customer.

Dans ce mode de réalisation, le module graphique c_disp du conteneur d'application C_APP comporte un client c_disp de type application Xll. Ce client de type application Xll communique par des sockets avec le serveur X.org tel que décrit précédemment.In this embodiment, the graphic module c_disp of the application container C_APP comprises a client c_disp of the application type Xll. This Xll application type client communicates by sockets with the X.org server as described above.

Le client de type application Xll communique avec le serveur d'affichage X.org soit par des sockets de type fichier présents dans un volume temporaire partagé entre le conteneur d'interface C_IF et le conteneur d'application C_APP, par exemple un volume tmp, soit par des sockets de type réseau TCP/IP. Les communications entre le serveur s_disp et le client d'affichage c_disp sont plus sécurisées dans le cas où les sockets sont de type fichier.The Xll application type client communicates with the X.org display server either by file type sockets present in a temporary volume shared between the C_IF interface container and the C_APP application container, for example a tmp volume, either by TCP / IP network type sockets. Communication between the s_disp server and the c_disp display client is more secure in the case where the sockets are of type file.

Conformément au procédé d'accès selon l'invention décrit ultérieurement en référence à la figure 2, le conteneur d'interface C_IF, et plus précisément son module s_disp, obtient les événements d'affichage ev_disp générés par l'application déployée par le conteneur C_APP et envoyées par le module c_disp du conteneur C_APP. Chacun de ces événements ev_disp est destiné au périphérique d'affichage DISP du dispositif client CLT.According to the access method according to the invention described later with reference to FIG. 2, the interface container C_IF, and more precisely its module s_disp, obtains the display events ev_disp generated by the application deployed by the container C_APP and sent by the module c_disp of the container C_APP. Each of these ev_disp events is intended for the DISP display device of the CLT client device.

L'événement peut être transmis sous forme de socket par le conteneur d'application C_APP. En effet, dans ce mode de réalisation, le conteneur d’interface comporte un volume partagé, nommé tmp. Dans ce volume partagé, le client d'affichage c_disp crée une socket de type fichier nommé X0 dans un répertoire /tmp/.Xll-unix dans le volume partagé tmp. Le serveur d'affichage s_disp détecte la présence de la socket fichier XO dans le répertoire /tmp/.Xll-unix , récupère la socket et obtient l'événement ev_disp.The event can be transmitted as a socket by the C_APP application container. In fact, in this embodiment, the interface container has a shared volume, named tmp. In this shared volume, the c_disp display client creates a file type socket named X0 in a /tmp/.Xll-unix directory in the tmp shared volume. The s_disp display server detects the presence of the XO file socket in the /tmp/.Xll-unix directory, retrieves the socket and obtains the ev_disp event.

Suite à l'obtention de l'événement ev_disp, le conteneur d'interface C_IF, et plus précisément son module comm_disp, génère un message MSG_CLT obtenu à partir de l'événement ev_disp et interprétable par le dispositif client CLT et envoie ce message MSG_CLT à destination du dispositif client CLT en passant par le dispositif serveur SRV.Following the obtaining of the ev_disp event, the interface container C_IF, and more precisely its comm_disp module, generates a message MSG_CLT obtained from the event ev_disp and interpretable by the client device CLT and sends this message MSG_CLT to destination of the CLT client device via the SRV server device.

En addition, le conteneur d'interface C_IF peut recevoir des événements, générés par des périphériques d'entrée du dispositif client CLT.In addition, the interface container C_IF can receive events, generated by input devices of the client device CLT.

Par exemple, le module comm_disp obtient, via le dispositif serveur SRV, un événement evject présentant un flux de données entrées par le clavier KB.For example, the comm_disp module obtains, via the SRV server device, an evject event presenting a stream of data entered by the keyboard KB.

Suite à la réception de cet événement evject généré par un périphérique d'entrée, le module de communication comm_disp le transmet au module de traitement s_disp via le module de conversion conv_disp. Le module de conversion assure la conformité des communications entre le module de communication comm_disp et le module de traitement s_disp, en convertissant, au besoin, le format de ces communications.Following the reception of this evject event generated by an input device, the comm_disp communication module transmits it to the s_disp processing module via the conv_disp conversion module. The conversion module ensures the conformity of communications between the comm_disp communication module and the s_disp processing module, by converting, if necessary, the format of these communications.

Le module s_disp génère au moins un message MSG_APP obtenu à partir de l'événement evject et interprétable par l'application APP déployée par le conteneur C_APP. Le module s_disp du conteneur d'interface C_IF envoie le message MSG_APP au module ç_disp du conteneur d'application C_APP.The s_disp module generates at least one MSG_APP message obtained from the evject event and interpretable by the APP application deployed by the C_APP container. The s_disp module of the C_IF interface container sends the MSG_APP message to the ç_disp module of the C_APP application container.

L'utilisateur peut bénéficier d'un écran virtuel du conteneur d'interface C_IF affiché sur le navigateur web de son dispositif client CLT.The user can benefit from a virtual screen of the C_IF interface container displayed on the web browser of their CLT client device.

Dans l'exemple de la figure 1, le conteneur d'interface C_IF déploie un module s_dim configuré pour adapter un message MSG_CLT à transmettre au dispositif client CLT en fonction d'un paramètre d'affichage de l'écran DISP du dispositif client CLT obtenu à partir d'un événement d'affichage ev_disp transmis par le dispositif client CLTIn the example of FIG. 1, the interface container C_IF deploys an s_dim module configured to adapt a message MSG_CLT to be transmitted to the client device CLT as a function of a display parameter of the screen DISP of the client device CLT obtained. from an ev_disp display event transmitted by the CLT client device

Ce paramètre d'affichage peut être une valeur de résolution graphique de l'écran DISP, la taille de la fenêtre du navigateur web du dispositif client CLT, la taille de l'écran DISP ou tout autre paramètre lié à l'affichage sur l'écran DISP du dispositif client CLT.This display parameter can be a graphic resolution value of the DISP screen, the size of the web browser window of the CLT client device, the size of the DISP screen or any other parameter related to the display on the DISP screen of the CLT client device.

Dans ce mode de réalisation, le module s_dim exécute un logiciel assurant un service de type RPC.In this embodiment, the s_dim module executes software providing an RPC type service.

Le module s-dim permet l'utilisation de dispositifs clients CLT de différents types : smartphone, tablette, ordinateur, MAC, etc. L'écran virtuel du conteneur d'interface C_IF affiché sur le navigateur web du dispositif client CLT est redimensionné dynamiquement.The s-dim module allows the use of CLT client devices of different types: smartphone, tablet, computer, MAC, etc. The virtual screen of the C_IF interface container displayed on the web browser of the CLT client device is dynamically resized.

A la première connexion du dispositif client CLT au site web accessible via le serveur SRV, ainsi à chaque modification d'un paramètre d'affichage, par exemple lors d'un redimensionnement de la fenêtre du navigateur web du dispositif client CLT, le navigateur web notifie le conteneur d'interface C_IF de sa nouvelle résolution : le module s_dim obtient, de la part du dispositif client CLT, via le serveur SRV, un événement ev_dim relatif à la résolution graphique.On the first connection of the CLT client device to the website accessible via the SRV server, thus each time a display parameter is modified, for example when resizing the web browser window of the CLT client device, the web browser notifies the C_IF interface container of its new resolution: the s_dim module obtains, from the CLT client device, via the SRV server, an ev_dim event relating to the graphic resolution.

Suite à l'obtention de l'évènement ev_dim, le module s_dim notifie le module d'affichage MOD_disp du conteneur d'interface C_IF, et plus précisément son module s_disp, des nouvelles résolutions graphiques à appliquer. A son tour, le module de traitement s_disp communique les nouvelles résolutions graphiques au module graphique c_disp.Following the obtaining of the ev_dim event, the s_dim module notifies the MOD_disp display module of the C_IF interface container, and more precisely its s_disp module, of the new graphic resolutions to be applied. In turn, the s_disp processing module communicates the new graphics resolutions to the c_disp graphics module.

Dans ce mode de réalisation, le module s_dim déploie un service RPC, nommé dans la suite du document « Spawner » et développé en nodejs (spawner-service.js).In this embodiment, the s_dim module deploys an RPC service, named in the rest of the document "Spawner" and developed in nodejs (spawner-service.js).

Dans ce mode de réalisation, le module s_dim configuré pour adapter un message MSG_CLT relatif à l'affichage à un paramètre d'affichage de l'écran DISP, écoute sur le port TCP 8001, communique en HTTPS avec le dispositif serveur SRV et communique par des sockets avec le serveur d’affichage s_disp.In this embodiment, the s_dim module configured to adapt an MSG_CLT message relating to the display to a display parameter of the DISP screen, listens on TCP port 8001, communicates in HTTPS with the SRV server device and communicates by sockets with the s_disp display server.

Dans ce mode de réalisation, la ligne de commande permettant l'exécution spawnerservice.js au démarrage du conteneur d'interface C_IF est : nodejs /composer/node/spawner-service/spawner-service.jsIn this embodiment, the command line allowing the execution spawnerservice.js when starting the interface container C_IF is: nodejs /composer/node/spawner-service/spawner-service.js

Le module s_dim configuré pour adapter le message MSG_CLT obtenu à partir de l'événement d'affichage ev_disp à un paramètre d'affichage de l'écran DISP, peut contrôler l'exécution de l'application déployée par le conteneur Ç_APP.The s_dim module configured to adapt the MSG_CLT message obtained from the ev_disp display event to a display parameter on the DISP screen, can control the execution of the application deployed by the Ç_APP container.

En effet, le module s_dim, à travers le service Spawner, est capable d'activer le focus sur une application, de terminer une application et de lister les applications présentes sur le bureau virtuel du conteneur d'interface C_IF.Indeed, the s_dim module, through the Spawner service, is able to activate the focus on an application, to terminate an application and to list the applications present on the virtual desktop of the C_IF interface container.

Dans le mode de réalisation présenté à la figure 1, le conteneur d'interface C_IF déploie un module MOD_snd pour gérer des applications qui requièrent des interfaces sonores.In the embodiment presented in Figure 1, the C_IF interface container deploys a MOD_snd module to manage applications that require sound interfaces.

Le module MOD_snd comporte :The MOD_snd module includes:

un module de traitement s_snd configuré pour obtenir au moins un événement de type son ev_snd généré par l'application APP déployée dans le conteneur C_APP et destiné à un périphérique de sortie de son SND du dispositif client CLT, tel que les hauts parleurs SND ; et un module de communication comm_snd configuré pour générer et envoyer au moins un message MSG_CLT obtenu à partir de l'événement ev_snd et destiné à et interprétable par le dispositif client CLT.a processing module s_snd configured to obtain at least one event of sound type ev_snd generated by the application APP deployed in the container C_APP and intended for a device for outputting its SND from the client device CLT, such as the speakers SND; and a comm_snd communication module configured to generate and send at least one MSG_CLT message obtained from the ev_snd event and intended for and interpretable by the CLT client device.

Dans ce mode de réalisation, le serveur s_snd et le module de communication comm_snd sont des démons compris dans le conteneur d’interface C_IF et exécutés par le dispositif DA. Le module de son MOD_snd comporte les démons s_snd et comm_snd.In this embodiment, the server s_snd and the communication module comm_snd are daemons included in the interface container C_IF and executed by the device DA. The MOD_snd sound module includes the s_snd and comm_snd daemons.

Dans l'exemple décrit ici, on suppose que l'application APP s'exécutant dans le conteneur d'application C_APP comporte un client c_snd du serveur de son s_snd.In the example described here, it is assumed that the APP application executing in the application container C_APP comprises a client c_snd of the server of its s_snd.

Dans le mode de réalisation présenté à la figure 1, le serveur de son s_snd est par exemple de type Pulseaudio (logiciel libre du projet freedesktop, version : PulseAudio Sound Server 8.0).In the embodiment presented in FIG. 1, the s_snd sound server is for example of the Pulseaudio type (free software of the freedesktop project, version: PulseAudio Sound Server 8.0).

Afin d'assurer la communication selon le protocole HTTPS entre le conteneur C_IF et le serveur SRV, le module de communication comm_snd exécute un processus de type Live Sound Service.In order to ensure communication using the HTTPS protocol between the container C_IF and the SRV server, the comm_snd communication module executes a Live Sound Service type process.

Le processus Live Sound Service est développé en nodejs.The Live Sound Service process is developed in nodejs.

Le module de communication comm_snd capture le son issu du module s_snd et le transforme en un message MSG_CLT comportant un flux sonore supporté par le navigateur web du dispositif client, par exemple un flux de type WAV ou MP3.The comm_snd communication module captures the sound coming from the s_snd module and transforms it into an MSG_CLT message comprising a sound stream supported by the web browser of the client device, for example a WAV or MP3 type stream.

Le module de communication comm_snd envoie le message MSG_CLT aux hautparleurs SND du dispositif client CLT via le dispositif serveur SRV, selon le protocole HTTPS. Le flux sonore contenu dans le message MSG_CLT peut être détecté par le navigateur web du dispositif client CLT, par une simple balise HTML de type audio. Le message MSG_CLT est restitué par les haut-parleurs SND.The comm_snd communication module sends the message MSG_CLT to the speakers SND of the client device CLT via the server device SRV, according to the HTTPS protocol. The sound flow contained in the MSG_CLT message can be detected by the web browser of the CLT client device, by a simple HTML tag of audio type. The message MSG_CLT is reproduced by the speakers SND.

De la même façon, le processus Live Sound Service exécuté par le module de communication comm_snd peut convertir un fichier ou un flux sonore ev_micro capté par le microphone MICRO du dispositif client CLT via le dispositif serveur SRV selon le protocole HTTPS en un flux sonore régi par un protocole supporté par le serveur s_snd de type Pulseaudio. Le serveur s_snd génère alors un message MSG_APP obtenu à partir de l'événement ev_micro et interprétable par l'application APP. Le conteneur d'interface C_IF envoie le message MSG_APP au conteneur d'application C_APP pour qu'il soit restitué par la machine physique MPhy.In the same way, the Live Sound Service process executed by the comm_snd communication module can convert an ev_micro file or sound stream picked up by the microphone of the CLT client device via the server device SRV according to the HTTPS protocol into a sound stream governed by a protocol supported by the Pulseaudio type s_snd server. The server s_snd then generates an MSG_APP message obtained from the ev_micro event and interpretable by the APP application. The interface container C_IF sends the message MSG_APP to the application container C_APP so that it is rendered by the physical machine MPhy.

Dans ce mode de réalisation, la ligne de commande permettant le démarrage de Pulseaudio au démarrage du conteneur d'interface C_IF est :In this embodiment, the command line for starting Pulseaudio when starting the C_IF interface container is:

/usr/bin/pulseaudio/ Usr / bin / pulseaudio

Dans ce mode de réalisation, la ligne de commande permettant le démarrage de Live Sound Service au démarrage du conteneur d'interface C_IF est : nodejs /composer/node/livesound-service/livesound-service.jsIn this embodiment, the command line for starting Live Sound Service when starting the C_IF interface container is: nodejs /composer/node/livesound-service/livesound-service.js

Dans ce mode de réalisation, le processus Live Sound Service exporte le port TCP/IP 8000 pour communiquer en HTTPS avec le serveur SRV.In this embodiment, the Live Sound Service process exports the TCP / IP port 8000 to communicate in HTTPS with the SRV server.

Les communications du serveur de son s_snd avec le module de communication comm_snd et/ou avec le client de son c_snd peuvent être régies par des sockets pour assurer la sécurité de ces communications.The communications of the sound server s_snd with the communication module comm_snd and / or with the client sound c_snd can be governed by sockets to ensure the security of these communications.

Dans ce mode de réalisation, le serveur (ou démon) pulseaudio crée une socket de type fichier nommé .pulse.sock dans le volume partagé tmp et le démon Live Sound Service détecte la présence de la socket et la récupère.In this embodiment, the pulseaudio server (or daemon) creates a file type socket named .pulse.sock in the shared volume tmp and the Live Sound Service daemon detects the presence of the socket and retrieves it.

Dans le mode de réalisation présenté à la figure 1, pour gérer des applications nécessitant un service d'impression, le conteneur d'interface C_IF déploie un module MOD_prn qui comporte :In the embodiment presented in FIG. 1, to manage applications requiring a printing service, the interface container C_IF deploys a MOD_prn module which comprises:

un module de traitement s_prn configuré pour l'obtention d'un événement d'impression ev_prn généré par l'application APP déployée dans le conteneur C_APP et destiné à une imprimante PRN connectée au dispositif client CLT; et un module de communication comm_prn configuré pour générer et envoyer au moins un message MSG_CLT obtenu à partir de l'événement ev_prn, destiné à et interprétable par le dispositif client CLT.a processing module s_prn configured to obtain an ev_prn printing event generated by the APP application deployed in the container C_APP and intended for a PRN printer connected to the client device CLT; and a comm_prn communication module configured to generate and send at least one MSG_CLT message obtained from the ev_prn event, intended for and interpretable by the CLT client device.

Dans ce mode de réalisation, le serveur s_prn est un serveur d'impression. En particulier, le serveur d'impression s-prn peut être basé sur la technologie Common Unix Printing System (CUPS, marque déposée par Apple, version : 1.3-4) qui permet de générer des fichiers au format PDF.In this embodiment, the s_prn server is a print server. In particular, the s-prn print server can be based on the Common Unix Printing System technology (CUPS, trademark registered by Apple, version: 1.3-4) which makes it possible to generate files in PDF format.

Dans ce mode de réalisation, le conteneur d'application C_APP déploie un client d'impression c_prn du serveur d'impression s_prn. Le client c_prn et le serveur s_prn d'impression communiquent par des sockets fichiers partagées dans le volume temporaire tmp.In this embodiment, the application container C_APP deploys a print client c_prn from the print server s_prn. The c_prn client and the s_prn print server communicate by shared file sockets in the temporary volume tmp.

Le client d'impression c_prn se connecte sur une socket fichier nommée « .cups.sock » et placée dans le répertoire /tmp. Le client d'impression place des données relatives à un événement d'impression ev_prn dans la socket .cups.sock.The c_prn print client connects to a file socket named ".cups.sock" and placed in the / tmp directory. The print client places data about an ev_prn print event in the .cups.sock socket.

Le serveur d'impression s_prn détecte la présence des données à la socket .cups.sock placée dans le volume partagé tmp et reçoit ainsi l'événement d'impression ev_prn.The print server s_prn detects the presence of data at the socket .cups.sock placed in the shared volume tmp and thus receives the print event ev_prn.

Suite à la réception de l'événement d'impression ev_prn, le serveur s_prn génère un fichier contenant les données à imprimer reçues du client c_prn. Puis, le serveur s_prn place le fichier généré dans un répertoire, nommé «.printer-queue », contenant une liste de fichiers en attente d'impression.Following receipt of the ev_prn print event, the s_prn server generates a file containing the print data received from the c_prn client. Then, the s_prn server places the generated file in a directory, named ".printer-queue", containing a list of files waiting to be printed.

Le serveur s_prn est par exemple de type CUPS et les fichiers générés sont par exemple au format PDF.The s_prn server is for example of CUPS type and the generated files are for example in PDF format.

D'autres formats de fichiers peut être générés, par exemple des fichiers de type .jpegOther file formats can be generated, for example .jpeg type files

Le module de communication comm_prn est configuré pour détecter la présence d'un nouveau document dans le répertoire «.printer-queue ».The comm_prn communication module is configured to detect the presence of a new document in the ".printer-queue" directory.

Par exemple, le module de communication comm_prn est configuré pour assurer un service de type Printer-service. Ce service Printer-service, développé en nodejs (printer-service.js), comporte une fonctionnalité « watcher » de détection des modifications au niveau de la file d'attente du répertoire « .printer-queue ».For example, the comm_prn communication module is configured to provide a Printer-service type service. This Printer-service, developed in nodejs (printer-service.js), includes a "watcher" functionality for detecting changes in the queue of the ".printer-queue" directory.

En détectant le placement, par le serveur d'impression s_prn, du nouveau fichier dans le répertoire « .printer-queue », le module de communication reçoit l'événement d'impression ev_prn.By detecting the placement, by the print server s_prn, of the new file in the directory “.printer-queue”, the communication module receives the print event ev_prn.

Suite à la détection de la présence du nouveau document dans le répertoire « .printerqueue », le module de communication comm_prn génère un message d'impression MSG_CLT à partir de l'événement ev_prn. Le message MSG_CLT est destiné au dispositif client CLT.Following the detection of the presence of the new document in the “.printerqueue” directory, the comm_prn communication module generates an MSG_CLT print message from the ev_prn event. The MSG_CLT message is intended for the CLT client device.

Dans ce mode de réalisation, le service printer-service.js n'est pas exporté, autrement dit il ne communique pas en HTTPS avec le dispositif serveur SRV, mais communique directement avec un module MOD_user du conteneur d'interface C_IF. Le module de communication comm_prn envoie le message d'impression MSG_CLT au module MOD_user et c'est ce module MOD_user qui transfère le message d'impression MSG_CLT au dispositif serveur SRV pour qu'il le transfère, à son tour, au dispositif client CLT.In this embodiment, the printer-service.js service is not exported, in other words it does not communicate in HTTPS with the SRV server device, but communicates directly with a MOD_user module of the C_IF interface container. The comm_prn communication module sends the print message MSG_CLT to the MOD_user module and it is this MOD_user module which transfers the print message MSG_CLT to the server device SRV so that it in turn transfers it to the client device CLT.

Le module MOD_user, décrit ultérieurement, est configuré pour exécuter un service de partage de sessions, de type « Broadcast Session Service » développé en nodejs (broadcastservice.js).The MOD_user module, described later, is configured to run a session sharing service, of the "Broadcast Session Service" type developed in nodejs (broadcastservice.js).

Dans ce mode de réalisation, le module de communication comm_prn n'est pas exporté et communique avec le serveur SRV via le module MOD_user pour réduire le nombre de sockets ouvertes. Une même socket est utilisée pour le service de partage de sessions et aussi pour le service d'impression.In this embodiment, the comm_prn communication module is not exported and communicates with the SRV server via the MOD_user module to reduce the number of open sockets. The same socket is used for the session sharing service and also for the printing service.

Dans un autre mode de réalisation, le module de communication comm_prn est exporté et indépendant du module MOD_user.In another embodiment, the comm_prn communication module is exported and independent of the MOD_user module.

Dans ce mode de réalisation, lorsque le navigateur web du dispositif client CLT est notifié de la présence d'un nouveau fichier à imprimer, il le télécharge via le service File Service développé en nodejs (file-service.js) et exécuté par le conteneur d'interface C_IF. Une fenêtre de type popup s'affiche alors dans le navigateur web du dispositif client CLT pour notifier l'utilisateur de la présence du nouveau fichier afin de lancer l'impression sur l'imprimante PRN du dispositif client CLT.In this embodiment, when the web browser of the CLT client device is notified of the presence of a new file to be printed, it downloads it via the File Service service developed in nodejs (file-service.js) and executed by the container C_IF interface. A popup window then appears in the web browser of the CLT client device to notify the user of the presence of the new file in order to start printing on the PRN printer of the CLT client device.

Le mode de réalisation basé sur la génération de fichiers PDF offre une comptabilité avec plusieurs natures de dispositifs clients. En effet, le module d'impression MOD_prn est totalement indépendant du pilote (driver) d'impression du dispositif client CLT et de son contexte d'impression.The embodiment based on the generation of PDF files offers compatibility with several types of client devices. Indeed, the MOD_prn printing module is completely independent of the printer driver of the CLT client device and its printing context.

Lorsque le dispositif client CLT télécharge le fichier PDF à imprimer, il exécute son propre pilote d'impression pour déclencher l'impression sur son imprimante PRN. Le pilote d'impression peut être, à titre d'exemples, Google Cloud Print pour un dispositif client CLT de type smartphone utilisant le système d'exploitation Android (marque déposée par Google), ou AirPrint pour un dispositif client CLT de type smartphone utilisant le système d'exploitation iOS (marque déposée par Apple).When the CLT client device downloads the PDF file to print, it runs its own printer driver to trigger printing on its PRN printer. The print driver can be, for example, Google Cloud Print for a CLT client device of the smartphone type using the Android operating system (trademark registered by Google), or AirPrint for a CLT client device of the smartphone type using the iOS operating system (trademark registered by Apple).

Dans ce mode de réalisation, le service Broadcast Service déployé par le conteneur d'interface C_IF écoute sur le port TCP 8003.In this embodiment, the Broadcast Service deployed by the C_IF interface container listens on TCP port 8003.

Dans ce mode de réalisation, le service File Service déployé par le conteneur d'interface C_IF écoute sur le port TCP 8080.In this embodiment, the File Service service deployed by the C_IF interface container listens on TCP port 8080.

Dans ce mode de réalisation, la ligne de commande permettant le démarrage du serveur de type CUPS au démarrage du conteneur d'interface C_IF est :In this embodiment, the command line for starting the CUPS type server when the C_IF interface container is started is:

/usr/sbin/cupsd -c /etc/cups/cupsd.conf-f/ usr / sbin / cupsd -c /etc/cups/cupsd.conf-f

Dans ce mode de réalisation, la ligne de commande permettant l'exécution broadcastservice.js au démarrage du conteneur d'interface C_IF est : nodejs /composer/node/broadcast-service/broadcast-service.jsIn this embodiment, the command line for executing broadcastservice.js when starting the C_IF interface container is: nodejs /composer/node/broadcast-service/broadcast-service.js

Dans ce mode de réalisation, la ligne de commande permettant l'exécution fileservice.js au démarrage du conteneur d'interface C_IF est : nodejs /composer/node/file-service/file-service.jsIn this embodiment, the command line for executing fileservice.js when starting the C_IF interface container is: nodejs /composer/node/file-service/file-service.js

Dans ce mode de réalisation, le module d'impression MOD_prn est tout simplement un ensemble logique des modules s_prn et comm_prn relatifs à la gestion des événements d'impression. Le module MOD_prn ne présente pas une couche logicielle supplémentaire, en dessus du serveur s_prn et du module de communication comm_prn.In this embodiment, the MOD_prn printing module is quite simply a logical set of the s_prn and comm_prn modules relating to the management of printing events. The MOD_prn module does not have an additional software layer, above the s_prn server and the comm_prn communication module.

Dans le mode de réalisation présenté à la figure 1, un même module de traitement du conteneur d'interface C_IF peut être démarré pour plusieurs utilisateurs, qui partagent alors une même session.In the embodiment presented in FIG. 1, the same processing module for the interface container C_IF can be started for several users, who then share the same session.

Chacun de ces utilisateurs se connecte par son dispositif client CLT, via le dispositif serveur SRV, au même conteneur d'interface C_IF.Each of these users connects via their CLT client device, via the SRV server device, to the same interface container C_IF.

Un module MOD_user du conteneur d'interface C_IF est configuré pour assurer la notification du partage de session entre les utilisateurs. Il compte le nombre d'utilisateurs connectés à un même conteneur d'interface et gère les échanges avec chaque disposirif client de ces utilisateurs.A MOD_user module of the C_IF interface container is configured to provide notification of session sharing between users. It counts the number of users connected to the same interface container and manages the exchanges with each client device of these users.

Le module MOD_user est par exemple un serveur de type Broadcast Session Service.The MOD_user module is for example a server of the Broadcast Session Service type.

Selon le besoin du fonctionnement d'une application APP, son conteneur d'application Ç_APP déploie un ou plusieurs clients des serveurs déployés par le conteneur d'interface C_IF.According to the need for the functioning of an APP application, its application container Ç_APP deploys one or more clients of the servers deployed by the interface container C_IF.

Par exemple, le conteneur d'application C_APP présenté à la figure 1 déploie un client d'affichage c_disp pour générer des événements d'affichage ev_disp et/ou traiter des événements clavier-souris evject, un client de son c_snd pour la génération des événements sonores ev_snd et/ou le traitement des événements sonores ev_micro et un client d'impression c_prn pour générer des événements d'impression ev_prn.For example, the C_APP application container presented in Figure 1 deploys a c_disp display client to generate ev_disp display events and / or process evject keyboard-mouse events, a c_snd sound client for event generation ev_snd sound and / or processing of ev_micro sound events and a c_prn print client to generate ev_prn print events.

A titre d'alternative, le conteneur d'application C_APP déploie un seul client, par exemple un client d'affichage c_disp.As an alternative, the C_APP application container deploys a single client, for example a c_disp display client.

Les conteneurs de différentes applications sont étanches les uns aux autres et ne communiquent qu'avec le conteneur d'interface C_IF pour assurer une meilleure sécurité. Chaque conteneur d’application C_APP a sa propre adresse, sa propre capacité de calcul CPU, sa propre mémoire et son propre espace de nommage.Containers of different applications are sealed to each other and communicate only with the interface container C_IF to ensure better security. Each C_APP application container has its own address, its own CPU computing capacity, its own memory and its own namespace.

Dans le mode de réalisation présenté à la figure 1, le conteneur d'interface C_IF déploie un module de transfert MOD_f configuré pour assurer un service de transfert de fichiers du dispositif client CLT à un espace de stockage Str situé dans un réseau en nuage.In the embodiment presented in FIG. 1, the interface container C_IF deploys a transfer module MOD_f configured to provide a file transfer service from the client device CLT to a storage space Str located in a cloud network.

Aucun conteneur d'application C_APP n'est requis pour assurer ce service de transfert de fichiers.No C_APP application container is required to provide this file transfer service.

Plusieurs protocoles de communication entre le module de transfert MOD_f du conteneur d'interface C_IF et l'espace de stockage Str peuvent être envisagés, tels que par exemple NFS (Network File System, dévoloppé par Sun Microsystems), S3 (Simple Storage Service, développé par Amazon), Dropbox (marque déposée), etc.Several communication protocols between the MOD_f transfer module of the C_IF interface container and the Str storage space can be envisaged, such as for example NFS (Network File System, developed by Sun Microsystems), S3 (Simple Storage Service, developed by Amazon), Dropbox (registered trademark), etc.

Dans un autre mode de réalisation, l'espace de stockage Str peut être compris dans le dispositif DA conforme à l'invention, exécutant le conteneur d'interface C_IF.In another embodiment, the storage space Str can be included in the device DA according to the invention, executing the interface container C_IF.

Dans ce mode de réalisation, le module de transfert MOD_f est configuré exposer les fonctions de téléchargement de fichiers entre le navigateur web du dispositif client CLT et l'espace de stockage Str dans le réseau cloud. Ces fonctions de téléchargement sont par exemple une fonction de téléchargement en mode download (de l'espace de stockage vers le navigateur) et une fonction de téléchargement en mode upload (du navigateur vers l'espace de stockage)In this embodiment, the transfer module MOD_f is configured to expose the file downloading functions between the web browser of the client device CLT and the storage space Str in the cloud network. These download functions are for example a download function in download mode (from the storage space to the browser) and a download function in upload mode (from the browser to the storage space)

Le module de transfert MOD_f comporte par exemple un serveur de type File Manager Service.The MOD_f transfer module comprises for example a server of the File Manager Service type.

Dans un mode de réalisation, un déplacement de type « drag and drop » d'un fichier local du dispositif client CLT dans la fenêtre du navigateur web peut mener à un transfert de ce fichier dans l'espace de stockage Str.In one embodiment, a “drag and drop” type movement of a local file of the client device CLT in the window of the web browser can lead to a transfer of this file in the storage space Str.

Le serveur File Manager Service peut écouter sur le port TCP 5000 pour ces communications avec le dispositif serveur SRV.The File Manager Service server can listen on TCP port 5000 for these communications with the SRV server device.

Dans ce mode de réalisation, une fenêtre HTML affichée dans le navigateur web présente l'arborescence de l'espace de stockage Str contenant les documents de l'utilisateur transférés par le module MOD_f.In this embodiment, an HTML window displayed in the web browser presents the tree structure of the storage space Str containing the documents of the user transferred by the module MOD_f.

Dans ce mode de réalisation, la ligne de commande permettant l'exécution de File Manager Service au démarrage du conteneur d'interface C_IF est : nodejs /composer/node/angular-filemanager-nodejs-bridge/server.jsIn this embodiment, the command line allowing the execution of File Manager Service when the C_IF interface container is started is: nodejs /composer/node/angular-filemanager-nodejs-bridge/server.js

La figure 2 présente différentes étapes du procédé selon l'invention, permettant d'accéder à l'application APP, dans un exemple de mise en œuvre. Sur cette figure, on a représenté différentes étapes mises en œuvre dans cet exemple par le dispositif client CLT, le dispositif serveur SRV, le dispositif DA conforme à l'invention et la machine physique MPhy.FIG. 2 presents different steps of the method according to the invention, making it possible to access the APP application, in an exemplary implementation. In this figure, various steps have been shown implemented in this example by the client device CLT, the server device SRV, the device DA according to the invention and the physical machine MPhy.

Au cours d'une étape C100, un utilisateur disposant d'un dispositif client CLT accède à un site web prédéfini via un navigateur web du dispositif client CLT, par exemple de type HTML5, au moyen d'une URL (pour « unified Ressource Locator » en anglais) prédéfinie. Ce site web est accessible via le dispositif serveur SRV. En particulier, le site web peut être hébergé sur le dispositif serveur SRV.During a step C100, a user having a CLT client device accesses a predefined website via a web browser of the CLT client device, for example of the HTML5 type, by means of a URL (for “unified Resource Locator "In English) predefined. This website is accessible via the SRV server device. In particular, the website can be hosted on the SRV server device.

Le site web affiche une interface d'authentification, par exemple une interface où l'utilisateur doit renseigner son nom d'utilisateur et son mot de passe.The website displays an authentication interface, for example an interface where the user must enter his user name and password.

Au cours d'une étape C101, l'utilisateur s'authentifie, en envoyant par exemple son identifiant et son mot de passe au serveur SRV. Le serveur SRV les reçoit au cours d'une étapeDuring a step C101, the user authenticates himself, by sending for example his identifier and his password to the server SRV. The SRV server receives them during a step

S102 et vérifie, au cours d'une étape S103, si l'authentification est correcte ou non. L'authentification peut être définie selon le protocole oAuth, ou Kerberos (Active Directory), ou LDAP, ou autre protocole d'authentification. Les étapes C101, S102 et S103 se répètent jusqu'à ce que l'authentification soit réussie.S102 and checks, during a step S103, whether the authentication is correct or not. Authentication can be defined using the oAuth protocol, or Kerberos (Active Directory), or LDAP, or other authentication protocol. Steps C101, S102 and S103 are repeated until authentication is successful.

Suite à une authentification réussie, et conformément à l'invention, un conteneur d'interface C_IF est instancié (étape S104) pour l'utilisateur authentifié à partir d'une image de conteneur d'interface compatible avec le système d'exploitation du serveur SRV.Following a successful authentication, and in accordance with the invention, an interface container C_IF is instantiated (step S104) for the user authenticated from an image of interface container compatible with the operating system of the server. SRV.

Ce conteneur d'interface C_IF est ainsi dédié au dispositif client CLT.This C_IF interface container is thus dedicated to the CLT client device.

Le dispositif serveur SRV crée le conteneur d’interface C_IF à partir d’une image de référence compatible avec le système d’exploitation du dispositif serveur SRV, par exemple une image sous Debian, Ubuntu, ou Centos (marques déposées). Cette image de distribution est un fichier compilé comportant le code et les librairies requises par les fonctionnalités assurées par le conteneur d’interface C_IF.The SRV server device creates the C_IF interface container from a reference image compatible with the operating system of the SRV server device, for example an image under Debian, Ubuntu, or Centos (registered trademarks). This distribution image is a compiled file containing the code and the libraries required by the functionalities provided by the interface container C_IF.

Dans ce mode de réalisation, ce conteneur d'interface C_IF est exécuté dans le dispositif DA mis en œuvre dans un réseau en nuage (cloud) et communique avec le dispositif serveur SRV selon le protocole HTTPS.In this embodiment, this interface container C_IF is executed in the device DA implemented in a cloud network (cloud) and communicates with the server device SRV according to the HTTPS protocol.

Le dispositif DA démarre le conteneur d'interface C_IF au cours d'une étape D105.The device DA starts the interface container C_IF during a step D105.

Dans le mode de réalisation décrit ici, le conteneur d'interface Ç_IF déploie un démon s_disp offrant un service de serveur d'affichage et des démons s_snd, et s_prn pour le son et l'impression.In the embodiment described here, the interface container Ç_IF deploys an s_disp daemon offering a display server service and s_snd, and s_prn daemons for sound and printing.

Au cours de cette étape S104 de création du conteneur C_IF, le dispositif serveur SRV démarre les serveurs s_disp, s_snd, s_prn susceptibles d’obtenir des événements ev_disp, ev_snd, ev_prn destinés à un périphérique de sortie DISP, PRN, SND du dispositif client CLT et générés par une application APP s'exécutant dans un conteneur d'application C_APP.During this step S104 of creation of the container C_IF, the server device SRV starts the servers s_disp, s_snd, s_prn capable of obtaining events ev_disp, ev_snd, ev_prn intended for an output device DISP, PRN, SND of the client device CLT and generated by an APP application running in a C_APP application container.

Pour chaque type d’événement attendu, le dispositif DA démarre un ou plusieurs démons déployés dans le conteneur d’interface C_IF. Par exemple, pour gérer des événements de type affichage, un serveur d’affichage s_disp, un module de conversion conv_disp, et un module de communication comm_disp tels que décrits à la figure 1 sont démarrés.For each type of event expected, the DA device starts one or more daemons deployed in the C_IF interface container. For example, to manage display type events, an s_disp display server, a conv_disp conversion module, and a comm_disp communication module as described in Figure 1 are started.

A l'issue de l'étape S104 de création du conteneur d'interface C_IF et de démarrage de ses serveurs, un bureau virtuel s'affiche dans le navigateur du dispositif client.At the end of step S104 of creating the interface container C_IF and starting its servers, a virtual desktop is displayed in the browser of the client device.

Dans un mode de réalisation, au cours de l'étape S104 de création du conteneur d'interface C_IF, le serveur SRV crée deux volumes de données sur le dispositif DA :In one embodiment, during step S104 of creating the interface container C_IF, the server SRV creates two volumes of data on the device DA:

— un volume temporaire, nommé par exemple tmp, utilisé pour stocker des fichiers temporaires, par exemple des sockets de type fichier venants de ou destinés à un conteneur d'application C_APP, ce volume est partagé par le conteneur d'interface C_IF et le conteneur d'application C_APP ; et — un volume dit « home », utilisé pour stocker des données de l'utilisateur, par exemple des fichiers bureautiques ou des images, ce volume est partagé par le conteneur d'interface C_IF et le serveur SRV.- a temporary volume, named for example tmp, used to store temporary files, for example file type sockets coming from or intended for a C_APP application container, this volume is shared by the C_IF interface container and the container C_APP application; and - a volume called "home", used to store user data, for example office files or images, this volume is shared by the interface container C_IF and the SRV server.

On suppose que l'utilisateur souhaite accéder à une application APP s'exécutant dans un conteneur d'application C_APP.It is assumed that the user wishes to access an APP application executing in a C_APP application container.

Au cours d'une étape S106, le serveur SRV commande l'établissement d'une connexion entre le conteneur d’interface C_IF et ce conteneur d'application Ç_APP.During a step S106, the SRV server controls the establishment of a connection between the interface container C_IF and this application container Ç_APP.

Le conteneur d'application C_APP peut s'exécuter dans le serveur SRV, dans le dispositif DA qui exécute le conteneur d'interface C_IF, ou dans une autre machine physique MPhy.The application container C_APP can run in the SRV server, in the DA device which runs the interface container C_IF, or in another physical machine MPhy.

Dans ce mode de réalisation, une machine physique MPhy héberge le conteneur d'application C_APP.In this embodiment, a physical machine MPhy hosts the application container C_APP.

Au cours de l'étape S106, le serveur SRV envoie au dispositif DA et à la machine MPhy des informations leur permettant d'établir une connexion entre le conteneur d'interface C_IF et le conteneur d'application C_APP. La réception de ces informations est acquittée par le dispositif DA et la machine physique MPhy au cours d'une étape D108 et d'une étape M108 respectivement.During step S106, the server SRV sends information to the device DA and to the machine MPhy allowing them to establish a connection between the interface container C_IF and the application container C_APP. The reception of this information is acknowledged by the device DA and the physical machine MPhy during a step D108 and a step M108 respectively.

Les informations permettant d'établir la connexion entre les conteneurs C_IF et C_APP sont des sockets fichiers relatives à des démons déployés par le conteneur d'interface C_IF et des variables d'environnement.The information used to establish the connection between the C_IF and C_APP containers are file sockets relating to daemons deployed by the C_IF interface container and environment variables.

Les variables d'environnement présentent par exemple des informations sur l'utilisateur authentifié obtenues au cours de l'étape C101, ce qui permet par la suite d'afficher par exemple un message d'accueil personnalisé, portant le nom de l'utilisateur, quand il accède à l'application APP.The environment variables present, for example, information on the authenticated user obtained during step C101, which subsequently makes it possible, for example, to display a personalized welcome message bearing the name of the user, when he accesses the APP application.

Au cours de l'étape D108 relative à l'établissement de connexion entre le conteneur d'interface C_IF et le conteneur d'application C_APP, le conteneur d'interface C_IF place des sockets fichiers dans le répertoire /tmp pour indiquer au conteneur d'application C_APP quels sont les identifiants des modules serveurs s_disp, s_prn, s_snd du conteneur C_IF avec lesquels le conteneur d'application C_APP peut communiquer.During step D108 relating to establishing a connection between the interface container C_IF and the application container C_APP, the interface container C_IF places file sockets in the / tmp directory to indicate to the container C_APP application what are the identifiers of the server modules s_disp, s_prn, s_snd of the container C_IF with which the application container C_APP can communicate.

Les sockets fichiers partagés par le conteneur d'interface pour établir une connexion avec un conteneur d'application sont identiques pour tout conteneur d'application.The file sockets shared by the interface container to establish a connection with an application container are identical for any application container.

Au cours d'une étape Ml 10 du procédé, la machine MPhy exécutant le conteneur d'application C_APP envoie un événement généré par l'application APP et destiné à un périphérique de sortie du dispositif client CLT. L'envoi peut être sous forme d'un placement d'une socket fichier représentant l'événement dans le répertoire partagé tmp par le conteneur d'application C_APP. La socket peut être un fichier X0 ou .pulse.sock ou .cups.sock décrits précédemment.During a step M10 of the method, the machine MPhy executing the application container C_APP sends an event generated by the application APP and intended for an output device of the client device CLT. The sending can be in the form of a placement of a file socket representing the event in the shared directory tmp by the application container C_APP. The socket can be an X0 or .pulse.sock or .cups.sock file described above.

Au cours d'une étape D120, le conteneur d'interface obtient l'événement destiné au périphérique de sortie, en récupérant par exemple la socket du répertoire tmp.During a step D120, the interface container obtains the event intended for the output device, by recovering for example the socket of the directory tmp.

Au cours d'une étape D130, le conteneur d'interface C_IF obtient un message MSG_CLT à partir de l'événement obtenu au cours de l'étape D120, et l'envoie au dispositif clientDuring a step D130, the interface container C_IF obtains a message MSG_CLT from the event obtained during step D120, and sends it to the client device

CLT via le dispositif serveur SRV. Le message MSG_CLT est destiné à et interprétable par le dispositif client CLT.CLT via the SRV server device. The message MSG_CLT is intended for and interpretable by the CLT client device.

Dans le mode de réalisation décrit ici, le dispositif DA a l'architecture d'un ordinateur, telle qu'illustrée à la figure 3. Elle comprend notamment un processeur 7, une mémoire vive 8, une mémoire morte 9, une mémoire flash non volatile 10 dans un mode particulier de réalisation de l'invention, ainsi que des moyens de communication 11. De tels moyens sont connus en soi et ne sont pas décrits plus en détail ici.In the embodiment described here, the device DA has the architecture of a computer, as illustrated in FIG. 3. It notably comprises a processor 7, a random access memory 8, a read-only memory 9, a non-flash memory volatile 10 in a particular embodiment of the invention, as well as communication means 11. Such means are known per se and are not described in more detail here.

La mémoire morte 9 du dispositif DA permettant d'accéder à une application, selon la présente invention constitue un support d'enregistrement conforme à l'invention, lisible par le processeur 7 et sur lequel est enregistré ici un programme d'ordinateur Prog conforme à l'invention. La mémoire 10 du dispositif DA permettant d'accéder à une application permet d'enregistrer des variables utilisées pour l'exécution des étapes de l'invention, telles que le nombre de sessions ouvertes sur un conteneur d'interface, le nombre de conteneurs d'applications connectée au conteneur d'interface ou les identifiants d'un dispositif client.The read-only memory 9 of the device DA allowing access to an application, according to the present invention constitutes a recording medium in accordance with the invention, readable by the processor 7 and on which is recorded here a computer program Prog in accordance with the invention. The memory 10 of the device DA allowing access to an application makes it possible to record variables used for the execution of the steps of the invention, such as the number of sessions opened on an interface container, the number of containers d applications connected to the interface container or the identifiers of a client device.

Le programme d'ordinateur Prog définit des modules fonctionnels et logiciels ici, configurés pour permettre à un dispositif client CLT d’accéder à une application APP. Ces modules fonctionnels s'appuient sur et/ou commandent les éléments matériels 7-11 du dispositif hébergeant un conteneur d'interface cités précédemment.The Prog computer program defines software and functional modules here, configured to allow a CLT client device to access an APP application. These functional modules are based on and / or control the hardware elements 7-11 of the device hosting an interface container mentioned above.

La figure 4 présente une architecture fonctionnelle du dispositif DA permettant d'accéder à une application selon un mode de réalisation. Le dispositif DA comporte un serveur s_out configuré pour obtenir un événement ev_disp, ev_snd, ev_prn généré par une application et un module de communication comm_out configuré pour générer au moins un message MSG_CLT obtenu à partir de l'événement ev_disp, ev_snd, ev_prn, destiné à et interprétable par le dispositif client CLT.FIG. 4 presents a functional architecture of the device DA allowing access to an application according to an embodiment. The DA device comprises a server s_out configured to obtain an ev_disp, ev_snd, ev_prn event generated by an application and a comm_out communication module configured to generate at least one MSG_CLT message obtained from the ev_disp, ev_snd, ev_prn event, intended for and interpretable by the CLT client device.

Dans un mode de réalisation, le serveur s_out peut être un des modules serveurs s_disp, s_snd ou s_prn décrits précédemment et présentés à la figure 1. Le module de communication comm_out peut être l'un des modules comm_disp, comm _snd, comm_prn décrits précédemment.In one embodiment, the server s_out can be one of the server modules s_disp, s_snd or s_prn described above and presented in FIG. 1. The communication module comm_out can be one of the modules comm_disp, comm _snd, comm_prn described above.

Le dispositif DA permettant d'accéder à une application comporte aussi un module de communication commjn configuré pour obtenir un événement evject, ev_micro généré par un périphérique d'entrée du dispositif client CLT, et un serveur sjn configuré pour générer et envoyer à l'application déployée dans le conteneur d'application au moins un message MSG_APP obtenu à partir de l'événement evject, ev_micro et interprétable par l'application déployée par le conteneur d'application C_APP.The DA device allowing access to an application also includes a commjn communication module configured to obtain an evject event, ev_micro generated by an input device of the CLT client device, and an sjn server configured to generate and send to the application deployed in the application container at least one MSG_APP message obtained from the evject, ev_micro event and interpretable by the application deployed by the application container C_APP.

Dans un mode de réalisation, le serveur s_out est le serveur sjn lui-même.In one embodiment, the server s_out is the server sjn itself.

Dans un mode de réalisation, le module de communication comm_out est le module de communication commjn lui-même.In one embodiment, the comm_out communication module is the commjn communication module itself.

Dans un mode de réalisation, le serveur s_in peut être un des modules serveurs s_disp ou s_snd décrits précédemment et présentés à la figure 1. Le module de communication commjn peut être l'un des modules comm_disp ou comm _snd décrits précédemment.In one embodiment, the server s_in can be one of the server modules s_disp or s_snd described above and presented in FIG. 1. The communication module commjn can be one of the modules comm_disp or comm _snd described above.

La figure 5 présente une architecture fonctionnelle d'un dispositif serveur SRV pouvant être utilisé dans un mode de réalisation de l'invention. Le serveur SRV comporte un module AUTH d'authentification d'un utilisateur d'un dispositif client CLT et un module MGC de gestion de conteneurs. Ce module MGC comporte un module CR_C_IF de création d'un conteneur d'interface, un module CR_C_APP de création d'un conteneur d'application, un module ENR d'enrichissement d'un conteneur d'application par des données et un module CX de commande d'établissement d'une connexion entre le conteneur d'interface C_IF et le conteneur d'application C_APP.FIG. 5 presents a functional architecture of an SRV server device which can be used in an embodiment of the invention. The SRV server includes an AUTH module for authenticating a user of a CLT client device and an MGC container management module. This MGC module includes a CR_C_IF module for creating an interface container, a CR_C_APP module for creating an application container, an ENR module for enriching an application container with data and a CX module command for establishing a connection between the interface container C_IF and the application container C_APP.

La création d’un conteneur d’application C_APP peut se traduire par un démarrage de ce conteneur C_APP pour un utilisateur, autrement dit par un lancement d’exécution de ce conteneur C_APP.The creation of a C_APP application container can result in a start of this C_APP container for a user, in other words by launching the execution of this C_APP container.

Dans un mode de réalisation, les fonctionnalités assurées par le dispositif serveur SRV sont des processus déployés dans un conteneur, autres que le conteneur d’interface C_IF ou le conteneur d’application C_APP, et exécutés par le dispositif serveur SRV.In one embodiment, the functionalities provided by the SRV server device are processes deployed in a container, other than the C_IF interface container or the C_APP application container, and executed by the SRV server device.

Pour le déploiement, autrement dit l'installation, d'une application APP dans un conteneur d'application C_APP, le serveur SRV crée un conteneur depuis une image de distribution de référence compatible avec son propre système d'exploitation, par exemple une image sous Debian, Ubuntu, ou Centos (marques déposées), puis installe l'application APP dans ce conteneur C_APP.For the deployment, in other words the installation, of an APP application in a C_APP application container, the SRV server creates a container from a reference distribution image compatible with its own operating system, for example an image under Debian, Ubuntu, or Centos (registered trademarks), then install the APP application in this C_APP container.

Dans un mode de réalisation, l'image de l'application APP est enrichie de métadonnées, telles que :In one embodiment, the image of the APP application is enriched with metadata, such as:

icon: nom du fichier icône représentant l'application APP ;icon: name of the icon file representing the APP application;

icondata: contenu du fichier icône encodé ;icondata: content of the encoded icon file;

keyword: mots clef de l'application APP utilisés pour la recherche ;keyword: keywords of the APP application used for research;

cat: catégorie de l'application APP ;cat: category of the APP application;

launch: nom de la classe Xll Windows Class ;launch: class name Xll Windows Class;

template: modèle utilisé lors de la création du conteneur C_APP ;template: model used when creating the C_APP container;

name: nom de l'application APP ;name: name of the APP application;

- displayname : nom de l'application APP affiché par une interface graphique ;- displayname: name of the APP application displayed by a graphical interface;

type : chaîne de caractères précisant le type du conteneur (« app » pour un conteneur d'application) ;type: character string specifying the type of container ("app" for an application container);

mimetype : Type de format de données (mime) supporté par l'application ;mimetype: Type of data format (mime) supported by the application;

fileextensions : extension de fichiers pouvant être supportés par l'application ; et legacyfileextensions : extension native des fichiers.fileextensions: extension of files that can be supported by the application; and legacyfileextensions: native file extension.

Dans un mode de réalisation, une application au format GNU/Linux Xll est supportée nativement par un conteneur d'application, alors qu'une application au format Microsoft Windows 5 est supportée via un émulateur Wine.In one embodiment, an application in GNU / Linux Xll format is natively supported by an application container, while an application in Microsoft Windows 5 format is supported via a Wine emulator.

Dans un mode de réalisation, le conteneur d’interface C_IF et/ou le conteneur d’application C_APP sont développés par le logiciel Docker (marque déposée par Docker, version 18.02.0 datée du 08 février 2018) ou par le logiciel LXC (Linux Containers, marque déposée par Linux, version 2.1.1 datée du 19 octobre 2017).In one embodiment, the C_IF interface container and / or the C_APP application container are developed by Docker software (trademark registered by Docker, version 18.02.0 dated February 08, 2018) or by LXC software (Linux Containers, trademark registered by Linux, version 2.1.1 dated October 19, 2017).

Claims (15)

REVENDICATIONS 1. Procédé permettant à un dispositif client (CLT) d'accéder à une application (APP), ledit procédé étant mis en œuvre dans un conteneur (C_IF), dit « conteneur d'interface », le procédé comportant les étapes suivantes :1. Method allowing a client device (CLT) to access an application (APP), said method being implemented in a container (C_IF), called "interface container", the method comprising the following steps: — démarrage (D105) d'un module de traitement (s_disp, s_snd, s_prn) susceptible d'obtenir au moins un événement (ev_disp, ev_snd, ev_prn) destiné à un périphérique de sortie (DISP, PRN, SND_out) dudit dispositif client (CLT) et généré par une application (APP) s'exécutant dans un conteneur d'application (C_APP) ; et — sur obtention (D120) d'un dit événement (ev_disp, ev_snd, ev_prn), envoi (D130) d'au moins un message (MSG_CLT) obtenu à partir dudit événement (ev_disp, ev_snd, ev_prn), destiné à et interprétable par ledit dispositif client (CLT).- start (D105) of a processing module (s_disp, s_snd, s_prn) capable of obtaining at least one event (ev_disp, ev_snd, ev_prn) intended for an output device (DISP, PRN, SND_out) of said client device ( CLT) and generated by an application (APP) running in an application container (C_APP); and - on obtaining (D120) a said event (ev_disp, ev_snd, ev_prn), sending (D130) at least one message (MSG_CLT) obtained from said event (ev_disp, ev_snd, ev_prn), intended for and interpretable by said client device (CLT). 2. Procédé selon la revendication 1, dans lequel la dite application (APP) est accessible (Cl 12) via un navigateur web du dispositif client (CLT).2. Method according to claim 1, wherein said application (APP) is accessible (Cl 12) via a web browser of the client device (CLT). 3. Dispositif (DA) permettant à un dispositif client (CLT) d'accéder à une application (APP), ledit dispositif (DA) exécutant un conteneur, dit conteneur d'interface (C_IF) et comportant :3. Device (DA) allowing a client device (CLT) to access an application (APP), said device (DA) executing a container, called interface container (C_IF) and comprising: — un module de traitement (s_disp, s_snd, s_prn) configuré pour obtenir un événement (ev_disp, ev_snd, ev_prn) destiné à un périphérique de sortie (DISP, PRN, SND_out) dudit dispositif client (CLT) et généré par une application (APP) s'exécutant dans un conteneur d'application (C_APP); et — un module de communication (comm_disp, comm _snd, comm _prn) configuré pour générer et envoyer, sur obtention d'un dit événement (ev_disp, ev_snd, ev_prn), au moins un message (MSGJ2LT) obtenu à partir dudit événement, destiné à et interprétable par ledit dispositif client (CLT).- a processing module (s_disp, s_snd, s_prn) configured to obtain an event (ev_disp, ev_snd, ev_prn) intended for an output device (DISP, PRN, SND_out) of said client device (CLT) and generated by an application (APP ) running in an application container (C_APP); and - a communication module (comm_disp, comm _snd, comm _prn) configured to generate and send, on obtaining a said event (ev_disp, ev_snd, ev_prn), at least one message (MSGJ2LT) obtained from said event, intended to and interpretable by said client device (CLT). 4. Dispositif (DA) permettant à un dispositif client (CLT) d'accéder à une application (APP) selon la revendication 3 comportant :4. Device (DA) allowing a client device (CLT) to access an application (APP) according to claim 3 comprising: — un module de communication (comm_disp, comm_snd) configuré pour obtenir un événement (evject, ev_micro) généré par un périphérique d'entrée (KB, MICRO) dudit dispositif client (CLT); et — un module de traitement (s_disp, s_snd) configuré pour générer et envoyer, sur obtention d'un dit événement (evject, ev_micro) généré par un dit périphérique d'entrée (KB, MICRO), au moins un message (MSG_APP) obtenu à partir dudit événement (evject, ev_micro), destiné pour et pouvant être traité par une application (APP) s'exécutant dans un conteneur d'application (C_APP).- a communication module (comm_disp, comm_snd) configured to obtain an event (evject, ev_micro) generated by an input device (KB, MICRO) of said client device (CLT); and - a processing module (s_disp, s_snd) configured to generate and send, on obtaining a said event (evject, ev_micro) generated by a said input device (KB, MICRO), at least one message (MSG_APP) obtained from said event (evject, ev_micro), intended for and able to be processed by an application (APP) executing in an application container (C_APP). 5. Dispositif (DA) permettant à un dispositif client (CLT) d'accéder à une application (APP) selon la revendication 3 ou 4, dans lequel des communications internes audit dispositif (DA) sont régies par des sockets de type fichier.5. Device (DA) allowing a client device (CLT) to access an application (APP) according to claim 3 or 4, wherein communications internal to said device (DA) are governed by file type sockets. 6. Dispositif (DA) permettant à un dispositif client (CLT) d'accéder à une application (APP) selon l’une quelconque des revendications 3 à 5, dans lequel un dit module de traitement est un serveur d'affichage (s_disp) configuré pour obtenir au moins un événement d'affichage (ev_disp) généré par ladite application (APP) et destiné à un écran (DISP) dudit dispositif client (CLT).6. Device (DA) allowing a client device (CLT) to access an application (APP) according to any one of claims 3 to 5, in which a said processing module is a display server (s_disp) configured to obtain at least one display event (ev_disp) generated by said application (APP) and intended for a screen (DISP) of said client device (CLT). 7. Dispositif (DA) permettant à un dispositif client (CLT) d'accéder à une application (APP) selon la revendication 6, dans lequel ledit dispositif (DA) comporte en outre un module (s_dim) configuré pour adapter ledit message (MSG_CLT) obtenu à partir de l'événement d'affichage (ev_disp) et destiné à l'écran (DISP) du dispositif client à un ' paramètre d'affichage dudit écran.7. Device (DA) allowing a client device (CLT) to access an application (APP) according to claim 6, in which said device (DA) further comprises a module (s_dim) configured to adapt said message (MSG_CLT ) obtained from the display event (ev_disp) and intended for the screen (DISP) of the client device at a 'display parameter of said screen. 8. Dispositif (DA) permettant à un dispositif client (CLT) d'accéder à une application (APP) selon la revendication 7, dans lequel ledit module (s_dim) configuré pour adapter ledit message obtenu à partir de l'événement d'affichage (ev_disp) contrôle l'exécution de ladite application (APP).8. Device (DA) allowing a client device (CLT) to access an application (APP) according to claim 7, in which said module (s_dim) configured to adapt said message obtained from the display event (ev_disp) controls the execution of said application (APP). 9. Dispositif (DA) permettant à un dispositif client (CLT) d'accéder à une application (APP) selon l’une quelconque des revendications 3 à 8, dans lequel un dit module de traitement est un serveur de son (s_snd) configuré pour obtenir au moins un événement de type son (ev_snd) généré par ladite application (APP) et destiné à un périphérique de sortie de son (SND) dudit dispositif client (CLT).9. Device (DA) allowing a client device (CLT) to access an application (APP) according to any one of claims 3 to 8, in which a said processing module is a configured sound server (s_snd) to obtain at least one sound type event (ev_snd) generated by said application (APP) and intended for a sound output device (SND) of said client device (CLT). 10. Dispositif (DA) permettant à un dispositif client (CLT) d'accéder à une application (APP) selon l’une quelconque des revendications 3 à 9, dans lequel un dit module de traitement est un serveur d'impression (s_prn) configuré pour obtenir au moins un événement d'impression (ev_prn) généré par ladite application (APP) et destiné à une imprimante (PRN) connectée audit dispositif client (CLT).10. Device (DA) allowing a client device (CLT) to access an application (APP) according to any one of claims 3 to 9, in which a said processing module is a print server (s_prn) configured to obtain at least one print event (ev_prn) generated by said application (APP) and intended for a printer (PRN) connected to said client device (CLT). 11. Dispositif (DA) permettant à un dispositif client (CLT) d'accéder à une application (APP) selon l’une quelconque des revendications 3 à 10, dans lequel ledit dispositif (DA) comporte en outre un module (MOD_f) configuré pour transférer au moins un fichier dudit dispositif client (CLT) vers ou depuis un espace de stockage (Str).11. Device (DA) allowing a client device (CLT) to access an application (APP) according to any one of claims 3 to 10, in which said device (DA) further comprises a configured module (MOD_f) to transfer at least one file from said client device (CLT) to or from a storage space (Str). 12. Système (SA) permettant à un dispositif client (CLT) d'accéder à une application (APP), ledit système comportant :12. System (SA) allowing a client device (CLT) to access an application (APP), said system comprising: — un dispositif (DA) permettant à un dispositif client (CLT) d'accéder à une application (APP) selon l'une des revendications 3 à 11; et — un dispositif serveur (SRV) comportant un module (MGC) de gestion apte à gérer :- a device (DA) allowing a client device (CLT) to access an application (APP) according to one of claims 3 to 11; and - a server device (SRV) comprising a management module (MGC) capable of managing: o un conteneur d'interface (C_IF) exécuté par ledit dispositif permettant d'accéder à une application, et o au moins un conteneur (C„APP) d'une application (APP) accessible par ledit dispositif client (CLT) et configurée pour générer des événements (ev_disp, ev_snd, ev_prn) destinés à des périphériques de sortie (DISP, KB, PRN) dudit dispositif client (CLT).o an interface container (C_IF) executed by said device allowing access to an application, and o at least one container (C „APP) of an application (APP) accessible by said client device (CLT) and configured for generate events (ev_disp, ev_snd, ev_prn) intended for output devices (DISP, KB, PRN) of said client device (CLT). 13. Système (SA) à un dispositif client (CLT) d'accéder à une application (APP) selon la revendication 12 caractérisé en ce que ledit dispositif serveur (SRV) comporte :13. System (SA) to a client device (CLT) to access an application (APP) according to claim 12 characterized in that said server device (SRV) comprises: — un module (AUTH) d'authentification (C101, S102, S103) d'un utilisateur dudit dispositif client (CLT); et — un module (CR_C_IF) configuré pour créer (S104) ledit conteneur d'interface (C_IF) sur authentification dudit utilisateur.- an authentication module (AUTH) (C101, S102, S103) of a user of said client device (CLT); and - a module (CR_C_IF) configured to create (S104) said interface container (C_IF) upon authentication of said user. 14. Programme d'ordinateur (Prog) comportant des instructions pour l'exécution des étapes d'un procédé à un dispositif client (CLT) d'accéder à une application (APP) selon une des revendications 1 ou 2, lorsque ledit programme est exécuté par un ordinateur (DA).14. Computer program (Prog) comprising instructions for the execution of the steps of a method for a client device (CLT) to access an application (APP) according to one of claims 1 or 2, when said program is executed by a computer (DA). 15. Support d'enregistrement lisible par un ordinateur (DA) sur lequel est enregistré un programme d'ordinateur (Prog) comprenant des instructions pour l'exécution des étapes d'un procédé à un dispositif client (CLT) d'accéder à une application (APP) selon une des revendications 1 ou 2.15. Computer-readable recording medium (DA) on which a computer program (Prog) is recorded comprising instructions for the execution of the steps of a method to a client device (CLT) to access a application (APP) according to one of claims 1 or 2.
FR1852048A 2018-03-09 2018-03-09 METHOD, DEVICE AND SYSTEM ALLOWING ACCESS TO AN APPLICATION DEPLOYED IN A CONTAINER Active FR3078850B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1852048A FR3078850B1 (en) 2018-03-09 2018-03-09 METHOD, DEVICE AND SYSTEM ALLOWING ACCESS TO AN APPLICATION DEPLOYED IN A CONTAINER

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1852048A FR3078850B1 (en) 2018-03-09 2018-03-09 METHOD, DEVICE AND SYSTEM ALLOWING ACCESS TO AN APPLICATION DEPLOYED IN A CONTAINER
FR1852048 2018-03-09

Publications (2)

Publication Number Publication Date
FR3078850A1 true FR3078850A1 (en) 2019-09-13
FR3078850B1 FR3078850B1 (en) 2021-08-27

Family

ID=62873441

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1852048A Active FR3078850B1 (en) 2018-03-09 2018-03-09 METHOD, DEVICE AND SYSTEM ALLOWING ACCESS TO AN APPLICATION DEPLOYED IN A CONTAINER

Country Status (1)

Country Link
FR (1) FR3078850B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120324358A1 (en) * 2011-06-16 2012-12-20 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
US20130003106A1 (en) * 2011-06-29 2013-01-03 Canon Kabushiki Kaisha Print control device, print control method, information processing system, information processing apparatus, information processing method, and storage medium
US20140046904A1 (en) * 2012-08-13 2014-02-13 Commvault Systems, Inc Lightweight mounting of a secondary copy of file system data
EP2704446A1 (en) * 2012-08-31 2014-03-05 Samsung Electronics Co., Ltd Content sharing apparatus using sound for a locality check
US20150309704A1 (en) * 2014-04-28 2015-10-29 Samsung Electronics Co., Ltd Method and electronic device for managing object

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120324358A1 (en) * 2011-06-16 2012-12-20 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
US20130003106A1 (en) * 2011-06-29 2013-01-03 Canon Kabushiki Kaisha Print control device, print control method, information processing system, information processing apparatus, information processing method, and storage medium
US20140046904A1 (en) * 2012-08-13 2014-02-13 Commvault Systems, Inc Lightweight mounting of a secondary copy of file system data
EP2704446A1 (en) * 2012-08-31 2014-03-05 Samsung Electronics Co., Ltd Content sharing apparatus using sound for a locality check
US20150309704A1 (en) * 2014-04-28 2015-10-29 Samsung Electronics Co., Ltd Method and electronic device for managing object

Also Published As

Publication number Publication date
FR3078850B1 (en) 2021-08-27

Similar Documents

Publication Publication Date Title
US10827004B2 (en) Native viewer use for service results from a remote desktop
US8037191B2 (en) Low-level remote sharing of local devices in a remote access session across a computer network
KR102121626B1 (en) Associating a file type with an application in a network storage service
EP2936782B1 (en) Method for treatment of access requests, and web browser
EP2795878B1 (en) Method for sharing multimedia contents between users.
EP3119060A1 (en) Method and device for establishing webrtc communications
FR2842377A1 (en) SYSTEM AND METHOD FOR AUTOMATIC CONFIGURATION AND LAUNCHING TELNET 3270 CLIENT APPLICATIONS IN A WINDOWS ENVIRONMENT
FR2946168A1 (en) INTERNET NETWORK NAVIGATION METHOD, RECORDING MEDIUM, ACCESS SERVER AND USER STATION FOR IMPLEMENTING SAID METHOD
EP2107723A1 (en) Remote control of a device by a terminal.
FR3078850A1 (en) METHOD, DEVICE AND SYSTEM FOR ACCESSING AN APPLICATION DEPLOYED IN A CONTAINER
EP2395422A1 (en) Printing or scanning service for a mobile telephone
EP3714588B1 (en) Method for remote management of a device connected to a residential gateway
EP2575327B1 (en) Method for sharing a web application between a plurality of computer terminals connected to a communication network
EP2647177B1 (en) Method and entity for pairing a terminal and a user account
FR2918527A1 (en) URL address inserting method for telecommunication system, involves obtaining address from identifier before insertion of address in request, and sending request with address to server after insertion of address in request
EP4294067A1 (en) Managing the authentication of a terminal for accessing a service of a service provider.
FR2814020A1 (en) METHOD AND DEVICE FOR PROCESSING AN ELECTRONIC DOCUMENT IN A COMMUNICATION NETWORK
WO2023275475A1 (en) Method for managing a gateway for accessing a network on a mobile terminal
EP1906625B1 (en) Method and system for sharing files on a network, using the storage capabilities of a network connection box
EP4115579A1 (en) Method for managing a request to access an internet site from an access device
FR2857191A1 (en) SYSTEM FOR TRANSMITTING PARAMETERS CHARACTERISTICS OF A COMMUNICATION SESSION FROM A TERMINAL TO A REMOTE SERVER
EP1650684A1 (en) Mediation system for accessing non Internet applications from Internet applications
CN113852666A (en) Method for acquiring HTTP (hyper text transport protocol) resources in real time through FTP (file transfer protocol)
FR2862145A1 (en) Virtual desktops communication method for e.g. world-wide-web network, involves inserting received data with data stored in server, where modified data is downloaded towards station in which desktops are designed by addressing data
WO2010012961A2 (en) Updating of content search criteria defined for a service provider

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20190913

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7