Annexe outils et framework

publicité
GWT (Google Web Toolkit)
(La couche RPC utilise principalement le GWT dans la nouvelle architecture)
GWT (Google Web Toolkit) est un framework open source de développement d'applications web mettant en
oeuvre AJAX et développé par Bruce Johnson et Google.
Mi-2006, Google a diffusé GWT qui est un outil de développement d'applications de type RIA offrant une
mise en oeuvre novatrice : le but est de faciliter le développement d'applications web mettant en oeuvre
Ajax en faisant abstraction des incompatibilités des principaux navigateurs.
GWT propose de nombreuses fonctionnalités pour développer une application exécutable dans un navigateur
et présetnant des comportements similaires à ceux d'une application desktop :











création d'applications graphiques s'exécutant dans un navigateur
pas besoin d'écrire du code Javascript sauf pour des besoins très spécifiques comme l'intégration
d'une bibliothèque JavaScript existante
utilisation de CSS pour personnaliser l'apparence
mise en oeuvre d'Ajax sans manipuler l'arbre DOM de la page mais en utilisant des objets Java
un ensemble riche de composants (widgets et panels)
communication avec le serveur grâce à des appels asynchrones en échangeant des objets Java et en
utilisant des exceptions pour signifier des problèmes
internationalisation
un système de gestion de l'historique sur le navigateur
un parser XML
détection des erreurs à la compilation
...
L'utilisation de GWT présente plusieurs avantages :






pas de code JavaScript à écrire
utilisation de Java comme langage de développement
une meilleure productivité liée à l'utilisation du seul langage Java (un seul langage à utiliser, mieux
connu que d'autres technologies notamment JavaScript, mise en oeuvre d'un débogueur, utilisation
d'un IDE Java, ...)
hormis les styles CSS et la page HTML qui encapsule l'application, il n'y a pas d'utilisation directe
de technologies web
le code généré par GWT supporte les principaux navigateurs
la prise en main est facile même pour des débutants ce qui lui confert une bonne courbe
d'apprentissage
Le site officiel de GWT est à l'url http://code.google.com/webtoolkit/
Hibernate
(La couche DAO de la nouvelle architecture utilise Hibernet)
Hibernate est une solution open source de type ORM (Object Relational Mapping) qui permet de faciliter le
développement de la couche persistance d'une application. Hibernate permet donc de représenter une base
de données en objets Java et vice versa.
Hibernate facilite la persistence et la recherche de données dans une base de données en réalisant luimême la création des objets et les traitements de remplissage de ceux-ci en accédant à la base de données.
La quantité de code ainsi épargnée est très importante d'autant que ce code est généralement fastidieux et
redondant.
Hibernate est très populaire notamment à cause de ses bonnes performances et de son ouverture à de
nombreuses bases de données.
Les bases de données supportées sont les principales du marché : DB2, Oracle, MySQL, PostgreSQL,
Sybase, SQL Server, Sap DB, Interbase, ...
Le site officiel http://www.hibernate.org contient beaucoup d'informations sur l'outil et propose de le
télécharger ainsi que sa documentation.
Hibernate a besoin de plusieurs éléments pour fonctionner :



une classe de type javabean qui encapsule les données d'une occurrence d'une table
un fichier de configuration qui assure la correspondance entre la classe et la table (mapping)
des propriétés de configuration notamment des informations concernant la connexion à la base de
données
Une fois ces éléments correctement définis, il est possible d'utiliser Hibernate dans le code des
traitements à réaliser. L'architecture d'Hibernate est donc la suivante :
Apache Maven
Apache Maven est un outil pour la gestion et l'automatisation de production des projets
logiciels Java en général et Java EE en particulier. L'objectif recherché est comparable au
système Make sous Unix : produire un logiciel à partir de ses sources, en optimisant les tâches
réalisées à cette fin et en garantissant le bon ordre de fabrication.
Il est semblable à l'outil Ant, mais fournit des moyens de configuration plus simples, eux
aussi basés sur le format XML. Maven est géré par l'organisation Apache Software
Foundation. Précédemment Maven était une branche de l'organisation Jakarta Project.
Maven utilise un paradigme connu sous le nom de Project Object Model (POM) afin de
décrire un projet logiciel, ses dépendances avec des modules externes et l'ordre à suivre pour
sa production. Il est livré avec un grand nombre de tâches pré-définies, comme la compilation
de code Java ou encore sa modularisation.
Un élément clé et relativement spécifique de Maven est son aptitude à fonctionner en réseau.
Une des motivations historiques de cet outil est de fournir un moyen de synchroniser des
projets indépendants : publication standardisée d'information, distribution automatique de
modules jar. Ainsi en version de base, Maven peut dynamiquement télécharger du matériel sur
des dépôts logiciels connus. Il propose ainsi la synchronisation transparente de modules
nécessaires.
Maven1 et Maven2 ont été développés en parallèle mais les versions futures seront basées sur
la structure de la deuxième version. Les parties suivantes de l'article traitent en priorité
Maven2.
Jenkins
Jenkins est un outil open source d'intégration continue, fork de l'outil Hudson après les
différends entre son auteur, Kohsuke Kawaguchi, et Oracle. Écrit en Java, Jenkins fonctionne
dans un conteneur de servlets tel qu’Apache Tomcat, ou en mode autonome avec son propre
serveur Web embarqué.
Il s'interface avec des systèmes de gestion de versions tels que CVS, Git et Subversion, et
exécute des projets basés sur Apache Ant et Apache Maven aussi bien que des scripts
arbitraires en shell Unix ou batch Windows.
Les générations de projets peuvent être initiées par différents moyens, tels que des
mécanismes de planification similaires au cron, des systèmes de dépendances entre
générations, ou par des requêtes sur certaines URL spécifiques.
Autour de 2008, Jenkins est devenu une alternative populaire1 à l'outil de référence
CruiseControl.
Le 11 janvier 2011, une proposition pour renommer Hudson a été annoncée afin d'éviter des
problèmes avec un éventuel enregistrement (marque déposée) du nom par Oracle2. Après
l'échec des négociations avec Oracle3,4, un vote en faveur du renommage a été entériné le 29
janvier 20115.
Téléchargement