Marianne au sens strict est l’une des briques du système d’informations global.
Les composants principaux du système d’informations sont les suivants :
Le schéma suivant donne une vue d’ensemble de la partie logique du système.
Comme nous l’avions vu précédemment, les données (base de données, GED, répertoires de fichiers…) sont réparties et répliquées sur les 3 datacenters.
Les traitements sont répartis sur les 3 datacenters, pour étaler la charge, sachant que les datacenters sont dimensionnés pour pouvoir chacun absorber toute la charge en autonome si nécessaire.
Cliquez sur le schéma pour l’agrandir ou cliquez ici pour le télécharger au format PDF
Le périmètre de Marianne
Marianne est d’abord le système d’informations de la Caisse Nationale :
C’est aussi plus généralement le SI partagé de l’administration et des citoyens :
Mais son périmètre déborde très largement celui de l’univers des citoyens :
Marianne est un développement sur mesure sur la base d’un environnement technique normé (développement sur mesure normé).
Architecture générale
Marianne est centré autour d’une base de données Oracle unique répartie sur les 3 datacenters.
Les traitements sont organisés en 5 ensembles techniquement homogènes :
Le schéma montre la répartition et l’articulation de ces différents ensembles.
Marianne est un développement sur mesure.
Un développement sur mesure signifie que Marianne a été conçu et réalisé ex nihilo, en tenant compte des besoins de l’administration, et de ses besoins seuls.
Les utilisateurs voient Marianne à travers Marianne Bureau, Marianne Web et Marianne Mobiles :
Les procédures stockées (essentiellement des calculs) sont utilisées conjointement par toutes les interfaces.
Les normes
Marianne est un développement sur mesure normé.
De la conception à la réalisation, et quel que soit l’environnement (Marianne Bureau, Web ou Mobiles, Oracle, Marianne de masse), tout est régi par des règles et des normes :
On peut distinguer les standards techniques et les standards fonctionnels.
Standards techniques
Standards fonctionnels
Données - Thèmes
Les données de la base sont répartie en thèmes. Les thèmes sont les suivants :
Citoyens
Citoyens, personnes, sociétés, contacts, demandes, rôles. Le citoyen peut être une personne physique (personnes), une entreprise, une association, un foyer (sociétés), un étranger, un fournisseur…
Structures
Entités locales, conseillers, juridictions, établissements de soins, établissement d’éducation, établissements pénitentiaires, médecins, cadastre…
Vie citoyenne
Fournisseurs
Appels d’offres, contrats, factures, chantiers, projets
Personnels
Contrats, affectation, activités, missions, paye brute. Tous les fonctionnaires et contractuels, armée incluse
Immobilisations
Immobilisations incorporelles (logiciels, dépôts de marque, fonds commerciaux, frais d’établissement, droit au bail…) ; immobilisations corporelles (terrains, constructions, matériels industriels, matériels de transport, matériels informatiques, mobiliers…) ; immobilisations financières (parts sociales, actions, prêts accordés…)
Activités diverses
Entreprises nationales, productions diverses
Trésorerie
Comptes de tiers, flux, ordonnancement, emprunts, dette, placements
Comptabilité
Comptes généraux, écritures comptables, budgets
Habilitations
Profils, rôles, droits sur les objets (accéder, modifier), droits sur les informations élémentaires d’un objet (accéder, modifier), droits sur les populations d’objet (restrictions d’accès à un sous ensemble d’un objet) ; définition de filtres ; en lecture ou mise à jour, droits sur les écrans (accéder, créer, modifier, supprimer), droits sur les actions (oui/non), droits sur les rapports, utilisateurs nommés, utilisateurs génériques, délégations de droits temporaires ou définitives
Traces
Historisation des données, piste d’audit, suivi des connexions, des accès, des mises à jour
Documents
Indexes, Mots Clefs, Documents GED, Documents Dossiers
Données - Dictionnaire
Les objets de gestion sont classés par thème, et, pour chaque thème, dans un ordre respectant une logique de décomposition (exemples : CITOYEN, puis RÔLE CITOYEN).
La colonne OBJET ou Propriété donne le nom de l’objet de gestion (en gras) ou de la propriété.
Les catégories sont les suivantes :
La colonne Calc indique si la propriété est calculée à partir d’autres informations.
La colonne Ident indique si la propriété permet d’identifier formellement l’objet de gestion (par exemple, le code d’un profil Citoyen (PROFIL CITOYEN)
La colonne Ident compl indique si la propriété participe à l’identification de l’objet de gestion (par exemple, le nom d’une personne (PERSONNE)).
La colonne Oblig indique si la propriété est forcément renseignée (exemple du nom d’une personne (PERSONNE)).
La colonne Unic indique si la propriété est forcément différente pour chaque occurrence (par exemple, le Siren (ENTREPRISE).
L’une des premières versions (ébauche établie en 2019) du dictionnaire des données est visible ici.
La base de données
La base de données Oracle est une base de données répartie entre les 3 datacenters.
Oracle dispose d’une très grande panoplie de fonctions permettant de gérer la redondance, la distribution et d’optimiser les performances, en particulier avec de grosses volumétries. C’est pour cela précisément qu’Oracle a été choisi.
Oracle propose également de très nombreuses fonctionnalités en matière de sécurité ou de contrôle des données.
Avec Marianne, ces fonctionnalités sont utilisées avec une très grande parcimonie. L’un des objectifs est d’avoir un système évolutif et maintenable. Pour cela, toute la logique doit être centralisée. Le lieu le plus adéquat de cette centralisation n’est pas la base de données, mais plutôt les modules applicatifs. L’éparpillement du code est le premier facteur de complexité dans un système. Surtout quand cet éparpillement n’est pas organisé de manière logique.
Une bonne coordination entre les différentes équipes permet de gérer les éventuelles redondances assumées.
La seule exception claire concerne les calculs : toutes les fonctions de calcul sont écrites en PL/SQL sous forme de STORE PROCEDURE ou FUNCTION.
De la base de données sont donc exclus les triggers, contraintes, foreign keys, vues et autres grants. La logique sous-jacente est gérée au niveau des environnements Client : Marianne Bureau, Web et Mobiles, ou Marianne de masse. Il peut y avoir quelques exceptions à ces principes, mais elles sont alors dûment motivées. On ne cherche pas la performance ou la beauté intellectuelle de la concision à tout prix, mais d’abord la simplicité de lecture pour les développeurs.
On remarque aussi que ces allègements donnent plus de souffle à notre base de données : elle ne se perd plus dans des labyrinthes, elle est au service prioritaire de la performance, elle est libérée.
Les objets principaux utilisés sont les suivants :
Les tables sont structurées à l’identique du dictionnaire des données. Le tableau suivant en est l’illustration. Des informations plus techniques ou systématiques sont rajoutées.
Chaque table est identifiée par sa première colonne Num, qui est un numéro non significatif, fourni par une séquence à la création, et pour certains visibles par les utilisateurs. L’identifiant Marianne d’un citoyen est d’ailleurs le Num de la table CITOY. Ce Num ne change bien sûr jamais.
Toutes les tables et séquences ont leur propre synonyme public. Cela permet d’avoir des requêtes SQL débarrassées du préfixe du schéma, et de gérer facilement les changements d’environnement (Production, Recette, Développement …).
Les systèmes d’index sont évidement extrêmement développés. On utilise ici toute la panoplie des possibilités offertes par Oracle.
Le calculateur d'éléments variables individuels
Le calculateur Marianne d’éléments variables individuels détermine, pour un citoyen, l’ensemble de ses droits, impôts et taxes.
Il concerne les 3 étages : national, régional, intercommunal. Il y a ainsi 3 algorithmes invoqués dans cet ordre.
Le système effectue d’une seule traite, tout le calcul des impôts, taxes, prestations et aides. Il en résulte un montant net (à payer ou à recevoir), avec le détail : revenus pris en compte, aides, prestations, taxes, le tout décliné selon les 3 niveaux.
En entrée, les paramètres sont le citoyen (ou même la liste de citoyens) concerné et la période de calcul.
L’algorithme intègre les sous-algorithmes régionaux ou locaux qui peuvent par principe être différents d’un territoire à l’autre.
C’est une fonction de calcul. Elle est donc intégrée à la base Oracle sous forme de procédure stockée.
Cette fonction est utilisée à de multiples endroits :
L’écriture de l’algorithme est particulièrement bien structurée. Toutes les informations tarifaires susceptibles de varier (taux, seuils…) dans le temps ou selon le contexte local sont paramétrées. A l’inverse, une information qui risque de ne jamais varier n’est pas paramétrée (c’est une simple variable gérée en dur).
Il y a un algorithme national, et potentiellement 18 algorithmes régionaux et 5000 algorithmes intercommunaux.
Dans la pratique, chaque région est associée à un algorithme régional type, et chaque interco à un algorithme intercommunal type.
Les informations tarifaires utilisées par un algorithme régional type sont définies pour chaque région. Le principe est le même pour les intercos.
L’ensemble (tous les niveaux) est maintenu par une équipe unique de développeurs (Cité Nationale). 4 d’entre eux en maîtrisent l’intégralité.
Il n’y a pas de documentation technique (perte de temps et de souplesse).
En revanche, l’algorithme dans son ensemble et son détail sont expliqués de manière hiérarchisée et claire dans un tutoriel unique en ligne.
Ce tutoriel est organisé pour permettre plusieurs entrées ou vues :
Le tutoriel n’est pas rédigé par des informaticiens, ni par des légistes. Il est écrit en langage de tous les jours, compréhensible par tous.
Ce tutoriel fait référence dans les assemblées nationales, régionales ou locales, lors de tous les travaux ou réflexions sur les budgets et lois fiscales. Il fait également référence lors des échanges entre l’administration et le citoyen.
Au-delà des textes officiels, c’est l’outil de travail commun privilégié. Tout le monde parle ainsi le même langage.
Marianne Bureau
Marianne Bureau fonctionne sur le PC virtuel. Cette application est à usage interne (fonctionnaires). Elle est conçue pour être utilisée avec un écran d’une certaine taille. D’ailleurs, les fenêtres sont plutôt chargées.
Marianne Bureau est constitué de 2 sous-ensembles distincts :
L’application interactive (fenêtres) est écrite en L4G.
Les rapports sont développés avec un outil de reporting simple.
L’application interactive pilote le lancement des rapports.
Marianne Bureau couvre l’ensemble du spectre fonctionnel Marianne. Les deux autres environnements interactifs (Marianne Web et Marianne Mobiles) sont des sous-ensembles fonctionnels.
Concrètement, tout formulaire proposé dans Marianne Web possède son équivalent (généralement en plus riche) sous forme de fenêtre dans Marianne Bureau.
Les fenêtres sont accessibles à partir d’un menu unique, hiérarchisé. L’utilisateur peut ouvrir autant de fenêtres qu’il le souhaite. D’ailleurs, il peut utiliser plusieurs instances de Marianne Bureau en même temps si cela lui est utile.
Les accès et les possibilités d’action dans les fenêtres sont régis par les habilitations attribuées à chaque utilisateur.
Un fonctionnaire qui bénéficierait de tous les droits aurait accès à l’ensemble des fenêtres, et disposerait de toutes les fonctionnalités.
Une fenêtre est structurée en 2 composants :
Tout le code associé à la fenêtre (logique programmée) est ainsi concentré dans une fonction unique, éditable d’un bloc. L’écran dissocié (présentation) permet de travailler sur une maquette enchaînée de l’application, bien en amont de la programmation proprement dite.
Perpendiculairement à ce découpage, les fenêtres sont typées. Chaque fenêtre est ainsi issue d’un ancêtre, qui porte en lui la présentation et la logique générique (en particulier la cinématique) propres à son type.
Dans la fonction logique associée à la fenêtre, seules les considérations Métier (réellement fonctionnelles) apparaissent.
La fonction logique regroupe donc tout le nécessaire fonctionnel, et seulement le nécessaire, en un unique élément éditable d’un bloc. Pour la maintenance, c’est ce qu’on peut faire de plus simple.
Les fonctions de Marianne Bureau sont directement dérivées de la structure des données :
On dénombre 500 fenêtres principales, 400 fenêtres de détail, et 300 fenêtres de recherche. Les rapports sont au nombre de 1000.
L’application intègre les fonctions d’import FEGM.
Tous les rapports peuvent être exportés aux différents formats numériques courants (Calc, Text, PDF…).
De nombreux rapports fournissent les informations selon une structure permettant un export direct au format FEGM.
Marianne Web
Marianne Web est écrit en HTML5/CSS3 full responsive. Java assure la partie back end.
C’est le portail complet des citoyens et de tous les utilisateurs externes à l’administration.
Les fonctions délivrées par Marianne Web recouvrent pour l’essentiel les domaines suivants :
Comme pour Marianne Bureau, les formulaires sont très normés. Un outil simple de reporting complète le système de formulaires.
Marianne Web propose également toute la documentation centralisée sur la vie publique, dans ses moindres détails. C’est la suite du portail vie-publique.fr de 2019.
Marianne Mobiles
Marianne Mobiles existe en version Android, Windows CE et IOS.
Les fonctionnalités proposées sont un sous-ensemble de Marianne Web. Ces fonctionnalités ne concernent que les citoyens personnes physiques.
Les entreprises doivent utiliser Marianne Web.
La gestion des habilitations
La gestion des habilitations est un module spécifique à l’intérieur de Marianne Bureau.
Quelques personnes dûment assermentées (MOA Marianne) sont autorisées à exploiter ce module en mise à jour.
Les habilitations concernent l’ensemble du système d’informations, et pas seulement Marianne en direct (Bureau, Web ou Mobiles).
Le module Habilitations gère également, pour les utilisateurs internes :
A chaque utilisateur du système est associé un profil de droits implicite (automatique) en fonction de son rôle : citoyen particulier, fournisseur, fonctionnaires, conseiller Marianne… Ce profil implicite peut être forcé par l’équipe Habilitations pour un profil explicite.
Un profil se décline au plus profond des possibilités du système :
Le profil indique également, pour chaque fenêtre, les données accessibles, en consultation et/ou en mise à jour, à l’intérieur de la base de données. Par exemple, un citoyen lambda ne peut voir que les informations qui le concernent, alors qu’il a le droit d’utiliser des fenêtres qui, potentiellement, permettent de visualiser le contenu entier d’une table.
A chaque liste de chaque fenêtre et à chaque rapport, à partir du moment où certaines occurrences potentielles doivent être masquées, sont associés l’ensemble des filtres potentiels. Ces filtres se surajoutent aux critères permettant de garnir la liste.
Le profil indique alors pour chaque liste le filtre applicable.
Ces règles sont implémentées dans l’application Marianne en direct de la manière suivante :
Au-delà de la gestion centralisée des profils, d’autres mécanismes interviennent, tels que la délégation temporaire ou permanente de droits d’un utilisateur à un autre. Les délégations implicites sont déjà intégrées dans la définition des profils implicites (le médecin traitant peut voir le dossier Santé de ses patients).
Marianne permet à chaque utilisateur de définir ses délégations explicites, temporaires ou non.
Au niveau de la base Oracle, il n’y a pas de gestion de droits. A chaque utilisateur de Marianne Bureau correspond un user Oracle associé à un rôle Oracle commun. User = les 10 chiffres de l’identifiant Citoyen.
Les connexions en provenance de Marianne Web et Marianne Mobiles se font via un user générique.
Les importations de masse
Les importations de masse concernent :
Elles prennent la forme de fichiers au format FEGM. Ces fichiers sont préparés par les systèmes d’information des entités émettrices.
Les entreprises utilisent ce canal quand elles génèrent des volumes difficilement gérables via Marianne Web.
Un serveur FTP est à disposition des entités émettrices pour leurs dépôts. A chaque entité est associé un répertoire ; son nom reprend l’identifiant Marianne de l’entité (10 chiffres).
Pour pouvoir déposer, un organisme doit être référencé. Des contrôles d’adresse IP sont effectués.
Le module Imports de masse Marianne tourne en permanence. Dès qu’il détecte un nouveau fichier, il le traite :
Différents niveaux de blocage ou d’information sont gérés :
L’entreprise émettrice dispose de ce compte rendu dans son espace Marianne Web.
L'ordonnanceur
Chaque jour, l’ordonnanceur prépare 2 fichiers pour la Banque de France :
Pour constituer ces 2 fichiers, l’ordonnanceur balaye l’ensemble des comptes.
La règle générale est la suivante :
D’autres règles s’ajoutent :
Un ordre de virement génère une écriture débitrice sur le compte Marianne qui rend le solde de celui-ci nul.
A l’inverse, un ordre de prélèvement génère une écriture créditrice sur le compte Marianne qui rend le solde de celui-ci nul.
La Banque de France prend en charge les 2 fichiers.
A l’issue des opérations interbancaires, la Banque de France dépose dans l’espace Imports de masse des fichiers de compte rendus (format FEGM) :
Le centre d'acquisition de données physiques
Par rapport à 2019, il y a 100 fois moins d’envois de courrier physique par les citoyens, les fournisseurs, et tous les tiers en général, vers l’administration. En effet, tout se passe normalement via Marianne.
En particulier :
Le courrier reçu n’a pas pour autant complètement disparu.
Tous les courriers arrivent à l’un des 3 centres d’acquisition de données Marianne :
La Poste et les sociétés de routage livrent au centre le plus direct pour eux.
Il y a un centre d’acquisition par datacenter (Athos, Porthos et Aramis). Cela leur permet de bénéficier du très haut degré de protection de ces périmètres.
Le personnel est au statut Fonctionnaire ou contractuel dûment assermenté.
Après traitement, les documents originaux, munis de leur code Barre, sont regroupés dans des dossiers Carton, puis sur des palettes adaptées. Celles ci sont ensuite rangées dans des entrepôts ad hoc. Le classement s’effectue dans l’ordre d’arrivée. Bien sûr, le traitement et le stockage n’est pas le même en fonction de la valeur du document (confidentialité, valeur historique…).
Aujourd’hui, compte tenu du faible flux de courriers entrant, l’essentiel de l’activité des 3 centres consiste à numériser l’ensemble des documents administratifs nationaux et locaux. C’est un travail colossal, qui va durer encore plusieurs années.
Il semble difficile d’en faire davantage en matière de mutualisation de moyens.
Le centre d'éditique
L’édition de documents imprimés représente un volume dérisoire par rapport à 2019 :
Les éditions imprimées et les mailings qui n’ont pas un caractère nominatif ou confidentiel sont sous-traitées à des entreprises privées.
Le reste ( ? ) est traité en interne au centre d’éditique localisé à la Cité Nationale :
Le personnel a le statut de fonctionnaire ou de contractuel dûment assermenté.
Les régions et les intercos utilisent ces mêmes outils.
Il semble difficile d’en faire davantage plus en matière de mutualisation de moyens.