mardi 27 septembre 2016
 
L'INFORMATICIEN N°35
numéro d'avril 2006

INF35_001.jpgAdministrateurs systèmes, ce numéro de l'informaticien est pour vous ! un énorme dossier de 8 pages consacré à ITIL et à la gestion globale vous attends au centre du magazine. Pour les autres, il reste bien sûr l'habituel substantifique condensé de culture informaticienne : ici on parle de clients légers, on disserte de l'avenir de Java en utilisant des noms d'animaux, on glause des différences de fonctionnalités entre Windows Desktop Search et Google Desktop, et on s'échange avec délectation des recettes de scripts sous Flash. Bonne lecture !
DADVSI : l’usine à gaz ++
Par Stéphane Larcher - copyright l'Informaticien, tous droits réservés

newstef26526_Copier5.gif
Comme moi, vous aviez rêvé qu’après le vote frondeur d’une partie de l’hémicycle, fin 2005, sur les droits d’auteur, le nouveau projet proposerait de nouvelles pistes. Pourquoi ne pas étudier la licence globale ? Pourquoi ne pas – surtout – prendre le temps de la réflexion pour un sujet d’une complexité folle, particulièrement pour des non-spécialistes des choses numériques, et dans un domaine où les évolutions technologiques peuvent tout remettre en cause pratiquement du jour au lendemain ? Pourquoi, enfin, ne pas prendre le temps d’étudier en détail toutes les implications de l’Économie de l’immatériel : pour le passé, le présent et surtout l’avenir ? Non. Il fallait aller vite ! Pour quoi faire ? Pour se mettre en conformité avec une directive européenne de 2001 qui est elle-même quasiment obsolète.
Avant même le vote, les qualificatifs ne manquent pas : fumeux, inapplicable, usine à gaz, liberticide. Bref, à part une majorité de députés UMP qui s’est prononcée en faveur de la nouvelle mouture, le projet de loi sur les droits d’auteur ne rencontre qu’oppositions. Il se murmure que ce vote ne reflète pas totalement le sentiment de bon nombre de parlementaires de la majorité, mais que ceux-ci n’auraient pas voulu ajouter une nouvelle couche au vu des difficultés que rencontre le gouvernement avec le CPE.
Le ministre RDDV, rebaptisé ironiquement par le député socialiste Didier Mathus, RDDVV pour Renaud Donnedieu de Vabres de Vivendi, n’a pourtant peut-être pas fini de souffrir avec ce projet. En effet, l’une des mesures phares visant à l’interopérabilité des formats, en particulier pour développer l’offre légale de téléchargement, pourrait rencontrer l’opposition résolue du n° 1 mondial du domaine : Apple. En effet, Apple a toujours refusé que les fichiers musicaux téléchargés, via iTunes, puissent être convertis dans un autre format, de façon à pouvoir être écoutés sur un autre baladeur que l’iPod, Steve Jobs expliquant partout que le succès de l’iPod était en grande partie lié à la cohérence de l’ensemble lecteur / logiciel. En conséquence, d’aucuns pronostiquent déjà qu’Apple pourrait fermer son activité de téléchargement en France pour ne pas ouvrir son système propriétaire. Notons aussi que les autres portails devraient également proposer leur catalogue selon les spécifications Apple – que l’entreprise refuse pour le moment de communiquer – sous peine d’enfreindre la loi. Bref, à peine née, l’idée d’interopérabilité entre les opérateurs est déjà morte.
Autre sujet tragique : l’interdiction de copier un DVD. La France – on le sait – est un désert administratif et il fallait donc installer un nouveau collège pour s’occuper de cette affaire. Ce sera le collège des médiateurs qui aura la lourde charge de fixer le nombre de copies de DVD que nous sommes en droit de réaliser, sachant bien évidemment que nous payons déjà le droit à la copie privée, avec 270 millions d’euros de récoltés en 2005.
Je vous épargnerais les détails des contraventions qui seront infligées aux internautes qui téléchargeront. Si l’amende est fixée à 38 euros, elle peut s’élever à 150 euros dans le cas où l’œuvre téléchargée est partagée sur Internet. Dans les faits, la contravention sera toujours de 150 euros, puisque – par définition – la plupart des logiciels de P2P autorisent le partage de son répertoire au moment du téléchargement. On montera à 750 euros lorsque l’on disposera d’un logiciel de contournement des protections (en clair, un outil pour cracker les DRM), 3 750 euros si on l’utilise et 30 000 euros et 6 mois de prison si l’on fournit ce moyen à un tiers. Enfin, et là nous touchons au sublime avec une mesure unique au monde : le fameux amendement Vivendi. L’éditeur de logiciel de partage de fichier qui encouragerait sciemment le téléchargement illégal risquera 300 000 euros d’amende et 3 ans de prison. En gros, Bittorrent qui sert en particulier à Vivendi à poster les mises à jour de World of Warcraft ne devra plus être utilisé car pouvant servir également à transférer des œuvres illégales. Idem pour Apache et de manière générale pour bon nombre de logiciels libres.
Enfin, last but bot least, quid des moyens affectés aux contrôles ? Tout ceci sera étudié avec les décrets d’application a expliqué le ministre. Une manière élégante pour dire : « Circulez, y a rien à voir ! » Va-t-on vers une police d’Internet où des képis électroniques surveilleront le trafic ? Que se passera-t-il pour les communications cryptées que ne manqueront pas d’utiliser les internautes pour s’échanger des fichiers ? Faut-il fermer l’Internet aux frontières ? En conclusion, permettez-moi de suggérer respectueusement à nos parlementaires d’effectuer un voyage en Chine ou en Corée du Nord. Ils y piocheront des méthodes pour faire appliquer cette loi.

copyright l'Informaticien, tous droits réservés
Chronique Irritation
Réduire
Chronique Irritation
Faut pas Pusher !

par Hugo Lunardelli - copyright l'Informaticien, tous droits réservés

Les déboires juridiques de RIM, le constructeur du désormais célèbre terminal Blackberry, alimentent les dépêches de presse depuis des semaines.

Photodidentitehugo.gif
RIM recensait 2,5 millions de souscripteurs à la fin 2005, soit beaucoup moins de un pour cent du nombre de mobiles commercialisés chaque année. On peut logiquement se demander pourquoi les mésaventures d’un constructeur aussi marginal déclenchent un tel émoi.
Une raison tient à la CSP (catégorie socio-professionnelle) à laquelle appartiennent la plupart des possesseurs de BlackBerry, terminal que l’on désignera plus avant sous ses initiales pour faire plus court. Disposer d’un BB dote son possesseur d’une aura de prestige. Les utilisateurs de BB se recrutent en général parmi les élites politiques et financières américaines et il est flatteur de se voir assimilé à un tel groupe.
Pourquoi cette représentation élitiste ? Essentiellement compte tenu du coût élevé lié à la possession d’un tel terminal. Le prix étant lié non pas au mobile en lui-même, mais à l’infrastructure informatique et télécom nécessaire pour bénéficier des services de l’appareil. Cette barrière financière présente l’énorme intérêt de dissuader le commun des mortels d’acquérir un BB, la plupart des entreprises ne pouvant généralement pas justifier d’une infrastructure RIM au bénéfice de quelques utilisateurs privilégiés. Dans ces conditions, la possession d’un BB vous range à coup sûr dans une catégorie bien définie, un peu comme si vous étiez l’un des rares privilégiés possesseurs d’un téléphone portable au début des années 80.


Le BB, pour quoi faire ?

Et quels sont les services uniques qui justifient un tel investissement ? En deux mots : le push e-mail, c’est-à-dire la possibilité de recevoir en quasi temps réel sur son BB, les e-mails qui viennent d’arriver sur votre serveur de messagerie.
Pourtant, la plupart des mobiles appartenant à la catégorie des smartphones vous permettent de recevoir vos
e-mails directement sur votre portable depuis longtemps. La différence par rapport au BB étant que vous recevez vos messages avec un délai de quelques minutes, ou que vous décidez de télécharger la liste de vos messages au moment de votre choix.
En quoi cette faculté de recevoir vos e-mails immédiatement fait-elle de vous un personnage important ? Parce qu’elle vous permet d’en prendre connaissance sans délai, où que vous soyez, et vous permet d’y répondre instantanément ; ce qui confére au possesseur d’un BB l’illusion de la toute puissance qu’apporte l’ubiquité. De ce fait, quelles que soient les circonstances, quelle que soit l’heure ou l’endroit où vous vous trouvez, vous serez immédiatement informé de tous les e-mails qui vous sont adressés (spam y compris) et vous pourrez répondre immédiatement donnant ainsi à vos correspondants la preuve de votre réactivité.


Un esclavage volontaire

On peut légitimement s’interroger sur la justification d’un tel assujettissement volontaire. De fait, l’utilisateur d’un BB se met en position d’être disponible en permanence pour répondre à toute sollicitation, à tout moment. Ce dernier laisse à ses interlocuteurs le soin de décider à sa place le moment où il doit se consacrer à un sujet donné, ce qui, on en conviendra, est paradoxal pour quelqu’un qui se flatte d’appartenir à la classe des décideurs.
À quoi peut bien servir la notification des messages en temps réel quand vous êtes en entretien avec un client ou un partenaire ? Quand vous accompagnez vos enfants à l’école ? Quand vous êtes au restaurant ou au cinéma ? À rien !
En dehors de l’illusion d’appartenir à une élite et de faire partie d’un monde où les décisions se prennent instantanément, les inconvénients l’emportent largement sur les avantages, sans parler des coûts de déploiement.
La bonne ou la mauvaise nouvelle, c’est selon le point de vue, est que le push e-mail est en passe de se démocratiser, puisque ce service sera bientôt intégré aux serveurs Microsoft Exchange 2003 doté du SP2 et qu’il vous suffira d’acheter un mobile doté de Windows Mobile 5.0 pour en bénéficier.
De quoi donner au plus grand nombre le goût de l’asservissement librement consenti.
On n’arrête pas le progrès.

copyright l'Informaticien, tous droits réservés
Virtualisation
Réduire
Face à MS Virtual Server et Xen, EMC donne VMware Server
Par Alexandre DELOY - copyright l'Informaticien, tous droits réservés

VMware fait la course en tête sur les solutions de virtualisation de serveurs. Cependant, la concurrence est rude, et impose des changements de stratégie. Voilà sans doute ce qui explique l’arrivée d’une version gratuite de VMware Server.

VMware Player est une version « workstation » gratuite lancée à la fin de l’année 2005. Elle permet d’utiliser une machine virtuelle (mais pas d’en créer).
Le succès semble être au rendez-vous : la société revendique un million de téléchargements en quelques mois. Cet engouement des utilisateurs a sans doute joué dans le choix de l’éditeur de proposer une autre version gratuite d’un de ses produits phares. La rumeur avait d’ailleurs couru avant que l’annonce officielle ne soit faite début février. Il existe désormais un VMware Server, disponible gratuitement en téléchargement. Actuellement, il ne s’agit que d’une version bêta, mais déjà pleinement utilisable.
Cette version dérive directement de VMware GSX Server, conçue pour faire tourner des serveurs virtuels administrés par le biais d’une console. Au vu des fonctionnalités proposées, il apparaît clairement que VMware Server remplacera la version GSX. Les utilisateurs pourront bien entendu souscrire à des services de la société.
Il ne faudrait pas croire non plus que cette version gratuite est un sous-produit de la version GSX. Elle intègre en effet des nouveautés inédites comme le support de la technologie VT (Virtualization Technology) d’Intel que l’on a vu apparaître sur les derniers processeurs destinés aux serveurs. À terme, il est certain que l’équivalent AMD connue sous le nom de Pacifica sera également intégrée. Du coté des systèmes d’exploitation, cette version peut aussi prendre en charge les systèmes 64 bits comme Solaris ou Linux.


Une nouvelle stratégie

Le succès de VMware excite les appétits de la concurrence. Il faut dire qu’avec un chiffre d’affaires de l’ordre de 400 millions de dollars en 2005, l’activité est florissante. Du coup, remplacer la version GSX par un logiciel gratuit s’explique par plusieurs considérations. Tout d’abord, la version GSX n’est pas le principal centre de profit pour VMware. Le « vrai » marché pour l’instant se trouve du côté des solutions haut de gamme représentées par la version ESX Server. Cette plate-forme permet de mettre en place des datacenters virtuels sans avoir à s’appuyer sur un système d’exploitation puisque cette version s’installe directement sur la machine. La stratégie de la société EMC qui édite VMware est donc de concentrer les efforts de développement vers ces gros systèmes, où sa supériorité technique manifeste lui laisse une bonne longueur d’avance.


Xen, la solution qui monte
Faut-il encore présenter Xen ? Il s’agit d’une solution de virtualisation – pardon, d’un « hyperviseur de machine virtuelle » pour reprendre la juste expression (lire l’article consacré à Xen dans l’Informaticien n° 28). En effet, à la différence de VMware, Virtual PC ou encore Qemu (un autre projet libre), Xen n’émule pas un matériel virtuel : les systèmes d’exploitation doivent être « portés » sur cette plate-forme. Il s’agit essentiellement de créer des pilotes Xen spécifiques. Restriction importante : Xen ne peut utiliser Windows comme machine virtuelle, pour la bonne raison qu’il n’existe pas de pilotes officiels pour cette plate-forme. Mais les choses pourraient bien changer cette année avec l’arrivée des fonctions de virtualisation au cœur des processeurs Intel et AMD. Xen est un projet Open Source sous licence GPL. Ce n’est pas le seul projet de cet ordre dans l’univers du logiciel libre, il en existe de toute sorte, suivant des démarches techniques variées. Xen apparaît de plus en plus comme la solution qui monte dans un cadre professionnel. Il est vrai qu’il s’agit d’un système mature et, qui plus est, de grandes entreprises soutiennent très activement le projet. À l’origine, il s’agit d’un développement de l’université de Cambridge. Aujourd’hui, la société XenSource vend du service et du développement autour de Xen 3.0, sorti à la fin de l’année 2005. Il faut noter que la plupart des distributions Linux dispose de paquetages natif pour installer Xen. Parmi les autres supporters actifs du projet on trouve IBM, AMD, Sun…



La version GSX, destinée aux structures plus modestes et à des services « simples », se trouvait très exposée face à la concurrence de Microsoft Virtual Server, au prix très agressif, et de solutions Open Source telles que Xen de plus en plus reconnue par la communauté du logiciel libre et même activement soutenue par des distributeurs comme Red-Hat et SuSE (Novell donc). Les deux concurrents du GSX server sont donc « poussés » par les éditeurs des principaux systèmes d’exploitation virtualisés de la sorte. Un avantage décisif à long terme, on s’en doute.
Enfin, la version GSX disposait jusqu’à récemment d’un avantage de taille sur MS Virtual Server : le support de système comme Linux ou Solaris. Mais comme l’a annoncé Steve Ballmer, au cours de l’IT Forum du printemps 2005, la nouvelle version de MS Virtual Server supporte pleinement les systèmes tiers. De son côté, Xen est désormais intégré comme paquetage à part entière de plusieurs distributions Linux. Et se sont précisément les administrateurs Linux qui firent le primo-succès de VMware…
En lançant cette version gratuite, VMware vise donc à couper l’herbe sous le pied de ces rivaux, tout en suivant une stratégie marketing qui paraît pertinente : d’une part, bon nombre d’entreprises potentiellement intéressées par la virtualisation de serveur n’en sont qu’à leurs premiers pas en la matière. D’autre part, personne n’opte pour une virtualisation de serveur avant d’avoir procédé à des tests approfondis. Cette version gratuite correspond donc à ces besoins, et poussera les projets les plus ambitieux à se tourner vers la solution ESX Server.
VMware s’ouvre également à ses partenaires, en les engageant à développer des modules binaires assurant une interopérabilité optimum de leurs produits avec ESX Server. Le VMware Community Source met à la disposition des éditeurs, depuis cet automne, les API de l’interface d’administration d’ESX.


Microsoft fourbit ses armes
Virtual Server 2005 R2 est sorti il y a quelques mois, et est disponible en français depuis février. Par bien des aspects, c’est le concurrent qui apparaît comme le plus intéressant face aux solutions VMware ; du moins, si l’on fonctionne sur un parc serveur Windows. Cela dit, ce système supporte désormais les systèmes tiers, tels que Linux. Avantage important de Virtual Server : sa bonne harmonisation avec les autres outils dédiés à l’administration système créés par Microsoft. Des partenaires de Microsoft offrent également du service autour de ce système comme Computer Associates par exemple.


copyright l'Informaticien, tous droits réservés
p. 1
Réduire

parumid35.gifVers une gestion globale

Réseaux, serveurs, applications : ITIL s’impose de bout en bout
Par Bertrand Garé - copyright l'Informaticien, tous droits réservés

EITM, BSM, ITSM… Tous ces acronymes recouvrent une même évolution des logiciels d’administration de système. Comment disposer d’une maîtrise globale des ressources informatiques en s’appuyant sur de bonnes pratiques répertoriées dans différents référentiels pour une réduction des coûts du service informatique ? Ces objectifs impliquent une gestion centralisée, des processus efficaces et une maîtrise globale de toutes les ressources informatiques. Pour y parvenir, ces logiciels annexent différentes autres parties comme la gestion de parc ou la sécurité.

70 % des incidents informatiques sont remontés par les utilisateurs. Il est possible alors de se demander à quoi servent les différents outils d’administration de système. Il ne faut pas confondre de quoi sont capables les outils et l’organisation des services informatiques. Serge Bonnaud, en charge du marketing pour la ligne de produit Tivoli chez IBM : « Il existe une désynchronisation entre les demandes des utilisateurs et les possibilités des services informatiques. Cet alignement est très difficile à réaliser. L’informatique doit apporter de la valeur et de la réactivité. Il n’y a pas que l’informatique dans nombre d’entreprises. Les différents services ne se parlent pas et conçoivent leurs projets dans leur coin sans réfléchir de manière globale. Pourtant, tout cela se résume à des processus. En informatique, c’est pareil. Il faut y ajouter de l’automatisation pour pouvoir justement amener le dynamisme nécessaire et répondre aux besoins des utilisateurs. »
La plupart des éditeurs du secteur font le même constat. Ainsi, du simple monitoring ou de la supervision des matériels et des réseaux informatiques, les outils d’administration de système souhaitent prendre en charge, à la fois l’organisation, la dévolution des rôles et des responsabilités, les ressources informatiques (matériels et logiciels), la maîtrise financière des services informatiques. Cette vision globale s’appuie à la fois sur des méthodes et des outils.
L’une des principales tendances est l’intégration directement dans les produits de série de processus adaptables issus de différents référentiels de bonnes pratiques d’exploitation des services informatiques. Ce concept est d’ailleurs une création des cabinets de conseils. Mais l’approche fait florès !


Des méthodes qui structurent les produits

Elle s’est tellement imposée, que les logiciels se structurent désormais selon ces référentiels. Au-dessus de leurs outils de supervision « classiques », les outils s’orientent vers une suite de modules prenant en charge les différents points présents dans les livres du référentiel ITIL, une gestion des processus du service informatique. Le tout étant marqué par des pointeurs qui renvoient vers un référentiel unique.
Ce référentiel unique consiste en une base de données enregistrant les « configuration items », les composants de l’infrastructure informatique de toute l’organisation et des actifs associés, les éléments de configuration. Ce référentiel conserve aussi les liens et dépendances existant entre ces différents items permettant de réaliser des études d’impact lors des demandes de changements ou des recherches des causes de problèmes.
Pour alimenter ce référentiel, les outils d’administration de système s’accompagnent d’instruments de découvertes automatiques des ressources. Ces outils deviennent puissants et collectent à la fois les informations sur les matériels, mais aussi les applications et leur utilisation en cartographiant les différentes dépendances et usages par les utilisateurs. Cette reconnaissance automatique des ressources autorise aussi une mise à jour rapide des ressources présentes dans l’entreprise, une condition sine qua non de la démarche. Elle se réalise par différents moyens. La tendance est de procéder sans agents sur les postes clients ou les serveurs ou par la récupération de trappes SNMP.
Cette cartographie prend en compte les environnements virtuels, que ce soit Virtual Server de Microsoft, VMware ou les outils de virtualisation de stockage ou d’environnements. Les clusters sont aussi reconnus. Ainsi, le produit d’IBM gère les clusters sous AIX et Microsoft.
p. 2
Réduire
Les produits devraient être prêts pour la fin du printemps sur le plan commercial.
Les caractéristiques de cette base de données dépendent largement de l’importance en volume des éléments à y placer. La plupart des éditeurs s’appuient sur la base de données « maison ». Computer Associates a fait le choix d’Ingres mais vise à ouvrir le système vers d’autres systèmes de SGBD. IBM s’appuie sur DB2 mais n’en fait pas un choix obligatoire. Pour Openview, la question se pose entre la base de données actuelle et celle acquise chez Peregrine.
Cette vision centralisatrice respecte les principes des référentiels de bonnes pratiques. Elle est cependant difficile à mettre en place du fait de l’existant et de la multiplication des bases de données répertoriant les ressources présentes. BMC a opté pour une approche différente avec un système de base fédérée. Regroupant en un point unique les pointeurs de données provenant de bases différentes, la base centrale joue le rôle de la vestale de l’antiquité et conserve les informations à jour et la cohérence des éléments de configuration sans pour cela annexer toutes les données.
Des acteurs d’autres secteurs comme ceux de la gestion de parc, ou comme Quest Software qui s’est illustré dans l’administration des bases de données investissent ce terrain, souvent de manière plus limitée en se plaçant sur certains environnements (Java par exemple) ou sur l’administration complète du poste client et de l’utilisateur.


Des modules de plus en plus nombreux

La structuration des produits selon les référentiels précités est aussi visible dans les modules fonctionnels. La plupart suivent les huit livres du référentiel ITIL (Information Technology Infrastructure Library, lire article pages suivantes) et apportent ainsi d’importantes nouveautés fonctionnelles dans ces suites. Les principales fonctions prises en charge sont :

• la gestion des configurations ;
• le centre de services ;
• la gestion des incidents ;
• la gestion des problèmes ;
• la gestion des changements ;
• la gestion des mises en production ;
• la gestion des niveaux de services ;
• la gestion des capacités ;
• la gestion financière des services informatiques ;
• la gestion de la disponibilité et de la continuité de service.

Viennent s’ajouter la gestion de la sécurité, avec notamment la gestion des identités, et la gestion – plus classique – de l’infrastructure en y ajoutant par exemple les éléments comme l’alimentation électrique, la protection incendie, la sécurité d’accès.
La plupart des logiciels d’administration de système sur le marché ne contiennent pas originellement toutes ces fonctions. Pour couvrir les besoins, les éditeurs ont le choix classique entre le développement du module en interne ou le rachat d’une technologie existante. Ce fait explique la vague d’acquisitions que réalisent les ténors du marché que ce soit Computer Associates, HP, IBM ou BMC. Des acteurs plus modestes, comme Quest Software, se lancent aussi dans ce tourbillon capitalistique. La liste exhaustive de toutes les opérations qui se sont effectuées serait trop longue et ne ferait pas avancer le débat.
Le champ fonctionnel embrassé devient global pour proposer une administration complète de toutes les ressources informatiques présentes de l’entreprise, et ce, de bout en bout, du poste client et de l’utilisateur jusqu’à l’impact financier que peut avoir une indisponibilité de service ou changement dans les ressources informatiques (matériels et logiciels).
L’idée n’est pas de proposer l’ensemble aux clients, mais d’autoriser le choix des modules permettant de se placer dans une spirale d’amélioration suivant les besoins des entreprises. En effet, certaines auront déjà mis en place des fonctions et chercheront à compléter la solution existante. Les éditeurs sont donc devenus plus humbles et ne proposent plus de « frameworks » complets imposant un verrouillage complet du client sur leur plate-forme.
L’utilisation de nouveaux standards, comme ceux des Web services ou d’EAI, leur permet aussi d’alléger la question de l’intégration entre les différents outils. Ce n’est souvent qu’un constat de fait. Il est rare qu’une entreprise ne soit dotée que d’une solution unique provenant d’un seul éditeur, particulièrement entre la supervision des matériels ou des logiciels et les réseaux.
À terme, il est fort possible d’assister à une « progicialisation » complète de la fonction informatique avec ces outils. L’ajout d’outils de gestion de portefeuille de projet avec le rachat de Niku par Computer Associates ou les liens entre Tivoli et Rational dans la gamme d’IBM, étendent encore les liens des solutions d’administration en amont vers les équipes de développement et en aval vers les équipes d’exploitation pour créer un cycle itératif d’amélioration sur tout le cycle de vie des ressources de l’informatique. Cette première étape devrait avoir comme conséquence logique des extensions vers le concept plus large de gouvernance avec pour principale fonction l’alignement de l’informatique avec les objectifs stratégiques de l’entreprise. Ce niveau d’abstraction supérieur aura une approche plus globale que le niveau actuel essayant d’aligner l’informatique avec les besoins des services métiers des entreprises en fournissant un service de qualité aux utilisateurs.


Une forte interdépendance entre les différentes fonctions

Si les suites sont modulaires, les gains s’engrangent si les solutions mises en place permettent un plan d’ensemble avec une grande cohérence. En cela, les différents modules sont très interdépendants du fait de leur liaison par des processus. L’exemple de la résolution d’un incident est ainsi éclairant. Un incident est remonté par un utilisateur vers le help desk qui crée un ticket. Le module de gestion des incidents va chercher les informations dans la CMDB (la base de configuration) pour rechercher les éléments de la configuration du poste et des applications présentes. Une recherche est effectuée dans la base d’incidents pour voir si celui-ci a déjà été résolu ou non. On résout ensuite l’incident. Une évaluation est alors effectuée pour voir si l’incident nécessite un changement, une remise à niveau, une solution de contournement. Le processus est alors le suivant : identifier, isoler, diagnostiquer, agir et évaluer. Ce processus se déroule à travers les différents modules de la suite et assure la cohérence de travail. L’automatisation est la possibilité d’industrialiser ce cheminement des tâches. Ces processus sont modélisés et correspondent au modus operandi des opérations et des procédures à appliquer selon les cas.
p. 3
Réduire
Dans le domaine, les produits Tivoli s’inspirent d’outils maisons. À l’instar de la méthode mise en place avec les modèles UML dans le processus de développement d’application dans les outils Rational, fondation de la méthode RUP (Rational Unified Process), les logiciels Tivoli proposent le TUP (Tivoli Unified Process). Comme nous le montrions au début de notre article, des processus, toujours des processus… Les éditeurs sont cependant réticents à verticaliser ces processus et s’arrêtent à la fourniture de processus génériques, dont certains sont orientés métier.


Une démocratisation vers les PME

Les différentes fonctions décrites plus haut sont cependant actuellement l’apanage des grands comptes. Mais dans ces groupes, les politiques informatiques se doivent d’être appliquées partout, même dans les centres plus petits ou déportés. De la même manière, les services informatiques s‘étendent de plus en plus à l’extérieur de l’entreprise. Ces liaisons doivent être prises en compte. C’est pourquoi les éditeurs proposent des versions packagées pour les PME.
Il n’est pas difficile d’identifier ces versions, elles portent actuellement toutes le nom d’Express, quel que soit l’éditeur – aujourd’hui Tivoli et BMC. Serge Bonnaud, chez Tivoli, les décrit comme des versions visant de 5 à 10 serveurs dans un contexte d’entreprise qui cherche un retour sur investissement immédiat et qui ne sont pas touchées par des questions de conformité complexes. On le voit, le produit ne concerne pas toutes les PME de France et de Navarre ! « From scratch », le CD de démo autorise une installation en 20 minutes.


Un bon coût ?

La philosophie ultime de ces suites est cependant d’avoir une approche financière précise pour réduire le coût des services informatiques et leur permettre de justifier les dépenses et les moyens déployés en regard des services attendus par les clients internes ou externes de l’entreprise. Il est étonnant que cet effort soit seulement demandé aux services informatiques. Il ne semble pas que des services comme le marketing ou la recherche et développement soient forcés de justifier ainsi de la bonne marche de leurs procédures. Quant aux budgets !
p. 4
Réduire
ITIL en bref


L’intégration d’ensembles de bonnes pratiques représente une tendance forte des outils d’administration de système. Le plus utilisé est ITIL (Information Technology Infrastructure Library). Recueil des « meilleures pratiques », ce référentiel utilise différentes méthodes pour répondre aux besoins de l’administration des systèmes d’information. Présentation, rapide, d’ITIL et des réponses qu’il apporte dans le contexte de l’entreprise.

D’origine britannique, où il a été largement diffusé, ITIL est un référentiel des meilleures pratiques de mise en œuvre et de gestion des services informatiques et télécoms. Il connaît aujourd’hui un développement rapide en France où il est considéré comme un véhicule adapté à la création de valeur des services informatiques. Son succès a débouché sur une normalisation britannique (BS 15000). Une norme ISO, internationale, devrait rapidement être mise en place.
Il se fonde sur des principes forts, comme l’orientation client, l’industrialisation des services et l’optimisation des ressources pour guider la transformation des directions informatiques sur les plans organisationnels, culturels et techniques afin de délivrer des services dont la qualité, la productivité et la maîtrise des coûts soient conformes aux attentes de l’entreprise.
Le référentiel est composé de huit livres.
Le premier de ces principes prend en compte la perspective métier et permet de mieux comprendre les enjeux d’une gestion des services pour l’entreprise. Cette notion de service est par ailleurs diverse et doit se concevoir avec différents sens. Tout d’abord, il s’entend au sens d’une unité organisationnelle de l’entreprise : le service informatique. La deuxième vision est liée au système d’information et au service rendu par ce système. Il s’agit là d’une ressource dont on peut profiter en devenant « client » de ce service : la messagerie, un ERP. La dernière idée correspond à la prestation, l’aide ou l’assistance que l’utilisateur peut attendre comme dans l’expression « rendre service ».
Le second principe d’ITIL couvre la fourniture des services et s’intéresse aux processus nécessaires à la conception et à la fourniture des services. Vient ensuite le soutien de ces services qui concerne les processus nécessaires à la maintenance et au support de ces services. La gestion de l’infrastructure informatique et télécoms. La gestion des applications couvre les interactions de la gestion des applications et la gestion des services. La gestion de la sécurité est un plan couvert par le référentiel ainsi que la gestion des actifs logiciels sur l’ensemble de leur cycle de vie. Le dernier livre concerne la mise en œuvre de la gestion des services et le plan de mise en œuvre.
Concrètement, la mise en place de ce référentiel passe par la structuration de processus entre ces différentes composantes. Toute une partie du référentiel traite de ce domaine. À première vue, on peut percevoir ITIL comme un monstre de bureaucratie avec les inconvénients inhérents à ce genre d’outils. Il faut donc savoir rester pragmatique lors d’une telle mise en œuvre et n’utiliser que ce qui peut être intéressant pour l’entreprise dans une optique d’amélioration, et non prendre le référentiel comme parole d’évangile ! Le meilleur moyen d’éviter le travers est de mettre en place des métriques issues de l’activité économique de l’entreprise en rapport avec l’amélioration de la qualité.
Les processus décrits sont tous en relation et vont de la gestion de l’infrastructure à la gestion des configurations en passant par les services, les incidents…


Qu’attendre d’ITIL ?

Un projet de type ITIL n’est pas sans conséquence. Un projet mené à bien compensera largement les désagréments possibles, comme l’augmentation du fait de la mise en place de nouveaux processus ou d’un rejet du changement envisagé. L’un des buts est tout de même de faire évoluer le service informatique, comme un vecteur de profits et non plus comme un simple centre de coûts.
Les bénéfices les plus souvent attendus sont de plusieurs ordres. Le premier est d’accroître l’accessibilité et d’améliorer la perception des services fournis aux utilisateurs par un point de contact unique. En l’associant à différents processus comme la gestion des incidents, il améliore la qualité et la rapidité des réponses apportées aux requêtes et aux plaintes des utilisateurs.
Des gains de qualité sont obtenus par une approche cohérente et systématique de tous les processus et la formalisation des rôles et des responsabilités de chacun.
D’un point de vue financier, ITIL permet un meilleur contrôle par l’identification des coûts liés à la gestion des services. Associés à l’expression des besoins des utilisateurs, cette identification permet la justification du coût des services en les alignant sur les demandes. Cette mise ne œuvre permet normalement d’obtenir une baisse du coût de possession total des ressources informatiques et donc des réductions de coûts.


Pour aller plus loin
couv-itil12167_Copier5.gifITIL, pour un service informatique optimal
Christian Dumont, Eyrolles, 39 euros, 350 pages.
S’il existe une documentation importante sur le Net (mais il n’est pas toujours facile d’y retrouver ses petits), il n’y avait pas encore d’ouvrage réalisant une synthèse de ce référentiel de bonnes pratiques permettant de se préparer à un cycle de certification. Désormais, c’est chose faite avec l’ouvrage « ITIL pour un service informatique optimal », de Christophe Dumont, consultant de son état. Son ouvrage passe en revue à la fois les principales parties du référentiel, des cas de mise en œuvre, ainsi qu’un examen blanc, en annexe pour passer une certification sur ITIL. Couvrant de nombreux aspects sans être trop assommant, l’ouvrage est plus qu’une introduction à ITIL. Pour tous ceux voulant approfondir ou se lancer dans un tel projet en connaissance de cause.



p. 5
Réduire
Mettez en place votre CMDB !

La CMDB (Configuration Management Data Base) est le point névralgique des outils actuels d’administration de système. Sa mise en œuvre n’est pas aussi simple qu’il y paraît. Une démarche appropriée est nécessaire pour qu’elle porte ses fruits. Tour d’horizon pratique d’un projet de mise en place d’un tel type de référentiel.

une-CMDB-fédérée13055_Copi6.gifL’architecture d’une solution de CMDB étendue ou fédérée.
La CMDB est le concept fondamental de la gestion des configurations. Elle comprend une ou des bases plus intégrées, détaillant les composants d’infrastructures informatiques de toute l’organisation et d’autres actifs associés, les éléments de configurations ou CI (configuration ou component Items). Chaque fois qu’un changement est apporté à l’infrastructure, les enregistrements de configuration associée doivent être mis à jour dans la CMDB. Elle doit être accessible à l’équipe de support pour la résolution des incidents et les problèmes.
Sur cette mise en place, la planification et la rédaction du cahier des charges sont particulièrement importantes. C’est à ce moment que se décide l’ampleur que l’on souhaite donner à la base de connaissances du système d’information. La principale implication concerne la granularité des CI. C’est aussi à ce moment que les procédures et les rôles de chacun sont édictés. À ce niveau, il ne faut pas se fixer des objectifs hors d’atteinte ou difficiles à suivre. Il faut particulièrement faire attention au niveau de granularité des CI. Christophe Gagin, chez BMC, est encore plus direct : « Il vaut mieux y placer ce que l’on est capable de gérer ou de contrôler. » Le niveau de granularité doit correspondre à ce qui apporte de l’information aux différents processus de la gestion des services.
Une fois ces données enregistrées, il est conseillé de procéder à des contrôles lors des interventions sur les équipements concernés ou lors de la résolution d’incidents pour valider l’exactitude des informations en regard des retours du terrain.
Il faut ensuite mettre en place un échéancier de mis en place. La solution doit supporter au moins l’importation de fichiers séparés ou de bases locales sans avoir à ressaisir les informations. Cette approche fédérée prend actuellement le pas sur les bases de données isolées, intégrées ou centralisées. Les principaux bénéfices de cette approche fédérée sont la focalisation sur ses fonctionnalités, sur les CI et les relations entre eux. La charge de travail supplémentaire pour fournir ces fonctionnalités n’est pas perdue sur des données dont on n’a pas besoin.
Il n’est pas nécessaire de modifier la CMDB pour contenir les données reliées ni d’entreprendre de migrations ou d’intégrations de données. Enfin, vous gardez la capacité d’être relié à des bases de données externes. Concrètement, des pointeurs seront stockés dans la CMDB permettant de rapidement rapatrier les éléments pertinents lors des requêtes sur la base.


Ce que l’on doit attendre d’une mise en œuvre

L’objectif est de fournir des informations précises sur les CI aux autres processus de gestion des services ; une définition trop détaillée des CI risque d’entraîner du travail inutile et de ne pas correspondre aux besoins de l’entreprise.
Il est important que la direction soit impliquée pour ne pas entraîner d’effet de lassitude des équipes de mise en œuvre. Le principal écueil à éviter provient de l’incompatibilité entre le contrôle des configurations et l’organisation de l’entreprise, en particulier lorsque les utilisateurs peuvent commander eux-mêmes leurs matériels ou leurs logiciels, puis en faire l’installation, empêchant ainsi le contrôle de l’infrastructure et la constitution d’une base unique disposant de toutes les informations sur les éléments qui la constituent. Il est important également de sécuriser les accès et de les contrôler pour éviter que tout un chacun écrive dans la base.
Comme tout projet concernant une base de données, il ne suffit pas de l’installer, il faut ensuite réaliser un effort permanent pour faire vivre la base et la gérer. L’exactitude des données conservées est encore plus critique que dans d’autres projets. Vous devez prévoir aussi des contrôles de conformité avec l’existant, des audits réguliers. Dans son ouvrage sur ITIL, Christophe Dumont, consultant, propose d’ailleurs de mettre en place une équipe dédiée.
p. 6
Réduire
Les éléments présents dans une CMDB


Gestion des incidents

• Remplir les champs automatiquement
• Fournir l’état des Configurations Items
• Fournir les informations de niveau d’urgence permettant de fixer les priorités
• Montrer le niveau d’impact en fonction de la priorité
• Fournir les données permettant l’escalade de l’incident

Gestion des problèmes

• Remplir automatiquement les tickets de problème
• Fournir l’état des Configurations Items
• Fournir des données d’analyse de risque permettant de fixer les priorités
• Fournir les données d’appartenance et de responsabilité
• Montrer les informations pour une analyse proactive des problèmes

Gestion des changements

• Montrer les CI qui sont dans le processus de gestion du changement
• Fournir des données d’analyse de risque
• Montrer quels autres composants pourraient être affectés par un changement
• Permettre la communication vers les utilisateurs concernés par un changement en attente
• Refléter le nouvel état immédiatement après le changement

Gestion des versions

• Suivre l’état du déploiement
• Conserver les détails des versions pour les logiciels
• Vérifier les configurations testées
• Fournir les données pour l’impact financier des mises en production

Service Desk

Les Service Desk interagit avec la CMDB pour effectuer les actions suivantes :

• Identifier les Configuration Items manquants
• Remplir automatiquement les champs quand le Service Desk enregistre un incident
• Notifier de façon proactive les utilisateurs
• Fournir un feedback au client sur les changements dans la CMDB
• Aider à la Gestion des Configurations avec l’audit de la CMDB

Gestion des niveaux de services

• Obliger à ce que tous les composants du SLA soient renseignés
• Permettre de faire référence à des SLA
• Fournir un point de référence pour les contrats sous-jacents
• Montrer les appartenances client
• Servir de composant vital pour le Programme d’Amélioration de Service

Gestion des capacités

• Permettre à chaque CI d’être un candidat potentiel à la Gestion de la Capacité
• Fournir des ressources pour la modélisation de la capacité
• Montrer les CI liés dans un groupement de capacité
• Fournir des données vitales pour l’analyse de risque
• Réduire le temps de résolution des incidents et problèmes liés à de la capacité

Gestion de la disponibilité

• Fournir des données vitales à l’impact métier
• Appliquer la Gestion de la Disponibilité à tous les CI contenus dans la CMDB
• Montrer les composants liés d’une « chaîne de disponibilité »
• Fournir des données d’analyse de risque
• Aider à isoler quels CI sont la source d’indisponibilité

Gestion financière

• Montrer quels CI sont utilisés pour fournir le service aux clients
• Fournir des éléments de justification en cas de pénalité
• Fournir des informations importantes de gouvernance
• Fournir une source vitale pour l’audit de l’inventaire et des actifs
• Servir d’outil important pour les calculs financiers (ex. budgets et prévisions)

Gestion de la continuité de service

• Fournir un point démarrage contenant des données vitales de reprise
• Indiquer les modifications en termes de continuité que pourrait avoir le changement d’état d’un CI, comme la montée en priorité d’un système changeant de fonction
• Identifier les coupures potentielles de continuité
• Fournir des éléments de feedback aux clients pendant les pannes
• Montrer l’état des CI quand ils deviennent actifs après une panne

Copyright l'Informaticien, tous droits réservés
p. 1
Réduire
copyright l'Informaticien, tous droits réservés

Poste client

Le desktop version Novell

C’est lors du Cebit, à Hanovre, que Novell a dévoilé sa nouvelle génération de logiciels pour le poste client. Cette nouvelle distribution de Suse Desktop se veut très innovante. Guy Lunardi, chef de produit Desktop chez Novell, de préciser : « Nous avons surtout voulu apporter à cette distribution une vision et un travail profond sur l’utilisation et la perception utilisateur. Le but était de fournir des fonctions complètes mais utilisées, et de rendre véritablement toutes les parties fonctionnelles. L’idée était de rompre avec la vision du poste client citoyen de deuxième classe dans l’entreprise. » Pour preuve, plus de 1 500 tests d’utilisation ont été effectués avant la sortie de la version.
De cette vision, la distribution de Novell essaie de concilier le meilleur des deux mondes Microsoft et Open Source, avec des fonctions très intéressantes comme la génération gratuite de PDF, un système proche de ePhoto et surtout un moteur d’indexation au cœur de l’OS, équivalent au célèbre Spotlight.
Pour l’interface, l’éditeur a choisi… de ne pas choisir ! GNOME et KDE sont proposés même si le cœur de Novell penche plutôt pour GNOME. La suite comprend Open Office mais supportera la compatibilité avec les fichiers de Microsoft.
Anecdotique, le côté ludique n’a pas été oublié – enfin ! Il existe environ 65 modèles de Solitaire. Cette version semble lever véritablement tous les obstacles pour que le PC Linux prenne toute sa place dans l’entreprise !


Matériel
Lenovo présente sa nouvelle gamme

Lenovo-C100-110396_Copier5.gifLe nouveau portable de Lenovo.
Visant les PME, Lenovo, le constructeur chinois de micro-ordinateurs et de PC portables, a mis sur le marché la première vague de ses modèles au niveau mondial. Si les modèles Thinkpad sont conservés pour les grandes entreprises et le haut de gamme, les séries présentées se rapprochent des configurations et des prix moyens du marché pour correspondre aux besoins des petites entreprises. Ayant recours exclusivement à un réseau de partenaires, le constructeur mise sur ce canal pour permettre une plus grande proximité avec les clients potentiels. Les machines intègrent la suite Lenovo Care qui permet la restauration du système en un clic, de diagnostiquer, d’obtenir de l’aide et de restaurer le système après une panne logicielle sérieuse due à des virus ou logiciels malveillants. Des mises à jour automatiques téléchargent et installent de manière autonome les updates stratégiques sur la base d’un calendrier fixé par l’utilisateur, pour garantir le fonctionnement optimal du système. Une connectivité simplifiée facilite l’installation filaire ou sans fil à domicile, au bureau ou en déplacement.


Hébergement
OVH lance des offres « débutants »

L’hébergeur de sites Internet sur des serveurs mutualisés lance des offres à destination des débutants ou des entreprises ayant besoin de beaucoup d’espace Web sans exigence de trafic.
Ces offres répondent au doux nom de Start et proposent jusqu’à 10 Go d’espace et 4 Go de trafic par mois. Les prix s’échelonnent de 0,49 à 1,99 euro au méga-octet suivant la formule choisie, pour démarrer en douceur avec des sites à bas prix. Un support en ligne et par téléphone accompagnent les clients de ces offres pour la gestion de leur consommation.
  

Sécurité
Promisec verrouille le P2P

Promisec, éditeur de solutions d’administration de la sécurité sans agent, propose sur le marché français sa solution Spectator Professional qui autorise l’élimination de toutes les applications P2P non autorisées dans les réseaux informatiques d’entreprises. La solution contrôle l’utilisation de tous types d’applications P2P, y compris la téléphonie sur Internet, les messageries instantanées, le partage de contenu. Dès qu’une application de type P2P est détectée, la solution peut la désinstaller. Spectator Professional analyse à distance le registre de l’application concernée et peut immédiatement l’éliminer. « Va pas faire bon télécharger au bureau dans les semaines à venir ! »
p. 2
Réduire
Bull-NS5005-opened11683_Co6.gifLe nouveau Novascale de Bull vise les grandes entreprises.
Matériel

Nouvelle génération de serveur Novascale

Bull met sur le marché la deuxième génération de ses serveurs NovaScale 5005. Ces derniers supportent les nouvelles générations des processeurs Intel Itanium 2. Optimisés pour les applications de gestion des grandes entreprises par leur puissance et leur débit d’entrées / sorties, les serveurs sont aussi désignés pour des calculs de haute performance.
Compacts et modulaires, les serveurs s’appuient sur une architecture SMP. Ils supportent des possibilités de partitionnement et de virtualisation. Disponibles dès maintenant, les serveurs fonctionnent sous Linux ou Windows.


Mobilité
Telelogos réveille vos terminaux mobiles

Spécialiste de la synchronisation et de l’administration à distance des terminaux mobiles, Telelogos a développé une technologie de réveil des terminaux distants utilisant les réseaux mobiles (GPRS, Edge et UMTS). Les réseaux cellulaires de données fonctionnent sur la base de l’établissement d’un lien ne pouvant être initié que par le terminal mobile. Celui-ci est joignable par son adresse IP qu’il obtient lors de sa première connexion. Cette adresse dynamique fournie par l’opérateur est temporaire en cas d’inactivité, elle disparaît à partir d’un certain délai. Pour palier cette restriction, l’éditeur a intégré à sa suite Mediacontact, une technologie permettant au serveur d’envoyer une commande au terminal distant sans nécessiter l’établissement d’une connexion réseau, soit par SMS soit par un appel sur des clients Windows mobile ou XP. Le serveur peut ainsi déclencher une action sur le terminal distant non connecté comme le lancement d’un processus. Il est ainsi possible de réaliser des push de données ou de s’appliquer à la sécurisation des données en effaçant à distance les données présentes sur le terminal en cas de perte ou de vol, même si la liaison réseau est inexistante.


Stockage
Pillar Data : un challenger ambitieux

Larry Ellison n’est pas connu pour réaliser beaucoup d’erreurs dans ses placements. Son fonds d’investissement Tako Venture s’est placé sur Pillar Data, un nouvel entrant sur les solutions de stockage. Les solutions proposées par l’éditeur reprennent les grandes tendances du moment : structure de stockage hiérarchisé avec différents niveaux de stockage, alliance de SAN et de NAS dans un même matériel, large appel à la virtualisation. Se plaçant sur le marché comme une solution « tout en un », Pillar Data se veut agressif sur les prix en liant matériel et logiciel.
Autre atout de la solution, une interface simple d’administration pour les principales fonctions d’administration de stockage. Enfin, le système utilise les possibilités de « short track » sur le stockage des données sur les disques, procédé qui permet de placer les blocs de données sur les disques durs selon leurs niveaux de priorité. Le sens du détail n’a donc pas été oublié. Un futur grand du stockage ?


Développement
Nouveau « workshop » chez BEA

Issu du rachat de M7, le « workshop 3.0 » nouveau est arrivé chez BEA. S’appuyant sur Eclipse, cet atelier de développement intégré contient un moteur de persistance pour les EJB 3.0, nouveauté dans l’environnement Java, conçue pour simplifier le développement de nouvelles API de persistance POJO pour le mapping objet / relationnel. L’atelier s’ouvre de plus sur l’environnement Spring Open Source.
  
Webdev soutient Ajax

La version 10 de Webdev supporte nativement la technologie Ajax. Il devient ainsi possible de n’envoyer dans le navigateur de l’internaute que les données modifiées sur une page. Le développeur n’a aucun travail à réaliser. Il lui suffit d’appuyer sur un bouton pour activer la fonction Ajax sur un traitement. Cette fonction est sécurisée pour éviter les attaques par détournement de session.

copyright l'Informaticien, tous droits réservés
p. 1
Réduire
Le client léger décolle !
par Henri Gillares-Caillat - copyright l'Informaticien, tous droits réservés

WintermSseries6965_Copier5.gifLe client léger connaît de fortes progressions dans les environnements d’entreprise.
Après une longue période d’hésitation, le marché du terminal client léger se fraye une place significative dans les entreprises. Invitée à réduire ses coûts d’administration tout en cédant à la mode sécuritaire, l’industrie se tourne à son tour vers le client léger. Démarche qui nécessite une adaptation des mentalités et un réajustement complet du réseau.



Le client léger ne constitue pas un concept nouveau, avec lui nous revenons en quelque sorte à l’architecture centralisée des années 80-90, tout en bénéficiant de l’apport et de la convivialité du PC. D’une architecture réseau client-serveur où les applications son massivement déportées sur le poste client, l’informatique client léger recentralise toutes les applications et données sur un serveur. On y accède par un terminal « client léger » qui est le successeur des terminaux des ordinateurs centraux d’antan avec les capacités graphiques du PC. Par conséquent, vu du côté de l’entreprise et de l’administrateur, ils offrent tous les avantages d’un terminal sans les inconvénients d’un PC.
Cette « nouvelle » méthode d’organisation du travail rencontre de plus en plus d’échos dans les entreprises. Actuellement, c’est un marché qui progresse fortement. Les derniers chiffres IDC (monde) 2005 attestent d’une augmentation par rapport à 2004 de 21 % au premier trimestre, de 46,7 % et de 43 % sur les deuxième et troisième trimestress. Le dernier trimestre de l’année bat des records avec 52,3 %, et la moyenne s’établit donc autour de 41 %. Cependant, précise David Rozzio, chef produit client desktop chez HP, « On est sur des parts de marché, pour le client léger, qui ne représentent pas 50 % du business PC. Cela pèse entre 5 et 10 %. Et c’est plus proche de cinq que de 10 ! Nous avons beaucoup de grands comptes et un business centré sur des marchés verticaux comme les experts-comptables, les notaires, etc. » La marge de progression est donc forte.


Une durée de vie record

Globalement, le client léger se présente sous la forme d’une carte électronique simplifiée dont la durée de vie est deux fois supérieure à celle d’un PC. Équipé d’un système d’exploitation de type Windows CE ou Windows NT Embarqué, de 16 Mo de mémoire Ram et 16 Mo de mémoire flash en entrée de gamme, le terminal client léger intègre les protocoles ICA de Citrix et RDP de Microsoft, qui lui permettent de se connecter à des serveurs d’applications centralisés en mode Terminal Server. «  Pour la majorité des utilisateurs qui accèdent à un nombre limité d’applications bureautiques ou métier, il peut très bien remplacer un PC », poursuit David Rozzio. Techniquement, le client léger apporte la simplicité. Le remplacement d’un PC par un client léger augmente la durée de vie du parc. Un matériel plus « brut de fonderie » est en théoriquement plus robuste. Avec le temps, il a rapidement évolué pour être décliné en trois grandes familles.

