MyDMAM a 3 ans

10/12/2015, un nouvel anniversaire qui marque une année importante pour ce projet.

Tout d’abord, la parution d’un journal de présentation du projet sur LinuxFR et sur le Journal du Hacker. Les quelques retours ont montré un certain intérêt de la chose. L’approche atypique de MyDMAM lui apporter de la curiosité, sans craintes ni critiques sur le principe.

En un an, bien qu’il n’y a eu que très peu de publication de nouvelles versions, des changements sont bien présents.

La suppression des UsersAction

L’approche était trop complexe et trop limitée qui proposait une API soit disante pratique, mais très lourde à implémenter, et qui au final c’est montrée trop bloquante à la première vraie implémentation. Bloquante a en être inutilisable. C’est ce qui s’appelle se planter.

Jeter une grosse portion de code écrite sur un gros mois de travail n’est pas simple. Mais cette expérience aura été un tremplin pour la suite : React.

L’arrivée de React

Cet création, née des les inventeurs fous de chez Facebook, est en train de révolutionner l’interface web de MyDMAM. Tout devient plus simple, plus clair, et plus souple. Le mode de pensée JQuery ralentissait fortement les évolutions coté interface web.

L’API AsyncJS

L’arrivée de React est accompagnée de la création d’une solution de contrôleurs à la façon Play pour échanger de vrais objets Java avec Javascript, coté navigateur web. De façon quasi transparente bien sur, grace à l’aide de Gson. L’ajout d’un routeur JS permet de faire monter en puissance le dev. cote web tout en restant simple coté Java/Play.

Plus asynchrone, plus fluide, plus dynamique, le couple React + AsyncJS est (en partie) la réponse à l’échec des UsersAction et une porte de sortie vers Play 2 avec l’abandon progressif de Groovy coté vues Play.

Tout ceci permettra aussi un jour d’avoir une API full REST à coté de l’interface web, sans avoir besoin de réécrire quoi que se soit coté Java.

De petites améliorations en tout genre

En vrac :

  • La création d’un cache pour les opérations de navigation dans les fichiers
  • La refonte de l’API Storage, l’une des plus anciennes portions de code de MyDMAM
  • La protection des attaques de force brute sur Play
  • Le passage sur Java 8 (et surtout l’abandon de Java 7) qui à permis de mettre un peu à jour ElasticSearch
  • Le passage sur Play 1.3 et l’évolution du nouveau système de module de Play.
  • L’arrêt du support d’Internet Explorer 8 avec l’arrivée de React
  • Le remplacement de tous les logs par log4j.

Ce qui va arriver en 2016

Si tout va bien :

  • Un système de watchfolders relié avec un transcodeur dans une architecture distribuée (plusieurs instances sur plusieurs watchfolders avec plusieurs instances de transcodeurs). Il marche. Il demande à être testé avec de vrais fichiers en situation de production. Il reste à lui donner une interface graphique correcte, pour le piloter/surveiller.
  • Un serveur FTP reposant sur Apache FTP Server. Il va apporter un suivi d’activité précis et en temps reel des instances, et une vraie gestion du cycle de vie des comptes de leur création à leur expiration et purge automatique. Chaque instance aura une certaine autonomie dans sa configuration, au niveau des comptes et des règles de stockage. Un utilisateur pourra simplement gérer des comptes FTP et aura enfin les réponses aux questions : Ai-je reçu de nouveaux fichiers ? As-t’on récupéré ce que j’ai mis à disposition ? Et l’administrateur n’aura plus à faire de ménage dans les fichiers obsoletes. Une révolution. Il est écrit et en plein debug. L’interface graphique est quasiment terminée.
  • Une nouvelle interface graphique pour la gestion des jobs et des instances. Ecrite avec React, bien sur.
  • Des paquets Debian pour une installation très simplifiée.

A suivre donc.