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)

mardi 20 avril 2010

Quel avenir pour Java chez Oracle, après le départ de James Gosling

Extrait de l’article sur le Journal du Net : Quel avenir pour Java chez Oracle, après le départ de James Gosling (le père du langage)

James Gosling, le créateur du langage de programmation Java, a démissionné de Oracle, il a annoncé sur son nouveau blog le vendredi.

Un nouveau signe de la prise en main du langage par Oracle.

James Gosling, n’a pas expliqué les raisons de sa démission pour ne pas créer des vagues !!

en conclusion : Java est tellement stratégique pour Oracle pour qu’elle freine sa lancé …

http://www.journaldunet.com/developpeur/expert/46191/quel-avenir-pour-java-chez-oracle--apres-le-depart-de-james-gosling--le-pere-du-langage.shtml

lundi 19 avril 2010

Innovation dans les TIC : ne pas oublier les processus et les modèles économiques (4/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.)


L’innovation dans les TIC ne peut être cloisonnée à l’aspect technologique.

Il il est important de comprendre que l’innovation est aussi dans les processus et les modèles économiques, ainsi que l’usage des technologies.

Tendances de l’Innovation dans les processus

Les principales tendances dans les processus se résument aux aspects suivants :

1)- La généralisation de l’adoption des méthodes agiles convenablement outillées (et l’usage d’outils intégrés)

-- Méthodologie Agile (exemple SCRUM)

-- Gestion de cycle de vie des produits et des applications (ALM & PLM)

2)- Le recours aux Benchmarking et aux référentiels de maturité, par exemple

-- ITIL

-- CMMi

-- Microsoft APIO

Tendances de l’Innovation dans les modèles économiques

Dans les modèles économiques, nous observons trois grandes tendances

  • Modèle de souscription pour les licences/services : Initié par le mouvement open source

  • Modèle de payement à la consommation : Facturation selon l’utilisation de la CPU, de  la mémoire et le niveau de SLA …

  • Modèle des AppStores : Un supermarché des applications pour exposer votre application à la vente dans une vitrine internationale. Le modèle adéquat pour les applications pour Mobile (Apple, MicroSoft, Google …)


A suivre ….

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)

vendredi 16 avril 2010

Séminaire : " Les TICs, Vecteur d’emploi, d’Exportation et de Croissance Economique"

Ce samedi 24  avril 2010, à Hammamet, j’aurais le plaisir, de donner une conférence sur l’ : « Outsourcing et Consortiums Economiques ».

Ça sera dans le cadre du séminaire :" Les TICs, Vecteur d’emploi, d’Exportation et de Croissance Economique".

Le séminaire est organisé à Hammamet, par la  Jeune Chambre  Internationale (OLM de   Hammamet).

Lors de ma conférence je vais présenter l’expériences de OXIA dans le domaine du neashore, la valeur ajoutée dans nos offres et l’innovation dans le modèle de présentation de type best cost :

De plus, un exemple concret de consortium Export « le GET’It », dont OXIA est un membre fondateur et brigue la présidence depuis le début de 2010 (en la personne de Imed AYEDI, le Directeur Générale des opérations ).

Ce consortium est un exemple vivant de la capacité des acteurs privées à se rassembler pour présenter la Tunisie du « best cost » et non plus le modèle de low cost.

Ce séminaire réunira un grand nombre d‘acteurs des TICs, que ce soit dans le domaine des pouvoirs publics, des donneurs d’ordres ou des prestataires.

Programme  : http://www.hammamet-tourism.com/visiteurs.html

Contact : http://www.hammamet-tourism.com/contact.cfm

à suivre … je vais donner plus de détails dans les prochains posts …

Tuning JVM et GC (Garbage collector) : Avantages du "generational collection"

Un des avantages du "generational collection" est qu'il peut rendre les pauses causés par les GC plus courtes en ne rassemblant pas toutes les générations à la fois.

Rappelons que lorsque la demande d'allocation de mémoire ne peut être satisfaite,

