Guide · Architecture

Comment concevoir un logiciel prêt à travailler avec plusieurs modèles d'appareils

Aujourd'hui votre client a un modèle de terminal. Demain un autre, et le mois suivant un mélange de trois. Si votre architecture n'est pas préparée, chaque nouveau modèle devient un fork de votre code. Ça ne devrait pas l'être.

2026-09-14·8 min de lecture·Guía

L'erreur qui se paie en fork

C'est l'évolution typique : le premier client a le modèle A et votre SaaS le gère bien. Le deuxième a le modèle B — et soudain votre backend a des if modele == "B" éparpillés partout. Au troisième modèle, le feature qui était « intégrer des pointeuses » est devenu « maintenir trois adaptateurs », et chaque release est un serpent de risque.

La cause de fond : le logiciel s'est couplé au modèle alors qu'il devait se coupler au contrat. Les terminaux sont du matériel hétérogène — modèles, firmwares, périphériques — mais votre logique métier n'a besoin que d'un contrat : « il s'est passé quelque chose, avec cette personne, avec cette méthode, à cette heure, sur ce terminal ». Concevoir pour ce contrat, c'est ce qui rend le logiciel agnostique du modèle.

Principe 1 : le numéro de série est la clé, pas le modèle

Tout ce que vous consommez d'un terminal — rapports, événements, utilisateurs, identifiants — doit être adressé par son numéro de série, jamais par son modèle. Le numéro de série est stable, unique et ne change pas quand le firmware est mis à jour.

Dans API Connect, le numéro de série adresse tous les endpoints : /report/{serial}, gestion des utilisateurs, identifiants, groupes. Votre SaaS n'a pas besoin de savoir (et n'a rien à y gagner) si le terminal est un appareil de bureau ou un appareil à reconnaissance faciale.

Principe 2 : le terminal est une boîte noire

Votre SaaS ne doit pas modéliser l'intérieur de l'appareil (templates, firmware, mémoire) mais sa surface de contrat : quels événements il émet et quelle gestion il accepte. Quand la couche matérielle est maintenue par une API comme API Connect, cette surface reste définie et stable — même si les modèles et les firmwares changent en dessous.

Test de couplage : si demain votre client remplace un terminal par un autre modèle, votre SaaS a-t-il besoin d'une release ? Si la réponse est oui, il y a couplage au modèle. Avec la bonne abstraction, la réponse est : on enregistre le nouveau numéro de série et c'est tout.

Principe 3 : votre modèle de données n'est pas celui du terminal

Le terminal a des « personnes avec PIN » ; votre SaaS a des employés, des résidents ou des membres avec leur cycle de vie. Gardez cette frontière : votre table de personnes se mappe à celle du terminal via PIN/carte, et le cycle de vie (ajout, modification, suppression) est orchestré par votre logiciel via l'API — pas par une importation manuelle dans le menu de l'appareil.

Les flux d'identifiants par numéro de série (ajout avec PIN et carte, affectation à des groupes d'accès, suppression) vous permettent d'orchestrer sans toucher au matériel et sans dupliquer son modèle interne.

Principe 4 : normalisez les événements

Un même accès peut arriver par empreinte, carte, PIN ou visage. Votre logique métier — pointage, notifications, comptages — doit consommer un enregistrement normalisé :

Avec ce contrat, peu importe quel modèle a généré l'événement : la paie calcule les heures, la réception est notifiée et l'audit enregistre — tous avec le même flux de code.

Quelles couches une bonne API de matériel doit abstraire

CoucheSi l'API l'abstraitSi votre SaaS la gère
Protocole de l'appareilREST/JSON uniformeAdaptateur par modèle/firmware
Connectivité (réseau du client)Mode push : l'appareil sort vers le cloudIP fixe, ports, VPN par site
Variété de modèlesNuméro de série comme clé uniqueBranches if modele
Événements en temps réelWebhook/stream normaliséPolling et ingénierie de files maison
Templates biométriquesGérés par l'appareil/la plateformeRisque et conformité dans votre DB

Comment tester le design multi-modèles

La vérification pratique : mélangez les modèles en test. Avec API Connect, vous enregistrez des terminaux de différents modèles dans le même compte (et vous simulez la variété depuis le sandbox/trial), puis vous vérifiez que votre SaaS — rapports, notifications, réconciliation — fonctionne sans changer une ligne. Si un flux casse, il y a un couplage caché ; mieux vaut le détecter en test que sur le site du client.

Questions fréquentes

Mon SaaS doit-il connaître le modèle du terminal ?

Non : votre logiciel travaille avec des numéros de série et des événements. Supporter un nouveau modèle revient à enregistrer l'équipement, pas à écrire du code.

Comment normaliser des méthodes de vérification différentes ?

Avec un enregistrement par événement : personne, méthode, date/heure, terminal et résultat. Votre logique consomme ce contrat, pas le modèle qui l'a généré.

Et si le client mélange des modèles anciens et récents ?

La plateforme gère la variété : tous les terminaux se consomment via la même API. Votre parc peut mélanger les générations sans que votre code le remarque.

Testez votre architecture avec des appareils réels et virtuels

Enregistrez des terminaux de différents modèles et vérifiez que votre SaaS ne change pas. 14 jours gratuits, sans carte.