Oracle propose une version entreprise de sa machine virtuelle multilingue GraalVM. GraalVM Enterprise est un runtime partagé pour les applications écrites en Java, Scala, Kotlin, JavaScript, Node.js et code natif. Grâce à cette interopérabilité entre langages de programmation, les développeurs peuvent écrire des applications polyglottes. Basé sur Java SE (Standard Edition), GraalVM Enterprise Edition apporte des capacités de performance et de sécurité pour exécuter des applications d'entreprise.

GraalVM a été conçu pour les environnements cloud, où il peut être utilisé avec des programmes compilés à l'avance pour améliorer les temps de démarrage et minimiser les empreintes mémoire. GraalVM Enterprise prend également en charge les microservices, les fonctions en tant que service et les services mesh.

Les débordements de mémoire tampon dans le code natif résolus

Grâce à ses algorithmes d'optimisation, GraalVM Enterprise peut accélérer les processus applicatifs en réorganisant le code compilé. Ces algorithmes réduisent également l'empreinte mémoire. La prise en charge multi-langage facilite la modernisation des applications héritées et accélère la création de nouvelles applications. Quant aux fonctions de sécurité de GraalVM Enterprise, elles permettent de résoudre divers problèmes, notamment les débordements de mémoire tampon dans le code natif.

La plupart des applications du monde réel dans des langages gérés comme Java incluent des bibliothèques natives pour améliorer les performances du code de calcul intensif, mais ces bibliothèques peuvent constituer une porte dérobée et permettre à un attaquant de contourner les fonctions d'isolation au niveau de la VM. GraalVM Enterprise inclut un mode sécurisé pour les bibliothèques natives, compilant des portions d'applications implémentées en code C pour utiliser la mémoire gérée, un ramasse-miettes et les contrôles de limites afin de se protéger contre les vulnérabilités.

Les principales fonctionnalités de GraalVM Enterprise

- Une image native qui permet de compiler à l’avance des applications scriptées dans un code machine binaire natif ;

- Un compilateur qui génère du code compilé pour exécuter des applications sur une JVM autonome ou intégrée dans un autre système ;

- Le support multi-langage de Java, Scala, Kotlin, JavaScript, Node.js, et C/C++ ;

- Un framework de langage pour implémenter n'importe quel langage pour GraalVM ;

- Un runtime LLVM qui permet au code natif de s'exécuter dans un environnement géré. LLVM dispose de technologies de compilateur et de chaîne d'outils modulaires et réutilisables.

GraalVM Enterprise est disponible gratuitement en version d’évaluation et pour effectuer des développement sur Oracle Technology Network. Il est gratuit sur Oracle Cloud. Une version payante est également disponible.