lundi 26 septembre 2016
 
L'INFORMATICIEN N°36
Numéro de mai 2006

INF036_01.gifDans ce numéro, vous trouverez un imposant dossier concernant les secrets du monde de la VoIP professionnelle : du choix du prestataire à la configuration du système, tout vous sera révélé pour que vous puissiez rénnovez votre centre d'appel...ou tout simplement changer les téléphones de votre bureau. Ceci fait, il ne vous restera plus qu'à suivre nos conseils en Sécurité pour optimiser les réglages de votre firewall. Après cela, en quelques clics, vous pourrez créer une boutique en ligne grâce à notre article, et enfin pour vous détendre, vous pourrez badiner en créant des generics intelligents pour vos applications en DotNet... bonne lecture !
Chronique Irritation
Réduire
Google
Dernier rempart de nos libertés ?
Par Hugo Lunardelli - Copyright l'Informaticien, tous droits réservés


Jusqu’où peuvent aller les sociétés commerciales et les gouvernements lorsqu’il s’agit de nos activités sur le Web ?

idhugo.gifOn se souvient du procès qui a opposé récemment Google au département de la justice américain – le DOJ. Ce dernier avait assigné Google en justice après son refus de remettre l’équivalent d’une semaine de requêtes enregistrée sur son moteur de recherche. La finalité poursuivie par le DOJ étant de comprendre quel est le degré d’exposition des jeunes internautes à du contenu pornographique sur le Web.

Google s’était opposé à cette demande, contrairement à Yahoo, MSN et AOL qui avaient transmis requêtes et résultats sans toutefois communiquer les adresses IP des auteurs de ces requêtes. Google apparaissait de ce fait comme un dépositaire respectueux de la confidentialité des requêtes qui lui sont confiées.

La question que pose ce développement tient à la confiance que nous inspire in fine une société commerciale en ce qui concerne le respect de la confidentialité de nos transactions et de nos échanges.

Bien qu’étant très suspicieux vis-à-vis de toute demande d’informations émanant d’un gouvernement aussi notoirement soucieux des libertés que l’administration Bush, je suis mal à l’aise à l’idée qu’une société commerciale puisse être présentée comme le garant du maintien de nos libertés individuelles.
Google est une société commerciale et sa raison d’être est la génération de profit. Sa matière première est constituée de ce que nous faisons de ses services : les requêtes que nous entrons dans Google.com, les e-mails que nous échangeons via son service Gmail, à terme potentiellement de nouveaux services comme ce que certains appellent Gdrive, un service qui pourrait consentir à quiconque de stocker ses données personnelles sur des serveurs dont cette société assure la maintenance.

Le business de vos libertés

Google « monétise » cette matière première (nos actions sur le Web) en analysant son contenu de manière à en extraire son potentiel publicitaire. Google vend nos centres d’intérêts à tout annonceur disposé à payer pour présenter son offre à des clients potentiels soigneusement sélectionnés. En analysant nos e-mails, y compris ceux que nous recevons de nos contacts, en enregistrant nos visites de sites Web, Google développe une connaissance de chacun de nous qui va bien au-delà de ce que tout pouvoir politique n’a jamais pu réaliser. Pour forcer (beaucoup) le trait on pourrait dire que « Staline en a rêvé, Google l’a fait ».

Bien sûr, Google n’est pas une émanation du KGB, ni du parti communiste chinois. Mais Google est une société commerciale et sur le long terme, les motivations commerciales n’ont jamais fait bon ménage avec les considérations éthiques. Évidemmment, Google ne prendrait pas le risque de compromettre sa réputation auprès des internautes en faisant mauvais usage des éléments en sa possession. Mais qu’en serait-il si le contexte légal évoluait ?

Google, comme tous les autres acteurs de l’Internet a accepté récemment de se plier aux exigences du gouvernement chinois lui enjoignant de bloquer l’accès à certains sites présentant un contenant jugé non-conforme. À sa décharge, Google a également annoncé qu’il déplaçait ses serveurs hors du territoire chinois pour éviter d’avoir un jour à soumettre aux autorités chinoises le type même de contenu que lui demande aujourd’hui le DOJ.

Mais comment définir le bon ou mauvais usage des données personnelles enregistrées sur les serveurs de Google ? À qui revient d’autoriser certains types de publicité et pas d’autres ? Aujourd’hui, à personne d’autre qu’à Google, qui juge en fonction de son éthique du moment, des attentes de ses actionnaires et de ses ambitions.

Le problème ici ne tient pas à Google en tant que tel, mais au fait qu’une société commerciale soit, de facto, la seule autorité garante du bon usage de nos données personnelles. Données, qui plus est, enregistrées et utilisées sans le consentement explicite de la part des intéressés.

Le moins que l’on puisse faire serait de contraindre Google, et les autres, de sortir du flou juridique volontairement entretenu ; de rendre explicite l’usage réalisé des données collectées ; et enfin d’obtenir l’assentiment des internautes quant à l’usage qui est fait de leur historique en ligne.

Copyright l'Informaticien, tous droits réservés
Edito
Réduire
Apple converti à l’Open Source ?
Par Stéphane Larcher - Copyright l'Informaticien, tous droits réservés

newstef26526_Copier5.gif“ Apple doit passer Mac OS X en Open Source ! ” Telle est la recommandation que fait le célèbre chroniqueur John Dvorak dans un récent numéro de PC Magazine. Il ajoute que le ciel va s’assombrir pour Apple si la société ne suit pas son conseil. A première vue, la proposition paraît étrange. Mais, à y regarder de plus près, cela pourrait constituer une formidable opportunité. En effet, avec BootCamp, la pomme a ouvert la boîte de Pandore. Steve Jobs peut bien promettre l’enfer à tous ceux qui installeraient Windows sur un Macintosh, disposer d’un système unifié sur l’ensemble des micro-ordinateurs d’un parc est une solution qui satisfait bon nombre de responsables informatiques. Certes, aujourd’hui BootCamp relève du coup marketing et n’est pas encore une alternative valable. Cependant, d’autres éditeurs se jettent dans la brèche et l’on va voir fleurir très prochainement un grand nombre de solutions de virtualisation permettant à un Mac de se comporter comme n’importe quelle autre machine du SI, au grand désespoir des aficionados qui revendiquent haut et fort leur spécificité (think different) mais au grand plaisir des DSI qui n’aiment rien d’autre que voir une seule tête.


En attendant Vista !

D’un autre côté, le système Linux continue à gagner en crédibilité et en parts de marché pour les systèmes serveurs. En revanche, du côté du poste de travail, le chemin reste ardu et la progression epsilonesque, alors que Vista n’est toujours pas arrivé. Jusqu’à présent, les retards et déboires du successeur de Windows XP ont alimenté les chroniques les plus venimeuses. Mais le ton est en train de changer : « je préfère quand c’est un peu trop plus moins calme », affirme l’architecte Numerobis sous les traits de Jamel Debouzze et tel est le sentiment qui s’installe face au silence de Microsoft. L’entreprise de Redmond a l’art et la manière d’entretenir la confusion face à ses intentions, ses projets. Souvenons-nous de 1995 où une légion de spécialistes enterraient Microsoft sans tambours ni trompettes au prétexte de ne pas avoir su prendre le virage de l’Internet. Moins d’une année après, la messe était dite : Microsoft était certes rentré tardivement dans ce virage mais ressorti à une telle vitesse que les concurrents furent pulvérisés. Les commentaires récents ont ressemblé à s’y méprendre à cette période. Google pour les services en ligne, iPod pour la musique, Linux pour les systèmes et tutti quanti : Microsoft ne saurait plus rien faire et la faillite ne serait pas imminente mais inéluctable. La maxime de Victor Hugo « L'espoir changea de camp, le combat changea d'âme » pourrait se trouver à nouveau d’actualité lorsque l’on étudie d’un peu plus près ce que prépare Microsoft. Entre Vista, Office 12, les services Live, Exchange, Dynamics, Expression, sans compter les projets grand public, Microsoft va, dans les 12 prochains mois, sortir un nombre de nouveaux produits ou nouvelles versions jamais atteint jusque-là.

Dans ces conditions, mettre le système d’exploitation Apple dans le domaine Open Source afin qu’il soit exploitable sur des PC et susciter le développement de nouvelles applications serait un contre-feu de belle facture. Apple franchira-t-il ce Rubicon ? Beaucoup l’y pressent, mais aujourd’hui sans être écoutés.

Copyright l'Informaticien, tous droits réservés
Livres
Réduire
couvlivre.gifDe l’art de programmer en Perl
Par Noé Barat - Copyright l'Informaticien, tous droits réservés

Qui n’a jamais entendu parler de Perl ? Ce langage de programmation, créé par Larry Wall en 1987, est à la base un langage interprété au même titre que le shell, par exemple. Seulement avec Perl il y a un petit problème : le langage est tellement souple et instinctif (oserais-je dire permissif) qu’il est très facile de programmer un code qui ne sera lisible que par son auteur ou presque… en raison notamment de l’utilisation intensive de caractères spéciaux. Pour preuve, le code suivant :

sub b{$n=99-@_-$_||No;"$n bottle"."s"x!!--$n." of beer"};$w=" on the wall";
die map{b."$w,\n".b.",\nTake one down, pass it around,\n".b(0)."$w.\n\n"}0..98

Qui réalise le même traitement que celui-ci :

#!/usr/bin/perl
# Marty Pauley sings "99 bottles of beer"
use Lingua::EN::Inflect ‘inflect’;
print inflect(<<"SING") for (reverse(1 .. 99));
        NO(bottle,$_) of beer on the wall,
        NO(bottle,$_) of beer,
        Take one down and pass it around,
        NO(bottle,@{[$_-1]}) of beer on the wall.
