lundi 24 novembre 2008

Eclipse NowYouCan 2008, Trocadéro, Notes en vrac...

La 3ème édition d'Eclipse NowYouCan a eu lieu le 21 octobre a Paris, Trocadéro dans un cadre magnifique. En arrivant, le petit déjeuner nous attend, il faut prendre des forces avant d'attaquer cette journée qui promet d'être riche en informations. Certaines têtes paraissent familières, ça discute autour des stands, l'ambiance se veut conviviale et studieuse à la fois, enfin tout dépend des groupes...

Présentation d'Eclipse NowYouCan
http://eclipse-nowyoucan.com/?Symposia/Program
Tout commence avec une présentation d'Eclipse NowYouCan par la responsable de l'organisation de l'événement. Le programme est détaillé et l'équipe d'organisation remerciée pour les efforts accomplis cette année. Ça a l'air très alléchant comme prévu, on trépigne déjà sur certaines présentations. Nous sommes une centaine dans la salle. Il y a des retardataires, mais une fois que tout le monde est là, les choses sérieuses peuvent commencer !

Ralf Mueller - Director, Eclipse Ecosystems Europe

Ralf Mueller, directeur d'Eclipse Ecosystems Europe, a commencé par une remise en perspective de l'écosystème Eclipse (open source/marché). Les raisons de sa création, de son succès ainsi que les divers types d'intervenants autour d'Eclipse. Il a utilisé principalement l'exemple de BMW qui a bâti un écosystème utilisé par les industries automobile autour de l'open source/libre et d'Eclipse en remplacement d'un environnement hétérogène (différents produits commerciaux/libres).

Voici mes notes (succinctes) :

Contexte : Automobile / discussions autour des projets open source.

Exposition des différents EcoSystems logiciels:

* Free as in speech (GNU GPL) : Libre
* Free as in bear (EPL) : Free
* Company Driven : Use Free
* Producer/Distributor/Consumer/Community : Eclipse


History of Eclipse (since 2001...)

Fonctionnement Communautaire, Membres

Définition d'Eclipse

"Eclipse is an open source community focused on developing a universal platform of frameworks and exemplary tools that make it easy and cost-effective to build and deploy software in today’s connected and unconnected world.
Eclipse is a consortium of major software vendors, solution providers, corporations, educational and research institutions and individuals working together to create an eco-system that enhances, promotes and cultivates the Eclipse open platform with complementary products, services and capabilities."

Répartition :
IBM 46%
individual 25%

Nombre committers / members en augmentation : + 20 % / an

Graphique deny / use / contribute/ champion / collaborate / redefine :
Exposition des différents mode de participation existants.

EcoSystem Eclipse: Today & Tomorrow - Présentation globale des axes de développement Eclipse.

En résumé: un fort interet de l'open source pour les clients !!

E4 (Eclipse 4) - Jochen Krause - Innoopract
Cette présentation a pour but de nous informer sur le projet qui intéresse tous ceux qui utilisent Eclipse : E4 ! La communauté Eclipse à monter un projet pour faire passer Eclipse à la vitesse supérieure, le but étant de créer une nouvelle génération d'IDE, plus simple, plus rapide, plus orienté Web et surtout permettant de faire des IHM décrits par un format pivot XML (comprenez declarative UI)

Voici mes notes (succinctes) :

The environnement is changing !

What we need:
web 2.0
REST
fast dev. cycle
easy to deploy

slides IDE

what is E4 ?
nextgen platform with:
+ easy
+ sexy (UI & co)
+ services...
+ +++

slides community

Everything in the project e4 is public => transparency

Major Themes:
-better desktop
-bring eclipse to the web !
...

commitment to 3.X
En parallèle des versions 3.x (3.5 et 3.6)

protect the SDK & RAP

3.X => support more than 5 years

3.x plugins will works

coexistence as long as needed

make it easier to build plugins

architural improvment
-more uniform, more flexible, ++ (support backward compatibility)
-dependency injection (spring ?)

non java plugin :
-javascript (groovy)

flexible styling of Eclipse desktop app.

-separate UI definition from real UI
-tweeking eclipse UI
-CSS
-databinding from model to UI (with genericity)
-DOM-based model object

Eclipse Application model
-selection, D&D, progress...
-the 20 more important things
-easy to use / understand

modeling the workbench (xml)
EMF SWT JFace

RWT (RAP widget tools)

Reuse SWT to create web app

2 ways:
UI + Application services on Server
UI on client + Application Services on server

Mashups
-OSGI
- ?

en parallèle de Eclipse 3.6 (=> dans 2 ans = 2010)


