Un point sur les outils de restitutions d’états sur le Web (genre Crystal Reports) est disponible chez ProConcept. NB : ceci fait suite à mes notes sur le même sujet (ici puis là).
Archives pour la catégorie Informatique
Requête HTTP par Javascript côté client
Vous voulez que du code Javascript, côté client (exécuté dans le navigateur), génère une requête HTTP vers un serveur, récupère le résultat puis le traite et poursuive ainsi son exécution. Comment faire ? Il faut utiliser un objet httpRequest présent dans le DOM. Ce type d’interface est apparemment en cours de spécification dans le standard DOM du W3C (au sens du standard « DOM Level 3 Load & Save »). MS IE et Mozilla implémente tous les deux cet objet même si le code pour l’instancier diffère un tout petit peu. Il existe plusieurs documentations qui expliquent plus en détails comment faire.
Java est aux langages de programmation ce que les 4×4 sont aux voitures
Java est le 4×4 des langages de développement : ultra-puissant, tout-terrain (sauf lorsqu’il s’agit de faire un Paris-Dakar), énorme consommateur (de temps de développement et de ressource machine). Comme les conductrices de 4×4 en centre ville, certaines sociétés utilisent Java à contre-emploi.
JSP est la technologie Java de loin la plus simple au sein de la spécification J2EE. Pourtant, d’après Philip Greenspun, professeur d’informatique au MIT, même les étudiants informaticiens du MIT ont du mal à la mettre efficacement en oeuvre tellement elle est complexe au regard du type de problème qu’elle est sensée traiter. D’après Philip Greenspun, un projet Web simple utilisant Java coûtera 5 fois plus, sera deux fois plus longs à livrer et sera plus dur à maintenir que si il utilisait un langage de scripting tel que PHP ou Perl. Mais les développeurs et les managers se sentiraient rassurés à l’idée qu’avec Java ils pourraient, au moins en théorie, résoudre des problèmes informatiques d’une complexité très importante, même si cela ne correspond pas à la situation qu’ils ont à traiter au quotidien.
Wifi : points d’accès D-Link et Linksys
Dans ma recherche d’un bon point d’accès Wifi pour chez moi, j’ai lu un article sur le point d’accès D-Link DI-624. Ce point d’accès fait également routeur, serveur DHCP, firewall avec DMZ et filtres en entrée et en sortie. 217 euros HT en juin 2003 d’après Décision Micro.
Le Linksys WRT54G, quant à lui, fait switch 10/100 full duplex 4 ports, serveur DHCP, routeur NAT avec support du VPN, cryptage WEP 128 bits et filtrage par adresses MAC.
Intelligence collective, le projet
Pierre Lévy, à l’Université d’Ottawa, présente son projet de recherche sur l’intelligence collective : créer un modèle théorique qui permet de représenter et de gérer l’intelligence collective d’un système sous la forme des échanges de savoirs qui le traversent et des réseaux qui les sous-tendent. Pierre Lévy projette d’implémenter ce modèle sous la forme d’un logiciel opensource. Ce logiciel permettra de représenter graphiquement ces savoirs et réseaux, de les valoriser et donc de les échanger au sein d’une économie nouvelle. Le logiciel se présentera comme une sorte de jeu de plateau (jeu de l’oie, mandala, …).
Surveiller la performance d’un site sans infrastructure de test
Pour surveiller ou mesurer la performance d’un site web, on utilise généralement des sondes, agents ou scripts qui, installées sur une machine, simulent l’activité d’un utilisateur et mesurent les temps de réponse et autres indicateurs de performances (taille des pages, bande passante, …). Ceci rend les campagnes de test difficiles à mettre en oeuvre (coût de la conception et du paramétrage mais également coût du déploiement et de l’installation). Et cela rend le bénéfice ephémère puisque les agents de tests qui sont déployés ne sont généralement pas maintenus en place. Lorsqu’ils sont maintenus en place, on parle d’infrastructure de supervision. Le coût de la maintenance et de l’exploitation d’une infrastructure d’agents de supervision est significativement élevé puisqu’il s’agit de maintenir une architecture d’agents distribués. Il s’agit alors de superviser l’infrastructure de supervision !
Pour contourner cette difficulté, dans le cas où l’on ne cherche pas à obtenir des mesures détaillées et approfondis et où l’on souhaite privilégier la durabilité du dispositif de surveillance et sa maintenabilité, une astuce peut être employée : recourir à des agents qui ne sont pas déployés sur des postes clients distants mais qui résident dans du code exécuté côté client depuis une page web. On recourt alors aux technologies ActiveX ou applets Java ou bien encore, si l’on souhaite respecter un standard plus ouvert (mais moins sophistiqué) : Javascript. Il s’agit donc de recourir à un agent de test et de mesure en Javascript :
- Le produit de test eValid repose apparemment sur un principe similaire.
- Le produit de test WebLoad inclut des fonctionnalités de ce type.
- Cette communication semble présenter ce type de technologie.
- Le service gratuit Speed Survey repose visiblement sur le même principe.
- Ce petit script gratuit donne un point de départ pour coder ce type d’agent.
Samba et ActiveDirectory
La nouvelle version de Samba (v.3.0.0) supporte Active Directory. Le logiciel Samba permet d’utiliser des serveurs linux en tant que serveurs de fichiers et serveurs d’impression au sein d’une infrastructure d’authentification Kerberos implémentée avec le logiciel ActiveDirectory de Microsoft.
Le haut débit au milieu du désert
Wiki en français
En août, le Journal du Net parlait des wiki donc dans un article en français.
Commercialisez vos logiciels open source
Discussion sur Slashdot au sujet des modèles économiques liés à l’opensource, résumé et extraits :
- Dans le monde des affaires, certains logiciels gagnent à être libres et d’autres à être fermés. Au cours de la vie d’un logiciel, il peut exister un instant critique à partir duquel le logiciel gagnerait à devenir ouvert ou, au contraire, à devenir fermé.
- Un logiciel gagnerait à être ouvert à partir du moment où il permet de gagner plus d’argent en services (installation, paramétrage, assistance, support) qu’en vente de licence.
- Peut-être vaut-il mieux commercialiser des services et des produits s’appuyant sur des logiciels libres plutôt que d’essayer de commercialiser les logiciels libres eux-mêmes (licences).
- Si je développe un logiciel à usage interne et spécifique (pas dans une optique de revente), j’ai en général intérêt à le distribuer sous une licence opensource : je gagne ainsi de la force de recette et de développement en constituant une communauté autour de ce logiciel.
- 1/ développez un logiciel, 2/ prospectez et « vendez-le » largement mais sous licence opensource, 3/ établissez des contrats de services avec vos clients satisfaits par le logiciel (formation, support, maintenance corrective, maintenance évolutive, …), 4/ distribuez-le publiquement sous licence opensource.
- L’idée de commercialiser un service de support sur un logiciel opensource est séduisante mais difficile à mettre en oeuvre. En effet, le principal besoin de support est ressenti au moment de l’installation voire avant le démarrage (démonstrations, avant-vente, …), c’est-à-dire avant que le client ait pu profiter du caractère gratuit de la licence pour s’approprier le produit. Il est alors difficile de vendre un service (trop prématuré).
- Certains aiment distribuer leur logiciel sous deux licences : d’une part sous licence opensource GPL (ce qui empêche l’utilisateur de revendre le produit) et d’autre part sous licence commerciale (afin de permettre à l’utilisateur de revendre le produit après modification ou extension des fonctionnalités). Mais ce modèle rend difficile voire impossible la constitution d’une communauté de développeurs ouvertes puisque les contributions de cette communauté, si elles se font dans le cadre de la licence GPL, ne pourront pas être inclues dans la version commerciale du produit (à moins que les développeurs ne cèdent leurs droits au « propriétaire » du produit).
- Certains produits sont d’abord distribués sous licence commerciale et seules leurs anciennes versions sont distribuées sous licence opensource. Même remarque que précédemment sur la difficulté d’organiser une communauté ouverte de développeurs.
- Les services à vendre autour d’une application web opensouce : 1/ hébergement spécialisé (service en mode ASP), 2/ vente de licences pour des modules et fonctionnalités avancées, 3/ services de conseil, d’assistance, de développement spécifique, d’intégration, 4/ support technique avancé, 5/ autres services (graphisme, …).
L’article qui avait provoqué cette discussion est disponible ici.
SSO : Kerberizez vos applications Apache
Votre application Web tourne derrière un serveur web Apache ? Vous pouvez la doter d’une fonctionnalité de Single Sign On grâce à la technologie Kerberos dans le cas où vos utilisateurs sont déjà authentifiés dans une architecture Kerberos (par exemple au sein d’une forêt Active Directory, ou bien d’un Kerberos Unix du MIT). Pour rendre Apache capable de s’appuyer sur l’authentification Kerberos, il faut lui apprendre à utilise le protocole SPNEGO (Simple and Protected Negotiation). Il vous faut donc :
- un domaine Active Directory avec vos utilisateurs « dedans »
- des utilisateurs ayant Microsoft Internet Explorer comme navigateur (en attendant que Mozilla, et donc Netscape, se dote de capacité Kerberos)
- un serveur Apache version 1.3.x
- un client Kerberos qui fonctionne sur la même machine que le serveur Apache (MIT Kerberos 1.2.3 par exemple)
- le module Apache mod_auth_gss_krb5
- et, surtout, le mode d’emploi !
Zope en hausse d’après netcraft
zegor signale que d’après les statistiques de Netcraft, la part de marché de Zope augmente fortement et constamment, comme l’indique ce graphique : .
La sécurité avec PHP
Contrôle d’accès et gestion de sessions
De manière connexe aux problématiques d’annuaires se trouve celles de la gestion des contrôles d’accès et donc de l’authentification, de la gestion des droits d’accès à base de rôles (RBAC = Role Based Access Control) et de la gestion de sessions. Une publication auprès de l’IEEE donne un exemple d’approche globale de ces problématiques et esquisse la conception d’un système de gestion de la sécurité pour le Web faisant abstraction, par exemple, des technologies d’authentification sous-jacentes (Kerberos, SSL + X509, LDAPS, NTLM, NIS, …).
XACML : un pseudo-standard de plus pour les services web
XACML est encore un autre standard pour les services web. Ce vocabulaire XML prétend couvrir la problématique de l’authentification (permettre à un agent de prouver qu’il agit bien au nom d’une personne donnée). En fait, il semble plutôt couvrir la problématique de l’autorisation (donner ou non le droit à un agent d’agir sur une ressource).
Avec XACML, les ressources à protéger sont sous la garde d’un service d’autorisation nommé PEP (Policy Enforcement Point). Le PEP formule en XACML la requête que l’agent adresse à la ressource (« Je, soussigné agent XYZ, désire lire la ressource ABC. ») Le PEP envoie cette requête XACML à un « PDP » (Policy Decision Point). Le PDP compare la requête XACML avec les règles d’autorisation qui ont été définies pour s’appliquer aux requêtes de ce type, sur cette ressource ABC. Le PDP formule sa décision d’autorisation (« Je consens à ce que l’on réponde à cette requête » ou « je refuse ») également en XACML et envoie ainsi sa réponse au PEP qui, lui, agit en conséquence (donne accès à la ressource ou renvoie un message d’erreur).
On peut lire dans une discussion à ce sujet sur Slashdot :
- » C’est une erreur fondamentale que de vouloir inclure des expressions logiques (telles que requises pour les décisions de contrôle d’accès) dans un langage (XML) qui ne le supporte pas. «
- » Les standards de ce type ne représentent pas un progrès, ils représentent une masse croissante de redondance qui devra un jour être refondue pour former un tout cohérent. «
Développez avec des triplets
Comment construire des applications de gestion de méta-données ? Avec des triplets RDF, pardi ! Oui, mais comment implémenter cette application ? A l’aide du langage python et de la bibliothèque rdflib, pardi !
Comme l’expliquait cet article sur xml.com en début d’année, Rdflib permet de générer, stocker et fouiller des collections de triplets RDF sans avoir à toucher à la syntaxe XML associée à RDF. La seule chose dont vous avez besoin, c’est de connaître un minimum de python. Vous vous rendrez rapidement compte que bâtir une application à base de triplets, c’est (un peu) comme bâtir une application avec une base de données relationnelle mais sans avoir à concevoir au préalable le schéma de votre base de données. Et vous vous rendrez surtout compte que RDF, c’est quelque chose de simple à condition de vous appuyer sur une bibliothèque de type rdflib. En effet, l’architecture interne du stockage de RDF et la syntaxe XML de RDF sont des sujets que vous n’avez pas besoin de connaître pour pouvoir tirer profit des technologies du web sémantique dans vos applications.
ROPE = Rdflib + zOPE
He is doing it : trying to tie together Zope and the magic of RDF triples, with the help of a nice ROPE. Go for it, Reinout !
Persistence objet sur LDAP, avec mapping
- En Java, avec DSML (mais module non supporté) : http://castor.exolab.org/index.html
- En Python, d’après Industrie Toulouse : http://toulouse.amber.org/archives/2003/04/21/evaluating_objectrelational_migration.html puis http://toulouse.amber.org/archives/2003/06/26/applying_mapping_patterns_to_ldap.html
- En Python, encore : http://mail.zope.org/pipermail/zope/2003-March/132270.html
- La persistence en Python, mais y a-t-il une solution concernant LDAP comme support : http://www.orbtech.com/wiki/PythonPersistence
- Une abstraction de stockage (mais sans mapping ?) : http://www.meta-language.net/metastorage.html
- En Perl : http://spops.sourceforge.net/doc/SPOPS/LDAP.shtml
Survivre sans Windows
Y a-t-il une vie après Windows ? D’après ce patron de PME, oui, une entreprise peut non seulement vivre sans Windows mais aussi a tout intérêt à envisager de s’en passer.
En bref, le BSA a poursuivi cette PME de vente d’instruments de musique ; il a été choqué par l’attitude méprisante et « anti-commerciale » de Microsoft à son égard ; il a donné six mois à son équipe informatique pour abandonner Windows ; l’équipe informatique a choisi et déployé linux sur les 72 postes de travail de l’entreprise ; les utilisateurs se sont formés aux nouveaux outils de travail (Mozilla pour le Web, Evolution pour le mail et le groupware, OpenOffice pour la bureautique) ; l’entreprise a gagné de l’argent et continue à en gagner à chaque montée de version Windows.
En plus, le patron de PME qui n’y connaissait rien en informatique est devenu le symbole d’une success story pour amateurs de pingouins.
Les vers contaminent une centrale nucléaire et un réseau ferroviaire
D’après cette discussion sur slashdot, les différentes variétés de vers pour Microsoft Windows qui ont sévi ces dernières semaines ont notamment contaminé une centrale nucléaire américaine ainsi qu’un réseau de trains de banlieues américain. Dans la centrale, c’est l’un des ordinateurs de supervision de la centrale (affichage des tableaux de bord de pilotage de la centrale, pour les opérateurs humains) qui a planté, sans conséquences notables sur le fonctionnement de la centrale, qui était en phase de repos. Du côté du train de banlieue, c’est le système informatique de signalisation ferroviaire qui a planté, entraînant l’arrêt automatique d’urgence d’un ou plusieurs trains.
Ces épisodes illustrent la relative faiblesse de la sécurité offerte par les pare-feux et les principes de non-connexion de réseaux sécurisés.