SING
(source http://www.99-bottles-of-beer.net/language-perl-536.html)

Ce comportement, David Conway le connaît bien, et c’est pour cette raison qu’il a décidé de rédiger cet ouvrage : remarquez que justement une devise du perl est « There Is More Than One Way To Do It (TIMTOWTDI) », ce qui signifie « Il y a plus d’une façon de le faire ». Il s’adresse au programmeur Perl professionnel et vise à lui inculquer des recommandations sous la forme de règles. Le but du jeu est de parvenir à obtenir un code aisé à maintenir. Pour y arriver il faudra sans doute que certains changent carrément de style, ou encore prennent des bonnes habitudes comme celle d’utiliser au maximum les modules de la base CPAN. En effet la base CPAN renferme près de 15 000 000 de lignes de code (code testé par la communauté car rappelons-le Perl possède le statut de logiciel libre). Damian consacre un chapitre entier aux modules, ce qui est vraiment très intéressant : il vaut mieux perdre un peu de temps à intégrer un module de qualité que d’essayer de réinventer la roue en partant de zéro. Et l’auteur parle en connaissance de cause, car il a écrit lui-même de nombreux modules Perl et a été lauréat du prix Larry-Wall en 1998 et 1999 ! En parlant de style, il est aussi naturel d’aborder la disposition du code ainsi que les très importantes conventions de nommage.

Nous avons particulièrement apprécié les annexes comprenant le listing des règles essentielles de l’art de codage, ainsi que le chapitre intitulé « divers » et qui constitue une mine d’or d’informations au sujet de l’étalonnage, des valeurs liées, de « l’ingéniosité encapsulée » (ça ne s’invente pas !), de la mémoire et de la mise en cache.

N’oublions pas non plus que Perl est un langage Objet (même si les « puristes » ne considèrent pas Perl comme un « vrai » langage objet). À ce propos, le chapitre 15 qui se consacre au sujet nous met en garde « il existe une bonne dizaine de façons différentes de construire un objet : à partir de hachage, à partir d’un tableau, à partir d’un sous-programme, à partir d’une chaîne, etc. » Le programmeur Perl pourra ici baliser vraiment ce qu’il peut ou ne peut pas faire en suivant des conseils clairs qui sont résumés par une petite phrase balise du style « utilisez des objets avec une encapsulation complète ».

Enfin, une des parties les plus intéressantes de ce livre est consacrée aux expressions régulières (modificateurs paresseux, délimiteurs accolades, métacaractères, caractères nommés, etc.). On ressent vraiment ici l’expérience du rédacteur : c’est assez complexe mais en le lisant on a l’impression que c’est aussi simple que d’écrire « bonjour »…

En résumé, nous recommandons vivement cet ouvrage qui fait honneur à la réputation des programmeurs Perl. Avec Damian Conway, tout paraît simple et limpide, tout en restant d’un très haut niveau. Que vous soyez débutant ou expérimenté, voilà un livre qui risque de prendre une bonne place sur votre table de nuit.
Sommaire
Réduire
TENDANCES
• Éditorial
Irritation chronique : Google, dernier rempart de nos libertés ?


MATÉRIEL
Futur : Intel donne les nouvelles directions
Stockage : la bande toujours dans la course


LOGICIEL
e-commerce : une boutique en quelques clics
IE7 Béta 2 : la riposte à Mozilla
Bonnes feuilles : apprendre SQL avec MySQL


RÉSEAU
Sécurité : Comment optimiser votre firewall
VPN : Hamachi ou le VPN facile et gratuit


DOSSIER
Voix sur IP : les clés d’une installation réussie
• Choisir son fournisseur de Centrex IP
• Construire son système de ToIP
• Quelques fournisseurs de solutions VoIP et ToIP
• Asterisk, le PBX-IP Open Source


DÉVELOPPEMENT
Dotnet : créer des « Generics » intelligents pour vos applications
BPEL : le chef de projet de vos processus
LINUX JOURNAL : la virtualisation dans Xen 3.0


ITINÉRAIRES
• Comment capitaliser sur les retours d’expérience ?
• L’informatique continue à embaucher
• Un nouveau Master à Rennes
Livres : De l’art de programmer en Perl
Internet
Réduire
IE-logo.gifIE 7 Beta 2
La riposte à Mozilla
Par Hugo Lunardelli - copyright l'Informaticien, tous droits réservés

Une préversion prometteuse qui tranche agréablement avec IE 6 et augure d’un regain de compétition dont bénéficieront tous les internautes.


Disponible en téléchargement en version anglaise depuis la fin janvier, IE 7 Bêta 2 Preview constitue la première version d’IE 7 accessible au public. N’étant pas une version beta à proprement parler (il s’agit d’une « preview »), cette version comporte logiquement quelques bugs et limitations, mais illustre d’ores et déjà assez bien ce que sera la réponse de Microsoft à l’offensive Mozilla Firefox. IE 7 est disponible en deux versions : une version pour Windows XP qui fera l’objet de cette évaluation et une version intégrée à Vista dotée de fonctions de sécurité supplémentaires.
Pour ceux qui seraient tentés d’installer cette version d’évaluation pour Windows XP, il est en théorie possible de la désinstaller via
« Ajouter ou supprimer des programmes » dans le panneau de contrôle. Je n’ai malheureusement pas trouvé de trace d’une entrée Internet Explorer 7 dans la liste des applications des deux machines sur lesquelles je l’ai installé. Impossible donc de tester la désinstallation, la bonne nouvelle étant que cette désinstallation n’est pas vraiment nécessaire compte tenu du bon comportement général d’IE 7.
D’une globalement, IE 7 constitue indéniablement une bonne surprise tant du point de vue de la finition du produit que des améliorations apportées. L’interface a changé significativement, parfois de façon un peu déroutante, en apportant une touche de modernité bienvenue. La gestion des onglets est enfin présente et bien implémentée. L’impression – un des points faible d’IE 6 –, se voit améliorée de façon spectaculaire. La gestion des flux RSS fait partie des nouveautés avec quelques bonnes surprises. La sécurité, enfin, n’est pas en reste à travers notamment la prise en compte du « phishing », même si la version Vista ira encore plus loin dans ce domaine. Les performances sont satisfaisantes et l’impression d’ensemble que laisse IE 7 après quelques semaines d’utilisation est étonnamment bonne pour une version « preview ».


Une interface épurée

L’interface utilisateur d’IE 7 fait l’objet d’un lifting assez spectaculaire en adoptant une présentation épurée qui n’est pas sans rappeler à la nouvelle interface d’office 2007 ainsi que celle de FireFox 1.5. Les menus sont désormais optionnels, quoique toujours accessibles via la touche Alt. Le cartouche de navigation est situé tout en haut, à gauche, à côté des deux flèches de navigation avant et arrière ; une fenêtre de recherche est située en haut à droite de l’écran. De façon un peu déconcertante, une série d’icônes comprenant notamment l’icône de démarrage, la nouvelle fonction de gestion des flux RSS, la gestion de l’impression et les paramètres de configuration sont situées à droite de l’écran, une position qui va à l’encontre des habitudes de navigation. Enfin, deux icônes permettant de gérer les favoris et les onglets se trouvent à gauche du premier onglet de navigation.
À l’instar de Firefox 1.5, la barre de recherche autorise l’utilisation de plusieurs moteurs de recherche spécifiés par l’utilisateur, l’un de ceux-ci étant le moteur par défaut. La gestion des favoris a été remaniée dans le sens d’une plus grande simplicité. Il suffit désormais de cliquer sur le bouton +, situé à droite de l’icône favoris, pour ajouter la page courante aux favoris ou organiser ces derniers.
Au chapitre des petites touches bienvenues, notons qu’IE 7 permet de zoomer toute page au moyen d’une liste déroulante en bas à gauche de l’écran. Cette liste permettant de spécifier le facteur d’agrandissement souhaité. On peut obtenir plus simplement le même résultat via l’utilisation conjointe de Ctrl et du défilement de la molette de la souris, ou encore en utilisant Ctrl & touches + ou –. L’agrandissement obtenu concerne la page dans son intégralité, pas seulement le texte contenu dans celle-ci. La possibilité d’agrandir facilement toute page apportera un confort de lecture bienvenu et pas seulement pour les mal voyants.
Pour terminer sur l’interface, signalons l’excellente gestion de l’impression qui répond aux nombreuses critiques formulées à l’encontre d’IE 6 dans ce domaine. Grâce à un nouveau module aperçu avant impression, on passe facilement du mode portrait au mode paysage, on enlève les en-têtes et bas de page, on change les marges et enfin on peut réduire la dimension de l’impression pour qu’elle tienne en une page. Ces améliorations à elle seules justifieront l’évolution vers IE 7 pour un grand nombre d’utilisateurs d’IE 6. Il semble à ce sujet que l’impression représente la deuxième fonctionnalité la plus employée par les internautes.


Une gestion des onglets efficace et ergonomique

La navigation par onglets fait partie des raisons les plus criantes pour lesquelles des millions d’utilisateurs se sont tournés vers les alternatives disponibles au premier rang desquelles FireFox. Microsoft a bien offert depuis quelques mois un « add on » intégré à MSN Desktop Search Toolbar qui permet de créer des onglets au sein d’IE 6, mais le résultat tenait du bricolage. Ce que nous propose IE 7 relève a contrario d’une excellente mise en œuvre de ce concept qui se permet même d’aller un peu plus loin que ce propose Mozilla.
Figure-2.gifL’activation du mode Quick Tabs permet d’afficher l’ensemble des sites ouverts sous forme miniature.
IE 7 permet de créer de nouveaux onglets ou de les fermer via les combinaisons Ctrl + T et Ctrl + W. L’utilisateur pourra se déplacer d’onglet en onglet au moyen de Ctrl + Tab. Cerise sur le gâteau, une fonction de visualisation des pages ouvertes appelée Quick Tabs permet de repérer d’un seul coup d’œil un site parmi tous ceux qui sont ouverts.
Dès lors que vous avez au moins deux pages ouvertes, vous pourrez activer la fonction Quick Tabs au moyen d’une nouvelle icône qui apparaît à droite du bouton favoris et ajout de favoris.
Sous cette vue, vous pourrez rafraîchir un document, le fermer, voire fermer tous les autres documents ouverts à l’exclusion de celui en cours de visualisation. Puissant !
Une fois un certain nombre d’onglets ouvert, il est possible de les sauvegarder sous la forme d’un groupe dont tous les composants pourront être ouverts simultanément. À noter qu’il est possible de spécifier un groupe de sites au démarrage, de telle sorte que vous démarriez votre journée en visitant rapidement l’ensemble des sites que vous consultez habituellement. Pratique !

L’arrivée en force du RSS  

Microsoft avait surpris l’été dernier en annonçant son engagement massif derrière RSS. Bien avant l’arrivée de Vista, IE 7 représente la première manifestation tangible de ce soutien. IE 7 intègre l’ensemble des outils permettant de visualiser, de souscrire à et de consulter des flux RSS. Le support de RSS se manifeste sous la forme d’une icône (la même que celle de FireFox) qui se colore en orange dès lors qu’un flux RSS est trouvé sur une page. En cliquant sur cette icône, l’utilisateur se voit proposer de souscrire au flux en question. Par la suite, il suffira de cliquer sur l’icône RSS dans le centre de gestion des favoris pour visualiser les flux ayant été mis à jour et ne consulter que ces derniers. À noter qu’il est possible de grouper des flux dans des dossiers, à l’instar de la gestion des favoris.
Au-delà d’une implémentation intuitive d’un lecteur RSS au sein d’IE 7, il est intéressant de noter que ce qui est en fait installé représente la version Windows XP de la plate-forme RSS prévue pour Vista. Le gestionnaire RSS d’IE 7 constitue en fait un cas particulier de gestionnaire de flux RSS utilisant les services de cette plate-forme. Cette plate-forme comprend trois éléments permettant de gérer des listes de flux, un moteur de synchronisation et un service de stockage des flux. D’autres applications pourront tirer parti des services système et par exemple le futur « gadget » RSS qui sera intégré à la SideBar de XP, à l’instar de ce qui est désormais fourni avec la CTP Vista du mois de février. IE 7 représente la première révision significative du navigateur de Microsoft depuis le lancement d’IE 6 avec Windows XP en 2001. A en juger par les nombreuses évolutions et améliorations apportées, IE 7 devrait satisfaire la plupart des utilisateurs courants d’IE 6 et pourquoi pas convaincre une partie de ses détracteurs de donner une nouvelle chance à cet outil.


UNE ATTENTION PARTICULIÈRE APPORTÉE À LA SÉCURITÉ
Avec IE 7, Microsoft fait de son mieux pour corriger une image d’insécurité qui lui colle à la peau et qui a également conduit nombre d’internautes à déserter IE 6 dès que l’occasion s’est présentée. La première nouveauté dans ce domaine concerne ce que l’on appelle le filtre Phishing. Il s’agit de contrer une pratique devenue courante qui consiste à essayer de leurrer un internaute en lui extorquant des renseignements confidentiels (compte bancaire et mot de passe, …) par le biais d’un site présentant toutes les apparences d’un site officiel. Le filtre Phishing d’IE 7 prévient l’internaute dès lors qu’il soupçonne une imposture en changeant la couleur de la barre d’adresses en jaune (soupçon), ou en rouge (site notoirement répertorié). IE 7 fournit à la demande les raisons du blocage et permet de rapporter le caractère délictueux d’un site suspect ou au contraire d’exonérer celui-ci. Un nouvel analyseur d’URL est fourni pour bloquer les URL ayant pour projet de créer un débordement de mémoire tampon. Cet outil empêche également les scripts de déclencher des actions englobant plusieurs sites ou domaines. La plupart des contrôles ActiveX sont invalidés par défaut. Il est nécessaire d’approuver chaque contrôle individuellement. D’une façon générale, IE 7 se montrera beaucoup plus suspicieux vis-à-vis des sites sur lesquels vous essayerez de vos connecter. Contrairement à IE 6 qui affichait une icône en bas de page indiquant le statut d’un site, les informations de sécurité apparaissent de façon proéminente à coté de la barre d’adresses. En cas de problème avec le certificat du site, vous serez averti sans ambiguïtés. IE 7 dans Vista ira encore plus loin en matière de sécurité puisqu’il s’exécutera en mode protégé et bénéficiera de ce fait de privilèges particulièrement limités. IE 7 ne pourra écrire que dans le dossier des fichiers temporaires ce qui devrait mettre fin à l’utilisation d’IE en tant que porte dérobée d’entrée à Windows.

p. 1
Réduire
Com_IP_Gamme_IP_PHONE_10446.gifVoIP - ToIP
La « nouvelle » téléphonie informatique
Par Olivier Pavie - copyright l'Informaticien, tous droits réservés

Chez les opérateurs comme chez les fabricants, la VoIP est le nouveau vecteur de déploiement universel des télécommunications. Si les bénéfices sont rapidement identifiés, la problématique reste de se retrouver demandeur : à qui s’adresser et pour quel niveau de prestation ? Quelques points sur la technique, l’identification des besoins et les types de prestataires existants.


La première chose qui compte pour une société – n’importe laquelle – c’est d’être joignable par le téléphone et le fax. La téléphonie est le second moyen de communication qu’utilisent les hommes après l’échange verbal direct. Quand on est issu du monde informatique, on l’oublie souvent.
La VoIP offre donc une nouvelle corde à l’arc des informaticiens. Elle est aujourd’hui l’axe principal de développement de la téléphonie, et de manière plus générale, le protocole TCP/IP est celui de toutes les formes de télécommunications – entre autres. Les raisons en sont essentiellement l’interopérabilité facile avec le réseau Internet et les immenses potentiels que cela recèle en termes économiques et pratiques. Tout est possible, à tous les prix, pour tout relier, par tous les moyens, du particulier à la planète entière, en passant par tous les modes de transport possibles, terrestres, souterrains, spatiaux et sous-marins. Si on ajoute à ce formidable terrain le nombre de combinaisons de mixité qui existent, toutes les équations et tous les modèles sont possibles. Déblaiement obligatoire !


VoIP/ToIP : tout bénéfice ?

Le propre d’une nouvelle technologie qui se développe et se déploie, c’est d’apporter quelque chose au vulgum pecus. En dehors de l’aspect purement intellectuel de vouloir tout faire grâce au réseau IP, la richesse d’une solution ne se matérialise que lorsqu’elle apporte résolument de nouveaux services et une intégration rapide à moindre coût. Ce qui fait une grande partie de l’intérêt de la VoIP et de son vecteur d’image dans le public, ce sont évidemment les communications gratuites.
Si cela est aisé à intégrer pour un particulier qui va en bénéficier de manière simple et quasiment sans rien modifier à son environnement domestique familier, cela l’est moins pour une entreprise. Il faut penser investissements, endettement, amortissements, etc. Dans quelle proportion la facture de téléphone va-t-elle diminuer ? Dans quelles conditions optimales peut-elle diminuer ? S’il s’agit de remplacer le matériel existant, est-ce que cela ne va pas coûter le prix de la baisse occasionnée ? La fiabilité va-t-elle être aussi bonne ? Les nouveaux services rendus grâce à cette convergence voix/données vont-ils apporter un retour sur investissement moteur de croissance ?
Ces questions se posent bien évidemment mais elles peuvent aussi être inversées. Rester sur la téléphonie classique avec des contraintes de coût et de manque d’interopérabilité avec les données ne sont-ils pas une simple aberration ?


Choisir son fournisseur de Centrex IP
Pas toujours facile de choisir entre les solutions de type Centrex IP. Avant de dépouiller votre appel d’offres, voici quelques points sur lesquels il faut s’interroger :
• les postes de téléphone IP seront-ils compris dans le forfait ? Dans bien des cas il peut être préférable de les acheter (prix unitaire : environ 100 euros).
• des frais de mise en service s’ajoutent-ils aux frais initiaux de création et d’installation de votre système de ToIP ?
• pour les communications, le fournisseur propose-t-il une formule tout compris avec appels illimités vers les lignes fixes en France ou toutes les communications sont-elles facturées indépendamment du forfait par ligne ? Cette deuxième formule peut s’avérer plus intéressante. Analysez bien vos besoins !
• des frais de maintenance annuelle ou mensuelle sont-ils à prévoir en plus de la location ou de l’achat des postes IP ?
• voulez-vous récupérer des bases et combinés DECT afin de disposer de quelques postes sans fil ? Dans ce cas il faudra prévoir l’acquisition d’une passerelle spécifique (Tainet) supportant en général de une à quatre bases DECT qui seront reconnues sur le réseau comme autant de postes IP.
• pensez aussi à vous faire présenter l’interface d’administration Web de votre PABX virtuel. Elle n’est pas toujours un modèle d’ergonomie. La plupart des options avancées seront pourtant définies directement sur celle-ci : filtrage, renvois, raccourcis, transferts, boîtes vocales, musiques d’attente, etc.


p. 2
Réduire
Distinguer le niveau de service : ToIP ou VoIP ?

Alors que la VoIP est l’usage du réseau informatique pour créer une télécommunication, la ToIP est à la base l’adaptation du réseau téléphonique au réseau informatique (et vice-versa). Lorsqu’on travaille en VoIP, on se retrouve dans l’usage classique des logiciels, appelés Softphones, de type Skype, mais aussi MSN Messenger, Wengo et d’autres. Ce qui a été ajouté en tant que mode ToIP, c’est la possibilité pour ces outils de s’ouvrir à la téléphonie « classique » en disposant de numéros d’appels accessibles à partir des téléphones traditionnels. Ces mêmes logiciels peuvent également appeler des numéros « classiques » via cet abonnement ou quelques dîmes supplémentaires. Ces outils existent depuis l’arrivée d’Internet ou presque ; ils se sont simplement améliorés techniquement et adaptés commercialement.
En définitive, le véritable terme à employer désormais, c’est la ToIP qui se charge d’être une passerelle totale et bidirectionnelle entre les réseaux informatiques à base de protocole TCP/IP et les réseaux téléphoniques. La ToIP est résolument le remplacement du standard téléphonique par une boîte à tout faire dans tous les sens du terme.


Quelles solutions pour les PME ?

 Si le concept de VoIP est simple, si l’interfaçage avec la téléphonie classique n’est qu’un simple problème de passerelle, ce sont les différentes solutions d’architecture du réseau informatique et de ses passerelles qui vont déterminer les vrais services, notamment ceux qui concernent la convergence voix/données et que l’on appelle le modèle « Full-IP ». Les offres les plus communes et les moins onéreuses s’adressent principalement aux PME dans le cadre d’un quasi remplacement de l’installation téléphonique existante en passant par une externalisation via les passerelles de type Centrex IP : les boîtes sont quelque part sur un réseau qui fait office de véritable centre d’appel délocalisé capable de router tout le trafic téléphonique vers les destinataires, via une technologie réseau IP. Ce sont ces mêmes dispositifs qui servent aux opérateurs télécoms pour affecter des numéros de téléphone IP via les Livebox, Freebox et autres. La principale différence entre l’outil du particulier et celui du professionnel va alors se situer dans le trafic réseau garanti pour tel nombre de communications simultanées à qualité irréprochable, contre une solution laissant parfois à désirer (pour l’instant en tout cas) lorsqu’il s’agit de s’adresser au marché des particuliers.


Sémantique dans la profession

Pour les professionnels, les opérateurs fournisseurs de services de ce type sont appelés des opérateurs de téléphonie haut-débit car le trafic téléphonique n’est plus que du flux réseau haut-débit. Ces solutions représentent pour l’instant le gros du marché et la plus forte croissance car les positionnements prix sont les plus bas avec en général une facturation forfaitaire de la bande passante nécessaire et non plus un coût par appel.
Ancré en tant qu’opérateur haut débit, B3G est actuellement un des leaders européens de ce domaine : ne travaillant qu’avec un circuit de distribution indirecte, Infini Link, Normaction et d’autres sociétés ont trouvé des accords avec l’opérateur pour s’adresser au créneau des TPE et PME. Quel que soit l’opérateur utilisé, le nom que portent ces intervenants au devant du client final, c’est celui d’Intégrateur. Celui-ci se veut être l’interlocuteur idéal pour la TPE et la PME en lui proposant d’intégrer toute la chaîne de services normalement détenue par les intermédiaires et intervenants que sont les installateurs télécom, les installateurs/intégrateurs réseau, les SSII et les opérateurs de téléphonie haut débit en voix sur IP.
Un outsider comme Vivaction, lui aussi opérateur de téléphonie IP, utilise jusqu’au satellite pour relier directement en accès direct et avec un numéro national des centres d’appel délocalisés (« offshore ») sur d’autres pays comme cela a par exemple été fait pour son client Center Value, au Sénégal. Ipnotic-telecom se positionne comme opérateur global de télécom en voix sur IP en commercialisant directement ses offres auprès des entreprises.
La téléphonie sur IP est incontournable dès lors qu’il s’agit de moderniser une installation ou d’en créer une de toute pièce. Interfacée au réseau informatique « standard » de l’entreprise, elle offre le bénéfice de totalement supprimer un déploiement d’un réseau dédié téléphonie. Le Centrex IP se veut être la solution solide actuelle en attendant les services de voix/donnée et de mobilité Wi-Fi.


Les étapes de l’installation d’un Centrex IP
1. Vérifiez en premier lieu votre câblage réseau. Il doit être homologué catégorie 5 et supporter du 100 Mbits/s de bout en bout. Préparez votre plan de câblage. Il est recommandé de connecter chaque poste IP sur une prise LAN directement reliée à un switch unique lui-même directement relié au routeur dédié réseau ToIP. Évitez les mini switchs installés dans les bureaux. La présence d’un seul commutateur au niveau du brasseur central est préférable. Pour la même raison, il vaut mieux ne pas chaîner plusieurs postes IP sur la même prise LAN.
2. La première étape de l’installation consiste en la commande par l’opérateur ou l’intégrateur choisi de deux lignes ADSL ou mieux SDSL (une principale et une de secours).
3. Après la mise en service du XDSL, le fournisseur vous livre et installe routeurs (un pour chaque ligne), postes IP et éventuellement passerelle DECT. Chaque poste est reconnu sur le réseau par son adresse MAC (à laquelle est associée par votre fournisseur un numéro de téléphone). Ainsi, même si vous déplacez un poste IP d’un bureau à l’autre, il garde son numéro quelle que soit la prise LAN à laquelle il est raccordé.
4. Votre fournisseur pourra également demander un portage des anciens numéros de vos lignes Numéris vers les nouvelles lignes IP. Un délai de deux semaines est à prévoir. À la date prévue, il suffira de définir les correspondances entre anciens et nouveaux numéros via l’interface Web du Centrex IP.


p. 3
Réduire
Com_IP_IP_PHONE_Cisco_11555.gifTéléphonie sur IP : construire son système de ToIP

La ToIP, c’est du réseau à qualité de services. Matériels et logiciels doivent tirer parti les uns des autres pour assurer la qualité des communications, et ce, quelle que soit leur origine interne, externe, nationale et internationale. La qualité de l’architecture et des matériaux employés est primordiale.

Chaque maillon faible d’une chaîne s’avère être un risque pour son intégrité. Dans la téléphonie sur IP, il n’y a pas pire que d’héberger un seul maillon faible : tout doit assurer la qualité de services. Il y a des points clés relativement simples à comprendre, mais pas forcément faciles à identifier dans les services de celui qui sera votre interface. Tâchons d’y voir plus clair.


La liaison IP

En termes d’analogie avec ce qui est facile à imaginer, j’établis ici un parallèle entre le DECT (Digital Enhanced Cordless Telephony) et le réseau. Ainsi, 32 kbps, c’est ce qu’autorise un canal de voix numérique sur la base de la technologie numérique DECT. C’est une excellente qualité pour de la téléphonie. On parle de ce canal comme étant Full Duplex (bidirectionnel permanent). Toutefois, cette bande passante intègre les protocoles de correction d’erreur au sein du fonctionnement de l’échange vocal, mais pas la gestion des canaux qui est opérée en surcouche entre la base et les terminaux. Pour compter large, il faut ajouter 20 % de débit en plus pour se garantir une bonne qualité globale. Ainsi, pour revenir sur le réseau et les liaisons numériques IP, sur 256 kbps garantis en SDSL, vous avez la possibilité d’envisager l’équivalent de 6 à 7 communications simultanées de très bonne qualité, comme si vous disposiez de 6 à 7 lignes de téléphone. Pourquoi le SDSL ? Tout simplement parce qu’il offre une liaison symétrique facile à exploiter en Full duplex garanti. La solution pour une PME est de se pencher vers la solution de la connexion mixte SDSL/ADSL, solution préconisée par certains opérateurs pour satisfaire à la fois aux besoins en Internet « classique » et en ToIP.


SIP, H323, MGCP et les autres
Les standards de VoIP s’appellent SIP (Session Initiation Protocol), H323 et MGCP. Il y en a d’autres. Le plus largement déployé et qui se positionne actuellement comme « leader » du marché, c’est SIP, Session Initiation Protocol, un standard international qui virtualise intégralement le numéro de téléphone sur le réseau. Cette virtualisation du numéro offre la possibilité de l’exploiter commercialement de nombreuses manières, depuis l’authentification matérielle par un poste téléphonique IP ou un simple boîtier à connecter au réseau jusqu’au simple logiciel client sur un terminal Smartphone ou Portable PC. SIP est amené à s’imposer du fait de son mode de fonctionnement très simple qui initie les conversations avec des commandes en texte ASCII. Avec cette ouverture, SIP est bien placé pour se positionner sur le marché de la visiophonie.




Passerelle IP et réseau

À l’intérieur de vos locaux, derrière le modem DSL (voire derrière une liaison spécialisée louée si vous avez opté pour cette option), il y a le réseau et ses contraintes d’utilisation. Les débits du protocole exploité pour la VoIP doivent être garantis et réservés. Sur un réseau bien dimensionné et moderne, comme on peut aujourd’hui le faire avec une technologie Gigabit Ethernet sur cuivre (voire sur fibre), il ne doit pas y avoir trop de soucis pour router le trafic d’une PME et gérer moins de 10 Mbits de ToIP, à condition toutefois d’utiliser le réseau avec des répartiteurs de type switch, voire de switchs administrables. Pour les réseaux modernes, les switchs peuvent intégrer la gestion du protocole 802.3p qui gère la priorité du trafic réseau et offre la possibilité d’optimiser directement le trafic Voix sur IP. Dans la même veine, il existe des switchs et passerelles qui peuvent identifier certains téléphones IP par leur adresse MAC comme étant des appareils de VoIP et ainsi optimiser instantanément leur gestion sur le réseau. C’est par exemple le cas de certains équipements commercialisés par 3Com.


Christian-Megard13474_Copi7.gifLe Wi-Fi oui, mais pas systématiquement
Christian Megard, responsable offre Data – Réseaux & Télécoms, AMEC SPIE Communications

AMEC SPIE Communications se positionne comme une société de services pour la PME/PMI et le grand compte (65 000 clients en France) dans la chaîne du système d’information, en intervenant depuis le système de câblage jusqu’à l’hébergement d’applications au sein de l’entreprise, en passant par les infrastructures réseaux et télecoms et le poste de travail. L’applicatif métier n’est en revanche pas son rôle et reste l’apanage des SSII. Pour Christian Mégard, « On peut tirer trois grands constats sur l’état du marché de la voix sur Wi-Fi. Premièrement, les déploiements en téléphonie mobile au sein de l’entreprise restent encore très ciblés sur l’usage du DECT ou de passerelles DECT vers les IPBX. Deuxièmement, le déploiement de la voix sur Wi-Fi n’est pour l’instant réellement envisagé que dans le cas où il existe en amont un projet de convergence IP et/ou de Wi-Fi “data”. Et troisièmement, on ne voit pas encore de projet guidé et initié par un intérêt applicatif, qui aboutirait vers une pure solution Voix sur Wi-Fi. Néanmoins, les nouvelles offres de Cisco (unified communications) et de Nokia (terminaux mixtes GSM/Wi-Fi – prévus pour juin) devraient commencer à changer la donne. »

Skype pour la TPE et la petite PME
Skype se trouve être une alternative intéressante pour la TPE et la PME de moins de 10 personnes. D’installation facile sur des PC sous Windows et Linux, Macintosh ou Smartphones sous Windows Mobile, Skype est un client VoIP universel gratuit qui peut aussi se faire adjoindre des “contrats de flotte”. En effet, il est possible de payer des services pour des numéros de téléphone équivalents SIP qui peuvent appeler des téléphones de tous types et recevoir des appels directement du réseau ou de téléphones divers et variés. Autre intérêt de Skype : lorsqu’un équipement est connecté avec un identifiant sur le réseau, un autre appareil ou autre client peut lui aussi être connecté avec le même identifiant et ainsi permettre d’utiliser par exemple un terminal Wi-Fi dans sa poche indifféremment du logiciel installé sur un Windows Mobile ou un PC sous Windows. Il est à noter que les grosses sociétés n’aiment pas l’usage de Skype en raison de son mode de fonctionnement de type Peer to Peer consistant éventuellement à servir de passerelle relais avec d’autres clients skype n’ayant rien à voir avec les utilisateurs connectés (sorte de fonctionnement Mesh relativement gênant sur de gros réseaux que l’on veut absolument sécuriser au maximum).


p. 4
Réduire
Alimentation POE

Les téléphones IP que l’on branche où on veut sur le réseau gagnent bien évidemment en souplesse et autonomie lorsque le réseau diffuse le POE (Power Over Ethernet). Cette norme y trouve une grande partie de sa justification. Elle se pose en évolution très intéressante à prendre en compte en cas de nécessité de moderniser le réseau et en impératif pour une création.
Le POE offre en effet l’alimentation électrique directe des postes téléphoniques sur le réseau sans nécessiter le déploiement du 220 V. La tension de 48 V du POE est diffusée dans le réseau via les switchs et hubs compatibles avec la norme. Avec la téléphonie sur IP, ce sont les téléphones qui se branchent, tout comme certains petits hubs, des AP (points d’accès Wi-Fi), certaines caméras IP, etc. En cas d’utilisation du POE de manière quasi systématique, il est important de faire attention à bien penser à la consommation effective de tous ces équipements. Il est ainsi possible de raccorder une alimentation externe sur certains switchs. Cette possibilité s’avère salutaire lorsque vous utilisez des switchs à 32 ou 48 ports POE en format Rack 1U. L’utilisation du CPL couplé à un réseau Ethernet est une opportunité complémentaire de déploiement du réseau par les prises électriques sans utiliser de câbles spécifiques.


Les normes audio
Les équipements de VoIP répondent à des critères de flux audionumériques dont le débit oscille entre 20 et 110 kbps. Le G711, sans compression, occupe 64 k de base. Avec le reste de la couche réseau et des données nécessaires aux corrections d’erreur, gestion des paquets, etc, il varie au final entre 90 à 110 k. Le G729a, très compressé oscille quant à lui entre 15 et 20 kbps avec un une section audio qui n’occupe de 9 kbps. Les évolutions des réseaux, leur optimisation ainsi que les augmentations de bande passante de plus en plus disponibles en intranet poussent les ingénieurs à essayer de nouveaux axes de développement de la VoIP interne vers une qualité nettement améliorée de l’ordre de 128 kbps rien que pour le signal audio compressé (de type MP3). Ceci n’est encore qu’au stade expérimental, mais montre combien il est illusoire de se dire que tout est joué.



Qualité de service

En dehors des normes et des possibilités de gestion de ToS (Type of Service) sur le réseau, il n’est pas toujours évident de garantir un flux de qualité sur le réseau, surtout quand il est utilisé par de nombreuses applications répondant à des besoins très variés de gestion administrative et commerciale, de marketing, de communication, de production, etc. Si le réseau est ainsi exploité, il est difficile de remettre en cause tout son fonctionnement. Dans ce cas, il y a la solution d’analyser les flux et de les réguler en fonction des besoins. Allot Communications est un des acteurs dans ce domaine et propose des boîtiers, appelés NetEnforcer, capables d’analyser les flux pour ensuite se servir du reporting afin de calibrer le réseau pour l’ensemble des applicatifs. La panoplie d’analyse est impressionnante et porte jusqu’à la possibilité de reconnaître des signatures de flux cryptés par une méthode d’analyse comportementale.


Ce qui va transformer le Wi-Fi pour la VoIP
Sébastien Broute
, consultant réseaux, 3Com France

« Par son efficacité, le Wi-Fi s’est imposé sur le marché du sans fil dans l’entreprise avec les applications data et l’accès à Internet. La mobilité pure était assez réduite puisque l’utilisateur se servait de son accès sans avoir à se déplacer sans arrêt. La première grande utilisation ayant nécessité une adaptation du Wi-Fi à une vraie mobilité fut dans les hôpitaux : les Tablet PC servant à la gestion des dossiers médicaux des patients se trouvaient toujours en situation de mobilité sur de grandes distances. C’est là qu’un protocole d’échange rapide de point d’accès à point d’accès, l’IAPP (Inter-Access Point Protocol), est identifié sous la norme 802.11f. Le fast roaming est ensuite arrivé avec les contrôleurs Wi-Fi pour un roaming plus rapide et inférieur à 300 ms. Dans ce contexte, pour la VoIP, il manque encore la QoS (Quality of Service) qui va successivement être amenée par la norme Wi-Fi Multimedia puis la norme 802.11e qui intègrera en plus la gestion d’énergie et le contrôle de disponibilité de service. Avec une modification de la couche physique, Wi-Fi Multimedia va offrir 4 niveaux de priorité (priorité des trames basés sur les temps d’attente, ce que l’on appelle le scheduling) dont le premier sera celui réservé à la VoIP. Il n’est pas certain que les AP (Access Points) puissent être tous mis à jour avec le support de Wi-Fi Multimedia en raison d’un problème de buffering et donc de mémoire nécessaire pour temporiser les flux non prioritaires. »



Sécurisation MPLS sur VPN

La principale sécurisation des flux de VoIP passe aujourd’hui par l’usage du MPLS (Multiprotocol Label Switching) dans des VPN. Le MPLS permettant d’encapsuler toutes les informations IP de toutes origines choisies, le VPN permet de les transporter de manière sécurisées. De façon à garantir la qualité du trafic, passant éventuellement par Internet, contre des agressions multiples y compris la saturation de requêtes ping par des logiciels pirates implantés sur des serveurs disséminés sur Internet, il est possible d’implémenter des systèmes de leurres qui limitent la bande passante des ports sur lesquels les attaques ont lieu de façon à garder la meilleure bande passante pour le service. Cette technique évite que les systèmes pirates ne déploient de nouvelles attaques et fait de plus croire à l’attaquant qu’il a réussi la saturation !


Les normes Wi-Fi
802.11b : 2,4 GHZ à 11 Mbps
802.11a : 5 GHz à 54 Mbps couverture plus
802.11g : 2,4 GHz à 54 Mbps
802.11e et Wi-Fi Multimedia : Wi-Fi Multimedia une sous-catégorie des spécifications de QoS contenues dans 802.11e.
802.11i : norme de sécurisation. Les spécifications de 802.11i sont entièrement déployées dans les équipements compatibles WPA2.
802.11n : nouvelle norme qui exploite, entre autres, les avantages de la technologie MIMO pour améliorer le débit de Wi-Fi pour le porter à plus de 400 Mbps (environ 150 Mbps en réel dans les 15 m).
MIMO : acronyme de Multi Input-Multi Output , ce qui signifie « plusieurs entrées-plusieurs sorties », se matérialise comme étant une technologie implémentée dans certains points d’accès dans lesquels plusieurs antennes assurent un meilleur passage des ondes dans tous les sens possibles, tout en utilisant jusqu’aux rebonds de celles-ci sur les murs. Avec MIMO, la meilleure qualité n’est plus forcément la ligne droite entre le client et le point d’accès.



laurent_dugimont_420171_Co8.gifLes services Voix données vont commencer à se déployer
Laurent Dugimont
, responsable Windows Mobile chez Microsoft France

« Microsoft propose d’ores et déjà plusieurs services et serveurs qui se préoccupent d’offrir de nouveaux services via des terminaux qui fonctionnent sous Windows Mobile. Microsoft Office Communicator Mobile autour d’une plate-forme Live Communication Server, offre un système de messagerie mobile unifiée, véritable pilier de la communication nomade de l’entreprise. Microsoft Office Communicator fonctionne avec des terminaux mobiles GSM pouvant intégrer Wi-Fi et UMA (Unlicensed Mobile Access), ce qui permet une utilisation plus large des services “données” et offre aussi une plate-forme à n’importe quel client VoIP/ToIP sous Windows Mobile, en mode SIP ou autres. En outre, Windows Live Server peut être interfacé avec des proxy SIP qui peuvent se connecter vers des PABX d’origine Nortel, Cisco, Avaya, Siemens, etc. Microsoft participe également au développement du téléphone Wi-Fi domestique de France Telecom baptisé Livephone et apporte son expertise données pour les terminaux IP. De manière générale, Microsoft accompagne des opérateurs dans le développement des SoIP (Services over IP). La convergence voix/données n’en est qu’à ses débuts. »


p. 5
Réduire
Asterisk, le PBX-IP Open Source
Par Alain Baritault - copyright l'Informaticien, tous droits réservés

À la conférence VON dédiée à la voix sur IP qui s’est tenue à San Jose en Californie, le stand Asterisk regroupait une quinzaine de partenaires fournisseurs d’applications et d’outils originaux pour enrichir ce système logiciel IP-PBX Open Source.

markSpencer-Asterisk22413_9.gifPour la société d’analyse Dell’Oro, il y a trois catégories de IP PBX (Private Branch Exchange) : les systèmes traditionnels qui commutent les appels en s’appuyant sur des circuits TDM (Time Division Multiplexing) ; les IP PBX à base de voix sur IP qui « packetisent » la voix et la commutent via un LAN/WAN utilisant Internet ; les PBX hybrides de type IP/TDM qui supportent à la fois une commutation TDM et le système de routage IP.
Techniquement, l’atout d’un IP-PBX est le support du standard SIP (Session Initiation Protocol) de voix sur IP qui permet l’intégration de services vocaux et vidéo avec l’ensemble des procédures de traitement des appels sur Internet, et le support d’une interface Web services qui permet l’intégration avec les applications Web.
L’IP PBX est l’outil parfait de convergence voix-données-vidéo et les analystes prévoient que le marché mondial des IP-PBX atteindra une valeur de 2 milliards de dollars en 2010 alors que le chiffre d’affaires réalisé par la voix sur IP passera de 1,24 milliard de dollars en 2004 à 23,4 milliards de dollars en 2009, soit un multiple de 18.
L’idée de Mark Spencer, le créateur d’Asterisk il y a 6 ans, fut de développer un logiciel gratuit d’IP-PBX en Open Source qui puisse s’installer sur un simple PC muni de cartes d’extensions PCI et d’un système Linux, BSD, Windows ou Mac OS X (lire article paru dans l’Informaticien n° 27). Ce logiciel est compatible SIP mais comporte aussi son propre protocole de voix sur IP appelé IAX, qui n’est pas un standard mais semble présenter quelques avantages sur SIP dont une plus grande simplicité. L’intérêt d’Asterisk est une baisse considérable des coûts d’équipement puisqu’un PC reconditionné peut faire l’affaire et offrir plus de fonctionnalités qu’un classique central téléphonique d’entreprise. Il est suivi d’une réduction sensible des coûts de fonctionnement grâce à la voix sur IP.
Digium, (anciennement Linux Support Services) dont Mark Spencer est président et fondateur, gère le processus Open Source du logiciel Asterisk et propose en même temps des solutions commerciales hardware et logicielles basées sur ce logiciel gratuit. La société a mis en place un programme de partenariat et de certification des produits autour d’Asterisk. Cependant, la certification Asterisk d’un produit n’est pas gratuite et chaque contrat est négocié en fonction du type de produit. Selon Kevin Fleming, Senior Software Engineer de Digium, Asterisk connaît un vif succès dans les PME européennes malgré le faible niveau d’activité marketing de Digium. L’une des activités les plus développées chez les partenaires est d’offrir des solutions d’installation clés en main ou des solutions de migrations graduelles pour les entreprises. Certaines solutions verticales commencent à apparaître.



UN IP-PBX EN FONCTIONNEMENT POUR 1 000 DOLLARS
Anciennement appelée Four Loop Technology, la société Switchvox a développé un système complet d’IP-PBX Asterisk particulièrement destiné aux PME, dont le coût est de 1 000 dollars, quel que soit le nombre d’utilisateurs. La plupart des systèmes IP-PBX sont vendus au nombre d’utilisateurs et ont une montée en charge coûteuse au fur et à mesure que l’entreprise recrute. Switchvox a développé une interface Web de paramétrage simple et explicite qui accompagne l’administrateur dans la configuration du système. Le système permet d’ajouter des postes à la demande, sans surcharge de prix autre que d’ajouter des ports de sortie téléphonique à l’ordinateur. Tristan Degenhardt, VP Operation et co-fondatrice de la société, explique qu’il est aussi possible d’ajouter des cartes TDM pour créer un IP-PBX hybride et que le support est effectué par les revendeurs locaux. Elle précise qu’il est possible d’adjoindre n’importe quel système IVR (Interactive Voice Regognition) pour créer un système de réponse automatique guidée.

RECONNAISSANCE VOCALE INTÉGRÉE DANS ASTERISK
LumenVox annonçait à VON un partenariat avec Digium pour intégrer son moteur de reconnaissance vocale dans la licence Asterisk lors de la prochaine release 1.4 qui sera disponible en mai. Les utilisateurs d’Asterisk pourront désormais développer des applications de reconnaissance vocale en utilisant le langage de script Dial Plan. Auparavant, les applications de reconnaissance vocale et de réponse automatique devaient être réalisées et intégrées à partir de logiciels spécialisés comme Nuance. L’avantage de LumenVox, selon Stacy Ford, responsable des ventes, est le prix très bas des grammaires, c’est-à-dire des listes de mots reconnus par le système. Pour l’instant, le système fonctionne uniquement en anglais mais une version en français devrait arriver rapidement.

UN CENTRE DE CONTACTS SOUS ASTERISK
Roger Quirion est directeur du business développement et responsable du marché français de la société canadienne Aheeva qui a réalisé une solution complète de call center sous Asterisk. « Notre solution CCS 2.0 est idéale pour les PME, les municipalités, les organisations de taille moyenne, explique-t-il. En effet, au-delà de 20 sièges, nous passons à des prix au siège qui sont la moitié de ceux de nos concurrents. » Le logiciel est très complet et fonctionne sur Internet. Il permet de créer une structure totalement décentralisée pour la gestion de contacts ou la mise en place et le suivi de campagnes, avec des opérateurs travaillant à la maison et/ou sur un réseau d’entreprise. La société ouvre un bureau à Paris au début de l’été.

ZIMBRA, PREMIÈRE MESSAGERIE UNIFIE l’OPEN SOURCE
Digium annonçait la signature d’un partenariat avec Zimbra, développeur d’un système de collaboration et de messagerie réunissant Ajax et Web Services et l’un des initiateurs de l’Open Ajax Initiative. Ce dernier intègre désormais les capacités VoIP de Asterisk dans ZCS (Zimbra Collaborative Suite) permettant de mettre sur le marché la première solution Open Source de messagerie unifiée. Il est maintenant possible de pointer sur un numéro de téléphone inscrit dans un e-mail, un carnet d’adresse ou un carnet de rendez-vous et de déclencher automatiquement sa numérotation sur s’importe quelle ligne choisie. Il est aussi possible de planifier et de créer automatiquement une conférence audio ou d’accéder à sa messagerie vocale à partir de l’e-mail sur un PC ou un cellulaire, sans qu’il soit nécessaire de passer un appel téléphonique. Le logiciel est disponible sur le site de Zimbra en deux versions, Open Source entièrement gratuite, ou Network Edition avec support et mises à jours pour 28 dollars par boîte à lettres par an.

LA MIGRATION FACILE
L’un des obstacles à la migration vers les IP-PBX est l’existence dans l’entreprise d’un important parc de téléphones analogiques. Plutôt que de les remplacer par des téléphones SIP lors de la mise en place immédiate d’un IP-PBX, la société anglaise Citel a conçu une passerelle qui fonctionne sur l’infrastructure de réseau (LAN) existante dans l’entreprise et permet d’utiliser les combinés analogiques de Nortel, Avaya, NEC ou autres avec n’importe quel serveur SIP Broadsoft, Sylantro, Asterisk, etc., ou n’importe quel Centrex chez un opérateur. Les entreprises peuvent ainsi continuer d’utiliser leur ancienne infrastructure analogique avec leur IP-PBX et la faire coexister avec des combinés SIP. La société a installé ses opérations à Seattle et vient se signer un accord avec Sprint pour son offre hébergée IP Voice Connect.

UNE CONFÉRENCE ASTERISK À PARIS CET ÉTÉ

Sokol & Associates est spécialisée dans les formations autour d’Asterisk. Cette start-up située à Kansas City dans le Missouri a développé un programme de formations d’initiation et de formations techniques à la mise en œuvre et à la maintenance des serveurs Asterisk. Partenaire de Digium, elle organise aussi les conférences Astricon centrées sur les serveurs Asterisk, ses produits et ses applications. Le 22 et 23 juin prochain, la conférence se tiendra à Paris, après Berlin et avant Londres.


p. 1
Réduire
INGST0387283_Copier5.gif« Generics » intelligents pour vos applications
Par Frédéric Milliot - copyright l'Informaticien, tous droits réservés

Inaugurées avec DotNet 2.0, les collections dites « génériques » permettent d’uniformiser des traitements complexes indépendamment du type de données. Bien utilisées, elles peuvent rendre vos codes sources à la fois plus élégants, plus efficaces et d’une maintenance plus aisée.

Les « generics » sont probablement une des plus importantes innovations de DotNet 2.0. À quoi servent-ils ? À manipuler des collections de type de données quelconques de manière abstraite, avec des mécanismes standardisés et optimisés. De ce fait, ils sont un élément de productivité important. Plus besoin, en effet, de coder à la main les opérations de base de chaque type. Cette approche est d’autant plus efficace qu’elle laisse DotNet s’occuper d’à peu près tout, en particulier le « boxing ». On appelle ainsi la technique – complexe et génératrice de bugs – qui arbitre les déclarations de données par valeur et par référence en stockant ces données sur la pile ou sur le tas. Elle fait partie des mécanismes qui font que le code DotNet est « managé ».

Mais qu’entend-on réellement par « generics » ou « génériques » en français ? C’est ce que nous allons voir maintenant. Sur la base de ce bref rappel théorique, nous passerons ensuite à un cas d’application concret avec un objectif ambitieux : développer un mécanisme générique d’accès à n’importe quelle table de n’importe quelle base de données !


Les génériques, pour quoi faire ?

Si le concept de génériques est parfois mal appréhendé par les développeurs, c’est que le terme prête à confusion. Il existe depuis l’origine un type à proprement parler générique dans DotNet (comme d’ailleurs dans tous les environnements objets), c’est le type « Object ». Object est le type dont découlent tous les autres par héritage, si bien que tous les types sont d’abord des « Object ». Par voie de conséquence, les méthodes du type Object sont disponibles sur tous les autres types de données. Par exemple, la méthode Object.ToString() qui génère la représentation textuelle de l’objet peut être appliquée à n’importe quel autre type de données, notamment celles qui sont créées par le développeur, et donner un résultat fonctionnellement équivalent.
Mais voilà, si Object est un type bien réel que l’on peut déclarer, il est aussi fort limité. On peut transtyper tous les types de données en Object, mais du même coup ils perdent leurs propriétés spécifiques, et les traitements disponibles sont réduits à un plus petit commun dénominateur qui ne permet pas d’en faire grand-chose. D’où l’idée d’un type purement abstrait, un type permettant des codages qui conceptuellement ressembleraient à ceci :

• quel que soit le type de données, je peux en déclarer une collection (liste, tableau…) ;
• peu importe les spécificités et la complexité de ce type, les données seront traitées comme de simples éléments de cette collection ;
• les génériques de ma liste peuvent eux-mêmes être des listes, et ainsi de suite sans limitation ;
• ces ensembles sont dynamiques, je peux les créer vides et les augmenter ou les diminuer facilement selon mes besoins, comme si j’utilisais un tableau ArrayList ;
• inconvénient par rapport aux ArrayList : tous les éléments de mon tableau doivent être du même type ;
• avantage par rapport aux ArrayList : comme les éléments de mon tableau sont de même type, les méthodes de manipulation sont significativement optimisées.

C’est ce type purement abstrait qu’on appelle « générique ». Il aurait sans doute mieux valu l’appeler « abstract », sauf que le terme est déjà utilisé pour qualifier certaines méthodes signées mais non implémentées.

La représentation des types génériques est un autre point qui défrise un peu les développeurs les plus réactionnaires. C’est qu’il n’existe, en effet, pas de type « Generic » en soi. Déclarez-en un…

Generic gen ;


… dans un IDE DotNet et celui-ci va vite vous rappeler à l’ordre. Dès lors, comment fait-on pour représenter un générique ? Voici un exemple classique qui déclare un tableau dynamique de génériques, le crée, le remplit et le vide. Remarquez que tout le secret est dans la déclaration du type des éléments qui composent la liste :

int _MaMethode()
{
  int i;
  string str;
  List<string> lstStrings;

  try
  {
    // Crée une collection générique locale contenant des strings.
    lstEntries = new List<string>();
    // Ajoute dix strings à cette collection.
    for (i = 0; i < 10; i++)
    {
      str = i.ToString() ;
      lstEntries.Add(str);
    }
    // Vide la collection.
    lstEntries.Clear();
    return (0);
  }
  catch (Exception)
  {
    return (-1);
  }
}


Sachant qu’une collection générique ne peut contenir qu’un seul type de données par référence ou par valeur, et que ce type peut être soit simple soit complexe, c’est la mention de ce qui se trouve entre les signes « < » et « > » qui stipule le type de la collection. Comme on le voit, ce n’est donc pas le type qui est générique – dans notre exemple il s’agit bel et bien d’un classique type string – mais la formalisation algorithmique des traitements qui sont faits sur lui, pour ne pas dire le codage.

Ainsi, dans cet exemple, on peut remplacer le type string par n’importe quel autre type métier dérivé de String, il n’y a absolument rien à changer au code qui fonctionnera aussi bien et aussi vite. On peut aussi remplacer le type string par n’importe quelle classe, même la plus complexe qui soit, rien ne change. Il faudra juste remplacer l’assignation de valeur (ligne « str = i.ToString() ») par une instruction en rapport avec le type de la classe.


Des performances avérées

Comme chacun sait, travailler avec des tableaux classiques (array) peut parfois s’avérer fastidieux sous DotNet. Pour que le code soit stabilisé au maximum, les contraintes dictées par l’environnement pour la manipulation des tableaux classiques sont strictes : la création se fait avec un nombre fixe d’éléments, et ce nombre ne peut plus varier. C’est une bonne chose parce que, de ce fait, une proportion non-négligeable des erreurs mémoire qui causent les plantages applicatifs est évitée. Mais cela oblige les développeurs pressés à recourir à des subterfuges dont le plus simple est ArrayList.

ArrayList, c’est le « bon gros » tableau à tout faire, qu’on peut redimensionner à loisir et qui, mieux encore, peut contenir des éléments de types différents. Un ArrayList accepte une chaîne en élément 0, un entier en élément 1, un tableau d’octets en élément 2, etc. On n’a jamais fait plus pratique sauf que, en production, ArrayList est désespérément lent. Quelques benchmarks circulent sur le Net mais, grosso modo, le delta de performances n’est jamais inférieur à 100 %. Là où un traitement « List<> » met une seconde à s’effectuer, il en faut au minimum deux pour un traitement équivalent en ArrayList. Si cela vous intéresse, pour mettre la chose en évidence dans des conditions théoriques extrêmes, il vous suffit de chronométrer ce petit comparatif :

// méthode Generics
int total = 0;
List<int> li = new List<int>();
for (i = 0; i < 20; i++)
  li.Add(i);
//---- lancer un timer
for (i = 0; i < 10000000; i++)
  foreach (int el in li)
    total += el;
//---- arrêter le timer


// méthode ArrayList
int total = 0;
ArrayList al = new ArrayList();
for (i = 0; i < 20; i++)
  al.Add(i);
//---- lancer un timer
for (i = 0; i < 10000000; i++)
  foreach (int el in al)
    total += el;
//---- arrêter le timer


Au passage, vous pouvez aussi mesurer la différence entre un traitement par génériques et un array. Les deltas varient un peu en fonction de la complexité des types de données et de la taille des collections, mais vous verrez que sauf lorsque la performance doit absolument être optimisée, les tableaux contraints classiques n’ont plus grand intérêt…

En conclusion, les génériques sont faciles, flexibles, et ils peuvent rapporter gros en termes de performance. Trois caractéristiques que nous allons maintenant démontrer concrètement avec notre code exemple : un mécanisme générique d’accès aux informations d’une base de données quelconque.


Les génériques en pratique

Notre cahier des charges est le suivant : pour des raisons de facilité de maintenance, d’optimisation et d’élégance de code – trois vertus sans lesquelles il n’est pas de bon développement –, nous voulons unifier les accès à une base de données. Pour varier les plaisirs, nous ne travaillerons pas sur une classique base SQL, mais sur une base Paradox en accès OLEDB, avec des tables constituées par des fichiers (exemple type d’un portage de transition entre Win32 et DotNet). Nos tables pourront être peuplées de données de types différents, nous n’aurons au final qu’une seule et unique méthode pour y accéder.

Voici, schématiquement, comment nous allons implémenter. Chaque type de données est défini par une classe. Chaque classe contient une méthode d’objet appelée ReadFromDatabase (profitez-en pour faire une Interface). Cette méthode appelle à son tour une méthode générique appelée ReadAllTo, définie dans une classe statique liée à un type de SGBD : Paradox, SQL, dBase, etc. Cette méthode lit la table ad hoc et renvoie les données sous la forme d’une liste séquentielle de génériques indexée par un entier – la table et l’entier étant passés à la méthode statique en référence.

Un point à souligner : cet exemple est tiré d’une application en production. Comme cette application doit gérer plusieurs types de bases de données, elle utilise une méthode d’aiguillage qui route la requête d’extraction vers la classe relative au SGBD ad hoc : classe SQL, classe Paradox, classe dBase… Pour simplifier la lecture de notre exemple, nous avons supprimé cette étape intermédiaire. Mais il nous paraissait judicieux de souligner que son implémentation était possible sans difficulté technique.
p. 2
Réduire
Pour unifier l’extraction SGBD, la méthode statique d’extraction a besoin d’un contenant dans lequel renvoyer les données lues et d’un entier représentant le nombre de champs qui constituent un enregistrement de la base. Ces deux éléments représentent sa signature, comme le montre l’implémentation suivante (la méthode est ici écourtée mais complète dans le code téléchargeable sur notre site) :

public static int ReadAllTo(ref List<string> lstData,     "
    ref int iFields, int iDataType)
{
   OleDbCommand command;
   OleDbConnection connection;
   OleDbDataReader dataReader;
   int[] aFieldIndex;
   int i, iDelField;
   string strConnection, strCommand;

try
{
  // Vérifie la base de données et initie la connexion            
  // Créée un DataReader lié à la connexion.
  using (dataReader = command.ExecuteReader())
  {
    // Retourne si la table est vide.
    if (!dataReader.HasRows)
      return (TG_Errors.Display(-2, _crERR_DB_PDX_NO_ROWS, false));
    // Prépare les index de champs locaux.
    iDelField = 0;
    aFieldIndex = _SetFieldsIndicators(ref iDelField, ref iFields,
      iDataType);
    // Retourne si la préparation pose problème.
    if (aFieldIndex == null)
      return (TG_Errors.Display(-32, _crERR_DB_PDX_FIELDS_NULL, false));
    iFields = aFieldIndex.Length;
    // Retourne si le type de données est inconnu.
    if (aFieldIndex.Length == 0)
      return (TG_Errors.Display(-16, _crERR_DB_PDX_FIELDS_EMPTY, false));
    // Lit la table ligne par ligne.
    while (dataReader.Read())
    {
      // OS multitâche : traitement prioritaire des messsages système.
      Application.DoEvents();
      // Passe les lignes dont le champ “SUPPRIME” n’est pas vide.
      if ((iDelField == -1) ||
        ((iDelField != -1) && (dataReader.GetValue(iDelField) ==     "
    DBNull.Value)))
      {
        // Extrait les valeurs de champs vers le conteneur en référence.
        for (i = 0; i < iFields; i++)
          lstData.Add(dataReader.GetString(aFieldIndex[i]));
      }
    }
    return (0);
  }
  catch (Exception ex)
  {
    return (-128);
  }
}


Notez que la méthode possède un troisième paramètre : iDataType. C’est celui-ci qui va servir au chargement des index des champs sur les tables. En effet, notre méthode d’extraction est censée fonctionner sur n’importe quelle table, dès lors que la base est du bon type – Paradox, dans notre exemple. Il faut donc que quelque part soient déclarés, en variables ou en constantes, le nombre de champs contenus dans un enregistrement et l’index de ces champs. On peut aussi prévoir que les enregistrements pourront être supprimés par les applications métier dès lors qu’elles auront un champ « Supprimé » non vide. Il faut donc prendre en compte l’index de ce champ « Supprimé ».

Le plus simple est de déclarer ces valeurs en constantes dans l’en-tête de la classe dédiée aux bases Paradox, à la section consacrée aux tables, comme suit :

// Liste des index des champs des tables.     
// Note : le champ “DEL_FIELD” est à -1                     "
          lorsque la table n’a pas de champ “SUPPRIME”
// NOTE : la taille du tableau “DATA_FIELDS”                    "
        donne le nombre de champs à lire dans la table.
// Table des sémantismes
const int _ciDEL_FIELD_SEMANTISMS = 2;
static int[] _caDATA_FIELDS_SEMANTISMS = { 0, 1, 4, 5 };
// Table des unités lexicales
const int _ciDEL_FIELD_LEXICAL_UNITS = 2;
static int[] _caDATA_FIELDS_ LEXICAL_UNITS = { 0, 1, 3, 4, 5, 8, 10 };


Il suffit ensuite d’assigner ces indicateurs de champs comme dans la méthode de parsing suivante, appelée à partir de notre méthode d’extraction précitée :

static int[] _SetFieldsIndicators(ref int iDelField, ref int iFields, int iDataType)
{
  int[] aFieldIndex;

  try
  {
    switch (iDataType)
    {
      case Database.ciSEMANTISMS:
        // Index du champ supprimé.
        iDelField = _ciDEL_FIELD_SEMANTISMS;
        // Tableau des index des champs de données.
        aFieldIndex = new int[_caDATA_FIELDS_SEMANTISMS.Length];
        _caDATA_FIELDS_SEMANTISMS.CopyTo(aFieldIndex, 0);
      break;

      default:     // Type non répertorié ==> erreur.
      return (null);
    }
    // Retourne un tableau d’index sur les champs des tables.
    return (aFieldIndex);
  }
  catch (Exception ex)
  {
    return (null);
  }
}


Tout étant maintenant en place, résumons-nous. Lorsque l’objet métier (« Semantisms » dans notre exemple, représentant l’ensemble des données enregistrées dans la table SEMANTISMS) demande une extraction de la table à notre méthode statique Helpers_Database_Paradox.ReadAllTo, les opérations suivantes sont exécutées :

• la méthode reçoit en paramètre le contenant des données (passage par référence), la variable du nombre de champs d’un enregistrement (passage par référence) et une valeur indiquant le type de la table à lire ;
• elle crée la connexion à la base puis à la table ;
• elle va chercher dans ses constantes le nombre de champs que contient un enregistrement de cette table et l’index de l’éventuel champ « SUPPRIME » ;
• elle parcourt la table jusqu’au bout et, ce faisant :
    - elle passe les enregistrements marqués comme
« SUPPRIME » ;
    - elle copie les valeurs de chaque champ dans notre liste générique ;
• quand la lecture est terminée, elle renvoie à l’objet appelant le contenant des données (c’est-à-dire notre liste générique) et le nombre de champs des enregistrements.

Ainsi, quel que soit le type de données, dès lors que ses index de champs sont répertoriés dans la classe statique de traitement SGBD, la table correspondante peut être traitée directement, sans modification, par notre méthode. Le contenant des données étant une liste de génériques strings, l’objet appelant n’a plus qu’à reconstituer chaque enregistrement de la table en agrégeant les champs, sachant que le nombre de champ constituant un enregistrement lui est renvoyé. D’où, au passage, l’équation nombre enregistrements = (nombre de strings dans la liste générique / nombre de champs par enregistrement).

Ce mécanisme unifié, nous n’aurions pas pu l’implémenter efficacement sans les génériques, ce qui illustre la raison d’être de ces derniers. Le choix du type string en tant que type générique est par ailleurs pertinent dans la mesure où, comme nous le mentionnions plus haut, tout type DotNet expose une méthode ToString(). Par conséquent, quel que soit le type des champs de la table, un appel à ToString() suffit pour que la méthode fonctionne.

Comme avec chacun de nos articles consacrés au développement, vous pouvez télécharger un exemple de code complet sur notre site. Cet exemple est construit autour d’une table (baptisée (« SEMANTISMES ») incluse dans l’archive de téléchargement, pour que vous puissiez compiler et exécuter l’ensemble immédiatement. Par défaut, il faudra copier cette table et ses fichiers dépendants dans le dossier « C:\ ». Si vous préférez, vous pourrez choisir un autre dossier de destination, mais il faudra alors modifier son chemin d’accès déclaré en dur dans le fichier « Helpers_Database_Paradox.cs ».

Vous trouverez aussi dans l’archive une seconde table Paradox (baptisée « ANAGRAMMES »), indépendante de la première, qui vous permettra de vérifier par vous-même que l’application de notre méthode à une nouvelle source de données est ultra-rapide. Vous verrez, une fois compris le mécanisme, que son adaptation à vos besoins ne devrait pas prendre plus de quelques minutes. Comme d’habitude, le plus long sera de normaliser cet exemple à vos règles de nommage et de structuration des sources…
p. 1
Réduire
BPEL - Le chef de projet de vos processus
Par Bertrand Garé - copyright l'Informaticien, tous droits réservés

Utilisée par bon nombre d’outils présents sur le marché, la spécification BPEL est en passe de devenir la norme pour l’exécution de processus sur différents environnements.

Les architectures informatiques des entreprises vivent une sorte de révolution s’appuyant sur des services Web. Créant une intégration aisée et un découplage par rapport aux différentes plates-formes présentes dans les entreprises, les Web Services apportent une intéressante flexibilité. Enchaîner ceux-ci autorise la création de processus automatisés à l’intérieur du système d’information. Cependant, le besoin de normaliser l’exécution des processus de ce type s’est fait jour pour s’adapter à différents environnements. L’idée de « BPEL » était née. Le point sur ce chef d’orchestre de vos processus utilisant les Web Services.
À partir d’un contexte caractérisé par la stabilité, les entreprises évoluent désormais dans un monde changeant qui demandent à leur systèmes d’information réactivité et flexibilité pour s’adapter à presque tous les cas de figures, sans pour autant demander d’importants projets pour suivre cette évolution. Pour y parvenir, éditeurs et intégrateurs s’accordent à mettre en avant les architectures orientées services. Celles-ci s’appuient sur des composants, les Web Services, pour réaliser par un couplage lâche les différents liens nécessaires entre les applications sur des environnements souvent hétérogènes. Il est ainsi possible de lier ces différents services pour réaliser des processus automatiques répondant aux métiers de l’entreprise. Cependant, les différents environnements ne permettent pas de réaliser cette opération de manière évidente. Il a donc fallu spécifier, dans un langage, l’exécution de ce type de processus pour qu’il autorise une exécution sur des environnements différents. Ainsi est née l’idée de Business Process Execution Language (BPEL).


Poussé par de grands éditeurs

Si des langages ou des spécifications précédentes ont eu aussi le même but, BPEL commence à s’imposer et est en passe de devenir le standard dans le domaine sous la pression d’importants éditeurs, comme IBM, Microsoft, BEA, SAP, Siebel… Les deux premiers intervenants sur BPEL furent d’ailleurs IBM et Microsoft. Cette patte se retrouve d’ailleurs dans le langage lui-même, issu de la combinaison du langage WSFL d’IBM et de Xlang de Microsoft.
Depuis, d’autres éditeurs se sont ralliés à cette spécification et près d’une cinquantaine d’entreprises essaient de définir la prochaine version de celle-ci et de lui donner tous les éléments d’un standard accepté par tous. Marc Boullier, directeur technique chez Vistali, une société de services spécialisée dans les projets d’intégration et d’orchestration des architectures techniques, précise que « BPEL n’est pas  la première initiative dans le domaine. Le plus gros concurrent a été BPML, dont on garde la notation graphique. En 2003, IBM et Microsoft ont lancé une initiative, BPEL4WS, un langage normalisé pour créer des assemblages de services Web. Cette norme se veut portable et permettre sur XML, pour la neutralité, d’être exécutable par des moteurs. Mais quelles sont les limites ? Que doit faire le processus ? Il y a le besoin d’identifier les partenaires applicatifs à orchestrer et la séquence d’appel avec les services. Cela génère deux autres contraintes : les erreurs (time out) et la compensation (annulation de la transaction) ».


Un langage reposant sur WSDL

Il ajoute : « Le langage est structuré autour de descriptions et un type de séquence d’appel. » L’utilisation du mot processus peut prêter à confusion. BPEL ne prend en charge que l’exécution du processus. Il ne s’occupe ni de la description ni de la modélisation des processus.
Il importe par différents moyens la définition des processus ou leur modélisation. Certains produits du marché utilisent des imports XML pour transférer des modèles UML vers BPEL. Nativement, le langage supporte l’import de BPMN (langage de notification). Cette modélisation reste cependant du niveau du BPM (Business Process Management) couche supérieure à BPEL. Ainsi, les outils Aris d’IDS Scheer ou de Mega décrivent les processus qui sont automatiquement – et en BPEL – exportés vers le moteur d’exécution du processus. Marc Boullier ajoute : « BPEL sert de format pivot entre la construction et l’exécution. Il est comme un chef de projet pour automatiser l’appel des services de manière synchrone ou asynchrone. » Structurellement, BPEL s’appuie sur différentes spécifications XML : XML Schema 1.0, XPath 1.0, WS-Adressing et WSDL 1.1.
Cette dernière spécification est celle qui a le plus d’influence sur BPEL. En pratique, le modèle de processus de BPEL couvre le modèle de service défini par WSDL. Au cœur du langage se trouve la notion d’interaction pair à pair des services décrits dans WSDL. Le processus définit la manière de coordonner les interactions entre une instance du processus et ses partenaires.
BPEL fournit la description du comportement et des interactions d’une instance relativement à ses partenaires et des ressources à travers des interfaces Web Services.
BPEL définit les protocoles d’échange de messages suivis par le processus métier avec un rôle spécifique lors de l’interaction. Le langage suit aussi le modèle de séparation de WSDL entre les contenus des messages abstraits utilisés par le processus et les informations de déploiement.
BPEL représente tous les partenaires ou toutes les interactions avec les partenaires en termes d’interfaces WSDL – comme les éléments portTypes. Ainsi, un processus BPEL est défini de manière abstraite en référençant seulement les portTypes et les services impliqués dans le processus et non leur déploiement possible. Cette manière de procéder autorise la réutilisation de la définition du processus métier à travers différents déploiements de services compatibles.


Un outil de test pour BPEL
Parasoft, l’éditeur d’outils de tests, propose depuis peu un logiciel SOATest qui permet d’automatiser les tests sur des processus BPEL. L’outil permet de créer automatiquement par des assistants des cas de tests. Le logiciel assure le test de la sémantique BPEL en vérifiant la grammaire et la validité du schéma du fichier BPEL. Il vérifie aussi les fichiers WSDL référencés dans le déploiement BPEL, sa sémantique, son interopérabilité et ses régressions possibles. Il autorise une émulation des partenaires externes du processus accédant au processus BPEL déployé et réalise un test direct des partenaires des processus BPEL.

un-diagramme-BPMN.gifLa modélisation d’un processus s’effectue dans BPMN.

p. 2
Réduire
Une anatomie simple

La structure du langage BPEL est assez simple et utilise particulièrement quatre éléments principaux divisés en sections.
La section <variables> définit les données variables utilisées par le processus, en fournissant leur définition en termes de messages WSDL, de types de schémas XML ou d’éléments de schémas. Les variables permettent aux processus de maintenir l’état des données et de conserver l’histoire du processus en s’appuyant sur les messages échangés.
La section <partnerlinks> définit les différentes parties qui interagissent avec le processus lors de son déroulement. Chacun de ces liens est caractérisé par un type de partnerlink et un nom de rôle. Cette information identifie la fonctionnalité devant être fournie par le processus métier et par le service partenaire pour que la relation puisse aboutir.
La section <faulthandlers> contient les activités qui doivent être réalisées en cas d’erreur depuis l’invocation et le service d’approbation. Dans BPEL, toute erreur, provenant d’une erreur interne ou de l’invocation d’un service, est identifiée par un nom spécifique formé par l’espace de nommage cible dans le document de description WSDL dans lequel le prototype et l’erreur ont été définis, ainsi que le nom de l’erreur.
Le reste contient la description du comportement normal d’une requête. L’exemple long, en fin d’article, d’un processus de choix de devis donnera une réalité concrète à ces sections ainsi qu’aux différentes instructions utilisées par BPEL.


Les limites de la spécification

Il est à remarquer que le langage ne prend pas en compte l’étape du déploiement. Pour rester indépendant des différents environnements, le langage ne « code » pas les adresses. Celles-ci sont fournies dans un document à part : la PDD (Process Deployment Descriptor).
BPEL connaît actuellement d’autres limites. Tout d’abord le langage ne prend en compte que l’orchestration entre Web Services et leur enchaînement en termes de processus.
Dans certains cas, où le processus utilise d’autres sources que des Web Services, il est nécessaire de transposer la chaîne d’événements pour utiliser BPEL. La plupart des solutions du marché, que ce soit Software AG ou BEA, font ce lien par leur ESB (Entreprise Service Bus) pour réaliser l’opération.


BpelJ, le Bpel pour Java
Les éditeurs soutenant BPEL s’intéressent aussi à étendre ce langage vers d’autres environnements. Ainsi, des groupes de travail mettent au point la possibilité d’utiliser du code Java dans des processus BPEL. Cette extension connue sous le nom de BpelJ autorise le développement de Web Services en Java et leur exécution de manière normalisée BPEL.



Pour la sécurité, il est nécessaire et fortement recommandé, et la spécification est fort claire sur ce point, d’utiliser WS-Security du fait qu’il est possible de modifier ou de corrompre la mise en œuvre d’un processus métier. L’utilisation de ce type de Web Service assure que les messages n’ont été ni modifiés ni corrompus pendant leur transit ou dans l’endroit où ils résident.
Dernier point important, BPEL ne prend pas en charge les opérations manuelles telles qu’elles s’opèrent dans certains processus comme dans un workflow (validation d’une personne précise, tâches manuelles spécifiques). Cette limitation est en passe d’être résolue en ajoutant des extensions à BPEL. Les principaux acteurs de cette extension sont IBM et SAP.


Vers une véritable standardisation ?

Cette extension répond au doux nom de Bpel4P, ou BPEL for People. Cette extension autorise l’inclusion des tâches manuelles dans l’exécution d’un processus BPEL en y ajoutant les éléments actuellement manquants. Cette étape importante permettrait à BPEL de devenir le dénominateur commun pour l’exécution des processus qu’ils proviennent de Web Services ou d’autres environnements dont les outils de workflow.
Pour Marc Boullier, « La réalité est cependant assez différente. La portabilité n’est pas véritablement assurée et chacun implémente des tags supplémentaires et des précisions différentes. »
Rob Meyer, de Tibco, le précise. Pour lui, BPEL dans sa version actuelle n’est qu’une spécification et ne peut être considéré comme un standard. La future version de cette spécification (la 2.0) devrait tenir ce rôle avec d’importantes améliorations. Retardée à la fin de l’année dernière, cette nouvelle version est en discussion auprès des intervenants dans son comité de spécification. Une cinquantaine d’entreprises y participe. Elles recherchent un terrain d’entente sur les différents points que nous avons discutés. Cette version se devra de prendre en compte aussi les évolutions souhaitables à apporter à WSDL comme une meilleure définition des domaines de nommage par exemple.



Pour aller plus loin
La documentation sur BPEL est abondante et n’importe quel moteur de recherche vous indiquera facilement les sites des éditeurs soutenant la spécification et le moyen de la trouver (attention le document fait quand même dans les 140 pages avec les annexes). Le site www.bpelsource.com regroupe cependant beaucoup d’informations, d’avis d’experts et de documents de travail sur le sujet et sur BpelJ. Il existe en revanche assez peu d’éléments sur Bpel4P en dehors d’un article sur un projet allemand.

OracleBPELDesigner.gifUne vue d’un processus dans l’outil de design d’OracleBpel.

p. 3
Réduire
Un exemple de processus BPEL

Vous trouverez ci-après le code d’un processus permettant de sélectionner un devis. Nous tenons à remercier Manuel Ponchaux, BPM Manager chez Telelogic, de nous avoir fourni ce code pour nos lecteurs et présenter ainsi un exemple concret de réalisation d’un processus métier dans le cadre d’une entreprise.

<process name="SelectionnerUnDevis" targetNamespace="http://acm.org/samples" suppressJoinFailure="no" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
    <!--Generated by Telelogic System Architect on 03/04/2006 12:04:58 by Manuel-->
    <sapattern>
        <guid>b8c5cdab-32de-4628-be26-ca48a8c7d2e6</guid>
    </sapattern>
    <partnerLinks>
        <partnerLink name="FournisseurDeDevis" partnerLinkType="ClassForPartnerLinkType">
        </partnerLink>
        <sapattern>
            <!--The System Architect objects used in the pattern. To ensure traceability to System Architect DO NOT REMOVE-->
            <guid>88c06cd6-a5f0-4a4e-bf97-b4ce788f70f0</guid>
        </sapattern>
    </partnerLinks>
    <variables>
        <variable name="MeilleureDevisVieux">
        </variable>
        <variable name="MeilleurDevisNouveau">
        </variable>
        <sapattern>
            <!--The System Architect objects used in the pattern. To ensure traceability to System Architect DO NOT REMOVE-->
            <guid>02c49287-979c-44ab-ab7a-3692c988d22b</guid>
            <guid>ee18e876-b574-4cbf-a009-b249738dfddf</guid>
        </sapattern>
    </variables>
    <sequence>
        <reply name="DemanderUnDevis" joinCondition="False" partnerLink="FournisseurDeDevis" portType="ClassForPortType" operation="ClassForOperation">
            <sapattern>
                <!--The System Architect objects used in the pattern. To ensure traceability to System Architect DO NOT REMOVE-->
                <guid>88c06cd6-a5f0-4a4e-bf97-b4ce788f70f0</guid>
                <guid>191452dc-c518-451d-875e-d1e6e16a728a</guid>
            </sapattern>
        </reply>
        <receive name="RecevoirLeMeilleurDevis" joinCondition="False" partnerLink="FournisseurDeDevis" portType="ClassForPortType"     "
    operation="ClassForOperation" createInstance="no">
            <sapattern>
                <!--The System Architect objects used in the pattern. To ensure traceability to System Architect DO NOT REMOVE-->
                <guid>88c06cd6-a5f0-4a4e-bf97-b4ce788f70f0</guid>
                <guid>fe556414-07ef-413d-9263-0ac40386fa32</guid>
            </sapattern>
        </receive>
        <assign name="MeilleurDevis">
            <copy>
                <from>
                </from>
                <to variable="MeilleureDevisVieux">
                </to>
            </copy>
            <sapattern>
                <!--The System Architect objects used in the pattern. To ensure traceability to System Architect DO NOT REMOVE-->
                <guid>7d5a14a7-fb99-4f07-8066-411b725bc2da</guid>
                <guid>02c49287-979c-44ab-ab7a-3692c988d22b</guid>
            </sapattern>
        </assign>
        <empty name="AssignerLesDonnéesAuxVariables" joinCondition="False">
            <sapattern>
                <!--The System Architect objects used in the pattern. To ensure traceability to System Architect DO NOT REMOVE-->
                <guid>8cab9fa2-657a-4964-87e9-5c3cae36c069</guid>
            </sapattern>
        </empty>
        <empty name="VerifierValiditéDesDonnées" joinCondition="False">
            <sapattern>
                <!--The System Architect objects used in the pattern. To ensure traceability to System Architect DO NOT REMOVE-->
                <guid>9160b0df-bec3-47d2-ad37-ce0041909de1</guid>
            </sapattern>
        </empty>
        <switch name="Test" joinCondition="False">
            <sapattern>
                <!--The System Architect objects used in the pattern. To ensure traceability to System Architect DO NOT REMOVE-->
                <guid>14bcf44f-f415-46e1-a7dc-66d9ceb59276</guid>
            </sapattern>
            <case condition="DonnéesValides=False">
                <sequence name="DonnéesNonValides">
                    <sapattern>
                        <!--The System Architect objects used in the pattern. To ensure traceability to System Architect DO NOT REMOVE-->
                        <guid>706712ee-71de-4a41-8cab-e81c05f0f789</guid>
                    </sapattern>
                    <terminate name="DevisNonFourni" joinCondition="False">
                        <sapattern>
                            <!--The System Architect objects used in the pattern.     "
    To ensure traceability to System Architect DO NOT REMOVE-->
                            <guid>32563007-2484-44f2-aa44-7eae9ecbeaf8</guid>
                        </sapattern>
                    </terminate>
                </sequence>
            </case>
            <case condition="DonnéesValides=True">
                <sequence name="DonnéesValides">
                    <sapattern>
                        <!--The System Architect objects used in the pattern. To ensure traceability to System Architect DO NOT REMOVE-->
                        <guid>3d6b8292-44e1-4aeb-a398-e2796a39c67c</guid>
                    </sapattern>
                </sequence>
            </case>
            <otherwise>
                <sequence name="Erreur">
                    <sapattern>
                        <!--The System Architect objects used in the pattern. To ensure traceability to System Architect DO NOT REMOVE-->
                        <guid>39ede711-3ce1-48b6-9274-ef65c3c974a9</guid>
                    </sapattern>
                    <terminate name="FinDeProcédure" joinCondition="False">
                        <sapattern>
                            <!--The System Architect objects used in the pattern.     "
    To ensure traceability to System Architect DO NOT REMOVE-->
                            <guid>070fcec2-3951-4adb-866b-d110e50ded1b</guid>
                        </sapattern>
                    </terminate>
                </sequence>
            </otherwise>
        </switch>
    </sequence>
</process>
p. 1
Réduire
ljcolor8164_Copier5.gifLa virtualisation dans Xen 3.0
Par Rami ROSEN, LINUX JOURNAL – traduit par Bertrand Garé

Plongez dans la nouvelle version de Xen et découvrez ce qu’elle offre en termes de paravirtualisation, de drivers dédoublés et sur la nouvelle technologie de virtualisation d’Intel
(article remis à jour).


tradfig1.gifLa virtualisation existe depuis plus de 40 ans. Dans les années 60, IBM a développé le support de la virtualisation sur les mainframes. Depuis ce temps là, de nombreux projets de virtualisation sont disponibles pour UNIX/Linux et d’autres systèmes d’exploitation, incluant VMWare, FreeBSD Jail, coLinux, Virtual PC de Microsoft et les containers et les zones de Solaris.
Le problème avec ces solutions de virtualisation est la performance. Le projet Xen, toutefois, offre des résultats impressionnants, proches des systèmes natifs, et c’est un de ses avantages clés. Une autre fonctionnalité impressionnante est la possibilité de migrer dynamiquement (lire l’un de nos précédents articles). Après de nombreuses supputations, la version 3.0 de Xen est sortie récemment et fait l’objet de cet article.
Le but principal de Xen est de fournir une meilleure utilisation des ressources matérielles et de consolider les serveurs au moyen de la paravirtualisation et d’appareils virtuels. Nous discuterons ici comment Xen 3.0 met en œuvre ces idées. Nous nous interrogerons aussi sur les nouveaux processeurs d’Intel VT-x/VT-i, qui ont été conçus pour le support de la virtualisation et leur intégration avec Xen.


Paravirtualisation

L’idée derrière Xen est d’exécuter des systèmes d’exploitation invités, non dans le cercle 0 mais dans un cercle plus élevé avec moins de privilèges. Cette pratique s’appelle le « Ring deprivileging ». L’installation par défaut de Xen sur x86 exécute le système invité sur le ring 1, nommé Current Privilege Level 1 (CPL1) du processeur. Il exécute un contrôleur de machine virtuel, l’hyperviseur dans le CPL 0. Les applications s’exécutent dans le ring 4 sans modifications.
Le jeu d’instructions IA-32 contient près de 250 instructions dont 17 sont problématiques pour une exécution dans le ring1. Elles sont problématiques sur deux points. Tout d’abord, exécuter ces instructions dans le ring 1 peut provoquer une exception générale de protection (General Protection Exception ou GPE), aussi appelé « Fault General Protection » (GPF). Par exemple, exécuter la fonction HLT provoque immédiatement une exception GPF. Certaines instructions, comme CLI et STI, peuvent aussi en provoquer si certaines conditions sont réunies. En particulier, une exception GPF arrive lorsque le CPL est plus grand que l’IOPL dans la procédure ou le programme, ce qui a pour conséquence de donner moins de privilèges.
Le second problème intervient avec des instructions qui ne causent pas d’exceptions GPF, mais qui cependant échouent. Beaucoup d’articles sur Xen utilisent le terme « fail silently » pour décrire ces cas. Par exemple, le POPF dans le EFLAGS restauré à une valeur de flag d’interruption (Interuption flag oi IF) différente que le EFLAG.
Comment Xen gère ces instructions problématiques ? Dans certains cas, comme l’instruction HLT, l’instruction dans le ring 1 – là où s’exécute l’OS invité – est remplacé par un « hypercall ». Par exemple, considérons Sparse/arch/xen/i386/kernel/process.c dans la méthode cpu_idle().
Au lieu d’appeler l’instruction HLT, comme cela est réalisé dans le kernel Linux, nous appelons la méthode xen_idle(). Cela réalise à la place un hypercall, à savoir, l’hypercall HYPERVISOR_sched_op(SCHEDOP_block, 0).
Un hypercall est analogue à un appel système sous Linux de Xen. Un appel système est un appel d’interruption (0x80) dans le but de bouger de l’espace utilisateur (CPL3) à l’espace kernel (CPL0). Un hypercall est aussi une interruption (0x82). Il donne le contrôle du ring 1, où le domaine invité s’exécute, vers le ring 0, où s’exécute Xen. La mise en œuvre d’un système d’appel ou d’hypercall est assez similaire. Les deux placent le nombre de syscall/hypercall dans le registre eax. Le placement d’autres paramètres est effectué de la même manière. De plus, la table d’appel système et la table d’hypercall sont définies dans le même fichier, entry.S.
Vous pouvez regrouper plusieurs hypercall dans un seul multicall en construisant une collection d’hypercall. Vous pouvez le réaliser en utilisant multicall_entry_t struct. Vous pouvez alors utiliser un seul hypercall, HYPERVISOR multicall. De cette manière, le nombre d’entrées et de sorties depuis l’hyperviseur sont réduites. Évidemment, réduire de telles transitions interprivilèges, lorsque c’est possible, apporte de meilleures performances.
Le driver virtuel netback, par exemple, utilise ce mécanisme de multicall.
Un autre exemple, l’instruction CLTS vide le flag Task Switch (TS) dans CR0. Cette instruction provoque une GPF, pourtant, lorsqu’elle se situe dans le ring 1, comme dans le cas d’HLT. À la place, elle est déléguée au ring 0 de la manière suivante.
De l’erreur GPF dans le ring 1, mais cette GPF est gérée par do_general_protection() située dans xen/arch/x86/traps.c. Il est à noter que do_general_protection est le gestionnaire hyperviseur qui s’exécute dans le ring 0. De là, do_general_protection appelle do_fpu_taskswitch (). Dans certaines circonstances, ce gestionnaire analyse l’opcode des instructions reçues en CPU. Dans le cas de CLTS, dont l’opcode est 0x06, il appelle do_fpu_taskswitch (0). Au bout du compte, do_fpu_taskswitch appelle l’instruction CLTS, mais depuis le ring 0. Il est important que _VCPUF_fpu_dirtied soit en fonction pour permettre cette action.
Ceux qui souhaitent plus de détails peuvent s’intéresser à la méthode emulate_privileged_op() dans le même fichier, xen/arch/x86/traps.c. Les instructions qui autorisent habituellement le « fail silently » sont remplacées par d’autres.


Les drivers virtuels dédoublés

L’idée derrière ce dédoublement est une isolation sécurisée du hardware. Le domaine 0 est le seul qui dispose d’un accès direct au hardware, et il utilise les drivers natifs de Linux. Mais le domaine 0 a une autre couche, Backend, qui contient les pilotes virtuels netback et blockback (le support par usbback va être ajouté dans le futur, et ce travail sur la couche USB sera réalisé par Harry Butterworth).
tradfig2.gifDe la même manière, les domaines non protégés ont accès à la couche frontend, qui se compose des pilotes virtuels netfront et blockfront. Les domaines non protégés prennent en compte les requêtes d’entrées/sorties vers frontend de la même manière que les requêtes sont gérées dans le kernel Linux. Cependant, du fait que frontend n’est qu’une interface virtuelle sans lien réel avec le hardware, ces requêtes sont déléguées vers backend. De là, elles sont envoyées au matériel réel.
Quand un domaine non protégé est créé, cela crée une chaîne d’événements interdomaines entre lui-même et le domaine 0. Cela se réalise avec HYPERVISOR_event_channel_op hypercall, où la commande est EVTCHNOP_bind_interdomain.
Dans le cas de pilotes virtuels réseaux, la chaîne d’événements est créée par netif_map() dans sparse/drivers/xen/netback/interface.c. Cette chaîne est légère pour les notifications, comme d’indiquer quand les opérations d’entrées/sorties sont réalisées.
Des zones de mémoire partagée existent entre chaque domaine invité et le domaine 0. Cette mémoire partagée est utilisée pour transférer les requêtes et les données. La mémoire partagée est créée et gérée par les tables API.
Quand une interruption est confirmée par le contrôleur – l’APIC – nous arrivons à la méthode do_IRQ(), qui se trouve aussi dans le kernel Linux (arch/x86/irq.c). L’hyperviseur ne prend en compte que les interruptions de timer et les interruptions série. Les autres interruptions sont transférées aux domaines en appelant _do_IRQ_guest().
En fait, le flag IRQ_GUEST est mis en œuvre pour toutes les interruptions à l’exception des interruptions timers et série.
_do_IRQ_guest() envoie l’interruption en appelant send_guest_pirq() à tous les invités enregistrés dans IRQ. Cette méthode crée une chaîne d’événements – une instance de evtchn – et met en œuvre les flags de cette chaîne d’événements en appelant evtchn_set_pending(). Ainsi, de manière asynchrone, Xen notifie le domaine de l’interruption et le gère de manière appropriée.
p. 2
Réduire
Xen et les nouveaux processeurs Intel VT-x

Intel a développé les technologies VT-x et VT-i pour les processeurs x86 et Itanium afin de leur apporter des extensions de virtualisation. Le support de ces extensions fait partie du code officiel de Xen 3.0. Il peut être trouvé dans xen/arch/x86/vmx*.c., xen/include/asm-x86/vmx*.h and xen/arch/x86/x86_32/entry.S.
La structure la plus importante dans la mise en œuvre de VT-x/VT-i est le VMCS (vmcs_struct dans le code) qui représente la région VMCS. Cette région contient six régions logiques ; les plus intéressantes pour notre article sont les zones Guest-state et Host-state. Les quatre autres régions sont les suivantes :

• VM-execution control fields ;
• VM-exit control fields ;
• VM-entry control fields ;
• VM-exit information fields.

Intel a ajouté 10 opcodes dans les processeurs pour supporter sa technologie de virtualisation.

Regardons maintenant ces nouveaux codes et leurs wrappers :

1) VMCALL : (VMCALL_OPCODE in vmx.h) appelle le moniteur de la machine virtuelle, provoquant une sortie de la machine virtuelle.

2) VMCLEAR : (VMCLEAR_OPCODE in vmx.h) copie les données de VMCS vers la mémoire dans le cas où elles sont écrites à cet endroit. Encapsulé dans : _vmpclear(u64addr) dans vmx.h

3) VMLAUNCH : (VMLAUNCH_OPCODE in vmx.h) lance une machine virtuelle et change l’état de VMCS pour être lancé si celui-ci a été nettoyé.