• Le terminal simple, puissant ou flexible. La première catégorie offre un rapport performances/prix intéressant. Elle constitue un bon choix pour accéder à des applications Windows fonctionnant en central sur un serveur Windows/Terminal Services ou Citrix MetaFrame.
• La seconde catégorie reprend les possibilités de la première et intègre directement un navigateur Internet en local. Elle prend en charge, par exemple, chez Wyse, Citrix Interface Web – une couche Citrix qui supporte des émulations d’environnements Web et les émulations texte. On s’en équipera pour accéder à des applications Windows fonctionnant sur un serveur Citrix MetaFrame ou Windows / Terminal Services, des pages Web HTML simples qui peuvent utiliser un Javascript, une machine virtuelle Java, ou Windows Media Player, des applications texte visualisées sur les écrans verts.
• Enfin, les terminaux client léger flexibles, qui peuvent fonctionner avec le système d’exploitation Microsoft Windows NT Embedded, XP Embedded ou Linux. Ils permettent d’intégrer les applications clients dans la mémoire flash, tout en reprenant les fonctionnalités des terminaux simples. Ils offrent des performances et fonctionnalités lors d’une indisponibilité du réseau ou du serveur. Le navigateur Internet Explorer peut être installé en local tout comme la gestion étendue de périphériques locaux (tout périphérique équipé d’un pilote NT/XP), ainsi que, bien sûr, l’accès aux applications résidant sur le serveur. Pour pouvoir utiliser Internet de façon performante, ils peuvent comporter des compléments de navigateur, tels que Flash, Shockwave et Real Player. En outre, comme le souligne Laurent Charreyron – VP Europe du sud chez Wyse –, « Avec ce type de terminal léger, on peut avoir accès à des applications personnalisées, comme un logiciel pour lecteur de codes barres gravé dans la mémoire flash et fonctionnant en local (comme un PC). » Cependant, est-on toujours en présence d’un terminal léger ou d’un PC « léger » déguisé ?
p. 2
Réduire
ecran10760_Copier6.gifPlatine Terminal, de Axel.
Le client léger haut de gamme… une hérésie ?

Les grands intervenants dans le domaine du client léger côté matériel se nomment Wyse avec, selon le Butler Group, spécialisé en client léger, en 2004-2005, près de 39 % du marché suivi par Neoware, 16 %, HP, 11,5 % et autres 33,5 % ! Ces 33 % restant permettent tout de même à de nombreuses sociétés de tirer leur épingle du jeu, comme Axel, fabricant français de terminaux. Venue du monde Unix dans les années 90, cette société trouve une ouverture vers les AS/400 avec un émulateur 5250 et naturellement glisse vers le client léger avec une compatibilité RDP-ICA. Contrairement à ses concurrents Axel tient le « cap du terminal » en offrant des produits de base simples. « Nous ne cherchons pas à transformer un client léger en PC », martèle Georges Cottin son P-DG. Pour lui, le client léger « haut de gamme » avec de nombreuses fonctionnalités supplémentaires est une hérésie. Si l’on veut unifier valablement son parc poursuit-il, « Il ne faut pas se retrouver avec des versions de Windows CE trop différentes et, surtout, ne pas chercher à s’équiper de machines à nouveau ouvertes avec, par exemple, des clefs USB. »


Le terminal client léger indissociable de ses couches d’accès

Étroitement liées, Metaframe de Citrix et Terminal Server de Microsoft se partagent le marché véhicule des applications clients légers. Principal acteur du marché, Citrix a créé, à l´origine pour Microsoft, une architecture multi-utilisateur, équivalente du Xwindow d´Unix. Le protocole développé par Citrix, ICA (Independant Computing Architecture), permet de distinguer le traitement des données de leur présentation. Cette technologie propriétaire est désormais adaptée à tous les systèmes d´exploitation et déployée par de nombreux OEM et constructeurs informatiques. Microsoft, à la fois partenaire et concurrent de Citrix, a également lancé sa propre solution Windows Terminal Server avec le protocole RDP (Remote Desktop Protocol). Cependant, Pascal Ozanne, le directeur marketing Europe de Citrix, préfère parler de « technologies d’accès » : « Le client léger n’existe plus pour nous depuis bien longtemps ! Nous avons à peu près, aujourd’hui 80 % de parts de marché. » Néanmoins, malgré cette domination, des outsiders tirent leur épingle du jeu, comme Systancia qui joue la carte du RDP et dont le cœur de cible est la PME-PMI. M. Maranzana, son P-DG, milite en ce sens : « Notre produit a été pensé pour répondre aux attentes des PME-PMI. Une PME n’a pas forcément en son sein un spécialiste des environnements clients légers, elle a donc besoin d’un outil d’administration très simple. Simple à installer, d’une maintenance facile. Notre produit correspond exactement à ce cahier des charges. »


À quel type d’applications peut-on accéder avec un client léger ?
Actuellement, les interfaces applicatives se multiplient. Windows, le Web et les émulations textes. Le client léger peut aisément accéder à toutes ces interfaces, immédiatement après avoir déballé de son carton le terminal.
1 Applications Windows standard Si l’on veut donner aux utilisateurs l’accès aux applications Windows standard, on peut exploiter de façon centralisée des applications de PC de bureau sur un serveur « Mainframe » Windows équipé d’un système d’exploitation Terminal / serveur comme Microsoft Windows / Terminal Services ou Citrix MetaFrame. C’est actuellement l’architecture la plus courante pour les clients légers.
2 Applications Web utilisant HTML/XML ou Java Avec l’informatique basée sur le Web, les applications sont déployées au moyen d’un langage HTML (c’est-à-dire HTML, XML ou Dynamic HTML), Java ou un mélange des deux. Les applications et les données résident sur des serveurs centraux connectés au Web. On peut ensuite utiliser des navigateurs Web pour accéder aux applications. Cette forme d’informatique connaît actuellement une croissance extrêmement rapide avec plus de 75 % des applications d’entreprise, telles que les ERP, disponibles avec des interfaces de navigation.
3 Applications Terminaux texte Ce type d’informatique centralisée sur le serveur remonte aux origines même de l’informatique. Elle se réfère aux applications anciennes sur ordinateur central, mini-ordinateur ou Unix, avec exploitation centralisée et des terminaux travaillant en mode texte ASCII. Cette forme d’informatique basée sur serveur est en déclin et elle est remplacée par les architectures Terminal Windows / serveur ou sur le Web.


p. 3
Réduire
Schema-infrastructure-11807.gifLes produits Citrix permettent de se connecter à toutes sortes d’applications et de matériels de manière sécurisée.




Une équation économique favorable

Faible coût d’acquisition, réduction drastique du TCO et grande souplesse d’administration sont des avantages qui plaident en faveur des terminaux clients légers. Même s’ils ne représentent à ce jour que 20 % des postes de travail installés dans les entreprises, les terminaux clients légers s’imposent lentement comme une alternative crédible face aux PC. Pour séduire les entreprises, ils disposent de sérieux arguments : un faible coût d’acquisition et des gains notables en termes de TCO (Total Cost Ownership ou coût total de possession). Aujourd’hui, le coût d’un client léger boîte et clavier s’établit entre 200 et 450 euros hors écran, selon les options que l’on souhaite. Pourquoi une telle fourchette de prix ? Il n’y a pas un client léger universel pour l’ensemble des applications. Le multimédia, l’un des points faibles du client léger, nécessite parfois une mémoire plus musclée pour faire face à certains cas particuliers.
Plus faciles à déployer, plus simples à administrer, ils offrent en outre une plus grande sécurité des données, qui restent centralisées sur des fermes de serveurs. Dans ce domaine, nous sommes dans un marché mouvant à évolution rapide. Les cartes se redistribuent relativement vite. Pascal Ozanne, directeur marketing Europe de Citrix, indique :« Il y a un an nous étions 40e sur le marché de la sécurité VPN SSL, c’est-à-dire inconnus. Un an après, nous sommes les premiers sur ce segment avec 30 % de parts de marché. Pourquoi ? Parce que la sécurité a pris une place de plus en plus importante. Nous avons acquis des technologies à l’extérieur que nous avons intégré dans les nôtres. »
Laurent Charreyron enfonce le clou, « Aujourd’hui, on assiste à une évolution des mentalités, notamment en termes de sécurité, les gens ne se posent plus la question, ils centralisent. »


Une solution ressentie comme dirigiste

Les freins au développement ne surgissent pas toujours où on les attend. Ainsi, Jean-François Imokrane, chef du service informatique des Journaux Officiels, souligne que le déploiement est quelque fois plus long que prévu, « Il faut vaincre quelques réticences ! Certains se sentent comme dépossédés si on les prive de leur PC. Cela peut être ressenti comme une solution trop dirigiste ou comme une brimade. » La solution ? « Il faut expliquer, mais cela prend du temps. »
Globalement, le client léger matériel, répond à un bon nombre de questions. Outre la sécurité, il permet d’optimiser les coûts. Dans les coûts, on cite évidemment les coûts d’administration et les ressources humaines nécessaires. Aujourd’hui, dans la plupart des entreprises, la problématique est de diminuer les coûts et de faciliter certaines tâches, afin de réduire les personnels nécessaires. On doit donc couper dans les prix de revient, de support, de distribution d’applications, de gestion des postes de travail. Il faut assurer la continuité de service et bien entendu gérer les problèmes de sécurité. Un directeur réseau qui n’applique pas une véritable stratégie d’accès va à la catastrophe. Un autre frein au déploiement des architectures client léger en PME provient du fait que ces entreprises n’ont pas toujours des compétences informatiques fortes. Néanmoins, une fois réalisée, cette nouvelle architecture du réseau permet d’associer toutes les possibilités. Les serveurs sont sous Windows pour mettre à disposition des applications Windows, ou sous Unix pour mettre à disposition des applications Unix. Ces applications vont être mises à la disposition de n’importe quel client ; cela veut dire en clair que l’on peut très bien avoir sur un poste Windows des applications Unix et vice versa.
Dans l’évolution des entreprises, le client léger devient une évidence à partir du moment où on dispose déjà d’un réseau bien structuré et suffisamment de bande passante. Lorsque les entreprises arrivent au renouvellement de leur parc PC, très souvent elles prennent l’option du client léger. De plus, comme l’exprime Laurent Charreyron, « Le coût de gestion du PC ne baisse pas. On a cru le faire reculer un moment avec de nouveaux outils de migration et on y est arrivé partiellement. Mais cette économie a été remplacée par un coup induit par la sécurité. »



À l’heure du choix

Points forts


• Vous connectez l’appareil au réseau et l’accès est immédiat aux applications et données centralisées.
• Installation des données ou applications en local inutile.
• Administration entièrement centralisée.
• La centralisation de l’ensemble des données et applications facilite les sauvegardes et la sécurité.
• Les mises à niveau logicielles et matérielles sont centralisées.
• Pas de composant mobile, pas de lecteur de disquettes / CD-Rom / disque dur.
• Les clients légers n’attrapent pas de virus.
• Les clients légers ont généralement une durée de vie de 5 à 7 ans.

Points faibles

• La centralisation aliène le côté « outil personnel » du PC.
• L’utilisateur ne maîtrise plus personnellement sa machine.
• Pas d’installation de produit particulier en local.
• Le client léger n’est pas pour l’instant opérationnel pour les applications multimédias.
• Nécessité de revoir son architecture réseau pour optimiser une architecture centralisée.
• Dépersonnalisation du poste de travail souvent mal vécue.

copyright l'Informaticien, tous droits réservés
p. 1
Réduire
CRM : la vague ASP
Par Bertrand Garé - copyright l'Informaticien, tous droits réservés

La gestion de la relation client devient un cas d’école de la percée du mode hébergé dans le monde du logiciel. Un ensemble de raisons explique le phénomène. Avec son fonctionnement et son déploiement simplifié, l’ASP offre les mêmes fonctionnalités qu’en client / serveur. La solution n’a pas que des avantages en termes financiers, mais elle s’impose et pas seulement sur le segment des PME ! Une préfiguration de l’avenir du secteur des logiciels ?

Pour paraphraser Georges Clémenceau, l’ASP (*) a été, est et sera toujours un secteur d’avenir. Depuis le début des années 2000 et l’époque de la bulle Internet, beaucoup d’éditeurs prônent ce modèle de commercialisation avec un succès très relatif. Seul le secteur de la relation client s’est rallié majoritairement à ce modèle. Pour preuve, même des éditeurs qui doutaient de la validité de la démarche comme SAP ou Pivotal viennent de se rallier au mode locatif proposé. Bon an, mal an, l’ASP représente aujourd’hui 9 % du marché global des ventes de logiciels de gestion de la relation client. Cela semble peu mais sa progression dans l’année écoulée a été de… 105 %, selon une étude d’AMR Research ! Un véritable boom. Chez Eudoweb, un éditeur qui propose à la fois sa solution en ASP et en intranet, la part de l’ASP se monte à 70 % du chiffre d’affaire global.


Les raisons d’un succès

Bonnie-Crater3310090_Copie5.gifPour Bonnie Crater, le succès de solutions en ASP s’explique par une plus grande maturité du marché.
Bonnie Crater, vice-présidente senior et directrice générale chez Salesforce.com, attribue ce succès à une nouvelle maturité du marché et à l’expérience actuelle des utilisateurs qui sont habitués à être des consommateurs du Web et de sa facilité d’utilisation.
Christine O’Meara, chef de produit chez Microsoft CRM, et Julien Bianchini, chez Neocase, s’accordent à la fois sur la maturité nouvelle du marché et sur la facilité et la souplesse d’utilisation de telles solutions.
Julien Bianchini ajoute : « La souplesse d’utilisation et de mise en œuvre de telles solutions évite aux clients de bouleverser leur informatique interne et de perdre du temps dans le déploiement de solutions plus lourdes. » Et, dans une entreprise, le temps c’est de l’argent.

Un autre moteur de l’adoption de solutions en ASP est la désynchronisation entre le temps de mis en œuvre en interne et les besoins ou les volontés des directions fonctionnelles de l’entreprise. Souvent, ces dernières découvrent un outil qui correspond à leur besoin. Elles le veulent alors immédiatement. Pas de chance ! La direction ou le service informatique répond le plus souvent « d’accord », mais au bout de trois ou six mois. Les deux emplois du temps sont incompatibles. Pour illustrer cette différence, il suffit de prendre l’exemple de mise en place d’un serveur en entreprise. Entre la phase d’achat pour étudier les besoins et correspondre à la charge attendue, l’installation, la mise en réseau, les tests, le déploiement de l’application et sa mise en production, il faut compter trois mois. Impossible alors de proposer un outil plus rapidement. Les PME, qui manquent de ressources en interne et de moyens financiers, sont encore plus sensibles à cet argument et choisissent alors de basculer vers le mode ASP.

Ce décalage entre les directions fonctionnelles et l’informatique a pour conséquence une prise d’autonomie plus grande des directions fonctionnelles. Elles choisissent elles-mêmes les outils sous forme ASP et les utilisent sans avoir recours à l’informatique, si ce n’est en cas d’intégration avec des logiciels présents en internes. Il n’est pas rare dans ce cas que le prestataire de services pressenti se charge de l’intégration, et ce, sans véritable lien avec le service informatique de l’entreprise. Cette situation ne satisfait pas complètement les services informatiques, un peu dépossédés de leurs prérogatives, mais qui font contre mauvaise fortune bon cœur, en satisfaisant les utilisateurs sans s’ajouter la charge d’un projet qui obérerait les ressources consacrés à l’exploitation de l’informatique.
Cette particularité montre encore que les projets de gestion de la relation client en ASP restent très souvent au niveau tactique – le besoin d’un « plus » fonctionnel. Lorsque le besoin est plus stratégique, les entreprises continuent à se tourner vers des solutions en interne. Mais pour combien de temps ?

(*) Application Service Provider ou mode hébergé.
p. 2
Réduire
Des approches différentes

Ce dernier argument est cependant à relativiser. Il est souvent l’apanage des éditeurs proposant leurs produits de gestion de la relation client sous deux formes différentes, en ASP et en client / serveur. Dans ce mode dual se trouve la plupart des éditeurs historiques du secteur. Face à eux se placent les « pure players », comme Salesforce.com ou Ines en France. L’argumentation des acteurs « duals » impliquerait que les entreprises réinternalisent à partir d’un certain niveau leurs solutions de gestion de la relation client. C’est une idée reçue de plus. Une entreprise ayant fait le choix de l’ASP revient très rarement en arrière vers un modèle plus classique. La plupart des intervenants interrogés ont confirmé ce fait tangible.
Longtemps le marketing des éditeurs s’est appuyé sur cet argument pour relativiser la puissance des outils fournis en ASP. Devant la réalité des faits, les éditeurs duals recherchent d’autres pistes. Pour cela, ils tapent au portefeuille ! Le modèle ASP fonctionne sur un mode locatif. Au bout d’un certain temps, ce modèle revient plus cher que le modèle classique. Les éditeurs traditionnels appuient donc leur discours sur le retour sur investissement en expliquant que, généralement, au bout de trois ans, la solution ASP revient aussi chère, si ce n’est plus, que la solution classique. Ce délai de trois ans est très optimiste. Pour certaines solutions, comme celle de Microsoft, le délai n’est que de 18 mois. De quoi inciter les entreprises à s’équiper sur un modèle plus classique. Il ne faut cependant pas oublier qu’en plus des coûts d’infrastructures, de matériels et de personnels, les logiciels classiques ont un coût de maintenance et de support proche de 20 % du prix de la licence. L’un dans l’autre, les deux modèles ont des coûts à peu près équivalents.


Des fonctions comparables

J.-Bianchini10521_Copier6.gifPour Julien Bianchini, chez Neocase, l’achat des solutions en ASP se réalise plus sur une fonctionnalité que sur une technologie.
Julien Bianchini le souligne : « Entre les versions client / serveur et l’ASP, le produit est le même. C’est d’ailleurs sur les fonctionnalités, plus que sur une technologie, que les clients achètent. »
Dans le domaine, les produits couvrent plus ou moins largement le périmètre de la gestion de la relation client. La plupart d’entre eux propose des outils pour l’automatisation des processus des forces de vente, l’automatisation des campagnes marketing, des outils de reporting et d’analyse des données commerciales. En ce qui concerne les fonctions de support des clients et de gestion du service après-vente, les outils font, le plus souvent, appel à des produits partenaires, que ce soit en OEM, ou à des ajouts à leur solution suivant les besoins du client. Au final, les principaux produits du marché correspondent aux grands besoins du domaine. Les apports récents dans ces solutions concernent des fonctions étendues et à la marge de la gestion de la relation client.
Ainsi, les produits cherchent principalement une plus grande intégration avec les outils bureautiques utilisés par les commerciaux ou le public concerné par les logiciels. À tout seigneur, tout honneur, la suite Microsoft CRM s’intègre évidemment avec la suite Office de l’éditeur en proposant une interface Outlook si le client le désire. L’utilisateur navigue en fait d’un outil à l’autre de manière transparente.
L’outil de Neocase est de la même manière développé nativement sur l’environnement Microsoft. Eudoweb permet des imports / exports avec Outlook ou Exchange. Peu de suites font encore le pari des environnements Open Source. Seul Next Application, un éditeur proposant une gestion des activités en mode ASP, offre indifféremment des environnements propriétaires ou Open Source.
Autre point d’évolution des solutions, les outils proposent de plus en plus souvent des processus collaboratifs. Next Application en a fait le centre de son outil. Il explique ainsi que son produit, plus que de gestion de la relation client, est un outil de gestion d’une activité. L’aspect collaboratif est principalement renforcé par la centralisation en un seul point des différents éléments du dossier client (fiches, contacts, mails, factures, devis…). L’utilisateur trouve alors en un endroit tous les éléments lui permettant un suivi optimal du client. À cet endroit, il est possible de réaliser des liens avec des données, des informations ou des documents présents dans d’autres applications.
Deux acteurs ont une particularité forte : Microsoft et Salesforce.com. Les deux ont choisi d’être en fait des fournisseurs de plates-formes où viennent s’insérer des produits complétant leur suite de base.
Chez l’éditeur de Redmond, ce fondement s’appuie sur le Microsoft Business Framework de .Net. Ainsi, les produits de Neocase ou de Wincall viennent compléter l’offre de base de la suite Microsoft CRM pour combler les manques de la suite. Ce choix s’explique aussi par la connaissance métier nécessaire pour couvrir les besoins des centres d’appels ou de services clients, des métiers très spécifiques.
Chez Salesforce, la plate-forme se nomme AppExchange. Elle se présente comme une suite d’outils de personnalisation et un référentiel permettant d’ajouter des fonctions ou des modules à la suite de SalesForce.com. L’éditeur développe tout un programme pour attirer de nouveaux partenaires et étendre les fonctionnalités de son produit. La plate-forme autorise aussi des personnalisations importantes de l’outil pour cadrer au mieux les besoins des utilisateurs. Ces possibilités de personnalisation forte permettent de contourner la difficulté de la verticalisation des produits selon différents secteurs d’activité en conservant un produit générique, mais s’adaptant à différents métiers.
sfdc_application10523_Copi7.gifUn exemple de reporting d’une solution ASP.

p. 3
Réduire
La personnalisation grâce aux nouvelles technologies

Les possibilités de personnalisation des produits sont encore augmentées par l’utilisation des technologies dynamiques comme Ajax ou RSS. Ainsi, la suite de Salesforce.com supporte ces technologies qui permettent une personnalisation et un rafraîchissement de l’outil en quasi temps réel. Eudoweb a choisi la même voie. En train de tester un nouveau développement de sa suite, l’éditeur va intégrer ces outils dynamiques dans la version qui sortira à la fin de l’année. Le processus de validation de cette version est en cours. Un test de la solution sur 2 millions d’enregistrements vient d’être effectué pour calibrer la montée en charge de cette future version. Christophe Morizot, fondateur et dirigeant d’Eudoweb est enthousiaste : « C’est magique. Les temps de réponse sont extraordinaires. » À terme, l’utilisateur paramétrera de lui-même l’interface pour accéder aux informations et aux éléments nécessaires à son travail. Il y a cependant encore loin de la coupe aux lèvres.

Eudonet-Modèle-des-don10708.gifUn exemple de modèle de données chez Eudonet.



Les limites du modèle


Le modèle ASP a cependant des limites. Le projet devient beaucoup plus difficile lorsqu’il s’agit d’intégrer la solution hébergée avec des outils présents en interne. Julien Bianchini le reconnaît : « Le modèle ASP connaît ses limites dans ce cas. Même s’il n’y a pas de règles générales. » Les éditeurs sont conscients de cette difficulté et font de nombreux efforts pour la réduire. Ainsi, Microsoft a ajouté des liens privilégiés entre certains de ces outils, les « Snap In », qui autorisent des liens plus simples entre différentes applications. Les possibilités offertes par les technologies comme les Web Services ou des connecteurs simplifient aussi cette tâche d’intégration. Elle reste cependant une véritable question.


La question de la disponibilité

L’ASP est accessible en mode distant et à des moments de la journée qui ne correspondent pas forcément aux horaires de bureau. Des indisponibilités de la solution Salesforce.com lors de l’année dernière ont remis ce débat au goût du jour. Julien Bianchini relativise cependant : « La question a pris de l’importance parce que c’était Salesforce et qu’ils avaient été très agressifs sur cette question avec leur puissance marketing. C’est aussi le cœur de métier. » Max Patissier, directeur technique chez Ines, ajoute : « La mutualisation est un risque maîtrisé et calculé pour le fournisseur ASP. L’augmentation des débits avec l’ADSL a résolu aussi bien des questions sur l’utilisation des applications. Nous rencontrons très peu de problèmes, mais les utilisateurs veulent toujours plus, plus vite. »
La plupart des éditeurs s’adressent pour cette question à des spécialistes de l’hébergement ou à des opérateurs reconnus. Neocase s’appuie sur les services de Soft2U, le partenaire ASP de Microsoft pour sa solution CRM, et Aspaway, un spécialiste des applications hébergées. Eudoweb fait confiance à Colt.
Ce débat peut sembler toutefois assez superficiel. La plupart du temps, les entreprises utilisant des solutions hébergées profitent d’infrastructures réseau et des fonctions de sécurité, de disponibilité, de stockage qu’elles seraient bien en peine de s’offrir par elles-mêmes. Le secteur reste l’apanage de spécialistes ou de SSII dont la renommée et la notoriété rassure le client potentiel.


crm110704_Copier9.gifAvec l’ASP, les logiciels de gestion de la relation client sont accessibles de n’importe quel terminal.<
Un mouvement général ?

La percée dans le domaine de la gestion de la relation client présage-t-il de l’industrie logicielle de demain ? À ses débuts, Salesforce.com annonçait la fin du logiciel sous la forme que nous connaissons. Il se pourrait que l’éditeur n’ait pas eu complètement tort. Une étude récente menée par le cabinet Markess montre que d’autres secteurs comme les ressources humaines ou la comptabilité et la finance se tournent résolument vers l’hébergement externe. Il existe même des gestions de production sous cette forme locative. La même étude prévoit que 49 % des entreprises interrogées pensent augmenter leur dépense sous cette forme. En 2008, l’hébergement applicatif devrait représenter un marché de 460 millions d’euros. L’ASP n’est plus marginal. Il n’est cependant pas encore la règle même dans la gestion de la relation client.

