Même si les EDI JetBrains et les applications Swing sont généralement des applications de bureau, un certain nombre de cas particuliers, comme les clients légers, requièrent une approche différente. C’est là que Projector entre en jeu.
Projector est une technologie autohébergée qui exécute les EDI basés sur IntelliJ et les applications basées sur Swing sur le serveur, vous permettant d’y accéder de n’importe où à partir de navigateurs et d’applications natives.
Il existe de nombreuses situations qui requièrent l’exécution d’un EDI sur un serveur. C’est particulièrement courant dans les grandes entreprises ayant une énorme infrastructure. Voici une liste non exhaustive des cas dans lesquels Projector est particulièrement utile :
- Exécuter le code à proximité de l’environnement d’exécution ou de la base de données pour réduire les allers-retours.
- Environnements d’entreprise hautement sécurisés.
- Très grands projets.
- Interdiction de copie locale de code source.
- Contraintes en matière de matériel informatique (hardware) pour l’utilisateur.
- Clients légers.
- Nécessité d’exécuter l’EDI dans un environnement GNU/Linux sur des machines Windows ou sur des systèmes d’exploitation non conventionnels comme ChromeOS.
- Nécessité d’éteindre votre ordinateur pendant que votre application continue de fonctionner sur le serveur.
- Débogage à distance côté serveur (devtest, devprod).
- Images VM ou Docker avec sources de débogage et un IDE préconfiguré.
- Configuration nécessitant un accès à distance.
JetBrains précise que Projector ne prend pas en charge le développement collaboratif et propose aux développeurs qui ont besoin d’un outil de collaboration d'essayer plutôt Code With Me. L'éditeur indique qu'il travaille également sur une nouvelle solution de développement à distance qui combine les fonctionnalités de Code With Me et de Projector. Elle permettra d’aller encore plus loin dans la résolution des problèmes de latence du réseau.
Open Source
Chaque composant de Projector est publié sous une licence Open Source. Les entreprises qui le souhaitent peuvent ainsi élaborer des solutions personnalisées sur la base de cette technologie. JetBrains se sert des trois licences les plus populaires :
- Client : MIT License (Expat)
- Serveur : GNU GPL v2.0 + Classpath Exception
- Dockerfiles : Apache License 2.0
Architecture
Projector est un logiciel client-serveur. Vous exécutez l’EDI sur votre serveur, puis vous pouvez vous y connecter sur le réseau. JetBrains affirme que la connexion entre le client et le serveur est extrêmement rapide et légère. Si cela peut faire penser à une solution de bureau à distance comme VNC, l'éditeur précise qu'avec Projector, seules les fenêtres de l’EDI sont affichées et il est optimisé pour offrir un débit maximal pour les applications basées sur Java.
Projector offre de multiples options pour la configuration d’un serveur ou d’un client.
Applications client
Vous pouvez utiliser un navigateur ou une application native pour vous connecter à l’EDI. L’application native offre de meilleures fonctionnalités (des raccourcis clavier, par exemple), mais elle n’est disponible que pour les systèmes d’exploitation de bureau. Actuellement, l’utilisation d’un navigateur est la seule option pour les appareils mobiles, mais JetBrains envisage de créer des clients natifs pour les plateformes mobiles également.
Client Web
L’expérience avec le navigateur est très proche de l’utilisation d’un site web interactif. Il existe toutefois une option permettant de passer en mode plein écran, qui offre une expérience plus proche de l’application native.
Vous pouvez contrôler les propriétés du client web en modifiant les paramètres de l’URL. Par exemple, sur les appareils mobiles, vous pouvez ajouter le paramètre "mobile" à l’URL pour activer la superposition de boutons, y compris la possibilité d’ouvrir un clavier virtuel.
Le client web est implémenté avec l’API HTML5 Canvas et devrait fonctionner dans tout navigateur compatible avec cette API. Il a été testé sur Chrome/Chromium, Firefox et Safari.
Aucune installation du client web n’est requise : il est déjà inclus dans la partie serveur web de Projector. Il vous suffit de saisir l’URL. Tout le code est disponible sur GitHub.
Application native
Vous pouvez utiliser une application native pour macOS, Windows et Linux. En plus des avantages attendus, comme l’intégration au dock/barre de tâches, cette application prend en charge les raccourcis clavier tels que Ctrl+W/Cmd+W, qui ne sont généralement pas disponibles dans le client web.
Côté serveur
Script d’installation Python
Le script d’installation offre une certaine souplesse pour l’installation des composants côté serveur. Il s’agit d’une distribution autonome, actuellement disponible seulement pour les hôtes GNU/Linux. Vous pouvez choisir quel EDI vous souhaitez installer, sa version, ses options de sécurité, etc.
Images Docker
L’utilisation de Docker est la façon la plus simple d’exécuter Projector dans un environnement Cloud. JetBrains propose un exemple de script qui vous permet de générer des images Docker contenant des EDI JetBrains et Projector. Vous pouvez ainsi exécuter les EDI partout où Docker est disponible. L’EDI sera exécuté sans interface graphique et isolé et vous n’aurez pas à installer X11 sur le serveur. L’image est autonome.
Au lieu d’utiliser DockerHub, l'éditeur publie des images préconstruites à l’aide de son Docker Registry personnalisé. Par exemple, cet extrait vous permet d’obtenir IntelliJ IDEA Community Edition :
Code : | Sélectionner tout |
docker pull registry.jetbrains.team/p/prj/containers/projector-idea-c
Enfin, vous pouvez installer le plugin directement dans votre EDI sans avoir à déployer les éléments côté serveur sur un serveur distinct. Avec ce plugin, votre appareil est le serveur. Vous pouvez trouver le code source sur GitHub.
Cependant, le plugin est beaucoup moins isolé, des interactions avec le système d’exploitation peuvent donc survenir. Par exemple, JetBrains ne peut pas fournir le rendu du menu global sur macOS.
Do It Yourself
Projector est une technologie plutôt qu’une solution pour utilisateur final. Vous pouvez l’utiliser pour personnaliser votre infrastructure afin de répondre aux besoins de votre entreprise. Ansible ? Bien sûr. Kubernetes ? Pas de problème .
Vous pouvez construire tout ce que vous voulez, en fonction de votre niveau de compétences techniques. Le code est open source, donc rien ne vous empêche de modifier ce que vous voulez ou même de contribuer ! Vous pouvez trouver plus d’informations, ainsi que le code côté serveur le plus important, sur GitHub.
Installer l'application native (binaires, sources)
Installer le plugin Projector
Source : JetBrains