vendredi 3 décembre 2010

Veille technologique semaine 48

Pour le bulletin de cette semaine, je vous propose les sujet suivants :
  • Les slides de la conférence sur le Model Driven 2010 sont publiés sur le web,
  • Le cloud computing par Microsoft : c'est le début du model économique SaaS  (Software as a Service) ou PaaS (Plateform as a Service). La "location de logiciel" qui va remplacer le modèle économique "vente de licence" ?,
  • La langage Java utilisé pour le HPC (High-Performance Computing) avec la syntaxe Ateji,
  • La programmation fonctionnelle avec la langage Clojure,
  • L'architecture logicielle et le design : bien comprendre les différences,
  • Un article qui résume très bien les principes et les conséquences de la programmation par aspects (AOP) : c'est a la fois un principe et une technologie. Un article à lire absolument.
  • Une conséquence du principe de la séparations des préoccupations, avec le principe de l'inversion de dépendance qui permet de couper le lien du code fonctionnel vis à vis du code technique. Cet extrait des règles de conceptions avancées, traduit en français, résume au mieux le principe d'inversion de dépendances :
    "il ne faut pas construire l'application sur le socle technique mais il faut construire le socle technique sur l'application".
  • Les type nullable du langage C# : traduction de la cardinalité 0..1 UML pour les attributs (primitifs).
  • Résumé sur la gestion des exceptions en Java.
  • Explication de System.identityHashCode en Java.

Bonne lecture.


Slides de la conférence Model Driven Day : MDDAY 2010

http://www.slideshare.net/MDDAY/presentations

Slides de Steve Cook sur UML : le passé, le présent et le futur.
http://www.slideshare.net/MDDAY/stevecook-uml-mdday2010


Slides de la présentation DCNS
http://www.slideshare.net/MDDAY/dcns-mdday2010


Le Cloud selon Microsoft, retour de TechEd 2010
Le slogan "Cloud Power" était affiché partout dans la conférence TechEd 2010 de Berlin. Pendant la Keynote d'ouverture, Brad Anderson (VP Management & Security) a paraphrasé "the Big Switch" de Nicholas Carr, en utilisant la métaphore de la production électrique. Puis, il a expliqué les XaaS par le menu.


Cloud : Microsoft affiche fièrement 1 million d'utilisateurs pros en France.
Après l'annonce de l'arrivée imminente de son offre SaaS Office 365, Microsoft annonce que plus d'un million de professionnels en France utilisent ses différents services de cloud computing.

Selon la firme de Redmond, 150 000 salariés en entreprise ont fait appel à ses services hébergés en SaaS (Software-as-a-Service) Microsoft Online Services et 600 000 professionnels utilisent la messagerie Hosted Exchange.
Depuis plusieurs mois, l'éditeur américain a pris un véritable virage dans le cloud, multipliant les initiatives, à l'image de sa PaaS (Platform-as-a-Service) Windows Azure, de ses infrastructures IaaS Windows Server Hyper-V et System Center, deux gros systèmes "maison", en passant par le SaaS (Office 635).

Microsoft confirme ainsi que près de 750 clients, grands comptes comme PME, ont déjà adhéré à ses diverses couches cloud, à l'image d'entreprises comme Euronews, le Groupe Marie Claire, Médecins du Monde, les Taxis Bleus, Monoprix, Center Parcs, ou encore des éditeurs de logiciels comme Cegid ou Backelite.

Un portefeuille en pleine croissance que Microsoft compte bien développer en 2011, avec l'arrivée d'Office 365 et le renforcement de ses offres SaaS. Pour distiller ses multiples offres, la firme de Redmond a réussi à tisser un réseau français de 700 partenaires en France, comme Orange Business Services, pour ses Microsoft Online Services, et de 12 000 partenaires dans le monde.


Java for High-Performance Computing :
When presenting Ateji PX to an audience with HPC or simulation background, I often hear definitive opinions of the kind "We'll never consider Java, it's too slow".

This appears to be more a cultural bias than an objective statement referring to actual benchmarks. To better understand the state of Java for highperformance computing, let us browse through three recent publications:
  • High-performance computing in Java: the data processing of Gaia, by Luri & Torra, presented at SciComp XXL, May 2009
  • Java for High Performance Computing: Assessment of Current Research and Practice, by Taboada et.al., presented at PPPJ'09
  • Current State of Java for HPC, by Amedro et.al., Inria Research Report N° 0353, August 2008

Functional Programming with Clojure
Simple Concurrency on the JVM

MOTIVATIONS
It all started with John McCarthy, the year 1958, and a small language named Lisp. Why are we, five decades later, discussing a sudden springing-to-life of incarnations of this programming language predated only by Fortran? It turns out that Lisp never really died. It was merely in hibernation all those years, "pining for the fjords" of the Java Virtual Machine, powerful CPUs, and abundant RAM. That day has arrived. In fact, the multi-core architecture and ever-harder concurrency problems computer science is currently aiming to solve are a perfect fit for a Lisp dialect. Rich Hickey realized this and began work on a language we now know as Clojure (pronounced: \klö-zh.r\).

In just a few short years, the Java Virtual Machine (JVM) has gone from a platform solely running the Java language, to becoming the preferred platform for the execution of hundreds of cutting edge programming languages. Some of these languages, such as Groovy, Scala and Clojure are vying for the community's respect as the most innovative language on the Java Virtual Machine. Let's explore why Clojure is one of those frontrunners and why it deserves a place in the tool belt of any leading edge JVM developer.


Architecture vs. design
Throughout this series, I've been relying on the simplistic yet accurate definition of
architecture in software: "Architecture is the stuff that's hard to change later." When
you look at parts of your project, you can identify architectural elements by asking, "Will it be hard to change this later?" Layers (either physical or logical) are architectural under this definition because it's hard to change (or remove) them later.


Le point sur la programmation par aspects
RÉSUMÉ.
La réutilisation est l'une des principales promesses de la programmation par objets.
Malheureusement, elle n'est pas toujours possible du fait du mélange, lors de l'implémentation des applications, des définitions des services réalisés ("fonctionnalités") avec des propriétés non-fonctionnelles représentant des mécanismes d'exécution spécifiques (distribution, tolérance aux fautes, persistance, . . . ). Afin de pallier ce défaut, le paradigme de la programmation par aspects considère que les services d'une application et ses propriétés non-fonctionnelles correspondent à des aspects qui doivent être découplés les uns des autres. L'application est obtenue par la composition ("assemblage") de ces différents aspects. Nous avons identifié trois approches permettant la mise en oeuvre de la programmation par aspects. Dans le présent article, nous faisons le point sur ces approches ainsi que sur les concepts sous-jacents à la programmation par aspects.


Principe de l'inversion des dépendances
Dans la plupart des applications, les modules de haut niveau (ceux qui portent la logique fonctionnelle de l'application ou les aspects "métier") sont construits directement sur les modules de bas niveau (par exemple les librairies graphiques ou de communication).
Construire les parties "techniques" de l'application sur les parties "fonctionnelles", et non l'inverse.


Understanding C#: Nullable Types
Every C# developer knows how to work with value types like int, double, boolean, char, and DateTime. They're really useful, but they have one flaw: they can't be set to null. Luckily, C# and .NET give you a very useful tool to for this: nullable types. You can use a nullable type any place that you need a variable that can either have a value or be null. This seems like a simple thing, but it turns out to be a highly flexible tool that can help make your programs more robust.


La gestion des exceptions en java
La gestion des exceptions est un élément qui fait souvent défaut au même titre que la gestion des transactions.

Ce billet était à l'origine des notes personnelles qui avaient pour but de me servir de piqure de rappel et je me suis dit qu'un article de blog serait peut être utile à tous. Ce sujet prête souvent à discussions et il faut parfois adapter au cas par cas, néanmoins avoir un cadre de bonnes pratiques peut s'avérer très utile.

Tout d'abord, voici un schéma présentant la hiérarchie des classes « mères » d'exceptions en java.


Java's System.identityHashCode
The java.lang.System class provides many useful general utilities including handles to the standard output stream, the standard input stream, the standard error stream, and the console as well as methods for obtaining the current time in
milliseconds, defined properties, and environmental variables. In this blog post, I
briefly look at the System.identityHashCode(Object) method.

Aucun commentaire: