mercredi 24 novembre 2010

[cloud Azure] présentation de windows Azure lors de l’open door de Micorsoft en Tunisie, 09/12

A l’occasion du Microsoft Open Door en Tunisie, je présente deux sujets lors, Le 09/12/2010 :

· 13h30 - 14h30 : Presentation de Windows Azure - Khaled Ben Driss, OXIA

· 14h30 - 15h30 : Comment créer des applications critiques en utilisant Visual Studio 2010 - Khaled Ben Driss, OXIA

Les deux sujets sont liés

1) La mise en ouvre de solution SaaS et le déploiement d’application sur le cloud nécessitent une meilleure industrialisation des développements à travers la mise en pratique des concepts ALM (Application lyfe cycle Management). Visual Studio 2010, présente l’état de l’art dans le domaine et une des solutions ALM les plus aboutis du moment.

2) Azure représente une plateforme PaaS de choix pour les adeptes des technologies .Net (et PHP, et java).

La participation est ouvert, ne ratez pas l’événement … Open Door pour découvrir les dernières technologies et innovations avec les experts internationaux de Microsoft et ses partenaires. Développez vos compétences et connectez-vous avec la communauté locale des professionnels des technologies de l’information.

Lien :http://www.microsoft.com/northafrica/tunisia/about/opendoor/agenda.aspx

date : 8 et 9 Décembre 2010

lieu : Hôtel Sheraton Tunis

mardi 19 octobre 2010

[Cloud SaaS] La guerre des Apps : la menace réelle, Microsoft dévoile Office 365 un Google Apps killer

Aujourd'hui, à San Francisco, la division Office de Microsoft a dévoilé un nouveau produit: une offre Software as a Service Office 365.

SaaS cloud PaaS

Il s’agit de l’unification: SharePoint, Lync Online, Exchange, and Office web Apps en une nouvelle offre sous un nouveau nom.

Les coûts mensuels couvrent une large plage :

· $2 pour la seule messagerie.

· $6 pour une version de base pour les PME. 

· $27 pour la version la plus complète avec des fonctions de téléphonie (messagerie vocale dans votre boîte de réception) et la vidéoconférence / voix..

L’offre de Microsoft, est destinée essentiellement pour les petites entreprises et se positionnes-en concurrent directe de Google Apps.

Microsoft, s’oriente de plus en plus vers le cloud au risque de cannibaliser ses revenues issues des licences, …

C’est peu être un itinéraire déjà tracé, même avant le départ, annoncée, de Ray OZZIE le dernier architecte logiciel en chef de Microsoft.

à suivre

jeudi 23 septembre 2010

[java 7] Oracle confirme le Plan B pour Java 7, ça commence très mal

Bien que ridicule, Oracle vient de confirmer deux prochaines mises à jour majeures de Java, espacées d’au plus12 mois .

C’est le fameux Plan B :

Selon Mark Reinhold, les 2 deux scenarii

Plan A:

JDK 7 (tel que définit actuellement)

mi 2012

Plan B:

JDK 7 (sans Lambda (closures), Jigsaw (modularisation)…)

mi 2011

 

