vendredi 16 mars 2012

Veille technologique semaine 11

Pour le bulletin de cette semaine, je vous propose les sujets suivants :
  • L'encyclopédie Britannica abandonne la version papier et se concentre sur le version électronique.
  • Un article au sujet du rôle de l'architecture logiciel dans l'industrie du logiciel : elle est très souvent négligée ou dénaturé.
  • Un article au sujet du standard JEE versus le framework Spring.
  • La spécification de JEE7 pour la fin 2012 : le cloud et HTML5 (+JCache).
  • Un résumé des fonctionnalités du framework Akka en version 2, puis une interview de Jonas Bonér au sujet de ce framework Akka : performance et tolérence aux pannes en Scala ou Java dans la même JVM.
  • Une comparaison des deux standards de persistance en Java : JPA (Java Persistance API) et JDO (Java Data Object).
  • Les dix commandements relatif à la gestion de configuration.
  • Instanciation d'un object en Java : savez vous répondre à la question avant de regarder le résultat : quel est le texte affiché ?
Bonne lecture.



L'Encyclopædia Britannica abandonne le papier
L'Encyclopædia Britannica, le pendant anglophone de l'Encyclopædia Universalis, a annoncé qu'elle mettait fin à son édition papier. Son ultime édition, datant de 2010, comprend 32 volumes et coûte 1840 €. C'est un tournant symbolique pour le monde des encyclopédies : l'illustre ouvrage était paru depuis 244 ans, c'était la plus vieille encyclopédie en langue anglaise toujours publiée.


The frustrated architect
Software architecture has a bad reputation

The thought of "software architecture" conjures up visions of ivory tower architects doing big design up front and handing over huge UML models or 200 page Microsoft Word documents to an unsuspecting development team as if they were the second leg of a relay race. And that's assuming the architect actually gets involved in designing software of course. Many people seem to think that creating a Microsoft PowerPoint presentation with a slide containing a big box labelled "Enterprise Service Bus" *is* software design. Oh, and we mustn't forget the obligatory narrative about "ROI" and "TCO" that will undoubtedly accompany the presentation.


Java EE wins over Spring
The past 1-2 years since the release of Java EE 6, you've seen a lot of articles like this latest on TSS that talk about the niceities of Java EE 6!s component model over Spring and how Spring is now legacy. Yup legacy. Who would have thought it? (other than me of course ) I remember internal JBoss emails 4-5 years ago arguing whether we should give up on promoting Java EE as a component model (aka on EJB) and just concede to Spring. Now, 4-5 years later, Java EE 6 has answered the challenge and is a viable, rich, integration technology. So what happened?


JEE7: Looking ahead to a new era
With the release of Java EE 7 scheduled for the second half of 2012, projected JSRs are all up and running. The Java EE 7 release, which will reflect the evolving needs of the industry as it moves into the cloud, is date driven: anything not ready will be deferred to Java EE 8.
Here is an update and summary of the key features of different specifications in the Java EE 7 platform.


Sortie de Akka 2.0
Le framework Akka vient tout juste de sortir en version 2.0. Cette version majeure est issue d'une importante ré-écriture du framework notamment connu pour son implémentation du modèle des acteurs.
Le modèle des acteurs et Akka plus spécifiquement permettent de développer de façon simple et efficace des applications concurrentes, distribuées et hautement disponibles. Il utilise pour cela un modèle de développement orienté message permettant des traitements asynchrones et non bloquants.
Cette nouvelle version apporte un lot important de changements :
  • supervision : tout acteur est maintenant supervisé par un autre acteur qui peut prendre des mesures en cas de problème et gére le cycle de vie des acteurs supervisés (démarrage, arrêt, redémarrage d'un ou plusieurs acteurs en cas d'erreur…). Il existe maintenant un ActorSystem à partir duquel d'autres acteurs pourront être créés,
  • configuration modulaire : il est maintenant possible de configurer beaucoup plus finement les acteurs,
  • adresse des acteurs : cette nouvelle version introduit un système permettant de retrouver nos acteurs en leur affectant un chemin d'accès,
  • localisation transparente : la localisation d'un acteur (local ou remote) se fait maintenant par configuration et est donc transparente au niveau de l'implémentation. On accèdera à un acteur de la même manière qu'il soit en local ou à distance sur un autre noeud du cluster,
  • amélioration et nettoyage de l'API : notamment une réécriture complète des TypedActors,
  • bus d'évènement : ajoute la possibilité d'avoir un système publisher/subscriber permettant par exemple de monitorer l'arrêt d'un acteur,
  • redesign de l'API Future : cette API permettant d'invoquer et de traiter les résultats de processus asynchrones (des acteurs par exemple) à été développée conjointement avec l'équipe de développement de Scala puisqu'elle sera intégrée de base dans la future version Scala 2.10,
  • amélioration notable des performances : la taille des acteurs à été divisée par 2 entre les versions 1.x et 2.0 passant à 300 octets par acteur (sans état). Quelques benchmarks ont aussi été réalisés montrant des performances impressionnantes (20 millions de messages/seconde sur une machine 48 coeurs), notamment grâce à l'utilisation des Fork/Join executors.
Les évolutions futures de Akka 2 tournent autour de la mise en cluster des applications développées avec ce framework. Sont notamment au programme :
  • détection de la disparition d'un noeud,
  • réplication des acteurs (stateless dans un premier temps puis stateful),
  • cluster élastique (répartition de charge, migration automatique des acteurs en cas de crash d'un noeud…).

Java Champion Jonas Bonér Explains the Akka Platform
Jonas Bonér is a husband, dad, programmer, teacher, speaker, author and Java Champion. He is the CTO of Typesafe,which was founded in 2011 by the creators of the Scala programming language and Akka middleware, and is an active contributor to the Open Source community. Most notably, he created the Akka Project, the AspectWerkz Aspect-Oriented Programming (AOP) framework, is a committer to the Terracotta JVM clustering technology, and been part of the Eclipse AspectJ team. Akka middleware was a finalist for the JAX Innovation "Most Innovative Java Technology Award" for 2011.

You have argued that writing correct concurrent, fault-tolerant, scalable applications is too difficult, because developers frequently use the wrong tools and the wrong level of abstraction. Could you give us examples of situations in which this applies?


Which Persistence Specification : JPA ou JDO ?
There are several competing persistence technologies available for Java. Two of these are "standardised" (via the JCP). When developing yourapplication you need to choose the most appropriate technology for your needs. Java Data Objects (JDO) has been a standard since 2001 with therelease of JDO1. It was improved with the release of JDO2. Just to confuse issues the Java Persistence API (JPA) was approved in its JPA1 form, and JDO2.1/JDO2.2 provide updates to JDO2 building on some of the new features of JPA1. Since then we have had JDO3 adding on extra metadata and enhancer standardisation, and JPA2 providing criteria queries. Below we show some of the differences of these 2 standards to give you assistance in selecting what you need. Highlighted in bold are the notable differences where one specification provides something not available in the other.


The 10 commandments of good source control management
Ah source control, if there's a more essential tool which indiscriminately spans programming languages without favour, I'm yet to see it. It's an essential component of how so many of us work; the lifeblood of many development teams, if you like. So why do we often get it so wrong? Why are some of the really core, fundamentals of version control systems often so poorly understood?


Comment est construite une instance ?
La construction d'une instance Java s'effectue en plusieurs étapes qu'il est intéressant de connaître. Cela peut avoir des effets de bords non maîtrisés. Je vous propose un petit exercice pour que vous puissiez vérifier si vous connaissez la construction en Java. Il faut deviner, sans l'exécuter, le mot de passe affiché par ce programme.

Aucun commentaire: