LaForge
Un article de Agora2ia.
Cette page est dédiée à la présentation de La Forge 2ia.net dans son ensemble : elle cherche à répondre aux questions « Pourquoi ? » , « Comment ? » et « Quoi ? ».
Voir la page LaForgePLP pour les détails pratiques et techniques... et LaForgeToBurn !
Sommaire |
Pourquoi ?
Ayant pas mal de DVD, voire de plus en plus, cela fait quelques temps déjà que je souhaite réaliser une application permettant de gérer cette collection et intégrant quelques plus « perso » tels que un QCM sur les films, les acteurs..., une « borne d’accès » via PocketPc ou encore l'intégration d'un lecteur de code barres via le PocketPc (pour faciliter la gestion : prêts, location, nouvel achat...)...
Autre piste comme support de cette architecture : la Domotique.
Cette envie est donc le prétexte à l'utilisation à la fois d'outils permettant de rôder un processus « industriel » de développement informatique (c'est le « comment »), et à la fois un panel de technologies Java pour répondre aux divers besoin de l'application, voire en créer (c'est le quoi).
La forge est là pour centraliser tous ces efforts, formaliser les acquis et capitaliser le temps passé.
Comment ?
Travaillant depuis plusieurs années dans le monde de l'ExtremeProgramming, autant par chance que par conviction, il est naturel que ses principes et pratiques guident mes choix dans le processus de développement, et donc dans les outils.
L'éditeur intégré : Eclipse 3
La construction de projet :
- A la fois Maven 1.1
- ET Maven2
- Faire un plugin Maven pour travailler sur les 2, voire un sur-plugin Eclipse... ou générer à chaque fois du Maven 2 à partir du Maven 1
L'intégration continue :
- CruiseControl pour Maven 1
- Continuum pour Maven 2
Le travail collaboratif :
Le gestionnaire de version : Subversion
- Un browser de repository comme ViewCVS
- Un client comme TortoiseSVN
La base de données : MySql
Les serveurs :
Le rôle des serveurs est multiple :
- repository Subversion
- déploiement Maven
- repository Maven
- serveur applicatif (faire fonctionner les applications)
Le firewall : KerioPersonalFirewall
La documentation : OpenOffice, DocBook et PDF.
Les facilitateurs, qui sont ces petits outils qui facilitent le développement en particulier, et l'utilisation de Windows en général :
- Ecrans virtuels : Altdesk
- raccourcis dossiers dans exporateur : Dirkey
- Client FTP : FileZilla
- Captures d'écran :
- Raccourcis menu-contextuels :
- Comparateur de fichiers :
- Connexion sécurisé : Putty
- Connexion à distance : UltraVNC
- Barre de lancement :
Quoi ?
L'ensemble des technologies utilisées, sont toutes relatives au langage de développement Java, et cela pour plusieurs raisons.
Tout d’abord c’est en partie celles que j’utilise dans ma mission actuelle : cela me permet donc de me faire la main.
Je voulais un langage qui puisse me servir dans ma vie professionnelle, donc un langage à la fois utilisé maintenant, et utilisable plus tard.
Venant au départ du monde C++ (Cpp), j’ai grandement été séduit par Java : facilité du développement, de la quantité et de la qualité des outils et des librairies disponibles… C’est donc pour cela que j’ai préféré Java à Cpp par exemple.
La diversité des technologies disponibles dans le monde Java, permettent d’envisager quasiment tous les types d’applications, et donc de besoins.
Enfin, il est maintenant possible d’avoir une plateforme de développement Java entièrement OpenSource, couvrant l’intégralité de la chaîne de développement : le but ici est notamment d’identifier à la fois les meilleurs maillons (le meilleur outil dans chaque catégorie), mais aussi de garantir qu’il sont bien chaînables, que tous ces outils collaborent de manière efficace.
- Clients :
- JavaWebStart / JNLP pour l'accès/lancement de l'application.
- J2EE/JAXP pour les WebServices (connexion à du PHP)
- J2EE/EJB
- J2EE/JNDI et LDAP - OpenLdap pour la gestion des ressources.
- J2EE/JDBC et Hibernate pour l'accès à la base de données.
- SystemeMultiAgents : Jade / Leap
- Technologies avancées :
- Système expert : Drools, Jess,
- ProgrammationParContraintes,
- LogiqueFloue,
- AlgorithmesGénétiques
- X10
- RSS
L'architecture logicielle
pdf # Image:LaForge-Architecture.svg # Image:LaForge-Architecture.sxi
Problématiques
Etre capable de reproduire une plateforme de développement
- Quels sont :
- Les fichiers inchangés (ceux de l'installation de l'outil)
- Et les fichiers modifiés (de configuration de l'outil, de l'application en développement...)
- Pour être capable de reproduire la plateforme de développement on peut utiliser :
Projets simmilaires
Autres themes
DRH Manager
Le HR-XML Consortium :
- Le HR-XML Consortium.
- Et notamment Employment History.
Avec OpenOffice :
- XML au cœur des suites Office
- OpenOffice 1.1 et XML
- OpenOffice.org XML Essentials
- Thinking XML: The open office file format
- Présentation d'OpenOffice.org
Les bases de données XML :