copyright l'Informaticien, tous droits réservés
p. 1
Réduire
MOTEURS DE RECHERCHE
Windows Desktop Search vs Google Desktop
Par Hugo Lunardelli - copyright l'Informaticien, tous droits réservés

Deux moteurs de recherche locale aux philosophies opposées pour tout retrouver – ou presque – sur votre machine.

Il y a un peu plus d’un an, fin 2004, une nouvelle catégorie d’outils faisait son apparition qui devait changer pour toujours nos habitudes de travail : le « desktop search », que l’on désignera ici par recherche locale. Cet outil, qui a pour vocation de nous aider à retrouver quasi instantanément tout ce que notre PC peut avoir accumulé au cours des années (documents divers, e-mails, photos, applications, MP3…), représente ce que l’on a conçu de plus efficace pour augmenter la productivité depuis très longtemps. La recherche locale fait ainsi partie du club très fermé des outils qui vous font très vite vous demander « comment a-t-on pu s’en passer jusqu’ici ? ».
L’utilisation de cet outil s’est largement répandue du fait de nombreuses offres gratuites proposées par des acteurs comme Yahoo ou Copernic, compte tenu de son intégration dans Mac OS X (et bientôt dans Vista) et bien sûr grâce aux offres de Google et de Microsoft, dont il sera question dans cet article.
Depuis leurs débuts quasi simultanés, fin 2004, ces deux moteurs de recherche locale ont évolué dans leurs fonctionnalités, mais aussi – et peut-être surtout – dans leur packaging.
Microsoft, et dans une plus grande mesure Google, ont intégré leur offre dans un package qui comprend bien sûr la fonction de recherche locale, mais qui ajoute des fonctions plus ou moins corrélées comme l’affichage de flux RSS, les dernières dépêches, un gestionnaire de formulaires, la météo, un bloqueur de pop-ups… L’objet de cet article étant de comparer les deux moteurs de recherche locale, nous nous concentrerons sur ces derniers.


Installation de WDS

Disponible à l’adresse suivante, Windows Desktop Search version V02.06 (WDS pour la suite de cet article) dans sa version entreprise présente l’intérêt de se limiter à la recherche locale et d’être disponible en français : http://www.microsoft.com/windows/desktopsearch/enterprise/downloads.mspx

Lors de l’installation, il vous sera demandé de spécifier ce que vous voulez indexer, le choix par défaut étant le courrier électronique avec le dossier Mes documents. Il est possible de spécifier des chemins additionnels, par exemple un disque externe ou tout lecteur réseau sur lequel vous disposez de droits d’accès. Il est proposé par défaut d’indexer les pièces jointes de vos e-mails (si vous utilisez Outlook ou Outlook Express). Une fois ces paramètres enregistrés, le programme d’installation vous proposera d’ouvrir un site contenant une liste de plug-ins autorisant le support de types de fichiers additionnels.
Les fichiers pris en compte nativement par WDS comprennent la plupart des applications courantes : Office bien sûr, mais aussi les fichiers images, vidéos, url, .bat, .vbs… en tout, plus de deux cents types de fichiers. Les plug-ins disponibles permettent d’ajouter l’indexation de fichiers .pdf, .zip, des fichiers StarOffice et Openoffice, les CAB, les Compiled HTML, les fichiers Autodesk et en bêta test les e-mails en provenance des messageries de Mozilla, Thunderbid et Eudora.
Une fois ces paramètres spécifiés, WDS commencera l’indexation de votre machine.
Pour donner un ordre d’idée du temps nécessaire, il a fallu environ un peu plus d’une heure pour indexer 35 513 documents sur mon portable de test, sans utiliser celui-ci.


Installation de Google Desktop Beta 3

L’installation se fait à l’adresse suivante : http://desktop.google.com/

Figure-1.-GDS-setup7641_Co5.gifGoogle Desktop vous propose d’afficher la sidebar (installée par défaut) sur votre bureau et de met-tre en œuvre l’indexation de plusieurs machines.
Vous pourrez installer la bêta de Google Desktop 3 en version anglaise, mais vous serez limité à la version 2 si vous optez pour le français. Contrairement à WDS, Google Desktop rend obligatoire l’installation de sa « sidebar » qui comprend une cohorte de « Panels », sorte de gadgets qui vous affichent les news, vos photos, les e-mails qui arrivent dans votre boîte aux lettres, la météo… (j’en ai dénombré douze, sans compter ceux que vous pouvez rajouter).
Google se propose en outre de devenir votre moteur de recherche par défaut et, enfin, suggère d’indexer le contenu d’autres ordinateurs et de votre compte de messagerie Gmail.
Le « et » s’explique par le fait qu’il n’est pas possible d’indexer le contenu d’autres ordinateurs si on ne dispose pas d’un compte Gmail et Google propose justement d’en créer un. D’après les explications fournies, un compte Gmail est nécessaire de façon à stocker sur les serveurs de Google les données de vos différentes machines, ceci afin de pouvoir faire une recherche sur ces données au cas où une machine deviendrait indisponible. On comprend pourquoi le Gartner Group a mis en garde ses clients contre l’utilisation de Google Desktop 3 en entreprise.
Enfin, il n’est pas anodin de savoir que Google enregistre sur ses serveurs les informations concernant les pages que vous avez visitées de façon à vous proposer des News en rapport à ce qui vous intéresse. Pratique, mais potentiellement dangereux suivant l’endroit où vous vivez. C’est la raison pour laquelle Google a décidé de déplacer vers des serveurs situés aux États-Unis l’enregistrement des requêtes de ses utilisateurs chinois. Par défaut, Google Desktop Search (que l’on désignera plus loin par GDS) indexera en gros les mêmes types de fichiers que WDS, à l’exclusion notable du contenu des pièces jointes contenues dans vos e-mails.
La conséquence étant que si vous êtes de ceux – les plus nombreux ! – qui conservent par défaut à l’intérieur de leurs messages les pièces jointes reçues, GDS ne vous sera d’aucune utilité pour retrouver celles-ci ultérieurement. Imaginez le scénario suivant : vous avez besoin très vite de retrouver le fichier Excel que quelqu’un vous a envoyé il n’y a pas très longtemps et qui contient « budget 2006 ». WDS affichera la liste des e-mails contenant le fichier voulu, mais pas GDS.
p. 2
Réduire
A contrario, GDS présente une différence de taille par rapport à WDS en ce sens où il indexe les pages Web que vous avez consultées, du moins celles dont vous n’avez pas effacé le contenu.
L’indexation du contenu de votre historique de navigation par GDS permet de retrouver une page Web contenant un mot clé sans avoir à remonter le temps pour vous rappeler sur quel site vous étiez connecté.
De façon similaire à Microsoft, Google propose de télécharger des plug-ins qui concernent soit des types de fichiers additionnels soit de nombreux gadgets à intégrer à la sidebar.
Par rapport à WDS, l’indexation du même portable par GDS a pris un temps beaucoup plus important, de l’ordre de quatre à cinq heures, sans doute du fait qu’il s’agit d’une version bêta.


Utilisation de WDS et GDS

L’utilisation de la recherche se fait de façon similaire pour les deux moteurs. Un raccourci clavier : (Ctrl + Alt + M) pour Microsoft et (Ctrl + Alt+ G) pour Google, permet de positionner le curseur dans le cartouche de recherche situé dans la barre des tâches. Dans les deux cas, le moteur de recherche affichera une liste des résultats dans un pop-up. WDS affichera les résultats en les regroupant par catégorie (contacts, communications, photos…) alors que GDS présentera une liste.
Outre la possibilité de retrouver rapidement les documents stockés sur votre disque, il est intéressant de noter que WDS et GDS permettent également de lancer toute application installée sur votre machine, ce qui évite de chercher celle-ci parmi la myriade de dossiers du menu démarrer.
Chaque outil dispose d’une syntaxe de recherche permettant à l’utilisateur averti de restreindre le champ de recherche. Par exemple, dans WDS si vous entrez « de: expéditeur test », vous ne visualiserez que les e-mails envoyés par « expéditeur » qui comprennent le mot « test ». De la même façon, vous pourrez restreindre votre recherche à un dossier défini ou à un intervalle de temps donné. GDS comprend un certain nombre d’opérateurs de recherche en anglais, mais offre moins d’amplitude dans les options de recherche.
Enfin, WDS vous permet de sauvegarder toute recherche locale sous la forme d’un favori dans IE. Ce qui signifie que la prochaine fois que vous voudrez effectuer la recherche en question, vous cliquerez sur ce favori pour afficher les résultats correspondants mis à jour. Une fonction qui préfigure ce que proposera Vista.


Des différences d’approche

WDS et GDS vous permettent tous deux d’ouvrir un fichier donné en cliquant sur celui-ci, mais si vous cliquez sur un e-mail, WDS ouvrira ce dernier dans Outlook alors que GDS affichera un aperçu du contenu dans une fenêtre de votre navigateur avant de vous proposer de lancer le programme e-mail correspondant. Plus significatif, quand vous faites un clic droit sur l’un des résultats de WDS, vous verrez apparaître un menu contextuel qui varie suivant le type d’item sélectionné. Si vous sélectionnez un
e-mail, vous aurez la possibilité d’afficher la conversation ou d’y répondre. Si vous sélectionnez un fichier, vous pourrez l’imprimer, l’envoyer vers un destinataire, l’ouvrir, le compresser… tout ce que vous faites habituellement sous Windows avec un clic droit dans l’exploreur.
Dans le cas de GDS, un clic droit dans la liste de résultats ne produit aucune proposition du système si ce n’est la possibilité d’ouvrir le dossier contenant le fichier désigné. Dés lors que le nombre de résultats est trop important, vous affinerez votre recherche en travaillant sur la liste complète des résultats qui apparaîtra dans une fenêtre après que vous ayez tapé [entrée]. WDS affiche une fenêtre qui liste les résultats et vous permet de trier ceux-ci par type de fichiers. Le panneau droit de l’écran vous permet de visualiser le contenu du fichier sans l’ouvrir. Enfin, un clic droit sur un fichier vous permet d’effectuer sur celui-ci toutes les opérations que vous feriez sous Windows. Les résultats de GDS apparaissent sous la même forme qu’une liste d’URL consécutive à une requête Google.
La différence de philosophie entre les deux outils apparaît alors clairement, avec d’un côté GDS qui s’appuie sur une interface « Web centrique » et de l’autre WDS qui repose sur une approche de type application. Les résultats de GDS apparaissent ainsi dans une fenêtre de votre navigateur plutôt que dans une fenêtre système ; l’approche retenue par WDS. Cette différence d’implémentation explique pourquoi WDS vous permet d’appliquer à vos résultats toute la richesse de manipulation offerte par Windows, alors que GDS se contentera d’ouvrir le fichier voulu.


En attendant Vista

Les deux moteurs de recherche locale offrent des fonctionnalités assez proches tout en se distinguant par une approche orientée application dans le cas de Microsoft et une conception orientée Web pour ce qui est de Google. Après avoir testé les deux outils pendant plusieurs jours, WDS apparaît clairement comme le moteur le plus complet : celui qui vous permettra par exemple de retrouver la pièce jointe dont vous avez absolument besoin et qui distillera le plus d’intuition dans la recherche. WDS offre toute la richesse système de Windows pour les opérations que vous souhaiterez effectuer sur les résultats de vos requêtes avec – ce qui ne gâche rien – une interface utilisateur plus agréable et plus soignée. WDS n’est pas parfait ni exempt de bugs, mais il rend les services qu’on attend de cet outil. La lacune majeure de WDS consistant dans l’absence d’indexation de votre historique de navigation.
Google qui, a contrario, offre cette fonction est en retrait par rapport à Microsoft sur les autres plans, tout en étant beaucoup plus intrusif (installation forcée de la sidebar, remontée d’informations sur les sites visités…). Quoi qu’il en soit, cette discussion est amenée progressivement à perdre de sa pertinence compte tenu de l’arrivée de Vista fin 2006. Vista intégrera des services de recherche locale plus riche que ce que proposent WDS et GDS aujourd’hui. En attendant ce jour, et pour tous les utilisateurs qui continueront à travailler sous Windows XP après 2006, WDS vous permet d’exhumer les trésors cachés que recèle votre disque dur, tandis que GDS saura retrouver la page Web que vous êtes sûr d’avoir vue sans pouvoir vous rappeler ni où, ni quand.

copyright l'Informaticien, tous droits réservés
p. 1
Réduire
Le centre d’appels retrouve sa voix sur IP
par José DIZ - Copyright L'Informaticien, tous droits réservés.

4332514864_Copier8.gifLes technologies traditionnelles et cloisonnées rendent onéreux les centres d’appels. La voix sur IP bouscule les architectures, facilite le déploiement de centres virtuels et apporte de la souplesse, à des coûts sans précédent.


À l’époque des numéros téléphoniques à 7 chiffres, le service SVP-11-11 lançait de grandes campagnes publicitaires pour affirmer qu’un agent pouvait répondre à toute question au bout du fil. Ce premier centre d’appel, né en 1935, permettait de répondre à des dizaines d’appels simultanés.
Depuis, les entreprises ont adopté ce procédé pour conquérir et fidéliser les clients, renseigner les consommateurs, proposer du support après-vente, assister, dépanner, offrir des services par téléphone… Vente par correspondance, banques, assurances, grande distribution, fabricants, administrations… toutes cherchent la meilleure relation client possible en s’appuyant sur un centre d’appels. Des dizaines de télé-opérateurs y reçoivent plusieurs milliers d’appels par jour.


Répondre vite et efficacement, sans perdre d’appel

L’objectif consiste à gérer au mieux la demande croissante, en répondant le plus efficacement à l’appelant. C’est pourquoi chaque télé-opérateur dispose d’un PC affichant diverses informations sur le client et accédant à de multiples applications. Autre enjeu : perdre le minimum d’appels et donc répondre à un maximum de clients. Les temps de communication sont donc chronométrés, et souvent l’appel est coupé après un temps défini. Dans ce contexte, difficile de conserver longtemps des employés soumis à ce type de stress. Mais, là aussi, la technologie favorise le progrès. Autre difficulté, gérer les montées en charge d’appels, plus ou moins prévisibles du fait de campagnes promotionnelles, événementielles, d’incidents, de jours de grève, etc. Là encore, la technologie doit répondre avec souplesse et proposer un déploiement rapide de télé-opérateurs (ou positions).


Les briques essentielles d’une architecture traditionnelle

Aastra_JD_Garo13064_Copier5.gifJean-Denis Garo, responsable du marketing support chez AAstra Matra Telecom.
Pour fonctionner pleinement, un centre d’appel nécessite plusieurs composants matériels et logiciels, regroupés ou non sur une seule entité physique. Au cœur du dispositif, le PABX (Private Branch eXchange) est un autocommutateur privé qui regroupe une ou plusieurs cartes reliées au réseau téléphonique public d’un opérateur. Traditionnellement, l’entreprise loue plusieurs liaisons de type T2 (RNIS) avec un débit effectif de 6,312 Mbits/s, pour environ 30 accès téléphoniques simultanés. La communication avec le PABX est gérée via une carte T2 insérée dans l’autocommutateur pour chaque ligne. L’ACD (Automatic Call Distribution), souvent intégré au PABX, gère le traitement de tous les appels, et leur distribution et répartition vers les télé-opérateurs. « L’ACD fonctionne par file d’attente en mode FIFO (first in – first out) selon l’occupation, des règles de priorité hiérarchiques, ou à la volée. Des fonctions avancées permettent un routage intelligent en fonction des compétences déclarées des télé-opérateurs et de la qualification de l’appel ou du numéro appelé. Mieux encore, l’appel peut être dirigé vers l’agent qui a déjà commencé à traiter le problème lors de l’appel précédent », précise Jean-Denis Garo, responsable du marketing support chez AAstra Matra Telecom. C’est également sur cet équipement (matériel ou logiciel) que l’on trouve des fonctions de supervision, tel l’enregistrement par exemple (légal ou de contrôle). Dans le cas des centres de contacts, l’ACD peut aussi bien traiter des appels téléphoniques que d’autres médias comme le Web, le chat, l’e-mail… On parle alors d’Automatic Contact Distributor.
L’efficacité du centre d’appel repose sur le Couplage Téléphonie Informatique (ou CTI) qui marie applications informatiques et standard téléphonique. Dans un premier temps, le système doit reconnaître l’appelant et sa demande suite à un parcours sur le serveur vocal interactif (SVI), à une reconnaissance du numéro d’appel ou à la discussion avec le télé-opérateur. Ces données sont alors communiquées à des bases de données et des applications (CRM, catalogue produit, progiciel comptable, suivi bancaire, etc.) afin de remonter les informations utiles sur le poste de l’agent : fiche client ou produit, encours financier, mais aussi guide d’entretien pour le télé-opérateur avec argumentaire multilingue, etc.
Les usagers sont désormais coutumiers – sans le savoir – des fonctions de serveur vocal interactif (SVI). En utilisation basique, il assume le rôle de borne d’information et diffuse des messages répétitifs sans intervention humaine. Très répandu, le standard prédécroché permet un aiguillage interactif (« tapez 1… », « tapez 2… », etc.) avec parfois la reconnaissance vocale. Option souvent utilisée, la messagerie vocale interactive inclut horodatage, identification du numéro, et notification de la réception d’un message… et peut s’intégrer à une messagerie unifiée (e-mail, fax, vocal). Enfin, avec ou sans intervention humaine, le SVI peut interagir avec le CTI pour une prise de commande, une consultation de comptes, une demande d’informations, etc.
p. 2
Réduire
Enfin, un moteur d’appels sortants peut compléter le dispositif.
« Il existe plusieurs types de campagnes, détaille Jean-Denis Garo. En mode Preview, le début de l’appel sortant est à l’initiative de l’agent, tandis qu’en mode “ progressive ”, il reste à l’initiative du système qui les génère dès qu’un agent est disponible. Enfin, le mode “ Predictive ” fait intervenir le moteur, mais l’appel est généré sur des hypothèses statistiques indiquant la future disponibilité d’un agent. Si l’attente de l’agent est réduite, le client risque d’être mis en attente. »
Indispensable au télé-opérateur, ce dernier dispose d’un combiné téléphonique (et d’un casque-micro) directement relié au PABX sur des cartes spécifiques. De plus, il est équipé d’un PC, relié au réseau local informatique auquel accède aussi le module CTI pour assurer le lien entre les deux réseaux.
Bien entendu, les liaisons T2 sont parfois multiples selon les besoins et le nombre de télé-opérateurs.


Centres d’appels avec des connexions traditionnellesschema1.gifVoix et données totalement séparées : dans cette architecture traditionnelle, chaque centre d’appel est indépendant. La liaison T2 entre PABX sert uniquement à véhiculer les appels internes.




Ça freine dur sur l’existant

devoteam_siticom_Pierr14096.gifPierre Casciola, consultant chez Siticom, société de conseil du groupe Devoteam.
Un centre d’appel classique dispose donc de deux réseaux distincts : téléphonie et informatique. Chacun fonctionne avec son propre câblage et ses technologies, maintenus par une équipe spécifique. Or, la promesse de la VoIP consiste justement à véhiculer sur un même câblage les deux types de flux, et donc à faciliter l’installation des postes et l’intégration entre la téléphonie devenue une application et le système informatique. Et donc, sinon de réduire la maintenance nécessaire, au moins de mutualiser les compétences. Toutefois, divers éléments freinent cette évolution pourtant inéluctable. En premier lieu, l’amortissement des PABX des centres d’appels (avec leurs cartes souvent spécifiques), planifié sur sept ou huit ans, serait plutôt aux alentours de dix à douze ans. De plus, explique Pierre Casciola, consultant chez Siticom, société de conseil du groupe Devoteam, « Les logiciels CRM ou les progiciels métiers, souvent très spécifiques, ont été développés en liaison étroite avec les technologies de téléphonie classique (TDM) et ne sont pas à jour. Or, ces briques sont souvent essentielles et intégrées en chaîne à d’autres logiciels du centre d’appel ou des clients .»


Les liaisons VoIP intersites s’imposent

Pour relier deux plateaux d’appels entre eux, « une liaison T2 entre les PABX coûte cher, car chaque communication vocale est facturée. Avec une liaison spécialisée véhiculant des données (en fait, une “ T2 data ” appelée Trunk IP) et non plus de la voix, le trafic est illimité. Alors, deux autocommutateurs peuvent être reliés sans payer les temps de communication », souligne Salim Levieux, directeur général d’Asten Communications, filiale de VocalCom. Dans cette configuration, des passerelles jouent les interfaces pour traduire les signaux téléphoniques en données, et inversement à l’arrivée. Une première avancée où, même avec une utilisation basique, la VoIP génère des économies significatives. La voix est alors encodée au départ et à l’arrivée pour passer les PABX. Mais la communication ne passe plus par le réseau commuté (RTC) de l’opérateur.


L’heure de gloire de l’IPBX

Avec l’IPBX, le PABX intègre directement la technologie IP et peut travailler aussi en mode données. Par ailleurs, ces équipements assurent la transition vers le Full IP, car ils assurent simultanément la gestion de téléphonie classique (TDM). Certains matériels se contentent d’ailleurs de recevoir une carte IP et une passerelle, avec la gestion logicielle et matérielle adéquate. Toutefois, on peut déjà parler d’une intégration de la VoIP. Autre avantage, cela permet une évolution progressive par plateau par exemple. Dans cette architecture, comme dans la précédente, on dispose d’un centre d’appels virtuel regroupant plusieurs entités physiques. « L’apport visible le plus significatif de la VoIP est cette virtualisation, affirme Gilles Cordesse, directeur EMEA technologie et stratégie, chez Avaya. Auparavant, une entreprise disposant de plusieurs centres devait faire vivre des entités indépendantes, avec une gestion et une administration spécifique chacune. La VoIP permet de relier les différents plateaux par des liaisons de données afin de gérer l’ensemble comme un centre d’appel unique, en centralisant les différentes fonctions. Dans le même temps, cela permet de distribuer les appels et les fonctions. On obtient en quelque sorte une architecture centralisée/ distribuée. » Une spécificité qui favorise et simplifie le modèle offshore avec des centres d’appels à l’étranger.

Des liaisons intersites en VoIPschema2.gifL’ajout d’une passerelle Voix-Données permet de renvoyer des communications entre sites en passant par le circuit des données.

p. 3
Réduire
Les combinaisons VoIP et TDM permettent une évolution progressive.
« Aujourd’hui, les entreprises possèdent encore des autocommutateurs utilisant des technologies de téléphonie classique – TDM pour Time Division Multiplexing. Néanmoins, les équipements les plus répandus restent les PABX mixtes (TDM/IP ou IPBX) permettant de préserver l’existant, tout en bénéficiant des apports IP pour les nouveaux postes de télé-acteurs », confirme Jean-Denis Garo. L’entreprise déployant des postes en VoIP devra alors se munir de combinés IP, ou de logiciels softphone. « Sur ces architectures, les postes TDM se connectent au PABX, tandis que les postes IP sont raccordés au câblage informatique, insiste Pierre Casciola. Une économie supplémentaire, car les cartes de connexion au PABX deviennent inutiles. Si l’entreprise souhaite ouvrir une nouvelle plate-forme VoIP en banlieue par exemple, il lui suffira d’acheter un IPBX et de monter un centre d’appel virtuel. Pour cela, elle reliera par une liaison de données cette installation en ajoutant une ou deux cartes au PABX existant, qui centralise l’ensemble de l’administration. Ce qui revient moins cher que de tout refaire pour passer en VoIP. Surtout si l’ensemble n’est pas encore amorti… »
Avaya_Gilles_Cordesse145227.gifGilles Cordesse, directeur EMEA technologie et stratégie, chez Avaya.
« Avec la VoIP, les fonctions d’un poste de télé-opérateur peuvent être récupérées à distance, ajoute Gilles Cordesse. Cela élargit les possibilités en cas de débordement. Ainsi, un employé d’astreinte peut être appelé chez lui et se connecter son ordinateur pour récupérer son poste de travail à distance, via un client léger, sans installation. Il devient automatiquement une position supplémentaire du centre d’appel. De même, des étudiants, femmes à la maison ou retraités, mais aussi des spécialistes juridiques, financiers… peuvent travailler quelques heures comme télé-acteurs en fonction de leur emploi du temps, etc. »


Le Full IP : la VoIP devient une application dans l’entreprise

Sur une nouvelle installation, le choix du Full IP semble une évidence. Un simple routeur suffit à communiquer avec le centre d’appel principal qui gère l’administration centrale et distribue les appels. Dans ce cas, une liaison de données via un routeur vers l’IPBX central suffit. Mieux encore, « Les PABX Full IP disposent de switches acceptant directement des entrées H323 ou SIP, et redistribuent ces flux, précise Salim Levieux. Le centre d’appel n’est alors plus obligé de s’équiper en liaison RNIS, nécessitant des délais d’installation, des cartes spécifiques et une maintenance indispensable. Des économies aisément envisageables, car les opérateurs télécom sont eux-mêmes équipés de switches H323/SIP. »
« Les premiers à tirer le marché de la VoIP en centre d’appels ont été les outsourcers, rappelle Pierre Casciola. En effet, il est primordial pour eux de modifier aisément et instantanément le débit du lien vers des opérateurs pour répondre à des demandes ponctuelles ou absorber des pics. Avec des liaisons de données en IP cela est possible. Avec des liens T2, il faut soit installer d’avance, soit attendre plusieurs jours. De plus, les prix sont beaucoup plus élevés. Deuxième avantage, l’intégration téléphonie et informatique (Computer Telephony Integration) bénéficie d’une souplesse évidente, puisque la voix devient une donnée parmi d’autres. Cela facilite grandement le développement ou le déploiement de certaines applications comme l’enregistrement des communications (obligation légale ou supervision), gestion des ressources humaines, logiciels de CRM… » Avec les standards liés à IP (comme SIP par exemple) le coût pour développer de tels logiciels devient plus abordable, ce qui tirera les possibilités vers le haut et les prix vers le bas.

