Intégration de Ruby On Rails et des services Java
9 01 2008Un de nos clients, HandiSup, recherchait un moyen de gérer plus efficacement l’affectation de leurs intervenants ; fournissant des services à la personne ils doivent affecter des personnes (les accompagnateurs) à des besoins donnés (les accompagnés). Jusqu’à présent tout était construit à la main : les listes d’accompagnateurs, d’accompagnés, de demandes, les plannings…
Notre applicatif Kalendari a été conçu pour répondre à leur problématique de gestion de ressources : Kalendari leur permet de gérer les accompagnateurs, les accompagnés et les demandes de manière simple via une interface web.
Restait à résoudre la facette la plus intéressante du problème : la génération automatique de plannings. Lancés initialement sur une solution faite maison nous nous sommes ensuite orientés vers l’utilisation d’un solveur libre. Gecode/R,des bindings Ruby pour Gecode, était une solution intéressante, mais à l’époque en phase initiale de développement — donc potentiellement peu stable et dont l’API était sujette à de grands changements.
Nous nous sommes finalement fixés sur l’architecture suivante :
- la gestion CRUD des données se fait à partir de l’application Rails (gestion des accompagnateurs, accompagnés, demandes, etc.)
- l’affectation automatique des accompagnateurs est effectuée grâce à un solveur de contraintes : Choco, un solveur libre développé en Java par l’équipe Contraintes de l’Ecole des Mines de Nantes
- l’interconnexion entre les deux composants du système se faisant grâce à Active Messaging et un serveur Stomp.
Catégories : Français, Ruby On Rails






