BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités GraalVM Dans La Base De Données Oracle

GraalVM Dans La Base De Données Oracle

Favoris

Oracle a ajouté la prise en charge des procédures stockées basées sur GraalVM qui s'exécutent dans la base de données. La fonctionnalité prend en charge les fonctions JavaScript via le moteur multilingue (Multilingual Engine MLE) axé sur le framework APEX.

Cette évolution étend la portée de GraalVM, qui a commencé comme une machine virtuelle Java pour compiler des applications en tant qu'exécutables natifs et s'est depuis développée pour prendre en charge des langages supplémentaires tels que Ruby et COBOL. Contrairement aux cas d'utilisation courants de GraalVM qui s'exécutent sur un environnement de développement pour produire des applications natives ou exécuter des applications sur un système backend, cette utilisation opère directement dans Database 21c afin que le code fonctionne au même emplacement où les données sont stockées. Le résultat est une exécution plus rapide pour analyser les données dans le cadre de requêtes plutôt que de devoir sérialiser et analyser les données à l'extérieur.

Alina Yurenko, développeuse pour GraalVM, résume les avantages de l'exécution de code directement à côté des données :

Cela supprime les transferts de données inutiles sur le réseau et peut améliorer considérablement les performances des opérations gourmandes en données, en particulier si elles sont appliquées à des téraoctets de données ou plus.

Deuxièmement, le stockage et l'exécution, par exemple, des règles métier à l'intérieur de la base de données garantissent que les règles sont suivies par chaque application, ainsi que par les utilisateurs accédant aux données, ce qui peut considérablement simplifier la mise en œuvre des exigences de sécurité et de conformité.

Dernier point, mais non des moindres, les fonctionnalités couramment utilisées peuvent être stockées dans un emplacement central et exécutées comme de simples fonctions définies par l'utilisateur en plus d'instructions SQL ordinaires, évitant ainsi d'avoir à répliquer le code dans chaque application. Cela peut être particulièrement pratique lorsque la logique est plus complexe et/ou a tendance à changer fréquemment.

GraalVM remplace l'ancienne implémentation JavaScript des bases de données Oracle précédentes qui était fournie par Nashorn et obsolète en Java 11. Kuassi Mensah, responsable de la gestion des produits pour Oracle DB, propose des informations supplémentaires sur les nouveautés du connecteur JDBC 21c pour les développeurs Java. Cela inclut des fonctionnalités telles qu'une préconfiguration pour la compilation GraalVM native (sur des applications en dehors de la base de données), un modèle de programmation réactif et la prise en charge des threads virtuels pour améliorer les performances. Des descriptions plus détaillées sont disponibles dans le guide technologique de Mensah, "What's in Oracle Database 21c for Java Developers. "

Le moteur multilingue utilisé par GraalVM dans ce contexte offre la possibilité à davantage de développeurs d'écrire des procédures stockées par rapport à l'implémentation PL/SQL précédente. Là où des organisations comme Lambda School, Code Academy et d'autres enseignent JavaScript comme langage commun, PL/SQL est devenu un ensemble de compétences beaucoup plus rare. JavaScript se classe numéro 1 dans les 20 meilleurs classements de langues de RedMonk et PL/SQL n'apparaît pas. Une situation similaire existe dans l 'enquête StackOverflow 2020 sur la plupart technologies aimées/redoutées/recherchées, où JavaScript se classe très bien et PL/SQL n'apparaît même pas.

 

Evaluer cet article

Pertinence
Style

Contenu Éducatif

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

BT