mercredi 18 juillet 2012

Les missions de formations nécessitent parfois de long déplacements ...


Il faut parfois se déplacer à l'autre bout du monde pour répondre aux besoins de formations de ses clients. En effet, après 3 semaines de formations sur Java and co, c'est en direct de Nouméa en Nouvelle Calédonie  que je vous donne un petit aperçu du rude hiver local ...


mercredi 4 juillet 2012

Atelier RIA : “Développement d’applications RIA avec le Google Web Toolkit”


Ce mercredi 27 Juin, Oxiane Méditerranée a réalisé une présentation de GWT en partenariat avec la CCI de Montpellier et NOVAE LR
NOVAE LR est une association pour le développement des TIC en Languedoc Roussillon.

Le but de cet atelier était de présenter l'approche RIA proposée par Google avec son toolkit pour le web. La grande force de GWT est de développer en Java des composants Javascript permettant une ergonomie riche des applications web.

Cette approche apporte de nombreux avantages : utilisation des outils de la plateforme Java, une optimisation poussée du Javascript, la performance et la scalabilité, une facilité d'apprentissage du framework et une productivité importante des développements.

Différents sujets ont pu être abordés avec notamment un panorama des outils intéressants de GWT : UIBinder, GWT Designer, Speed Tracer ou les nombreuses bibliothèques ... et la présentation de quelques notions avancées de GWT comme le code splitting, les modes d'échanges vers la partie serveur ou encore la gestion native de Javascript par JSNI.

mercredi 13 juin 2012

Paris JUG consacré aux serveurs d'applications


La soirée du 12 juin 2012 du Paris JUG était consacrée aux serveurs d'applications, et plus particulièrement à WebSphere 8.5, Resin et TomEE.

Pour une fois la salle, bien remplie, n'était pas complète, est-ce que la problématique des serveurs d'applications intéresse moins le public du JUG essentiellement constituée de développeurs ?
C’est bien dommage de ne pas vouloir mieux connaitre un outil que l’on utilise tous les jours et qui est essentiel pour les performances des applications.

Une première présentation d'introduction par Antonio Goncalves :

  • Rappel sur ce qu'est un serveur d'application, il y a encore beaucoup de gens qui n'ont pas compris ce qu’est un serveur d’application et son intérêt. En résumé c'est un moteur d'exécution des applications java (conteneur servlet/JSP +  conteneur  EJB) et des SERVICES : Pool de connexions, sécurité, transactions, load-balancing, fail-over, ...),
  • Un petit topo sur le marché des serveurs d'applications : 3 milliards de $ en 2012, et de 5 milliards de $ en 2015 d'où une certaine concurrence, 
  • Les facteurs de différenciation (démarrage, administration, add ons et clustering) 
  • Et aussi un petit slide du Gartner qui positionne WebLogic comme étant le meilleur serveur d'application (pour ceux qui en douteraient mais bon on va ranger de côté les armes pour cette session).


Un petit retour sur le temps de démarrage des serveurs d'applications qui ont tous fait un vrai effort lorsque l'on voit l'exemple de JBoss 5 qui démarrait en 1 minute et Jboss 7 en 5s, il n'y a pas photo.
Il faut aussi reconnaitre qu'avec les notions de profils JEE (Web, Full), les serveurs d'applications ne démarrent pas forcément tout d'où les gains de temps et comme on a rarement besoin de tout c'est un gain intelligent.
Et d'ailleurs, ce critère de différenciation qu'est le démarrage n'en est plus un, vu qu'ils peuvent démarrer en quelques secondes. D'ailleurs je me pose la question maintenant de savoir ce que veut dire maintenant démarrer pour un serveur d'application à part l'affichage du mot clé "STARTED" ? Qu’est ce qui est vraiment chargé ? Est-ce qu'il y a du LAZY Loading des services ?  …
                     

                                                                                              
La présentation sur WAS était particulièrement intéressante et édifiante, et bravo quand même pour le consultant IBM pour sa franchise notamment sur le petit sondage live du début :

  • Combien de personnes utilisent WAS ?

50 personnes (sur environ 200 personnes dans la salle)

  • Qui aime ?

