vendredi 12 juin 2009

Veille technologique semaine 24

Pour le bulletin de cette semaine, je vous propose les sujets suivants :

  • Une conférence sur le Domain Driven Design, par l'auteur, au club Java de Paris, lundi 15 prochain. Il faut s'inscrire.
  • La sortie imminente de eclipse 3.5 : Galilelo
  • Le produit de réplication d'objets Terracotta a reçu le prix Duke Award lors de la conférence JavaOne 2009. La réplication d'objet c'est quoi ? Un article qui résume le produit. A réserver uniquement aux projets Java qui ont besoins de réplication d'objets productive, performante et mature.
  • JavaFX 1.2 et les 5 fonctionnalités les plus importantes.
  • Le binding de JavaFX.
  • Un article qui pose la question : peut-on imaginer la suppression des primitifs Java ?
  • Comment écrire la méthode equals() ? C'est un exemple de génération de code à capitaliser dans un outil UML.
  • Le JDK 6 update 14 qui propose des améliorations sur "l'escape analysis" : les performances sont meilleurs sur certains benchs.
Bonne lecture.


Conference a Paris : Le DDD par son inventeur

Eric Evans, auteur du classique "Domain-Driven Design: Tackling Complexity in the Heart of Software" est de passage à Paris et sera l'invité du paris JUG lundi 15/6. Le délai est court, mais le Paris JUG ne voulait pas laisser passer l'occasion.

C'est donc à une soirée exceptionnelle que le Paris JUG vous convie tous. Ne tardez pas à vous inscrire, comme d'habitude les places sont limitées.

DDD - La conception qui lie le fonctionnel et le code

Le DDD, Domain Driven Design, laisse une impression qui amène souvent à une des remarques suivantes :

  • J'en ai déjà entendu parlé … - (mais je ne sais pas ce que c'est)
  • Je crois l'avoir vu dans le TDD …
  • C'est comme le MDA? - ça marche avec un ensemble de sigles MDSD, MDD
  • Hein? T'as un problème avec ta touche "D"

L'objectif de cet article est de vous présenter le DDD, ses enjeux et son intérêt.
Dans DDD, il y a Driven Design, c'est donc une technique de conception. Il ne faut pas confondre
avec les techniques de développement (Driven Development) comme par exemple le TDD (Test
Driven Development).
DDD n'est ni une méthode ni une technologie. DDD est une manière de penser la conception
autour du code, de collaborer et de communiquer avec les experts fonctionnels.


Getting Ready for Eclipse 3.5 (Galileo): What's New?
With the announcement of Release Candidate 3, it's a couple of weeks until Eclipse 3.5 code named "Galileo" will reach GA status. This new release of the popular Java development environment includes several new features and improvements over its previous version.


Terracotta Wins Prestigious Duke's Choice Award at the 2009 JavaOne Conference
Sun Microsystems and Java Inventor James Gosling Recognize Ubiquity of Affordable and Scalable Java Infrastructure Software Terracotta, a recognized leader in infrastructure software for enterprise Java scalability, today announced it has been named a 2009 Duke's Choice "Java Everywhere!" Award winner by James Gosling and Sun Microsystems. Terracotta's technology is increasingly adopted by organizations to provide simple scalability and lower operational and capital costs for business-critical Java applications.


Ari Zilka, CTO of Terracotta, Inc., talks about the new features in Terracotta 3.1,
announced during JavaOne and available now.
This interview covers:
  • Terracotta is the winner, Duke's Choice Award for 'Java Everywhere', selected because of its leadership in innovation
  • Spring, Hibernate internals integration to help settle the stateful vs. stateless debate and to appease the 'database haters' among performance caching users
  • Turn the tuning exercise on its head: tune the caching first, then the database
  • The cache becomes a level-2 feature, offloading the 75% of the database traffic to Terracotta with a significant throughput boost
  • The differences between Terracotta versions ES, EX, and FX
  • Distributed garbage collectors and how they work across multiple JVMs
  • How to participate in the Terracotta 3.1 beta to kick the tires on all the new features

