Découvrir la configuration des fonctionnalités avancées de Java Management Service
Java Management Service (JMS) est un service natif sur Oracle Cloud Infrastructure (OCI). JMS peut être utilisé pour la gestion, la surveillance et la sécurisation des installations Java dans vos propres instances de calcul gérées (sur site ou sur OCI).
Vous pouvez utiliser JMS pour :
- Visibilité : découvrir et gérer Java dans toute l'entreprise
- Analyses : analyse de la configuration, de la sécurité, de la conformité et des performances de Java Virtual Machine (JVM)
- Réglage : sécurité, migration, optimisation et automatisation
Vous êtes-vous déjà demandé si votre état de sécurité actuel était aligné sur les recommandations de sécurité formulées par Oracle pour les exécutions Java et si elles étaient à jour ? JMS peut vous aider à trouver une réponse à cela, il peut signaler toute bibliothèque Java problématique utilisée par vos applications et vérifier si vos applications déjà en cours d'exécution n'ont pas de défauts dans la zone de sécurité. Avez-vous des difficultés avec les performances de vos applications Java ou avez-vous du mal à comprendre les journaux du processus Java Garbage Collector ? JMS vient à la rescousse avec l'analyse des performances. Vous n'êtes pas certain de pouvoir passer facilement à une version plus récente de Java ? Nous vous avons présenté l'analyse de migration Java.
Avec JMS, les enregistrements Java Flight Recorder (JFR) n'ont jamais été aussi faciles. Il vous suffit de sélectionner votre application dans JMS, de fournir quelques détails et de soumettre la demande d'enregistrement. Une fois la demande de travail d'enregistrement JFR terminée, vous pouvez facilement y accéder à partir du bucket du parc JMS. Et ce n'est pas tout, JMS est également livré avec des fonctionnalités de gestion du cycle de vie Java telles que l'installation d'exécutions Java ou la fourniture de détails supplémentaires sur vos serveurs d'applications Java.
Ce guide de solutions décrit les étapes de configuration des fonctionnalités avancées JMS pour résoudre les problèmes informatiques Java décrits ci-dessus.
Les fonctionnalités avancées JMS peuvent être utilisées pour obtenir des informations sur différents aspects de Java dans votre environnement. Par exemple, à l'aide des fonctionnalités avancées, vous pouvez :
- Recherchez les bibliothèques Java utilisées par vos applications pour identifier et signaler les vulnérabilités potentielles (CVE) associées aux bibliothèques Java tierces.
- Optimiser les performances des charges de travail Java avec des recommandations de réglage de la JVM en exploitant l'analyse des performances.
- Evaluez la faisabilité et les efforts requis pour migrer des applications Java vers des versions plus récentes de JDK avec Java Migration Analysis.
- Protégez vos applications en utilisant Crypto Event Analysis pour identifier les utilisations cryptographiques faibles qui cesseront de fonctionner avec les mises à jour à venir dans la feuille de route cryptographique Oracle JRE et JDK.
- Comprendre quels services et applications sont exécutés sur chaque serveur d'applications Java en recherchant les serveurs Java.
- Exécutez JDK Flight Recorder pour collecter à distance des informations sur les applications.
- Téléchargez, installez et configurez l'exécution Java.
- Enlever les versions d'Oracle Java signalées.
- Distribuez ou enlevez le jeu de règles de déploiement.
Avant de commencer
L'accès à Java Management Service nécessite un compte Oracle Cloud (OCI). Vous pouvez utiliser votre propre compte cloud ou obtenir un compte OCI Free Tier.
Dans les exemples décrits dans ce guide stratégique de solution, nous utilisons l'outil de ligne de commande OCI. Si vous souhaitez essayer ces exemples vous-même, configurez et configurez l'interface de ligne de commande OCI conformément au guide Interface de ligne de commande (CLI) suivant. L'exécution de l'exemple requiert également la présence de l'utilitaire de ligne de commande jq
sur l'ordinateur sur lequel vous exécuterez les commandes de l'outil OCI. Vous pouvez obtenir cet utilitaire pour presque toutes les plates-formes à partir de la page de projet GitHub : https://github.com/jqlang/jq.
Assurez-vous qu'une machine Oracle Linux est configurée correctement pour permettre la communication avec les services OCI. La machine peut être :
- Instance de calcul OCI disponible dans votre location. Si aucune instance n'est déjà configurée, reportez-vous à Création d'une instance de calcul OCI.
- Hôte non OCI, c'est-à-dire sur site (dans votre propre centre de données, cloud tiers, etc.) qui doit être surveillé via le service JMS.
Architecture
Ce guide décrit l'intégration des fonctionnalités avancées de Java Management Service, en particulier pour obtenir des informations sur vos installations Java et prendre les mesures correctives nécessaires. Cette solution s'applique à l'activation de la fonctionnalité avancée dans JMS, pour les installations Oracle dans OCI, sur site et dans le cloud tiers.
L'agent JMS est installé sur les instances gérées pour collecter des métadonnées de télémétrie d'utilisation Java et d'utilisation Java. Les données de télémétrie sont émises et stockées dans votre location à des fins de protection de la vie privée.
Le diagramme suivant illustre la topologie du service JMS en production. Le diagramme présente les agents déployés pour suivre Java exécuté sur OCI, vos ordinateurs de bureau sur site, vos ordinateurs portables et serveurs, ainsi que les services cloud tiers. Ces agents sont déployés dans vos instances gérées et sont associés aux ressources (flottes) créées dans vos locations.
Les métadonnées d'utilisation Java sont exfiltrées de votre location par l'agent installé dans vos locations. JMS utilise ces métadonnées pour générer des informations clés telles que la version de Java, la référence de sécurité et les mises à jour Java à venir, ainsi que l'utilisation des applications. Ces informations sont présentées lors de la connexion à la console OCI. Il n'y a pas d'accès Oracle au-delà du traitement des métadonnées exfiltrées.
Grâce aux fonctionnalités avancées disponibles dans JMS, vous pouvez analyser l'utilisation des serveurs d'applications Java, identifier les vulnérabilités potentielles dans les bibliothèques Java utilisées par les applications exécutées dans votre environnement, utiliser l'enregistreur de vol Java pour les performances et l'analyse cryptographique et gérer les exécutions Oracle Java (versions de JDK) dans votre environnement. Vous pouvez utiliser la fonctionnalité avancée pour gérer l'exécution Java dans votre environnement.
Cette architecture est illustrée dans le diagramme suivant.
A un niveau élevé, la section suivante décrit les flux de données entre l'agent JMS installé sur votre instance gérée et le service JMS sur OCI :
- Vous installez l'agent sur l'instance gérée et l'agent s'inscrit auprès d'OCI.
- Vous configurez ou activez le module d'extension JMS (en transmettant le parc JMS en tant que paramètre). L'agent JMS est désormais associé au parc JMS souhaité.
- L'agent JMS enregistré interroge JMS pour obtenir du travail. JMS répondra à l'interrogation avec les demandes de travail appropriées, le cas échéant.
- L'agent JMS analyse régulièrement l'instance gérée à la recherche d'installations ou d'entrées Java dans le suivi d'utilisation et envoie les mesures Java et les métadonnées Java à OCI.
Pour plus d'informations sur le flux de données entre l'agent JMS et le service OCI et les flux de trafic entre l'agent JMS installé sur vos ordinateurs hôtes (sur site) et JMS exécuté dans OCI, reportez-vous à Surveillance et gestion des installations d'applications Java et Java.
Cette architecture comporte les composants suivants :
- Région
Une région OCI est une zone géographique précise qui contient des centres de données, hébergeant des domaines de disponibilité. Les régions sont indépendantes les une des autres et peuvent les séparer d'un pays ou d'un continent à l'autre par de grandes distances.
- Domaines de disponibilité
Les domaines de disponibilité sont des centres de données autonomes indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées de celles des autres, ce qui garantit la tolérance aux pannes. Les domaines de disponibilité ne partagent ni infrastructure (par exemple, alimentation, système de refroidissement), ni réseau de domaine de disponibilité interne. Par conséquent, une panne sur un domaine de disponibilité ne doit pas affecter les autres domaines de disponibilité de la région.
- Tenancy
Une location est une partition sécurisée et isolée qu'Oracle configure dans Oracle Cloud lorsque vous souscrivez à OCI. Vous pouvez créer, organiser et administrer vos ressources sur OCI dans votre location. Une location est synonyme d'entreprise ou d'organisation. Habituellement, une entreprise aura une seule location et reflétera sa structure organisationnelle au sein de cette location. Une location unique est généralement associée à un seul abonnement, et un seul abonnement n'a généralement qu'une seule location.
- Compartiment
Les compartiments sont des partitions logiques inter-régionales dans une location OCI. Utilisez des compartiments pour organiser, contrôler l'accès et définir des quotas d'utilisation pour vos ressources Oracle Cloud. Dans un compartiment donné, vous définissez des stratégies qui contrôlent l'accès et définissent des privilèges pour les ressources.
- Réseau cloud virtuel (VCN) et sous-réseaux
Un réseau cloud virtuel est un réseau personnalisable défini par logiciel que vous configurez dans une région OCI. Comme les Réseaux de centre de données traditionnels, les Réseaux cloud virtuels vous donnent un contrôle sur l'environnement réseau. Un VCN peut comporter plusieurs blocs de routage interdomaine sans classe (CIDR) qui ne se chevauchent pas et que vous pouvez modifier une fois le VCN créé. Vous pouvez segmenter un réseau cloud virtuel en plusieurs sous-réseaux ciblant une région ou un domaine de disponibilité. Chaque sous-réseau est composé d'une plage contiguë d'adresses qui ne chevauchent pas celles des autres sous-réseaux du réseau cloud virtuel. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.
- Pool d'instances
Un pool d'instances est un groupe d'instances d'une région qui sont créées à partir de la même configuration d'instance et gérées en tant que groupe.
- Réseau sur site
Ceci est un réseau local utilisé par votre organisation.
- Passerelle d'API OCI
Oracle Cloud Infrastructure API Gateway vous permet de publier des API avec des adresses privées accessibles à partir de votre réseau, et que vous pouvez exposer au réseau Internet public si nécessaire. Les adresses prennent en charge la validation d'API, la transformation des demandes et des réponses, la spécification CORS, l'authentification et l'autorisation, ainsi que l'autorisation des demandes.
- Passerelle de routage dynamique
Le DRG est un routeur virtuel qui fournit un chemin pour le trafic de réseau privé entre les réseaux cloud virtuels d'une même région, entre un VCN et un réseau en dehors de la région, tel qu'un VCN dans une autre région OCI, un réseau sur site ou un réseau dans un autre fournisseur cloud.
- Passerelle de service
Une passerelle de service fournit un accès à partir d'un VCN à d'autres services, tels qu'Oracle Cloud Infrastructure Object Storage. Le trafic entre le VCN et le service Oracle passe par la structure réseau Oracle et ne traverse pas Internet.
- Oracle Autonomous Database
Oracle Autonomous Database est un environnement de base de données entièrement géré et préconfiguré que vous pouvez utiliser pour le traitement des transactions et les workloads d'entreposage de données. Vous n'avez pas besoin de configurer ni de gérer un matériel, ni d'installer un logiciel. OCI gère la création, la sauvegarde, l'application de patches, la mise à niveau et le réglage de la base de données.
- Hôte de bastion
L'hôte de bastion est une instance de calcul qui sert de point d'entrée sécurisé et contrôlé vers la topologie depuis l'extérieur du cloud. L'hôte du bastion est provisionné généralement dans une zone démilitarisée (DMZ). Il vous permet de protéger les ressources sensibles en les plaçant dans des réseaux privés qui ne sont pas accessibles directement depuis l'extérieur du cloud. La topologie possède un seul point d'entrée connu que vous pouvez surveiller et auditer régulièrement. Ainsi, vous pouvez éviter d'exposer les composants les plus sensibles de la topologie sans compromettre leur accès.
- Agent Oracle Cloud
L'agent Oracle Cloud est un processus léger qui gère le cycle de vie des modules d'extension exécutés sur les instances de calcul sur OCI. Les modules d'extension JMS collectent des métadonnées Java à partir de votre environnement déployé sur l'instance gérée dans OCI. Le module d'extension JMS filtre ces métadonnées Java vers le service JMS dans OCI.
- Calcul OCI
Avec Oracle Cloud Infrastructure Compute, vous pouvez provisionner et gérer des hôtes de calcul dans le cloud. Vous pouvez lancer des instances de calcul avec des formes qui répondent à vos besoins en ressources pour l'UC, la mémoire, la bande passante réseau et le stockage. Après avoir créé une instance de calcul, vous pouvez y accéder en toute sécurité, la redémarrer, attacher et détacher des volumes, et y mettre fin lorsque vous n'en avez plus besoin.
- DNS OCI
Le service Oracle Cloud Infrastructure Domain Name System (DNS) est un réseau DNS anycast mondial hautement évolutif qui offre des performances DNS, une résilience et une évolutivité améliorées, afin que les utilisateurs finaux se connectent rapidement aux applications Internet, où qu'ils se trouvent.
- Streams de Kafka
Kafka Streams est une bibliothèque client permettant de créer des applications et des microservices, où les données d'entrée et de sortie sont stockées dans des clusters Kafka. Il combine la simplicité de l'écriture et du déploiement d'applications Java et Scala standard côté client avec les avantages de la technologie de cluster côté serveur de Kafka.
- Journalisation OCIOracle Cloud Infrastructure Logging est un service entièrement géré et hautement évolutif qui permet d'accéder aux types de journaux suivants à partir de vos ressources dans le cloud :
- Journaux d'audit : journaux liés aux événements produits par OCI Audit.
- Journaux de service : journaux publiés par des services individuels tels que OCI API Gateway, OCI Events, OCI Functions, OCI Load Balancing, OCI Object Storage et les journaux de flux VCN.
- Journaux personnalisés : journaux contenant des informations de diagnostic issues d'applications personnalisées, d'autres fournisseurs cloud ou d'un environnement sur Site.
- Oracle Management Agent
Oracle Management Agent est un service qui fournit une communication interactive à faible latence et la collecte de données entre Oracle Cloud Infrastructure et les instances gérées sur site. Les agents de gestion collectent des données à partir des sources que vous souhaitez surveiller. Management Agent Service, un service Oracle Cloud, gère le cycle de vie de l'agent de gestion ainsi que les modules d'extension pour les services.
- Surveillance OCI
Oracle Cloud Infrastructure Monitoring surveille activement et passivement vos ressources cloud et utilise des alarmes pour vous avertir lorsque les mesures répondent aux déclencheurs spécifiés.
- OCI Object Storage
OCI Object Storage fournit un accès à des quantités importantes de informations structurées et non, de tout type de contenu, y compris les sauvegardes de base de donnée, les données analytiques et le contenu enrichi tel que des images et des vidéos. Vous pouvez stocker des données en toute sécurité directement à partir des applications ou de la plate-forme cloud. Vous pouvez redimensionner le stockage sans dégradation des performances ni de la fiabilité de services.
Utilisez le stockage standard pour le stockage "à chaud" auquel vous devez accéder rapidement, immédiatement et fréquemment. Utilisez le stockage d'archive pour le stockage "à froid" que vous conservez durant de longues périodes et auquel il est rare d'y accéder.
- Règle
Une stratégie Oracle Cloud Infrastructure Identity and Access Management indique qui peut accéder à quelles ressources et comment. L'accès est accordé au niveau du groupe et des compartiments, ce qui signifie qu'il est possible d'écrire une stratégie qui offre un type d'accès spécifique au sein d'un compartiment précis ou à la location.
- Liste de sécurité
Pour chaque sous-réseau, vous pouvez créer des règles de sécurité qui indiquent la source, la destination et le type de trafic autorisés à l'entrée et à la sortie du sous-réseau.
- Zone de sécurité
Les zones de sécurité implémentent les meilleures pratiques de sécurité clés d'Oracle en appliquant des stratégies pour un compartiment entier, telles que le cryptage des données et la prévention de l'accès public aux réseaux. Une zone de sécurité est associée à un compartiment du même nom et inclut des stratégies de zone de sécurité (recette) qui s'appliquent au compartiment et à ses sous-compartiments. Vous ne pouvez pas ajouter ou déplacer un compartiment standard vers un compartiment de zones de sécurité.
- OCI Vault
Oracle Cloud Infrastructure Vault vous permet de créer et de gérer de manière centralisée les clés de cryptage qui protègent vos données et les informations d'identification de clé secrète que vous utilisez pour sécuriser l'accès à vos ressources dans le cloud. La gestion des clés par défaut est celle des clés gérées par Oracle. Vous pouvez également utiliser des clés gérées par le client qui utilisent OCI Vault. OCI Vault offre un riche ensemble d'API REST permettant de gérer les coffres et les clés.
- Workflow OCI
Oracle Cloud Infrastructure Workflow est un moteur de workflow sans serveur doté d'un concepteur de flux graphique pour les développeurs et les architectes. Il accélère la création, l'exécution et l'orchestration de services OCI tels que OCI Functions ou l'IA/ML.
Points à prendre en compte
Vous devez tenir compte des points suivants lors de l'activation des fonctionnalités avancées.
- Des stratégies supplémentaires sont requises pour l'utilisation des fonctionnalités JMS Advanced
- L'analyse des événements cryptographiques, l'analyse des performances et JDK Flight Recorder peuvent augmenter l'utilisation globale de la mémoire de la JVM de l'application.
- Pour l'analyse des événements Crypto, l'analyse des performances et JDK Flight Recorder, les versions d'exécution Java de l'application doivent être de version 8u361 ou supérieure.
- La limite supérieure de l'analyse des événements cryptographiques et de l'analyse des performances pour chaque enregistrement JFR est définie sur 4096 Mo.
- Des coûts supplémentaires peuvent être facturés à l'aide des services OCI Object Storage et OCI Logging pour stocker les données produites par les fonctionnalités avancées JMS.
- Gestion du cycle de vie Java
- La fonctionnalité Jeu de règles de déploiement est uniquement applicable aux exécutions Java 8. Une surcharge supplémentaire est la distribution du fichier JAR de stratégie sur les instances gérées du parc.
- L'installation Java peut modifier la configuration du système Java sur une instance gérée. Suivez les instructions d'installation de la version d'exécution Java sélectionnée et des plates-formes d'instance gérées.
- La suppression de l'exécution Java peut modifier la configuration du système Java sur l'instance gérée. Par exemple, si l'exécution Java sélectionnée est la seule exécution configurée par le système sur une instance gérée.
- Suivi avancé de l'usage
- Pour la détection de l'exécution de serveurs d'applications Java, leur exécution Java doit être au moins de la version 8u361 ou supérieure.
- La détection de la bibliothèque peut augmenter considérablement la consommation de ressources sur l'instance gérée lors de l'inspection de l'application et de ses bibliothèques, en particulier l'utilisation de l'UC et des E/S.
- Selon le nombre de serveurs d'applications et de bibliothèques détectés sur l'instance gérée, la charge utile envoyée à JMS peut être supérieure à la normale. Dans des circonstances normales, il devrait se situer dans une plage de quelques centaines de kilo-octets.
- Analyse des évènements cryptographiques
- Selon la quantité de sous-systèmes liés à la sécurité de la JVM utilisés par chaque application pendant l'enregistrement, la taille finale du fichier d'enregistrement JFR peut varier, dans des circonstances normales, la taille d'enregistrement habituelle est comprise entre quelques centaines de kilo-octets et quelques mégaoctets.
- Si l'application est inactive, certains mécanismes de détection peuvent ne pas signaler de problèmes potentiels.
- L'utilisation du réseau peut être augmentée en fonction du nombre d'instances gérées, du nombre d'applications et de la taille de chaque enregistrement. Le réseau est utilisé lors du téléchargement des enregistrements JFR vers OCI à des fins d'analyse.
- Analyse des performances
- La taille finale de chaque fichier d'enregistrement JFR dépend du comportement de l'application. Plusieurs événements JFR liés aux performances sont capturés comme des détails sur le nettoyage de la mémoire, le nettoyage de la mémoire, etc. Dans des circonstances normales, la taille d'enregistrement habituelle est de quelques mégaoctets.
- Si l'application est inactive, certains mécanismes de détection peuvent ne pas signaler de problèmes de performances potentiels.
- L'utilisation du réseau peut être augmentée en fonction du nombre d'instances gérées et de la taille de chaque enregistrement. Le réseau est utilisé lors du téléchargement des enregistrements JFR vers OCI à des fins d'analyse.
- JDK Flight Recorder (JFR)
- La taille finale du fichier d'enregistrement JFR dépend du profil sélectionné ou de la configuration JFC personnalisée fournie, un autre facteur influençant la taille est la durée d'enregistrement sélectionnée pour l'application.
- Analyse de la migration Java
- L'utilisation des ressources peut augmenter au cours de l'analyse de l'application.
- Le résultat de l'analyse est généralement de l'ordre de quelques centaines de kilo-octets en fonction de la taille des applications elles-mêmes et de ses dépendances.
Certaines fonctionnalités avancées telles que l'analyse cryptographique et l'analyse des performances s'appuient sur l'API JVM Attach. Lors de l'exécution des demandes de travail, le module d'extension JMS peut envoyer de nouveaux événements à l'objet de journal d'inventaire du parc. L'exemple de charge utile suivant illustre ce qui sera livré dans le journal des stocks du parc dans de telles situations :
{
"datetime": 1752483223432,
"logContent": {
"id": "3d6a9915-af91-4527-a6d4-2a0d86106b15",
"time": "2025-07-14T08:53:43.432Z",
"oracle": {
"compartmentid": "ocid1.compartment.oc1..compartment-id",
"ingestedtime": "2025-07-14T08:55:27.274970180Z",
"instanceid": "ocid1.instance.oc1.eu-frankfurt-1.instance-id",
"loggroupid": "ocid1.loggroup.oc1.eu-frankfurt-1.log-group-id",
"logid": "ocid1.log.oc1.eu-frankfurt-1.log-id",
"tenantid": "ocid1.tenancy.oc1..tenant-id"
},
"source": "ocid1.instance.oc1.eu-frankfurt-1.instance-id",
"specversion": "1.0",
"subject": "Oracle JMS Plugin",
"type": "jms.jvm.usage.attach.log",
"data": {
"data": {
"additionalProperties": {
"java.runtime.name": "Java(TM) SE Runtime Environment",
"user.dir": "/home/opc/crypto",
"user.name": "opc"
},
"applicationName": "spring-tls-server-1.1.0.jar",
"classPath": "spring-tls-server-1.1.0.jar",
"classPathElements": [
"spring-tls-server-1.1.0.jar"
],
"fleetId": "ocid1.jmsfleet.oc1.eu-frankfurt-1.fleet-id",
"javaArgs": "n/a",
"javaCommand": "spring-tls-server-1.1.0.jar --debug",
"javaDistribution": "Java(TM) SE Runtime Environment",
"javaHome": "/usr/lib/jvm/jdk-21-oracle-x64",
"javaMajorVersion": "21",
"javaVendor": "Oracle Corporation",
"javaVersion": "21",
"managedInstanceId": "ocid1.instance.oc1.eu-frankfurt-1.instance-id",
"osArch": "amd64",
"osName": "Linux",
"osVersion": "5.15.0-306.177.4.el9uek.x86_64",
"startTime": "2025-07-14T08:48:34.947541200Z",
"typeOfStart": "VM start"
},
"datacontenttype": "application/json",
"dataschema": "1.0",
"id": "3d6a9915-af91-4527-a6d4-2a0d86106b15",
"source": "ocid1.instance.oc1.eu-frankfurt-1.instance-id",
"specversion": "1.0",
"time": "2025-07-14T08:53:43.432Z",
"type": "jms.jvm.usage.attach.log"
}
},
"regionId": "eu-frankfurt-1"
}
Autres remarques
Une fois qu'une demande d'exécution de fonctionnalité est soumise dans JMS, le service JMS crée une demande de travail identifiée par un OCID de demande de travail unique. Vous trouverez ci-dessous le processus standard de suivi de la progression de la demande de travail à partir de la console OCI Cloud.
- Accédez à votre parc en cliquant sur Observation & gestion, Java Management, Parcs.
- Sélectionnez votre parc.
- Cliquez sur la section Demandes de travail du parc.
Procédure de suivi de la progression de la demande de travail à partir de l'interface de ligne de commande OCI :
- Exécutez la commande suivante :
oci jms work-request get --work-request-id $WORK_REQUEST_OCID
- Si l'état en cours de la demande de travail vous intéresse uniquement, vous pouvez exécuter l'instruction ci-dessus à l'aide de l'utilitaire
jq
:oci jms work-request get --work-request-id $WORK_REQUEST_OCID | jq .data.status
La possibilité de soumettre et de suivre les demandes de travail de fonctionnalité est également disponible dans l'API JMS, accessible via le kit SDK OCI.