lundi 9 novembre 2009

Le bon, le mauvais et le franchement pénible

SOA est sur beaucoup de lèvres à l'heure actuelle. Ce concept apparaît comme la solution à la course aux produits innovants, à la sécurité des données, à la réduction des coûts, à la flexibilité.

Or toute belle chose a un côté moche. Voici quelque aspect niveau business déclinait en SOA avec :
A méditer !

jeudi 29 octobre 2009

Mise à jour dynamique d'une page web

En complément du précédent article, voici un cas d'école sur la mise à jour d'une page web via des composants dynamiques. Tout ça reposant sur du JSF et de l'Ajax.

A noter un schéma ultra intéressant voir vital qu'il faudrait toujours avoir accroché au mur pour se souvenir de "comment doit fonctionner une application à interface dynamique ?".

Le voici reproduit pour vous mettre l'eau à la bouche :

Introduction à RichFaces

Dans le monde des RIA (Rich Internet Application), il existe l'API RichFaces qui permet de mutualiser la puissance d'une application JEE, la richesse des JSF et la flexibilité du modèle Ajax.

Et tout ça d'une manière assez souple et sympa. Allons-y donc pour une petite introduction !

lundi 28 septembre 2009

mardi 22 septembre 2009

Le "Server Push" ou comment notifier d'un événement

Vous vous demandez comment faire en sorte que votre serveur notifie ces clients riches d'une nouvelle information, sans que ce soit les clients qui interroge régulièrement le serveur ?

Vous avez besoin d'implémenter le "server push" pour maintenir à jour une interface de suivi de commande ?

Cet article est fait pour vous : démonstration pour Flex et OpenLazlo, ainsi que des solutions alternatives (mais consommatrice de ressources réseaux) pour les API Ajax.

jeudi 17 septembre 2009

L'expérience utilisateur

Cet article est très intéressant car il permet de faire la part des choses entre le look, le feel et le model utilisateur qui sont présentés au travers d'une application, web ou desktop.

On se rend compte qu'en termes d'expérience utilisateur, le look and feel ne compte que pour 40%.

De gros efforts doivent donc être mené au niveau du modèle, c'est à dire ce que peuvent faire les utilisateurs plutôt que l'apparence que cela peut avoir.

mercredi 9 septembre 2009

Java NIO et NIO 2

Vous développez en Java et vous voulez manipuler des fichiers, des sockets ou des buffers en mémoire de manière non bloquante et ultra rapide ?

NIO et NIO 2
sont faits pour vous !

Maj du 16/09/09 :

Un autre article détaillant les fonctionnalités de Java NIO et les nouveautés apportées à ce sujet par Java 7 Dolphin

mercredi 15 juillet 2009

Outil de test pour Flex

Le Flex c'est bien.

Mais le Flex testé c'est mieux :)

Voici un outil de test qui permet de capturer et de rejouer des scénarios de tests d'interface Flex.

via : http://www.infoq.com/news/2009/07/flex-monkey-1.0-released

mercredi 8 juillet 2009

Agile dans la vrai vie

"Nous sommes agiles ! Nous travaillons par itérations".

Ok. C'est super.

Mais qu'est-ce que ca veut dire "travailler par itération" ? Quelle est la durée d'une itération ? Comment sont découpés les besoins du client et comment les différentes taches sont-elles priorisées dans chaque itération ? Comment estimer la charge de réalisation d'une tache ?

Tous les éléments de réponses au bout du clic.

mardi 7 juillet 2009

Pertinence des webservices

Est-ce que les webservices sont toujours la bonne solution pour une architecture orientée services (SOA) ?

La réponse est mitigée mais tend vers le non. Du moins, quand des applications hétéroclites de plusieurs sociétés doivent proposer et consommer des services, c'est la solution à retenir. En revanche, pour des applications d'une même société, voire au sein même d'une application, des solutions plus simples comme RMI / Corba, voire même l'échange direct de commandes brutes est plus avantageux et plus rapide.

Tous les détails au bout du clic.

Flex et le CSS

Toutes les subtilités de l'utilisation du CSS dans Flex vous sont enfin dévoilées !

A vos souris! Prêt ! Bookmarkez !

jeudi 2 juillet 2009

Possible performance bottleneck

I want to share with you my own experiences of load testing and especially what are the possible bottlenecks you can encounter.

I summarize into this diagram.


It represents a common architecture of load test plateforme :
  • a injector in its own network
  • a cloud of network injection has to pass through
  • a reverse proxy in a public DMZ
  • an Apache Server in a private DMZ
  • a loadbalancer, two application server and a database in a private network
Red note are the points you have to check first. It is low level consideration but they must be check first to avoir spending time on details.
Orange note are about configuration of software in use on the machine. Check those points in second time.
At last, yellow note are application problem or miss configuration you have to check at last.

Here some other points which can make you mad and misunderstand the load test results :
  • is the target application simply available ?
  • is there any application concurrency on some servers ?
  • is the date you use correct ? bad data can cause incoherence
  • do you access data sequentially ? this can cause Oracle or database contention
  • is the tcp access layer well configured ? what about hashcode ? timeout ? ....
  • the application is not responding ? you can not restart it ? Check diskspace ! Perhaps diskspace for logs is full and application wont start if it can not write some logs.
And to finish some tips :
  • ever add %T or %D parameters on the apache log. They provide apache service time. You can use this time to get cloud network latency (response time minus service time).
  • always choose the lowest level of log in production mode

mercredi 1 juillet 2009

Développer des applications multi-navigateurs

Qui n'a jamais rencontré des problèmes de rendu ou de comportement sur son site web entre IE et Firefox ?

Voici un petit guide qui donne des bonnes pratiques en mettre en place pour s'assurer que son site web sera bien rendu sur le maximum de navigateur.

Ca va de la déclaration d'une DTD (pour éviter les rendus "perso" des navigateurs") à l'utilisation d'outils comme Firebug.

lundi 29 juin 2009

Objet non-modifiable

Est-ce que la classe que je créé sera bien non-modifiable, ou plutôt dans la langue de Shakespeare "immutable" ?

La question n'est pas anodine, surtout dans des applications multithreadés et multi-développeurs.

Les bonnes questions à se poser et des éléments de réponses (!!) se trouve au bout du clic.

lundi 27 avril 2009

Boucle itérative ou boucle récursive

Dans l'implémentation d'un algorithme de calcul (surtout ceux qui tendent vers O(n)), on se pose souvent la question de savoir s'il faut mieux faire une boucle itérative ou une boucle récursive.

Un élément de réponse se trouve dans cet article.

vendredi 3 avril 2009

Modélisation orienté process

Voici une série d'article chez IBM developerWorks qui aborde le sujet de la modélisation orienté process
In this series, learn about a new decomposition technique that can help you specify business processes that are aligned with a Service-Oriented Architecture (SOA). This first article explores decomposing a business process into different layers of responsibility--as opposed to different levels of detail--and also looks into the role of the process controller as well as how services are identified by where they are needed. 
Learn about a set of SOA-aligned business process patterns that use the decomposition technique described in Part 1. Each pattern belongs to a layer of the decomposition framework. There are patterns for consumer, long-running, human activity, and short-running processes. In this series, learn about a new business process decomposition technique that can help you specify business processes that are aligned with a Service-Oriented Architecture (SOA).
Learn how business analysts and architects can specify use cases that are in alignment with Service-Oriented Architecture. This article describes a use case modeling technique based on the process modeling technique described in Part 1. In this series, learn about a new business process decomposition technique that can help you specify business processes that are aligned with a Service-Oriented Architecture (SOA).
Learn how a process model drives both a use case model and service model. This article ties everything together with a case study about home shopping that illustrates the concepts in the previous parts of this series. 

vendredi 13 mars 2009

Une première approche d'XSLT

Voici un article qui peut vous être utile si vous voulez savoir comment définir un fichier XSL pour exploiter et présenter un fichier XML, pour par exemple : 
Un bémol néanmoins : l'auteur compare le fichier XSL à un fichier CSS. Je ne suis pas d'accord. Le fichier XSL doit permettre de transformer le XML en HTML. Le style du HTML généré doit lui être toujours maîtrisé via une feuille de style CSS.

jeudi 12 mars 2009

3 erreurs fréquentes sur les webservices et XML

Un article sur le developerWorks d'IBM présente 3 erreurs les plus fréquentes quand on fait des webservices et du xml

vendredi 6 mars 2009

HashMap et HashSet : comment ca marche

Voici un bel article qui explique comment fonctionne une HashMap ou un HashSet. Très utile si l'on veut un peu comprendre la mécanique de ces merveilleuses classes, qui permettent de stocker des objets avec un temps de récupération dans le tas indépendant du nombre d'objet.

Une application Web plus rapide grâce à un cache

Il est souvent très intéressant de bénéficier d'un système de cache lorsque l'on développe une application web, ceci afin de palier les latences réseaux par un temps de réponse de l'application le plus petit possible.

Un bon moyen est d'utiliser un système de cache qui permette de stocker les résultats les plus fréquents et les moins changeant, et ceci, pourquoi, partager sur plusieurs machines.

Java Caching System permet de répondre à tous ces points, avec en plus la possibilité de mettre en cache des objets Java, d'utiliser à la fois la mémoire et l'écriture du disque (swap) pour gérer les éléments en cache. Ajouter une pincée de méthode pour synchroniser entre plusieurs machines en réseau et hop là! bienvenue dans le monde des applications web rapides.

jeudi 5 février 2009

Accélérer le chargement des pages web

Il existe certains articles indispensable pour tout développeur, débutant ou confirmé. Ce sont les articles traitant d'optimisation de performance.

Du bonheur !

mardi 3 février 2009

Comment concevoir une architecture ?

Dans cet article, l'auteur nous présente de manière détaillée comment utiliser la méthode Agile pour concevoir une architecture qui réponde au mieux au besoin futur de l'application.

Très instructif et certains points très détaillés permettent de faire un audit a posteriori d'une architecture existante, par exemple dans le cas d'une évolution.

De l'art d'avoir le bon environnement de travail

Cet article propose quelques plugins indispensables pour avoir le meilleur environnement de développement possible avec Eclipse.

lundi 2 février 2009

Architecture d'infrastructure

Voici une belle série d'articles chez IBM permettant d'établir et de qualifier l'architecture des infrastructures logiciels et réseaux :

Building a highly reliable architecture doesn't have to cost a fortune. Simple steps and a bit of bargain hunting can ease the strain on your budget.
 
Systems will always have resource limits that define performance bounds. The term "bottleneck" implies that a system has a resource imbalance and therefore a rate-limiting stage in processing that leaves costly resources underutilized. In theory, a perfectly resource-balanced, infinitely scalable system should never have a bottleneck or wasted resources. Discover methods and tools for finding, eliminating, and avoiding system bottlenecks so that you can provide the highest performance at the lowest cost for applications and users.
 
In an ideal world, all systems would have linear scaling of all resources with linear cost, but this is rarely the case. Cost may include not only capital expenditures but operational costs for increased cooling, power, rack space, and management requirements. System designers and solution architects who plan ahead for scaling can at least control cost, make initial trade-offs for the long term, and provide mostly linear scaling with similar increases in capital and operating costs. Choosing the right scaling strategy--ranging from simple server-client to clusters to grid, cloud, or general Internet services--up front is critical. This article arms systems designers and solution architects with methods for success.
  
Discover the methods used to manage enterprise resources, including storage, compute nodes, switches, and the data and services that this infrastructure provides.
 
Discover the methods for content delivery and distribution of Web-based media in the Web 2.0 world.  
 
Discover some of the common threats facing Web servers as well as the tools and techniques you can use to identify and mitigate them.

The year 2008 will forever be remembered as the year of the off-the-shelf (OTS) supercomputer, thanks to the Los Alamos National Labs (LANL) and IBM team that constructed the world's first machine to break the peta-FLOP (1,000,000,000,000,000 floating-point operations per second) barrier. Get an overview of OTS strategies to architect high-performance computing (HPC) systems as well as the methods and concepts behind building HPC systems from OTS components and open source software.

jeudi 29 janvier 2009

mardi 27 janvier 2009

Liste ordonnée en java

Bon je rattrape le retard :)

Voici un article sur les listes ordonnées en Java et comment les choisir en fonction d'un critère de concurrence.