Technologies utilisées
Frameworks Java
- Spring
-
Au delà des gains de l'IoC et de l'AOP, ce conteneur léger permet
surtout d'adopter les bonnes pratiques et les bons reflexes pour une architecture logicielle optimale.
- Hibernate
- Que dire de plus sur ce framework de persistance très largement déployé si ce n'est que nous l'utilisons avec succès depuis ses premières versions. Derrière Hibernate
se cache souvent un framework de cache comme par exemple EHCache ou Terracotta pour des applications distribuées.
- Wicket
- Découvert récemment, ce framework de développement web tout nouveau nous enchante véritablement.
Contrairement aux autres frameworks (Struts, JSF, Tapestry, Velocity, etc.), le HTML n'est pas pollué par une
tag soup
très difficile à aborder pour les graphistes. Le développement de la structure de page est entièrement en Java et se rapproche
de la programmation d'interface par composant (type Swing), ce qui facilite considérablement le débugage.
- Ajax DWR
- Notre framework Ajax préféré pour tranformer des méthodes Java en web services Javascript évolués.
- Spring Batch & Quartz
- Deux solutions complémentaires pour réaliser des traitements périodiques et planifiés. Le premier très complet permet entre autre de définir
des scénarios de reprise en cas de coupure du traitement. Le second, simple à mettre en oeuvre, intégrable avec Spring, offrira une solution robuste pour
vos traitements planifiés
- Axis
- Le framework historique pour les web services SOAP
- CeltiXFire (CXF)
- Issu de la fusion des projets Celtix et XFire, Apache CXF est un framework de web services SOAP très performant.
- Mina
- Pour la réalisation d'un serveur TCP ou UDP, Mina permet de développer rapidement des solutions robustes.
- JasperReport
- Ce framework permet de réaliser de la fusion de données pour la génération de rapports sous toutes ses formes (PDF,
txt, xls, csv, ...). La création des templates de rapport est assurée par l'outil iReport.
- Displaytag
- Ce framework permet des réaliser des éditions web performantes de tableau (tri, pagination) avec possibilité
d'export des tableaux en XLS, CSV, etc. Cette solution est intéressante lorsque la solution JasperReport s'avère trop
lourde à mettre en place.
Frameworks et outils de test
- JUnit
- Un standard pour les test unitaires Java.
- Selenium IDE et Selenium RC
- Très puissant pour les tests d'interfaces web.
- JMeter
- Nous avons réalisé des plans de test de charge avec JMeter. Il est aussi possible de rejouer des logs ou de tester des web services.
- SoapUI
- Outil très complet avec interface graphique pour le développement et les tests de web services.
Outils de développement, intégration continue
- Eclipse
- Notre IDE Java de prédilection.
- maven
- Nous compilons, faisons le packaging, les tests et le déploiement avec Maven.
- Jenkins (anciennement Hudson)
- Ce serveur d'intégration continue est une merveille car très flexible. De nombreux plugins existent pour étendre les
fonctionnalités. Avec quelques plugins de base (comme notamment l'exécution d'un script shell post-build) on peut
très facilement industrialiser un packaging d'application, le lancement des tests et son déploiement.
Jenkins est le fork réalisé par la communauté elle-même pour échapper à Oracle qui
ne voulait pas que le projet aille sur GitHub.
Plus de détails sur le fork Jenkins
.
- iReport (Jasper)
- Cet outil WYSIWIG permet de concevoir des templates de rapports qui alimenteront le framework JasperReport.
Bases de données
- PostgreSQL 8 et 9.0.2
- Nous avons migré toutes nos bases de données en interne sous PostgreSQL 8 avec satisfaction.
Sa maturité en terme de fonctionnalités et de sécurité en fait une solution alternative de choix.
La version 9.0.2 devient un candidat sérieux, notamment avec les possibilités accrues pour le clustering.
- Oracle 10g
- Utilisée par la plupart de nos clients, tous nos consultants pratiquent sur cette base de données.
SIG, cartographie, géolocalisation, géocodage
- GPS, A-GPS (assisted GPS)
- PostgreSQL + PostGIS
- Oracle Spatial et Network Modeling API
- Une couche géographique permettant de s'interfacer avec des logiciels cartographiques comme
ArcView, Mappinfo, Geomap etc. Quant à l'API de calcul d'itinéraire, elle est passablement
bugguée et les fonctionnalités ne sont pas au rendez-vous. Si c'était à refaire, Oracle pourrait
mieux faire. On peut dire qu'Oracle a sorti ce produit parce-qu'il en fallait un pour sa panoplie d'arguments commerciaux...
- Mapinfo / Mapbasic
- SIG bureautique permettant l'édition de données géographiques. On le couple souvent avec
la base de données Oracle Spatial. Mapbasic est un langage de script SIG qui permet d'étendre les
fonctionnalités de Mapinfo.
- Intégration web services cartographiques Mappy, Via Michelin, GoogleMaps
- Depuis 2004, nous pratiquons l'intégration des web services de cartographie dans
les applications web avec Ajax.
Serveurs d'application Java J2EE
- Tomcat
- La dernière version 6 permet un déploiement multi-instance encore plus simple qu'avant et qui facilite
le déploiement et la migration des applications. Quand les EJB s'avèrent adaptés, il est toujours possible d'ajouter
OpenEJB dans Tomcat pour qu'il devienne comme les plus grands serveurs du marché.
- Jetty
- Un serveur d'application Java léger, qui permet d'accélérer les développements avec le plugin maven.
- JBoss
- Quand les EJB, certaines fonctionnalités ou le support sont nécessaires, JBoss s'avère être une solution intéressante.
Systèmes d'exploitation
- Linux
- Nous préconisons la distribution Debian pour la souplesse d'utilisation, la richesse des packages disponibles.
Cependant, nous rencontrons couramment des serveurs Linux Ubuntu ou Redhat ou Mandriva. Notre
culture
*NIX like system
nous permet de nous adapter sur d'autre systèmes Unix.
- OpenBSD
- La très bonne réputation de cet OS en terme de sécurité en fait un candidat de choix pour prendre
en charge tous les services réseau bas niveau (firewall, load-balancer, DNS, DHCP, gateway 6to4, etc.)