Open Source


Depuis sa création, OCTO investit environ 25% du temps de ses consultants en R&D. Cette politique permet de réaliser nos Livres Blancs diffusés gratuitement, nos supports de formation interne, mais aussi des logiciels, que nous mettons pour la plupart en Open Source.

Parmi eux, nous distinguons deux natures différentes : ceux que nous utilisons quotidiennement dans nos missions (analyseurs de performance, usine de développement ..), et ceux que nous diffusons indépendamment, pour le bénéfice de la marque OCTO et de leurs auteurs (micro-crédit, captcha,..).


Octopus Micro Finance www.octopusnetwork.org

Octopus MFS est une suite intégrée permettant la gestion complète d’une institution de micro-crédit : gestion des clients, des contrats, et reporting comptable, risque et règlementaire. Le logiciel a été gracieusement réalisé pour l’ONG Oxus, filiale d’ACTED où il est déployé dans trois pays (Tadjikistan, Afghanistan, Kirghizstan) et une dizaine d’implantations. Le système est multi-établissement, multi-langue, multi-produit, multi-date, et multi-comptabilité.

Groovy http://groovy.codehaus.org

Groovy est un langage dynamique et agile pour la machine virtuelle Java. Ce langage propose une syntaxe expressive et concise très proche de Java mais inspirée par Ruby, Python ou Smalltalk.
Groovy apporte également la notion de closure comme bloc de code réutilisable, des fonctionnalités avancées pour la manipulation d’API Java complexe ou la capacité d’étendre le langage lui-même avec de nouveaux éléments de syntaxes, de nouvelles méthodes ou propriétés grâce à son Meta-Object Protocol qui lui permet de définir facilement des Domain-Specific Languages.
Groovy s’intègre particulièrement bien dans vos applications Java ou peut être aussi utilisé de manière indépendante.
Guillaume Laforge, architecte chez OCTO, est un des développeurs principaux du projet Groovy et est devenu le Project Manager fin 2004. Il est également Spec Lead du JSR6241 qui a pour but de standardiser le langage Groovy au sein du Java Community Process de Sun. Guillaume évangélise l'utilisation du scripting et de Groovy lors de conférences internationales, comme par exemple à JavaOne 2006 où il a démontré l'intérêt du scripting pour le développement d'applications d'entreprise.
Par ailleurs, Guillaume participe à l'écriture du livre "Groovy in Action" pour les éditions Manning, qui devrait sortir en librairies à l'automne 2006.

Avril 2007 : le projet Groovy reçoit le premier prix de l’innovation à la conférence JAX 2007, à Wiesbaden, en Allemagne – la plus grande conférence Java dans ce pays. Ce prix consacre la créativité et l’innovation dont a su faire preuve les concepteurs de ce langage. En concurrence avec 40 autres projets comme l’Enterprise Content Management Nuxeo, ou le designer d’interface graphique Matisse de NetBeans, Groovy a été sélectionné parmi les 10 nominés, pour enfin remporter la victoire lors du choix final du jury. Groovy s’inscrit donc dans la longue liste des créateurs et innovateurs, sur la plus haute marche du podium avec les précédents vainqueurs, comme le framework Spring.

Grails http://grails.org

Grails est un framework Web MVC basé sur Groovy, Spring, Hibernate et Sitemesh, et apporte enfin à la plateforme Java la notion de « codage par convention » popularisé par Ruby on Rails.
Grails abstraie le développeur de la complexité des API sous-jacentes, lui permettant de créer rapidement et efficacement des applications Web robustes et fiables, sans travail fastidieux et récurrent de cablage des différentes API.
Guillaume Laforge est l'initiateur du framework Grails qu'il a lancé en juin 2005. Au travers de son travail sur le langage Groovy, il est rapidement apparu qu'un framework à base d'un langage dynamique permettrait aux développeurs d'applications web de simplifier leur travail en se concentrant sur le fonctionnel de l'application plutôt que sur le code pour gluer tous les composants entre eux. Guillaume participe au projet Grails au travers de contributions d'idées, de code, ou de documentation.

JMonitoring http://forge.octo.com/confluence/display/JMO/

JMonitoring est un framework qui permet d’analyser le comportement d’une application lors de tests de montée en charge.
L’outil permet de définir des points contrôle (appel ou exécution de méthodes via AOP) dans le logiciel ou les librairies qu’il utilise. Le framework enregistre les paramètres d’appel et les temps d’exécution de ces points de contrôle. Le faible overhead de l’outil permet de l’utiliser lors de tests de montée en charge contrairement à des profilers classiques, uniquement adaptés aux phases de développement.
Une application Web permet ensuite d’analyser les résultats en mode macroscopique : statistiques sur les temps d’exécution d’un point de contrôle ; et microscopique : que c’est-il passé sur l’exécution de cette méthode ou requête lorsqu’on a identifié un point singulier.

JCaptcha http://jcaptcha.net

JCaptcha est un framework Java pour la définition et l'intégration de CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart, acronyme déposé par l'université Carnegie Mellon).
Un Captcha est un test automatisé permettant de distinguer l'homme de la machine.
Les CAPTCHAs sont une protection contre les attaques de type dictionnaire, le spam, le vol de ressource ou la corruption de données par des robots.
Le framework JCaptcha fournit un ensemble de composants prêt à l'emploi pour définir des tests de différentes natures (son, image, texte), et les intégrer avec les framework web (spring, struts, filtre, cocoon, tapestry).
JCaptcha est enfin résoluement attentif à l'accessibilité de ses solutions : reconnaitre les Hommes, Tous les Hommes.

Apache Maven http://maven.apache.org
Apache Maven est un outil de gestion de projet logiciel.
Il permet de gérer différentes facettes du développement de tout type de projet (compilation, tests, packaging, déploiement, documentation, ...) à partir d'une description standardisée du projet (Project Object Model).
Maven, apporte aux équipes de nombreux rapports sur la qualité du code produit unifiés au sein d'un site web.
La standardisation apportée au mécanisme de build permet de rapidement le prendre en main et la gestion des dépendances via un repository permet d'offrir une grande souplesse aux composants développés.
Maven est extensible au moyen de plugins qui permettent d'enrichir son offre de services.
Il est l'epine dorsale ideale pour une industrialisation des developpements.

Cargo http://cargo.codehaus.org
Cargo propose une API Java unifiée pour la gestion de serveurs. Il permet de démarrer / arrêter / configurer un serveur et de gérer les différents modules qui peuvent y être déployés.
Des cas typiques d'utilisation de Cargo sont :

  • pour automatiser les tests fonctionnels,
  • pour manipuler des serveurs d'applications à partir d'autres applications (IDE, ...),
  • pour manipuler des archives J2EE y compris la gestion des descripteurs proprietaires des serveurs d'applications,
  • pour générer la configuration d'un serveur d'application.

Au dessus de cette API, le projet Cargo délivre de nombreuses extensions :

  • des tâches pour Apache Ant et des plugins pour Apache Maven pour gérer les serveurs d'applications et faire le
  • déploiement de modules J2EE pour des tests d'intégration ou des tests fonctionnels,
  • des plugins pour des IDE comme IDEA IntelliJ, Netbeans, ...

© 2008 OCTO Technology