• le GC déclenche d'abord "une collecte mineure", qui rassemble seulement la plus jeune génération. Puisque plusieurs des objets dans la jeune génération seront déjà morts (le collecteur copiant n'a pas besoin d'examiner les objets morts), les pauses mineures de GC peuvent être courtes et peuvent souvent reprendre un espace significatif du Heap.

• Si la collecte mineure libère assez d'espace du heap, le programme peut reprendre immédiatement.

• Mais, si ce n'est pas le cas, le GC procède à la collecte des générations plus élevées jusqu'à ce qu'assez de mémoire ait été reprise (une Full collection).

• Si le GC, ne peut reprendre assez de mémoire après une "Full collection", il augmentera la taille du heap, ou il lèvera une Erreur OutOfMemoryError

Les paramètres les plus connues sont :

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

   

-XX:PermSize

La taille de la génération permanente

-Xms

La taille initiale du Heap

-Xmx

La taille maximale du Heap

-XX:MinHeapFreeRatio

Pourcentage de l'espace libre minimum au sein d'une collection. Le GC accroît ou réduit la taille des collections pour tenter de préserver cette proportion.

Par défaut elle est souvent de 40% (dépend de la plate-forme).

-XX:MaxHeapFreeRatio

Pourcentage de l'espace libre maximum au sein d'une collection. Le GC accroît ou réduit la taille des collections pour tenter de préserver cette proportion.

Par défaut elle est souvent de 70% (dépend de la plate-forme).

-XX:NewRatio

Un ratio est utilisé qui indique le rapport entre la taille de la tenured gen et la young gen.

Ce ratio est ensuite appliqué sur la valeur de l'option Xmx qui fixe la taille totale du heap.

-XX:NewRatio=n ou n est un nombre entier.

Si n vaut 3 alors la young gen est 3 fois plus petite que la tenured generation.

-XX:NewSize

Fixe la taille de la young gen

-XX:NewSize = 4m fixe la taille la young generation à 4 MO.

-XX:MaxNewSize

Fixe la taille maximale de la young gen

- XX:NewSize = 40m fixe la taille maximale la young generation à 40MO.

• Les commandes en –X ne sont pas documentées !!!

· java –X

clip_image002[4]

Dans la suite nous allons montrer l’importance des choix des valeurs de certains de ces paramètres

mercredi 14 avril 2010

Tendances de l’Innovation dans les technologies (3/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.)


Comme pour toute conférence de 25 minutes, il a fallu se limiter au plus important, ce qui

J’ai donc décidé d’illustrer l’innovation, encours dans les TIC, par deux exemples

  • · Le cloud computing

  • · Le mobile


Le cloud : Une transformation de l'industrie est en cours

L’émergence de l’écosystème Cloud, met en exergue la tendance de fonde de la suprématie du service et la transformation de l’IT en commodité.

Il suffit de faire l’analogie avec d’autre secteur : l’eau et l’électricité

Construire votre solution

PlugIn, souscrire & payer à l’usage

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

Electricité

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

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

Eau

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

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

Applications métiers, puissance de calcul et de stockage

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

cloud (SaaS, PaaS, IaaS)

Ainsi, le Cloud computing permet de tisser ensemble « matériel, logiciel et services » pour créer une solution spécifique.

D’autres appelle cela S+S (Software+Services).

J’ai présenté quelques exemples de ce concept de Cloud :

IaaS : Infrastructure as a Service

  • Modèle de fourniture d’infrastructure
    • Accès à une pile d’infrastructure :
      • Système d’exploitation complet
      • Firewalls
      • Routeurs
      • Load balancing
    • Payement à l’usage

Exemples

• Système d’exploitation complet, ...

• Exemples

• Flexiscale

AWS: EC2

PaaS : Platform as a Service

  • Modèle de fourniture de Plateforme
    • Fourniture d’une plateforme logicielle hébergé pour déployer des applications (ciblant la plateforme)
    • Payement à l’usage

Exemples :

• Stockage, base de données

• Examples :

• Google App Engine

• Azure de Microsoft

• Amazon WS: S3

