vendredi 25 janvier 2008

Veille technologique semaine 4

Pour cette semaine, je vous propose les sujets suivants :

  • les nouvelles fonctionnalités des EJB 3.1 : asynchronisme, singleton, ...
  • le binding : celà n'est pas uniquement pour les JavaBeans de l'IHM : c'est aussi pour le serveur
  • l'asynchronisme et le modèle de composant d'IBM : SCA
  • le projet scene graph qui débute et propose un description des objets d'une scène graphique dont le rendu est réalisé par le moteur 2D
  • le deuxième article sur la persistance transparente avec JPA : Java Persistance API. JPA sera intégré dans la prochaine version du JDK Standard Edition 7
  • les sources de DotNet de Microsoft commencent à être disponible en lecture uniquement.
  • la mise à jour 4 du JDK 6 avec plus de 300 bugs corrigé ainsi que des failles de sécurités

Bonne lecture.

New Features in EJB 3.1
This series of articles is a preview of the changes the EJB 3.1 expert group is working on for the next version of the Java EE specification. The idea is to give you a head's up on the changes as well as gather your feedback early so the expert group has the best chance of getting it right. EJB 3.0 brought simplicity to Java EE 5 by moving away from a heavyweight programming model.

EJB 3.1 aims to build on those successes by moving further down the path of simplicity as well as adding a handful of much-needed features. In each article in this series, I will let you know about the progress made by the expert group over the next few months.

Enterprise JavaBeansTM 3.1 Technology

BeansBinding: not only for the GUI?
"Beans binding" is, in general, any Java technology that allows to automatically bind some properties in a plain JavaBean class to a GUI form. There have been libraries around for beans binding since a few years, but the thing is getting more and more interest because of JSR-295, an official specificaion from Sun together with its reference implementation ("Beans Binding in capitals) that is also supported by NetBeans 6.

Data Binding in Java
A Conversation with Shannon Hickey about the Beans Binding API, JSR 295

In this interview with Artima, Shannon Hickey, spec lead for the Beans Binding API, JSR 295, discusses the challenges of Java data binding, and how the JSR 295 API simplifies that task.

"Can I call you back about that?" Building Asynchronous Services using Service Component Architecture (SCA)
This article (by Mike Edwards of IBM) discusses the need for asynchronous services when you build an application using a serviceoriented architecture. Building asynchronous services can get complicated, but is made straightforward using Service Component Architecture (SCA).

The steps involved in using SCA to create an asynchronous service and asynchronous service client are described in this article.

Project Scene Graph
Welcome to the Scene Graph project, which provides "scene graph" functionality at the Java level, as well as providing one of the important runtime elements that the JavaFX Script language depends upon from the underlying platform. This project is released in very early access form, so that people can see what we're doing and play with it as we continue developing.

Understanding JPA, Part 2: Relationships the JPA way

Your Java applications are dependent on a web of data relationships, which can become a tangled mess if improperly handled. In this second half of her introduction to the Java Persistence API, Aditi Das shows you how JPA uses annotations to create a more transparent interface between object-oriented code and relational data. The resulting data relationships are easier to manage and more compatible with the object-oriented programming paradigm.

.NET Source Code Available for Debugging
The source code for several key .NET libraries is now available for debugging purposes. They are not "open source" in the sense you can do anything you want with them, instead there is a strict "look but don't touch" license known as the Microsoft Reference License. Even still, they should be an immense resource to .NET developers.

JDK 6 updated 4 Java Software Including Security Fixes Released

Brian Krebs in a blog on Computer Security reported that Sun has released updated Java software that brings some 370 bug fixes, including a number of security updates.

This update brings the latest version of the software to Java 6 Update 4. The update is available for Windows, Linux and Solaris systems.

vendredi 18 janvier 2008

Veille techno semaine 3

Je vous propose, les quelques articles suivants :

  • le rachat de MYSQL par SUN : 1 B$
  • le rachat de BEA par ORACLE : 8,5 B$
  • faut-il continuer à enrichir le langage Java au risque (avéré) de le rendre plus complexe ? Un article sur le sujet proposé par Bruce Eckel, avec une réponse de Neal Gafter,
  • un rappel sur les annotations en Java 5,
  • le draft du JSR 255 sur Java Management Extension (JMX) version 2 pour le JDK 7,
  • la popularité grandissante de la base de données objet db4o : le début de la fin des bases relationnelles ?
  • mise à jour du JDK 6, update 4 avec plus de 300 bugs corrigés.

Bonne lecture.

Sun to buy MySQL for $1 billion

Oracle to Acquire BEA Systems

Debate: Should the Java language stop adding new features?
Recently, there has been a lot of debate over the future of the Java platform, with some arguing for more features to compete with languages such as C# and Ruby, and others saying that Java should become a more stable language lest it become too complicated to use.

Bruce Eckel started a new round of debates by stating that Java should stop adding new features entirely.

Is the Java Language Dying?

Neal Gafter's blog

Thoughts about the future of the Java Programming Language.

Java Annotation
Annotations in Java 5 provide a very powerful metadata mechanism. Yet, like anything else, we need to figure out where it makes sense to use it. In this article we will take a look at why Annotations matter and discuss cases for their use and misuse.

JMX API 2.0 Early Draft Review
The first draft of JSR 255 is out! This defines version 2.0 of the JMX API. We're planning to integrate it into the Java SE 7 platform, subject to the approval of the Expert Group for that platform. Here's a summary of the important changes. If you're interested, I'd encourage you to download the draft and look at the summary in the Overview Description, which has links into the relevant parts of the API.

DB40 v7 and Increasing Popularity of ODBMS
db4o has been growing fast lately, having recently released v7.0 beta of their flagship db4o embedded ODBMS, and claiming over 30,000 deployments of their open source ODBMS. Is this a sign of changing times reflecting the ODBMS landscape?

Changes in 1.6.0_04
Java SE 6 Update 4 is now available for download. Along with a time zone update and a command-line option allowing explicit System.gc() calls to run concurrently and unload eligible classes, the release notes show 377 bug fixes and feature adds, including the integration of JAX-WS 2.1 (bug 6535162), as noted in weblogs by Rama Pulavarthi and Arun Gupta.

The full internal version number for this update release is 1.6.0_04-b12 (where "b" means "build"). The external version number is 6u4. Included in JDK 6u4 is version 10.0 of the Java HotSpot Virtual Machine.

vendredi 4 janvier 2008

Veille techno semaine 1

    Meilleurs vœux à vous et à vos proches pour cette nouvelle année 2008.

    Pour cette première semaine, et pour bien commencer l'année,
    je vous propose les articles suivants :

    • pourquoi les projets logiciels sont en échec, par Bruce Eckel,
    • pourquoi la séparation du code métier et du code technique est fondamentale ? : il faut être technologie agnostique,
    • pourquoi le développement du logiciel centré sur le domaine ?,
    • vous préférer la configuration par fichier XML ou par annotations ?
    • les annotations et la programmation par aspects : article d'IBM,
    • le résultat des vote fait à JavaPolis au sujet des proposition d'évolutions du langage Java pour le JDK 7

    Bonne année à tous et bonne lecture.

    The Mythical 5%

    • 50-80% of programming projects fail.
    • 5% of programmers are 20x more productive than the other 95%.
    • Roughly 80% of programmers don't read books, don't go to conferences, don't continue learning, don't do anything but what they covered in college.
    • So how do you become one of these mythical 5%?

    So you must learn continuously and teach yourself new technologies, but it's not that simple. It's definitely good to learn more about programming, but you can't just learn more about programming. For example, just in the world of code, here are two of the biggest pain points:

    • Code is read much more than it is written. If people can't read your story, they can't improve it or fix it. Unreadable code has a real cost, and we call it "technical debt."
    • Code reviews are the most effective ways to find software defects, and yet we usually "don't have time for them."

    Coming from the world of ones and zeroes we'd like to believe that things are deterministic, that we can provide a set of inputs and get the same outputs every time!

    Separating business logic from technology:
    Separating business logic from user interface code was one of important lessons that legacy Visual Basic programs taught us. Kathleen Dollard actually argues that business logic should be separated from any technology to avoid rewriting everything when a new technology comes up. And, according to Kathleen, code is technology, thus business knowledge has to be isolated from it as well:

    such approach requires a fundamental shift in the way we conceive programming.

    Aspects of Domain Model Management
    As can be learned from books such as Domain Driven Design [Evans DDD] and Applying Domain Driven Design and Patterns [Nilsson ADDDP], introducing the Domain Model pattern (Patterns of Enterprise Application Architecture [Fowler PoEAA]) into your application architecture may promise many benefits, but they do not come for free.

    Take care of your domain model
    Today, many projects focus on Domain-Driven Design, but it is not always easy. One of the most important things are to separate the domain code from the code that only exists for technical reasons.

    The argument for avoiding infrastructure code in the domain model classes is strong: The domain model is supposed to represent the core business concepts that our application is dealing with. Keeping these classes clean, lightweight and maintainable is an excellent architectural goal for an application that intends to make heavy use of its domain model.

    On the other hand, as we will go on to see, taking the extremist route of keeping our domain model classes completely free of infrastructure code - often referred to as using a Plain Old Java/CLR Objects (POJO/POCO) domain model - can also prove problematic.

    Configuration en Annotations Java ou en XML ?
    L'arrivée de Guice dans le monde des frameworks de dependency injection a entraîné pas mal de questionnements. Google a adopté dans Guice la configuration tout en Java : tout ce fait à base d'annotations et de l'API. De fait, il n'y a plus de fichier de configuration XML.

    C'est encore un des reproches que l'on entend sur Spring : on déporte beaucoup de choses dans un fichier XML qui ne compile pas et pour lequel on n'est pas assisté.

    Dans le même ordre d'idée, Les nouvelles annotations créées avec JPA (Java Persistence API) changent aussi notre façon de configurer Hibernate. Avant, on configurait tout dans le bon vieux hibernate.cfg.xml, maintenant on a la possibilité de le faire avec les annotations. Maintenant que nous avons le choix : quelle solution doit-on préférer ? Java ou XML ?

    Spring JavaConfig
    Reference Documentation
    Annotations, available in JDK 5+, constitute such a type as they allow source code components to provide additional metadata which can affect the runtime semantics, making them a great configuration candidate.

    AOP@Work: AOP and metadata: A perfect match
    In this second half of his two-part article on combining metadata and AOP, author and AOP practitioner Ramnivas Laddad suggests a novel way to conceptualize metadata as a signature in a multidimensional concern space. He also introduces a series of guidelines for effectively combining metadata and AOP and discusses the impact of metadata annotations on the adoption of aspect-oriented programming.

    • The tyranny of the dominant signature
    • Signature tangling
    • Untangle me, metadata!
    • Metadata as a multidimensional signature
    • Mapping signature space to concern space
    • Enabling multidimensional interfaces
    • Guidelines for using metadata correctly
    • Wisdom comes with experience
    • Metadata and obliviousness
    • Metadata and AOP adoption
    • Conclusion

    Java Language change survey: the result
    Two whiteboards were dedicated to language changes, with 10 ideas considered. A short example of each change was given, with votes being taken. The question each time was "Do you support this language change?".