Intégration d’IPBXschema3.gifDans le centre d’appel 1, l’introduction de l’IPBX simplifie l’architecture, et les téléphones deviennent un élément réseau avec adresse IP. Tout ce qui entre dans le centre devient de la donnée. Dans le Centre informatique, quelques combinés traditionnels ont été conservés. Très souvent, les entreprises effectuent une migration progressive.
p. 4
Réduire
Et la sécurité dans tout ça ?

Si la téléphonie devient une application sur des systèmes informatiques ouverts et communicants, elle s’expose aussi aux dangers de piratage et d’écoute. « Le piratage des communications TDM (de type écoute téléphonique) reste une opération complexe, poursuit Gilles Cordesse. Avec la VoIP, un chiffrement s’impose et s’effectue généralement directement sur le matériel. L’algorithme utilisé (AES) recourt à une clé de chiffrement de 128 bits. Si la communication repose sur l’échange d’une clé statique de chiffrement, celle-ci est différente pour chaque communication. Un protocole qui semble faire l’unanimité. D’ailleurs, chez Avaya, nous avons abandonné notre propre algorithme AEA (Avaya Encryption Algorithm) au bénéficie du standard AES. »
Au cœur de la stratégie de la relation client, le centre d’appel se doit de rester le plus disponible possible. Dans ce contexte, toute panne nuit directement à l’image de l’entreprise. « Côté disponibilité, une mesure de secours minimale s’impose pour un centre d’appel virtuel, conseille Salim Levieux. Si deux plates-formes sont reliées par une liaison à 2 Mbits/s via routeur, des liaisons de secours T2 inactives peuvent intervenir en cas de problème. Elles supportent alors jusqu’à 30 fois 64 lignes téléphoniques, soit 160 communications simultanées le temps de la panne. »
En Full IP, les plans de reprise d’activité et les processus sont largement simplifiés. Ainsi, rapporte Pierre Casciola, « Les architectures de centre d’appel virtuel disposent de nombreux moyens préventifs à combiner : réplication d’annuaires, contrat avec l’opérateur pour rediriger les appels en cas de rupture de liens et augmentation du débit si nécessaire afin de limiter les dégâts. Les télé-opérateurs peuvent même reprendre très vite leur poste de travail IP sur un autre lieu avec une simple connexion au réseau informatique de secours, même dans un autre bâtiment. »
Bien entendu, les équipements disposant de composants redondants coûtent plus cher. Mais à combien l’entreprise évalue-t-elle une panne ?
Par ailleurs, l’architecture peut aussi contribuer à améliorer les choses, comme l’illustre Salim Levieux : « Sur une architecture Full IP jusqu’à l’opérateur, la gestion du circuit de l’appel permet d’optimiser encore la capacité des PABX Full IP en réalisant les opérations suivantes : établissement de l’appel, envoi de l’adresse IP de l’équipement IP de l’utilisateur final (téléphone IP, softphone, etc.) à l’opérateur, et mise en relation directe du téléphone VoIP avec le switch opérateur via le routeur de l’entreprise. Résultat : cela libère la ressource au niveau PABX. De plus, l’ACD gère toujours l’appel et les fonctions CTI demeurent. »


Migration en VoIPschema4.gifIci, l’intégration complète voix/données est effectuée, et les communications vocales sont encodées en VoIP en interne. L’administration téléphonique est centralisée et les appels distribués selon les besoins et les spécialités. Les lignes T2 sont mutualisées. En termes de sécurité, les serveurs téléphoniques et LDAP peuvent être dupliqués sur des sites distants, et des lignes T2 ajoutées pour les activer en cas de panne.



Stade ultime : l’externalisation via Centrex

Puisque la VoIP ramène la téléphonie au rang d’application en réseau, les opérateurs et prestataires proposent le centre d’appel en ASP (applications hébergées). Cela permet d’accéder, pour un prix forfaitaire mensuel par agent, à des infrastructures professionnelles. Et surtout, fini les IPBX et leur maintenance ! D’autant que la mutualisation des moyens autorise le prestataire à facturer raisonnablement la prestation. « Ces architectures de qualité, robustes et surveillées en continu, sont le plus souvent directement interconnectées chez les opérateurs télécom, affirme Salim Levieux. L’ASP permet aussi de répondre à la variation de la demande, aux débordements éventuels, et aux opérations coup-de-poing ou événementielles. De plus, les délais de déploiement sont quasi nuls. Nous proposons même une offre “ Grid ”, pour laquelle si le client demande 50 positions sur un serveur, nous en installons 200. Il peut alors les activer à la demande en fonction de ses besoins. »
Autre intérêt, les dépenses peuvent alors passer en frais de fonctionnement et non d’investissement. Enfin, dans de grandes entreprises, ou centre d’appels conséquents, l’Installation de la plate-forme ASP incarne une solution de gestion simplifiée et éprouvée.
Certes, rares sont les centres d’appels disposant d’une architecture totalement Full IP en VoIP. Néanmoins, les offres ASP se déploient et toutes les nouvelles plates-formes sont totalement IP. Une telle intégration informatique élargit considérablement les possibilités, et de nouvelles utilisations devraient rapidement voir le jour.


Le Centrex pour externaliser la fonction téléphonieschema5.gifAvec la VoIP, la téléphonie peut devenir une application comme une autre et donc être externalisée. L’opérateur prend en charge l’infrastructure principale et tous les aspects de téléphonie classique.

Copyright L'Informaticien, tous droits réservés.
p. 1
Réduire
ljcolor8164_Copier5.gifUtiliser wikis et blogs pour faciliter l’administration système
par Ti Leggett, LINUX JOURNAL, traduit par Bertrand GARÉ - copyright l'Informaticien, tous droits réservés

Quelques travaux pratiques sur TWiki et WordPress qui montrent comment wikis et blogs peuvent être utiles pour l’administration système et sa documentation.

L’administration de système est similaire à la conduite d’un navire. Vous devez conserver vos moteurs en bon état, subvenir aux besoins de votre équipage, assurer sa sécurité, surveiller la navigation, sans oublier de tenir le livre de bord. Deux technologies ont émergé dans les dernières années pour vous aider à réaliser tout ou partie de ces tâches, les wikis et les blogs.


Maintenir une bonne documentation

Je trouve qu’un des aspects les plus difficiles de l’administration système est de conserver une documentation exacte et à jour. Documenter la solution à un problème ennuyeux aujourd’hui vous aidera à réutiliser la solution plus tard lorsqu’il se produira encore. Si vous avez déjà travaillé en équipe, vous vous rendez compte du côté critique d’une bonne documentation. Même si vous êtes le seul administrateur système, vous engrangerez encore les avantages d’une bonne documentation, d’autant plus si un autre administrateur est appelé à monter à bord !

Les buts d’une bonne documentation devraient être :
• rendre facile pour vous et vos collaborateurs l’accès à l’information pertinente ;
• rendre facile pour les nouveaux employés leur intégration pour être productif rapidement ;
• rendre facile la création, l’édition et la suppression de la documentation ;
• conserver les changements et l’identité de ceux qui les réalisent.
• limiter en lecture et en écriture qui voit ou qui édite la documentation par un système de certification.
Malheureusement, maintenir votre documentation à jour peut être en soi un travail à plein temps. Documenter, n’est pas une tâche enchanteresse, mais vous rapportera certainement beaucoup sur le long terme.


Pourquoi un wiki ?

C’est là que le wiki entre en jeu. Selon Wikipedia, « un wiki est un type de site Web qui autorise des utilisateurs à ajouter et éditer du contenu et est particulièrement adapté pour une mise en ligne collaborative constructive. »
Cela signifie qu’un wiki vous permet de conserver et d’éditer votre documentation dans un emplacement centralisé. Vous pouvez profiter de cette documentation sans avoir à vous soucier de la plate-forme que vous utilisez. Tout ce dont vous avez besoin se résume à un navigateur Web. Quelques wikis ont la capacité de se tenir au courant de chaque révision d’un document avec la possibilité de revenir à une version antérieure si certains changements aberrants ont été réalisés sur un document.
Le seul problème pour un nouvel utilisateur est d’apprendre le langage spécifique de votre wiki mais, quelquefois, ce n’est même pas nécessaire.
Cette particularité du wiki est aussi un de ses inconvénients. Les wikis autorisent un flux assez libre, et bien que cela vous permette de vous concentrer sur l’obtention rapide de la documentation, il peut rapidement vous faire perdre le contrôle de l’organisation de votre wiki. Réaliser une table des matières de tous les sujets accessibles est très pratique dans ce cas. De quelque manière que vous décidiez d’organiser votre wiki, assurez-vous qu’il est bien compris par tout le monde. En fait, le premier bon document est celui qui précise l’organisation du wiki !
p. 2
Réduire
TWiki

Il y a plusieurs wikis Open Source disponibles, tel que MediaWiki (lire l’article de Reuven M. Lerner, en page 62 de Linux Journal de février 2006 pour plus d’information sur MediaWiki ) et MoinMoin, chacun avec sa propre philosophie de mise à jour et de mise à disposition, mais ici nous nous concentrerons sur TWiki.

Quels sont les principaux avantages de TWiki ?
• Une notion de réseaux qui permettent à l’administrateur du wiki de séparer des domaines de collaboration dans leurs propres sections, chacun avec son propre ensemble de règles d’autorisation et de sujets.
• Un plug-in et un système de skins modulaires qui vous permet de personnaliser facilement le wiki.
• Une base bien établie d’utilisateurs et promoteurs.
• Le contrôle de la révision fondé sur RCS.
• Il s’appuie sur PERL et le mod_perl ou FastCGI peuvent être utilisés.
• L’authentification est gérée à l’extérieur du wiki par les mécanismes tel que le htpasswd d’Apache.

La version stable la plus courante du moment est Cairo, ou TWiki20040904. Il a été diffusé, comme son nom le suggère, le 4 septembre 2004, et il s’est révélé très stable. Cependant, il lui manque des fonctions, qui peuvent être très utiles, publiées dans la version Bêta actuelle de Dakar. La version de Dakar que nous utilisons ici est : TWikiRelease2005x12x17x7873beta.

Installer TWiki est relativement facile, mais nécessite cependant un peu de travail. J’espère, avec la progression de la version bêta, que nous verrons des améliorations dans la facilité d’installation et l’amélioration de la clarté de la documentation.
En premier lieu, vous devez créer le répertoire où vous voulez installer TWiki, disons /var/www/wiki. Ensuite, décompressez la distribution TWiki dans ce répertoire. Vous devez vous assurer que l’utilisateur a les droits pour exécuter des scénarios CGI (habituellement apache ou www-data), pour accéder à tous les dossiers et disposer de tous les droits en écriture :

# install -d -o apache /var/www/wiki
# cd /var/www/wiki
# tar zxf /path/to/TWikiRelease2005x12x17x7873beta.tgz
# cp bin/LocalLib.cfg.txt bin/LocalLib.cfg
# vi bin/LocalLib.cfg lib/LocalSite.cfg
# chown -R apache *
# chmod -R u+w *



Maintenant, il faut copier bin/LocalLib.cfg.txt à bin/LocalLib.cfg, et l’éditer. Vous avez besoin d’éditer la variable twikiLibPath $ pour pointer sur le chemin de votre TWiki lib répertoire, / var / www / wiki / lib, dans notre cas. Vous devez créer aussi lib/LocalSite.cfg pour refléter l’information spécifique de votre site. Voici un exemple de ce qui doit figurer dans LocalSite.cfg :

# This is LocalSite.cfg. It contains all the setups for your local
# TWiki site.
$cfg{DefaultUrlHost} = "http://www.example.com";
$cfg{ScriptUrlPath} = "/wiki/bin";
$cfg{PubUrlPath} = "/wiki/pub";
$cfg{DataDir} = "/var/www/wiki/data";
$cfg{PubDir} = "/var/www/wiki/pub";
$cfg{TemplateDir} = "/var/www/wiki/templates";
$TWiki::cfg{LocalesDir} = ‘/var/www/wiki/locale’;


Voici une section de l’exemple de la configuration Apache de votre dossier qui permet à ce wiki de fonctionner :

ScriptAlias /wiki/bin/ "/var/www/wiki/bin/"
Alias /wiki "/var/www/localhost/wiki"
<Directory "/var/www/wiki/bin">
    Options +ExecCGI -Indexes
    SetHandler cgi-script
    AllowOverride All
    Allow from all
</Directory>
<Directory "/var/www/wiki/pub">
    Options FollowSymLinks +Includes
    AllowOverride None
    Allow from all
</Directory>
<Directory "/var/www/wiki/data">
    deny from all
</Directory>
<Directory "/var/www/wiki/lib">
    deny from all
</Directory>
<Directory "/var/www/wiki/templates">
    deny from all
</Directory>


TWiki intègre un script de configuration que vous exécutez pour installer TWiki. Ce scénario n’est pas seulement utilisé lors de l’installation initiale mais aussi lorsque vous voulez ensuite mettre en place des plug-ins. À ce moment, vous êtes prêt à configurer TWiki. Pointez votre navigateur sur votre script de configuration de TWiki :

http://www.example.com/wiki/bin/configure

Vous devez vous intéresser en particulier à la section Sécurité, mais nous la visiterons bientôt. Jusqu’à ce que vous ayez inscrit votre premier utilisateur, vous devez laisser tous les paramètres comme ils sont. Si le script de configuration vous envoie des avertissements ou des messages d’erreurs, vous devez d’abord fixer les problèmes puis rejouer le script. Dès que vous cliquez « Next », vous êtes invité à entrer un mot de passe. Ce mot de passe est utilisé toutes les fois que le script de configuration est exécuté et assure qu’il n’y a pas d’accès indu.
p. 3
Réduire
Une fois que vous avez réalisé la configuration avec succès, il est temps d’entrer dans le cœur du sujet et du wiki. Pointez votre navigateur sur :

http://www.example.com/wiki/bin/view

… et vous arrivez sur la page Web principale. Dans le milieu de la page, un lien est présent pour l’inscription. Inscrivez-vous comme un utilisateur. Soyez sûr de fournir une adresse de courrier électronique valide car le logiciel l’utilise pour valider votre compte. Une fois que vous avez vérifié votre compte de l’utilisateur, vous avez besoin de vous inscrire au TWikiAdminGroup. Revenez à la page d’accueil et cliquez sur les Groupes, à gauche, et choisissez TWikiAdminGroup. Éditez cette page et changez la variable GROUPE pour inclure votre nouveau nom de l’utilisateur :

   Set GROUP = %MAINWEB%.TiLeggett
   Set ALLOWTOPICCHANGE = %MAINWEB%.TWikiAdminGroup


Les trois espaces blancs au commencement de chacune de ces lignes sont essentiels.

Ces deux lignes ajoutent votre utilisateur au TWikiAdminGroup et permettent aux seuls membres du TWikiAdminGroup de modifier le groupe. Nous sommes maintenant prêts à permettre l’authentification pour notre wiki, en revenant à :
http://www.example.com/wiki/bin/configure.

Plusieurs options fournies dans la section Sécurité sont utiles. Vous devriez vous assurer que les options {UseClientSessions} et {sessions} {UseIPMatching} sont disponibles.

Ainsi, ajoutez l’option {LoginManager} à :

TWiki::Client::TemplateLogin
et {PasswordManager} à :
TWiki::Users::HtPasswdUser.

Si votre serveur le supporte, vous devriez paramétrer : {HtPasswd} {Encoding} à sha1.
Enregistrez vos changements et revenez au wiki. Si vous ne vous connectez pas automatiquement, il y a un lien en haut à gauche de la page qui vous permet de le faire.
Maintenant que votre authentification fonctionne, vous pouvez vouloir verrouiller votre wiki afin que les utilisateurs non autorisés ne changent pas votre répertoire de documentation en un dépôt des données illicite. TWiki a un système d’autorisation assez sophistiqué qui est segmenté depuis les préférences du site de bout en bout jusqu’au sujet spécifique.
Avant de clore la page principale, quelques tâches de plus nous attendent. Tout d’abord, certains utilisateurs peuvent avoir changé la page principale, et l’inscription de nouveaux utilisateurs échouera. Cela s’explique par le fait qu’une partie du processus d’inscription d’un utilisateur implique de créer un sujet pour cet utilisateur sous la page principale. Dakar a un utilisateur, TwikiRegistrationAgent, qui est utilisé pour réaliser cette opération. Dans la page principale, utilisez la jump box en haut à gauche pour aller au sujet WebPreferences. Éditez le sujet en incluant les quatre lignes suivantes et enregistrez vos changements :

Set ALLOWTOPICRENAME = %MAINWEB%.TWikiAdminGroup
Set ALLOWTOPICCHANGE = %MAINWEB%.TWikiAdminGroup
Set ALLOWWEBRENAME = %MAINWEB%.TWikiAdminGroup
Set ALLOWWEBCHANGE = %MAINWEB%.TWikiAdminGroup,
 -->;%MAINWEB%.TWikiRegistrationAgent


Cela permet aux seuls membres du TWikiAdminGroup de faire des changements ou de renommer la page principale ou de mettre à jour les préférences de la page principale. Il permet aussi à l’utilisateur TWikiRegistrationAgent de créer les sujets de nouveaux utilisateurs quand les nouveaux utilisateurs s’enregistrent. J’ai inclus ce patch que vous devez appliquer aussi à lib/TWiki/UI/Register.pm. Le voici ci-après, mais vous pouvez aussi le télécharger à partir du site FTP de Linux Journal (voir les ressources en ligne) :

--- lib/TWiki/UI/Register.pm.orig       2006-01-04 01:34:48.968947681 -0600
+++ lib/TWiki/UI/Register.pm    2006-01-04 01:35:48.999652157 -0600
@@ -828,11 +828,12 @@
 
     my $userName = $data->{remoteUser} || $data->{WikiName};
     my $user = $session->{users}->findUser( $userName );
+    my $agent = $session->{users}->findUser( $twikiRegistrationAgent );
     $text = $session->expandVariablesOnTopicCreation( $text, $user );
 
     $meta->put( ‘TOPICPARENT’, { ‘name’ => $TWiki::cfg{UsersTopicName}} );
 
