Open Wide
menu menu
Développement spécifique Java

Présentation de l'offre

Il est fréquent d'avoir besoin d'une application spécifique qui répond à des besoins précis. L'approche consistant à utiliser un produit fini du type Liferay n'est alors pas forcément judicieuse.

C'est notamment particulièrement le cas dans le domaine des applications de gestion.

Les projets de développement spécifique présente des défis différents des projets d'intégration de produits finis. C'est pour cela qu'Open Wide SI a mis en place une offre répondant à ce besoin précis. Cette offre est basée sur deux principes forts :

  • Un cadre technique agile basé sur des composants Open Source sélectionnés avec soin pour leur qualité technique et leur pérennité ;
  • Une méthodologie projet spécifique permettant un suivi efficace du projet.

Cette offre se base sur un ensemble de composants Java appelés OWSI Core.

Approche technique

Présentation générale

Au fur et à mesure des projets, Open Wide a sélectionné un certain nombre de composants Java permettant de répondre aux besoins de ses clients. Ce référentiel de composants est régulièrement enrichi et mis à jour de manière à profiter des dernières avancées de l'éco-système Java Open Source.

Les composants typiquement mis en oeuvre sont les suivants :

  • IDE : Eclipse et M2Eclipse
  • Environnement de build et de livraison : Maven
  • Framework : Spring
  • Sécurité (authentification et autorisations) : Spring Security
  • ORM : Hibernate (norme JPA2 et utilisation de QueryDSL)
  • Recherche : Lucene, Hibernate Search, Solr
  • MVC / Présentation : Apache Wicket ou Spring MVC / JSP
  • GED : Alfresco ou Jackrabbit suivant les besoins
  • Manipulation de formats divers : Apache POI (Excel), iText (PDF), XHTMLRenderer (PDF), Jackson (JSON)
  • Services Rest : Jersey
  • Frameworks Javascript : jQuery (et wiQuery), Dojo, OpenLayers

Au delà de ce référentiel de composants, nous avons capitalisé au fur et à mesure des projets un ensemble de composants nommé OWSI Core. Cette capitalisation permet de démarrer les projets très efficacement sur des bases saines et éprouvées tout en concevant une application sur mesure.

Cette capitalisation se veut pragmatique et réaliste et n'a pas du tout pour objectif de mener vers un framework tout en un complexe. Nous avons notamment pour objectif de rester agile et d'être capable d'intégrer rapidement de nouveaux composants ou de remplacer un composant par un autre si nécessaire pour un projet donné.

Nous sommes ainsi en mesure de mettre en place rapidement le socle technologique d'un projet en se basant sur des composants reconnus et largement déployés, tout en s'adaptant à vos contraintes.

Zoom sur Apache Wicket

Si la majorité des choix faits par Open Wide sont relativement classiques dans le monde du développement Java actuel, le choix d'Apache Wicket pour la partie présentation est plutôt original.

Cette solution, développée au sein de la fondation Apache, est une alternative aux architectures MVC habituelles et qui posent un ensemble de postulats :

  • Approche composants : on crée des composants autonomes et réutilisables, ce qui permet une capitalisation rapide ;
  • Tout ce qu'on peut faire en Java est fait en Java : le maximum de logique est compilé. Le reste est en HTML. Wicket reste ainsi facilement maîtrisable car il se base sur des technologies courantes et parfaitement maîtrisées par beaucoup de développeurs ;
  • Une couche Ajax simple et facile à mettre en oeuvre s'inscrivant parfaitement dans la logique de composants : on peut mettre en place très rapidement et de manière fiable des composants Ajax sans faire de Javascript ;
  • La capacité à conserver un typage fort d'un bout à l'autre de l'application grâce à une intégration avec le composant Bindgen ;
  • Des intégrations de qualité avec des composants classiques de l'écosystème Open Source :
    • wiQuery qui intègre Wicket et jQuery ;
    • une intégration avec Bindgen qui permet de conserver un typage fort ;
    • ...

Le résultat est le suivant :

  • Une courbe d'apprentissage très rapide, une fois intégrés les quelques concepts de base de Wicket ;
  • Des applications solides et pérennes ;
  • Une parfaite maîtrise de la mise en page car on conserve une maîtrise complète sur le HTML ;
  • La capacité à faire une bonne partie des appels Ajax habituels sans faire de code Javascript.

Intégration dans votre SI

L'intégration de l'application dans le SI est un composant essentiel de la réussite d'un projet.

De par les choix technologiques faits, nous sommes tout à fait à même de :

  • nous connecter à différents éléments de votre SI (LDAP, Active Directory, GED...)
  • respecter les contraintes de votre SI : serveurs d'applications Tomcat, JBoss, Weblogic, bases de données PostgreSQL, MySQL ou Oracle

Approche méthodologique

Pour l'ensemble des projets de développement spécifique, nous mettons en place une organisation et des outils spécifiques nous permettant de :

  • garder le contrôle du projet et éviter les dérives de planning
  • sécuriser les risques techniques
  • garantir la qualité technique et la qualité perçue

Démarche projet

Notre démarche projet se situe à mi-chemin entre les démarches traditionnelles et les démarches agiles :

  • nous pensons qu'une phase de spécifications est nécessaire pour poser les bases de l'application et être sûr que nous intégrons bien votre métier
  • nous définissons l'architecture générale de l'application : cette phase est rapide vu que nous basons l'ensemble de nos applications sur un socle commun
  • une fois cette première phase passée, nous sommes en mesure de montrer les progrès faits sur l'application au fur et à mesure de l'avancement du projet
  • nous travaillons ensuite sur des cycles de développement très courts (1 à 2 semaines suivant la taille de l'équipe). Chaque cycle est composé comme suit :
    • définition des objectifs du cycle
    • développement de nouvelles fonctionnalités
    • consolidation, revue de code et recette de ces fonctionnalités
  • l'objectif principal est d'éviter de reporter la finalisation en fin de projet, souvent source de décalages de planning.

Outils

Open Wide a mis en place depuis plusieurs années un ensemble d'outils permettant de garder le contrôle des projets et d'en assurer la qualité :

  • Gestion de sources sur l'ensemble des projets
  • Intégration continue via Jenkins (anciennement Hudson)
  • Analyse de qualité logicielle via Sonar - auquel nous avons contribué le support PostgreSQL
  • Processus de build et de livraison automatisé via Maven
Composants
Logo Spring
Logo Hibernate
Logo Wicket
Outils
Logo Jenkins
Logo Sonar
Et hop un petit spamtrap : spam@teaser.fr