E-NOVE - RDTL

Le responsable du projet E-NOVE de la société RDTL est venu nous présenter l'architecture utilisée pour réaliser un système de communication d'un parc de véhicules de transports type BUS. Le besoin étant de mettre en place un système gérant de manière distante et embarquée les services d'affichages, de suivis, de paiement, de compostage, en bref, tous les services informatisés existants dans les BUS.

Les solutions propriétaires existantes n'étant pas satisfaisantes, RDTL s'est tourné vers OSGI et les solutions open-source. Je vous passe la tuyauterie et les schémas en tout genre, mais le projet sembait très riche techniquement et particulièrement novateur ! Une présentation de pionnier dans la matière qui était très interessante.

Mes notes :
Application mobile dans les transports (BUS)
need:
-communication d'informations
-cartographie en temps réel

Open system:
-upgrade the system over the air
-communication + data exchange

Graphique architecture client serveur avec OSGI etc.


Présentation juridique sur les licences
Peu avant l'heure du déjeuné, une intervention sur un thème juridique n'était pas chose aisée. Mais ils l'ont fait ! Les 2 intervenants nous ont présentés les différentes licences.

Mes notes :
1/ Free type licenses
GNU, EUPL, Cecilia A
VIRALE ! (+redistribution)
2/ Semi free licenses
héréditaire
3/ Domain public licenses

Arnaud Buisine/Guillaume Lours - Proxiad - Industrialisation du packaging et des controles qualité logicielle dans Eclipse avec Maven 2

-Cette présentation qui a pour thème l'industrialisation des développements, en somme la mise en place d'une usine de dev comprenant Maven, Continuum, de la génération de code (avec OBEO) et une suite de bonnes pratiques et de façons de faire.

-Pour l'automatisation de la création des projets, Proxiad utilise des Wizard Eclipse personnalisés.
Suite à une question de ma part, on apprend que historiquement ils ont testés l'utilisation des archetypes mais leur maintenabilité difficile à pousser l'utilisation de Wizard.

-L'importance de laisser la possibilité aux développeurs d'utiliser les même outils que dans l'intégration continue est primordiale pour permettre une bonne utilisation de la chaine de construction. Tous les outils de type checkstyle, PMD ou autre sont accessibles sur l'environnement de developpement. Le but est de pouvoir vérifier par soit même la qualité du code avant de la commiter.

-On ne doit pas être obligé de lancer de commandes Maven sur le poste de développement pour faire fonctionner les projets. Ca peut paraitre logique mais ce n'est pas forcément respecté...

-Je lance un pavé dans la marre et je pose une question concernant le contrôle de l'architecture par la chaine de construction. Réponse plus que correcte: Utilisation de checkstyle avec des pattern de vérification poussés le tout associé à Jdepend. L'architecture est vérifiée à partir de l'utilisation des package et des dépendances au sein des classes java.

-S'en suis une discussion sur le filtering et l'overlay Maven qui sont des sujets épineux car pluôt complexes à mettre en place dans de grandes structures que sont nos clients.

-L'utilisation massive de WTP d'Eclipse pour lancer les applications serveurs des projet est préconisée. Bien plus pratique que de lancer un serveur autonome en dehors de l'environnement de développement. Depuis plusieurs années, ce mode de fonctionnement apparait comme un standard, mais ce n'est forcément le cas partout. Les pauvres...

-Une question est posée concernant le build des projets type plugins Eclipse avec buckminster... encore une façon de se faire remarquer par l'assemblée mais cela ne fait en rien avancer le schmilblik...

Fin de la présentation, après une intervention d'un membre de l'organisation, les temsp alloué a été dépassé, la suite au prochain épisode.


Présentation de ZEND PHP, mes notes :

inconvéniants PHP: les idées reçues ?
-mélange des layers (svc, daos etc...)
-bidouille en totu genre
-d'autres apriori divers

gain de temps en dev ! => argent !

je cite : "le PHP ce n'est pas que des trucs de mickey" => équivalent archi java possible !