-    $session->{store}->saveTopic($user, $data->{webName},
+    $session->{store}->saveTopic($agent, $data->{webName},
                                  $data->{WikiName}, $text, $meta );
     return $log;


Autrement, les répertoires principaux des nouveaux utilisateurs ne pourront être créés et son inscription échouera. Une fois que vous avez vérifié que la page principale est verrouillée, vous devez faire de même pour les accès Web à Twiki et à la sandbox.
Lorsque vous avez fini de configurer TWiki, vous avez du obtenir les autorisations sécurisées sur des dossiers :

# find /var/www/wiki/ -type d -exec chmod 0755 {} ‘;’
# find /var/www/wiki/ -type f -exec chmod 0400 {} ‘;’
# find /var/www/wiki/pub/ -type f -exec chmod 0600 {} ‘;’
# find /var/www/wiki/data/ -type f -exec chmod 0600 {} ‘;’
# find /var/www/wiki/lib/LocalSite.cfg -exec chmod 0600 {} ‘;’
# find /var/www/wiki/bin/ -type f -exec chmod 0700 {} ‘;’
# chown -R apache /var/www/wiki/*



Comme je l’ai mentionné auparavant, TWiki a un système du plug-in que vous pouvez utiliser. Beaucoup de plug-ins sont disponibles à partir du site Web TWiki. Soyez sûr que les plug-ins que vous choisissez ont été mis à jour pour Dakar avant que vous les utilisiez.
p. 4
Réduire
Garder vos utilisateurs au courant !

Un aspect important quelque fois oublié de l’administration système est de tenir ses utilisateurs informés. La plupart des utilisateurs aiment savoir lorsqu’il y a de nouvelles fonctionnalités disponibles ou lorsque les ressources sont en panne ou indisponibles. Non seulement cela rend les utilisateurs plus heureux d’être bien informés, mais cela peut aussi vous rendre la vie plus facile.
Une autre chose que vous voulez faire lorsque le serveur central est « tombé », c’est une réponse aux questions d’utilisateurs pour leur expliquer pourquoi ils ne peuvent accéder à leurs dossiers. Si vous avez habitué vos utilisateurs à regarder l’état de l’infrastructure dans un seul emplacement centralisé, tout ce qu’il vous reste à faire est de poster un message à cet endroit lorsqu’un problème survient. Les mailings lists peuvent remplir le même office, mais que faire si le serveur de mail est tombé ?
Certaines personnes, par exemple votre patron ou les cadres dirigeants de votre entreprise, peuvent aimer savoir l’état du système ou ce qui se passe. Il ne serait pas très convenable d’envoyer ces mises à jour quotidiennement à tout le monde par mail. Il est possible de créer une autre liste de distribution pour ces notifications, mais vous pouvez aussi considérer l’utilisation d’un blog.
Si vous n’êtes pas familier avec les blogs, faisons une référence avec la définition qu’en donne Wikipédia : « un blog est un site Web dans lequel les entrées du journal sont affichées sur une base régulière et dans un ordre chronologique inverse. »
La notion de blog a toujours été sous la forme de journaux. Récemment, ils ont explosé sur Internet. La plupart du temps, un blog est initié comme un journal personnel ou comme une façon de rapporter des nouvelles, mais les blogs peuvent être aussi extrêmement utiles pour un administrateur système. Ils peuvent aider un administrateur système à donner des informations quasiment à la minute aux utilisateurs sur ce qu’ils font ou l’état de l’infrastructure. Si vous mettez à jour votre blog fidèlement, vous pouvez voir ou retracer facilement ce que vous avez accompli  et ce dont vous pouvez faire cas pour la demande d’augmentation que vous espérez ! Il vous aidera aussi à conserver des traces sur ce que font vos collaborateurs. Et, avec des progiciels de blogs s’appuyant sur des flux RSS, les utilisateurs peuvent s’abonner aux blogs et être notifiés quand il y a de nouveaux posts.


WordPress

Il y a beaucoup de progiciels de blog aujourd’hui, mais nous ne traiterons ici que de WordPress. WordPress est rapide, a un plug-in agréable et des skins qui vous permettent de personnaliser son contenu selon vos désirs. Les seules exigences pour utiliser WordPress sont la présence préalable d’Apache, MySQL et PHP. Je ne vais pas décrire comment installer WordPress, parce que la documentation en ligne est très claire et facile suivre. À la place, je commence dès la fin de l’installation pour introduire quelques plug-ins utiles.
Je suggère de commencer avec WordPress v1.5.2 bien que v2.0 soit la version la plus récente. Les problèmes de la version initiale v2.0 ont justifié une nouvelle version v2.0.1. Aussi, beaucoup de plug-ins n’ont pas eu le temps de se mettre à niveau sur cette nouvelle version.
La première chose que vous devriez faire après avoir installé WordPress est de vous connecter comme utilisateur. Une fois connecté, un tableau de bord vous est présenté. Au sommet de la page un menu d’options comprend « Write », « Manage », « Links » et ainsi de suite. Vous devez tout d’abord vous créer un compte en cliquant sur l’option « User ». Une fois chargée, deux formulaires « your profile » et « Authors & Users » sont disponibles sous le principal menu. Cliquez sur Authors & Users et faites défiler vers le bas jusqu’à la section « Add new user » et remplissez les champs du texte. Une fois ceci effectué, le nouvel utilisateur apparaît dans la section des utilisateurs enregistrés. Il y a plusieurs colonnes de données dont une s’intitule « promote », Lorsque vous cliquez dessus un utilisateur devient auteur et lui permet d’obtenir plus de privilèges en fonction de son profil. Une fois votre utilisateur promu, son niveau est fixé à 1. Des signes « plus » et « moins » sur les côtés permettent d’augmenter le niveau de l’utilisateur. Augmentez-le jusqu’à neuf, soit le plus haut niveau qu’un utilisateur non administrateur puisse avoir. Si vous avez besoin de supprimer des utilisateurs qui ont été des auteurs, tout ce dont vous avez besoin est de baisser leur niveau au-dessous de 1 et le système les efface. J’ai inclus un lien à une description plus fine des privilèges de chaque niveau de l’utilisateur dans les Ressources en ligne.
Il y a quelques autres options que vous pouvez souhaiter changer. Dans les Options Générales, il y a des boîtes de dialogues pour permettre à quelqu’un de s’enregistrer pour devenir un utilisateur du blog et exiger que les utilisateurs soient enregistrés pour poster des commentaires. Vous pouvez ou pouvez ne pas vouloir de ces options, selon vos soucis de la sécurité et de la sensibilité de votre blog. Sur notre site, les utilisateurs ne peuvent pas s’inscrire eux-mêmes, bien qu’ils puissent poster des commentaires sans être enregistrés. Vous devriez explorer tous les menus et toutes leurs options pour les insérer pour votre site.


WordPress Plug-ins

WordPress dispose de nombreux plug-ins, très modulaires. WordPress comporte aussi une notion de catégories. Les catégories peuvent avoir beaucoup d’usages, par exemple permettre de créer des mini-blogs pour des communautés différentes d’utilisateurs ou de grouper des posts sur un sujet ou un aspect spécifique de l’infrastructure. Mais, vous ne voulez peut-être pas que tous les utilisateurs soient capables de voir toutes les catégories. Le plug-in Userextra, conjointement avec le plug-in Usermeta, vous permet de contrôler exactement cette sorte de chose. Une fois vous avez suivi les directives d’installation de ces plug-ins, deux menus supplémentaires sont disponibles sous Options et un de plus sous « Manage ». Cela vous permet d’affiner les accès.
Un autre plug-in que vous pouvez trouver utile est le HTTP Certification plug-in. Il vous laisse utiliser un mécanisme d’authentification externe, tel que le BasicAuth d’Apache, comme un moyen d’authentification à WordPress. C’est très utile si vous avez déjà un annuaire LDAP ou un domaine Kerberos que vous utilisez pour votre politique d’authentification et si vous avez mod_auth_ldap ou mod_auth_kerb en fonction.
Beaucoup plus de plug-ins sont disponibles pour WordPress à partir du Codex WordPress et le WordPress Plugin DB. Si vous sentez que des fonctionnalités vous manquent, il y a beaucoup d’exemples et documentation disponibles sur le site de WordPress et un référentiel de plug-ins peut vous aider à écrire votre propre plug-in.


En résumé

J’espère qu’après cette visite dans le tourbillon des wikis et des blogs, vous souhaitez aller vérifier comment ils peuvent être utiles dans vos tâches quotidiennes de capitaine au long cours, en fournissant toutes les informations nécessaires à vos utilisateurs. De même, s’il existe beaucoup de voiles différentes pour mener un bateau, il existe beaucoup d’outils de wiki et de blog. Le bon< package sera celui qui mettra en confiance vos utilisateurs et vous rendra vous-même plus efficace.


Ressources pour cet article : www.linuxjournal.com/article/8832.

Ti Leggett (ti@daleggetts.com) est administrateur système à plein temps. Lorsqu’il n’est pas au travail, il joue sur sa Gibson-25 ou arrange sa maison et fait de la menuiserie.

Copyright l'Informaticien, tous droits réservés
p. 1
Réduire
L’AVENIR DE JAVA
Première partie : Mustang et Dolphin
par Pierre Tran - copyright l'Informaticien, tous droits réservés

Quel avenir pour Java ? Ce mois-ci, dans une première partie, nous passerons en revue les fonctionnalités de la future version de Java pour le desktop (Java SE 6, nom de code Mustang) et évoquerons la version 7 (Dolphin) prévue dans deux ans. Dans la seconde partie, le mois prochain, nous traiterons le volet serveur, avec l’évolution de Java EE et le projet Open Source Glassfish.

Text5.gifEn dix ans, le langage Java a connu de nombreuses évolutions. De quelques centaines de classes dans le JDK 1.0 on est passé à plus de 3 000 dans J2SE 5.0.  Des API entières ont été intégrées (Swing, java2D…). À l’automne 2006 sortira une nouvelle version de Java, estampillée Java SE 6, qui ne dérogera pas à la règle. La première version bêta fonctionnellement complète de Java SE 6, nom de code Mustang, est sortie le 15 février 2006. Fournie avec son code source, elle permet aux développeurs d’évaluer les futures fonctionnalités. Cette version comporte son lot de nouveautés que l’on peut classer en trois catégories : les nouvelles API, les améliorations de l’existant et enfin les détails d’implémentation et les outils de monitoring.


Les nouvelles API et fonctionnalités

Sécurité
Concernant la sécurité, Java SE 6 intègre maintenant en natif la plate-forme GSS/Kerberos. Le module d’ouverture de session JAAS (Java Authentification and Authorization Service) utilise une authentification LDAP. Une nouvelle API Smart Card I/O fait son apparition.

Services Web
Les technologies relatives aux services Web sont présentes côté serveur (Java EE). Elles arrivent maintenant sur les applications clientes (Java SE). La pile complète, à jour et sécurisée, des services Web est désormais disponible au cœur du JRE (Java Runtime Environment) avec JAX-WS 2.0 et JAXB 2.0.

JAX-WS 2.0 (Java API for XML Web Services) s’appelait précédemment JAX-RPC 2.0. Il s’agit, comme son nom l’indique, d’une API pour les services Web. Si la précédente version de JAX-RPC utilisait sa propre méthode de correspondance entre données XML et objets Java,  JAX-WS 2.0 s’appuie désormais sur JAXB 2.0 (voir plus loin). JAX-WS 2.0 utilise également les nouvelles facilités offertes par la version 5 du langage Java telles que les annotations (JSR 175). Les annotations facilitent le développement de scénarios classiques côté client, mais également côté serveur. Elles permettent de décharger le développeur de l’ajout d’informations jusqu’à présent nécessaires pour transformer un service classique en service Web. Certaines de ces métadonnées ont d’ailleurs été définies tout spécialement pour le compte des services Web (JSR 181). Elles permettent de remplacer la technique de correspondance Java-WSDL en annotant directement le code Java. Selon Doug Kohlert, responsable technique de JAX-RPC et JAX-WS, ces nouvelles facilités permettent d’économiser jusqu’à 85 % de code en taille et en nombre.  Cette nouvelle version de JAX-WS intègre bien sûr les dernières versions des standards utilisés. La recommandation SOAP 1.2 est désormais supportée, en plus du support de SOAP 1.1 plus largement déployé. WSDL 2.0, qui n’est pas encore une recommandation, est supporté au même titre que WSDL 1.1 et WS-I Basic Profile 1.1. JAX-WS autorise l’utilisation optionnelle des récentes spécifications liées à l’optimisation des données binaires dans des messages SOAP : MTOM/XOP (Message Transmission and Optimization Mechanism   / XML Binary Optimized Packaging).
Si JAX-WS 2.0 offre un certain niveau de compatibilité descendante, le fonctionnement de code issu de JAX-RPC1 n’est pas assuré, une retouche du code sera donc nécessaire. Enfin, JAX-WS 2.0 s’appuyant sur de nombreuses fonctionnalités du Java 5, comme les annotations (JSR 175), les génériques (JSR 14), les types énumérés (JSR 201), les machines virtuelles antérieures ne sont pas supportées.

JAXB 2.0 (Java Architecture for XML Binding) permet de générer des classes Java à partir de schémas XML (.XSD) et supporte désormais l’ensemble des fonctionnalités définies dans XML Schema. JAXB 2.0 autorise une correspondance bidirectionnelle entre le schéma et les classes Java.
JAXB2.0 utilise pleinement les facilités du langage Java 5, avec pour conséquence des problèmes de compatibilité avec les JDK antérieurs. Du côté des grammaires, seul les schémas XML sont supportés (une DTD peut toujours être transformée en Schéma avec des outils idoines).

Les améliorations
JMX voit également quelques changements avec par exemple MXBeans.


Java Foundation Classes/Swing

Avec Java SE 6, un gros travail a été fait sur l’aspect desktop, notamment sur Java Foundation Classes/Swing (JFC/Swing). Une des grandes nouveautés est l’amélioration significative du look & feel des applications Windows et GTK qui se rapproche de celui des applications natives.
Pour améliorer le look & feel Windows, les API de Microsoft sont utilisées pour le rendu de certaines portions des composants. Cette fonctionnalité permet d’assurer la compatibilité avec le look & feel du futur Windows Vista. De la même manière, pour le look and feel GTK, l’API GTK est mise à contribution pour certaines portions de composants. Des améliorations dans la disposition des composants permettent d’obtenir la ligne de base de plusieurs composants ou l’espacement préféré entre les composants. Le support du glisser-déposer est largement facilité. Un grand nombre de bugs ont été corrigés mais, surtout, le système de glisser-déposer de Swing est plus puissant et plus facile à personnaliser. Swing fournit désormais un véritable double buffering, ce qui permet d’afficher instantanément au premier plan une application Java qui était en arrière plan. Il est maintenant possible de trier, de marquer et de filtrer le contenu des tables, une fonctionnalité provenant du projet JDNC (java Desktop Network Components). La classe SwingWorker permettant d’implémenter un thread en arrière plan est désormais intégrée. Le support de l’impression a été rajouté à JTextComponent, avec la possibilité de spécifier un en-tête et un pied de page. Il est possible de placer n’importe quel composant JComponent dans la zone libellé d’un onglet, par exemple une case à cocher, un bouton ou une liste déroulante.
p. 2
Réduire
Java2D

Cette API a été mise à jour pour améliorer l’affichage. Le rendu avec Single-Thread Rendering (STR) a été accéléré en réarchitecturant le code du rendu multithread. Disponible uniquement pour OpenGL dans cette version, STR est à la base de l’accélération graphique pour le futur.
Pour accélérer le graphisme sous Windows, le code natif Windows qui utilise Direct3D a été réécrit. Direct3D est également utilisé pour copier des images transparentes. L’idée est de restructurer le code DirectX pour ressembler au code OpenGL qui fournit d’intéressantes fonctionnalités telles que les opérations de transformations, de texte (anticrénelage), de clips complexes,  de transparence.
La qualité et les possibilités de texte ont été améliorées pour offrir le même niveau de fonctionnalités que sur les plates-formes supportées. Des modes d’anticrénelage de texte ont été ajoutés pour l’affichage de texte sur les écrans LCD. Les réglages d’anticrénelage propres à Windows ou à GTK sont respectés et automatiquement utilisés.


Localisation

Pour Java 6, le thème principal de la localisation est la « pluggabilité », la possibilité d’insérer facilement des composants de localisation. Avec Local-Sensitive Service SPI, l’objectif est de pouvoir ajouter des Service Provider Interfaces (SPI) pour les classes concernées par la localisation dans les packages java.text et java.util, par exemples des chaînes de formats de date ou des formatages de date.
La nouvelle API Normalizer supportera la normalisation de texte Unicode.


AWT

AWT va implémenter des fonctionnalités très attendues relatives à l’intégration au desktop.
De nouveaux modes modaux font leur apparition : application modality, toolkit modality et document modality. Ce qui résout nombre de bugs soulevés par les modalités. Petit détail, mais qui a son importance, la possibilité d’afficher un splash screen au démarrage d’une application Java. Il permet de faire patienter l’utilisateur qui a moins l’impression que son application rame au démarrage.
La possibilité de placer l’application en icône dans la barre de notification (systray) a été ajoutée. Cette fonctionnalité provient du projet JDIC (JDesktop Integration Components) et a été réécrite pour l’occasion.


« Ma fonctionnalité préférée »
Dans la blogosphère Java, les commentaires vont bon train concernant les nouvelles fonctionnalités de Mustang. C’est une version très attendue, notamment pour l’amélioration de l’affichage et sa meilleure intégration dans la plate-forme. Pour Chet Haase, blogueur sur java.net ( http://weblogs.java.net/blog/chet/archive/2006/02/these_are_some.html ), sa fonctionnalité préférée est la correction du rectangle gris. La perception de la performance d’une application tient parfois à des détails. Par exemple, l’interface utilisateur n’a pas besoin de tout redessiner suite à une quelconque validation. Même si le cycle d’effacement / mise à jour prend très peu de temps, le fait d’entrevoir le rectangle gris d’effacement donne la perception d’un programme lent, réputation que traîne Swing depuis longtemps. Avec Java 6, le rectangle gris est maintenant remplacé directement par une copie à partir d’un buffer interne. Le fait de ne plus voir ce fameux rectangle gris est un progrès monstrueux !



Déploiement

Les fonctionnalités de déploiement ont été ameliorées pour une meilleure intégration au desktop et au navigateur et pour accroître la sécurité. Les Deployment Helper Browser Controls pour Windows sont un ensemble de contrôles qui sont destinés au déploiement personnalisé en entreprise : détection des versions de JRE installées, installation du JRE à partir d’un emplacement spécifié, lancement d’une application JNLP à partir d’un emplacement spécifié. Ces contrôles seront supportés par Internet Explorer et…


FireFox

L’intégration de Java Web Start au desktop a été amélioré : création des items raccourcis et sous-menu améliorée, meilleure intégration dans la fonction « Ajouter / Supprimer un programme » de Windows.
Le support de la sécurité dans Java Plug-in et Java Web Start a été amélioré : vérification de signature, liste de révocation de certificat, OCSP (Online Certificate Status Protocol), etc.
Le moteur de téléchargement a été unifié pour Java Plug-in et Java Web Start pour fournir un modèle cohérent de téléchargement et de cache apportant plusieurs améliorations : indexation de JAR (nouveau dans Java Web Start), contrôle de la taille du cache et politique de nettoyage du cache (nouveau dans Java Web Start), protocole de versionning JNLP et support de JARDiff (nouveau dans Java Plug-in), compression et contrôle du cache HTTP, support hors-ligne, etc.


Les détails d’implémentation et les outils de monitoring

Dans cette section, nous détaillerons les nouveautés concernant le cœur de Java. Géré et approuvé par le groupe d’experts JSR 270, Java 6 apporte un certains nombre de nouveautés que l’on peu classer en six parties : le langage Java et les API Tool, les bibliothèques de base, la sécurité et le réseau, le client entreprise et XML, JMX et le monitoring.


Le langage Java et les API Tool
Bien que des modifications au langage ne soient pas planifiées pour Java 6, deux JSR en cours de développement fourniront des capacités accrues au traitement du langage : JSR 199 et JSR 269. La JSR 199, la Java Compiler API, définira un framework pour compiler des sources à l’intérieur des applications. La JSR 269, la Pluggable Annotation Processing API, va standardiser les capacités de l’actuel outil de traitement d’annotation (apt, annotation processing tool). Ces JSR sont encore en phase de développement. Java 6 contient quelques fonctionnalités Javac telles que le support de l’annotation @SuppressWarnings et le format de fichier de classe pré vérifié JSR 202. La JSR 233 est également planifiée pour Java 6. Elle définit un framework permettant aux langages de script d’accéder à l’information développée sur la plate-forme Java. Java 6 prévoit également d’inclure un moteur JavaScript basé sur l’implémentation Rhino de Mozilla. À terme, il est prévu d’intégrer un shell de script indépendant du langage de script.
p. 3
Réduire
Les bibliothèques de base
Aucune modification importante n’est planifiée pour les bibliothèques de base. La JSR s’est focalisée sur les problèmes qui traînaient de longue date.

Le monitoring
Dans cette catégorie sont regroupées les thèmes de diagnostique, monitoring et gestion. On citera en vrac : le support de DTrace (Dynamic Tracing sous Solaris) à l’exécution ; le support des verrouillages java.util.concurrent, jconsole plus convivial, amélioration du diagnostique avec java.lang.OutOfMemoryError, attachement de la console VM à la demande, amélioration de l’interface JVM Tool, améliorations à la Java Platform Debug Architecture (PDA)…


Une mise à jour mineure ou une révolution ?

Selon l’aveu même d’Alexis Moussine-Pouchkine, architecte Java chez Sun, comparé au nombre de nouvelles fonctionnalités introduites dans la version 5 de Java, Java 6 peut être plutôt considéré comme une release mineure. Pour d’autres comme le magazine en ligne Devx, « Java SE 6 a le potentiel d’être aussi révolutionnaire pour le desktop que l’était Java 2 pour le serveur. »
Mais si le langage a tenté de conserver sa philosophie d’origine, son indépendance vis-à-vis de la plate-forme, l’évolution actuelle du langage et les futures versions qui se profilent voient se dessiner de nouvelles tendances, citons par exemple une meilleure intégration au système d’exploitation hôte.
Une évolution rendue indispensable par deux phénomènes. D’une part, si Java a particulièrement bien réussi en environnement serveur et dans le domaine de l’embarqué (téléphones), il peine à s’imposer sur le poste de travail. Les applications Java desktop ont longtemps traîné une réputation de programmes lents, peu esthétiques et mal intégrés. La situation s’est améliorée d’année en année avec l’adjonction de nouvelles API, l’amélioration des machines virtuelles, la puissance croissante des ordinateurs. Mais on est loin d’atteindre les performances et la richesse des applications natives. Vouloir conserver une application capable de tourner sur plusieurs plates-formes implique de réduire les fonctionnalités au plus petit dénominateur commun.
L’autre phénomène qui pousse Java à évoluer vers le poste de travail est l’émergence du client riche et du Web 2.0. Grâce à des technologies comme Ajax, il devient possible de développer des applications Web tournant avec n’importe quel navigateur et offrant une ergonomie riche se rapprochant des applications natives, et ce dans n’importe quel langage de programmation. Dans ces conditions, quel intérêt de trainer la lourdeur et la complexité de Java ?
Sun a donc mis de l’eau dans son vin et a introduit quelques entorses au sacro-saint « write once, run everywhere ». En effet, pour implémenter des fonctionnalités plus proches de l’OS, comme le support de l’icône dans la barre de notification, Java 6 introduit des méthodes permettant de détecter si le système supporte la fonctionnalité : SystemTray.isSupported() et Desktop.isDesktopSupported(). À charge au développeur d’implémenter un plan B si le système d’exploitation ne supporte pas la fonctionnalité. Rien d’étonnant en soi, mais c’est une situation qui était impensable il y a quelques années. Pour assurer l’indépendance vis-à-vis de la plate-forme, de telles API n’auraient jamais été fournies en standard.
Reste à savoir si le revirement de Sun arrive à point, ou si la partie est déjà perdue. Car si beaucoup s’enthousiasment sur les améliorations Java 6 concernant la partie desktop, la concurrence s’annonce rude. Windows qui détient une large partie du poste client, ne semble pas prêt à céder la place. Alors que l’interface Java commence à rattraper son retard sur l’interface Windows, la prochaine version de Windows Vista apporte des nouveautés spectaculaires à l’interface utilisateur qui placent la barre très haut. Par ailleurs, il faut compter sur l’émergence des clients riches, qu’ils soient basés sur un navigateur (Flash, Ajax) ou sur une plate-forme d’exécution autonome (Eclipse RCP, XUL…). Les frameworks sont là (on recense plus de 90 frameworks Ajax), les projets Open Source abondent… Alors que reste-t-il à Java ?


Java 7

Lors du JavaOne, en juin 2005, Sun a affiché très clairement, lors de la présentation des orientations futures de la plate-forme Java, sa volonté de renforcer la pile des technologies XML présentes dans la machine virtuelle et de faciliter le développement des services Web. Graham Hamilton évoque que la version suivante (Java 7 ou Dolphin) poussera plus loin encore l’utilisation des services Web en les mariant avec JMX pour offrir de l’administration à distance par le biais de services Web. Il évoque également une possible intégration du XML au niveau même que le langage Java. Cependant, cela reste à l’état de projet et ne verra pas le jour avant 2008.



Historique des versions
En dix ans, le langage Java a connu plusieurs évolutions depuis sa version initiale JDK 1.0 en janvier 1996, avec un système de numération un peu erratique. Mise au point.
En 1996 sort le JDK 1.0 (Java Development Kit) qui définit la version initiale du langage Java (23 janvier 1996).
En 1997 sort le JDK 1.1 avec notamment les JavaBeans, JDBC, Java Remote Invocation (19 février 1997)
En 1998, Java devient Java 2 et le JDK devient Java 2 Platform Standard Edition (J2SE) pour distinguer la version Standard J2SE et la version Micro (J2ME). Le 9 décembre 1998 sort la version J2SE 1.2 (nom de code Playground). Cette version intègre la réflexion, Swing, Java Plug-in, Java IDL, le framework Collections. La JVM de Sun inclut pour la première fois un compilateur Just in Time (JIT).
En 2000 la version J2SE 1.3 (nom de code Kestrel) sort. Elle inclut la machine virtuelle HostSpot, JavaSound, JPDA (Java Platform Debugger Architecture) et JNDI (Java Naming and Directory Interface) disponible auparavant comme extension (8 mai 2000).
En 2002 sort J2SE 1.4, nom de code Merlin (6 février 2002). C’est la première révision sous JCP (Java Community Process) : JSR 59. Cette version intègre un parser XML et le moteur XSLT JAXP. Java Web Start 1.0, introduit en mars 2001 pour J2SE 1.3 est également inclus.
En 2004, la version qui devait s’appeler initialement J2SE 1.5 passe directement à J2SE 5.0, nom de code Tiger (le numéro de version 1.5 est cependant toujours utilisé en interne). Cette version amène un lot important de nouveautés comme une nouvelle boucle for, les types génériques, les annotations, les énumérations, etc.
En 2006, nouveau changement de cap dans le numéro de version. Avec la version 6, le Java perd son 2 et le numéro de version perd son .0. J2SE 6.0 devient alors Java SE 6. La version Enterprise J2EE devient pour sa part Java EE 5. Une première bêta complète de Java SE 6, nom de code Mustang, sort le 15 février. La version finale est attendue pour l’automne 2006.
En 2008 est attendu la version Java SE 7, nom de code Dolphin. C’est la toute dernière version à être planifiée, le développement n’a pas encore commencé, c’est probablement pour cet été.
    Source : Wikipedia

Copyright l'Informaticien, tous droits réservés
p. 1
Réduire
XULrunner : Le client Web riche vu par Mozilla
par Alexandre Deloy - copyright l'Informaticien, tous droits réservés

XULrunner est appelé à devenir la plate-forme de développement de tous les logiciels de la Mozilla Fondation. Mais c’est aussi une nouvelle approche du client riche qui s’ouvre pour les développeurs.

Les développeurs de la fondation Mozilla ont dès le départ cherché à dissocier le moteur de rendu des pages Web de l’interface utilisateur, notamment pour faciliter les questions de portage entre systèmes d’exploitation. C’est ainsi que Gecko, le moteur de rendu de Firefox et de Netscape – et d’autres –, embarque un interpréteur dans un langage conçu pour la création d’interface riche : XUL.
Le XUL (prononcez « zoul »), soit le XML-based User-interface Language est, comme son nom peut le laisser penser, un langage de balises de type XML permettant de décrire une interface à une application Gecko. Le XUL comprend donc un ensemble de balises pour définir les éléments néces-saires à une interface utilisateur : bouton, champs liste etc. À chaque objet graphique est associé un ou des événements, comme un clic souris, pour lesquels le développeur définit un code à exécuter, généralement en Javascript. Bien sûr, il est possible de passer des requêtes HTTP au serveur et de manière asynchrone, façon Ajax. De la sorte, on peut obtenir rapidement des applications Web dynamiques dont la richesse de l’interface supporte la comparaison avec des applications clients/serveur compilées.
Il faut prendre en compte que Mozilla et les autres applications Gecko affichent le HTML et le XUL en exploitant le même moteur sous-jacent et utilisent normalement le CSS pour spécifier leur présentation. Par ailleurs, des applications XUL peuvent être invoquées localement : c’est le principe de toute les extensions disponibles pour Firefox par exemple.


XULrunner, l’avenir de Mozilla

Cette petite présentation de XUL visait essentiellement à rappeler qu’il s’agit d’un langage étroitement lié à Gecko. C’est la solution idéale lorsque l’on veut développer une application Web basée sur Firefox ou Thunderbird. En revanche, il n’est a priori pas possible de développer des applications XUL indépendantes. C’est précisément l’objectif du projet XULrunner. XULrunner va devenir la plate-forme d’exécution universelle commune à toutes les applications Mozilla. XULrunner est donc à rapprocher dans son principe d’une machine virtuelle Java ou d’un interpréteur Python ou Ruby. Il s’agit d’un tronc commun pour créer des applications XUL multi plates-formes et légères. XULrunner est un projet sur le long terme de la fondation Mozilla. Après de multiples versions expérimentales tout au long de l’année passée, la version 1.8.0.1 (la numérotation suit celle du moteur Gecko) est considérée comme la première version stable à l’usage des développeurs. Elle est sortie conjointement à la version 1.5.0.1 de Firefox ces dernières semaines. Sur le Roadmap de la fondation Mozilla, le principe de cette sortie conjointe est planifiée. Cette version de XULrunner ne comprend cependant pas encore toute les fonctions prévues. Même si elle est stable, il convient plutôt de la considérer comme une version alpha que bêta. La plupart des fonctionnalités manquantes apparaîtront dans la version 1.8.1 qui sortira en même temps que Firefox 2.0, prévue pour cet été : fin juin ou début juillet. XULrunner disposera notamment alors d’un système complet pour l’installation/désinstallation et la mise à jour d’applications et de kits de développement plus aboutis. Ensuite, il faudra patienter six mois de plus pour voir arriver la première version stable de production numérotée 1.9. Le moteur Gecko correspondant prévoit beaucoup de nouveautés, comme Javascript 2.0 ou l’intégration de Python à XUL. Cette version 1.9 servira de base à Firefox 3.0, dont les premières versions verront le jour dans le courant du premier trimestre 2007.
Précisons enfin que XULrunner propose libxul pour faciliter l’intégration des applications Mozilla à d’autres projets.


Pour développer sur XULrunner
Pour développer des applications sur XULrunner, un bon éditeur de fichier suffit dans la mesure où il vous apporte une coloration syntaxique correcte pour le XML, le CSS et le javascript. Il existe tout de même quelques projets spécifiques autour de XULrunner. Aucun n’est suffisamment abouti aujourd’hui pour prétendre devenir un standard du genre. Certains sont cependant dignes d’intérêt et méritent d’être suivit.
Eclipse XUL http://eclipsexul.sourceforge.net/ : XUL étant un avatar du XML, il était à prévoir qu’une extension d’Eclipse verrait rapidement le jour. Elle est spécifiquement conçue pour les applications sur XULrunner.
Keystone http://www.keystoneframework.org/ : ce cadre d’application embarque de nombreux langage Web, y compris le XUL et le SVG.
ZK http://zk1.sourceforge.net/ : un autre cadre d’application adapté au XUL.
XUL Maker http://xulmaker.mozdev.org/ : cet IDE pour XUL était très prometteur. Hélàs, le projet semble au point mort depuis la version 0.5.1. Peut-être que l’arrivée de XULrunner va lui redonner l’attention des développeurs.
MozCreator http://mozcreator.mozdev.org/ : écrit en Java, ce programme vise à offrir un environnement confortable pour le développement sur la suite Mozilla et ses dérivés. C’est une version alpha récente.
XUL Box Layout http://www.hevanet.com/acorbin/xul/top.xul : un petit outil en ligne fort pratique pour créer ses fichiers XUL en quelques clic souris. Il suffit ensuite de récupérer le code source dans l’onglet prévu à cet effet.

p. 2
Réduire
Premiers pas dans XULrunner

Pour installer XULrunner 1.8.0.1, Il faut d’abord récupérer l’archive correspondant à votre système d’exploitation (Windows, Mac OS X et Linux). Vous la trouverez sur le site des développeurs de Mozilla http://developer.mozilla.org/en/docs/XULrunner. Dans le cas de Windows, on peut choisir de se placer ici : C:\Program Files\Mozilla XULrunner\1.8.0.1, puis dans un terminal, on lance la commande suivante :
xulrunner.exe –register-global.

Pour la désinstallation, il suffit de lancer la commande :

xulrunner --unregister-global  

… avant de jeter le répertoire contenant XULrunner. Le principe est identique sur Linux, en prenant soin toutefois d’exécuter ces commandes en tant que root.

Les applications XUL sont généralement distribuées sous la forme d’archive zip portant l’extension .xulapp ou .xpi. On en trouve sur le site http://developer.mozilla.org bien sûr, mais une recherche sur Google vous en indiquera d’autres. Copiez l’archive dans le répertoire de votre choix, puis lancez une commande de ce type :

xulrunner.exe --install-app     "
    C:\repertoire\mon-application.xulapp.


Même principe pour Linux, les commandes étant identiques :

./xulrunner --install-app     "
    /home/mon-application.xulapp


Un exemple très connu pour faire ses premières armes est My Browser 0.2.1. Ce micro-navigateur XUL se résume à peu de choses et il est donc facile à décortiquer. (On le trouvera ici http://friedfish.homeip.net/~darinf/xulrunner/ ). L’exécution de la commande d’installation va déployer l’application dans un dossier C:\Program Files\VendorName\Application
Name ou dans /usr/lib/vendor/applicationname sous Linux. VendorName et ApplicationName sont des variables indiquées dans le fichier application.ini. Notons d’ailleurs que l’exécution d’une application XUL commence toujours par la lecture de ce fichier. Ici, il s’agit de/mozillatest/mybrowser/. Il suffit ensuite de lancer l’exécutable qui se trouve dans ce répertoire, enfin presque… Dans notre cas, un message d’erreur concernant la version de GRE risque d’apparaître, l’application recherchant une version 1.8 stricte de XULrunner. C’est l’occasion pour nous d’éditer application.ini.


Bases de l’application XUL

Le .ini a une syntaxe semblable à celle employée pour ce genre de fichier. On y trouve deux sections, App et Gecko, contenant des variables obligatoires ou non. Pour résoudre le problème que nous avons rencontré, il suffit de modifier la dernière ligne comme ceci : MaxVersion=1.8.0.1. La documentation que contient le fichier devrait vous aider dans vos premiers pas. À coté de ce fichier se trouve deux répertoires : « chrome » et « defaults ». La structure d’une application XUL doit se présenter de la sorte :

/applicationName
   /chrome
      Les fichiers .jar (et autres fichiers non compressés)
      chrome.manifest
   /defaults
      /preferences
         prefs.js
   application.ini


Le fichier Javascript de préférences permet d’initialiser des valeurs par défaut. >>> >>> Le fichier chrome.manifest sert à désigner les fichiers à utiliser en cas d’appels URI. Dans notre navigateur, le fichier contient les lignes suivantes.

content mybrowser     "
    jar:mybrowser.jar!/content/mybrowser/
locale mybrowser     "
    en-US jar:en-US.jar!/locale/en-US/mybrowser/


La plupart des applications XUL utilisent des fichiers d’archives .jar (ce sont bien des archives .zip renommées en .jar, et non des fichiers Java) plutôt que des répertoires contenant des fichiers. Cette seconde forme est plus pratique pour le développement, mais la réduction en .jar rend l’application plus légère et plus facile à distribuer à condition de rédiger correctement le contenu de chrome.manifest. Dans ce dernier, il faut retenir que « jar : » spécifie à XULrunner qu’il s’agit bien d’une archive jar, et le « ! » qu’il doit trouver le répertoire qui suit à l’intérieure de cet archive.
C’est le moment de jeter un œil au contenu de l’archive mybrowser.jar de notre mico-navigateur. Le fichier XUL et le fichier javascript qui composent cette application brillent par leur sobriétés. Les eléments de l’interface XUL sont associés à des fonctions Javascript. Ainsi, le bouton de retour définit comme ceci :

<button id="back" label="&mybrowser.back;"     "
    oncommand="back();" disabled="true"/>
est animé par la fonction :
function back() {
  var browser = document.getElementById("browser");
  browser.stop();
  browser.goBack();
p. 3
Réduire
Quelques règles pour finir

Avant de se lancer dans le développement d’une application sur XULrunner, il est important de garder en tête qu’il s’agit d’une plate-forme encore expérimentale. Si l’on veut s’efforcer d’obtenir quelque chose de stable, il n’est pas recommander de mettre à jour XULrunner à chaque nouvelle « nighty build » à moins qu’un bug ne bloque votre travail. De plus, comme nous l’avons vu en introduction, toutes les fonctionnalités prévues ne sont pas encore implémentées, et même si l’architectures globales des applications XUL ne devrait plus trop changer, il ne peut être exclu que les développements lancés aujourd’hui nécessitent de profond remaniements d’ici un an pour s’adapter à la version 1.9. En attendant, rien n’interdit de faire ses premiers pas sur cette prometteuse évolution de l’application Web riche qu’est XULrunner.



Applications XUL
Mozilla, Firefox, Thunderbird, etc. Tous les programmes de la fondation Mozilla et leurs extensions exploitent le XUL. En 2007, elles auront toutes XULrunner comme base commune. Il existe des applications XUL d’autres provenances. Elles donnent un aperçu de ce que devient le développement de clients riches pour le Web. Quelques exemples pour s’inspirer.

MAB 1.3 http://www.faser.net/mab/ : cette application Web riche très complète permet de croiser ses recherches sur tous les sites Amazon du monde. Cela donne une tout autre dimension à l’e-commerce qui peine à sortir du sempiternel catalogue-panier-commande. Cette extension de Firefox fonctionne sur tous les OS.
SongBird http://www.songbirdnest.com/ : un lecteur de musique en XUL ? Plus encore, SongBird gère le partage de playlist, l’écoute en ligne, la recherche contextuelle associée, etc.
Elixon CMS http://demo.webdevelopers.cz/ : un CMS avec une interface d’administration enrichie en XUL.
XUL CVS Browser http://php5.akbkhome.com:81/svn.php : un client CVS en XUL. Simple mais utile.

Il existe aussi des applications spécifiques à XULrunner. Moins nombreuses, et moins impressionnantes, elles sont incontournables pour qui s’intéresse à ce type de développement.

Chatzilla http://chatzilla.rdmsoft.com/xulrunner/ : le client IRC de Firefox peut aussi fonctionner grâce à XULrunner.
Une horloge graphique http://www.treebuilder.de/default.asp?file=257091.xml :
un modèle d’horloge graphique basée sur le XUL.
DAIM XUL http://daim.project.free.fr/ : une application XUL intégrant les composants DAIM pour l’analyse d’images.

Copyright l'Informaticien, tous droits réservés
p. 1
Réduire
Gérez automatiquement erreurs et exceptions sous .Net
Par Frédéric Milliot - Copyright l'Informaticien, tous droits réservés

INGREYPC01119715_Copier5.gifLe niveau d’abstraction et de réflexion de DotNet permet d’implémenter sans effort une stratégie de gestion d’incidents ambitieuse. Objectifs : qu’elle soit légère, efficace, exhaustive et… qu’elle s’intègre facilement dans vos applications !

Pour le traitement des erreurs et des exceptions dans une application, chaque développeur a ses propres habitudes. En fonction du degré de respect qu’il témoigne à ses utilisateurs, ce traitement sera plus ou moins complet, explicite, documenté et suivi. C’est du moins ce que préconisent les cahiers des charges. Mais soyons réalistes, les contraintes de temps qui s’attachent à tout projet digne de ce nom font que cet aspect de la qualité logicielle est bien souvent négligé.

Pourtant, quelques bonnes pratiques permettent de gérer sans trop perdre de temps une majorité de cas de figure, y compris les exceptions quelle que soit leur nature. La bonne nouvelle, c’est que ces pratiques sont largement simplifiées par DotNet, grâce notamment au degré élevé de « réflexion » offert par l’environnement, autrement dit sa capacité à s’observer lui-même. Nous avons souhaité ce mois-ci vous présenter les plus intéressantes, sous une forme que vous puissiez immédiatement intégrer à vos applications. Nous nous attarderons sur les points essentiels des techniques abordées, mais vous pourrez bien sûr retrouver le code source complet correspondant à cet article sur notre serveur, à l’adresse www.linformaticien.fr.


Un gestionnaire d’exception par thread

La question du traitement des exceptions déclenche généralement des débats enflammés. Il y a ceux qui les gèrent sur place, jusqu’à les confondre avec de simples cas d’erreur pourtant détectables a priori, en oubliant qu’elles sont extrêmement gourmandes en cycles CPU. Il y a ceux qui les interceptent puis les font remonter sur la pile jusqu’à ce qu’un hypothétique gestionnaire les traite enfin, hors contexte. Et puis, il y a ceux qui, ignorant que le développeur est faillible, ne s’en préoccupent que lorsqu’à leurs yeux il y a possibilité de problème.

Or, pour être satisfaisante, une gestion d’erreur idéale doit nécessairement répondre à la cinématique suivante :

Intercepter une erreur ou une exception non gérée > Rassembler les données sur l’incident > Logger ces données > Nettoyer le contexte d’exécution > Notifier l’utilisateur > Quitter l’appli sur demande.


Et le seul moyen d’y parvenir, c’est d’adopter une approche systématique. Avec, pour commencer, un gestionnaire d’exception par défaut capable d’intercepter tout ce qui ne l’aura pas été explicitement, afin que plus aucun incident ne passe entre les mailles du filet. Un tel gestionnaire s’implémente au niveau des threads applicatif. Ainsi, supposons une application « simple thread » – soit la majorité des cas. Il faut d’abord assigner à l’événement OnThreadException de l’objet global Application un délégué vers une méthode de traitement que vous aurez adaptée à vos besoins. L’assignation se déclare comme ceci :

public partial class Form1 : Form
{
  public Form1()
  {
    InitializeComponent();

    // Instancie l’objet qui va gérer l’événement.
    CustomExceptionHandler ceh = new CustomExceptionHandler();
    // Assigne le gestionnaire à l’événement.
    Application.ThreadException +=
       new ThreadExceptionEventHandler(ceh.OnThreadException);
  }
}

Maintenant, déclarons la classe du gestionnaire d’événement, qui prend pour cet exemple la forme d’une boîte de message affichant le contexte de pile ayant provoqué l’exception :

internal class CustomExceptionHandler
{
  // Gestionnaire de l’événement exception.
  public void OnThreadException(object sender, ThreadExceptionEventArgs t)
  {
    // Initialisation de la valeur de retour du dialogue.
    DialogResult result = DialogResult.Cancel;
    try
    {
    // C’est là que se produit le traitement personnalisé des exceptions
    // (par ex. l’appel du dialogue de notification d’exception).
      result = this.ShowThreadExceptionDialog(t.Exception);
    }
    // Exception dans le gestionnaire d’exception.
    catch
    {
      try
      {
        // On l’indique.
  MessageBox.Show("Erreur irrécupérable", "L’Informaticien",
MessageBoxButtons.AbortRetryIgnore,
MessageBoxIcon.Stop);
      }
      finally
      {
      // On sort de l’appli quoi qu’il arrive.
        Application.Exit();
      }
    }

    // Sort de l’appli si l’utilisateur le demande.
    if (result == DialogResult.Abort)
      Application.Exit();
  }

  // Crée un message d’exception personnalisé.
  private DialogResult ShowThreadExceptionDialog(Exception e)
  {
    string errorMsg = "Une erreur grave s’est produite.\n\n" +
      "Veuillez  contacter votre administrateur avec " +
      "les données suivantes :\n\n";
    errorMsg = errorMsg + e.Message +
      "\n\nTraçage de la pile:\n" + e.StackTrace;
    return MessageBox.Show(errorMsg, "L’Informaticien",
MessageBoxButtons.AbortRetryIgnore,
MessageBoxIcon.Stop);
  }
}


Voilà, notre gestionnaire d’exception global par défaut est implémenté, sans trop de douleur. Comme le montre la capture ci-contre, il contient un traitement personnalisé des exceptions que vous pouvez bien entendu adapter à vos besoins.
p. 2
Réduire
Pour le tester, il suffit de provoquer une exception factice en réponse par exemple au clic sur un bouton :

private void button1_Click(object sender, EventArgs e)
{
   throw new ArgumentException("Exception de test");  
}



Sécuriser le code sans l’alourdir

La précaution d’un gestionnaire global étant prise, n’oublions pas qu’écrire du code sécurisé implique une gestion d’exceptions par méthode. Ainsi, toute méthode devrait avoir pour squelette minimum :

int MaMethode()
{
  try
  {
    // Ici le code applicatif.
    return(0);
  }
  catch (Exception ex)
  {
    // Traitement approprié à l’exception.
    GereException(ex);
    return (-128); // 128 par exemple.
  }
}


Pourtant, on voit souvent apparaître dans les sources un empilement de blocs catch censé gérer une large palette d’exceptions : NullReferenceException, ArgumentNullException, etc. Outre l’impact sur la lisibilité du code, ce n’est pas forcément utile. D’abord parce qu’il n’y a jamais qu’un nombre limité de cas d’erreurs quasi impossibles à prévoir : un fichier XML tronqué, par exemple, ou un objet sérialisé avec une autre version de l’application… Ces exemples utilisent avantageusement les exceptions parce qu’il n’y a vraiment qu’au moment de l’exécution, lorsque le traitement délicat ne peut plus se décomposer et s’opère en une seule instruction, que le problème risque d’apparaître. Ensuite parce qu’un bloc catch n’est pas forcément le meilleur endroit pour lancer un traitement réparateur lourd. Enfin, parce que, comme chacun sait, toutes les exceptions dérivent de la classe Exception, et que l’instance qui est créée par DotNet au moment où survient le problème contient tous les éléments nécessaires a posteriori.

Donc, en supposant que la majorité des problèmes de nature « exceptionnelle » empêche définitivement le bon fonctionnement de l’application, il convient de garder le squelette ci-dessus, d’ajouter le cas échéant un ou deux catch pour des exceptions traitables localement (au-dessus du bloc catch (Exception ex) pour qu’elles puissent être interceptées !), puis de passer l’instance d’Exception à un gestionnaire qui pourra être global ou propre à l’objet ayant causé le problème.

Une instance d’Exception contient les données suivantes : le nom de l’exception, une brève description du problème tel qu’il apparaît à l’application, et un traçage de la pile jusqu’à l’instruction ayant causé le problème. Fort de ces informations, on peut quasiment tout faire : déporter le code de traitement ou personnaliser une notification d’exception.

Exceptions-02.gifLes captures ci-contre montrent un tel gestionnaire personnalisé, dont vous retrouverez le code intégral sur notre serveur.

Exceptions-01.gif

Quelques points méritent toutefois d’être commentés :

public class MesExceptions
{
  // The exception dialog.
  static Dialogs_MesException _dlg;

  static TG_Exceptions()
  {
    // Crée le dialogue des exceptions.
    if (_dlg == null)
       _dlg = new Dialogs_MesExceptions();
  }


L’objet est statique pour pouvoir être appelé facilement. L’implémentation d’un constructeur statique permet ici de s’assurer que les membres privés de la classe seront bien créées. Parmi ces membres, il y a notamment un objet dialogue dédié, statique lui aussi pour être toujours disponible, immédiatement et sans traitement lourd préalable. C’est dans ce dialogue, que seront affichées toutes les données permettant à l’utilisateur de comprendre l’exception. Passons à la préparation puis à l’affichage du dialogue :

public static int Affiche(int iExceptionCode, Exception ex)
{
   StringBuilder stb;

   try
   {
   // Logge l’exception.
   Log(iExceptionCode, ex);
   // Remplit les chaps du dialogue.
   _dlg.ExceptionCode = iExceptionCode.ToString();
   _dlg.ExceptionContext = ex.StackTrace;
   stb = new StringBuilder("");
   stb.AppendLine(String.Format("[{0}] >> ", ex.GetType().ToString()));
   stb.Append(ex.Message);
   _dlg.ExceptionType = stb.ToString();
   // Affiche le dialogue.
   _dlg.ShowDialog();
   // Retourne le code d’exception spécifique à la fonction appelante.
   return (iExceptionCode);
   }
 catch (Exception)
   {
    // Relaie l’affichage à la méthode minimale si une exception survient
    //   lors de l’affichage du dialogue d’exception.
    return (DisplayMessage(iExceptionCode, ex));
   }
}


La méthode Affiche est celle qui est appelée lors d’une exception par la simple instruction suivante :

catch (XmlException ex)
{
  return (MesExceptions.Affiche(-512, ex));
}


Elle comporte d’abord un log de l’exception, avec iExceptionCode qui permet de spécifier un indicateur discriminant. Celui-ci est « bitwise operable », c’est-à-dire qu’il est un nombre puissance de 2 et qu’il peut de ce fait véhiculer plusieurs indications discrètes à la fois. Nous reviendrons sur l’opération de log plus bas.
p. 3
Réduire
La méthode compose ensuite le contenu du dialogue. Assez simplement, elle isole et formate le type de l’exception (ex.GetType()), le message décrivant les causes de l’exception (ex.Message) et le traçage de la pile jusqu’à l’instruction « fautive » : ex.StackTrace. Une fois les champs du dialogue remplis, celui-ci peut être affiché.

Plus intéressant, la valeur de retour est le paramètre 1, iExceptionCode. Cela permet d’encapsuler la notification de l’exception dans l’instruction return de la fonction fautive, d’où une meilleure lisibilité et un code plus élégant. Ce paramètre est ici un int – sachant qu’à notre avis, toute fonction devrait retourner un int, sauf impératif contraire, auquel cas cet int serait néanmoins loggé. Mais on pourrait très bien surcharger cette méthode pour l’adapter à des besoins différents.

Enfin, en cas d’exception lors de la notification d’exception (il faut penser à tout !), la requête de notification est passée à une seconde méthode, DisplayMessage. Celle-ci fait globalement la même chose mais dans le cadre d’une MessageBox, ressource robuste en cas de problème grave. Vous la retrouverez commentée dans le code source téléchargeable.


Automatiser des logs explicites

Difficile de concevoir aujourd’hui une application sans logs. Les logs permettent en effet de tracer précisément toute la mécanique algorithmique de l’application, de manière à pouvoir la déboguer a posteriori. En cas de problème « curieux », un journal exact des événements ayant conduit à sa survenue constitue une aide très précieuse pour le développeur. Le problème, avec la plupart des langages et des environnements d’exécution, c’est qu’il faut habilement positionner le curseur entre l’enregistrement personnalisé de tous les appels de méthodes (dont le nom est nécessairement codé en dur) et le niveau de performance global de l’application. Heureusement, avec DotNet, il en va différemment, grâce au degré élevé de « réflexion » évoqué en introduction.

La façon dont cette réflexion est implémentée dans le framework permet notamment de connaître le nom de la méthode active à tout moment de l’exécution de l’application. Il en découle d’intéressantes possibilités de suivi, 100 % personnalisable et susceptible d’être très précisément affiné. Par exemple, regardons cette routine :

public static string CallerName()
{
   StackTrace stackTrace;
   StackFrame stackFrame;
   MethodBase methodBase;
   try
   {
     // Retrouve le nom de la méthode appelante sur la pile.
     stackTrace = new StackTrace();
     stackFrame = stackTrace.GetFrame(1);
     methodBase = stackFrame.GetMethod();
     // Retourne le nom de la méthode appelante.
     return (methodBase.DeclaringType + " > " + methodBase.Name);
   }
   catch (Exception)
   {
      return (MesConstantes.cstrNULL_STRING);
   }
}


Elle retourne le nom de la méthode appelante, tout simplement, c’est-à-dire le nom que vous lui avez donné, celui qu’elle porte dans le code source. Sur la même base, il suffit d’utiliser l’appel « stackTrace.GetFrame(2) » pour avoir le nom de la méthode ayant appelé la méthode appelante, et ainsi de suite. Il devient alors très simple de concevoir un logging centralisé de toute erreur ou exception, logging qui prendra aussi en compte d’éventuels indicateurs ou messages décrivant l’incident de façon unique. D’où la méthode Log appelée par notre gestionnaire personnalisé d’erreurs ou d’exceptions :

public static int Log(int iErrorCode)
{
   string strLogText;
   string strMethodName;

   // Gets the name of the calling function.
   strMethodName = MesOutils.CallingCallerName();
   // Composes the log text.
   strLogText = String.Format("({0,6}) @ {1}",
     iErrorCode.ToString(), strMethodName);
   // Logs the text.
   MesLogs.Log(strLogText);
   // Returns the caller-specific error code.
   return (iErrorCode);
}


Ainsi traité, notre simple appel de tout à l’heure…

catch (XmlException ex)
{
  return (MesExceptions.Affiche(-512, ex));
}


… remplit tous nos objectifs : primo, nous affichons une description complète et personnalisée de l’exception. Secundo, nous renvoyons à la méthode ayant appelé la méthode fautive notre code d’erreur dont la valeur déterminera l’exécution de tel ou tel traitement. Tertio, nous loggons précisément l’incident avec le nom de la fonction fautive, notre code d’erreur discriminant et une description d’exception ou un message dans le cas d’une erreur « non-exceptionnelle ».

Notez que pour des raisons de simplicité, les logs de notre code à télécharger sont enregistrés dans un fichier dédié, fichier qui se crée et se vide automatiquement au-delà d’un certaine taille. Mais tous les scénarios classiques de logging sont possibles à partir de ce code : enregistrement dans un SGBD, notifications, envoi de mails, de SMS, etc.


Pour aller plus loin

Ces quelques extraits de code expliquent comment parvenir à la cinématique idéale décrite plus haut. Les classes téléchargeables permettent quant à elles d’implémenter cette cinématique simplement et rapidement dans vos applications. Mais nous ne saurions être complets sans mentionner d’autres approches du problème, parfois en contradiction avec la nôtre. Si elles ne nous satisfont pas pour différentes raisons, notamment leur complexité, elles ont néanmoins le mérite d’envisager la gestion des exceptions de façon globale, avec des stratégies de traitement exhaustives. La première a une vocation didactique, fondée sur l’Exception Management Architecture Guide publié de Microsoft. Elle se trouve à l’adresse : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/exceptdotnet.asp.

La seconde se présente comme un composant plus ou moins directement réutilisable. C’est l’Exception Management Application Block, qui fait partie de la bibliothèque Microsoft Entreprise Library. Destinée à gérer directement les aspects non métier communs à toutes les applications, cette bibliothèque est téléchargeable gratuitement sur www.gotdotnet.com, en versions DotNet 1.1 et 2.0.

Copyright l'Informaticien, tous droits réservés
p. 1
Réduire
Des Scripts à tout faire avec Flash
Copyright l'Informaticien, tous droits réservés


Trois exemples de scripts faciles et pratiques en Flash, extraits de l’ouvrage de Daniel Tardiveau « 120 scripts pour Flash 8 », paru chez Eyrolles (482 pages, env. 30 euros).


Créer une palette de couleur avec Getpixel()

9-7.gifL’utilisateur doit cliquer sur une couleur afin de l’appliquer au rectangle placé à côté du nuancier.
Lorsque la rédaction de ce livre a démarré en juillet 2005, Flash 8 n’était pas encore sorti. Nous avions déjà créé une animation (encore disponible dans le dossier Construction-Dynamique) qui s’intitule DynPalCouleurs.fla. Elle n’a plus vraiment de sens car la classe BitmapData() de Flash 8 propose une méthode plus simple pour connaître la couleur d’un pixel.

Description du fichier
(Flash Player 8 et ultérieur)
Chemin d’accès :
Interface/ConstructionDynamique/DynPaletteBitmapData.fla
Pour cette animation, nous avons effectué la copie d’écran d’un nuancier extrait d’un logiciel de traitement graphique, et nous l’avons collée sur la scène de Flash. Nous avons ensuite créé un symbole à partir de cette image.

Attention : vous devez choisir un point d’alignement sur le coin supérieur gauche pour la création du symbole qui contient le nuancier.

Nous avons ensuite placé sur la scène, deux occurrences intitulées nuancier_inst et temoin_inst.

Script

1 import flash.display.BitmapData;
2 //
3 zoneDeClic = new flash.display.BitmapData(nuancier_inst._width,     "
    nuancier_inst._height, true);
4 zoneDeClic.draw(nuancier_inst);
5 paletteCouleur = new Color(temoin_inst);
6 //
7 nuancier_inst.onPress = function() {
8 couleurPipette = zoneDeClic.getPixel(nuancier_inst._xmouse,     "
    nuancier_inst._ymouse);
9 if(couleurPipette!=0) paletteCouleur.setRGB(couleurPipette);
10 this.onMouseMove = function() {
11 couleurPipette = zoneDeClic.getPixel(nuancier_inst._xmouse,     "
    nuancier_inst._ymouse);
12 if(couleurPipette!=0) paletteCouleur.setRGB(couleurPipette);
13 };
14 };
15 nuancier_inst.onRelease = nuancier_inst.onReleaseOutside=function () {
16 delete this.onMouseMove;
17 };


Analyse

- Ligne 1 : dans l’animation, nous importons la classe BitmapData qui va nous permettre d’utiliser ses méthodes draw() et getPixel().
- Ligne 3 : nous instançons ensuite cette classe afin d’obtenir zoneDeClic. Les paramètres définissent la largeur et la hauteur de l’instance. Comme nous souhaitons associer cette instance à nuancier_inst, nous utilisons donc ses dimensions.
- Ligne 4 : nous associons zoneDeClic à nuancier_inst. Pour être plus précis, l’instance de la classe bitmapData vient se placer derrière le paramètre précisé dans la méthode draw().
- Ligne 5 : nous instançons la classe Color() afin de contrôler la couleur de l’occurrence temoin_inst.
- Ligne 7 : nous définissons un gestionnaire onPress pour l’occurrence nuancier_inst afin qu’elle réagisse au clic, lorsque l’utilisateur sélectionnera une couleur.
- Ligne 8 : nous stockons dans une variable intitulée couleurPipette, une valeur correspondant au code couleur récupéré grâce à la méthode getPixel() qui pointe le pixel se trouvant sous le curseur.
- Ligne 9 : nous procédons à présent à un test nous permettant de vérifier si l’utilisateur n’a pas cliqué entre deux cases de couleur. Si tel est le cas, la valeur renvoyée sera celle du noir. Si nous voulions réellement choisir du noir, il faudrait ajouter une condition qui permettrait de vérifier ce qui se passe si l’utilisateur ne clique pas dans une zone précise.
- Ligne 10 : ce gestionnaire n’est pas indispensable si l’on imagine que l’utilisateur va uniquement cliquer sur les cases de couleurs. En revanche, s’il commence à déplacer son curseur alors que le bouton de la souris est encore enfoncé, il faut pouvoir lire la valeur de la couleur qui se trouve sous le curseur (lignes 11 et 12).
- Ligne 15 : lorsque l’utilisateur relâche le bouton de sa souris, il faut détruire le gestionnaire onMouseMove.

Nous aurions pu changer l’apparence du curseur au survol du nuancier, voici dans ce cas ce qu’il aurait fallu ajouter :

• l’occurrence d’un symbole représentant une pipette avec un point d’alignement situé sur son extrémité ;
• le script ci-après à la suite de celui que nous venons d’analyser.

nuancier_inst.onRollOver = function() {
Mouse.hide();
pipette_inst.startDrag(1);
};
nuancier_inst.onRollOut = function() {
stopDrag();
Mouse.show();
pipette_inst._x = 900;
};

Bogue éventuel : attention, n’inversez pas les noms d’instances à la ligne 4.
p. 2
Réduire
Développer un calendrier

Description du fichier

(Flash Player 6 et ultérieurs)
Chemin d’accès : Interface/ControleAffichageTemps/TempsCalendrier2.fla
Pour cette deuxième animation, nous avons construit sur la scène, un symbole qui contient les éléments suivants :

10-5.gifLe calendrier est contenu dans un symbole afin qu’il puisse être mobile sur la scène. De ce fait, les variables et boutons qui le contrôlent se trouvent dans ce symbole. Voici les noms de variables.


Script

Nous n’allons analyser que les lignes 1 à 16, 27 et 28, 69 à 125. Le reste du script a déjà été expliqué dans l’analyse précédente.

1 var enX = 0;
2 var enY = 19;
3 for (i=0; i<=41; i++) {
4 calendrier.attachMovie("unite", "cel"+i, i);
5 calendrier["cel"+i]._x = enX;
6 calendrier["cel"+i]._y = enY;
7 calendrier["cel"+i].onPress = function() {
8 calendrier.selectionCase._x = this._x;
9 calendrier.selectionCase._y = this._y;
10 };
11 enX += 18;
12 if (enX>=126) {
13 enX = 0;
14 enY += 18;
15 }
16 }
17 //
18 //Formule de Gauss (1777-1855) Mathématicien, astronome et physicien allemand
19 var leJour = 1;
20 var leMois = 1;
21 var lAnnee = 2005;
22 var codeDuMois = [1, 4, 4, 0, 2, 5, 0, 3, 6, 1, 4, 6];
23 // siecles [18, 19, 20, 21,22];//18 pour 1800
24 var codesDuSiecle = [2, 0, 6, 4, 2];
25 var codeDuJourSemaine =     "
    ["Samedi", "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi",
"Vendredi"];
26 //
27 var nbrJoursMois = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
28 var limiteJoursMois;
29 //
30 estCeAnneeBissextile = function (annee) {
31 if (annee%4 == 0) {
32 if (annee%100 == 0) {
33 if (annee%400 == 0) {
34 return true;
35 }
36 return false;
37 }
38 return true;
39 } else {
40 return false;
41 }
42 };
43 //
44 calculJour = function (jour, mois, annee) {
45 jour = Number(jour);
46 mois = Number(mois);
47 annee = Number(annee);
48 //
49 if (estCeAnneeBissextile(annee)) {
50 codeDuMois[0] = 0;
51 codeDuMois[1] = 3;
52 limiteJoursMois = 29;
53 } else {
54 codeDuMois[0] = 1;
55 codeDuMois[1] = 4;
56 limiteJoursMois = 28;
57 }
58 var mois = codeDuMois[mois-1];
59 var traitementAnnee = new String(annee);
60 var derChiffresAnnee = traitementAnnee.substr(2, 2);
61 var premChiffresAnnee = traitementAnnee.substr(0, 2);
62 var numeroSiecle = codesDuSiecle[premChiffresAnnee-18];
63 var div4 = Math.floor(derChiffresAnnee/4);
64 var addition = jour+mois+numeroSiecle+Number(derChiffresAnnee)+div4;
65 var jourNumerique = addition%7;
66 return codeDuJourSemaine[jourNumerique];
67 };
68 //
69 var semaine =     "
    ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi","Dimanche"];
70 var listeMois = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet",
 "Août", "Septembre", "Octobre", "Novembre", "Décembre"];
71 //
72 remplirCalendrier = function (jour, mois, annee) {
73 calendrier.aff_mois = listeMois[mois-1];
74 calendrier.aff_annee = annee;
75 var premierJour = calculJour(jour, mois, annee);
76 limiteJoursMois = nbrJoursMois[mois-1];
77 if (estCeAnneeBissextile(annee) && mois == 2) {
78 limiteJoursMois = 29;
79 }
80 // Pas inverser ces 2 lignes
81 for (i=0; i<=6; i++) {
82 calendrier["cel"+i].numeroJour = "";
83 if (semaine[i] == premierJour) {
84 calendrier["cel"+i].numeroJour = "1";
85 debutMois = i;
86 }
87 }
88 for (i=debutMois, j=1; j<=limiteJoursMois; i++, j++) {
89 calendrier["cel"+i].numeroJour = j;
90 }
91 for (i=limiteJoursMois+debutMois; i<=41; i++) {
92 calendrier["cel"+i].numeroJour = "";
93 }
94 };
95 //
96 var dateActuelle = new Date();
97 quelMois = dateActuelle.getMonth()+1;
98 quelleAnnee = dateActuelle.getFullYear();
99 remplirCalendrier(1, quelMois, quelleAnnee);
100 //
101 calendrier._alpha = 60;
102 //
103 calendrier.ajout_mois.onPress = function() {
104 quelMois++;
105 if (quelMois>=13) {
106 quelMois = 1;
107 }
108 remplirCalendrier(1, quelMois, quelleAnnee);
109 };
110 calendrier.supp_mois.onPress = function() {
111 quelMois--;
112 if (quelMois<=0) {
113 quelMois = 12;
114 }
115 remplirCalendrier(1, quelMois, quelleAnnee);
116 };
117 //
118 calendrier.ajout_annee.onPress = function() {
119 quelleAnnee++;
120 remplirCalendrier(1, quelMois, quelleAnnee);
121 };
122 calendrier.supp_annee.onPress = function() {
123 quelleAnnee--;
124 remplirCalendrier(1, quelMois, quelleAnnee);
125 };
p. 3
Réduire
Analyse

Pour réaliser ce calendrier, nous avons eu besoin de plusieurs éléments :

- des occurrences (triangles noirs) qui vont nous permettre de sélectionner un mois et une année ;
- un symbole qui contient un texte dynamique intitulé numeroJour et qui va être placé 30 ou 31 fois dans le calendrier (sauf en février) ;
- lorsque l’utilisateur cliquera sur un jour du mois, une petite case jaune (une occurrence carré et jaune) viendra se placer au même endroit que la souris. Il s’agit d’une occurrence de forme carrée et jaune. Comme vous le montre la figure 10-6, nous partons d’un symbole qui ne contient que les boutons de sélection des mois et années, ainsi que les variables nécessaires à l’affichage de ces informations. Nous avons un symbole dont le nom de liaison est unite. Il va être placé dans le calendrier et nous remplirons alors les valeurs du mois et de l’année correspondants.

10-6.gifLes numéros de jours sont obtenus par la création en boucle de plusieurs occurrences issues du symbole représenté entre les deux premiers calendriers ce cette figure.
Si vous observez bien le calendrier, il y a 6 lignes de 7 jours, ce qui nous fait un total de 42 cellules. Nous allons donc utiliser une boucle for() pour construire ce « quadrillage ». La largeur du symbole qui contient pour l’instant le nombre 23 est de 18 pixels, sa hauteur est de 19 pixels. Nous allons placer la première occurrence à zéro pixel du bord gauche du calendrier et à 19 pixels du haut du calendrier.

- Ligne 1 : nous initialisons cette variable dont la valeur va s’incrémenter à chaque nouvelle occurrence placée dans le calendrier. Elle va définir la position horizontale des occurrences.
- Ligne 2 : cette deuxième variable va définir les positions verticales.
- Lignes 3 à 6 : nous procédons au placement du symbole afin d’obtenir 42 occurrences.
- Ligne 7 : nous assignons un gestionnaire à chaque occurrence placée sur la scène. Dans l’état actuel de cette animation, un clic sur une date se contente uniquement de déplacer un cadre jaune. C’est donc à partir de la ligne 10 qu’il faudrait ajouter les lignes d’instructions rendant ce calendrier interactif.
- Ligne 11 : nous n’utilisons pas i pour décaler la position horizontale des occurrences, mais la variable que nous avons présentée à la ligne 1.
- Ligne 12 : si la valeur de la variable enX dépasse 126, c’est que les 7 jours d’une ligne ont été créées. Nous devons donc réinitialiser cette variable afin de démarrer une nouvelle série de 7 jours.
- Ligne 14 : nous devons décaler le placement vertical de cette nouvelle ligne.
- Ligne 27 : nous allons avoir besoin de connaître quel est le dernier jour du mois à afficher dans le calendrier : ce tableau contient donc cette information.
- Ligne 28 : cette variable contiendra la valeurs d’une des entrées de ce tableau.
- Ligne 69 : nous créons un tableau qui contient les jours d’une semaine en commençant par lundi et non dimanche.
- Ligne 72 : nous créons une fonction chargée de remplir le texte dynamique contenu dans les occurrences que nous venons de créer aux lignes 3 à 6.
- Lignes 73 et 74 : nous commençons par afficher le mois et l’année dans les deux textes dynamiques intitulés aff_mois et aff_annee.
- Ligne 75 : nous calculons le premier jour du mois recherché.
- Ligne 76 : nous mémorisons le nombre de jours contenus dans le mois.
- Lignes 77 à 79 : nous redéfinissons le nombre de jours du mois de février s’il s’agit d’une année bissextile.
- Lignes 81 et 82 : nous vidons la première ligne du calendrier.
- Lignes 83 à 86 : nous cherchons à savoir si le premier jour du mois correspond à l’une des 7 premières cellules de notre calendrier. Si tel est le cas, on stocke dans une variable intitulée debutMois la valeur de i.    
- Lignes 88 à 90 : nous remplissons le calendrier avec les numéros des jours.
- Lignes 91 à 93 : nous effaçons les numéros qui dépassent le dernier jour du mois. Si nous n’exécutons pas ces lignes d’instructions, le calendrier ne s’arrêtera pas à 30 ou 31 jours, mais affichera des valeurs supérieures jusqu’à la 42e cellule.
- Lignes 96 à 99 : ces lignes permettent seulement de remplir le tableau avec la date à laquelle cette animation est exécutée.
- Ligne 101 : nous rendons le calendrier légèrement transparent afin qu’il laisse apparaître ce qui se trouve sur la scène.
- Lignes 103 à 125 : nous programmons les boutons contenus dans le calendrier afin de pouvoir incrémenter ou diminuer les valeurs des mois et années. Dans chaque gestionnaire, on gère donc le dépassement des valeurs et l’on exécute la fonction de remplissage du calendrier.

Remarque : le calendrier est mobile car il contient deux gestionnaires sur la première image clé de sa timeline.

Cette animation démontre qu’il est relativement simple de créer son propre calendrier. Vous pouvez changer les valeurs des variables enX et enY pour espacer davantage les dates (dans ce cas pensez à recalculer la valeur 126 de la ligne 12). Vous pouvez disposer les éléments du calendrier dans l’ordre que vous souhaitez, etc.

Bogues éventuels

Les tests des gestionnaires des lignes 103 à 125 sont indispensables pour éviter des erreurs dans les calculs dues aux dépassements de ces valeurs.
p. 4
Réduire
Réalisation d’un lecteur vidéo
(Flash Player 7 et ultérieurs)

Pour cette animation, nous avons essayé d’écrire le minimum de lignes de code afin de démontrer qu’il n’en faut pas beaucoup pour contrôler une vidéo.

Description du fichier

Chemin d’accès : Medias/ControleMedias/LecteurVideo.fla
La scène contient quatre occurrences intitulées btLecture, btArret, btPause et btRAZ pour contrôler une vidéo. Nous avons également placé sur la scène, un symbole vidéo que vous obtiendrez en sélectionnant la commande Nelle vidéo du menu local de la Bibliothèque. L’occurrence obtenue a été nommée ecran. Pour finir, un texte dynamique dont le nom de variable est affichageTemps a été placé sous l’occurrence qui va diffuser la vidéo.

Script

1 leCable = new NetConnection();
2 leCable.connect(null);
3 abonnement = new NetStream(leCable);
4 ecran.attachVideo(abonnement);
5 //
6 btLecture.onPress = function() {
7 abonnement.play("traveling.flv");
8 };
9 btPause.onPress = function() {
10 abonnement.pause();
11 };
12 btRAZ.onPress = function() {
13 abonnement.seek(0);
14 };
15 btArret.onPress = function() {
16 abonnement.play("");
17 };
18 //
19 afficherTemps = function () {
20 tempsEcoule = abonnement.time;
21 minutes = Math.floor(tempsEcoule/60);
22 secondes = Math.floor((tempsEcoule)%60);
23 minutes = minutes<=9 ? "0"+minutes : minutes;
24 secondes = secondes<=9 ? "0"+secondes : secondes;
25 affichageTemps = minutes+":"+secondes;
26 };
27 lancerVideo = setInterval(afficherTemps, 100);


Analyse

- Lignes 1 à 3 : nous avons besoin de faire passer un flux entre le fichier .swf et la vidéo au format .flv. Pour cela, nous devons faire appel à la classe NetStream() qui a elle-même besoin d’une instance de la classe NetConnection().
- Ligne 4 : le flux passe correctement entre l’animation et la vidéo ; maintenant il faut diriger les images vers l’occurrence du symbole vidéo, c’est le rôle de cette ligne d’instruction.
- Les lignes 6 à 17 sont relativement simples à comprendre, ajoutons tout de même que la méthode seek() peut servir à avancer la tête de lecture à un instant précis de la vidéo. La valeur attendue est exprimée en secondes.
- Lignes 19 à 26 : nous convertissons l’affichage du temps afin d’obtenir un format horaire dans le texte dynamique qui se trouve sur la scène, dont le nom de variable est affichage-temps.
- Ligne 27 : nous demandons dès le lancement de l’animation l’affichage du temps de la vidéo qui s’écoule alors que la lecture n’a pas été demandée. Comme nous vous l’indiquions en introduction de cette animation, nous avons souhaité simplifier le script. Si nous devions optimiser notre script, nous placerions cette ligne 27 à la suite de la 7 (avant l’accolade de fermeture). Il faudrait alors placer la fonction clearInterval(lancerVideo) à la suite de la ligne 16.

Bogues éventuels

Attention, dans cette animation, les bogues peuvent être nombreux, nous allons donc, exceptionnellement, établir une liste des points à surveiller :

• respectez la casse des noms de classes NetConnection() et NetStream() ; si vous oubliez une majuscule, la vidéo ne s’affichera pas ;
• n’oubliez pas de nommer l’occurrence du symbole vidéo que vous avez placé sur la scène ;
• spécifiez le nom du fichier .flv entre guillemets ;
• préférez play("") à close() qui n’arrête pas la lecture de la vidéo, mais ferme le flux qu’il faudrait alors ouvrir à nouveau.

Copyright l'Informaticien, tous droits réservés
p. 1
Réduire
Développement Java sous STRUTS
par Noé Barat – copyright l'Informaticien, tous droits réservés

Devjava.gif
Apache Struts est un cadre applicatif d’entreprise (ce que l’on appelle un Framework) servant à développer des applications Web en Java. Il a été créé relativement récemment (mai 2000) par Craig McClanahan qui l’a transmis à la fondation Apache – et ainsi par la force des choses les différentes constituantes de ce cadre applicatif sont devenus Open Source. Nous en sommes aujourd’hui à la version 1.2.8 (mi-février 2006), et premier aspect, l’ouvrage rédigé par Jean Charles Félicité, un formateur et consultant en technologies Internet/Intranet, est à jour. Ce qui est à souligner pour un projet Open Source au sujet duquel la littérature en langue française est rare. C’est un excellent point en faveur de ce livre qui non seulement traite de la version la plus récente, mais consacre également quelques pages à la future version 1.3 !

Le huitième chapitre passe d’ailleurs en revue des outils Open Source (ANT, Maven, Log4J, Junit) et leurs évolutions (dans le cadre de Struts évidemment). Struts est souvent cité comme le framework Web implémentant le pattern MVC qui découple la présentation et les traitements métiers. Pour rappel, ce modèle de programmation est événementiel et structuré (Model-View-Controller). Une requête utilisateur est interprétée par le contrôleur qui détermine quelles parties du modèle et de la vue doivent être appelées, tandis que le modèle gère les interactions avec les données et applique les règles métier. Enfin, le contrôleur sélectionne une vue et lui passe les données.

Le premier chapitre nous entraîne à la découverte du développement Web avec Java. On y découvre le modèle MVC, avec l’arborescence de Tomcat et celle d’une application Web Java, un exemple de servlet et de page JSP. Le second chapitre en partie théorique (à propos de MVC 2), nous explique comment programmer pratiquement une première application Struts. Ensuite, nous passons à la vitesse supérieure en discutant des ActionForms et des Dynaforms. La Vue est traitée dans le chapitre 3. Le chapitre 4 et les suivants présentent les concepts de validators, de validation personnalisées (les validations d’entrées), de contrôleur (chapitre 5), de balises Struts (chapitre 6), etc. Ce livre n’est pas un ouvrage théorique, il comporte pas mal de code, et explique clairement comment installer les outils (une annexe complète est consacrée à l’installation et à la configuration de Tomcat, Mysql, J2SE 5, Eclipse). Nous nous sommes rendus sur le site de l’éditeur pour pouvoir récupérer le code source mais sans succès (en revanche, vous pouvez télécharger un extrait du livre, ou la table des matières). Dommage…


UNE BONNE INITIATION À STRUTS

L’éditeur annonce que cet ouvrage s’adresse à « toute personne désireuse de perfectionner ses connaissances sur le développement Web en Java ». En fait ce n’est pas tout à fait exact : Struts est à notre avis utilisé par une majorité de développeurs mais il ne s’agit pas, loin de là, du seul framework Web Java (citons en vrac Velocity, Tapestry, Turbine, JSF, Cocoon, Spring MVC…). Nous recommandons l’achat de ce livre si vous ne connaissez pas encore Struts, même si, pour pouvoir l’aborder, vous devez tout de même maîtriser les bases du Java et du développement Web). En revanche, si vous possédez de solides connaissances au sujet de Struts, vous serez déçu par l’absence de notions plus avancées, comme la gestion des performances, le Failover-Recovery, la gestion du code source (CVS/SVN), la sécurité des applications Struts, les droits d’accès, etc.

L’ouvrage pèse plus de 400 pages sans donner l’impression de lourdeur que nous ressentirions avec un ouvrage théorique. Jean-Charles Félicité maîtrise son sujet. Néanmoins, pour des notions plus avancées, vous devrez vous jeter dans la littérature anglaise, ou vous plonger dans la documentation sur Internet. Un éditeur concurrent, Eyrolles pour ne pas le citer, a bien traduit le livre anglais « Mastering Jakarta Struts » (Jakarta Struts par la pratique) de James Goodwill qui décrit pas mal de fonctionnalités avancées, mais sous l’angle de Struts 1.1 qui est aujourd’hui dépassé.


Auteur : Jean-Charles Félicité
Éditeur : ENI Éditions
ISBN : 2-7460-3105-1
Prix éditeur : env. 27 euros

p. 2
Réduire
Introduction aux scripts Shell

SCRIPTS_SHELL.gifD’emblée, cet ouvrage a retenu notre attention car il a été traduit par Éric Jacoboni, qui est le rédacteur et le traducteur de bien des documents divers comme « Les fichiers d’initialisation de Linux », ou encore du célèbre « Comment lire et poster les news off-line sur une machine Unix ». Ensuite, le sujet est assez ambitieux pour un livre qui finalement ne pèse que 558 pages : comment programmer des scripts shell de manière professionnelle (ou comment concevoir des scripts shells de « qualité industrielle », c’est-à-dire des scripts « en production » comme d’ailleurs s’intitule le chapitre 8). Bon d’accord, il s’agit d’une « introduction », mais malgré tout le sujet reste très vaste tout en étant d’actualité.


Des scripts pour tous les environnements

Sous Linux, le shell que l’on rencontre le plus couramment est le shell bash 2 qui regroupe les concepts du shell Bourne (sh) d’origine, programmé par Steve Bourne au début des années 70 – à la naissance d’Unix. Le terme bash qui signifie « Bourne Again Shell » a été programmé 15 ans plus tard par Brian Fox et Chet Ramey de la FSF (Free Software Fundantion). Cependant l’ouvrage qui nous intéresse ne s’attache pas à un shell particulier mais à une norme (POSIX) ce qui fait que les scripts abordés sont portables sous un grand nombre d’environnement comme Mac OS X, FreeBSD, AIX, Solaris, Windows (par l’entremise du projet Cygwin), et évidemment, Linux. Cependant Robbins et Beebe s’attacheront aussi à montrer les différences entre le bash et ksh93, ainsi qu’avec pdksh, zsh et Korn shell.

L’auteur commence par passer en revue quelques bases comme la recherche et la substitution à l’aide des expressions régulières, ou encore la manière de trier du texte (sort), le formater (sort), l’imprimer (pr ou head), ou compter des éléments. Vous devrez aussi assimiler la notion de « pipes », ainsi que bien comprendre les entrées/sorties en vue d’enchaîner les commandes. Un script est un programme et qui dit programme, dit variables, calculs arithmétique, code de retour, répétitives et alternatives (set, for done, if, elif, else, fi, etc). Les auteurs vous expliqueront alors comment combiner différents outils comme awk pour manipuler des fichiers, les lister, en créer des temporaires, les retrouver avec find, etc. La fusion de bases de données utilisateurs et la vérification orthographique au sein de scripts sont aussi traités. Et ne croyez pas que vous resterez cantonné au ba-ba. Des sujets fort pointus sont aussi abordés comme le contrôle des processus (et le contrôle des signaux avec la commande trap), la portabilité du shell et de ses extensions, ainsi que la sécurisation des scripts. En annexe, vous trouverez des explications très intéressantes concernant l’écriture des pages de manuel et une liste des commandes Unix importantes.  


Pour les adminsys Linux

À qui s’adresse cet ouvrage ? À notre avis à n’importe quel l’administrateur système professionnel sévissant sous Unix, Linux ou même Mac OS X. L’approche est pédagogique et les exemples abondent.

Cependant nous regrettons l’absence d’un CD-Rom qui reprendrait les listings traités. Comment en effet ne pas commettre d’erreurs en retranscrivant par exemple le script « build-all » du chapitre 8 qui s’étend sur plus de 9 pages ? Et puis, si vous cherchez à automatiser, ce n’est pas pour perdre du temps à encoder de longs scripts. Les longs exemples ne sont pas les bienvenus. C’est dommage. Ceci dit, ce livre mérite une place de choix dans votre bibliothèque à côté de l’excellent bouquin généraliste « les bases de l’administration système » paru lui aussi aux éditions O’Reilly.


Auteurs : Arnold Robbins et Nelson H. F. Beebe
Traduction : Éric Jacoboni
Éditeur : O’Reilly
ISBN : 2-84177-375-2
Prix éditeur : env. 38 euros