4) VMPTRLD : (VMPTRLD_OPCODE in vmx.h) charge un pointeur vers VMCS. Encapsulé dans : _vmptrld(u64addr)

5) VMPTRST : (VMPTRST_OPCODE in vmx.h) conserve un pointeur vers VMCS. Encapsulé dans : _vmptrst (u64addr) dans vmx.h

6) VMREAD : (VMREAD_OPCODE in vmx.h) lit un champ spécifié depuis VMCS. Encapsulé dans _vmread(x, ptr) dans vmx.h

7) VMRESUME : (VMRESUME_OPCODE in vmx.h) arrête une machine virtuelle. Pour arrêter la machine virtuelle, l’état de lancement de VMCS doit être nettoyé.

8) VMWRITE : (VMWRITE_OPCODE in vmx.h) écrit un champ spécifié dans VMCS. Encapsulé dans : _vmwrite(champ, valeur)

9) VMXOFF : (VMXOFF_OPCODE in vmx.h) termine les opérations VMX. Encapsulé dans : _vmxoff (void) dans vmx.h

10) VMXON : (VMXON_OPCODE in vmx.h) commence les opérations de VMX. Encapsulé dans _vmxon(u64addr) dans vmx.h

Quand il utilise cette technologie, Xen s’exécute sur le mode d’opération root VMX. Les domaines invités, qui sont les OS non modifiés, fonctionnent eux en mode non-root. De ce fait, ils sont plus contraints, provoquant parfois la sortie de certaines actions.
Xen initie les opérations VMX dans la méthode start_vmx(), située dans xen/arch/x86/vmx.c. Cette méthode est appelée depuis la méthode init_intel présente dans xen/arch/x86/cpu/intel.c ; CONFIG_VMX doit être défini. Tout d’abord, nous vérifions que le bout X86_FEATURE_VMXE se trouve dans le registre ecx pour savoir si le cpuid du processeur supporte VMX. Pour IA-32, Intel a ajouté une partie du registre de contrôle CR4 qui spécifie si vous voulez autoriser VMX. S’il le faut, nous devons installer ce bout pour autoriser VMX sur le processeur en appelant set_in_cr4(X86_CR4_VMXE). Il est sur le bit 13 dans CR4 (VMXE).
Nous appelons ensuite _vxmon pour commencer les opérations de VMX. Si nous avions commencé les opérations VMX avec _vmxon sans avoir mis en place le bit VMXE dans le CR4, nous aurions obtenu une exception #UD, nous apprenant que nous avons un opcode non défini.
Certaines instructions peuvent causer des sorties inconditionnelles de la machine virtuelle, et certaines peuvent provoquer des sorties des champs de contrôle dans l’exécution de la machine virtuelle (voir la discussion sur les régions ci-dessus). Les instructions suivantes provoquent des sorties inconditionnelles : CPUID, INVD,MOV from CR3, RDMSR, WRMSR et toutes les instructions nouvelles indiquées ci-dessus.
D’autres instructions, comme HLT, INVPLG (invalide l’instruction d’entrée TLB), MWAIT ou d’autres provoquent une sortie de la machine virtuelle si un contrôle d’exécution correspondant est en fonction.
En dehors des champs de contrôles, deux bitmaps sont utilisés pour déterminer des cas de sorties de la machine virtuelle. Le premier est le bitmap d’exception (EXCEPTION_BITMAP dans vmcs_field enum dans xen/include/asm-x86/vmx_vmcs.h), avec un champ 32 bits. Quand un bit est en fonction dans ce bitmap, il provoque une sortie de la machine virtuelle si une exception correspondante apparaît. Par défaut, les entrées sont EXCEPTION_BITMAP_PG, pour une erreur de page, et EXCEPTION_BITMAP_GP pour une erreur de protection générale (voir MONITOR_DEFAULT_EXCEPTION_BITMAP in vmx.h).
Le second bitmap est celui d’entrée/sortie. En fait, il y a deux bitmaps de 4 KB d’entrées/sorties, A et B, qui contrôlent les instructions d’entrées/sorties sur les différents ports. Le bitmap A contient les ports de 0000 à 7FFF et le bitmap B contient les ports suivants de 8000 à FFFF (voir les bitmaps d’entrées/sorties dans vmcs_field enum).
Quand une erreur est provoquée, nous sommes renvoyés vers vmx.c à la méthode vmx_vmexit_handler().
La gestion des sorties s’effectue suivant les raisons de sorties fournies dans la région VMCS. Il y a 43 possibilités fournies, vous pouvez en trouver quelques-unes dans vmx.h. Les champs débutent par EXIT_REASON_, comme par exemple EXIT_REASON_EXCEPTION_NMI (qui est une raison de sortie 0) et ainsi de suite.
Avec VT-x/VT-i, le système d’exploitation invité ne peut fonctionner en mode réel. C’est la raison pour laquelle il faut charger l’invité avec un chargeur spécifique, le vmxloader. Il charge le ROMBIOS à 0xF0000, VGABIOS à 0xC0000 et enfin VMXAssist à D000 :0000.
VMXAssist est un émulateur de mode réel qui utilise le mode virtuel 8086 d’IA32. Après l’installation de ce mode virtuel, le chargeur vmx l’exécute dans un environnement 16 bits.
Cependant, certaines instructions ne sont pas reconnues dans le mode virtuel 8086, comme LIRT (Load Interrupt Register Table) et LGDT (Load Global Descriptor Table). Lorsque vous essayez de jouer ces instructions en mode protégé, elles produisent des erreurs #GP(0).
VMXAssist vérifie l’opcode des instructions devant être exécutées et les gère pour qu’elles ne produisent pas ces erreurs.


