jeudi 21 août 2008

Un programme pour lister les differences

Un outils très pratique pour les codeurs : beediff de beesoft.org

Ce programme permet de comparer visuellement deux fichiers.
Le résultat est présenté sous cette forme :


C'est pas beau ca ?

jeudi 14 août 2008

visite virtuelle

Il existait déja un site proposé par Google pour arpenter les rues d'une ville :Google Street View
mais cette application offre souvent des vues à faible résolution. Ce n'est pas le cas de mapjack.
qui offre des images de qualité saisissante.


L navigation est tres intuitive : La partie inférieure de l'écran montre le personnage 'jack' et son champs de vision dans une carte. Le haut de l'écran montre les photos.

Actuelement peu de villes sont numérisées mais ca va venir très vite.


mercredi 13 août 2008

SOA , féderation d'identité et gouvernance

A la suite de mes lectures sur le SOA et des echanges riches sur ce thème , j'ai réalisé cette 'big-picture' où sont representé les differents processus de gestion et les composants relatifs àla gestion d'identité. Dans une architecture SOA cette fédération peut etre utilisée pour les personnes mais aussi pour les composants entres eux par le biais d'empreinte et de signature.

vendredi 8 août 2008

Optimisation d'une application Rails

Un article sur Ruby on rails dans le linux journal aout 2008 explique comment optimiser les performances dans applications Rails. Tout d'abord, WEBrick le serveur web de développement livré avec Rails ne doit pas etre considéré comme un serveur web de production. Une mise en production devra se faire avec le serveur Mongrel.

Cet article détaille comment migrer les log Rails vers syslog.
Il faut installer la gemme SyslogLogger par la commande : gem install --remote SyslogLogger .
Puis il faut ajouter les lignes suivantes dans le fichier de configuration environment.rb :

require 'syslog_logger'
RAILS_DEFAULT_LOGGER = SyslogLogger.new

Et la ligne
*.info /var/log/production.log
dans le fichier /etc/syslog.conf

Le programme pl_analyse /var/log/production.log va afficher le temps consommé pour chaque requete , le temps de traitement des requetes SQL et enfin le temps utilisé pour la restitution des résultats.

Un autre utilitaire permet de profiler les applications Rails , l'installation se fait par :
gem install --remote ruby-prof

Il est nécessaire d'écrire un petit script de bench dans le répertoire crée à cet effet : test/performance
Le script peut être très simple comme : get ('/')

Puis le script sera lancé par :
script/performance/request -n 18 test/performance/test.rb

Le résultat sera écrit dans le fichier profile-output.txt

Le véritable travail d'optimisation commence avec l'analyse de tous ces résultats. Il faut trouver quelle procédure est la plus gourmande en temps de traitement , pour la réécrire, la réorganiser ou pour ajouter des fonctions de cache.

Recette sympa qui coute pas cher

Une drole de recette de cuisine sur ce blog (titre du blog :le consottisier).

La recette est à base de méduse. C'est vrai que le réchauffement climatique favorise la prolifération de ces bestioles.



Ca donne envie !!

Le détail est ici

jeudi 7 août 2008

SOA partie 1

SOA pour les nuls .


Service Oriented Architecture For Dummies


Voici je que j'ai retenu de ce livre :

Qu'est qu'une architecture SOA ? :

Une Architecture Orientée Service est une architecture logicielle permettant de construire des applications correspondant à des processus métiers par assemblage 'lache' de composant.


* SOA est fait pour batir des applications de gestion
* SOA est une boite noire , SOA masque la complexité d'un SI et facilite le branchement de nouveaux composant à cette boite noire.
* Les composants SOA sont reliés entres eux par un couplage 'lache' . Cela veut dire qu'il est non seulement possible de remplacer un composant par un autre mais aussi que le nouveau composant peut avoir une interface ou une invocation différente .
* Les composants sont agencés entre eux de manière à fournir un service bien précis correspondant à un processus métier.

Le SI prendra la forme d'un ensemble de composants organisés autour d'un bus applicatif appelé ESB : Entreprise Service Bus.
L'ESB est le tuyau par lequel les messages circulent d'un composant à un autre.

En plus des composants applicatifs , on trouvera un certain nombre de composants spécifiques comme :

* Le SOA registry
* Le moteur de workflow
* Le service broker
* Le superviseur

Le SOA registry est une sorte de base de registre , ou de catalogue où sont stocker les descriptions des composants. Il est utilisé par le broker comme annuaire de référence , mais aussi par les développeurs d'application comme référentiel des composants. Il stocke la descriptions des composants , la façon d'y accéder et les règles de fonctionnement. C'est dans le registry que sont publié les services. On peut utiliser pour cela un annuaire des services (UDDI Registry)

Le moteur de workflow est le composant responsable du bon acheminement des messages par l'ESB.

Le broker est le composant qui permet la mise en relation des composants entres eux.

Le superviseur : c'est le grand chef d'orchestre et aussi le surveillant du bus. Il a la possibilité de communiquer avec des couches plus basses. Il est aidé dans sa tache par des 'agents' qui supervisent les composants.

Cinématique d'une transaction.
Exemple :le composant A désire envoyer un message applicatif au composant B.

* Le composant A va envoyer une requête au broker en lui indiquant sa demande.
* Le broker va lancer une recherche auprès du Registry pour connaitre le composant B à activer et comment le solliciter.
* En réponse du registry le broker va connecter les composants A et B.
* Le composant A va envoyer son message à B.

Chaque composant est doté d'un 'adaptateur' . Cet adaptateur fait l'interface entre le composant et le bus applicatif , un composant peut posséder plusieurs d'accès. Ces méthodes seront exposées dans le Registry.
Exemples d'adaptateur

* Web service : on accède au composant par le protocole HTTP(S)
* Terminal adaptateur
* Connecteurs SQL
* Connecteurs dédiés (LDAP, CORBA,SOAP)

Le composant 'Registry' sert donc à :

* Stocker les descriptions des interfaces
* Les définitions des processus métiers
* Les règles de gestion de ces processus métiers
* La description du niveau de service
* Les règles de gouvernance

Tout ceci forme les métadonnées, ces métadonnées seront exploitées par le Broker

Le Broker va réclamer au Registry les métadonnées des composants pour pouvoir les faire dialoguer entres eux.
Les composants ayant un adaptateur SOAP expose le plus souvent leur interface par le biais du protocole WSDL (Web Service Description Language) . Par ce langage les web service expose ses conventions de connexion , de syntaxe de message et de typage de données . Toutes ces informations sont reprisent dans le UDDI Registry (Universal Description ,Discovery , and Integration) .

Le bus des services (ESB).
Il sert à connecter les composants métiers et techniques, et gère notamment :

* Le service des messages applicatifs
* La validation des messages
* Le transport des messages
* Le transcodage des messages
* La sécurité (intégrité, encryptage)

Enfin il doit etre capable de gérer des niveaux de priorités des massages et doit s'adapter aux performances globales.

Phéno-mèmes

J'ai decouvert un nouveau mot : les mèmes .
Une définition donnée par Libération : Néologisme désignant les phénomènes récurrents (vidéo, personnage, expression, etc.) inscrits dans le panthéon de la culture populaire d’Internet.
Exemples : lonely15, lolcats ou
Chuck Norris .

Un site c'est amusé à réaliser une frise chronologique : ici.