SaaS : Software as a Service :

  • Modèle de fourniture de logiciel
      • Un « business model » pour des composants logiciels hébergés, payement à l’usage ou à la demande
    • Pas de logiciel, ni de serveur à gérer
    • Le Service est délivré à travers le navigateur web
  • CRM, Planification financière, RH, office, email
  • Exemples:
    • Salesforce.com
    • emailcloud

et le Mobile

En bref l’innovation dans le Mobile et le Web des objets

  • À l‘horizon 2020 : 80 % des accès au web seront effectués à travers un Mobile

  • Emergences de nouvelles générations de réseaux et terminaux mobiles

  • Evolution dans le monde M2M (machine to Machine)

    Tout appareil électronique possédera son IP : Le Web 3.0 sera le web des objets

  • Le mobile comme moyen de payement

ce qui reste c’est d’innover dans les usages…

A suivre …

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)

mardi 13 avril 2010

JBPM 4 et BPMN 2.0: deux membres importants quittent l’équipe

Tom Baeyens (chef de projet JBPM chez RedHat) et Joram Barrez (développeur Leader JBPM chez RedHat) ont quitté le projet JBPM. Rappelons que Tom a rejoint JBoss en 2004. Joram a apporté son expertise dans des domaines comme la performance, l'intégration et le respect des normes.

Tom Baeyens et Joram Barrez annoncent, 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 « 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 ! »

Peut on interpréter cela comme la poids de RedHat, qui ralentit le projet, d’un point de vue des « entrepreneurs de JBPM», et que la prochaine version de JBPM ne sera pas nativement BPMN 2.0 ?

Dans tous les cas, c’est une tendance de fond, les principaux projets open sources sont ou seront contrôlés par des entreprises qui fixeront les feuilles de routes (avec ou sans la communauté).

Espérons que cette nouvelle disposition de l’équipe JBPM, ne ralentisse pas le virage de JBPM 4 vers la norme BPMN 2.0, et notamment dans le volet outillage et monitoring.

Source : http://www.jorambarrez.be/blog/2010/03/29/alive-and-kicking/

----

Open source : le modèle du logiciel libre serait-il menacé par les grands fournisseurs de software

lundi 12 avril 2010

Innovation dans les TIC : De quelle innovation on parle? (2/5)

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

Pour ne pas “innover” dans la Définition de l’innovation, j’ai cité Wikipedia

  • « innovation technologique de produit

    • la mise au point/commercialisation d’un produit plus performant dans le but de fournir au consommateur des services objectivement nouveaux ou améliorés.

  • innovation technologique de procédé,

    • on entend la mise au point/adoption de méthodes de production ou de distribution nouvelles ou notablement améliorées. Elle peut faire intervenir des changements affectant – séparément ou simultanément – les matériels, les ressources humaines ou les méthodes de travail »

Ainsi, Dans la suite nous parlerons

  • Innovation dans les Technologies

  • Innovation dans les processus

  • Innovation dans les usages

  • Innovation dans les modèles économiques

Entre innovation et Buzz (le Hype cycle du Gartner)

Pour avoir un impact réel sur la vie des personnes et des entreprises, une innovation doit présenter un certain niveau de maturité.

Or le Gatner a publié depuis 1995, une théorie expliquant la maturité des technologies, traçant le cycle d’adoption et des applications métiers.

Innovation en technologie : un cycle classique à un rythme soutenu

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

  • " Technology Trigger" - La première phase du cycle est le déclencheur "ou percée, lancement de produit ou tout autre événement » qui génère un intérêt des médias.
  • " Peak of Inflated Expectations " - Dans la phase suivante, une frénésie de la publicité génère généralement plus d'enthousiasme et d'attentes irréalistes. Il peut y avoir certaines applications réussie d'une technologie, mais il ya généralement plus d'échecs.
  •   " Trough of Disillusionment " – la Technologie entre dans le fossé de la désillusion, parce qu'ils ne répondent pas aux attentes et deviennent vite démodés. En conséquence, la presse en général abandonne le sujet et la technologie.
  • " Slope of Enlightenment " - Bien que la presse peut avoir cessé de couvrir la technologie, certaines entreprises continuent à travers la pente "des Lumières" et l'expérience pour comprendre les avantages et les applications pratiques de la technologie.
  • " Plateau of Productivity " - Une technologie atteint le plateau "de la productivité», comme les avantages de celui-ci sont largement démontrés et reconnus. La technologie devient de plus en plus stable et évolue en deuxième et troisième générations. La hauteur finale du plateau varie selon que la technologie est largement applicable ou ne profite qu'à un marché de niche.


D’autre part, pour connaitre l’intérêt que porte le public à une nouvelle technologie, on peut utiliser Google trends :

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

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)

samedi 10 avril 2010

Java : James Gosling Quitte Oracle (SUN)

Le père de Java démissionne d’Oracle (SUN)

James Gosling, le créateur du langage de programmation Java, a démissionné de Oracle, il a annoncé sur son blog (nouveau) le vendredi.

Un nouveau signe de la prise en main du langage par Oracle.

James Gosling, n’a pas expliqué les raisons de sa démission ( déposé le 02/04/2010), pour ne pas créer des vagues !!

Sage décision

Que cache l’avenir pour Java ?

Un “nouveau sang” ne peut faire que du bien (s’il reste compatible …) 

De toutes les façons, Java est tellement stratégique pour Oracle pour qu’elle freine sa lancé …

et lance (à la hâte) un nouveau Blog

Voici le nouveau blog de James Gosling

http://nighthacks.com/roller/jag/category/Java

une partie de son annonce (historique):

Time to move on...

Friday April 9, 2010

Yes, indeed, the rumors are true: I resigned from Oracle a week ago (April 2nd). I apologize to everyone in St Petersburg who came to TechDays on Thursday expecting to hear from me. I really hated not being there. As to why I left, it's difficult to answer: just about anything I could say that would be accurate and honest would do more harm than good. The hardest part is no longer being with all the great people I've had the privilege to work with over the years. I don't know what I'm going to do next, other than take some time off before I start job hunting.

jeudi 8 avril 2010

Tuning JVM et GC (Garbage collector) : Rappel sur les generational garbage collectors

Question : quelle est la spécificité des GC (Garbage collector) générationnel

La technique employée pour les Garbage collector, depuis la JVM 1.2, est appelée "generational garbage collection" combine ces deux techniques pour tirer le meilleur parti des différents algorithmes du GC.

Ainsi, le heap (tas) est divisé en plusieurs zones basées sur l'âge d'un objet. Les différentes générations sont nettoyées (Garbage collection) séparément en utilisant des algorithmes de collection différents.

La mortalité enfantine des objets

L’idée est basée sur le constat de la mortalité enfantine des objets. La majorité des objets ont une durée de vie très courte "mortalité enfantine". Une étude statistique a montré que 80-98% des objets nouvellement alloués, meurent en quelques million d'instructions. Une autre a montré que 80-98% des objets nouvellement alloués, meurent avant qu'un autre Megabyte a été alloué.

Ce constat a un grand impact sur les algorithmes choisis pour le GC.

Generational collector

Ainsi un GC de type "Generational collector" divise le heap en plusieurs zones (générations).

Le objets sont créés, systématiquement, dans une zone dédiée dite young generation(dédié aux jeunes objets).

Les objets qui répondent à des critères de promotion, tels qu'avoir survécu à un certain nombre de collectes (lire GC), sont alors promus à la zone dédiée aux générations plus anciennes.

Cette zone est dite older generation (ou Tenured).

clip_image001

Un "generational collector" est libre d'employer une stratégie différente de collecte pour ses différentes zones et d'exécuter la collecte des "garbage" sur les générations séparément.

Dans la suite, nous utilisons les termes « anglais » afin de faciliter le lien avec les paramètres.

Le tuning de la JVM est le choix des paramètres

La JVM présente quelques dizaines de paramètres, permettant le tuning des performances.

Le plus important est de se fixer des objectifs et de conaitre sa cible.

Voici, quelques éléments à considérer, lors des choix des paramètres de chacune des zones mémoire constituant le Heap :

  • Durée de Pause : Est ce que le collecteur arrête le programme pour réaliser la collecte (dit stop-the-world)? Pour combien de temps? Est ce que la durée des pauses peut être limitée ?

  • Prédictibilité des pauses : Est ce les pauses causées par le GC peuvent être programmées à des périodes convenables à l'utilisateur du programme et non lorsque le GC le décide?

  • Usage CPU : Quel pourcentage de la CPU est consommé par le GC?

  • Utilisation de la Mémoire : Certains GC nécessite l'usage d'espace mémoire non accessible par l'utilisateur du programme, ce qui augmente la taille totale de la mémoire utilisée. La taille utilisée est supérieur à la mémoire nécessaire réellement au programme.

  • Interaction avec la mémoire virtuelle : Pour les systèmes qui n'ont pas beaucoup de mémoire physique, une opération de GC peut nécessiter une interaction avec la mémoire virtuelle ce qui dégrade les performances.

  • Interaction avec le Cache : Même pour les applications dont le heap peut résider dans la mémoire le GC aura comme impact de "flasher" les données utilisées par le programme, à cet instant, en dehors du cache, ce qui dégrade les performances


Suite de l’article sur les paramètres de la JVM, permettant le tuning des performances, dans les prochains postes ….

mercredi 7 avril 2010

Innovation dans les TIC : entre Mobile et cloud des opportunités à saisir (1/5)

J’ai eu le plaisir d’animer, le mardi 1er avril 2010, une conférence à l’ENIT (Ecole Nationale d’Ingénieur de Tunis). L’ENIT est la plus ancienne école d’ingénieur de Tunisie. La conférence a été organisée par La Jeune Chambre Internationale de Tunisie, sous le thème : « Innovation Technologique et Valorisation de la Recherche Scientifique » du 01 au03 Avril 2010.

Le titre de ma conférence: Innovation dans les TIC : entre Mobile et cloud des opportunités à saisir

Mais, avant de commencer « Qu’es ce qui se cache derrière le sigle TIC (Technologies de l‘information et des communications) ? «

Définir le secteur TIC

Il est communément connue que le secteur des TIC regroupe des industries et des services très diverses appartenant aux filières suivantes :

  • · informatique

  • · télécommunications

  • · électronique

Nous observons, depuis quelques années deux tendances principales dans ce secteur TIC

  • · la première tendance est que le secteur est de plus en plus dominé par les services

  • · la seconde tendance est la convergence fixe-mobile et les nouvelles générations de Mobiles, préparant le monde à de nouveaux types d’applications.



Rappelons que les TIC présentent un grand potentiel de stimulation de la stratégie de développement de l’entreprise

  • · faire évoluer son fonctionnement et appuyer ses processus métiers

  • · fluidifier les interactions avec son écosystème

Lors de cette conférence, j’ai essayé élargir la réflexion sur l’innovation pour ne pas la cloisonner dans les aspects technologiques.

Ainsi, j’ai pu traiter les sujets suivants :

  • · L’innovation dans les nouvelles tendances dans les TI : la mobilité, le cloud computing et ses variantes PaaS et IaaS, les réseaux sociaux et le web 2.0 .

  • o Présentation et catalogue pour démystifier

  • · L’innovation dans les processus : Agilité et management

  • · L’innovation dans les business modèles TI : SaaS et facturation à la demande,

  • · présentation des opportunités ouvertes à un jeune tunisien

Ainsi, l’émergence des réseaux sociaux n’est pas forcément associée à l’aspect technologique, mais à l’usage qu’on en fait. L’exemple le plus simple, reste twitter, où aucune innovation technique n’est associée au projet (toutes les technologies utilisées sont connue depuis longtemps), simplement un usage spécifique du web et du mobile.

Les éléments de réflexions traités lors de mon, intervention feront l’objet d’autres postes dans ce blog dans les prochains jours …

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)

-----

informations récentes sur le marché du Cloud  : Le cloud privé : priorité des DSI selon une étude PAC, selon Mathieu Poujol de PAC, responsable de l'étude sur le cloud computing en France

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.