Présentation de P2 - Benjamin Cabé (benjamin.cabe anyware-tech com + http://blog.benjamin-cabe.com )

Notions a connaitre:

Installation Unit

Artefact repository: zip, jars, ...

Metadata repository (directory ???) : installation unit

profile

engine : execute provisionning request

touchpoint : runtimes ?


Possibilités:
-bundle pooling
-dev. env
-quick install
-target platform
-deliver installer on CD / USB Key
-different flavour of the product depending on the customer
-install mirrors


Présentation de BIRT - Actuate

ACTUATE = main commiter + project leader (80 devs)

new functionalities:

intéractif
=> ajax
=> web 2.0 function
=> adobe flex...

increase number of users

talend

bdd: mysql, infres, postgresql

spagobi

Crosstab

Cube: drill / = hierarchie

Cube stocké en mémoire

Assistant de saisie des requetes ! ++++

Question sur les Sous rapports ? => Réponse : Non...

vendredi 21 novembre 2008

Que pensez vous de ce blog ? (Test du formulaire Google Doocuments)

Une envie soudaine de tester le formulaire de Google Documents... et voila, un sondage est né !

La possibilité de créer des question avec différents types de réponses, un titre de formulaire... rien de plus ! Simple mais efficace ! Google en somme.



Rien de transcendant mais ca peut être pratique comme outil. Après on peut visualiser les réponses (heureusement ^^) et les analyser.

dimanche 16 novembre 2008

GWT && ( ACEGI || Spring Security )

Il y a quelques temps, j'ai eu pour mission d'ACEGIfier une application Web en GWT.
Le but premier était de sécuriser l'accès aux ressources concernant l'affichage ! Alors pour ce qui est de sécuriser les services exposés etc. ce n'est pas l'objet de ce billet !

Etape 1/
Après quelques recherches sur mon ami google, j'ai pu rapidement me rendre compte qu'il était plutôt préconisé d'utiliser une page html/jsp autonome pour s'authentifier. Soit, n'étant pas un fervent défenseur du tuning applicatif, je n'ai pas perdu de temps avec ça, j'avais bien assez à faire avec ACEGI lui même.
cf:http://www.dotnetguru2.org/bmarchesson/index.php?c=1&more=1&pb=1&tb=1&title=technical_tip_using_acegi_with_gwt
Voici le résultat, pas folichon, n'est ce pas ?! Mais c'est rapide et fonctionnel !

Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<title>My Login Page</title>
</head>
<body>
<h2>Please log in</h2><br>
<form method="POST" action="j_acegi_security_check">
Username: <input type="text" name="j_username"><br>
Password: <input type="password" name="j_password"><br>
<input type="submit" value="Log in >>">
</form>
</body>
</html>

Image:

Etape 2/
Après coup, je me suis aperçu que ma page HTML de login était quelque peu en décalage avec l'application, feuille de style, internationalisation des libellés... J'ai donc réalisé un écran GWT d'authentification d'après le HOWTO d'Instantiations.com ! J'ai ensuite affiché cet écran dans firefox et avec firebug j'ai pu récupérer le code HTML correspondant... Mais ce n'est pas terminé, après quoi, il a fallut ACEGIfier le code HTML.

Je vous passe le code... c'est du GWT et c'est plutôt verbeux !

Image (lors d'une authentification erronée) :





Etape 3/
L'application et l'écran de login étaient donc en phase ! Enfin, jusqu'à ce que je me rende compte que l'écran de login s'affichait différent en fonction des navigateurs... En effet, dans ie6, la fenêtre était déformée ! Normal, GWT ne sert donc pas a rien, il adapte le code HTML en fonction du navigateur... et ayant copier coller le code HTML depuis firefox... bref, il me fallait trouver une autre solution: un module GWT d'authentification !

En ajoutant un module d'authentification dans mon projet GWT, je suis certain de ne plus avoir de problèmes d'affichage ! Et je peux lui appliquer le même style que l'application principale ! Et je peux internationaliser l'authentification de la même façon ! Par contre, je dois modifier ma configuration ACEGI pour authoriser l'accès au fichiers GWT du module de login mais pas au reste de l'application !

J'utilise un FormPanel classique de GWT (pas GWT-EXT) et je le configure pour ACEGI (j_username, j_password, j_acegi_security_check, POST) rien de plus !

Voici le résultat, pas tellement différent qu'à l'étape 2 me direz vous, mais le gain se situe au niveau de la maintenabilité et l'homogénéitéde l'application !

Code :
A venir
Rapidement:
Il faut utiliser un FormPanel de GWT natif.

FormPanel form = new FormPanel();
form.setAction("j_acegi_security_check");

on le configure pour la méthode POST

on ajoute les 2 composants de saisi du login / pass en leur donnant des noms particuliers : j_username et j_password

un bouton de validation avec un listener qui submit : form.submit();

et voila...

Image :

Etape 4/
Il faut maintenant modifier le tout pour créer un module d'authentification autonome et non embarquer dans mon application... Histoire de le réutiliser de la même façon dans d'autres applications avec du SSO par exemple. La suite au prochain épisode !