Éditeur de logiciels libres au service de votre dématérialisation
Télécharger
Maarch Courrier
Télécharger
Maarch RM
Innovation - Word Cloud
L’année 2013 a commencé ! L’heure est venue de dresser

un bilan de nos Recherches et Développements réalisés en 2012.

Nos chantiers R&D 2012 :

1. moteur de notifications d’événements ;

2. module de capture de documents tout-venant ;

3. intégration et contribution à la norme SEDA version 0.2 et 1.0 ;

4. élaboration du framework Maarch 2.0 ;

5. portage de Maarch sur systèmes IBM ;

6. intégration bureautique forte ;

7. portabilité sur supports nomades.

1. Moteur de notifications d’événements

L’historisation des événements était bien couverte mais pas assez affinée. Afin de disposer d’un moteur de notifications efficace et paramétrable, nous avons dû revoir notre copie notamment sur le modèle de données de l’objet history. Cela a demandé par la suite de revoir tous les appels aux fonctionnalités d’historisation.

Pour d’éviter de plomber les performances de notre framework, nous avons décidé de désynchroniser l’envoi des notifications de la partie graphique. Nous avons donc utilisé un système de pile pour empiler les événements à notifier. Ces derniers sont dépilés par batch.

L’utilisateur de l’application a la possibilité d’être notifié par email ou via un flux RSS.

Une des principales difficultés a été de s’intégrer avec tous les types de protocole de communication existant avec un serveur de mail. Nous avons notamment contribué à améliorer la librairie PHP MimeMail en y intégrant le support de sendmail.

2. Module de capture de documents tout-venant

Ce module permet à Maarch d’ingérer des documents de différentes natures et provenances.

Nous y avons intégré un moteur d’engineering de PDF, le moteur d’OCR Tesseract, un moteur de parsing du format MIMEMAIL, un moteur de LAD et différents connecteurs de versement vers Maarch.

Ce module est unique dans le monde du logiciel PHP. Il permet de séparer, reconnaitre et convertir les documents qui lui sont proposés (via spool, scanner, mails, …).

Nous avons surtout été confrontés à des problèmes de performance et d’hétérogénéité des formats des documents entrants.

3. Intégration et contribution à la norme SEDA

Nous avons implémenté le protocole SEDA (Système d’Echange des Documents d’Archive). D’abord en version 0.2 puis en version 1.0 (premier logiciel à l’intégrer).

Cette intégration a été difficile pour les raisons suivantes :

  • complexité du schéma de données de la norme ;
  • norme adaptée aux archives publiques, travail initial de vulgarisation du protocole ;
  • il fallait produire une interface ergonomique ;
  • nous devions désynchroniser le rattachement des ressources numériques au bordereau entre le poste client et le serveur;
  • optimisation des performances de transfert de bordereaux ;
  • passage du SEDA 0.2 à la version 1.0.

Maarch participe également activement au groupe de travail AFNOR/CG46/CM4 sur l’interopérabilité technique du protocole.

4. Elaboration du nouveau Framework Maarch 2.0

Nous avons décidé de refondre notre Framework afin de mieux séparer les couches stockage, accès aux données, présentation et fonctionnalités métiers. Cette refonte s’avère essentielle pour améliorer la productivité de nos équipes de développement et de support.

Le Framework 2.0 sera aussi plus accessible à notre communauté « technique » constituée d’intégrateurs et d’indépendants.

Nous avons donc :

  • créée un modèle de schéma de données totalement dynamique au format XSD ;
  • été confrontés à des problèmes de complexité de structure de données. En effet, il n’a pas été simple de décrire uniformément des structures d’objets complexes ou monolithiques indépendamment des technologies de stockage et de présentation ;
  • créé un moteur de templating pour séparer la partie présentation de la couche métier. Le défi de cette évolution aura été de respecter strictement les standards XML et HTML ;
  • été confrontés à des problèmes de performance car nous avons ajouté des couches d’abstractions supplémentaires par rapport à la version 1.0. Ce qui a eu initialement tendance à ralentir l’application. Nous avons enquêté sur ce problème à l’aide de méthodes de profiling. Cette difficulté a été résolue grâce à une meilleure mise en cache du schéma de données ;
  • ajouté un nouveau moteur de gestion des langues afin d’y apporter une plus grande granularité sur les traductions et les messages.

5. Portage de Maarch sur systèmes IBM : Application Maarch4i

Maarch est le premier système d’archivage et de GED open source sur l’environnement propriétaire IBM.

La principale contrainte rencontrée a été liée au système d’exploitation, totalement différent de ce que l’on avait connu précédemment. Nous avons dû refondre la classe de connexion au SGBD afin de normaliser les types de données pour qu’ils soient compatibles sur DB2, POSTGRES, MYSQL, ORACLE et MSSQL.

6. Intégration bureautique forte

C’était la fonction qui nous manquait afin de passer un cap dans le domaine de la gestion de contenu.

Nous avons réussi le tour de force de pouvoir piloter depuis l’interface web Maarch les outils préférés de l’utilisateur pour qu’il puisse par exemple éditer un document réponse à un courrier, un tableau de suivi d’activité, ou n’importe quel document numérique.

Nous avons changé de technologie pour réaliser l’interface entre Maarch et le poste client. Nous avons créé une applet Java.

S’interfacer avec le poste client engendre forcément des problèmes d’environnement. Cela a été le principal problème rencontré. Nous avons d’ailleurs dû revoir plusieurs fois notre copie pour s’adapter aux différents OS et éditeurs de contenu.

7. Portabilité sur supports nomades

Nous avons commencé un travail de fond, rendre Maarch accessible sur tous les supports nomades.

On s’est imposé une contrainte forte : ne pas développer d’application spécifique à un support (Mac vs Androïd).

Cette contrainte constitue le principal défi de ce poste de développement car adapter l’affichage de notre application en prenant en compte notamment un espace d’affichage très réduit n’est pas chose aisée.

Nous étions mal partis initialement avec l’utilisation d’un framework JavaScript qui ne garantissait pas la portabilité sur tous les supports.

Nous avons au final opté pour les nouveaux standards de développement web afin de résoudre ce problème : WEBAPP à base d’HTML5 et de CSS3.

Maarch accorde une place importante à la recherche et au développement pour offrir à ses clients une application toujours plus pragmatique et performante.

Laurent Giovannoni