vendredi 10 février 2012

Veille technologique semaine 6

Pour le bulletin de cette semaine, je vous propose les articles suivants :
  • Intel annonce l'intégration de la gestion des transactions mémoire dans la prochaine architecture Haswell prévue pour 2013.
  • Des chercheurs propose l'unification du CPU et du GPU pour améliorer leur performances globales.
  • un article au sujet de l'obsolescence dans l'industrie du logiciel.
  • IBM qui propose la définition des architectures orientées services (SOA) et orienté événements (EDA) comme complémentaires.
  • Une liste d'articles de wikipedia sur les acronymes : CRUD, DAO, DTO, DAL, SDO
  • Oracle mise sur JavaFX pour les IHM en Java.
  • La manipulation du système de fichier avec le JDK 7.
  • Les expression lambda en Java : état des lieux. Pour le JDK 8, c'est promis.
  • La première spécification des modules du JDK 8. C'est la première fois qu'un langage de programmation propose ce niveau de concept.
  • Les premières infos du JDK 9 ?

Bonne lecture.



Intel: Haswell arrivera au premier semestre 2013 et supportera un nouveau système de gestion mémoire
En 2011, Intel a pris un conséquent retard sur le lancement des processeurs Sandy-Bridge lié à un bug touchant leurs chipsets. C'est en partie la raison pour laquelle Ivy-Brige n'est pas sorti en tout début 2012, le temps de laisser une carrière à son prédécesseur.
Pour Haswell, la prochaine architecture, Intel ne compte pas essayer de refaire le retard et devrait lancer ces nouvelles puces entre mars et juin 2013.


Pour rappel, l'essentiel de la nouveauté d'Ivy Bridge est lié à la gravure 22 nm 3D de ses transistors. Haswell quant à lui utilisera la même gravure mais verra son architecture interne fortement remaniée. Parmi les nouveautés qu'Intel va introduire, il y aura la gestion de la mémoire transactionnelle.

Son arrivée correspond à un besoin lié à la multiplication des coeurs dans les processeurs et au nombre toujours plus conséquent de logiciels capables d'en tirer le meilleur parti. Lorsque l'on décide de découper un processus de programmation en plusieurs threads pour en accélérer le traitement, on doit gérer toujours plus finement l'usage que chacun fera au niveau de la mémoire partagée, avec le risque qu'une modification d'une donnée en mémoire ne fausse tout le calcul.

Dorénavant, grâce à un jeu d'instructions spécifiques, il sera possible de demander au processeur de surveiller les zones de mémoire partagées, mais aussi d'en rendre l'accès exclusif à certains threads seulement, une sorte de super mémoire protégée qui déchargera le système d'exploitation de ces tâches qu'il remplit plus ou moins bien.

L'usage de cette mémoire transactionnelle obligera quand même les développeurs à un nouveau travail puisqu'ils devront spécifiquement choisir la manière dont fonctionnera chaque thread de leur logiciel en choisissant les instructions les plus appropriées.



Haswell et mémoire transactionnelle
C'est par l'un de ses blogs qu'Intel vient d'annoncer une mise à jour de sa spécification AVX2 concernant Haswell, le prochain "Tock" d'Intel attendu pour 2013.
Cette extension d'AVX2 baptisée TSX apporte de nouvelles instructions qui permettent de gérer ce que l'on appelle mémoire transactionnelle. Contrairement à ce que son nom indique, la mémoire transactionnelle n'est pas un type de mémoire différent, il s'agit plutôt d'une manière différente d'accéder à la mémoire. Le principe de transaction n'est pas nouveau en informatique et se pose dans les cas où une ressource partagée peut être accédée de manière concurrente par plusieurs autres ressources


Transactional Synchronization in Haswell
By James Reinders (Intel)



Engineers Boost Computer Processor Performance By Over 20 Percent
Researchers from North Carolina State University have developed a new technique that allows graphics processing units (GPUs) and central processing units (CPUs) on a single chip to collaborate – boosting processor performance by an average of more than 20 percent.


Software Obsolescence – Complicating the Part and Technology Obsolescence Management Problem
Software obsolescence (more specifically COTS – Commercial Off The Shelf software obsolescence) is generally due to one of three main causes:
1. Functional Obsolescence
2. Technological Obsolescence
3. Logistical Obsolescence

"The only big companies that succeed will be those that obsolete their own products before someone else does"
Bill Gates, Founder, Microsoft Corp.


Event-Driven Architecture and Service-Oriented Architecture
This paper explores what event-driven architecture is, and how it relates to service-oriented architecture and enterprise service bus.


CRUD, DAO, DTO, DAL, SDO : définitions


L'avenir des clients Java passera par JavaFX
Durant la dernière conférence JavaOne 2011, Oracle a dévoilé sa stratégie concernant les applications clientes Java. Sans surprise, Oracle mise sur JavaFX.
Pour rappel, JavaFX est une API pour développer des RIA (desktop ou mobile), apparue il y a quelques années, mais qui n'a pas rencontré le succès escompté. Face à cet échec, une nouvelle version 2.0 de JavaFX a été présentée à la conférence JavaOne 2010.
Parmi les nouveautés marquantes, on peut noter l'abandon du langage Fx Script pour une API full Java. Cela permet notamment l'utilisation d'autres langages compatibles avec la JVM, tels que Groovy ou Scala. On voit aussi apparaître un descripteur d'interface graphique au format FXML. Celui-ci sera accompagné d'un outil graphique (standalone pour le moment), Java Fx Scene Builder, facilitant la création des interfaces. Cet outil fera son apparition courant 2012. Enfin, JavaFX pourra embarquer des composants HTML5 et JavaScript via l'utilisation de
WebKit. Le projet Avatar pousse même encore plus loin, en proposant des applications hybrides avec des interactions entre le monde JavaFx et HTML5.
Afin d'accélérer son développement, JavaFX va devenir open-source et sera intégré directement dans le projet OpenJDK. En parallèle, J2ME, l'API mobile historique de Java, va être unifié aussi dans le prochain JDK.
L'objectif d'Oracle est de diffuser JavaFx sur un maximum de périphériques possibles: desktops, mobiles et tablettes. Potentiellement, tous les périphériques compatibles avec la JVM pourront supporter JavaFX. Une version bêta est d'ores et déjà disponible pour Mac OS X. Une version pour Linux (Ubuntu) fera son apparition en 2012. Au final, JavaFx 3 sera intégré dans le JDK 8 prévu pour 2013 et sera compatible avec toutes les plateformes.

Manipulating Files in Java 7
The following is a modified snippet from a draft of The Well-Grounded Java Developer. It
gives you a quick taster of how much easier it is to manipulate files in Java 7 than in previous
versions. By using the new Files class and its many utility methods, you can perform the
following operations on files with only a single line of code:
  • Create
  • Delete
  • Copy
  • Move/Rename

Let's start by looking at the creation and deletion of files.


Java Lambda Syntax based on C#, Scala
One of the most anticipated new features of Java 8 is the introduction of Lambdas, which are anonymous functions that can be passed around like data in arguments and variables. However, the syntax for these wasn't widely decided, with polls asking for input on what would be most familiar to others.
A recent posting on the lambda-dev mailing list announced the conclusion that the Java Lambda syntax will be based on C# syntax. This is already widely known and used (as C# had delegates back in 1.0, support for delegate functions in 2.0 and lambda expressions in 3.0).


State of the Lambda December 2011 4th edition
This is an informal overview of the enhancements to the Java programming language specified by JSR 335 and implemented in the OpenJDK Lambda Project. It refines the previous iteration posted in October 2010. A formal
description of some of the language changes may be found in the Early Draft Specification for the JSR; an OpenJDK Developer Preview is also available. Additional design documents—in particular a more detailed examination of default
methods—can be found at the OpenJDK project page. As all of these artifacts are works-in-progress, there may be inconsistencies between them, which will be resolved by the time the spec and implementation are finalized.
The high-level goal of Project Lambda is to allow programming patterns that require modeling code as data to be convenient and idiomatic in Java. The principal new language features include:
  • Lambda expressions (informally, "closures" or "anonymous methods")
  • Expanded target typing
  • Method and constructor references
  • Default methods
These are described and illustrated below.


Java Modularity : Project Jigsaw: The Big Picture — DRAFT 1
This document is an overview of the current state of Project Jigsaw, an exploratory effort to design and implement a module system for the Java SE Platform and to apply that system to the Platform itself and to the JDK.
This document is not yet complete. Additional sections covering compilation, packaging, libraries, repositories, the module-system API, and the modularization of the JDK are in preparation. Every feature mentioned here has been implemented in the main Jigsaw repository unless otherwise noted.


Premières infos sur Java 9
  • Reified Generics ?
  • Primitives unifiés ?

Aucun commentaire: