Archive

Kamel Aouiche

The Sun and Intel Road show

Sun Microsystems et Intel animerons un séminaire autour de la virtualisation et l’impact du choix de celle-ci sur une éventuelle solution de « Cloud Computing » adoptée par une entreprise.

Le séminaire aura lieu le 8 avril à Paris. L’inscription au séminaire est gratuite et disponible à l’adresse suivante http://www.beyond-the-buzzwords.com/register.php.

Un autre séminaire traitant le même sujet aura lieu le 5 mai à Lyon.

Pour avoir plus d’informations, suivez ce lien.

Categories: Cloud, Divers Tags:

Lancement du premier Spring User Group français

Le 25 février prochain aura lieu le premier Spring User Group français (SUG). A ne pas confondre avec l’autre SUG (Scrum User Group) !

La première session est consacrée à la présentation des nouveautés de SPRING 3.0. Elle sera animée par Arnaud Cogoluègnes.

Pour plus d’informations, je vous invite à vous rendre à l’adresse suivante : http://springusergroupfr.eventbrite.com/.

Categories: Divers, Java EE Tags: ,

Java a-t-il sa place dans un processus décisionnel ?

En relation avec mon billet précédent, je parlerai de la mise en place des solutions open sources dans un processus décisionnel.  L’accent sera particulièrement mis sur l’exploitation des technologies Java.

Tout d’abord, commençant par la couche de persistance. JOLAP (Java On-Line Analytical Processing) est une API Java qui permet la création, le stockage, l’accès et la gestion de données dans un processus OLAP. Hyperion, IBM, et Oracle ont initié le développement de JOLAP (JSR 69), dans la perspective d’être un équivalent de JDBC dans le monde OLAP. En effet, comme JDBC, JOLAP crée une connexion, à laquelle des requêtes décisionnelles (écrites en MDX, un langage de requête pour les bases de données multidimensionnelles) sont attachées. L’exécution d’une requête peuple un curseur qui permet de parcourir une vue multidimensionnelle ou un cube de données.

Au niveau de la couche présentation, JPivot est une librairie de tags JSP, qui permet de construire et d’afficher des tables OLAP et des graphiques à des fins de reporting. Les utilisateurs peuvent ainsi réaliser des opérations OLAP comme drill-down, roll-up, etc. (voir la figure ci-dessous).image

Pour plus d’informations, je vous oriente vers mon site personnel où vous trouverez comment configurer MySQL, Tomcat, Mondrian, JPivot et XMLA.

L’inconvénient majeur de ces solutions open sources, selon moi, est leur difficulté de configuration, de mise en œuvre et  leur scalabilité réduite (calculs très couteux). Cela explique peut-être leur faible utilisation et pénétration dans le marché.  Néanmoins, l’émergence du cloud computing pourra leur donner un nouveau souffle.  On commence déjà à parler du décisionnel “as a service”.  Il suffit juste de chercher « cloud computing and OLAP » dans votre moteur de recherche favori.

Categories: Java EE Tags: , , , ,

Web 2.0 OLAP: From Data Cubes to Tag Clouds

Pour les gens qui ne le savent pas, avant de rejoindre Objet Direct, je faisais de la recherche et je continue d’en faire quand j’ai un peu de temps. Ma toute dernière publication parue chez Springer porte sur le couplage Web 2.0 et OLAP (On-Line Analytical Processing).

Ce papier a le mérite d’être à l’intersection des cœurs de métier d’Objet Direct et Homsys car des technologies Java comme JOLAP et JSP-Servlets ont été utilisées pour réaliser de l’OLAP social.

Ci-dessous, le résumé du papier et pour plus d’informations, vous pouvez vous rendre sur le lien http://www.springerlink.com/content/u752130474k15336.

Increasingly, business projects are ephemeral. New Business Intelligence tools must support ad-lib data sources and quick perusal. Meanwhile, tag clouds are a popular community-driven visualization technique. Hence, we investigate tag-cloud views with support for OLAP operations such as roll-ups, slices, dices, clustering, and drill-downs. As a case study, we implemented an application where users can upload data and immediately navigate through its ad hoc dimensions. To support social networking, views can be easily shared and embedded in other Web sites. Algorithmically, our tag-cloud views are approximate range top-k queries over spontaneous data cubes. We present experimental evidence that iceberg cuboids provide adequate online approximations. We benchmark several browser-oblivious tag-cloud layout optimizations.

Dans un prochain billet, je mettrai l’accent sur l’utilisation des technologies Java dans un processus décisionnel.

Categories: Divers Tags: , , ,

Journée « L’Open Source SUN à l’honneur » – suite : GlassFish v3 Prelude

GlassFish est le serveur d’applications Open Source de Sun. La version v2 de GlassFish a été lancée en avril 2008. La version Entreprise Server v3, quant à elle, est prévue pour le début 2009. Cette version (Prelude) implémente certains composants Java EE 6.

GlassFish v3 Prelude se veut modulaire (architecturé autour d’un cœur OSCGi), léger, rapide et extensible (HK2).

Grâce à la modularité, GlassFish permet de supporter d’autres langages, en plus de Java, comme JRuby on Rails, Grails, etc. Un autre résultat de la modularité est le fait de n’embarquer dans GlassFish que les technologies nécessaires pour votre développement. Par exemple, si vous ne faites pas d’EJB vous ne serez pas obligé d’embarquer dans votre serveur d’applications un container pour cette technologie.

GlassFish permet un déploiement automatique et incrémental des applications Web. En effet, grâce à la sérialisation des sessions par le serveur, les données de la session sont sauvegardées et intactes. Ce qui permet, lors des phases de test d’un use case un peu long, de reprendre son déroulement dans l’état où il était avant toute modification et redéploiement.

GlassFish offre un mode embarqué (« GlassFish embedded »). Ce mode embarqué  est un mini conteneur intégrable et pilotable via une API Java. Le serveur se compose à la demande selon les composants que vous voulez embarquer.  Le code ci-dessous montre la simplicité d’utilisation du mode embarqué.

GlassFish glassfish = new GlassFish();
glassfish.minimallyConfigure(8080);
GFApplication app = glassfish.deploy(new File("sample.war"));
...
app.undeploy();
glassfish.stop();

En conclusion, GlassFish v3 Prelude offre un avant-goût de Java EE 6. Cette version permettra de tester certains composants de Java EE 6 comme :

  • JAX-RS 1.0 pour le développement de services REST
  • EJB 3.1
  • JSF 2.0 dont les spécifications ne sont pas encore terminées
  • Servlet 3.0 prévue pour bientôt.

Un « UpdateCenter » intégré permet d’installer facilement les modules, comme par exemple les toutes dernières versions « preview » des spécifications Java EE 6. L’administration du serveur peut maintenant être pilotée en REST sur le port d’administration. Il est à noter que GlassFish est intégré aux deux IDE : NetBean et Eclipse.

Categories: Java EE Tags: , ,

Journée « L’Open Source SUN à l’honneur » : stratégie logicielle Open Source de Java à GlassFish et au-delà

Le but de ce billet est de donner un aperçu des nouveautés de Java EE 6 annoncées lors de la journée « L’Open Source SUN à l’honneur » qui s’est tenue à Paris le 12 décembre 2008.

La spécification Java EE 6 est prévue pour mi-2009.  Elle se veut résolument tournée vers la simplicité de développement.  Hormis la programmation orientée POJO grâce aux annotations, déjà présente dans JEE 5, Java EE 6 introduit la notion de profils. Un profil correspond à des sous-ensembles de spécifications répondant à un « use-case » précisément identifié, et pouvant donner lieu à une certification de compatibilité. Par exemple, le profil Web contiendrait le minimum de technologies nécessaires pour développer une application Web : Servlet 3.0, JSP 2.1, JSR-45, EL 1.2, JSTL 1.2, JSF 2.0, EJB Lite 3.1, JTA 1.1, JPA 2.0, JSR-250.  Les technologies JAX-RS 1.1 et Web Beans 1.0 sont encours de discussion.

En plus des profils, Java EE 6 introduit l’élagage (pruning) qui consiste à rendre certaines technologies optionnelles : les technologies élaguées sont rendues optionnelles dans la prochaine « release » et un état élagué est noté dans la Javadoc. Ainsi, les technologies JAX RPC, EJB Entity Bean, JAXR et JSR-88 seront élaguées, et donc probablement optionnelles dans la prochaine sortie de JavaEE 6.

La dernière nouveauté de Java EE 6 est l’extensibilité. L’extensibilité permet d’ajouter de nouveaux frameworks à son application (en déposant des fichiers jar dans un répertoire précis) sans se soucier d’apporter des modifications au fichier web.xml.

Ci-dessous est donnée une liste (non exhaustive) des nouveautés apportées à certaines technologies Java EE 6, présentées lors de la journée.

Nouveautés Servlet 3.0 :

  • Les Servlets deviennent faciles à développer grâce aux annotations. Avec les annotations, vous pouvez écrire vos Servlets sous forme de POJOs. Les annotations @Webservlet, @ServletFilter et @WebServletContextListener sont utilisées pour déclarer une Servlet, un filtre et un listener.
  • Toute classe annotée présente dans /WEB-INF/classes ou dans un jar de /WEB-INF/lib est automatiquement découverte et prise en compte. Le descripteur web.xml devient alors facultatif.
  • Le fichier de configuration web.xml devient modulaire en utilisant des fichiers fragments web-fragment.xml.
  • Une API pour un enregistrement dynamique des Servlets
  • Traitement asynchrone des Servlets (@WebServlet(asyncSupported=true)). Pour rentrer en mode asynchrone, il faut utiliser la méthode ServletRequest.startAsync(). Cette méthode renvoie un objet AsycContext qui permet de contrôler le mode asynchrone.
@WebServlet(urlMappings="/foo")
public class MyServlet extends HttpServlet {
     @Get
     public void handleGet(HttpServletRequest request, HttpServletResponse response) {
                ....
     }
}

Nouveautés EJB3.1 :

  • Il n’est plus nécessaire d’implémenter une interface locale pour écrire des Sessions Beans.
  • L’ajout d’un Singleton Bean qui correspond bien évidemment au classique Design Pattern Singleton dans un conteneur.
  • Une nouvelle annotation fait son apparition : @Schedule. Avec cette annotation, il est maintenant possible d’activer un scheduler similaire à la Crontab sous Unix.
  • Les méthodes des Sessions Beans peuvent désormais être appelées de façon asynchrone en utilisant l’annotation @Asynchronous. Lorsqu’un client appelle une méthode asynchrone, le container redonne aussitôt la main au client et continue l’appel de cette méthode asynchrone dans un autre thread.
  • Pour faciliter le déploiement, il est maintenant possible de déployer des composants EJB 3.1 dans une archive WAR. On peut désormais appeler des EJB directement dans un container de Servlets comme Tomcat. Tout tient dans une archive WAR.
  • Un nom JNDI global pour accéder aux Beans (Par exemple, java:global/com/od/HelloWorld).
  • Introduction de la notion EJB embarqué: il est possible de déclarer et de lancer programatiquement un conteneur EJB léger. Cela rend possible l’utilisation des EJB dans n’importe quel environnement («EJBs everywhere!»), par exemple lors des tests unitaires.

Nouveautés  JPA 2.0 :

  • JPA 2.0 est désormais doté de l’API Criteria, inspirée d’Hibernate.
  • Il est possible de mapper des collections d’éléments simples (List<String>, par exemple) à l’aide de l’annotation «CollectionOfElements».
  • La sauvegarde d’un ordre de tri en base, avec @OrderedBy(« lastLoginDate ») et @OrderColumn(« loginOrder »). JPA crée automatiquement une colonne supplémentaire en base pour conserver cet ordre.
Categories: Java EE Tags: , ,