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