HVM, une interface commune pour VT-x/VT-i et AMD SVM

Les architectures VT-x/VT-i et SVM d’AMD ont beaucoup en commun, dont la motivation de développer en commun leur interface commune, la machine virtuelle Hardware (Hardware Virtual Machine ou HVM). Le code pour la couche HVM a été écrite par Leendert van Doorn, du Watson Research Center d’IBM, et il se trouve dans une branche séparée du répertoire Xen.
Un exemple d’une interface commune est le modeleur de domaine, xc_hvm_build, situé dans dans xc_hvm_build.c. Du fait que le chargeur est commun aux deux architectures, le chargeur vmx est maintenant appelé le chargeur hvm. Il identifie le processeur en appelant simplement son CPUID (voir tools/firmware/hvmloader/hvmloader.c.).
L’architecture SVM d’AMD comprend un mode réel hébergé qui virtualise un mode réel dans un mode protégé. Ainsi, dans ce cas, il est possible d’effectuer des opérations dans le mode réel avec SVM_VMCALLL_RESET_TO_REALMODE.
Dans le cas des processeurs Intel, il faut utiliser VMXAssit comme nous l’avons déjà expliqué.
HVM définit une table appelée hvm_function_table, qui est la structure contenant les fonctions communes à VT-X/VT-i et SVM.
Ces méthodes incluent les méthodes initialize_guest_resources() et store_cpu_guest_regs(), mises en œuvre différemment dans les deux architectures.
Xen 3.0 comprend aussi le support du processeur SVM d’AMD. Un de ses avantages est d’avoir un TLB marqué : les invités sont cartographiés dans des espaces différents de ceux mis en place dans VMM. Ce marquage se réalise par des identifiants d’espace d’adresse (ASID), ainsi un dysfonctionnement du TLB n’arrive pas lorsque survient un changement de contexte.