1 (tiens un gars d'IBM dans le public ?)

Et donc le constat est là, il n'y a pas vraiment de développeurs qui apprécient WebSpehre en développement et c'est bien ce qui a poussé IBM à "Essayer de regagner le cœur des développeurs".

WebSphere possède donc maintenant un Liberty profile, qui est une version de WebSphere allégé et dédié au développement mais différent du web profile (plus light encore)
Les avantages :

  • Léger : 40 mb à installer au lieu des 3 DVD habituels et de la journée d'installation du produit quand cela se passe bien,
  • Rapide : 5 s pour démarrer,
  • Simple : 1 fichier de configuration XML partageable et modulaire (fractionnement possible en plusieurs fichiers), Un-zip pour l'installation et de plus basé sur OSGI Equinoxe.


Quelques autres notions intéressantes :

  • Classloader privé pour résoudre les problèmes de jars communs entre WebSphere et l'application,
  • Shared Libraries pour partager des jars,

Des notions intéressantes mais qui ont été réalisées dans WebLogic 10 il y a déjà plus de 5 ans ...

Je ne suis pas fan de Websphere en développement (comme tout le monde sauf exception) mais j'ai trouvé qu’IBM a vraiment réalisé un vrai pas en avant vers les développeurs et l'on peut les saluer.
Après pourquoi seulement en 2012, l'inertie des grands navires informatiques ...
Pour finir la démo, ne marche pas ... comme quoi on ne veut quand même pas trop perturber les développeurs ;)



Après le JUG a continué sur une présentation de Resin par un utilisateur qui connait seulement depuis 1 mois mais qui a eu le courage de faire cette présentation
Petit sondage de début : qui a déjà utilisé Resin ? 5 personnes

Pourquoi alors Resin  est si peu connu alors que c'est un des plus vieux serveurs d'applications (1999,  la préhistoire du web) ?
Le constat :

  • Peu de documentations,
  • Licence obscur pendant longtemps,
  • Communication faible,
  • Et peu d'utilisateurs à part SalesForce.


Pourtant, c'est un des premiers serveurs d'applications Web Profile et il a une licence professionnelle pas trop cher (700$/ CPU) et quelques avantages intéressants :

  • Watchdog pour surveiller le serveur,
  • Implemtation CDI,
  • Cluster dynamique cloud ready,
  • Multi-tenancy.




Et enfin pour finir on a le droit à une présentation de TomEE
TomEE (sous projet d'Open EJB) est une surcouche à Tomcat pour atteindre le Web profile JEE6.

On peut citer notamment les modules présents dans cette implémentation :
Tomcat, OpenEJB, OpenJPA, OpenWebBean, MyFaces, Geronimo Transaction, ...
et pour une version un peu plus avancée (au delà du web profile) : ApacheMQ, et Apache CXF.

Quelques autres avantages sont présents dans TomEE:

  • Integration facile avec Eclipse, Maven, ...
  • Tourné vers cloud



Enfin pour conclure :
Les serveurs d'applications ont donc changés en prenant en compte maintenant les besoins de développeurs : le temps de démarrage, l'intégration des tests, ...
Et l'on voit aussi l'évolution majeure des serveurs d'applications qui se préparent à tourner sur le cloud.

Quel est l'avantage alors des serveurs d'applications payant ?
WLS, Jboss et WAS ont des tas de trucs en plus : administration plus poussée avec une vraie console, gestion avancée des multiples serveurs, premières briques SOA, messaging, ...

Quand je vois par exemple la configuration poussée que l'on peut avoir sur WebLogic seulement sur la problématique des Pools de connexions et les implémentations libres, il n'y a pas photo mais encore faut-il comprendre cette configuration, son intérêt et s'avoir s'en servir, l'expertise n'est pas morte ... et aussi bien sur ils sont Full profil JEE : EJB remote, Timer, Web Services, REST, ...

lundi 28 mai 2012

Retours sur le Liferay France Symposium 2012

Le Liferay France Symposium qui a eu lieu le 23 mai 2012 est la grande messe Liferay en France permettant notamment :
  • de présenter le Liferay Marketplace
  • de faire un point sur quelques fonctionnalités intéressantes de Liferay 6.1, 
  • de réaliser des échanges intéressants avec les clients, les partenaires et les "stars" de Liferay
  • et pour ma part de gagner au tirage au sort le livre Liferay In Action


Pour cette deuxième édition du Liferay France Symposium, la première présentation a été un discours de bienvenue de Bryan Cheung, le CEO (Chief Executive Officer ou Directeur général) de la société, qui a mis en avant l'intérêt du portail et de Liferay en particulier pour pouvoir accéder facilement aux informations pertinentes des S.I.

Il en a profité aussi pour présenter l'entreprise Liferay : fondée en 2004, elle est compte aujourd'hui plus de 300 employés répartis dans 11 pays, notamment avec une présence en Europe importante : UK, Allemagne, Espagne et les discussions non officielles avec les représentants Liferay montrent bien qu'une antenne en France devrai bientôt voir le jour.

Une autre présentation réalisée par Brian Kim le COO (Chief Operating Officer ou Directeur opérationnel) de Liferay a permis de présenter le Liferay Market Place qui permettra d'avoir un repository centralisé d'applications, ainsi que de constituer un canal de distribution d'applications pour les développeurs et donc finalement un moyen plus rapide pour les utilisateurs finaux d'avoir de nouvelles applications à disposition.

D'autres présentations techniques et de retour clients se sont succédé tout le long de cette journée :

  • une présentation sur quelques outils intéressants pour les utilisateurs finaux, 
  • un retour d'expérience par Pascal Begue d'Air France sur leur intranet. J'ai trouvé cette présentation particulièrement intéressante montrant bien les difficultés classiques rencontrées sur les portails d'infrastructure (que mes clients ont aussi rencontrées) et comment en migrant vers Liferay "le téléphone ne sonne plus". Ils ont donc particulièrement appréciés la solution ainsi que l'aide apportée par l'expertise de la société Beorn Technologies, 
  • une présentation sur les bonnes pratiques de développement et de méthodologie pour faciliter les migrations de version Liferay
  • une présentation sur la gestion avancée des contenus web et notamment la possibilité de créer des sites en grand nombre en utilisant les possibilités offertes par les templates de pages, les templates de sites ou encore les API.
  •  ... 


Joseph Shum de Liferay a expliqué le Business Model de Liferay, et notamment la raison de la création de la version Entreprise Edition de Liferay. En effet, avant la création de la version EE du produit, il fallait créer des Fix Patchs pour chaque client ayant acheté du support et gérer des versions différentes pour chaque client. La version Entreprise Edition de Liferay permet d'avoir une version commune résultante des corrections de la version C.E et donc beaucoup plus stable.

Pour conclure, Bryan Cheung a présenté le futur de Liferay. Si rien de révolutionnaire n'a été mentionné, la gestion dans le cloud et les problématiques de PaaS et SaaS sont au coeur des problématiques de R&D chez Liferay, wait and see ....

samedi 31 mars 2012

Masquer les erreurs de compilation du Hook (aussi valable pour les projets JEE)

L'intéret du Hook est d'ajouter des points d'extension de Liferay permettant ainsi de customiser Liferay sans toucher au code du portail.
C'est le mode privilégié pour les modifications du portail Liferay.

Il a néanmoins 2 problèmes :
- son périmètre qui est limité aux surcharges des JSP Liferay, à quelques propriétés de configuration ou de traduction, et à la gestion d'événnements Liferay ou du modèle fourni par le Service Builder.
- la compilation en erreur en développement, c'est de ce point que nous allons parler.

Si l'on veut customiser une page de Liferay, celle-ci a souvent besoin d'importer d'autres pages (exemple : /html/portal/init.jsp) ou des ressources déclarées dans le portail lui-même (themeDisplay, ...).

A part importer une grande partie du code dans notre projet de Hook, il va y avoir des erreurs de compilation qui ne seront pas génantes pour le déploiement mais polluent fortement l'environnement de développement.

Si on ne peut pas facilement éviter ces erreurs de compilation, on peut au moins les masquer à l'aide d'Eclipse.

Cliquer droit sur le projet de Hook > Properties > Validation
Sélectionner "Enable project specific settings"
Cliquer sur le bouton "..." de la ligne "JSP Syntax Validator"


Cliquer sur le bouton "Add exclude group" 


Selectionner "Exclude group" et cliquer le bouton "Add Rule...".
Selectionner "Folder or File name"


 Cliquer sur "Browse folder" et selectionner le répertoire contenant les jsps modifiés par le Hook


Valider et forcer la compilation.

Et voilà les erreurs de compilation n'apparaissent plus.

Une autre possiblité, c'est d'utiliser le plugin liferay pour Eclispe IDE 1.3+, une option du wizard pour le  Hook permet de désactiver la validation de la syntaxe des JSP.

jeudi 15 mars 2012

JUG Montpellier - Les portails & Liferay

Cette fois-ci, je m'y colle.

En effet, après avoir assisté aux présentations du JUG Montpellier sur Google application Engine ou Les interfaces web en 2011, je me suis mis du côté du speaker pour présenter les portails en général et Liferay en particulier.

Après avoir expliqué l'apparition du portail dans le paysage web, avoir défini et montrer le rôle des portails, j'ai réalisé un rapide tour sur l'offre du marché des portails java actuels (WebLogic Portal, l'offre conjointe GateIn par JBoss / eXoplatform, Websphere Portal, ...).

Pour poursuivre sur une explication un peu plus technique sur les portlets et leurs développements. Après une petite pause pour se remettre des PortletRequest et autres particularités liées aux normes java de portlets (JSR 168/286), il était temps d'aborder Liferay.

Après une présentation de Liferay abordant l'installation, les atouts de Liferay et un petit tour rapide sur le catalogue fournie de portlets, j'ai abordé le développement avec Liferay ( Plugin SDK, Service Builder, Liferay IDE, ...) et les problématiques d'organisation / d'habilitation des utilisateurs et des pages.

Et pour finir par une petite démonstration abordant ces problématiques ainsi que l'administration du portail.

Partager et communiquer sur des produits de portail est toujours intéressant mais constitue un vrai challenge que celui d'aborder en une soirée les principes que l'on détaille par exemple en formation en 3 jours.

mercredi 29 février 2012

Liferay 6.1 EE (Enterprise Edition)

La version 6.1 Entreprise de Liferay est sortie il y a une semaine alors que la version CE (Community Edition) est déjà sortie depuis quelques semaines déjà (fin 2011).

On peut citer quelques nouveautés intéressantes :

  • Les sites viennent remplacer l'ancienne notion de communauté pour apporter plus de souplesse dans l'organisation et pour répondre au réel besoin d'utilisation des anciennes communautés à savoir la création de sites web. Un site peut être créé à partir d'un modèle de site dont les modifications du modèle amène à la mise à jour des sites correspondants.
  • Il est possible de gérer aussi plusieurs versions d'un même site en prévision d'une publication ultérieure.
  • Une meilleure intégration avec les repositories tiers tel que Documentum et Sharepoint.
  • Une organisation des contenus plus facile à gérer avec des liens vers les autres contenus liés, les documents et les média.
  • Des workflows avancés peuvent être appliqués aux documents pour les processus d'édition et d'approbation.

Plus de détails sur le lien suivant : PRESS RELEASE: New Liferay Portal 6.1 EE Empowers Enterprise Business Users.


C'est aussi le moment idéal de faire un petit rappel sur la différence entre ces 2 éditions.

  • Liferay Portal Community Edition (CE) est la version open source  (respectant la  licence  LGPL depuis Liferay 6.x) soutenue par la communauté. 
Elle possède les dernières fonctionnalités avec une fréquence de sortie plus soutenue que la version entreprise mais avec une durée de vie du support plus court.

  • Liferay Enterprise Edition (EE) est une version stable de Liferay et payante.
Cette édition donne accès aux mises à jours, aux patchs, à la documentation et au support.
Plusieurs niveaux de contrats de supports sont disponibles.
Chaque version est supportée pour une durée de 4 ans.

Cette édition permet donc de fourir un support professionnel pour Liferay pour les clients grands comptes de Liferay.