Chez CFD-Innovation, nous sommes toujours à l’affût des outils qui permettent de simplifier, sécuriser et moderniser l’accès à la plateforme IBM i.
Aujourd’hui, nous vous présentons Mapepire, une technologie en cours de développement qui propose une alternative légère, performante et cloud-compatible aux traditionnels drivers JDBC et ODBC.
Nous l’avons explorée lors de l’Université IBM i 2024 (https://www.ibm.com/events/reg/flow/ibm/95etavmb/landing/page/landing), ainsi que lors de la journée IBM i & IA – Le meilleur choix (https://common-romandie.ch/day/4756/) organisée par le COMMON Romandie et voici ce qu’il faut en retenir.

Qu’est ce que Mapepire ?
Mapepire est une couche d’accès base de données orientée vers la simplicité, la performance et la portabilité. Elle facilite l’intégration de DB2 for i dans des applications modernes, en particulier celles développées en js, ts, Python, Java, et bientôt PHP, .NET, JDBC.
Mais surtout, Mapepire repose sur une architecture WebSocket sécurisée : plutôt qu’utiliser des connexions TCP multiples comme JDBC ou ODBC, Mapepire simplifie les flux réseau avec un seul port, ce qui en fait une solution idéale pour les environnements cloud ou distribués.
Pourquoi Mapepire ?
🧱 Moins de dépendances
Pas besoin d’installer un driver natif côté client : tout passe par des SDK adaptés aux langages de développement.
🔐 Sécurité intégrée
La communication est cryptée par défaut via TLS, et la configuration côté serveur permet une intégration facile avec Let’s Encrypt ou vos propres certificats.
🌩️ Cloud-friendly
Un seul port, une architecture simple, et une compatibilité accrue avec les environnements cloud et DevOps.
Comment ça marche ?
Côté serveur
L’installation se fait facilement via le gestionnaire yum sur IBM i :
yum install mapepire-server
Puis on utilise Service Commander pour lancer et superviser le serveur :
sc start mapepire
Le port par défaut est le 8076. Le serveur détecte automatiquement la configuration TLS et peut générer un certificat auto-signé si nécessaire.
Sous le capot, Mapepire utilise JDBC (via JTOpen) et s’appuie sur les traditionnels jobs QZDASOINIT (ou leur version sécurisée QZDASSINIT) pour exécuter les requêtes. Cela signifie que toutes les pratiques de sécurité et d’optimisation connues pour JDBC/ODBC restent pertinentes (point d’exit, gestion par sous-systèmes, Query Supervisor, etc.).
Côté client
Mapepire propose des SDK clients unifiés et cohérents dans chaque langage. Actuellement disponibles :
- Node.js
- Python
- Java
Et bientôt :
- PHP
- .NET / C#
- JDBC natif
Tous les clients proposent une interface standardisée avec les mêmes méthodes, mêmes conventions de nommage, et une expérience de développement fluide.
Exemple avec le client JavaScript
Pour illustrer la simplicité d’utilisation côté client, voici un exemple en JavaScript (Node.js) :
npm install @ibm/mapepire-js npm install dotenv
Créez un fichier .env à la racine :
VITE_SERVER=mon.serveur.ibm.com VITE_PORT=8076 VITE_DB_USER=monprofil VITE_DB_PASS=monmotdepasse
Et un petit script index.js :
require('dotenv').config(); const mapepire = require('@ibm/mapepire-js'); const creds = { host: process.env.VITE_SERVER, port: process.env.VITE_PORT, user: process.env.VITE_DB_USER, password: process.env.VITE_DB_PASS, ignoreUnauthorized: true }; async function execRequest() { const job = new mapepire.SQLJob(); await job.connect(creds); const query = job.query(`select EMPNO, FIRSTNME, LASTNAME from SAMPLE.EMPLOYEE`); const result = await query.execute(); result.data.forEach(row => console.log(`${row.EMPNO} - ${row.FIRSTNME} - ${row.LASTNAME}`) ); await job.close(); }
execRequest();
En quelques lignes, on se connecte, on interroge la base, on récupère les données et on ferme la session. Simple, non ?
Ce que nous en pensons
Mapepire est un projet encore jeune bien que déjà utilisé en production par plusieurs entreprises ainsi que dans le backend de Code for IBM i => prometteur. Il se positionne comme une passerelle moderne vers les données IBM i, tout en respectant les bonnes pratiques de sécurité et de performance.
C’est une solution que nous envisageons d’intégrer dans plusieurs projets clients, notamment pour :
- créer des API REST ultra-légères,
- intégrer l’IBM i dans des stacks cloud-native,
- connecter des environnements de développement à l’IBM i à des pipelines de livraison (build, tests, lint…) pour une meilleure intégration continue.
En savoir plus
- Le site du projet : https://mapepire-ibmi.github.io
- Les sources clients :
- Benchmarks : Comparaison avec node ODBC
Remerciements
Un grand merci à l’ensemble des contributeurs du projet Mapepire pour leur travail et leur engagement en faveur de l’ouverture de l’IBM i au monde moderne. Et plus particulièrement à Jesse Gorzinski et Alan Seiden, qui nous ont apporté un soutien précieux pour la préparation de cette présentation, en partageant des éléments clés ainsi que leur connaissance. Leur implication dans l’écosystème IBM i est une vraie source d’inspiration.