mercredi 10 novembre 2010

Veille technologique semaine 45


Pour le bulletin de cette semaine, je vous propose les sujets suivants :
  • on parle beaucoup du HTTML 5 : un résumé des fonctionnalités de la spécification en cours, avec cette RefCard,
  • Oracle confirme sa proposition d'un service payant d'assistance pour la technologie Java. C'est le même schéma que BEA (avec JRockit) avec un JDK qui reste gratuit, mais des outils de monitoring et de réglage de la JVM payant.
  • Un article au sujet du rôle de l'architecture logicielle et des architectes correspondant.
  • Le club Java de Paris a proposé une soirée au sujet des BRMS (Business Rule Management System) avec deux COTS bien connus : JRules de ILog/IBM et Drools de JBoss.
  • Un article au sujet des deux approches pour être indépendant du socle technique : le Model Driven Architecture (MDA) et la programmation par aspects (AOP). Différences et complémentarités.
  • Le CEP : le Complexe Event Processing est un domain en plein essor avec des COTS. C'est un exemple d'architecture orienté événements (EDA : Event Driven Architecture).
  • La maîtrise du garbage collector : une synthèse des algorithmes et leurs réglages.
  • Les références sur les objets en Java : forte ou faible (strong ou weak) ?
  • Les invocations remote asynchrones avec la plateforme OSGi : c'est un schéma limité au invocation remote (pas d'asynchronisme local) avec une intrusion technique dans l'interface remote : ce n'est pas transparent.
  • Java et la programmation concurrente : les executors et les pools de thread.


Bonne lecture.


ABOUT HTML5
HTML5 is a standard for structuring and presenting content on the Web. It incorporates features such as geolocation, video playback and drag-and-drop. HTML5 allows developers to create rich internet applications without the need for third party APIs and browser plug-ins.
HTML5 is still under specification, and is currently in the Working Draft stage in the W3C, but many aspects of HTML5 are now stable and can be implemented in browsers.
This DZone Refcard highlights the main features in HTML5 and illustrates the JavaScript APIs available to work with those features.


Oracle proposera une JVM Premium
La semaine dernière au QCon, le monde Java a lancé la machine à rumeur. La faute à Adam Messinger, vice président du développement pour l'entité Fusion Middleware d'Oracle, qui a annoncé qu'il y aurait une version Premium (comprendre payante) de la JDK en plus de la version gratuite.
En réalité les plus avertis avaient déjà noté cette information au dernier JavaOne:
Premium offerings such as JRockit Mission Control, JRockit Real Time, Java for Business and Enterprise Support will continue to be made available for an additional charge.
En clair, Oracle a l'intention de vendre une version payante de la JDK qui comprendra, entre autres, les outils JRockit Mission Control (outil de monitoring), Real Time (outil de temps réel) et un support donnant accès par exemple à des corrections sans attendre les versions officielles. L'offre reste encore à définir, entre autre le prix, et des inconnus demeurent sur les différences entre les JDKs.
Par ailleurs Adam Messinger se veut plutôt rassurant sur le maintien d'une version gratuite. L'objectif d'Oracle reste de fusionner Hotspot et JRockit vers OpenJDK.
Néanmoins Stephen Colebourne (membre la fondation Apache et Java Champion) souligne les risques entourant cette annonce:
  • Est-ce que la version gratuite et la version premium sortiront en même temps ?
  • Est-ce que la version gratuite sera supporté sur la même quantité d'OS ?
  • Quels sont précisément les fonctionnalités de la version premium ?
  • Est-ce qu'il s'agira seulement de fonctionnalités pour le management ?
  • Ou s'agira aussi de fonctionnalités sur les performances ?
  • Quel est le marché ciblé ?
Il remarque également que ces craintes seraient levées si la JSR 924, qui spécifie la JVM, pouvait être implémentée librement, en s'abstrayant entre autre des champs d'utilisation (une vieille querelle entre Apache et Sun). Ceci permettrait d'avoir un standard et aux implémentations telle qu'Harmony d'être certifiées.
Depuis la prise en main de Java par Oracle, la communauté, qui est historiquement tournée vers l'Open Source, a quelques sueurs froides et l'annonce récente de monter les prix du support de MySQL n'arrangera rien.


Oracle prédit le futur de Java… ou au moins en parle
En ce moment, nous parlons beaucoup du futur de Java. A l'origine de ce petit séisme communautaire, il y a le rachat de Sun par Oracle il y a un an. Depuis la mi-2010, Oracle montre plutôt des signes encourageants, qu'il faut cependant parfois décrypter, car la communication vers la communauté Java n'est pas encore parfaite.


Architecture Lean – Connexion, Cohésion, Changement
Le rôle de l'architecture et la place des architectes au sein d'une organisation font souvent débat et sont  souvent mal compris. Cette incompréhension est principalement due au fait que la contribution de l'architecture à la réalisation des objectifs métier de l'entreprise n'est pas (ou peu) visible.
Le rôle de l'architecture peut être remis en perspective si on le considère au travers du prisme de trois objectifs clés (les 3 C de l'architecture) :

  • Etre Connecté aux objectifs métier de l'entreprise.
  • Assurer la Cohésion des solutions.
  • Accueillir favorablement le Changement.

Utiliser ces objectifs comme principes fondamentaux d'une « architecture lean » met l'emphase sur ce qui doit être fait sans perdre de vue le pourquoi. Cela permet ainsi de mieux positionner l'architecture au sein d'une organisation.


Business rule management system
From Wikipedia
A BRMS or Business Rule Management System is a software system used to define, deploy, execute, monitor and maintain the variety and complexity of decision logic that is used by operational systems within an organization or enterprise. This logic, also referred to as business rules, includes policies,
requirements, and conditional statements that are used to determine the tactical actions that take place in applications and systems.


JRules


Explore Model Driven Architecture and Aspect-oriented Programming, Birds of a Feather
In recent years, two new trends in software engineering have been established—Aspect Oriented Programming (AOP) was developed to extend and ease programming, and the Model Driven Architecture (MDA) was introduced to take full advantage of the power of modeling. Many people are confused when confronted with both AOP and MDA. This article provides a crash-course on both topics and explains the differences and similarities between the two.


Le CEP, un domaine en expansion
Le domaine du CEP, pour Complex Event Processing ou Traitement d'évènements complexes, est un domaine dont on entend peu parler mais dont l'utilité, une fois que l'on se penche dessus, semble évidente. Rappelons que le CEP est un concept dans lequel des suites d'évènements sont analysées, de façon automatisée, pour en dégager des informations qui ne seraient pas déductibles à partir de chaque événement pris séparément. La corrélation d'une suite d'évènements « simples » permet donc de déduire d'autres informations, plus complexes. Pour être concret, le CEP peut servir à détecter des fraudes bancaires par des suites d'évènements louches survenant sur un compte, ou alors pour détecter des problèmes dans un système suite à la réception, à une fréquence plus élevée que la moyenne, d'un certain type d'évènement.
Toujours est-il que de nombreuses solutions existent, Open Source ou non, pour satisfaire les divers besoins d'analyse. Dans un récent article, Marc Palmer de Streambase qui édite ses propres solutions CEP, revient sur la publication de chiffres semblant indiquer que les CEP ne représentent qu'un petit marché. Et pour contrer ces chiffres, il cite nombre de sociétés utilisatrices de la solution de Streambase. Même si c'est surtout un coup de pub pour sa compagnie, nous pouvons malgré tout réaliser à quel point les CEP sont importants dans le domaine du Capital Market.
Pour aller plus loin et découvrir différentes solutions, citons cet article de Debu Panda (de EJB3 in Action) vu sur ServerSide et dans lequel il évoque la solution de Starview. Mais si vous voulez vraiment être pris par la main pour avoir une première approche du CEP, Michal Bali, auteur de Drools JBoss Rules 5.0« , nous livre un tutorial complet implémentant la détection de fraude dans un système bancaire en utilisant Drools Fusion, solution de JBoss. Ce dernier article est très complet et permettra au lecteur d'avoir une bonne première approche des possibilités de l'outil.


Taming the Java Garbage Collector
Tuning the garbage collection in JVM is one of those things that developers often tend to ignore and overlook. But if done properly, it can save you hundreds of megabytes worth precious memory, without making a significant impact on the
application performance. Also GC tuning becomes an absolute necessity in certain applications due to various QoS requirements such as real-time processing, low response time and high throughput. So today I'm going to discuss a little bit about GC in JVM and how to properly tune up GC for best application performance. My discussion is entirely focused on Java 5 and 6, so if you are using an older JVM you are at the wrong place.
Before we jump into the discussion on GC tuning we need to have a basic understanding on the various concepts associated with GC. So here goes...


Know the JVM Series - When Weaker is Better: Understanding Soft, Weak and Phantom
How many times have we created various object instances, and assign those to reference variables? We all know very well that Java has automatic garbage collection; so we just play around the reference variables, and once those variables are assigned null or falls out of scope, JVM takes care of it. No need to worry about .free' as in C / C++. It's a headache-less approach, which minimizes the risk of introducing memory leaks to our programs, and it works out great day in day out in billions of Java applications running out there 24×7. Kudos to John McCarthy for inventing GC for Lisp, and to all the folks who implemented the concept in Java.

Asynchronous Remote Services
ECF's Remote Services API, which is used to implement OSGi 4.2 remote services, has had the ability for consumers/clients to use asynchronous/non-block remote method calls for at least the last 2 years.

Contents
1 Normal/Synchronous Services
2 Asynchronous Services
2.1 Example
2.1.1 Original Service Interface
2.1.2 Asynchronous Service Interface
2.2 A Second Example
2.2.1 Original Service Interface
2.2.2 Asynchronous Service Interface
3 Future Results
4 Full Example with Source


Java Concurrency – Part 7 : Executors and Thread Pools
Let's start with a new post in the Java concurrency series. This time we'll learn how to start new threads cleanly and to manage thread pools.

Aucun commentaire: