Revue de Presse Xebia

Revue de Presse Xebia
La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.

Actualité éditeurs / SSII

Agilité

SOA

Le coin de la technique


Actualité éditeurs / SSII

Aqualogic Service Bus 3.0 (BEA)

Aqualogic Service Bus 3.0 (ALSB 3.0 pour les intimes) est maintenant disponible en téléchargement. La liste des fonctionnalités majeures de cette nouvelle version a déjà été abordée lors d’une précédente revue de presse. On peut y ajouter une meilleure intégration avec la gamme Aqualogic (ALRR, le repository,ALBMP, le moteur de processus et ALSM, le moniteur SOA) et une fonctionnalité de _Throttling, un service qui permet d’éviter d’entrainer une surcharge vers les services métiers accédés.

La distribution comprend WebLogic Server 10, la surcouche ESB et BEA Workshop 10.2 l’IDE basé sur Eclipse pour le développement (Eclipse 3.2.2, Eclipse WTP 1.5.4,…)

Spring Source arrive en France

Nous apprenons via cet article que SpringSource (anciennement Interface21) allait ouvrir une filiale en France. Un des premiers avantages est la prochaine disponibilité de formations Spring en français.

Il est déjà possible de s’inscrire sur le site de SpringSource, à cette adresse.

Agilité

Les bons programmeurs en ont (de bons tests unitaires)

Dans Real programmers avec GUTs, Vikas Hazrati et Deborah Hartmann commentent le débat qui a eu lieu sur InfoQ mi-février entre Jim Coplien et Bob Martin sur le sujet TDD (Test Driven Development), CDD (Contract Driven Development) et professionnalisme des développeurs.
Vikas et Deborah nous rappelle, qu’étrangement, l’idée d’avoir obligatoirement à utiliser la méthode TDD pour avoir de bons tests unitaires semble répandue. Or, l’important, c’est d’avoir de bons tests unitaires, et ce qu’ils soient développés avant ou après le code.

Pour rappel, TDD n’est pas une méthode de test, c’est bien une méthode de développement. L’effet produit est d’avoir de bons tests unitaires, mais ce n’est pas la seule méthode pour y parvenir !
La blogosphère agile semble éprouver le besoin irrépressible de trouver un acronyme pour “je code de bons tests unitaires après avoir développé mon code”. On n’y voit pas grand intérêt, mais si ceci a pour effet d’éviter la confusion ambiante sur TDD, pourquoi pas…
S’il n’utilise pas la méthode TDD, recommandons au lecteur de ne pas développer les tests unitaires “plus tard”, mais “le plus tôt possible”.

Progression des méthodes Agiles ?

Le site Methods And Tools a publié le résultat d’une étude qu’il a réalisé sur l’adoption des méthodes agiles. En voici les résultats (comparés à ceux d’une étude similaire réalisée en 2005) :

  2008 2005
Not aware 13% 26%
Not using 13% 16%
Investigating 14% 14%
Analysed and rejected 4% 3%
Pilot projects 8% 4%
Partial implementation (adoption of some agile practices) 17% 17%
Partial deployment (some projects are using this approach) 14% 12%
Deployed (all new projects are using this approach) 17% 8%

C’est encourageant : les méthodes agiles sont définitivement sorties de la confidentialité, et leur déploiement progresse assez rapidement. Reste à savoir ce qu’entendent précisément les sondés par méthodes agiles… On sait que dans le domaine, le wannabisme fait rage, et que l’adoption se résume souvent à quelques mesures cosmétiques, autrement appelées cowboy coding (rappelez-vous le test Nokia).
Scott Ambler apporte un commentaire (Scott Ambler’s 2007 Agile survey analyzed for Dr. Dobb’s : Is Agile really that successful?) intéressant sur le sujet.

Et pour s’encourager, on peut toujours regarder la belle courbe de Indeed.com

SOA

2008, annus horribilis de la SOA ?

S’il ne faut pas tomber dans le sensationnalisme, on notera tout de même la crise de doute que traversent les SOAistes en ce début d’année.
Tout d’abord le chantre de la SOA, le Burton Group lui-même, qui se lance à la recherche de projets SOA qui ont vraiment marché (InfoQ : Burton On Real World SOA Experiences) ; hélas, le “Rapport Burton” restera réservé aux clients payants.
Ensuite, la très officielle presse SOAiste searchSOA.com part à la recherche de bonnes utilisations de SOAP, si cela a existé, avec Looking for a few good WSDLs . A quand “Looking for a few good WS-* uses” ?

Enfin, Steve Vinoski, héros de l’époque Corba, a profité de son changement d’employeur pour retourner sa veste et prôner l’approche RESTful dans InfoQ : CORBA Guru Steve Vinoski on REST, Web Services, and Erlang.
Rassurons-nous, rien de cela n’ébranlera les diseurs de bonne aventure SOA qui, après nous avoir gratifié des merveilleuses prédictions du Yahoo SOA Group pour 2008, débattent férocement de UDDI v2, v3 and replication.
Ne jetons tout de même pas bébé avec l’eau du bain. L’approche SOA apporte beaucoup de valeur lorsqu’elle est abordée avec pragmatisme à l’instar du site Enterprise Integration Patterns qui propose des documents de grande valeur comme Developing in a Service-oriented World de Gregor Hohpe (Google).

Le coin de la technique

Java EE 6 : les profiles se dévoilent

Nous avions évoqué le Java EE Web Profile en Janvier. Roberto Chinnici nous dévoile aujourd’hui dans Profiles in the Java EE 6 Platform les différentes pistes pour le Web Profile si cher à Rod Jonhson.
C’est l’occasion pour chacun de donner son opinion éclairée sur le sujet. Les plus extrémistes demandent un Web Profile qui ne porterait que la Servlet API, d’autres demandent à corps et à cri leurs JSFs voire leurs Portlets pour les plus téméraires.
Nous seront moins péremptoires et nous nous limiterons pour le moment à quelques observations :

  • Les équipes d’exploitation sont les grands oubliés, JSR-77 : J2EE Management n’est pas au rendez-vous, la standardisation des API de monitoring et de supervision ne semblent intéresser personne. Nous ne sommes pas prêts d’avoir le monitoring des datasources inclu dans Tomcat :-(
  • Pourquoi regrouper dans JSR 77 les statistiques de monitoring (JDBCStats, JMSStats, JCAStats, etc) plutôt que de les réintroduire dans chacune des JSR concernées ?
  • JMS n’a jamais été aussi aussi utilisé qu’aujourd’hui (merci à Spring-JMS et à ActiveMQ), quel dommage de le voir absent du Web Profile
  • L’utilisation de JMS sous tend le pooling des ressources (JCA) et les transactions distribuées (JTA). Cela tire beaucoup d’APIs pour les esprits minimalistes mais le scénario Message Driven Pojo + accès SGBD est chaque jour plus fréquent.
  • JTA embarqué dans le Web Profile demanderait un travail substantiel aux équipes de SpringSource qui veulent leur stack Tomcat+Spring certifiée Web Profile. Pour mémoire, JBoss n’a été vraiment satisfait de son Java Transaction Service qu’en version 4.
  • JAXB et JAXWS ne rentrent pas dans le débat car ils sont inclus dans le JDK 6.
  • On peut voir un pruning en douceur avec les Web Profiles (A) et (B) qui ne sont pas encombrés par les APIs désuètes.

Scénarios pour le Web Profile

(A) (B) Java EE 6 Full platform
Servlet 3.0
JSP 2.2
JSR-45

EL 1.2
JSTL 1.2
JSR-250

Servlet 3.0
JSP 2.2
JSR-45

EL 1.2
JSTL 1.2
JSR-250

Servlet 3.0
JSP 2.2
JSR-45: Debugging Support for Other Languages

EL 1.2
JSTL 1.2
JSR-250: Common Annotations for the JavaTM Platform


EJB 3.1 (Lite)
JTA 1.1

JPA 2.0
JSF 2.0 *
Web Beans 1.0 *

EJB 3.1
JTA 1.1
JPA 2.0

JSF 2.0
Web Beans 1.0



JAX-RS 1.0
Connectors 1.6
JAX-WS 2.2

JAXB 2.2
JSR-109 1.2 :Implementing Enterprise Web Services
JSR-181 1.1 : Web Services Metadata for the JavaTM Platform
JMS 1.1
JAF 1.1
JavaMail 1.4

JSR-115 : Java Authorization Contract for Containers
JSR-196: Java Authentication Service Provider Interface for Containers
JSR-88 1.2: Java EE Application Deployment
JSR-77 1.1 : J2EE Management
JAX-RPC1.1
JAXR 1.0

Ressources complémentaires

Load balancing avec Tomcat et Apache

Avneet Mangat nous explique dans TSS : Load-balancing Tomcat with Apache comment mettre en place un cluster Tomcat avec le serveur web Apache. Si la fiabilité de la solution n’a rien rien à envier aux serveurs d’applications sophistiqués pour les cas, très fréquents, qui ne nécessitent pas de réplication de session, on remarquera cependant que la mise en place du load-balancing avec Tomcat et Apache demande sensiblement plus de configuration par édition de fichier qu’avec un serveur commercial. De plus, on regrettera le manque de documentation sur le sujet.

Le load balancing Tomcat avec Apache, une solution prête pour la production ? Oui, mais surtout pour les équipes d’exploitation qui ont la culture du scripting et des technologies open source à la documentation parfois légère. Les équipes qui attendent des procédures packagées seront plus à l’aise avec un serveur d’applications plus complexe.

Tests unitaires : Mockito

Szczepan Faber nous présente dans expect-run-verify… Goodbye! les raisons qui l’ont poussé à créer un nouveau framework de mocks – Mockito – en partant d’un fork d’EasyMock.
Il reproche aux autres frameworks de mocks d’utiliser le pattern expect-run-verify (description des attentes – exécution – vérification) :

  • les attentes sont décrites avant l’exécution, ce qui n’est pas intuitif
  • les mocks nécessitent d’enregistrer des interactions pour fonctionner même si on n’a pas besoin de les tester
  • les tests sont fragiles, sont souvent cassés par l’ajout d’une fonctionnalité
  • les attentes (expect) et le bouchonnage (stub) sont mélangés, ce qui nuit à la lisibilité du code
  • si les attentes étaient remplacées par des assertions, il n’y aurait plus besoin de déchiffrer la pile d’exécution en cas d’erreur pour retrouver la ligne de code correspondante

Mockito se veut plus souple et plus simple, comme le veut le principe KISS de la culture XP.
Cette comparaison avec EasyMock donne une idée du gain de lisibilité.

Côté limitations Mockito ne permet pas faire de mock sur :

  • les classes ou méthodes final (Mockito s’appuie cglib)
  • les méthodes equals(), hashCode(), toString()

On regrette toutefois que Mockito ne soit pas sur le repository maven (encore la faute de cglib) !

JSF, répétition de la mésaventure des EJB 2 ?

Les EJB ont inauguré la série “Le pire du mal” avec J2EE AntiPatterns et autres Bitter EJB. TheServerSide a trouvé un successeur avec JSF Anti-Patterns and Pitfalls. On y découvre qu’on peut avoir mal au PhaseListener, qu’il y de nombreux faux-amis du thread-safe, que l’overdose de XML guette et qu’il ne faut pas oublier la “View State Encryption”.

Nous décernons le “JSF trick d’or” au “View State Encryption” pour My Faces Wiki : Secure your application qui nous recommande un merveilleux secret d’encryption qu’on choisit “au hasard”, puis que l’on passe à la moulinette base64, et que l’on stocke enfin en dur dans faces-config.xml. Mais attention ! la taille du secret doit être de huit caractères pour un chiffrement DES ou de seize pour Blowfish; pas un de moins, pas un de plus…
JSF condamné ? Il ne faut pas préjuger de l’avenir. Malgré les critiques innombrables, certains ténors voient toujours en JSF l’avenir des pages web en java. En revanche, si JSF venait à péricliter, personne ne pourra dire qu’il ne savait pas … et JSF 2 est prédit très incompatible avec JSF 1.

Billets sur le même thème :

4 Responses

  • Bonjour,
    Personnellement j’apprécie de moins en moins le ton ironique qui est parfois utilisé dans les messages. J’ai l’impression que ce ton traduit un sentiment de supériorité ou d’orgueil. En ce qui me concerne, j’ai appris par expérience que dans notre métier il faut savoir rester humble, et que la reconnaissance d’une compétence s’impose naturellement sans utiliser d’artifice. Restez factuel svp, et vos articles n’en seront que mieux appréciés.

  • Bonjour JPL,

    Nous sommes profondément désolés si le ton de notre billet vous a semblé méprisant, ce n’en était pas l’esprit.

    Nous cherchons à traiter avec humour l’actualité de notre communauté tout en respectant le travail et les opinions de chacun. Nous nous efforçons de prévenir les maladresses de cet humour en relisant à plusieurs les billets et nous allons encore accentuer ces vérifications à l’avenir.

    Concernant les sentiments de supériorité ou d’orgueil, l’humilité est pour nous aussi une valeur essentielle.
    Nous essayons, parfois par un ton humoristique ou exalté, de susciter sur le blog des discussions sur des sujets dont les réponses les plus riches viennent aussi bien des lecteurs que des consultants Xebia. Veuillez croire que nous sommes bien conscients de ne pas détenir la vérité absolue.

    Pour ce qui est de la dimension factuelle du blog, nous y sommes très attachés mais nous souhaitons aller plus loin et émettre des opinions argumentées ; nous y voyions ici le rôle de conseil qu’attendent nos clients au quotidien.

    J’espère que cette clarification vous rassure sur l’esprit qui nous anime, nous sommes sincèrement désolés si nos propos ont été perçus comme méprisants et nous redoublerons de vigilance dans l’utilisation de l’humour.

    Cyrille (Xebia)

Laisser un commentaire