Une migration à chaud

Une des plus intéressantes possibilités de Xen est la simplicité de la migration, qui peut être utilisée comme une solution d’équilibrage de charge ou de maintenance. L’arrêt lors d’une migration de ce type est très court – quelques dizaines de millisecondes. Cette possibilité est gérée en domaine 0.
Cette migration s’effectue en deux étapes. La première se compose d’une pré-copie, dans laquelle la mémoire physique est copiée vers le système cible par TCP pendant que le domaine en migration continue de fonctionner.
Après quelques itérations, pendant lesquelles seules les pages corrompues lors de la dernière itération sont copiées, le domaine en migration arrête de fonctionner. Puis, dans un second temps, les pages restantes sont copiées et le domaine reprend son travail sur la machine cible.
De plus, Jacob Gorm Hansen, de l’université de Copenhague, au Danemark, effectue de très intéressants travaux sur une migration automatique. Dans ce cas, le domaine non protégé du domaine en migration gère par lui-même la migration. Bien que plus complexe, cette fonction a de nombreux avantages, principalement en termes de sécurité ; par exemple, si les pages mémoires contenant le code qui gère la migration sont corrompues lors du transfert.

Dans le futur, il apparaît que tous les nouveaux processeurs Intel 64 bits auront un support étendu de fonctions de virtualisation, et Xen semble adopter ces processeurs avec ce support de virtualisation ; Désormais, Xen inclut le support de VT-x/VT-i dans son code officiel, et dans une branche de son référentiel, l’architecture SVM. Surtout, Xen est un projet intéressant de virtualisation avec beaucoup de possibilités et d’avantages. Il existe également une chance que Xen soit intégré dans le kernel Linux, comme l’ont été UML et LVS.


L’auteur, Rami Rosen, est diplômé de l’Institut de Technologie Technion à Haïfa en Israël.
Il travaille actuellement comme développeur sur le kernel Linux pour une start-up. Il peut être joint à ramirose@gmail.com. À ses temps perdu, il aime faire du jogging et réaliser des puzzles ;
il aide tout ceux qu’il connaît à migrer vers ce merveilleux système d’exploitation qu’est Linux !
p. 1
Réduire
Comment capitaliser sur les retours d’expérience ?
Par Bertrand Garé - Copyright l'Informaticien, tous droits réservés

Pour la première fois en 2006, la population active française a décru : une conséquence directe du phénomène appelé « Papy boom ». Confrontées à ce problème, les entreprises accélèrent la mise en place de programmes permettant le transfert de compétences et la capitalisation sur les retours de terrain. Mais dans quels buts, avec qui et pour quels résultats peuvent-elles compenser la perte de certaines compétences du fait d’un départ ?

Dans les résultats d’une étude réalisée pour le Groupe Cegos, 66 % des directeur des ressources humaines, ou ceux qui en font office, considèrent l’impact du choc démographique à venir comme une problématique à court terme. Ce chiffre va jusqu’à 74 % dans les PME.
Pour y faire face, 62 % ont mis en place des modalités de transferts de connaissance. Ce chiffre était de 41 % en 2003. Il atteint même les 85 % dans les grandes entreprises.
L’étude montre par ailleurs que ce choc démographique s’accompagnera le plus souvent de réductions d’effectifs. Si remplacements il y a, ils se feront le plus souvent par promotion interne.
Ce nouveau contexte remet au goût du jour les solutions s’appuyant sur le Knowledge Management. Une conférence animée par l’éditeur Knowings, spécialiste du Knowledge Management et du travail collaboratif, faisait le point récemment sur les bonnes pratiques pour une meilleure capitalisation des retours d’expérience. En effet, qui n’a jamais souffert de la démission d’un collaborateur important ? De la perte de connaissances à la fin d’un projet avec des consultants qui repartent chacun de leur côté ? De rechercher « le mouton à cinq pattes » alors qu’un expert en interne n’a pas été localisé ? On peut y ajouter des connaissances oubliées comme certaines incompatibilité entre matériaux dans l’industrie ou des outils de cotation oubliés, des connaissances non renouvelées comme la non application partout dans l’entreprise de clauses contractuelles, ou la lenteur de l’apprentissage des nouveaux arrivants et une collaboration erratique entre les services.


Les priorités et les secteurs d’action

Par ordre d’importance, les entreprises visent à mettre en place des dispositifs de gestion de la connaissance dans une base pour capitaliser et diffuser les bonnes pratiques (46 %). Vient ensuite la volonté de collecter et de préserver les savoir-faire clés dans un référentiel (39 %). La mise en place d’un système de veille (26 %) démontre que cette approche entre peu à peu dans les pratiques de l’entreprise. Ces trois points viennent devant des projets d’échanges collaboratifs en réseaux.
Les secteurs où ces projets peuvent apporter le plus, selon les entreprises interrogées, sont la conception/R&D, la gestion de projet, les ventes et la relation client. Ces domaines emportent respectivement 55, 52 et 49 % des réponses par ordre d’importance. Ces secteurs arrivent largement devant d’autres domaines fonctionnels comme les ressources humaines (26 %) ou la logistique (15 %). Ces chiffres sont extraits du baromètre annuel qu’effectue l’éditeur sur la gestion de la connaissance dans les entreprises. Le dernier date de septembre 2005.
Les projets menés s’inscrivent souvent dans un contexte particulier où le nombre de documents augmente durant le temps du projet alors que les coûts sont principalement figés en début de projet lors des premières prises de décisions. Là, capitaliser sur les projets déjà effectués a un impact très important.


Comment capitaliser ?

Cette possibilité de profiter des expériences antérieures suit une logique qui débute par la collecte, puis l’organisation, l’analyse, la capitalisation, la diffusion et l’exploitation des différents éléments.
Pour y parvenir, un certain nombre de questions préalables doivent être posées. Qui doit capitaliser ? Quelles connaissances faut-il capitaliser ? Comment inciter les acteurs du projet à contribuer à ces retours d’expérience ? Y a-t-il besoin de capitaliser ces retours au fil de l’eau ? Comment valider ces retours ? Comment les utiliser ? Comment démarrer la démarche ? Comment communiquer autour et évaluer le dispositif de capitalisation ?
La réponse à ces différentes questions est fondamentale pour réussir une véritable capitalisation sur les expériences passées. Ainsi, à qui confier la capitalisation ? Toutes les options sont possibles. Des acteurs internes, externes, des spécialistes peuvent y participer. Il conviendra ensuite d’élargir le nombre des contributeurs et de faire vivre le projet. Pour les connaissances vaut-il mieux un seul référentiel ou plusieurs documents plus spécialisés. Les réponses peuvent être innombrables et dépendent beaucoup du secteur d’activité, du contexte de l’entreprise, de l’importance stratégique d’un tel projet et de l’implication des dirigeants pour associer ce projet au métier de l’entreprise. Comme on le voit la capitalisation est aussi, si ce n’est l’essence même, un projet organisationnel pour retirer les bénéfices de la démarche.
Au bilan, elle peut apporter une plus grande efficacité par la différence que procure sur le terrain une meilleure connaissance métier ou la diffusion de la bonne information aux bons acteurs sans qu’ils aient à en faire la demande. Elle permet de gagner du temps en accédant rapidement à la bonne information tout en simplifiant les échanges. La démarche autorise la réutilisation des modèles et du savoir des experts. Elle assure une qualité par l’harmonisation des bonnes pratiques et la pertinence des réponses techniques et commerciales. Elle renforce les compétences et accélère, par exemple, l’intégration de nouveaux arrivants ou en diffusant l’expertise dans l’entreprise. Une bonne capitalisation autorise aussi la simplification du lancement d’une nouvelle offre et diffuse l’expertise tout en permettant un apprentissage continu sur le terrain.
Elle valorise les experts qui vont devenir de plus en plus rares et chers ! Le plus important : elle protège, comme un capital, le savoir engrangé dans l’entreprise, et ce malgré le turn-over ou les départs par mobilité interne ou de ressources externes utilisées sur certains projets.


Des outils pour faciliter la mise en œuvre

Le point commun des outils aidant à mettre en place la démarche semble être le portail permettant d’accéder à un référentiel regroupant les documents, avis, métriques participant à la démarche. Dernier point, cette mise en œuvre se doit d’être sécurisée et d’être pérenne dans le temps. Sinon, ne dérangez pas vos experts pour cela ; ils ont déjà certainement beaucoup de choses à faire !


L’informatique continue à embaucher
Le secteur informatique sera aussi touché par le Papy Boom comme le montrent les derniers chiffres de tendance communiqués par le Syntec Informatique. Ainsi, près de 60 000 informaticiens devraient partir à la retraite d’ici 2015. Durant la même période, le secteur devrait créer près de 150 000 postes d’informaticiens. Il représentait l’année dernière un des principaux secteurs pourvoyeurs d’emplois pour les cadres avec près de 40 000 recrutements et une création nette d’emploi située entre 8 000 et 10 000. Les besoins en recrutement devraient donc devoir s’accélérer. Pour y parvenir, le Syntec Informatique va mettre en place une série d’actions dont la publication d’une vision prospective à 5 ans dans ses métiers, la création d’une association réunissant le Syntec Informatique et près de 40 établissements supérieurs formant aux nouvelles technologies, des campagnes de promotion pour la diversité des profils. Il est à noter que près de 97 % des contrats de travail en 2005 dans l’informatique étaient des CDI. Malgré ces perspectives encourageantes, les résultats ne sont pas extraordinaires et se situent juste dans la moyenne européenne. Avec une croissance de 7 % sur l’exercice 2005, la croissance du secteur s’est pourtant globalement accélérée. C’est surtout le secteur de l’infogérance applicative qui tire la croissance du secteur avec + 12 % devant les logiciels (7 %), le conseil (6 %) et l’ingénierie (+5,5 %). L’année 2006 devrait connaître le même mouvement avec une croissance prévue de 6 à 8 %.

p. 2
Réduire
Formation
Un nouveau Master à Rennes

L’ESC de Rennes et Supelec se sont associés pour une nouvelle formation accréditée par la conférence des Grandes Écoles, un Master de « chargé d’affaires en Technologie de l’Information ». Cette formation est la première à être commune à deux écoles et intéresse jeunes diplômés et salariés. La formation vise particulièrement les jeunes diplômés souhaitant ajoutée une compétence « affaire » à leur cursus et voulant, exercer, à terme, des fonctions managériales. Pour les salariés, les techniciens ou ingénieurs peuvent être intéressés s’ils souhaitent évoluer vers des profils plus commerciaux et d’encadrement. La formation prépare à des postes d’ingénieur commercial, ingénieurs d’affaires et de chef de projet. Les langues de travail seront le français et l’anglais (10 %). Les salariés alterneront travail en entreprise et formation – 56 jours par an. Petit détail, le prix de cette formation est conséquent : 11 000 euros ! Les cours auront lieu d’octobre 2006 à octobre 2007.

Social
Un label de responsabilité sociale pour les centres d’appels

Encouragées par le ministre Jean-Louis Borloo, deux associations professionnelles, l’AFRC (Association française des centres de relation client) et la SP2C (Syndicat professionnel des centres de contacts) ont décidé de créer un label de « responsabilité sociale » pour relever une image écornée auprès des médias et du grand public, alors que le secteur dispose d’un fort potentiel de croissance et de création d’emplois. L’élaboration de ce label a été confié à Ernst & Young qui a défini pour trois catégories de sociétés (clients, centres de contacts intégrés et « outsourceurs ») les critères d’éligibilité. Ils portent sur des pratiques d’achat responsables et sur des pratiques sociales éthiques. Une première vague d’entreprises ont été auditées suivant ces modalités et huit sur neuf ont reçu le label. Une nouvelle vague devrait avoir lieu prochainement. Pour y participer les entreprises doivent remplir une demande à retirer sur le site de l’AFRC et renvoyer le dossier avant le 2 juin prochain.


Études
L’impossible gestion de parc

Une étude réalisée par le cabinet Dynamic Markets pour l’éditeur d’outils de gestion de parc Landesk Software, apporte des résultats étonnants. Les entreprises sembleraient avoir beaucoup de mal à tenir à jour l’inventaire de leurs ressources informatiques. Un nombre significatif de responsables informatiques aurait même recours à des méthodes manuelles pour identifier les équipements matériels et logiciels. Ainsi, 32 % consigneraient tous les achats effectués par l’entreprise ; 19 % remplissent un tableur et le mettent à jour manuellement. Fin du fin : 15 % demandent aux techniciens de dresser l’inventaire bureau par bureau ! 64 % des entreprises interrogées seraient dans ce cas. 85 % déclarent détenir les licences en bonne et due forme pour les logiciels installés, qu’ils soient utilisés en interne ou en externe par les employés de l’entreprise. En revanche, 48 % seulement se disent prêtes à se soumettre sereinement à un audit de Microsoft ou d’un autre éditeur d’envergure. Les principales motivations de ce suivi sont, pour 83 %, des raisons juridiques ; 55 % invoquent des raisons de sécurité ; 31 % indiquent que leur service financier a besoin de ces informations pour calculer l’amortissement des actifs et 19 % expliquent que leur entreprise cherche à réduire les coûts imputables aux matériels et aux logiciels redondants.
p. 1
Réduire
sqlsoutou.gifApprendre SQL avec MySQL
Copyright l'Informaticien, tous droits réservés

Le langage SQL est le plus employé pour les bases de données. Christian Soutou, maître de conférences à l’université du Mirail, à Toulouse, nous apprend ce langage par la pratique avec MySQL, le très populaire gestionnaire de base de données Open Source. Langage, programmation, trucs et exercices approfondiront les connaissances des initiés, donneront de très bonnes bases aux débutants et intéresseront les développeurs Java et PHP qui souhaitent stocker leurs données. Un extrait du chapitre consacré au contrôle des données.

Comme dans tout système multi-utilisateur, l’usager d’un SGBD doit être identifié avant de pouvoir utiliser des ressources. Les accès aux informations et à la base de données doivent être contrôlés à des fins de sécurité et de cohérence. La figure suivante illustre un groupe d’utilisateurs dans lequel existe une classification entre ceux qui peuvent consulter, mettre à jour, supprimer des enregistrements, voire les tables.

Nous verrons dans cette section les aspects du langage SQL qui concernent le contrôle des données et des accès. Nous étudierons : la gestion des utilisateurs qui manipuleront des bases de données dans lesquelles se trouvent des objets tels que des tables, index, séquences (pour l’instant implémentées par des colonnes AUTO_INCREMENT), vues, procédures, etc. ; la gestion des privilèges qui permettent de donner des droits sur la base de données (privilèges système) et sur les données de la base (privilèges objet) ; la gestion des vues ; l’utilisation du dictionnaire des données (base de données information_schema).
bonnesfeuilles1.gif

Le chapitre 9 détaille l’outil graphique MySQL Administrator qui permet de s’affranchir d’écrire des instructions SQL.


Gestion des utilisateurs

Présenté rapidement à l’introduction, nous verrons qu’un utilisateur (user) est identifié par MySQL par son nom et celui de la machine à partir de laquelle il se connecte. Cela fait, il pourra accéder à différents objets (tables, vues, séquences, index, procédures, etc.) d’une ou de plusieurs bases sous réserve d’avoir reçu un certain nombre de privilèges.

Classification

Les types d’utilisateurs, leurs fonctions et leur nombre peuvent varier d’une base à une autre. Néanmoins, pour chaque base de données en activité, on peut classifier les utilisateurs de la manière suivante :
- Le DBA (DataBase Administrator). Il en existe au moins un. Une petite base peut n’avoir qu’un seul administrateur. Une base importante peut en regrouper plusieurs qui se partagent les tâches suivantes :
     • installation et mises à jour de la base et des outils éventuels ;
     • gestion de l’espace disque et des espaces pour les données ;
     • gestion des utilisateurs et de leurs objets (s’ils ne les gèrent pas eux-mêmes) ; optimisation des performances ; sauvegardes, restaurations et archivages ;
     • contact avec le support technique.

- L’administrateur réseau (qui peut être le DBA) se charge de la configuration des couches client pour les accès distants.

- Les développeurs qui conçoivent et mettent à jour la base. Ils peuvent aussi agir sur leurs objets (création et modification des tables, index, séquences, etc.). Ils transmettent au DBA leurs demandes spécifiques (stockage, optimisation, sécurité).

- Les administrateurs d’application qui gèrent les données manipulées par la ou les applications. Pour les petites et les moyennes bases, le DBA joue ce rôle.

- Les utilisateurs qui se connectent et interagissent avec la base à travers les applications ou à l’aide d’outils (interrogations pour la génération de rapports, ajouts, modifications ou suppressions d’enregistrements).

Tous seront des utilisateurs (au sens MySQL) avec des privilèges différents.

Création d’un utilisateur (CREATE USER)

Pour pouvoir créer un utilisateur, vous devez posséder le privilège CREATE USER ou INSERT sur la base système mysql (car c’est la table mysql.user qui stockera l’existence de ce nouvel arrivant). La syntaxe de création d’un utilisateur est la suivante :

CREATE USER utilisateur
  [IDENTIFIED BY [PASSWORD] 'motdePasse']
[,utilisateur2 [IDENTIFIED BY [PASSWORD] 'motdePasse2'] ...];


IDENTIFIED BY motdePasse permet d’affecter un mot de passe (16 caractères maximum, sensibles à la casse) à un utilisateur (16 caractères maximum, sensibles aussi à la casse).

Le tableau suivant décrit la création d’un utilisateur (à exécuter en étant connecté en local en tant que root) :

bonnesfeuilles2.gifCréation d’un utilisateur.



Par défaut, les utilisateurs, une fois créés, n’ont aucun droit sur aucune base de données (à part en lecture écriture sur la base test et en lecture seule sur la base information_schema). La section Privilèges étudie ces droits.


Un utilisateur bien connu

Lors de l’installation, vous avez dû noter la présence de l’utilisateur root (mot de passe saisi à l’installation). Cet utilisateur est le DBA que MySQL vous offre. Il vous permettra d’effectuer vos tâches administratives en ligne de commande ou par une console graphique (créer des utilisateurs par exemple).
p. 2
Réduire
Liste des utilisateurs

À propos de root, on le retrouve dans la table user de la base mysql (mysql.user). L’extraction des colonnes User et Host restitue la liste des utilisateurs connus du serveur. Si root n’avait pas sélectionné la base mysql, la commande à exécuter aurait été « SELECT User,Host FROM mysql.user ; ».

(root@localhost) [mysql] mysql> SELECT User,Host FROM user;
+--------+-----------+
 |   User  |  Host        |
+--------+-----------+
 |            |  %           |
 |            |  localhost |
 |            |  localhost |
 | soutou |  localhost |
+--------+-----------+


Vous devez posséder une table similaire. Il apparaît quatre accès potentiels. L’utilisateur vide '' correspond à une connexion anonyme. La machine désignée par « % » indique que la connexion est autorisée à partir de tout site (en supposant qu’un client MySQL est installé et qu’il est relié au serveur par TCP-IP). La machine désignée par « localhost » spécifie que la connexion est autorisée en local.

Ici, la table fait état que l’accès anonyme (restreint toutefois à la base test, voir la section Table mysql.db) est permis en local et à partir de tout site, et que soutou comme root ne peuvent se connecter qu’en local.

Modification d’un utilisateur

Le mot de passe d’un utilisateur peut être modifié sans parler de privilèges. Nous verrons plus tard qu’il est possible de restreindre le nombre de requêtes (SELECT), de modifications (UPDATE), de connexions par heure et de connexions simultanées à un serveur.

Puisqu’il n’existe pas de commande ALTER USER, pour changer un mot de passe, il faut donc modifier la table user par la seule commande SQL capable de le faire : UPDATE. L’instruction suivante modifie le mot de passe de l’utilisateur soutou pour l’accès en local. Notez l’utilisation de la fonction PASSWORD() qui code le mot de passe à affecter à la colonne Password de la table user. Il est plus prudent d’utiliser ensuite FLUSH PRIVILEGES qui recharge les tables système de manière à rendre la manipulation effective sur l’instant (un peu comme un COMMIT sur des données).

UPDATE mysql.user
    SET Password = PASSWORD('eyrolles')
    WHERE User = 'soutou'
     AND Host = 'localhost';
FLUSH PRIVILEGES;


Une fois cette modification réalisée, si soutou tente une connexion avec son ancien mot de passe, il vient l’erreur classique : « ERROR 1045 (28000): Access denied for user 'soutou'@'localhost' (using password: xx) » (xx valant YES si soutou se connecte avec son ancien mot de passe, NO s’il n’en donne pas).

Chaque utilisateur peut changer son propre mot de passe à l’aide de cette instruction s’il en a le privilège. Mais attention ! Le fait de lui donner ce droit (nous verrons plus loin comment le faire) implique également qu’il puisse aussi modifier les mots de passe de ses copains, ainsi que celui du root !


Renommer un utilisateur (RENAME USER)
 
Pour pouvoir renommer un utilisateur, vous devez posséder le privilège CREATE USER (ou le privilège UPDATE sur la base de données mysql). La syntaxe SQL est la suivante : RENAME USER utilisateur TO nouveauNom;

Pensez à spécifier l’accès complet à renommer (user@machine). Les privilèges et le mot de passe ne changent pas. Le tableau suivant décrit trois opérations de renommage d’utilisateurs (qui reviennent d’ailleurs à l’état initial).

bonnesfeuilles3.gifRenommer un utilisateur.



Suppression d’un utilisateur (DROP USER)

Pour pouvoir supprimer un utilisateur, vous devez posséder le privilège CREATE USER (ou le privilège DELETE sur la base de données mysql). La syntaxe SQL est la suivante :

DROP USER utilisateur [,utilisateur2 ...];


Il faut spécifier l’accès à éliminer (user@machine). Tous les privilèges relatifs à cet accès sont détruits. Si l’utilisateur est connecté dans le même temps, sa suppression ne sera effective qu’à la fin de sa (dernière) session.

Note : aucune donnée d’aucune table que l’utilisateur aura mis à jour durant toutes ses connexions ne sera supprimée. Il n’y a pas de notion d’appartenance d’objets (tables, index, procédure, etc.) à un utilisateur. Tout ceci est relatif à la base de données (database).

Pour supprimer le compte soutou en local, la commande à lancer est :

DROP USER soutou@localhost;



Gestion des bases de données

Abordée brièvement à l’introduction, une base de données (database) regroupe essentiellement des tables sur lesquelles l’administrateur affectera des autorisations à des utilisateurs. Cette notion de database s’apparente plutôt à celle de schéma (connu des utilisateurs d’Oracle). D’ailleurs dans l’instruction de création les deux mots peuvent être utilisés.


Création d’une base (CREATE DATABASE)

Pour pouvoir créer une base de données, vous devez posséder le privilège CREATE sur la nouvelle base (ou au niveau global pour créer toute table).

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] nomBase
   [ [DEFAULT] CHARACTER SET nomJeu ]
        [ [DEFAULT] COLLATE nomCollation ];


- IF NOT EXISTS évite une erreur dans le cas où la base de données existe déjà (au quel cas elle ne sera pas remplacée).

- nomBase désigne le nom de la base (64 caractères maximum, caractères compris par le système de gestion de fichier du système d’exploitation, notamment respectant les règles de nommage des répertoires). Les caractères « / », « \ », ou « . » sont proscrits.

- CHARACTER SET indique le jeu de caractères associé aux données qui résideront dans les tables de la base.

- COLLATE définit la collation (action de comparer entre eux des textes, des documents – Petit Larousse) du jeu de caractères en question. La collation, dans le jargon informatique, permet de définir la position des caractères dans le jeu. Par exemple, il sera possible de différencier le « à » du « a », ou non (sensibilité diacritique). Le but étant de s’adapter aux différentes règles et langues de notre petite planète.
p. 3
Réduire
Une fois créée, vous constaterez l’existence d’un répertoire portant le nom de votre nouvelle base (par défaut sous C:\Program Files\MySQL\MySQL Server 5.n\data\nouvel-leBase dans le cas de Windows). Ce répertoire contiendra les données des tables qui seront constituées dans la nouvelle base. Si vous concevez manuellement un répertoire (mkdir rep1 par exemple) dans le répertoire de data de MySQL, rep1 sera considéré comme une base de données avec le jeu de caractères par défaut (visible avec « SHOW DATABASES; »).

N’effacez pas le fichier db.opt qui stocke les caractéristiques de la base. Vous pouvez l’ouvrir avec un éditeur de texte pour connaître le jeu de caractères par défaut que MySQL affectera à vos bases en l’absence de clause CHARACTER SET. Souhaitons que ce ne soit pas gb2312, associé par défaut à la collation gb2312_chinese_ci, qui vous ferait dire que je vous parle chinois ! C’est pourtant quelquefois ce que je ressens quand mes étudiants me regardent avec des yeux de poisson en utilisant le langage des carpes…

Le tableau suivant décrit la création de deux bases de données :
bonnesfeuilles4.gifCréation de bases.


Le jeu de caractères par défaut est défini dans my.ini à l’aide de la variable default-character-set. Il est donc possible de créer des bases de données associées à différents jeux de caractères au sein d’un même serveur. Le jeu de caractères d’une base définit celui des tables qui seront constituées dedans, à moins que la table ne soit combinée à un autre jeu (créé avec la directive [DEFAULT] CHARACTER SET jeu [COLLATE nomCollation]).

Notons enfin qu’il est même possible d’affecter un jeu de caractères à une colonne d’une table. L’exemple suivant construit la table testChap5 dans la base bdnouvelle2 (par défaut chinoise) en spécifiant que la colonne col1 sera associée au jeu cp850 : DOS West European, tandis que le reste de la table (pour l’instant de portée col2) sera appliqué au jeu latin1 : cp1252 West European. Insérons une ligne.

CREATE TABLE bdnouvelle2.testChap5
   ( col CHAR(5) CHARACTER SET cp850, col2 CHAR(4))
    CHARACTER SET latin1;
INSERT INTO bdnouvelle2.testChap5 VALUES ('GTR','IUT');



Sélection d’une base de données (USE)

Ceux qui ont travaillé sous Dbase se souviennent de l’instruction USE qui désignait la table courante dans un programme. Pour MySQL, USE sélectionne une base de données qui devient active dans une session.

USE nomBase;


 Note : si vous désirez travailler simultanément dans différentes bases de données, faites toujours préfixer le nom des tables par celui de la base par la notation pointée (nomBase.nomTable).
L’exemple suivant exécute une jointure sur deux tables situées dans deux bases distinctes :
Sélection de bases.


Modification d’une base (ALTER DATABASE)

ALTER DATABASE vous permet de modifier le jeu de caractères par défaut d’une base de données. Pour pouvoir changer ainsi une base, vous devez avoir le privilège ALTER sur la base de données en question.

ALTER {DATABASE nomBase
   [ [DEFAULT] CHARACTER SET nomJeu ]
        [ [DEFAULT] COLLATE nomCollation ];


L’instruction suivante modifie la base « chinoise » en lui affectant le jeu de caractères de type DOS.

ALTER DATABASE bdnouvelle2 DEFAULT CHARACTER SET cp850 ;


bonnesfeuilles5.gif

Suppression d’une base (DROP DATABASE)

Pour pouvoir supprimer une base de données, vous devez posséder le privilège DROP sur la base (ou au niveau global pour effacer toute base). Cette commande détruit tous les objets (tables, index, etc.) et le répertoire contenus dans la base.

DROP {DATABASE | SCHEMA} [IF EXISTS] nomBase;


- IF EXISTS évite une erreur dans le cas où la base de données n’existerait pas.

- Cette instruction retourne le nombre de tables qui on été supprimées (fichiers à l’extension « .frm »).

Disons à présent adios à la base « chinoise » :

DROP DATABASE bdnouvelle2;



Titre : Apprendre SQL avec My SQL
Éditeur : Eyrolles
Auteur : Christian Soutou
Prix : 29,90 euros
Nombre de pages : 418 pages
p. 1
Réduire
Comment optimiser votre firewall
par Steve Rigano - copyright l'Informaticien, tous droits réservés

La sécurisation d’une architecture réseau passe par la mise en place d’un firewall. Comment un administrateur peut-il paramétrer son firewall afin qu’il assure une protection optimale du réseau ?

firewall-matériel-PRO_4100_.gifUn exemple de firewall matériel : le 4100 de SonicWall.
Fondamentalement, tout ordinateur connecté à Internet est potentiellement la cible d’attaques. Non pas que vous soyez la cible d’ennemis particuliers, mais il faut savoir qu’il existe des individus, innombrables, qui passent leur temps à scanner des plages de réseaux dans le but de trouver des ordinateurs faillibles à une certaine liste d’attaques. Les protocoles utilisés sur Internet, notamment TCP/IP et UDP, n’ont pas été pensés pour la sécurité. Ainsi, il est nécessaire de se protéger des intrusions par le biais de dispositifs de protection. Si cela est vrai pour un utilisateur particulier lambda, ce principe est d’autant plus nécessaire lorsque l’on se place dans un contexte d’entreprise, quelle que soit sa taille.
Les firewalls remplissent cette fonction première, et ajoutent à cela d’autres fonctionnalités très utiles. Cet article permettra de répondre à la problématique suivante : comment un administrateur technique peut paramétrer son firewall de telle sorte qu’il assure une protection efficace de l’architecture réseau de l’entreprise ?
Une telle protection demande certains pré-requis (connaissances réseaux et firewalls) sur lesquels nous ne nous attarderons pas. Cette problématique est essentielle. Combien d’entreprises, dans lesquelles un firewall a été installé par une société extérieure, considèrent ce matériel comme une protection en elle-même, et comme une boîte « intelligente »… Un firewall mal configuré peut être dans certains cas plus dangereux que s’il n’y en avait pas du tout !

Voici un guide pratique résumant les principales étapes de paramétrage d’un firewall. Nous situant dans le cadre d’une entreprise, nous prendrons l’exemple d’un firewall matériel. Cependant, la même logique de sécurisation s’applique à un firewall logiciel – en général réservé à des particuliers.


Les fonctions d’un firewall

Nous ne ferons pas ici un cours détaillé sur les firewalls, mais simplement un résumé technique concis qui sera nécessaire pour la suite.
Un firewall est capable de filtrer tout échange de données entre un ordinateur (poste ou serveur) et un réseau (local ou Internet). On peut rencontrer plusieurs cas de figure, mais ils peuvent se résumer ainsi :

RESEAU EXT. || FireWall || RESEAU INTERNE ||
FireWall || POSTE client


Ici, un firewall se chargera de filtrer les données entre le réseau externe (Internet) et un réseau local interne. Puis, un autre firewall protégera un utilisateur du réseau local.
Pour ce qui est de la protection du poste, on parle de firewall personnel, ce sont en général des firewalls logiciels. Le premier cas est plus intéressant. Il s’agit d’un boîtier matériel relié à une console logiciel qui permet d’assurer une protection plus large (beaucoup plus de fonctionnalités, processeur et mémoire dédié pour le firewall…).
Un firewall permet deux types de protection : une protection réseau (filtrage de paquets) et une protection système (filtrage applicatif). Il détectera les programmes résidant en mémoire, les applications (rootkits) tentant de modifier des programmes résidant en mémoire, certains exploits connus ou non, les connexions entrantes, sortantes et agira suivant les règles de sécurité préalablement mises en place par l’administrateur. Bref, dans l’absolu, un pare-feu bien configuré permet de bloquer n’importe quel type d’intrusion.
Tous les boîtiers firewall n’ont pas les mêmes fonctionnalités, suivant la spécificité qu’ils se donnent. Ainsi, les PIX de Cisco sont très performants au niveau du routage de l’information, mais possèdent beaucoup moins d’options qu’un Netasq ou un Arkoon par exemple. On a, en tout et pour tout, environ quatre grandes fonctionnalités pour les firewalls d’entreprises :

Firewall : permet un filtrage des connexions entrantes et sortantes. Par défaut, un firewall bloque tout.
Proxy : permet de réaliser du relais HTTP, POP3 (intégrant en général un antivirus, comme Kaspersky pour NETASQ ou Sophos pour Arkoon) et un relais SMTP avant antivirus également (très utilisé si l’entreprise possède un serveur de messagerie).
Serveur VPN : beaucoup de boîtiers  pare-feu permettent de s’interconnecter par liaison VPN, pour relier plusieurs sites distants possédant le même boîtier. Très utile pour avoir une connexion sécurisée et très protégée (en général c’est du VPN IPSec).
IDPS : permet la détection d’intrusion sur la base du pattern-matching : détection par signatures de virus, mais surtout d’exploits, des codes dangereux exploitant des vulnérabilités Web ou système. Beaucoup sont basés sur la sonde de détection de Snort, IDS libre connu, qui lui-même s’appuie sur la sonde de Prelude, un IDS qui fut codé par une équipe française. Certes la détection par pattern-matching n’est pas parfaite, mais elle permet cependant d’éviter la plupart des faux positifs qu’on obtiendrait avec une autre méthode plus évoluée.

Nous nous attarderons ici sur des boîtiers multifonctions, notamment Netasq ou Arkoon. Cependant, le principe de fonctionnement est le même et ce qui compte n’est pas tant le matériel utilisé que la façon de l’utiliser.
Comme on le voit, la plupart de ces boîtiers ont des compétences très diverses et deviennent vite un outil central dans la politique de sécurité d’une entreprise. J’ai personnellement vu des entreprises dont la sécurité tournait exclusivement autour d’un boîtier de ce genre (ce qui signifie aucun autre système d’antivirus, aucune autre mesure de sécurisation des données). On comprend donc qu’un dispositif de ce genre se doit d’avoir une configuration parfaite s’il est le centre de la sécurité d’une architecture réseau (pour ne pas dire s’il est le seul élément de sécurité). Sans être forcément un expert en matière d’architecture sécurisée, on peut tout de suite conclure une chose élémentaire, mais qui est peu respectée : la sécurité d’un réseau ne peut pas se baser sur un seul élément, fut-il bien configuré et extrêmement robuste. Pour une entreprise qui utilise Internet quotidiennement, ce qui est le cas aujourd’hui de la plupart des entreprises – certaines ne vivent que de cela et ne communiquent que par mail –, dépendre d’un seul élément peut devenir dramatique si celui-ci vient à rendre l’âme ou à « débloquer ». Nous reviendrons sur ce point plus loin.


écran-config-parefeu-avg.gifMatériel ou logiciel, les pare-feu se configurent facilement.

p. 2
Réduire
Paramétrer son firewall

Le paramétrage d’un firewall est ce qu’il y a de plus important à faire. En effet, que vaudrait une porte blindée électrifiée s’il elle restait ouverte ? Il en va de même pour le pare-feu. La moindre brèche pourrait être fatale. Or, les principales brèches sont des brèches de configuration.
Configurer un firewall ne signifie pas régler quelques règles de sécurité. Suivant l’entreprise dans laquelle nous sommes, cette opération doit respecter un certain nombre de protocoles et d’étapes. Grosso modo, on distingue trois étapes.
La première est l’identification du besoin. Le paramétrage d’un firewall permet d’autoriser certains types de connexions entrantes ou sortantes. Chaque pare-feu possède une default-rule, une règle par défaut, qui bloque tout. On peut la modéliser ainsi :

Flux:[default_rule]
Firewall : nom_du_firewall
Source: 0.0.0.0/0
Destination: 0.0.0.0/0
Service: *
Action: Bloquer

applaince-stone-soft.gif
Dans l’idéal, cette seule règle constitue la configuration la plus sécurisée pour un pare-feu. Elle bloque toutes les connexions entrantes et sortantes. Bien évidemment, elle n’est malheureusement pas efficace. En effet, quelqu’un aura besoin de se connecter à sa messagerie, un autre utilisateur sur Internet, un autre encore sur sa messagerie et sur des sites sécurisés, un serveur devra se connecter sur certains DNS…
Pour une entreprise de trois personnes, le tour est vite fait, mais dans une entreprise d’une cinquantaine de postes avec plusieurs serveurs, les choses se corsent tout de suite davantage. Il faut donc avant tout mettre en place une identification précise des besoins. Cela peut se réaliser sur la base d’un tableau récapitulant tous les postes et serveurs de la société, les protocoles entrants et les protocoles sortants à autoriser pour chaque poste.
Il sera plus rapide et générera moins de risques de coupures gênantes et involontaires de postes, de réaliser cette réflexion avant la configuration effective – surtout si c’est celui de votre directeur. Pour une entreprise de production, il faut une coupure minimale et un paramétrage adéquat : 80 % de la configuration se fera donc pendant cette étape, au cours de laquelle il conviendra de cibler au mieux les besoins. Certains diront qu’il suffit de tout autoriser dès le début ou d’élargir le champ d’action des règles afin d’éviter de perdre du temps à identifier précisément les besoins. Penser ainsi revient à oublier que chaque port ouvert est une porte ouverte à un attaquant. J’ai connu beaucoup d’informaticiens qui, suite à une négligence de configuration de leur architecture réseau, ont dû essuyer une intrusion au sein de leur entreprise. Quelques-uns ont été licenciés pour négligence professionnelle. De toute évidence, on a tout à gagner à effectuer un travail soigneux dans ce domaine.
Une fois cette étape réalisée, il faut en deuxième lieu se familiariser avec le firewall. Je cite cette étape à titre indicatif, un informaticien étant toujours censé connaître les outils qu’il emploie.
Enfin, il faut passer à la configuration proprement dite des règles de filtrages. Il s’agit là de les créer dans la partie logicielle du pare-feu, puis de les installer sur le boîtier physique. Cette opération provoque des coupures de connexions, il est préférable de la réaliser en dehors des heures traditionnelles de bureau, de préférence le soir, pour avoir du temps au cas où l’intervention tournerait mal.
Si nous avons réalisé une fiche claire et précise des besoins attendus, nous pourrons créer des règles précises. Cela consiste à créer les hôtes du réseau en répertoriant tous les PC par leur adresse Ethernet et tout ce qui peut être connecté, les postes téléphones VoIP, les serveurs. Cela passe aussi par la création de groupes et l’attribution de règles claires.
J’ai trouvé dans une entreprise possédant quatre postes informatiques et deux serveurs, un Arkoon qui comportait une trentaine de règles de sécurité. C’est dangereux car cela induit un risque de confusion, d’incohérence et d’erreurs (bien qu’en général les firewalls possèdent un système de vérification de cohérence des règles qui est exécuté implicitement avant l’installation de la configuration sur le matériel). On ne devrait pas excéder une dizaine de règles et, en général, il vaut mieux les regrouper et en minimiser le nombre. Ainsi, on pourrait avoir comme noms de règles :

Accès LAN / Internet
Accès LAN / DMZ
Accès Internet / LAN
Etc.

L’idée étant de rationaliser la configuration, il faudra essayer de se mettre à la place de quelqu’un qui aurait à modifier ces règles, serait-il en mesure de les comprendre ?
Le paramétrage d’un firewall ne s’arrête pas à la programmation des règles de filtrage, mais passe par d’autres notions.


Ceinture et bretelles

On peut avoir des règles claires et précises, il faudra malgré tout mettre en place certains dispositifs de sécurité. Il faut savoir qu’un attaquant, en scannant de manière furtive un serveur – avec nmap, c’est réalisable en quelques minutes –, sait exactement quels ports sont ouverts sur un serveur, lesquels sont filtrés par un firewall et lesquels sont fermés. Il sait même exactement le type de système d’exploitation utilisé (par détection d’empreinte à distance, technique appelée « OS Fingerprinting »), quel est le navigateur Internet utilisé…
Bref, il faut savoir qu’un attaquant, s’il le veut, peut avoir beaucoup de renseignements sur notre serveur sans avoir à faire le moindre effort. Il faut en outre connaître la plupart des attaques possibles et utilisées. En général, les firewalls possèdent un dispositif de protection pour quelques attaques connues. Ainsi, on peut retrouver une parade pour :

• le syn flooding ;
• le spoofing ;
• le bruteforcing ;
• les paquets malformés, corrompus.

Arkoon possède par exemple une technologie appelée FAST, qui permet de contrôler en tant réel si les paquets reçus sont des paquets respectant les RFC, ou s’ils sont malformés. Il possède également une protection contre les trois autres attaques citées, des attaques très employées car réalisables avec des logiciels téléchargeables sur Internet.
Il existe une autre attaque souvent mise en œuvre, il s’agit du sniffing. Ainsi, une attaque peut placer en sortie de votre pare-feu, sur le réseau, un logiciel qui
« écoutera » les paquets en transit afin de pouvoir obtenir des conversations en clair (mails, documents…). Pour se prémunir de cela, beaucoup de firewalls possèdent leur propre système de cryptage. En créant une autorité de certification sur le firewall et en installant la partie logicielle, ainsi que le certificat correspondant sur certains postes, il est possible de communiquer normalement, mais de manière cryptée. C’est totalement transparent pour les utilisateurs ; en revanche, un sniffer externe verra les communications cryptées. En outre, des logiciels de cryptage gratuits, comme GnuPG, sont des outils précieux pour le cryptage des données.
Il existe des informaticiens qui pensent qu’après la mise en place d’une telle protection, il devient secondaire de mettre à jour, derrière le firewall, les systèmes d’exploitation, les logiciels antivirus… Peut-être, après ces quelques pages, le pensez-vous aussi. Vient donc le moment de parler d’une méthode d’attaque très utilisée contre les firewalls personnels (du type Zone Alarm, Kerio…) et qui tend à toucher des firewalls professionnels, à savoir l’injection de code over firewall. Kézako ?
Chaque firewall gère au niveau du noyau du système d’exploitation sa propre zone de mémoire allouée. Cette zone fait partie du « kernel land » une zone accessible, soit par le logiciel propriétaire, soit par le kernel lui-même. Tout autre logiciel lancé ne pourra accéder qu’à la partie « user-land » qui n’a aucun droit. Aujourd’hui, beaucoup de logiciels programmés par des attaquants, et appelés « rootkits », réalisent de véritables prouesses de programmation. Ils permettent ainsi, en « user-land » de profiter de certaines failles du logiciels d’exploitation (que ce soit Windows ou Unix) et d’aller modifier la zone mémoire appartenant au firewall. Ainsi, j’ai pu tester des codes qui permettaient de « bypasser » un firewall sans qu’il ne soit détecté. Cela provient de failles d’implémentation dans le noyau du firewall lui-même.
Quoi qu’il en soit, cette anecdote montre une chose : il est strictement interdit de faire confiance à un firewall, même bien configuré. Or, le placer dans une architecture réseau où est le centre de la sécurité revient à lui faire une confiance aveugle.


Stratégie de sécurité du réseau

Pour terminer, rappelons les règles de base d’une sécurité d’entreprise au-delà de la configuration d’un firewall. Une entreprise doit posséder une politique de sécurité élémentaire. En voici quelques principes.

1. Premièrement, il est nécessaire de suivre, chaque jour, les logs système et les logs du firewall. Voyez-vous une erreur, ou bien un paquet rejeté ? Journalisez dans les règles de blocage celles qui sont sensibles afin de pouvoir suivre les tentatives de connexions entrantes sur tel ou tel protocole.

2. Secundo, il est impératif de réaliser une mise à jour régulière des systèmes d’exploitation et du firewall, cela demande un suivi régulier et un rythme hebdomadaire paraît judicieux dans ce domaine. Les patchs du firewall sont très importants, certains virus étant créés quelques heures à peine après la découverte d’une vulnérabilité. Dites-vous que si une vulnérabilité est rendue publique, c’est qu’elle est connue depuis un bout de temps déjà. Il est possible d’être prévenu par mail si une mise à jour est disponible.

3. Troisièmement, il est indispensable d’avoir une solution antivirus en dehors du firewall, centralisée sur un serveur et de programmer une mise à jour quotidienne. Sur les firewalls, on peut même régler la recherche de mise à jour toutes les heures, voire tous les quarts d’heure. Cela peut faire sourire, mais pour une entreprise qui envoie des centaines de mails par jour, le risque de récupérer un fichier corrompu est très important.

4. Enfin, un suivi régulier des règles s’impose. Si un service système est arrêté, il faut supprimer immédiatement la règle concernée. N’oubliez pas qu’un port ouvert est une porte ouverte.

La gestion de la sécurité d’une entreprise est une lourde responsabilité. Aujourd’hui, les logiciels automatisant les attaques se multiplient, et l’importance d’Internet pour les entreprises également. Veillez donc à respecter ces procédures génériques de sécurité. Ces quelques conseils ne constituent pas une liste exhaustive sur la sécurité informatique, mais il ne faut pas oublier que la plupart des points mentionnés dans cet article ne sont jamais mis en pratique dans les entreprises. Faut-il donc s’étonner d’éventuelles intrusions ou de problèmes de sécurité ? Un prochain article expliquera de manière détaillée comment s’y prendre en cas d’intrusion et quelles règles respecter.
p. 1
Réduire
HR0392.gifVoici une tentative de définition de VPN (Fergusson, P. and G. Huston, What is a VPN? - Part I. The Internet Protocol Journal.) : environnement de communications dans lequel l’accès est contrôlé afin de permettre les connexions des « pairs » uniquement au sein d’une communauté d’intérêt définie.
Hamachi : le VPN facile et gratuit
Par Noé Barat - copyright l'Informaticien, tous droits réservés

Hamachi donne accès aux répertoires et périphériques partagés d’un réseau privé d’ordinateurs. Avec cette solution gratuite de VPN pour Windows et Linux, vous pourrez en quelques secondes, de votre domicile, sortir un document sur l’imprimante réseau partagée de votre entreprise.

Au milieu des années 80, l’université qui installait des réseaux locaux était vue comme une pionnière. Les utilisateurs pouvaient partager des ressources informatiques comme des imprimantes. Ensuite, les réseaux locaux ont été interconnectés, et plus tard il y a eu l’avènement de l’Internet. Aujourd’hui, le cadre qui utilise son portable professionnel à domicile a besoin de se connecter aux ressources de l’entreprise. Par exemple, il voudra imprimer pendant le week-end un lourd rapport à partir de son domicile dans le but de le récupérer le lundi matin au bureau. L’informaticien de l’entreprise devra donc lui fournir une porte d’entrée. Il est possible de se servir d’Internet comme voie de transmission sécurisée en encapsulant les données à transmettre de façon chiffrée. Ce tunnel entre deux machines a été baptisé réseau privé virtuel (alias RPV, ou encore Virtual Private Network, VPN, en anglais).


Une mise en œuvre complexe

C’est bien beau, sur le papier mais la mise en œuvre pratique reste un tantinet compliquée pour un non informaticien... D’une part il y a lieu de créer un nom de domaine dynamique si une des deux adresses n’est pas fixe (ou les deux). Si la machine au domicile est basée sur Linux, on utilisera, par exemple, l’outil ez-ipupdate pour mettre à jour ce nom DNS lorsqu’un changement d’IP se produit. Ensuite, vous devrez ouvrir sur les deux pare-feu les ports adéquats. Enfin, vous ne devrez pas oublier sur le serveur (acceptant les demandes VPN entrantes) d’établir aussi une route vers le réseau distant. Les protocoles disponibles sont par exemple le Point-to-Point Tunneling Protocol (PPTP : avec pptpd pour le serveur et pptp pour le client), IPSec (le standard IETF), ou L2TP (Layer Two Tunneling Protocol). Il existe également des dispositifs hardware performants et peu coûteux, mais non gratuits, pour mettre en place un tunnel plus simplement. C’est le cas du routeur ADSL D-Link DSL-G604T qui supporte la création d’un VPN à l’aide des protocoles PPTP, L2TP ou IPSEC. Une fois le VPN mis en place, il devient transparent pour les utilisateurs et les données cryptées sont incompréhensibles pour toute personne située entre les deux extrémités du tunnel. Dans tous les cas, que se soit pour un dispositif hardware ou par voie logicielle, il y a lieu de réaliser une configuration. Par exemple, il vous faudra au minimum déterminer si l’adresse IP est fixe ou dynamique à l’extrémité de chaque tunnel. Le cas de la sécurisation du Wi-Fi est similaire. Le fabriquant ne l’active pas par défaut, car sa configuration dépasse de loin les capacités de compréhension de l’utilisateur lambda. Ceci n’est pas acceptable et les fabricants commencent à le comprendre. Par exemple, le dispositif routeur Wi-Fi WRT-54G de Linksys est équipé d’un bouton poussoir qui permet de créer automatiquement une nouvelle connexion sans fil sécurisée avec un système de cryptage de données WPA sur 128 bits. Mais on est encore loin du compte dans le cas du VPN. Enfin, c’est ce que nous croyions avant de découvrir Hamachi.


Le problème du NAT

HAMACHI_1.gifL’installation d’hamachi entraîne la création d’une interface réseau virtuelle. Idem sous Linux.
Hamachi utilise un réseau pair à pair (P2P). Chaque nœud étant à la fois client et serveur il est nécessaire que chaque poste sur lequel hamachi est installé soit joignable « depuis l’extérieur ». Or, de nos jours plus personne ne se connecte à Internet sans passer par un pare-feu et la plupart du temps cette connexion transite obligatoirement par une passerelle. En résumé, cette passerelle utilise un mécanisme baptisé NAT (Network Address Translation) pour permettre à une adresse IP non routable (adresse ip privée du poste Hamachi) d’établir un dialogue avec un service public sur Internet. Vu de l’extérieur (donc d’Internet) toutes les machines situées derrière le pare-feu possèdent la même adresse publique (la véritable adresse privée est ainsi « camouflée » aux yeux de tous). La  passerelle se chargera de traduire un couple adresse privée:port (192.168.1.3:port) en un couple adresse publique:port (212.100.182.0:1896), et inversement. Ce mécanisme a été mis au point pour éviter la pénurie d’adresses IP avec le protocole Ipv4, mais assure aussi un certain niveau de sécurité. Et c’est bien là où se situe le problème... Si vous installez Hamachi sur l’un de vos ordinateurs au travail et sur un poste à la maison, les couples adresses privées/ports sont inconnus d’un bout à l’autre. Autrement dit, si un pair A tente d’établir une connexion avec un pair B, il sera bloqué par le pare-feu de B. Et si le pair B tente de joindre un certain socket non ouvert par A, il sera lui aussi bloqué. Aucune communication n’est possible. Une solution serait de choisir un port déterminé et connu de tous pour forcer une redirection au niveau de la passerelle. Ainsi, toute tentative de connexion vers 212.100.182.0:1896 serait redirigée vers, par exemple, 192.168.1.3:1800. Hamachi sera alors à l’écoute du port 1800 et le tour est joué. Seulement voilà : premièrement, ce système n’est pas convivial, car il faut créer cette redirection ce qui n’est pas évident pour la plupart des utilisateurs, et deuxièmement, il est très facile de bloquer le trafic hamachi en fermant ce port (public). Vous n’êtes pas forcément administrateur du réseau utilisé au travail, et il se peut que vous ne possédiez pas les droits ou les connaissances pour réaliser cette redirection. Heureusement, il existe une technique qui fonctionne dans la plupart des cas, quel que soit le port utilisé, et qui se nomme « les poinçons NAT ».


La solution du NAT-Hole-Punching

Vous allez me dire que cela ne tient pas la route. En effet, si vous utilisez la messagerie instantanée MSN, avec par exemple Kopete sous Linux, vous n’avez pas pour autant utilisé de redirection, ni ouvert un port particulier sur votre routeur Wi-Fi (le port 1863 de messenger.hotmail.com). En fait, vous pouvez indiquer à Kopete d’utiliser un numéro de port particulier mais ce n’est pas obligatoire. En effet, le protocole Mobile Status Notification Protocol (MSNP) pourra passer directement par le http de manière transparente pour l’utilisateur. En vérité, ce n’est pas tout à fait exact : la seule condition, et se sera aussi le cas pour hamachi, est que votre pair doit pouvoir contacter un serveur intermédiaire, c’est-à-dire un pair qui est accessible par les deux pairs qui veulent établir une connexion et qui coordonnera le dialogue. Lorsqu’un ordinateur dans le réseau derrière un pare-feu désire ouvrir une connexion à un autre ordinateur, un paquet SYN est envoyé à cette cible et le pare-feu enregistrera dans sa table NAT que toutes les réponses en retour de cette combinaison d’IP cible:port seront réorientées au client. Maintenant, l’idée est que les deux pairs « poinçonnent » un trou dans la table NAT de leur pare-feu en se coordonnant sur un serveur intermédiaire. Le pair B veut envoyer des paquets à A. Il ne peut le faire directement car le pare-feu de A l’arrêtera. Hamachi créé un socket sur A et informe le serveur intermédiaire de sa combinaison IP:port. Ce pair intermédiaire communique cette  information au pair B qui simultanément envoie des paquets à A en passant par ce trou. La démarche est identique lorsque A veut communiquer avec B. La charge de l’intermédiaire est minimale et n’affecte pas l’exécution du concept P2P, car une fois que le raccordement est établi, les pairs deviennent complètement indépendants du serveur central. Il suffit en effet que le pair A et que le pair B émettent régulièrement des données pour que le lien ne soit pas rompu. Lorsque l’on parle de « simultanéité », il faut comprendre que le canal est ouvert jusqu’à expiration d’un certain délai. Le pare-feu ne sait pas précisément combien de temps le serveur intermédiaire mettra à répondre et c’est ce délai (idle timer) qui est mit à profit pour que le pair B puisse envoyer des données.
p. 2
Réduire
Le fonctionnement d’hamachi

Hamachi installe une interface réseau virtuelle sur chacun des postes où il s’installe. Chaque pair d’un réseau hamachi se voit attribuer une adresse IP virtuelle.

Tpol:/home/noe # ifconfig ham0
ham0      Lien encap:Ethernet  HWaddr 1A:C9:BE:55:79:20
          inet adr:5.19.61.240  Bcast:5.255.255.255  Masque:255.0.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1200  Metric:1
          RX packets:542 errors:0 dropped:0 overruns:0 frame:0
          TX packets:475 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:500
          RX bytes:230671 (225.2 Kb)  TX bytes:53667 (52.4 Kb)


Puis, il redirige le trafic IP sur cette interface virtuelle en le cryptant. La connexion réelle est établie par UDP entre les deux pairs en utilisant la technique du NAT-Hole-Punching (en fait de l’UDP-Hole- Punching) décrite précédemment. D’après l’équipe de développement d’hamachi, 95 % des dispositifs NAT sont compatibles avec cette technologie. Il est important de souligner que ce logiciel n’est pas Open Source. Son code source n’est par conséquent pas disponible (la compagnie est située à Vancouver, au Canada). Mais à l’heure actuelle aucun logiciel libre ne propose des fonctionnalités similaires. Plus de 800 000 personnes utilisent actuellement Hamachi dans le monde.


La mise en œuvre pratique sous Windows et sous Linux

hamachiC.gifIci, deux pairs distants sont joignables. Si un service y tourne vous pourrez y accéder par le biais de son adresse IP virtuelle (5.x.x.x).
Nous vous recommandons de rapatrier la dernière version de l’exécutable dont vous trouverez le lien sur le forum. Lors de l’installation sous Windows XP, Hamachi créera une interface réseau virtuelle baptisée « hamachi », puis le pair se fera connaître du serveur intermédiaire (opération de « login »).
Une fois enregistré, vous pouvez créer un réseau (nous l’avons baptisé QUAREGNON).
Ce réseau ne sera accessible d’Internet que par le biais d’Hamachi. Si, sur le pair 5.19.61.240, tourne un serveur FTP vous pourrez y accéder à distance, idem dans le cas d’un serveur VNC ou de tout autre service tournant sur le pair. L’IP privée 192.168.1.3 reste privée de l’extérieur mais devient publique (5.19.61.240) et atteignable en activant le réseau hamachi.
Est-ce suffisamment sécurisé ? Il est légitime de le penser mais ce n’est pas une certitude absolue étant donné que le code source n’est pas livré. Une clé privée et publique est générée (RSA) pour assurer cette confidentialité. Nous avons récupéré la version hamachi-0.9.9.9-12-lnx.tar.gz que nous avons décompressé :

noe@Tpol:~/hamachi-0.9.9.9-12-lnx>tar xfvz hamachi-0.9.9.9-12-lnx.tar.gz


Passons en root (su).

Tpol:/home/noe/hamachi-0.9.9.9-12-lnx#make install
Copying hamachi into /usr/bin ..
Creating hamachi-init symlink ..
Compiling tuncfg ..
Copying tuncfg into /sbin ..


Lançons maintenant le démon responsable de la mise en place du tunnel :

Tpol:/home/noe/hamachi-0.9.9.9-12-lnx#tuncfg


Repassons en simple utilisateur (su noe), et initions les clés de chiffrement :

noe@Tpol:~/hamachi-0.9.9.9-12-lnx> hamachi-init
Initializing Hamachi configuration (/home/noe/.hamachi). Please wait ..
  generating 2048-bit RSA keypair .. ok
  making /home/noe/.hamachi directory .. ok
  saving /home/noe/.hamachi/client.pub .. ok
  saving /home/noe/.hamachi/client.pri .. ok
  saving /home/noe/.hamachi/state .. ok


Démarrons Hamachi :

noe@Tpol:~/hamachi-0.9.9.9-12-lnx> hamachi start
Starting Hamachi hamachi-lnx-0.9.9.9-12 .. ok


L’interface virtuelle est lancée (ce que vous pouvez vérifier en mode super utilisateur à l’aide de ifconfig ham0). Faisons-nous reconnaître du réseau. Si vous essuyez un échec répétitif, c’est que sans doute vous ne disposez pas de la dernière version du logiciel :

noe@Tpol:~/hamachi-0.9.9.9-12-lnx> hamachi login
Logging in ....>....... ok


Vous pouvez exécuter tuncfg en mode débogage en le faisant suivre de l’argument -d :

Tpol:/home/xl/vrac/hamachi-0.9.9.9-12-lnx/tuncfg # tuncfg -d
tuncfg: accept() 5 0
tuncfg: open() 6 0
tuncfg: ioctl() 0 ham0
tuncfg: recv() 8 0
tuncfg: system(ifconfig ham0 5.19.61.240 netmask 255.0.0.0 mtu 1200 " broadcast 5.255.255.255) 0 0


Dans ce mode spécial, il ne sera pas détaché de la console. Vous devrez ouvrir une autre fenêtre de terminal pour lancer hamachi.



Vérifions l’état du réseau :

noe@Tpol:~/hamachi-0.9.9.9-12-lnx> hamachi
Hamachi, a zero-config virtual private networking utility, ver 0.9.9.9-12
  version  : hamachi-lnx-0.9.9.9-12
  pid      : 29322
  status   : logged in
  nickname : anonymous


Notre nickname est anonyme ; modifions-le puis joignons le nom du réseau créé sous Windows :

noe@Tpol:~/hamachi-0.9.9.9-12-lnx>hamachi set-nick Noé_Barat
Setting nickname .. ok


Rejoignons le réseau QUAREGNON :

noe@Tpol:~/hamachi-0.9.9.9-12-lnx>hamachi join QUAREGNON motdepasse
Joining QUAREGNON.. ok


Cependant, les pairs de ce réseau ne seront atteignables que après avoir initié une commande go-online :

noe@Tpol:~/hamachi-0.9.9.9-12-lnx>hamachi go-online QUAREGNON
Going online in QUAREGNON .. ok
oe@Tpol:~/hamachi-0.9.9.9-12-lnx> hamachi list
 * [QUAREGNON]
       5.17.50.217
     * 5.18.174.91                                 212.100.182.0:1896
       5.19.41.139
       5.19.61.240

Vérifions que nous pouvons joindre le pair 5.18.174.91 avec une commande ping :

noe@Tpol:~/hamachi-0.9.9.9-12-lnx> ping 5.18.174.91
PING 5.18.174.91 (5.18.174.91) 56(84) bytes of data.
64 bytes from 5.18.174.91: icmp_seq=1 ttl=128 time=59.6 ms
64 bytes from 5.18.174.91: icmp_seq=2 ttl=128 time=78.2 ms


Le VPN est créé et tout le trafic transite par le tunnel chiffré (y compris le ping). Si vous avez un service/démon ssh ou ftp qui tourne localement sous Windows ou Linux, il sera accessible immédiatement. Vous pouvez sous Linux accéder aux répertoires SMB partagés en exécutant konqueror puis en indiquant smb://5.18.174.91. C’est tout simplement incroyable de constater avec quelle facilité le réseau privé a été créé. Notez que sous Linux il existe une interface graphique GTK en préparation.


Comment utiliser Hamachi comme service ?

Sous Linux, vous devez créer des fichiers de configuration qui ne seront pas liés à votre utilisateur courant (client.pri, client.pub, etc.). Hamachi est exécutable par un utilisateur non privilégié (sauf tuncfg qui doit être lancé par root), et par défaut la configuration est générée sous le répertoire de l’utilisateur (~./hamachi ).

# hamachi-init -f -c /etc/hamachi
# hamachi -c /etc/hamachi set-nick Noé_Barat
# hamachi -c /etc/hamachi login
# hamachi -c /etc/hamachi create QUAREGNON motdepasse
# hamachi -c /etc/hamachi QUAREGNON motdepasse
# hamachi -c /etc/hamachi go-online QUAREGNON
# hamachi -c /etc/hamachi list


Et voici le code à placer sous /etc/init.d/hamachi :

#!/bin/sh
hamachi_start() {
  echo "Démarre hamachi..."
  /sbin/tuncfg
  /usr/bin/hamachi -c /etc/hamachi start
}

hamachi_stop() {
  echo "Arrête hamachi..."
  killall tuncfg
  /usr/bin/hamachi -c /etc/hamachi stop
}

hamachi_restart() {
  hamachi_stop
  sleep 1
  hamachi_start
}

case "$1" in
‘start’)
  hamachi_start
  ;;
‘stop’)
  hamachi_stop
  ;;
‘restart’)
  hamachi_restart
  ;;
*)
  hamachi_start
esac


p. 3
Réduire
Sous Windows

Vous devez commencer par récupérer le Windows Server 2003 Resource Kit Tools. En effet, nous allons devoir utiliser instsrv et srvany. Srvany signifie Run any program as a service et permet de démarrer n’importe quel programme en tant que service. Pour pouvoir exécuter INSTSRV.EXE, vous devez posséder les droits d’administrateur (une application graphique, Service Installation Wizard (SRVINSTW.EXE), est aussi disponible).

Exécutons instsrv :

instsrv HamachiService "c:\program files\hamachi\srvany.exe"


Puis, dans la base de registres sous la clé :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HamachiService


et créons la nouvelle chaîne :

«c:\program files\hamachi\hamachi.exe -srvany»


Le service se lance avec la commande NET START HamachiService.


Sécurité du mot de passe et réseaux spécialisés

En y regardant d’un peu plus près, Hamachi se rapproche assez du fonctionnement d’OpenVPN, mis à part que ce dernier est vraiment compliqué à mettre en œuvre. Si vous créez un réseau, celui-ci restera inaccessible à partir d’Internet. Et pour y accéder depuis Hamachi, un utilisateur doit pouvoir le joindre en indiquant au logiciel son nom et son mot de passe. Au final, la sécurité repose sur le choix du mot de passe. Nous vous conseillons vivement de vous rendre sur la page https://www.grc.com/password pour y récupérer un mot de passe blindé du genre « E82976A62C765 ».


Dans 5 % des cas, comment faire en sorte que Hamachi fonctionne ?
Hamachi contacte le serveur central par l’envoi de paquets TCP sur le port 12975. Puis le dialogue des pairs s’effectuent par le biais de l’utilisation dynamique de ports UDP. Si jamais vous avez besoin d’utiliser un port fixe, vous pouvez le faire en allant dans le menu « préférences » et en utilisant l’option « Magic » (qui correspondra au numéro de port fixe UDP). Vous devrez aussi au niveau du pare-feu rediriger ce numéro de port UDP vers votre piste client (et l’ouvrir le cas échéant). Ce sera le cas avec un pare-feu bloquant tous les ports UDP, ne laissant passer que le trafic sur le port tcp 80 et sur le port tcp 443.



Certaines personnes se sont regroupées pour créer des sous réseaux de jeux, ou des serveurs FTP, etc. (vous pouvez prendre connaissance de cette liste de réseaux (noms et mots de passe) en parcourant le forum d’Hamachi). Une mise en garde s’impose : si votre intention est de jouer en réseau, n’oubliez pas que le fait de se connecter à un réseau Counter Strike exposera votre machine à tous. En effet, si sous Windows vous y avez activé le partage de fichiers, les autres joueurs du réseau pourront accéder aux répertoires partagés sans pour autant que votre intention première soit de leur autoriser cet accès.


Conclusion

Mettre en place un VPN entre les différents sites d’une entreprise sera moins coûteux que de passer par des lignes louées spécialisées. Aujourd’hui, pratiquement tous les routeurs/pare-feu, y compris les routeurs/pare-feu bas de gamme vendus aux particuliers, intègrent une solution de VPN. Dans ce cadre, l’activation d’un tel service ne nécessite qu’une configuration minimale. Cependant, cette configuration de base reste obscure pour beaucoup, et demande bien souvent l’intervention d’un spécialiste, afin notamment de conserver une certaine homogénéité. Par opposition à Hamachi, qui ne nécessite strictement aucune configuration. Vous l’exécutez et c’est tout ! Le coût de déploiement est nul. L’effort de compréhension technique est nul. Vous n’avez pas à vous préoccuper du routeur ou du pare-feu, d’ouvrir des ports ou de rediriger ceux-ci. Le revers de la médaille est qu’il est possible d’exécuter sur un poste peer un logiciel de partage de fichiers illégaux (ftp, bittorent, etc.) sans que le flux de données ne soit filtré. L’administrateur système devra donc cadenasser ses postes clients pour empêcher l’exécution de Hamachi au risque de perdre le contrôle de son réseau. En fait, rien n’empêche plusieurs télétravailleurs d’une même entreprise d’installer localement Hamachi sans nécessairement passer par un serveur d’entreprise centralisé. En termes de sécurité, cette perspective d’un réseau libéré de toutes contraintes est assez alarmante. Le fait de se connecter à un réseau privé Hamachi pour jouer à « Age of Empires 3 », ou à n’importe quel autre jeu réseau, laisse le peer à la merci de tous les utilisateurs du réseau privé. Bref, une porte arrière est ouverte. Si on la cadenasse, en empêchant par exemple le partage des fichiers, et fermant les autres services exposés, pas de problème. Sinon... bonjour les dégâts.

À côté de la version de base gratuite, une version plus élaborée mais payante existe. Celle-ci sera capable de recevoir 256 membres d’un sous réseau contre 16 dans la version de base. Elle pourra aussi s’exécuter en natif comme service sous Windows (sans utiliser la manipulation décrite dans cet article). Avec la possibilité de converser en chat et de cadenasser le sous réseau (le créateur du sous réseau empêche la venue d’un nouveau membre).

Hamachi est techniquement à la pointe ; il permet à tous de créer très facilement un VPN. Dans son domaine, il s’agit sans aucun doute d’une killer application !

Liste des références utiles

• Obtenir un nom de domaine dynamique : http://www.dyndns.org

• Hamachi : http://www.hamachi.cc/

• Forum Hamachi : http://forums.hamachi.cc

• Mot de passe sécurisé : https://www.grc.com/password

• Windows Server 2003 Resource Kit Tools : http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en

• Open VPN : http://openvpn.net/
p. 1
Réduire
Futur
Intel donne les nouvelles directions

IDF0210654_Copier6.gifJustin Rattner, le grand patron technologique d’Intel, présente le nouveau Xeon LV pour serveurs lames.
En marge des cours qu’on y dispense aux développeurs, l’IDF de San Francisco est devenu le salon de tous les lancements pour Intel. Puces sans fil et nouvelles générations de Pentium étaient cette fois-ci à l’honneur.
 

Est-ce parce que son action en Bourse avait justement bien besoin d’un petit remontant ? Ou est-ce parce que les processeurs du concurrent AMD venaient de battre de nouveaux records dans les benchmarks du très sérieux consortium Spec ? Toujours est-il qu’Intel a profité de la dernière édition de son salon développeur pour ouvrir les vannes des annonces. Et déferlante il y a ! Pêle-mêle, les Pentium et autres Itanium passeront à quatre cœurs l’année prochaine et à plus d’une soixantaine d’ici à dix ans, le WiMax (ou « Internet dans la voiture »), la 3G et l’USB sans fil vont prendre place dans les PC dès la fin de cette année, les portables vont consommer encore moins de batterie en ne faisant fonctionner que leur écran (!), la virtualisation va désormais s’étendre aux entrées - sorties, le réseau va offrir plus de débit grâce à un nouvel algorithme SB8… Et ça a continué ainsi durant les trois jours qu’auront duré ce forum, à la début mars.


Du Pentium M 64 bits pour tous

L’informatique des Giga-hertz records, des gros boîtiers et des câbles a vécu. Prévalent désormais l’autonomie, la compacité et le sans fil. Ce discours, on le connaissait déjà. Mais la nouveauté, c’est que ces trois concepts s’incarnent enfin dans le silicium.
En remplaçant dès la fin de l’année les vieillissants mais populaires Pentium 4 et Xeon (deux variantes de l’architecture Netburst) par une nouvelle génération 64 bits de Pentium M – celui des mobiles –, Intel prédit tests à l’appui de 30 à 40 % de consommation en moins. Pour les portables haut de gamme, cela signifie plus d’autonomie. Pour les ordinateurs de bureau, moins de système de refroidissement et, donc, des boîtiers plus compacts et moins bruyants. Pour les serveurs, enfin, des lames plus économiques, plus stables. Cette volonté de tirer la consommation électrique vers le bas inaugure un nouveau standard, l’EESA – pour « Energy Efficient System Architecture » –, lequel comprend d’autres dispositifs d’économie d’énergie, tel le Self Refresh Display. Celui-ci adresse en particulier le problème du circuit graphique qui lit en permanence ses pixels en mémoire, laissant la carte mère d’un PC consommer le maximum d’énergie même lorsque l’utilisateur ne demande pas à l’ordinateur de travailler (typiquement, quand on lit un texte à l’écran, entre deux frappes au clavier ou avant que l’on fasse défiler une page Web vers le bas). Avec le SRD, l’ordinateur se met totalement en veille lorsqu’il n’est pas manipulé, mais l’écran reste actif, affichant une image « fantôme » stockée dans un tampon et réduisant de fait considérablement la consommation.


Moins de GHz = plus de puissance ?

Et la puissance ? On nous promet qu’elle augmentera, comme toujours, et cela malgré une régression des fréquences. Les premiers modèles des futures générations devraient tourner aux alentours des 2,4 ou 2,6 GHz, contre 3,6 ou 3,8 GHz pour les modèles actuels. L’explication de ce paradoxe est à chercher dans les caractéristiques hors pair du cœur « Merom », version 64 bits du cœur « Yonah » 32 bits qui ne logeait jusqu’ici qu’au sein du Pentium M. S’y trouvent un cache L2 partagé entre les deux cœurs ; les deux cœurs d’un Pentium Netburst ne peuvent dialoguer qu’en… RAM, laquelle fonctionne bien plus lentement que le cache), un pipeline plus court (donc plus rapidement parcouru), des unités de décodage en quadruple exemplaire (ce qui permet d’effectuer, entre autres, une opération SSE 128 bits en un seul cycle), la capacité de traiter certaines instructions par paire (typiquement « compare » et « jump », les équivalents assembleurs de « if », « then », « else »). Accessoirement, les Pentium Merom disposeront d’un bus frontal (FSB) cadencé pour la première fois à 1 333 MHz (bande passante de 10,6 Go/s), soit plus d’une fois et demi la fréquence courante depuis 2003 (800 MHz, soit une bande passante de 6,4 Go/s).
p. 2
Réduire
Rendez-vous est pris pour la fin de l’année afin de vérifier sur le tas les performances promises. En l’occurrence, nous trouverons dans les PC de bureau un Pentium « Conroe » et dans les serveurs un Xeon « Woodcrest », tous deux clonant le Pentium M « Merom » avec les caractéristiques suivantes : deux cœurs 64 bits, une fréquence comprise entre 2,2 et 2,6 GHz et un cache L2 unique de 2 à 4 Mo, le tout gravé en 65 nm.


De mauvaises habitudes pas encore perdues

Notons tout de même qu’avant d’y arriver, Intel prévoit la sortie de deux produits intermédiaires : des Xeon. Le premier, le Sossaman, se destinera à la construction de serveurs lames légers, d’ambition aussi modeste que la mise en œuvre d’un serveur Web. Forcément, le Xeon LV « Sossaman » n’est autre qu’un Pentium M « Yonah », c’est-à-dire doté d’un double cœur… 32 bits ! En haut de gamme, la famille Xeon devrait enfin voir arriver Dempsey et Tulsa, les versions « gravées en 65 nm » des Xeon Paxville DP5000 (pour les machines à double processeur) et MP7000 (pour les machines avec au moins quatre processeurs). Leur principal avantage résidera dans la fréquence, ici de 3,73 GHz contre 2,8 GHz auparavant. Mais attention, il s’agira là de la toute dernière incarnation de l’architecture Netburst, celle où les cœurs doivent se rendre en RAM pour communiquer.
IDF0311085_Copier7.gifPour tirer parti à 100 % des capacités des Pentium, mieux vaut utiliser les compilateurs d’Intel. Ceux-ci existent en versions Windows et Linux, mais hélas pas en Open Source.
Ensuite, en 2007, débarqueront les premiers x86 à quatre cœurs. Cela dit, la chose sera moins révolutionnaire qu’on aurait pu initialement l’imaginer : les Pentium « Kentsfield » et Xeon « Clovertown/Tigerton » ne seront ni plus ni moins que des doubles Conroe et doubles Woodcrest ; soit des puces comprenant deux entités à ce point séparées qu’elles devront lles aussi recommencer à passer par la RAM pour communiquer ! Une solution de facilité industrielle, dont on se souvient qu’elle avait finalement nuit au Pentium 4 à double cœur (alias le « Pentium D »).


Un monde encore plus sans fil

Selon Intel, l’utilisateur de portable aura en 2007 tous les moyens dans sa machine pour se connecter à Internet. En plus du Wi-Fi – qui passera à la norme 802.11n, laquelle double la bande passante de l’actuel 802.11g, soit 108 Mbps au lieu de 54 –, la puce « sans fil » de la machine pourra se connecter aux réseaux WiMax (déjà en test chez quelques opérateurs) et 3G (le haut débit des mobiles). Nommée « Ofer Radio », cette puce de type MIMO (Multiple Inputs, Multiples Output) et gravée en 90 nm (ou comment rentabiliser encore les usines qui ont servi à fabriquer les précédentes générations de Pentium…) a été mise au point par Intel pour que tous les fabricants tiers puissent l’incorporer dans des matériels de réseau sans fil à très bas prix (cartes PCI-Express…).
Toujours au chapitre du « wireless », la ratification récente des protocoles UltraWideBand et Wirelesse USB – le second étant un sous-ensemble du premier – autorise enfin Intel à lancer la production des contrôleurs dédiés sur ces chaînes de fabrication afin de permettre la mise au point d’imprimantes et autres unités de stockage sans fil.
Si la construction de circuits autres que les Pentium a, pour Intel, un sens économique au niveau industriel, reconnaissons qu’elle lui permet accessoirement de se libérer de la concurrence féroce, voire préjudiciable, que lui livre AMD sur le seul marché des x86. Tiens, la prochaine gamme de produits d’Intel sera d’ailleurs... un serveur de fichiers sur IP (le SS4000-E, pouvant intégrer quatre disques et disposant d’un port gigabit Ethernet).
p. 1
Réduire
Toujours dans la course !
par Henri Gillares-Caillat - Copyright l'Informaticien, tous droits réservés

Si votre entreprise perdait toutes ses données, quel en serait le coût ? Comment retrouveriez-vous vos informations, combien de temps cela prendrait-il ? Le prix à payer serait sans comparaison avec le prix d'un système de sauvegarde. Les estimations qui ont cours dans le domaine chiffrent la récupération de 1 Mo de données perdues non sauvegardées, dans une fourchette allant de 600 à 1500 euros.

Sony-SATA-AIT-photo-17449_5.gifSony propose des supports de stockage sur bandes pour toutes les tailles d'entreprises et pour différentes capacités de stockage.
La perte d'informations dans un système informatique  n'est pas une fatalité. Elle vient de  causes multiples. Si l’on excepte les causes matérielles peu fréquentes, les vols, virus, piratages, malveillances, simples erreurs humaines ou encore sinistres classiques (incendies dégâts des eaux) constituent autant de risques auxquels vos données sont exposées. La seule réponse cohérente à apporter est la sauvegarde. Surtout lorsque l’on sait que la plupart des entreprises ne peuvent pas survivre à un arrêt imprévu de leurs systèmes critiques dépassant quatre jours. Ce constat rend indispensable l'instauration d'une politique de sauvegarde.


Différentes technologies de stockage

Trois grandes familles de produits peuvent être distinguées : le stockage sur cartouches de bandes magnétiques, le stockage sur disque et le stockage optique. Les bandes magnétiques ont gagné le cœur des grandes entreprises en raison du faible coût du média. Cependant, ces appareils impliquent un temps d'écriture plus important que les disques. Les bandes sont donc principalement utilisées comme solution d'archivage après un premier niveau de stockage préalable sur disque ou sur média optique. Le stockage optique regroupe les médias comme le CD-Rom, le DVD-Rom, le Mini-Disk, Blue Ray. La capacité physique de stockage des médias optiques limite leur usage.
Sauvegarde sur bande, choix de la solution
Il existe une demi-douzaine de technologies pour la sauvegarde sur bande. Chacune a connu plusieurs évolutions.  Plusieurs critères permettent de les différencier et de les destiner à un emploi spécifique. Parmi les plus fréquemment évoqués, on citera le prix du lecteur, de la cartouche (le prix des cartouches nécessaires à un an d'exploitation peut dépasser celui du lecteur), la capacité totale de la cartouche, la fiabilité du mode d'encodage, la compatibilité ascendante (avec des systèmes déjà installés), la standardisation.
Au titre des performances, rappelons que le débit varie, entre autres, suivant l'interface (FireWire, SCSI ou Fibre Channel).  Le haut de gamme est occupé généralement par les LTO et SDLT (enregistrement linéaire) tandis que  les configurations plus modestes se tournent vers les DDS, DAT72, AIT, VXA (enregistrement hélicoïdal). AIT de Sony peut être considéré comme un cas particulier puisqu’il s’agit aujourd’hui d’une technologie  hélicoïdale propriétaire et distribuée par un seul industriel qui couvre un large éventail de besoins. « L’entreprise dispose avec Sony d’un éventail de capacités de stockage inconnu dans les autres technologies » indique Philippe Remion, responsable distribution et partenariats Sony Storage.


Méthode d'écriture

Le principe de la lecture magnétique nécessite une vitesse de défilement importante sous la tête de lecture. Pour l'obtenir, il existe deux méthodes d'écriture linéaire et hélicoïdale. L’écriture linéaire est principalement employée sur les systèmes haut de gamme SDLT ou LTO. La bande formatée avec plusieurs pistes parallèles défile à grande vitesse. Le guidage des têtes doit être très précis pour assurer des densités d'informations importantes. On utilise pour cela des pistes d'asservissement qui permettent le positionnement des têtes. Le SDLT utilise, lui, un guidage optique (laser).
L’écriture hélicoïdale est une technologie comparable à celle des magnétoscopes, et utilise une tête cylindrique qui tourne en faisant un angle avec le défilement de la bande. Les pistes sont donc disposées en diagonales sur la bande. Les avantages sont des vitesses plus lentes, des mécanismes plus simples et une usure des têtes limitée.


Codage

Plus la densité d'information sur une bande est élevée et plus il est difficile de distinguer la présence d'une information du bruit de fond. Plusieurs technologies permettent d’en augmenter la densité et de réduire le taux d'erreur. Le codage RLL 1,7 (Run Length Limited) est une méthode analogique utilisant la détection de pics d'intensité sur la bande.  PRML : (Partial Response Maximum Likelihood) est une méthode plus récente convertissant le signal en signal numérique, ce qui permet une meilleure densité.


Compression

On augmente la capacité des bandes et la vitesse de transfert en compressant les données avant de les enregistrer.  On utilise des versions de l'algorithme non destructif Lempel Ziv (DLZ ou ALDC). Le rapport obtenu est généralement de deux pour un.


Durées de vie

Les chiffres sont à peu près identiques pour chaque technologie avec un MTBF du lecteur d’environ 400 000 heures pour une durée de vie de la tête de lecture de 50 000 heures. Pour mémoire, notons le  nombre d'utilisations maximum d'une bande : 2 000 à 30 000 passages avec une durée de conservation maximale théorique des informations de trente ans !
On l’aura compris, un lecteur de bande unique avec sa seule cartouche peut rapidement s’avérer sous dimensionné pour l’entreprise. On aura dans ce cas recours à un second lecteur ou mieux à une bibliothèque. Les bibliothèques réunissent trois composants essentiels : la technologie de bande, le robot de manipulation des cartouches et le logiciel de pilotage.


Achivage légal et à long terme
Les règles techniques à appliquer à l'archivage numérique « réglementé » ou « à valeur probante » ne sont pas encore bien définies. Le législateur européen traîne les pieds pour se prononcer sur le sujet. Face au flou d'une législation qui s'arrête aux principes, l'AFNOR a défini un ensemble de normes dont la principale, la NF Z42-013, traite de la conservation et de l'intégrité des documents dématérialisés. Le stockage sur bandes Worm fait, par exemple appel aux systèmes Ultrium 960 de HP, SAIT de Sony, DLT-V4 de Quantum. HP et Sony se sont présentés avec des lecteurs, coûteux, puissants et dotés d’importantes capacités. Quantum propose un lecteur de catégorie intermédiaire, peu onéreux pour le marché des PME. HP et Sony recourent à des cartouches dont la mémoire comporte un marqueur qui les identifie comme supports Worm et interdit certaines opérations au lecteur (désactivation de commandes). Quantum passe par une technologie maison baptisée DLTI ce pour convertir des cartouches normales en cartouches non réinscriptibles. Chez Plasmon, les supports Worm comportent un marqueur qui interdit certaines opérations au lecteur, de plus, l'écriture est effectuée d'une façon différente de celle appliquée aux supports réinscriptibles, de telle sorte que l'effacement devienne physiquement impossible (on parle alors de True Worm).


p. 2
Réduire
un-lecteur-de-bande-IB10136.gifUn lecteur de bande IBM.
Jusqu'à une date récente, une technologie de sauvegarde était prépondérante : le DLT (Digital Linear Tape). D’origine Digital et commercialisé par Quantum,  elle représentait, à elle seule, environ 75 % du parc installé. Depuis, d'autres constructeurs se sont lancés sur le créneau. Ils proposent une ou plusieurs technologies à leur catalogue. Il s’agit de  LTO (Linear Tape Open), standard développé conjointement par Seagate, HP et IBM à partir du DLT. Il  se décline en deux versions : Accelis et Ultrium que l'on retrouve généralement dans les PME. L'AIT (Advanced Intelligent Tape, versions 1, 2 et très récemment 3) de Sony propose également des bibliothèques.  D'autres technologies moins courantes existent également, à l'image de Magstar développée par IBM destinée plus particulièrement aux applications HSM (Hierarchical Storage Management), et donc aux gros volumes de données présents dans les mainframes. Chaque technologie est promue par au moins l'un des poids lourds du marché. Globalement, ces technologies se différencient principalement par les débits et la capacité qu'elles offrent.


Organiser le stockage de ses données

Le stockage en entreprise est habituellement réalisé sous la forme d'un DAS (Direct Attached System). Les utilisateurs se connectent à des serveurs disposant chacun de leur propre système de stockage. A l’usage, cette architecture est mal adaptée à la gestion de volumes importants. Les espaces de stockage n'étant pas partagés entre les serveurs, les ressources en stockage de l’entreprise sont souvent mal réparties. De plus, elle maintient une dépendance entre le matériel de stockage et le serveur. Une autre façon d’aborder  le stockage est le réseau dédié. Derrière cette architecture se regroupe à la fois le NAS (Network Attached Storage) et le SAN (Storage Area Network). Le premier propose une solution entièrement  intégrée où l'entreprise centralise ses données sur un boîtier de stockage regroupant à la fois le matériel et le logiciel. Le NAS se construit sur un réseau IP dédié ou non au stockage. De son côté, le SAN constitue un réseau purement dédié au stockage, IP (iSCSI) ou en fibre optique (Fiber Channel). Contrairement au NAS, le SAN fédère  un ensemble d'éléments hétérogènes  et tente de les faire cohabiter sous un même logiciel d'administration.


Définir les priorités de sauvegarde

VXA-320_tape-drive8052_Cop7.gifUn lecteur VXA assez austère mais le format s'impose dans les PME.
La redondance marche de pair avec la sauvegarde, élément le plus important en matière de reprise après incident. Il faut définir ce qui doit être protégé. Une fois que vous avez déterminé ce que vous souhaitez sauvegarder, décidez du moment et de la manière dont vous effectuerez les sauvegardes. On peut décider de procéder à une sauvegarde totale en début de semaine, suivie de sauvegardes des modifications au moins une fois par jour, voire plus. Il peut s'agir de sauvegardes différentielles, au cours desquelles toutes les modifications par rapport à l'état initial sont copiées à chaque fois. Elles peuvent également être incrémentielles, auquel cas les différences par rapport à la dernière sauvegarde sont enregistrées. Les sauvegardes incrémentielles sont plus rapides, mais génèrent davantage de sauvegardes individuelles qu'il faut ensuite restaurer dans l'ordre; les sauvegardes différentielles n'entraînent que deux opérations de restauration.


Avenir de la bande

Sun promet des capacités de 1 téraoctet avec son lecteur de bandes magnétiques StorageTek T10000. Il peut, en effet, emmagasiner 500 Go de données non compressées ou 1 To de données compressées sur une seule cartouche. Avec une vitesse de transfert de 120 Mbit/s, ce système de stockage serait le plus rapide de l'industrie. Ces performances représentent une augmentation de 250 % de la densité et de 400 % du débit par rapport au précédent Sun StorageTek T9940B. Les futures générations de T10000 devraient être en mesure de stocker jusqu'à 1 To de données non compressées par cartouche. De son côté, LTO 4 proposera dès 2007 une capacité de l’ordre de 800 Go et LTO 5 sera d’ici à deux ans 1,2 To.


La virtualisation du stockage

Virtualiser son espace de stockage revient à disposer d'une vue unique sur l'ensemble de ses moyens de stockage et d'en organiser le découpage de manière logique et non physique. Cette technologie qui consiste à fédérer tous les volumes du stockage en une unique ressource (serveurs, baies de disques, lecteurs de bandes...) permet d'ajouter de la capacité sans interférer avec la production. Cet artifice employé par les outils logiciels et matériels spécialisés permet de recouvrer et d'exploiter les recoins d'espace disque encore inutilisés. « Il y a aujourd’hui de grandes approches de sauvegarde sur disque avec une approche virtualisation qui est une véritable émulation de la bande et une approche éditeur de logiciels de sauvegarde qui utilise une des fonctionnalités du logiciel pour sauvegarder sur disque ce qui était normalement dirigé vers la bande » précise Guillaume Crapart directeur Europe du sud Quantum.
p. 3
Réduire
VXA320_1u_autoloader8310_C9.gifChez Exabyte, l'esthétique du lecteur VXA a été très travaillée.
Cependant, nombre d’administrateurs ont encore des réticences à voir leurs données éparpillées au sein du réseau de stockage alors qu'elles étaient jusqu'alors soigneusement rangées sur des disques durs clairement identifiés. Point positif, également,  les applications d'archivage peuvent être accélérées par la virtualisation. Cela, parce que les disques utilisés comme caches améliorent les performances des bandothèques, aussi bien en écriture qu'en lecture, pour les volumes logiques fréquemment consultés et que l'on fait migrer sur disque.
L'administration en est simplifiée notamment si l'entreprise travaille avec du matériel de stockage hétérogène. Cette vue unique permet un meilleur partage des ressources entre les différentes baies, ainsi qu'un cloisonnement logique plus simple à utiliser par les applications.


Logiciels de sauvegarde de données

Utilisés régulièrement en prévention, les logiciels de sauvegarde mettent vos données à l'abri, pour éviter de les perdre en cas de panne. Les programmes issus du monde professionnel savent sauvegarder toutes sortes de données (fichiers système, documents personnels, paramètres...) à des moments programmés, ce qui permet d'en conserver des états successifs. Plus complexes à manipuler, en raison du nombre et de la nature des réglages qu'ils proposent, ils permettent de remonter dans le temps et de faire la chasse aux erreurs.


Le marché du stockage
Globalement, le marché des applications de stockage a progressé de 10 % au troisième trimestre 2005. Selon IDC, pour le huitième trimestre consécutif, le marché des applications de stockage affiche une croissance à deux chiffres. Parmi les éditeurs, EMC conserve la première place avec environ 30 % de parts de marché. Symantec, après l'acquisition de Veritas, prend la deuxième place avec 20 % du marché. Enfin, IBM s’installe à la troisième position avec environ 10 % de ce marché.



La sauvegarde en ligne, un pas vers la tranquillité

Sûre, car complètement automatisée, la sauvegarde en ligne est simple à utiliser. Elle est particulièrement intéressante pour les petites structures. Grâce à la baisse continue des coûts de connexion à Internet en haut-débit, une PME peut aujourd'hui sauvegarder en ligne près de 20 Go de données pour un prix compris entre 300 et 500 euros HT par mois. La sauvegarde en ligne est parfois adoptée lorsque le parc de machines à gérer dépasse un certain seuil. A partir du moment où l’entreprise utilise de plus en plus de machines nomades donc très souvent déconnectées du réseau il est souhaitable d’opérer des sauvegardes à distance, car les sauvegardes locales sont statistiquement réalisées de moins en moins souvent.  Par rapport aux solutions traditionnelles, la sauvegarde en ligne séduit par sa simplicité de mise en oeuvre : n'importe quel utilisateur peut déployer l'outil de sauvegarde sans posséder de compétences techniques. Le transfert des données s'effectue entre un agent logiciel installé sur les postes de l'entreprise et les serveurs du prestataire. Il suffit donc de charger cet agent sur chaque machine concernée par la sauvegarde en ligne.
Selon des informations involontairement dévoilées récemment, Google s'apprêterait à lancer un nouveau service de stockage en ligne. Il semblerait que Google s’apprête à héberger toutes les données des utilisateurs (fichiers, e-mails, marque-pages, images...) sur ses serveurs plutôt que sur les ordinateurs des internautes. Google a déjà avancé dans cette direction avec GDrive, GDS et Lighthouse mais tous ces services sont aujourd’hui confrontés à des problèmes de bande passante et de volume de stockage.


Le bon sens et les procédures sécurisées s'imposent

L'année 2006 devrait marquer un tournant dans l'utilisation des technologies de stockage par les petites entreprises. En effet, selon IDC, les PME montrent un intérêt croissant pour les systèmes de stockage utilisés par les plus grandes sociétés et leur part des dépenses dans les technologies avancées devrait augmenter au cours de cette année. On peut considérer que les moyennes entreprises ont les mêmes exigences que les grandes sociétés en ce qui concerne la sauvegarde et la récupération de données qu'offrent les systèmes de protection sur disques et sont peut-être plus disposées à utiliser exclusivement ces systèmes pour protéger leurs données. Une étude IDC souligne également que si les PME continuent de centrer leurs politiques de stockage sur les disques internes, elles augmenteront leurs capacités de stockage en réseau (SAN) dans les douze prochains mois. La priorité des petites entreprises pour les cinq prochaines années devrait être la croissance de leur capacité de stockage, tandis que les structures de taille moyenne se concentreront sur l'amélioration de la reprise sur sinistre. Dans tous les cas de figure, la bande reste le média le moins cher et le plus approprié au stockage des données à long terme.


De l’utilisation des bandes
Une fois installé votre système de sauvegarde vous devez ensuite développer un plan de permutation des bandes et déterminer l'endroit où les stocker. Le schéma de permutation peut-être le plus courant est le cycle 3-2-1, utilisé depuis longtemps et qui s'est révélé efficace. On effectue les sauvegardes complètes à deux intervalles différents. Le premier est mensuel et on entrepose le support hors site (3). On effectue également des sauvegardes hebdomadaires complètes (2) et on les conserve habituellement sur site pendant la semaine de leur utilisation, puis on les place hors site pendant un nombre prédéterminé de cycles hebdomadaires (deux ou trois cycles). Les sauvegardes incrémentales journalières (1) s'effectuent et se conservent également sur site pendant la semaine de leur usage, puis on les place hors site avec la sauvegarde hebdomadaire correspondante selon le même calendrier cyclique. À la fin d'un cycle pour un jeu de bandes, celles-ci peuvent être réutilisées. On conserve chaque bande mensuelle pendant 12 mois avant de la réutiliser. On conserve généralement les jeux de bandes hebdomadaires pendant environ trois semaines après leur départ de la salle du serveur (soit pendant quatre semaines), puis on les réutilise.



p. 1
Réduire
Une boutique en quelques clics
Par Bertrang Garé - copyright l'Informaticien, tous droits réservés

L’e-commerce prend peu à peu sa place en France. De plus en plus de personnes ou d’entreprises franchissent le pas et proposent leurs produits ou services en ligne. Dans le domaine, les TPE et PME forment le gros des troupes derrière les géants de la distribution comme la FNAC ou la SNCF. La simplicité de création de créer sa boutique est un fait marquant de ce développement. Si les fonctions proposées sont assez similaires, elles ne lèvent pas toutes les difficultés comme le paiement en ligne ou la gestion des taxes et des transports. Seul remède : une bonne réflexion d’avant-projet.

boutique2.gifLa page d’accueil de Lycos hébergement pour votre boutique en ligne.
Ceux qui ne donnaient pas cher des stratégies du commerce en ligne risquent bien de se mordre les doigts. De plus en plus de personnes achètent en ligne mais surtout, de plus en plus de particuliers et d’entreprises proposent des produits ou des services à la vente sur Internet (voir encadré). Marc Schillaci,  PDG d’Oxatis, un fournisseur de plate-forme pour la mise en ligne de boutique, souligne : « Sur les 2000 sites que nous équipons, nous avons différents types de vendeurs. Comme domaine d’activités il n’y a pas que des distributeurs informatiques. Certains réussissent sur des marchés de niches et trouvent leur place. Des secteurs comme l’import, la création de produits artisanaux et les activités de loisirs créatifs comme la broderie ou les perles se développent fortement. Sur ces marchés, il reste encore de la place pour plusieurs acteurs ».
Le profil des vendeurs en ligne est aussi intéressant à analyser. Marc Schillaci les dépeint rapidement : « Il y a les connaisseurs, qui ont déjà eu une expérience et les autres qui se lancent sans avoir aucune idée de ce que cela peut être. Ce dernier public est souvent d’abord attiré par l’aspect graphique et la beauté du site et s’occupent assez peu des côtés techniques ». Cependant, on assiste à une sorte de professionnalisation des vendeurs et des acheteurs. Le phénomène eBay et le développement de canaux moins dirigistes comme les ventes privées sont passés par là !
Aujourd’hui les ventes privées regroupent plus de 2 millions de membres et plus de 20 000 colis expédiés à ce jour. Ce marché représentera en 2006 environ 150 millions d’euros.


Une multitude d’outils

Pour satisfaire la nouvelle frénésie pour la vente en ligne, le choix est pléthorique. On peut regrouper les offres en trois grandes familles : les offres de boutiques en lignes proposées par des hébergeurs qui voient dans le domaine un relais de croissance vers un marché plus proche de celui des particuliers, des offres logicielles pures permettant de développer une boutique mais ne proposant ensuite que des formules d’hébergement. Enfin, pour les fanas de l’Open Source, il existe quelques produits permettant sur ces plates-formes de proposer de la vente en ligne. Dernière tendance, il existe même des logiciels de boutiques en lignes plus spécialisés sur certains marchés.
La plupart des hébergeurs proposent des possibilités de mises en lignes de boutiques. Ainsi Lycos hébergement fournit une plate-forme et un logiciel permettant de mettre en ligne une boutique pour quelques dizaines d’euros par mois selon la formule choisie. Il en est de même pour les principaux autres hébergeurs de la place qui proposent des formules analogues. Certains se sont spécialisés sur le domaine de la vente en ligne comme Oxatis ou Powerboutique.
Des éditeurs comme Actinic, un acteur britannique historique du secteur, propose lui une plate-forme de développement et différents modules pour construire une boutique totalement personnalisée.


Déjà une spécialisation

boutique4.gifLa vue d’un panier d’achat avec l’outil Web commerce d’Oxatis.
D’autres éditeurs ont fait le choix de déjà se spécialiser. Aquitem propose ainsi un logiciel pour la vente en ligne de prêt-à-porter appelé Proshop. L’éditeur Yoda attaque lui le secteur des librairies, des bijouteries ou de la vente de matériel Hi-Fi.
Nous citerons aussi deux solutions Open Source Peel et osCommerce. Peel (pour ma Petite Entreprise En Ligne) permet de développer simplement sa boutique avec la plupart des modules fonctionnels nécessaires et propose une version pour le monde des réservations dans l’Hôtellerie.


p. 2
Réduire
Le choix de votre plate-forme

Le choix de la plate-forme n’est pas aussi anecdotique qu’il n’y paraît. Si la plupart des produits du marché fonctionne sur tous les environnements, ce n’est pas le cas de tous. Ainsi le produit Boutika Pro ne fonctionne que sous Windows actuellement. Le premier point à voir lors de la construction de votre projet de boutique en ligne est de bien vérifier que le logiciel que vous utiliserez fonctionnera bien sur la plate-forme qui hébergera votre boutique.


Des fonctionnalités souvent similaires

boutique5.gifUne autre boutique testée. Ici sur Powerboutique. Le résultat est meilleur mais il a fallu s'y reprendre à plusieurs fois.
Les produits du marché prennent bien en compte la dimension catalogue. A l’épreuve des tests sur les différentes évaluations effectuées pour cet article, c’est même la fonction la plus aisée à comprendre et à gérer. Pour la plupart des produits, il suffit de suivre les assistants pour pouvoir facilement mettre ses produits en ligne dans les logiciels testés. Seule la mise en ligne des produits dans MagKit nous a paru un peu plus obscure. Cybershop se caractérise aussi par la présence d’un configurateur qui permet de proposer pour les vendeurs en ligne différentes configurations de matériels. Sympa pour ceux qui vendent de l’informatique par exemple !
Il en est de même pour les fonctions de suivi des clients. La plate-forme de Lycos est très simple à utiliser dans le domaine avec un workflow très au point. Même en version d’évaluation, les systèmes de mail de confirmation de commandes et d’enregistrement de clients nouveaux fonctionnent parfaitement. Les factures envoyées ont un aspect très professionnel. PowerBoutique et Web boutique, le produit de Micro Application, proposent des services analogues et de très bons niveaux. Ces fonctions de Front-Office bien assurées, voyons désormais les fonctions de Back-Office. La plupart des outils testés les intègrent dans le logiciel ou la plate-forme ; Il est à noter qu’Oxatis propose une intégration avec le logiciel d’EBP, un spécialiste des logiciels de comptabilité-finance pour les PME. Il en est de même pour la gestion des taxes et de la TVA. Dans la plupart des produits, cette gestion se réalise par des champs déclaratifs ou par des choix dans des menus déroulants.
L’affaire se corse lors du choix du module de paiement. Différentes formules existent. Le module le plus connu est SIPS, la plate-forme de paiement en ligne et mobile d’Atos Origin qui détient la première place en France avec près de la moitié du marché. Viennent ensuite Paybox, Paypal, Scellius (la Poste), Cyanet… Pour la plupart, les outils proposent des systèmes de paiement. Il s’agit parfois de modules additionnels qui ne sont pas compris dans les packs de départs. De plus il n’est pas évident de savoir lequel choisir. Il faut cependant bien y réfléchir. Tous ne sont pas aussi souples qu’il n’y paraît au premier abord.
L’important est cependant de pouvoir encaisser en ligne de manière sécurisée les paiements par chèque ou par cartes bancaires. Une discussion avec votre banquier et la recherche sur les différents services même ceux proposés par la plate-forme qui va vous héberger, semble nécessaire pour se faire un réel avis. Marc Schillaci indique : « 95 % des paiements se font par cartes bancaires. Le reste se fait par chèques qui n’arrivent jamais. Pour sa boutique, il faut cependant aller plus loin que le simple contre-remboursement. Il existe près de 23 moteurs différents de paiements. Comme Paybox ou des tiers de confiance comme Paypal. Le coût réel de ces différents services est aussi à regarder. Certains produits coûtent près de 40 % plus chers que les services offerts par une banque ». Mais si tout se trouve dans les produits, il ne faut pas se laisser abuser. Monter sa boutique en ligne est un vrai projet et demande une réelle réflexion de départ.


Pas si simple que ça !

boutique6.gifLa gestion des nouveaux articles dans Powerboutique est très simple en remplissant juste les champs nécessaires. Se révèle très pratique la possibilité de visualiser le résultat à toutes les étapes avec l’outil de visualisation.
Reprenons les grandes étapes de la construction d’une boutique en ligne. Tout d’abord votre catalogue produit. Après les premiers tests effectués, il est vraiment conseillé de bien trier et regrouper les différentes photos des produits que vous souhaitez mettre en ligne. Pour les photos ne choisissez pas forcément de la haute résolution. La plupart des photos ne doivent pas dépasser les 40 Ko pour la mise en ligne.
De la même manière, préparez à l’avance les textes de présentations des produits en les classant bien. Il sera ainsi plus simple de les utiliser lorsque l’outil vous demandera le texte court ou de présentation de votre produit. Rassurez-vous : la plupart des produits supportent les copier-coller.
Il est aussi nécessaire d’avoir pas mal de renseignements de types administratifs ou pratiques. Rassembler à l’avance les tarifs des transporteurs que vous allez utiliser, ainsi que par exemple le poids des articles que vous allez vendre en ligne. Vous risquez sinon d’avoir un peu de mal à remplir de nombreux champs de votre boutique. Dans ce domaine, n’oubliez pas qu’avec Internet, vous ne serez pas seulement visible en France mais sur toute la planète ! N’hésitez pas parfois à limiter le champ géographique des achats possibles et de bien vérifier que votre produit supporte le multidevise. Il n’y a pas que l’euro sur terre.
Pour les modules de paiements, relisez le paragraphe plus haut sur le sujet et réfléchissez bien à la stratégie et au volume de vente que vous pensez réellement réaliser sur votre boutique en ligne. Ce volume est aussi une aide au choix de ce module de paiement. Pas la peine d’avoir tous les services possibles si vous réalisez une dizaine de ventes par mois !
Enfin, sachez que la plupart des logiciels sont bien adaptés à la vente de produits physiques. Si vous souhaitez proposer des services, les produits répondent assez peu aux besoins. Un entretien avec le service commercial de l’éditeur peut vous aider sur ce point pour savoir ce qu’il propose réellement dans le secteur. L'Informaticien vous parle d’expérience en ce qui concerne le domaine de la presse ! Ce manque pousse les sites du secteur des services à développer par eux-mêmes ou à faire développer sur mesure ce module de paiement spécifique. Le coût de la mise en place de la boutique n’est évidemment pas le même. Que ces remarques ne vous découragent pas. Ces difficultés sont loin d’êtres insurmontables pour devenir le site de la mort qui tue de la vente en ligne !


Le renouveau du commerce en ligne
La bulle Internet a bien fini d’exploser et le commerce en ligne connaît un regain de vigueur dans notre pays avec de plus en plus d’adeptes. Ainsi selon une étude du Benchmark Group, l’e-commerce a affiché une croissance de 44 % en 2005 pour atteindre 7 milliards d’euro. Cette croissance est inégale selon les domaines de distribution. Les TPE sont les plus actives avec une croissance de 270 %, selon Marc Schillacci d’Oxatis. Les secteurs déjà bien implantés comme le high-tech ou les biens culturels connaissent un certain ralentissement de leur croissance au profit de nouveaux secteurs comme les cosmétiques ou l’équipement de la maison. L’étude constate également la montée en puissance de nouveaux concepts comme les ventes privées. Pour l’année en cours le cabinet d’étude prévoit une croissance de 36 % et le volume d’affaires global devrait atteindre les 9,5 milliards d’euro. La tendance semble se confirmer avec des paiements par carte en croissance de 56 % au cours du premier trimestre de cette année.