JDK 8 (avec Lambda (closures), Jigsaw (modularisation, ++ 

fin 2012

ça ne promet rien de bon, quand t’on sait que Oracle projette aussi de fusionner Jrockit et Hotspot dans le même laps de temps

Le ridicule, tuera-t-il java en tant “Langage d’une communauté”, pour le transformer en un langage proposé par une entreprise, à l’instar de C# ?


Il est temps de confier la destinée de la plateforme Java à une fondation indépendante


et de soulager Oracle de son fardeau : plus besoin d’expliquer les décisions sans parler des vrais raisons … business bien sûre … 


à suivre

mercredi 15 septembre 2010

[web 2.0, cloud] Mashups4JSF, au service des applications composites en JSF, est compatible Google Apps Engine

Un mashup (en français application composite) est une application qui combine des services (généralement du contenu multimédia) provenant d’autres applications.

L’application la plus populaire des mashup est la capacité d’un site web d'agréger des cartes géo-localisées provenant de Google Maps dans un site web.

Pour ce faire, on utilise le plus souvent l'objet AJAX et RSS ou ATOM, JSON et une maitrise de JavaScript.

C’est l’intérêt d’utiliser Mashups4JSF pour simplifier la création de Mashup, sans être un expert de ces technologies coté client.

clip_image002

http://code.google.com/p/mashups4jsf/

Mashups4JSF au service des développeurs JSF

Mashups4JSF est un projet open source qui permet d’intégrer des services mashup dans des applications Java et JSF (RichFaces par exemple).

Le développeurs JSF pourra construire sans grande difficultés des mashup et offrir à ses clients une expérience utilisateurs digne des standards RIA.

D’autre part, Mashups4JSF permet d’exporter les données d’une application sous forme de mashup en utilisant ajoutant l’annotation @Feed à la définition de classe du domaine en question.

Il s’agit d’un nouveau projet (version 0.0.2) sous licence Apache 2.0, qui est apparemment compatible avec Google Apps Engine (demo sur GAE ici).

Prometteur … à suivre

Rappelons que pour se créer un mashup avec Google Maps, il suffit d’utiliser un autre composant déjà à sa version 1.1.3 GMaps4JSF 

clip_image004

http://code.google.com/p/gmaps4jsf/

samedi 11 septembre 2010

[Java 7] Java 7 sortira en retard : attendu à la mi-2012, et rien sur la “Java Cloud Edition”

La sortie de Java 7 est prévue pour 2012.

C’est ce que vient d’annoncer Mark Reinhold, l’Architect en Chef du "Java Platform Group" chez Oracle : “Our present best estimate is that we could complete, test, and stabilize the planned work in time for a release around the middle of 2012. “

Oui, Java 7 sortira ! Mais en retard !!

Pourquoi ce retard, lorsqu’on sait pertinemment, qu’Oracle est “obligé" de soutenir java ?

Oracle dit qu’elle doit tout re-vérifier !

Plausible, pour quelqu’un qui vient « d’hériter » de quelques 6 millions de lignes de codes

.

Mark Reinhold, présente deux scenarii

Plan A:

JDK 7 (tel que définit actuellement)

mi 2012

Plan B:

JDK 7 (sans Lambda (closures), Jigsaw (modularisation)…)

mi 2011

 

JDK 8 (avec Lambda (closures), Jigsaw (modularisation, ++ 

fin 2012

De toute façon, aucun n’est satisfaisant.

La version 7 de Java, qui a pris du retard en tant que langage de programmation  (par rapport à C# 4 par exemple), sortira sans véritable innovation (heureusement que la communauté continue d’innover avec Scala, Groovy, Grails …. )

La véritable inquiétude reste que Java 7, sortira en 2012 sans aucune ambition pour le cloud computing…!!

Java 7 sans ambition pour le Cloud computing

A sa sortie en 2012, java 7 ne proposera pas de modèle de programmation native adapté au cloud computing (sans framework à la rescousse). Il n’est pas prévu de sortir « Java Cloud Edition »  (dans la jargon java, JCE est déjà associé à Java Cryptography Extension).

Rappelons qu’en 2012, Java 6, lancé le 11 décembre 2006, fêterait ça 6ième année.

A l’époque du premier planning de Java7, personne ne faisait le lient entre Java et le cloud computing, ni avec le PaaS (Platform as a Service) !, d’autant plus que ces derniers ne faisait partie du Buz techno de l’époque.

clip_image001

Google trends

Besoin d’une version cloud de Java : Java Cloud Edition  (JCE)

Il est temps de saisir l’opportunité de créer un tournant dans le modèle de programmation Java et de lui donner une orientation plus franche vers les besoins du cloud computing et le web 2.0.

La question à se poser est : quand est ce qu’Oracle saisira l’aspiration d’une grande partie des 9 millions de développeurs java (6 miilions de développeurs en 2007) à capitaliser sur leur expérience et se préparer à l’émergence du développement d’application pour le Cloud computing.

En plus de Java SE et de java EE , la communauté Java doit disposer d’une Java Cloud Edition : standardiser la solution du multi-tenacy, de sécurité, de l’accès aux données, de la gestion du cache, …

L’idéal serait la standardisation des PaaS et l’unification des modèles de programmation pour le cloud et sur site (on-premise).

Malheureusement ce n’est pas encore dans le planning de java chez Oracle…

lundi 6 septembre 2010

[cloud Azure] Windows Azure SDK pour les développeurs Java (windowsazure4j)

Indirectement, à travers un projet open source, Microsoft fait un clin d’œil aux développateurs Java pour les attirer vers son offre PaaS Azure.

Il s’agit du projet http://www.windowsazure4j.org/ : un projet open source pour fournir un kit de développement pour Windows Azure et Windows Azure Storage ( Blobs, Tables & files d'attente).

Ce projet permet aux développeurs Java de profiter de la plate-forme Microsoft Services Cloud - Windows Azure et fournit un modèle cohérent de programmation pour Windows Azure Storage (Blobs, Tables & files d'attente).

Windows Azure SDK Java

Le Windows Azure SDK for Java permet, à toute application développée sur Java, d'accéder aux stockage Windows Azure, à la puissance de calcul et aux interfaces de gestion de la plateforme en faisant abstraction du Protocol REST pour

Ainsi, ce que propose le projet :

· des classes Java pour Windows Azure Blobs, Tables & files d'attente (pour les opérations CRUD)

· des classes utiles pour l’abstraction du dialogue avec le protocole http, REST et la gestion des erreurs.

· Le support du logging et de l’instrumentation

Pour que ce modèle d’usage du PaaS pour Java, puisse concurrencer les autres offres du marché (Google, Spring/vmaware et Force.com), il va falloir que Microsoft montre un soutient indéfectible pour ce type de projet.

Notons que le choix de la licence “Apache 2.0”, pour le projet, a été très judicieux …

A suivre …

jeudi 26 août 2010

[Clous PaaS SaaS] après Force.com et Azure c’est Google App Engine qui s’attaque au problème de solution multi-tenant

Nous observons actuellement une concurrence acharnée entre les offres de PaaS (plateforme as a Servce), de Salesfoce.com, Azure, Google App Engine, jusqu’à la nouvelle offre en préparation de Vmware/Spring.

Mais, la maturité de ce marché passe par la capacité d’offrir en native la prise en charge de de l’aspect multi locataire qui sera à même d’attirer les éditeurs de solution SaaS (Software as a Service) vers ce type de plateforme.

Une application SaaS est dite multitenant, si plusieurs organisations clientes (locataires) peuvent exécuter la même application déployée sur la même infrastructure.

La capacité de proposer une solution basée sur une architecture multi locataire (multi-tenant) est un des éléments fondamentaux de la viabilité économique d’une offre SaaS.

Rappelons que le PaaS Force.com (Salesforce ) est l’un des pionniers de ce domaine et que Microsoft a déjà annoncé que son offre PaaS Azure supporte l’aspect « multitenacy ».

C’est au tour de Google d’annoncer le support de l’aspect « multitenacy », comme l’amélioration majeure apporté par la version 1.3.6 de Google App Engine. La fonctionnalité est disponible pour toutes les API de Google App Engine : Datastore, Memcache, et Task Queues..

Google appengine réalise la ségrégation des applications basée sur un espace de nommage (namespace à la XML) unique affecté à chaque client (organisation). Ainsi, on pourra servir avec la même instance d’application les utilisateurs de plusieurs clients. Chaque client ne voit que sa propre copie personnalisée de l’application.

La bonne nouvelle, pour les développeurs, est que cette amélioration est activé par une simple configuration, aucun changement dans les codes sources n’est nécessaire..

Google app engine, cherche ainsi à séduire les éditeurs désireux de migrer, en mode SaaS, leurs logiciels ou d’en créer de nouveaux.

http://googleappengine.blogspot.com/2010/08/multi-tenancy-support-high-performance_17.html

mercredi 25 août 2010

[cloud PaaS] Microsoft Azure : quels usages pour les Web Role et Worker Role

L’arrivée du PaaS (Plateforme as a Service) Azure de Microsoft, dans le paysage du développement .Net ne peut passer sans l’apparition d’un nouveau jargon technique.

Cet article met l’accent sur l’un de ses nouveaux termes techniques : la notion de Role.

Pourquoi c’est important de comprendre la signification réelle de la notion de « Role »,

Tout simplement pour savoir utiliser le bon Role pour le bon usage

Le développeur Windows Azure doit choisir un ou plusieurs types de rôles à implémenter lors de la mise en ouvre de sa solution (sous forme de service), en phase d’architecture. Une fois déployée au sein de Microsoft Azure, l’application pourra exécuter plusieurs instances de rôles différents.

Le plus simple est de distinguer les rôles en deux catégories

  • Web role: pour traiter des requêtes HTTP/HTTPS. Un Web Role est un rôle adapté pour le développement d’application web supporté par IIS 7 et ASP.NET (3.5 pour le moment). Exemples de Web  rôles disponibles : ASP.NET Web Role, ASP.NET MVC2 Web Role,  CGI Web Role et WCF Service Web Role : 
  • Worker role: pour traiter des tâches en arrière plan : il s’agit de processus de tache de fond (aucune requête HTTP entrante, ni exposition à un protocole). Il s’agit d’application de type s’exécutant comme une sans nécessiter d’être exposée sur un quelconque protocole. : un worker role peut servir de tâche de fond à une application web basé sur un Web Role.

Typiquement, pour un site ou une application web en ASP.NET il suffit de créer un Web Role. En créer plusieurs permet d’augmenter la disponibilité de l’application et de prétendre aux bénéfices d’un niveau de service d’au moins 99.95%.

Le niveau de service assuré par Azure exige au moins deux roles pour bénéficier du Windows Azure Service Level AgreementWindows Azure has separate SLA’s for compute and storage. For compute, we guarantee that when you deploy two or more role instances in different fault and upgrade domains, your internet facing roles will have external connectivity at least 99.95% of the time.”

Le Worker role est utilisé typiquement pour des activités de traitement de fond :

  • Création de fichier pdf,

  • Traitement d’images

  • Préparation des fiches de paye, en fin du mois

  • Datamining

  • calcul statistique

  • etc.

Faire fonctionner 10 Worker Role durant une heure offre la même capacité de calcul que celle réalisée par 1 seul Worker role durant 10 heures, et ça coûte le même prix.

Un web role peut définir un point de contact (Endpoint) HTTP unique et un autre point unique HTTPS pour les clients externes.

La configuration d’un worker role est plus flexible : il peut définir jusqu'à cinq points de contact (Endpoint) externe en utilisant HTTP, HTTPS ou TCP. La principale contrainte est que chaque point de contact externe défini pour un rôle doit rester à l’écoute sur un port unique.

De plus, tous les rôles peuvent accéder aux services Windows Azure de stockage (Windows Azure storage services ) via les API de Windows Azure Managed Library ou le protocole REST via Windows Azure Storage Services REST API..

Avant de lancer votre application sur Azure (en mode SaaS ou non), pensez à prendre le temps de bien choisir les rôles adéquats : faire de l’architecture applicatif, devient plus important dans le cloud que dans le cas « on premise ».

Mais ceci est un autre sujet …

vendredi 20 août 2010

Le PDG de Google se fait le chevalier de la protection de la vie privée.

Eric Schmidt, s’inquiète quant à l’impact futur de la compilation, par facebook et les autres réseaux sociaux, d'informations sur les individus, qui « se dénudent numériquement » en toute confiance.

Ce défenseur de la vie privée, prophétise que certains seraient obligés de changer de nom pour fuir leur passé numérique.

Mais, peut-il nous détailler, ce que Google « compile » et stocke sur nous tous ? :

· Google search: le détail de nos recherches

· Gmail: nos emails et nos contacts

· Googlegroups : nos questions les plus stupides et nos réactions les plus spontanées

· Chrome : nos centres d’intérêts

· Google Calendar: nos habitudes

· Google Docs: nos travaux et nos idées

· Google Maps: nos adresses et nos trajets

· Picasa: nos photos, et par extrapolation nos visages

· Youtube : nos vidéos

· Google voice : nos voix …

· Google News: les informations qui nous intéressent

· Google alerts: les sujets qu’on suit au fil de l’eau

· Google Books: nos centres d’intérêts culturels

· Google talk : nos amis, et nos messages instantanés,

· Google analytics : ceux qui s’intéressent à nos idées et visitent nos sites web / blogs,

· Google adwords : ce que nous cherchons à vendre,

· Etc..

Et enfin, s’il reste d’autres informations non compilées, elles le seront avec Android (OS et Mobile) …

Ainsi, Googleet n’a pas besoin qu’on partage nos informations personnelles, il les "possède" déjà. !!

Il sait déjà tout, d’ailleurs c’est pour cette raison qu’on visite google.com….

mercredi 18 août 2010

[Java et Java EE ] Newslettre à lire, LeJournalduNet

La nouvelle version de la Newslettre du JDN (LeJournalduNet) est intéressante pour deux raisons :

  • La première raison , est qu’elle est “Spécial Java, Tutoriel Apache Tomcat native, Analyse Spring, Eclipse 3.6, Quel avenir pour Java, Netbeans 6.9...

  • la seconde est qu’elle comprends une de mes tribunes  dans le JDN :

Java, SaaS, SOA, open source

lien : http://benchmail.journaldunet.com/magazine/numero_10176814.html

ou bien

visualisez sur ISSUU.com

jeudi 5 août 2010

[Cloud PaaS] SpringSource continue à consolider son offre pour le cloud avec Spring GemFire

Spring source vient d’annoncer la release de la version 1.0.0M1 de Spring GemFire. Cette offre permet de mettre à la disposition des utilisateurs de GemFire (de GemStone qui fait partie du groupe Vmware ) les concepts et le model de programmation de SpringFramework.

GemFire s’inscrit dans le domaine de cache distribué (Distributed Cache) pour les données applicatives. Un cache distribué offre un système de cache de données permettant d’accélérer les performances des applications web de grandes tailles.

L’offre Spring GemFire cible essentiellement les applications déployées dans un cloud. Elle présente cette offre comme «Spring GemFire : Elastic Data Management for Enterprise & Cloud Applications ».

Cette offre vient quelques semaines après l’acquisition par SpringSource de RabbitMQ (Open Source Messaging Optimized for the Cloud) . RabbitMQ une implémentation open source du protocole AMQP et montre que SpringSource est entrain de dérouler une feuille de route pour son offre Cloud/PaaS.

Rappelons qu’en plus de Gemstone Gemfire, les autres offres de cache distribué pour le Cloud computing (Distributed Cache for cloud coumputing) sont :

  • ehcache (open source, propriété de Terracotta)
  • Infinispan (open source, propriété de RedHat – Jboss)
  • memcached (open source, utilisé par Google App Engine, Facebook, twitter, YouTube, Flickr…)
  • Terracotta for Web Sessions
  • Gigaspaces
  • IBM Webpshere eXtreme Scale
  • Oracle Coherence

autres sujets

- Cloud et MOM open source : Jboss HornetQ le Middlewares Orientés Messages de Redhat vise le PaaS

- Terracotta achète Ehcache: la concentration des projets open source s’accélère

mardi 3 août 2010

[cloud IaaS, PaaS et SaaS] la France subventionne sérieusement une offre cloud open source, Compatible One

Le choix est fait : La France a décidé le financement de 73 projets collaboratifs de recherche et développement (R&D) émanant de 52 pôles de compétitivité, pour un financement par l’État de 63 M€.

Ces projets ont été retenus parmi les 216 dossiers présentés au dixième appel à projets. Sélectionnés pour leur caractère innovant et pour l’activité économique qu’ils devraient générer, ils vont bénéficier d’une aide financière de l’État.

Pour plus de détail : Lire le Communiqués de presse sur le site http://www.economie.gouv.fr

Le fait marquent : est que Trois projets subventionnés sont des projets open source émanant du groupe thématique Logiciel libre (GTLL) et faisant partie du pôle de compétitivité Systematic (ile de France). Ce pôle regroupe des acteurs publics et privés.

Les projets sont

  • Compatible One, un "Cloudware” libre,
  • Easy SOA, une plateforme d’intégration SOA libre,
  • Squash, pour des tests fonctionnels

Le détail des projets retenus (à partir du site de GTLL ):

  • Compatible One : vise à développer une solution complète de “Cloudware” sous licence libre, en intégrant et adaptant différents logiciels des partenaires du projet, entre autres. Compatible One à l'ambition de permettre à chacun, de créer, déployer et administrer des Clouds privés, publics ou hybrides à faible coût offrant des services de tous types (IaaS, PaaS et SaaS)
  • Easy SOA : vise à concevoir et fournir une plate forme d'intégration SOA libre et des outils associés d'administration et de supervision permettant de répondre aux attentes des utilisateurs métiers, des développeurs et des exploitants dans le respect des standards d'interopérabilité et en se reposant sur des composants libres largement diffusés.
  • Squash : vise à structurer et industrialiser les activités de tests fonctionnels en proposant une méthodologie outillée libre adaptée à la mise en œuvre d'un centre de service de tests.

Les sommes, pour l’open source, ne sont pas anodines : il s’agit de plus de 17,5 millions d'euros.

Pour ceux qui pensent encore que l’open source c’est Gratuit, je rappelle 17,5 millions d'euros d’investissement de l’Etat …

Autres fait marquant : le financement émane de plusieurs ministères (au moins 7) et pas seulement de celui s’occupant des TIC. Il s’agit des ministères de :

  • Économie, Industrie et Emploi
  • Défense
  • Alimentation, Agriculture et Pêche
  • Écologie, Énergie,
  • Développement Durable et Mer
  • Espace Rural et Aménagement du Territoire
  • Santé et Sports

Pour ceux qui n’ont rien eu ne rater pas « Le 11e appel à projets en mars 2011 », un très bon modèle de financement Publique-privé, apparemment compatible avec les règles de l’OMC,

à suivre …

jeudi 24 juin 2010

Eclipse 2010 : Helios est sortie vivement Indigo

Chaque année, la fondation Eclipse et de ses projets assemble une version coordonnée selon un calendrier planifié en commun. Cette année il s’agit de la version Helios.

Après, Callisto en 2006 , Europa en 2007 , Ganymede en 2008 , Galileo en 2009 voici Helios en 2010 September 24, 2010.

La prochaine version se nommera Indigo et sortir en juin 2011 (espérons que Micorsoft ne réclame pas des droits d’auteur sur le nom.)

Eclipse Helios est la publication 2010 des projets Eclipse : cette année 39 équipes de projet font partie de la release.

Remarquons la présence de Acceleo : un outil de pour réaliser des générateurs de code basé sur l’approche MOF.

Les projets Helios : Eclipse juin 2010

Project Name

Version

Acceleo

Acceleo 3.0.0

Accessibility Tools Framework

0.8.0

ATL - Atlas Transformation Language

3.1.0

BPMN modeler

1.2

Buckminster Component Assembly

Helios

Business Intelligence and Reporting Tools (BIRT)

2.6.0

C/C++ Development Tooling (CDT)

7.0

CDO Model Repository

3.0.0

Dali Java Persistence Tools

2.3

Data Tools Platform

1.8

Dynamic Languages Toolkit

2.0

Eclipse Communication Framework

ECF 3.3

Eclipse Git Team Provider

 

Eclipse Modeling Framework (EMF)

2.6.0

Eclipse Packaging Project

1.3.0

Eclipse Platform

3.6

Eclipse Project

3.6.0

Eclipse Web Tools Platform Project

WTP 3.2.0 (Helios)

EclipseLink Project

2.1 - Helios

EMF Compare

1.1.0

EMF Query

 

EMF Teneo Model Relational Mapping

 

EMF Transaction

 

EMF Validation

 

Equinox

3.6

Extended Editing Framework

0.8.0

Fortran Development Tools

6.0

GEF - Graphical Editor Framework

3.6.0

GMF Tooling

 

Graphical Modeling Framework

2.3.0

Graphical Modeling Framework (GMF) Notation

1.4.0

Graphical Modeling Framework (GMF) Runtime

1.4.0

Java Emitter Templates (JET2)

M2T JET 1.1.0 (Helios)

Java implementation of Git

 

Java Workflow Tooling

 

JavaScript Development Tools

3.2.0 (Helios)

JavaServer Faces

 

JDT - Java development tools

 

Linux Tools

0.6.0

Marketplace Client

Helios

MDT OCL (Object Constraint Language)

3.0 (Helios)

MDT UML2

UML2 3.1.0

MDT XSD (XML Schema Definition)

 

Memory Analyzer

 

Memory Analyzer

 

Mint

0.9.0

Mobile Tools for Java

1.1

Model Discovery

MoDisco 0.8.0

Modeling Amalgamation Project

amalgam 1.1.0

modeling.emft.ecoretools

 

modeling.emft.mwe

MWE 1.0.0 (Helios)

modeling.m2t.xpand

Xpand 1.0.0 - Helios

MoDisco

 

Mylyn

3.4

Net4j Signalling Platform

3.0.0

Parallel Tools Platform (PTP)

4.0

PDE - Plugin Development Environment

3.6

PHP Development Tools

 

Rich Ajax Platform

1.3

rt.jetty

 

SCA Tools

2.1.0

Sequoyah

1.0

Server Tools

 

SOA Tools

2.1

Subversive - SVN Team Provider

 

Swordfish

0.10

Target Management

3.2

Test and Performance Tools Platform Project

4.7.0

Web Services Tools

WTP 3.2

WTP Common Tools

3.2 (Helios)

WTP EJB Tools

WTP 3.2 (Helios)

WTP Java EE Tools

WTP 3.2 (Helios)

WTP Source Editing

3.2.0 (Helios)

Xtext

Xtext 1.0.0 (Helios)

mardi 22 juin 2010

Industrialisez vos applications avec LEONARDI

Pour ceux qui cherchent à industrialiser le développement des applications métiers, la solution de trouve chez W4 : c’est LEONARDI.

La solution a été intégrée aux outils proposés par W4 suite à l’acquisition de Lyria.

Rappelons que W4 est spécialisé dans l'automatisation de processus (BPM), et Lyria dans le développement rapide d'interfaces.

LEONARDI, permet de structurer les développements et réduire vos coûts avec :

  • · la solution pour développer des IHM multi-cibles ;

  • · la solution la plus rapide du marché pour développer vos applications métiers ;

  • · la solution pour automatiser le développement d’applications pour des projets d’envergure ;

  • · la solution pour moderniser vos applications sans être un expert de toutes les technologies.

Industrialisez vos applications métiers avec LEONARDI est le titre due Web séminaire LEONARDI de 45mn, annoncé pour 1er juillet à 11h00 (heure de Paris)

Pour s’inscrire le lien http://www.w4.eu/formulaire_leonardi_webseminaire.aspx

Pour les curieux : prenez un avant gout de la solution en étudiant le projet open source en relation avec LEONARDI sur  le site de http://www.lyria.com/

à suivre ….

mardi 18 mai 2010

Alfresco présente Activiti BPMN 2 : 1er moteur BPMN 2.0 open source sous licence Apache

En avril, dernier, lorsqu’on a parlé, dans ce blog, du départ de deux membres importants quittent l’équipe JBPM, nous avons annoncé que Tom Baeyens et Joram Barrez promettent, sur le blog de Joram Barrez, le lancement imminent d’un nouveau Moteur BPM basé sur la norme BPMN 2.0 sous la licence apache.

Une partie de l’annonce était « We’re building a new BPM platform that’s architected for new IT requirements. It will be Apache licensed and it will run BPMN 2.0 natively ! »

C’est annoncé !!,

C’est sous les couleurs de Alfresco, le Leader de l’ECM open source, que les deux “mousquetaires du BPM” proposent ce nouveau moteur, nommé Activiti.

Activiti va rendre le Business Process Management (BPM) une commodité.

il a au moins la particularité d’être le 1er moteur BPM (et en plus BPMN 2.0) open source sous licence Apache.

Activiti un moteur BPM

La première version alpha d’Activiti intègre les fonctionnalités suivantes :

- Activiti Engine – Fichier JAR contenant la machine virtuelle de processus et l’implémentation du langage de processus BPMN ;

- Activiti Probe – Console d’administration système permettant de commander le moteur Activiti ;

- Activiti Explorer – Application utilisateur permettant de gérer facilement les listes de tâches et d’exécuter les tâches de processus ;

- Activiti Modeler – Outil de modélisation des processus BPMN 2.0 via un navigateur, basé sur Ajax, destiné aux analystes métier.

Selon Tom Baeyens, « Activiti va véritablement bouleverser le paysage BPM », explique Tom Baeyens. « Avec sa licence Apache et sa richesse fonctionnelle,

A l’instar de l’approche de Micorsoft avec WPF 4.0 chez les développeurs .Net, l’équipe d’Activiti, va essayer de déclencher une large adoption de la technologie BPM chez les développeurs Java.

Activiti est ainsi à même de s’imposer comme l’implémentation standard du BPM et du BPMN.

Remarquons l’utilisation du moteur de modélisation web SIGNAVIO, pour la modélisation.

clip_image002

Il est prévisible que ce moteur de BPM, Activiti deviendra le moteur de gestion des processus métier par défaut d’Alfresco.

bravo pour cette initiative, à la sauce Apache, une licence business frendly …

étape suivante : tester et mettre à l’épreuve…

site web

http://www.activiti.org/

RichFaces 3.3.3 supporte JSF 2.0 : la version est disponible

L'équipe de RichFaces vient d'annoncer la sortie de la version 3.3.3 final de RichFaces.

Cette version est une étape importante pour l’équipe RichFaces et Jboss : RichFaces 3.3.3 amène un support (certes basic, mais suffisant) pour JSF 2.0.


Bien que cette version a stabilisé lees composants pour le support de la norme JSF 2.0, il n’est pas encore conseillée de passer en production en JSF 2.0, sauf si on souhaite être le premier.

Affaire à suivre …

Télécharger RichFaces 3.3.3 http://www.jboss.org/richfaces/download.html

vendredi 14 mai 2010

Séminaire web service et SOA par Sang Shin en Tunisie: Java Tech Days in Tunisia du 14 au 18 Juin 2010

Une très bonne nouvelle pour la communauté Java en Tunisie.

L’un des meilleurs experts JAVA Internationaux du moment, Sang Shin, sera en Tunisie (à Sfax) pour animer un Java Tech days sur les web services et SOA.

Sang Shin est un formateur JAVA hors paire et membre actif de la communauté Java EE (et passionné par-dessus tout http://www.javapassion.com ).

Les "Java Tech Days in Tunisia" du 14 au 18 Juin 2010  à l'hôtel Syphax de Sfax est sous l’égide de la S2L Jasmine Conseil France en partenariat avec le Technopole de SFAX.

Un séminaire de 5 jours intensifs

La première journée sera ouverte par M. Karim DJAAFAR, Java EE Evangelist et expert international. Karim va présenter la démarche agile de développement avec l'outillage associé.

Les quatre jours suivants d'immersion seront consacrés aux ateliers SOA et  des concepts fondamentaux qui recouvrent ce standard de développement basé sur les services Web et le fameux REST.

Les technologies sous jacentes BPEL, ESB seront décrites autour de cas métiers concrets pour rendre les workshops proche de vos besoins immédiat de maîtrise et de mise en œuvre d'une architecture SOA robuste et standardisée.

Le programme, très ambitieux, est disponible ici

Day2 : Introduction of the Course

Introduction of course material (0.5 hour)

Software installation (0.5 hour)

XML standards -  total 2 hours

XML Namespace (0.5 hour lecture)

XML Schema (1 hour lecture+ 1 hour lab)

XML Schema Design Pattern (0.5 hour lecture + 0.5 hour lab)

XPath (0.5 hour lecture + 0.5 hour lab)

XSLT (1 hour lecture + 1 hour lab)

Java APIs for XML parsing and transformation

JAXP/SAX/DOM (0.5 hour lecture + 0.5 hour lab)

StAX (0.5 hour lecture + 0.5 hour lab)

Day 3 : SOAP and WSDL standards

SOAP (0.5 hour lecture + 0.5 hour lab)

WSDL (0.5 hour lecture + 0.5 hour lab)

soapUI Basics  (0.5 hour lecture +  0.5 hour lab)

SAAJ (0.5 hour lecture + 0.5 hour lab)

JAX-WS - total 2 hours

JAX-WS basics (0.5 hour  lecture + 0.5 hour lab)

JAX-WS Handlers (0.5 hour  lecture + 0.5 hour lab)

JAXB basics (0.5 hour lecture + 0.5 hour lab)

JAXB 2.0 (1 hour lecture + 1 hour lab)

Day 4 : REST

REST (0.5 hour lecture)

JAX-RS (1 hour lecture + 1 hour lab)

WS-* Specifications

WS-Policy (0.5 hour lecture)

WS-Addressing (0.5 hour lecture + 0.5 hour lab)

WS-Routing (0.5 hour lecture)

Web Services Interoperability Technology (WSIT)

WSIT (0.75 hour lecture + 0.75 hour lab)

WS-I (0.5 hour lecture)

Management, performance, load testing

Web services performance (0.5 hour lecture + 0.5 hour lab)

Web services management (1 hour lecture + 1 hour lab)

Day 5 : SOA

SOA Concept (0.5 hour lecture)

BPEL (0.5 hour lecture + 0.5 lab)

Open ESB and JBI (1 hour lecture + 1 hour lab)

OpenESB: Intelligent Event Processor (0.5 hour lecture + 1 hour lab)

Enterprise Data Mashup (EDM) (0.5 hour lecture)

OpenSSO

OpenSSO Basics (1 hour lecture + 1 hour lab)

Formulaire en ligne

http://www.sfax-itctechnopark.com.tn/index.php?id=182

Sang Shin

Technology Architecture Consultant. He frequently gives talks on important Java technologies such as J2EE, EJB, JMS, J2ME, Web application frameworks such as Struts and JSF, and Web services technologies to worldwide developer audiences. Whenever he finds time, he also teaches one of the three software engineering courses ("Web Services programming using XML and Java programming language", "XML", "Distributed programming using Jini networking technology") in Brandeis university in Massachusetts. He currently teaches free online "J2EE programming with Passion!" and "Advanced J2EE programming with Passion!" courses to over 3000 worldwide Java developers. These courses can be taken through http://www.javapassion.com.

jeudi 13 mai 2010

JBPM 5 : une version majeure en préparation

L’équipe BPM de JBoss (RedHat) a annoncé le lancement du projet JBPM 5 : la prochaine génération de plateforme BPM.

La principale information, est que jBPM 5 sera basé sur l'expérience combinée de jBPM et de Drools Flow (ainsi que les projets en relation : RiftSaw et Overlord).

Un effort de capitaliser sur les avantages des deux solutions sera la principale direction du projet, si on considère que la compatibilité totale avec BPMN 2 est déjà acquise.

Aucune feuille de route n’a été présentée pour le moment.

lundi 10 mai 2010

Panorama de l’offre MDM en 2010 : Talend organise une matinale MDM à Paris

L’année 2010 est déjà considére comme l’année de la consolidation dans les offres MDM. Nous avons vue

  • début janvier, Talend lance son offre MDM en mode open source (basé sur les actifs de la société Amalto, rachetés il y a quelques mois),

  • début janvier 2010 Oracle acquiert Silver Creek Systems, spécialiste du nettoyage de données, pour renforcer son offre MDM

  • Informatica rachète Siperian, fin janvier 2010

  • IBM mettre la main sur IBM rachète Initiate Systems début février 2010,

  • Microsoft s’engage dans la démocratisation du MDM en l’intégrant dans suite de gestion de données SQL Server.

La crise de 2009 a accentué le besoin à la gestion de données de références

Rappelons que la crise de 2009, a accentué le besoin au respect des réglementations, à la gestion de la connaissance des clients, à l’optimisation des dépenses, à la consolidation des référentiels des clients, des lieux et des personnes..

Tous ces enjeux ont pour pré-requis la responsabilisation des métiers sur la gestion de l’information : maîtrise des référentiels, gouvernance de données, gestion de la qualité des données,... tous ces sujets t vers le concept du Master Data Management (MDM).

Talend organise une matinale MDM à Paris le 02 juin

C’est dans ce contexte que Talend organise, pour son public parisien, une matinale MDM le 2 juin. Il s’agit d’un zoom sur les solutions du marché du Master Data Management

La  matinale permettra de comparer directement toutes les offres (ou quasi) du marché : Microsoft, Talend, IBM, Informatica, Information Builders, OrchestraNetworks et Oracle . Découvrez pourquoi et comment engager ces initiatives lors de la Matinale du MDM, le 2 juin prochain à Paris :

  • - Les grands acteurs du marché rassemblés pour la première fois en France depuis la série de grandes annonces du début 2010 : lancement des offres de Microsoft et de Talend, acquisitions majeures chez IBM, Informatica, renforcement des offres d’information management d’Information Builders, d’OrchestraNetworks et d’Oracle

  • - Les retours d’expérience, mais aussi les bonnes pratiques

Pour s'inscrire à l'événement et à l'atelier Talend, c'est ici :

Espérons que l’année 2011 sera l’année des projets MDM. Mais ceci est un autre sujet …

mardi 4 mai 2010

Tuning JVM et GC (Garbage collector) : La permanent generation

Question : quelle est le rôle de la permanent permanent generation

Ce travail a été réalisé en collaboration avec Hamed KOUBAA, Architect SOA.

Permanent generation ?

Rappelons que la zone permanent generation définit une zone de mémoire qui accueille des objets permanents. Elle contient la définition des classes Java, qui sont chargées au démarrage de la JVM et au cours de l'exécution de l'application.

clip_image002

Il arrive parfois que cette zone soit trop petite et provoque un blocage de votre application. Dans ce cas le message de l'exception

OutOfMemoryException : PermGen space.

Il n'y a pas de collectes dans cette zone.

introduction

L’objectif de cet atelier est de sensibiliser au choix des espaces mémoires de la JVM, basée sur un GC générationnel. Nous avons appliques au JDK de SUN.

Le principe de l’atelier est simple : utiliser l’application java2D (inclus dans la jdk %java_home%/demo/jfc/Java2D) avec des paramètres différents de la JVM et interpréter les résultats obtenus.

pré requis

Les expérimentations de ce tutorial peuvent être réalisé sous Solaris, Linux et Windows : là où le JDK Hotspot de Sun fonctionne.

Il suffit d’Installer une JDK ultérieure à la version 5.0.

Les tests ont été réalisés avec JDK 1.0.0 build 17.

Noter que le JDK qui inclut des "démos" est nécessaire - la JRE n'est pas suffisante.

Configurer les variables d’environnement JAVA_HOME

- télécharger si besoin visualgc .

Maintenant vous êtes prêt pour démarrer l’atelier.

clip_image003

Une génération permanente trop petite

Pour cet exercice, on réinitialise la taille maximale du Heap à notre standard de 16 MB. Nous gardons la jeune génération à notre optimale 4 MB.

Et maintenant, nous introduisons perm gen tuning en le fixant à 1 Mb.

-XX:PermSize=1m -XX:MaxPermSize=1m -XX:NewSize=4m -XX:MaxNewSize=4m -Xms16m -Xmx16m

- agrandir la fenêtre du java2D et observer le résultat

Le log de l’application montre qu’il y a une exception outOfMemory PerGen

Interprétation

Comment pouvez-vous savoir quand la permanent generation est trop petite?

Si l'application ne démarre pas ou se bloque avec une exception mémoire

Pourquoi une permanent generation qui est trop petit un problème?

Si la génération permanente est trop faible il n'y aura pas assez de place pour la JVM pour charger les bocaux et classfiles qui composent l'application elle-même.

La génération permanente est spéciale parce qu'elle contient des données utilisées par la machine virtuelle pour décrire les objets qui ne disposent pas d'une équivalence au niveau du langage Java. Par exemple, les objets décrivant les classes et les méthodes sont stockées dans la génération permanente.

Une génération permanente ayant la bonne taille

Maintenant nous avons fixé la permanent generation à 17 Mo (au lieu de 1 Mo pour l'exercice précédent). Le Heap d'ensemble et la taille des nouvelle génération reste la même à 16 Mo et 4 Mo, respectivement.

-XX:PermSize=17m -XX:MaxPermSize=17m -XX:NewSize=4m -XX:MaxNewSize=4m -Xms16m -Xmx16m

Interprétation :

Comment connaissez-vous la permanent generation a une taille adéquate?

Lorsque vous trouvez que le programme s'exécute avec une marge confortable de l'espace gen Perm.

Puis-je laisser la JVM déterminer la bonne taille permanent generation?

Bien sûr, en fait, vous pouvez définir les valeurs maximales de la permanent generation et laisser la JVM déterminer la taille adéquate selon le besoin, mais toujours sans dépasser cette taille max.

Pourquoi le tuning de la permanent generation est important?

Le tuning de la permanent generation est important si le contrôle de la consommation mémoire globale est important et que vous voulez obtenir un gain de performances supplémentaires en éliminant le temps de redimensionnement de la permanent generation.

jeudi 29 avril 2010

Tuning JVM et GC (Garbage collector) young generation : influence de la taille de la young generation (3/3)

Question : comment se manifeste l’effet d’une young generation de taille acceptable

Ce travail a été réalisé en collaboration avec Hamed KOUBAA, Architect SOA.

Introduction

L’objectif de cet atelier est de sensibiliser au choix des espaces mémoires de la JVM, basée sur un GC générationnel. Nous avons appliques au JDK de SUN.

Le principe de l’atelier est simple : utiliser l’application java2D (inclus dans la jdk %java_home%/demo/jfc/Java2D) avec des paramètres différents de la JVM et interpréter les résultats obtenus.

architecture soa, service oriented architecture, java software, open source, eclipse,alm, j2ee, java ,bpm

pré requis

Les expérimentations de ce tutorial peuvent être réalisé sous Solaris, Linux et Windows : là où le JDK Hotspot de Sun fonctionne.

Il suffit d’Installer une JDK ultérieure à la version 5.0.

Les tests ont été réalisés avec JDK 1.0.0 build 17.

Noter que le JDK qui inclut des "démos" est nécessaire - un JRE n'est pas suffisant.

Configurer les variables d’environnement JAVA_HOME

- télécharger si besoin visualgc .

Maintenant vous êtes prêt pour démarrer l’atelier.

Une jeune génération ayant la bonne taille

Dans cet exemple nous essayons de fixer la bonne taille de la jeune génération.

Rappelons que la valeur adéquate de la young generation dépend de l'application exécutée.

Il s'agit probablement d'une plage de valeurs acceptables.

Pour cet exemple, nous maintenons la taille maximale du Heap à 16 MB, mais nous fixons la jeune génération à 4 MB

-XX:NewSize=4m -XX:MaxNewSize=4m -Xms16m -Xmx16m

- une fois l’application lancée, cliquez rapidement sur l’onglet transform > dans le carrée transform anim (celui en bas), augmenter le nombre d’objets de string et d’images animés au maximum. (à l’instar des autres exemples)

- ce qui suit est l’état de visualGC après une minute et demie d’observation

architecture soa, service oriented architecture, java software, open source, eclipse,alm, j2ee, java ,bpm

Interprétation

Si les temps de GC sont plus petite, cela peut signifier que nous avons réussi notre paramétrage (même si c’est encore tôt pour juger car la JVM peut bien se comporter dans des petit délais, puis elle change de comportement au cours de l’exécution)

Comment connaissez-vous que la jeune génération est bien ajuster?

Quand ce n'est pas trop petit ou trop grand ;-)

Bien entendu, la diminution des temps de CG est une bonne indication.

Remarques

Maintenant vous avez une compréhension des zones de mémoire HotSpot que vous avez réellement vu en exécutant Visual GC.

Vous avez une idée sur le paramétrage du young génération.

Astuce :

Pour Lignes directrices générales pour le dimensionnement de la jeune génération:

* Le ratio maximal entre la jeune génération (young generation) et le Heap ne doit pas dépasser les 45%

Si vous dépassez ce ratio alors il ya un risque que la jeune génération entière contient des objets vivants qu'ils ne pouvaient pas tous être promu à la old generation.

Généralement pour les applications clientes on commence par un pourcentage de 25%.

Pour les applications serveur on commence généralement par un pourcentage de 10% du Heap.

On augmente le taux selon les besoins.

Conclusion et perspectives :

Nous avons traités l’impact des principaux paramètres de la JVM

-XX:PermSize, -XX:MaxPermSize, -XX:NewSize, -XX:MaxNewSize, -Xms, -Xmx

une idée sur les indicateurs d’une JVM mal paramétrer : détecter quand le young generation, le old generation ou la permanet generation sont trop petit ou trop grand.

Plus la taille de la young generation est grande plus les collectes mineures sont rares.

Cependant, lorsque la taille du heap est peu extensible, cela va diminuer la taille de la tenured generation ce qui aura pour conséquence d'augmenter la fréquence des collectes majeures.

Un conseil :

L’étape suivante consiste à voir l’effet des autres paramètres de la JVM tq (disableExplicitGC, agressiveheap, printCompilation, concurrentGarbageCollection …Etc) utilisant d’autres exemples et en appliquant à votre application.

mercredi 28 avril 2010

.Net 4 : WCF data services une amélioration de ADO.Net data services

Si on étudie la nouvelle version de .Net, la 4.0, sortie ce 12 avril 2010, pour n’en choisir que la meilleure amélioration ?

que choisir ?

Difficile, ce choix, diront les adeptes. En vue du grand nombre de nouvelles fonctionnalités offertes.

Je vais écarter Workflow Foundation 4.0 (WF4), car il me semble qu’il soit une refonte de l’offre workflow. WF4 est plus qu’une amélioration à WF 3.5…

WCF Data Services Framework

Je pense que la meilleure amélioration concerne ADO.NET Data Services Framework.

Cela s’appelle désormais, WCF Data Services Framework. Bien sûre WCF : Windows Communication Foundation, l’ABC de l’exposition des services dans le Framework .Net et chez Microsoft.

WCF Data Services expose les données au moyen de services de type RESTful accessibles via HTTP. Il utilise le framework Entity Data Model (EDM) pour réaliser facilement, et sans code (ou presque) cette exposition.

Les données sont accessibles directement en utilisant le fameux URI (Uniform Resource Identifier) du HTTP. Un simple GET permet de faire une sélection complexe sur une base de données,  sans se préoccuper des détails. En toute sécurité, bien sûre.

Le data service peut être configuré pour renvoyer les données sous le format Atom et/ou JSON (JavaScript Object Notation).

Lors d’un projet, courant le mois de mars 2010, , j’ai utilisé Jquery pour exploiter des Data Services exposés en moins de 1à lignes de codes C#. Le projet consistait en l’intégration d’ une application basée sur la version 4.0 beta 2 de .Net et une autre déployé sous Tomcat (Java EE) et générée par W4 le fameux moteur de BPM.

Open Data Protocol : Un Protocol pour l’exposition des données

Microsoft a adopté REST et fait la promotion d’un protocole d’échange de données dit Odata (Open Data Protocol). OData est inspiré du protocole Atom Le Protocol des flux RSS.

Dans le. NET Framework 4, il ya eu des améliorations importantes dans les services de données (par rapport à la version .Net 3.5). Il y a eu des améliorations dans le mapping des données, les projections, la pagination coté serveur, le comptage.

Reste à tester les performances (annoncées comme améliorées) de ce nouveau service RESTful offert nativement dans .Net 4.0.

Un dernier mot : ce service est l’exemple typique que SOA n’est pas web service.

OData, est un protocole à suivre de tout près, il se base sur un principe d’uniformité des représentations des données, de l’accès et des opérations  … mais ceci est un autre sujet

mardi 27 avril 2010

Tuning JVM et GC (Garbage collector) young generation : influence de la taille de la young generation 2/3

Question : quelle est l’influence d’une young generation ayant une taille trop grande

Ce travail a été réalisé en collaboration avec Hamed KOUBAA, Architect SOA.

pré requis

Les expérimentations de ce tutorial peuvent être réalisé sous Solaris, Linux et Windows : là où le JDK Hotspot de Sun fonctionne.

Il suffit d’Installer une JDK ultérieure à la version 5.0.

Les tests ont été réalisés avec JDK 1.0.0 build 17.

Noter que le JDK qui inclut des "démos" est nécessaire - un JRE n'est pas suffisant.

Configurer les variables d’environnement JAVA_HOME

- télécharger si besoin visualgc .

Maintenant vous êtes prêt pour démarrer l’atelier.

Une jeune génération trop grande

Pour cette partie, nous maintenons la taille maximale du Heap à 16 MB.

Et nous fixons la taille de la « jeune génération » à 5,5 MB. (Souvenez-vous dans l’exemple précédent nous avons mis la jeune génération à seulement 1 Mo)

-XX:NewSize=5500k -XX:MaxNewSize=5500k -Xms16m -Xmx16m

La suite de la présentation est identique à ce qui a été fait précédemment

Lancer la démo Java2D

Lancer visualGC

- une fois l’application Java2D lancée, cliquez rapidement sur l’onglet transform > dans le carrée transform anim (celui en bas), augmenter le nombre d’objets de string et d’images animés au maximum.

- ce qui suit est l’état de visualGC après une minute et demie d’observation

architecture soa, service oriented architecture, java software, open source, eclipse,alm, j2ee, java ,bpm

Pour cet exemple, nous avons eu 70 collections mineures (contre 160 dans l'exercice précédent), 48 collections complètes « full » (contre 16) et nous avons passé un total de 3 seconds. Bref, 3,33% (contre 1,66%) de la durée totale en GC.

(NB: ces chiffres différent selon la machine sur laquelle on exécute, mais la tendance est la même)

NB :

Il est à noter que pour cet exemple la jeune génération n’est pas de grande taille.

Interprétation

Notez que l’effet en dents de scie n’est plus clair. Vous pouvez remarquer également que l’application «saccade » en raison du fait que chaque GC mineur prend plus de temps (collection de 5,5 Mo au lieu de 1 Mo).

Même si vous avez moins de GC, ils prennent beaucoup de temps quand ils se produisent.

Pourquoi une jeune génération « trop grande » constitue un problème?

Si la jeune génération est trop grande, les pauses des collectes GC mineur risquent d’être plus longues (ce qu’on appelle Stop the world). Cela se manifeste, par exemple, par un  “affichage saccadée” pour les applications clientes.

NB : les valeurs fixés ont un but pédagogique d’illustration …

lundi 26 avril 2010

SOA à l’ENIS : Conférence SOA (Architecture Orientée Services) : démystification"

Ce mercredi 28 avril 2010, à SFAX, j’aurais le plaisir, d’animer une conférence intitulée "SOA (Architecture Orientée Services) : démystification"

la conférence est destinée aux élèves ingénieurs de l’ENIS ‘Ecole Nationale d’ingénieur de Sfax: année terminale, de la spécialité informatique.

Le thème choisit est SOA (Architecture Orientée Services) : Les plus grands éditeurs en parlent, les SSII et les intégrateurs s'y préparent. Tout le monde a quelque chose à dire sur SOA !

L'architecture orientée services concerne tous les acteurs, des Systèmes d'information, des logiciels et des services et entame sa phase de déploiement.



La conférence apportera une vision claire, concrète, et un retour d’expérience du concept SOA : démystifier le concept et préciser la part de la mode (Buzz) dans un domaine que certains n'hésitent pas à le comparer à l'arrivée du client serveur, dans un cycle comme ceux que connaît l'informatique tous les dix ans.


Dans quel contexte et pour servir quels objectifs mettre en œuvre ce type d'architecture ?


Quel est l'éventail des technologies utilisables ?

et plusieurs autres questions, seront posés lors de cette conférence…

vendredi 23 avril 2010

Tuning JVM et GC (Garbage collector) young generation : influence de la taille de la young generation 1/3

Question : quelle est l’influence d’une young generation de petite taille

Ce travail a été réalisé en collaboration avec Hamed KOUBAA, Architect SOA.

introduction

L’objectif de cet atelier est de sensibiliser au choix des espaces mémoires de la JVM, basée sur un GC générationnel. Nous avons appliques au JDK de SUN.

Fixer la taille des zones mémoire de la JVM dépend de l’application, du cycle de création d’objets de l’application et nécessite une compréhension « détaillée» du fonctionnement du GC.

Les paramètres à donner à la JVM soutenant une d’une application Batch ne sont pas les mêmes que ceux d’une application web transactionnelle.

Afin d’illustrer les effets de la taille des zones mémoires de la JVM, nous avons délibérément utilisé un exemple simple et disponible : la fameuse démo Swing Java2D.

Le principe de l’atelier est simple : utiliser l’application java2D (inclus dans la jdk %java_home%/demo/jfc/Java2D) avec des paramètres différents de la JVM et interpréter les résultats obtenus.

architecture soa, service oriented architecture, java software, open source, eclipse,alm, j2ee, java ,bpm

pré requis

Les expérimentations de ce tutorial peuvent être réalisé sous Solaris, Linux et Windows : là où le JDK Hotspot de Sun fonctionne.

Il suffit d’Installer une JDK ultérieure à la version 5.0.

Les tests ont été réalisés avec JDK 1.0.0 build 17.

Noter que le JDK qui inclut des "démos" est nécessaire - un JRE n'est pas suffisant.

Configurer les variables d’environnement JAVA_HOME

architecture soa, service oriented architecture, java software, open source, eclipse,alm, j2ee, java ,bpm

- télécharger si besoin visualgc .

Maintenant vous êtes prêt pour démarrer l’atelier.

Manipulation des espaces mémoires de la jeune génération(young generation):

L’espace mémoire de la jeune génération (young generation) est constituer de la zone dite « Eden » plus deux espaces dits « survivor ».

architecture soa, service oriented architecture, java software, open source, eclipse,alm, j2ee, java ,bpm

L’objectif de cette partie de l’atelier est de savoir :

· Comment utiliser l’interface graphique de java perf pour lancer l'application Java 2D Demo et surveiller son rendement avec Visual GC.

· où trouver la ligne de commande qui règle les paramètres de la JVM

· Comment reconnaître si la jeune génération est trop petite, trop grande, avec une taille adéquate

Une jeune génération trop petite

Commencer par fixer la configuration suivante (appelé dans la suite LesCamandesGC)

-XX:NewSize=1m -XX:MaxNewSize=1m -Xms16m -Xmx16m -XX:MaxTenuringThreshold=0

Ces valeurs sont utilisées uniquement pour mettre l’accent sur les effets des paramètres du GC.

Lancer l'application Java 2D %java_home%/demo/jfc/Java2D avec cette commande

> java LesCamandesGC -jar Java2Demo.jar

- déterminer son identifiant de la machine virtuelle (VMID). La commande est « jps »

Ensuite utiliser ce VMID pour exécuter le programme jstat et recueillir des statistiques de base GC

- lancer l’application visual GC (télécharger si besoin visualgc ).

Visual GC donne un excellent aperçu de ce qui se passe dans la JVM. Lorsque vous combinez cette visualisation des statistiques supplémentaires recueillies pendant l'essai vous pouvez jauger la performance de l'application cible

architecture soa, service oriented architecture, java software, open source, eclipse,alm, j2ee, java ,bpm

L’application visualGC est composée de 3 volets :

1) Visual GC : Affiche les informations des applications de base comme le temps écoulé du processus et un certain nombre de statique (par exemple les options de ligne de commande).Notez que les zones d'écran représentant les Perm gen, Old gen, Eden et les espaces survivor (S0 et S1) sont dimensionnées proportionnellement à la capacité maximale des espaces.

2) Graph : Affiche des statistiques au fur et à mesure qu'elles évoluent dans le temps. Pour tous les exercices, l'intervalle d'échantillonnage a été choisie pour être une seconde.

3) Survivor Space histogramme : Le panneau histogramme affiche un aperçu de la répartition par âge des objets dans l'espace survivor actif après la dernière collection de la jeune génération. L'écran est composé de 32 régions de taille identique, un pour chaque âge objet possible.

Suite …

- Cliquez rapidement sur l’onglet transform > dans le carrée transform anim (celui en bas), augmenter le nombre d’objets de string et d’images animés au maximum.

Cette manipulation est importante pour obtenir l’effet recherché. En effet, les applications graphiques de l’onglet « transform » sont bien adaptés pour l'expérimentation du tuning de la JVM car ils créent beaucoup d'objets temporaires.

architecture soa, service oriented architecture, java software, open source, eclipse,alm, j2ee, java ,bpm

Faire un imprime-écran du visualGC après une minute et demie d’observation et essayer d’analyser le résultat.

architecture soa, service oriented architecture, java software, open source, eclipse,alm, j2ee, java ,bpm

Pour cet exemple, nous avons eu 160 collections mineures (c'est la jeune génération), 16 collections complètes « full » (c’est l'ancienne génération) et nous avons passé près de 1,5 secondes au garbage collection (cad un total de 1,66% de la durée totale en GC).

Interprétation :

Comment savoir si la jeune génération est trop petit?

- Le premier indice est le pattern en dents de scie dans l’old generation.

(NOTE: la vitesse à laquelle les objets sont générés dépend du matériel spécifique que vous utilisez ... Dans certains cas, ceci peut prendre plus temps pour se manifester .)

architecture soa, service oriented architecture, java software, open source, eclipse,alm, j2ee, java ,bpm

certains objets qui sont encore en vie sont directement promu vers l'ancienne génération (la jeune génération est trop petite …).

architecture soa, service oriented architecture, java software, open source, eclipse,alm, j2ee, java ,bpm

- Un autre indice est le grand nombre de GC de type mineur, dans un petit espace de temps.

NB : Pour forcer l’observation de ce comportement, nous pouvons utilisé la config suivante ;

-XX:NewSize=1m -XX:MaxNewSize=1m -Xms16m -Xmx16m -XX:MaxTenuringThreshold=0

Pourquoi une jeune génération trop petite est un problème?

La collection des anciennes générations est généralement plus chère que les collections des jeunes générations.

En trouvant la taille appropriée de la jeune génération, on permet au GC mineurs, qui sont plus rapides, de nettoyer les objets temporaire en ne laissant passer que les objets encore vivant pour être promus en « old generation ».

NB : Vous pourriez vous demander, pourquoi ne nous fixons-XX: MaxTenuringThreshold = 0?

Avec ce paramétrage, nous demandons essentiellement à la JVM de promouvoir tout objet qui est vivant au cours d'un GC mineur à l’old generation.

à utiliser uniquement pour des besoins de démo!

Mais, pour des applications batch, où la majorité des objets sont “de type old” un MaxTenuringThreshold  de petite taille peut aider ….

mercredi 21 avril 2010

Innovation dans les TIC : Quelles opportunités (5/5)

NB : (suite de l’article sur la conférence, Innovation dans les TIC : entre Mobile et cloud des opportunités à saisir, du 1er avril à l’ENIT.)

Quelles opportunités

Il est communément admis, que l’IT et les processus outillés dans une entreprise, représentent un actif stratégique qui permet de « faire la différence » avec les concurrents. Les technologies combinées à des changements de processus organisationnels, confèrent des avantages concurrentiels à leurs utilisateurs.

Les opportunités dans l’IT sont nombreuses :

1) Pour le gouvernement (avec un poids de plus de 80 % du marché IT, dans un pays comme la Tunisie)

- La mise en place de cloud(s) privé(s) pour le eGov

- SaaS pour les collectivités locales

2) Pour les groupes & les entreprises multi-sites :  mettre en place un cloud privé pour le groupe  (Certains "font du XaaS" sans le savoir !!)

3) Pour les SSII & éditeurs : de nouvelles opportunités “business”

- Nouveaux paradigmes

- Nouvelles plateformes & outils de développement

- Nouvelles offres de produits

- Nouvelles offres de Services

Points de vigilances

Mais, cette « Innovation en marche » a Besoin d’un ensemble de

Pour cette (r)evolution en marche, dans la conception et la consommation de l’IT, un point important est la gestion du changement

-> C’est l’usage qui confère sa valeur à la technologie

-> Besoin d’un Observatoire des pratiques commerciales : Un Bureau de contrôle indépendant, pour protéger le futur client

-> Besoin de légiférer : pour rassurer le futur client pour faciliter l‘émergence de la demande (exemple "clauses obligatoires dans Contrat XaaS" )

-> Besoin de travaux d’Harmonisation & d’Interopérabilité : SaaS / cloud : un nouveau jeu dans le domaine de l'acquisition de logiciels : évaluer l’adhérence aux standards et la mise en ouvre des “best practice”, garanties et procédures d'audit.

Conclusion

La question qui demeure est : Dans combien de temps va ton considérer le SaaS comme LE modèle Classique?


Autres sujets :

Innovation dans les TIC : entre Mobile et cloud des opportunités à saisir (1/5)
Innovation dans les TIC : De quelle innovation on parle? (2/5)
Tendances de l’Innovation dans les technologies (3/5)
Innovation dans les TIC : ne pas oublier les processus et les modèles économiques (4/5)
Innovation dans les TIC : Quelles opportunités (5/5)

Architecte SOA & Professionnel Open Source Headline Animator

 
Khaled BEN DRISS
Cloud Computing, SOA et Web 2.0 : Des sujets techniques sur SOA et l'Open Source : de Java & .Net, PHP5, Symfony, à SaaS / PaaS en passant par Azure, google appengine, le BPM, la Modélisation et d'autres sujets du coté du serveur et cloud computing.