Terracotta - Présentation
Nous allons présenter Terracotta et des cas d'utilisations. Au cours de la dernière décennie, les systèmes informatiques ont enregistré une montée en charge foudroyante, et de nouvelles problématiques de scalabilité se sont posées. Aujourd'hui, les technologies standard (EJB, JMS, Jini) commencent à montrer leurs limites, tandis que le trafic réseau et les capacités de traitement des bases de données arrivent à saturation. Dans cet article, nous verrons comment Terracotta peut soulager vos architectures Java, grâce à son approche radicalement différente du clustering.


Problématique
Avant de présenter Terracotta, faisons un rapide tour des principaux problèmes rencontrés lorsqu'une application est victime de son succès. Nous prendrons ici l'exemple d'une application web. Lorsque la charge augmente et qu'un unique serveur web ne suffit plus, il devient nécessaire de mettre en place un cluster, c'est-à-dire un agrégat de serveurs se répartissant le traitement des requêtes de manière transparente pour l'utilisateur. Pour assurer la sécurité des données de session des utilisateurs et améliorer la résilience générale du cluster, les serveurs disposent de systèmes de réplication. Mais ceux-ci souffrent de sérieuses limitations : Ils sont peu efficaces car ils reposent sur le mécanisme de sérialisation de Java, qui ne permet d'échanger que des objets complets, et pas de simples différentiels d'état. Ils saturent rapidement le réseau car le nombre de liaisons inter-serveurs augmente exponentiellement avec le nombre de serveurs.


Top 5 Most Important Features in JavaFX 1.2
Lots of JavaFX related things were announced at JavaOne, many of them concerning future
products and other bits that aren't released yet. This post won't cover any of those. There were so
many things discussed at JavaOne that I'm afraid some of the key points of the new JavaFX might have been missed. In this post I'm only going to cover the things that you can actually download and work with today. I'm talking only about the new version of JavaFX, previously codenamed Marina, and now called JavaFX 1.2. Without further ado, here is my personal list of the most important features.


Hacking JavaFX Binding
  • Contents
  • Introduction
  • Locations
  • Establishing Bindings
  • Binding Swing Components
  • The VolumeControl Example
  • Conclusion

The JavaFX Script bind operator connects or links variables. This feature is backed by the underlying JavaFX runtime through a small framework based upon so-called locations. This article takes a closer look at its internal structure and demonstrates how JavaFX Binding can be "misused" as a binding framework for Swing.


Would Java be Better Off Without Primitives?
Language Design Gilad Bracha reopens an old debate about language design, specifically can a language be OO and enforce a primitive type system? In his Room 101 blog post he makes the assertion: "I've often said that Java's original sin was not being a pure object oriented language - a language where everything is an object." The main issue addressed in the post is not on the value of being a pure object oriented language; rather, it addresses the question of whether it would be possible for Java to be as efficient as it is without primitive types. The answer is yes." Gilad begins his argument with a simple example of how typing create problems. The Java char type was initially represented with 16 bits (in accordance with the Unicode standard at the time) but when the standard changed, "people dealing with unicode in Java have to deal with encoding code points themselves." Turning to the issue of performance, he provides several examples of how to get objects without impairing efficiency.


How to Write an Equality Method in Java
This article describes a technique for overriding the equals method that preserves the contract of equals even when subclassses of concrete classes add new fields. In Effective Java, Josh Bloch describes the difficulty of preserving the equals contract when subclassing as a "fundamental problem of equivalence relations in object-oriented languages." Bloch writes: There is no way to extend an instantiable class and add a value component while preserving the equals contract, unless you are willing to forgo the benefits of object-oriented abstraction.


Escape Analysis in Java 6 Update 14 - Some Informal Benchmarks
Sun recently released update 14 of the Java 6 JDK and JRE. As well as the usual collection of bug fixes, this release includes some experimental new features designed to improve the performance of the JVM (see the release notes [1]). One of these is Escape Analysis [2].
To see what kind of impact escape analysis might have on my applications, I decided to try it on a couple of my more CPU-intensive Java programs.

Aucun commentaire: