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.
Archives de catégorie : Développement
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
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
Alternatives à J2EE
Pourquoi n’avez-vous pas FORCEMENT besoin de J2EE ? Jon Udell évoque des solutions alternatives à J2EE, en prenant un par un les arguments qui pourraient vous faire croire qu’hors J2EE, il n’y a point de salut :
- Scalabilité : que ce soit avec Java, sous Windows ou avec LAMP, il y a d’autres solutions de clustering et de répartition de charge que J2EE
- Fortement transactionnel : il existe toujours et encore CICS, Tuxedo, TopEnd ; de plus TP-Lite est une piste intéressante ainsi que le support des services web par les serveurs de bases de données
- Persistence relationnelle-objet : Castor, servlets avec JDO, l’EOF d’Apple, …
- Homogénéité = 1 seul environnement, 1 seul langage : même avec J2EE, les développeurs devront continuer à faire du SQL, des JSP, de l’XSLT… et des langages de scripting pour l’automatisation des traitements
Donc J2EE n’est pas la solution universelle à tous les problèmes. Fallait-il le préciser ?
Microsoft abandonne .Net
Vous avez cru mon titre ? Meuh non, Microsoft a seulement décider de redéfinir ce qu’est .Net. Avant : c’était une “vision” et une marque appliquée à tous les nouveaux produits de l’éditeur (Windows .Net, …). Désormais, il ne s’agit plus que d’une marque appliquée au framework applicatif orienté web services (serveur d’application .Net + environnement de développement Studio.Net).
Fin juin 2003, c’était le troisième anniversaire du lancement de la stratégie .Net. Après trois ans, le bilan qui en est tiré de .Net est que cette plate-forme souffre du manque de maturité des normes relatives aux services Web. Plusieurs organismes de standardisation (et, en coulisse derrière eux, plusieurs éditeurs informatiques) se sont engagés dans des guerres d’influence pour savoir quelle vision des Web services émergera comme un standard de fait. La partie n’est pas gagnée. Et cette gue-guerre agace les grandes entreprises (General Motors par exemple). En attendant (et même après), je vous invite à RESTer tranquille.
A hope for Zope ? Un espoir pour Zope ?
Beside J2EE and .Net is there a corporate hope for Zope ? I started some discussions on this topic in some zopish places : comp.lang.python,
Zopera (the French Zope community website) ; see also this other Zopera thread. The answers I collected don’t make me very optimistic about the near-term future of Zope as a mainstream web technological framework for big companies. Do you think there is a hope for Zope in Fortune XXXX companies ?
A côté de J2EE et .Net y a-t-il un avenir corporate pour Zope ? J’ai lancé quelques discussions à ce
sujet dans quelques endroits zopesques : comp.lang.python,
Zopera (un site de la communauté Zope française) ; voir aussi cette autre discussion sur Zopera. Les réponses que j’ai collecté ne me rendent pas très optimiste quant à la
probabilité d’une popularisation prochaine de Zope en tant que technologie Web pour les grandes entreprises. Pensez-vous qu’il y aura une place pour Zope dans les entreprises du CAC 40 ?
Un trucmuche
Voici une idée de truc à inventer :
- – ça sert à qui ? à une association loi 1901
- – ça agit sur quoi ? sur la visibilité de sa valeur ajoutée (sociale, économique, environnementale, …)
- – ça permet quoi ? accroître ses ressources humaines (bénévoles) et économiques (subventions, dons, …)
Le contexte =
- un sponsor, qui veut renforcer son image de marque auprès de ses consommateurs pour conquérir/maintenir des parts de marché,
- un politicien, qui veut renforcer son image de marque auprès de ses électeurs pour gagner des voix,
- un mécène, qui veut se faire plaisir, avoir bonne conscience, ressentir des émotions
- une institution, qui veut justifier son existence, affirmer sa vocation,
- 1+2 => nécessite une médiatisation => nécessite de produire des récits à raconter à des journalistes.
- 3 => nécessite une mise en scène, un représentant relationnel et affectif, un drapeau, un symbole, un personnage à investir émotionnellement
- 4 => donne de la reconnaissance a posteriori => assure la pérennité
Des pistes de réflexion :
XSL-FO plutôt que Crystal Reports
On a pu lire que XSL était une alternative envisageable à Crystal Reports. Peut-être, mais alors pas pour tout de suite !
De fait, XSL-FO, qui est une sous-partie du standard XSL du W3C (qui contient XSLT, XPath et XSL en tant que vocubalaire XML pour feuilles de style), donne lieu à des logiciels éditeurs d’XSL-FO (comme XMLSPY ?) qui pourraient en partie remplacer le studio de création de Crystal Reports. En ce qui concerne le générateur d’états de Crystal Reports, celui-ci serait remplacé par un moteur XSLT (Xalan, Sablotron) plus un logiciel “formatteur XSL-FO”. Et le client/plug-in de visualisation/impression d’états Crystal Reports serait quant à lui rendu inutile puisque le formatteur XSL-FO permet de créer des états dans quasiment n’importe quel format plus classiques (documents PDF, graphiques, pages HTML)…
Mais ces outils autour de XSL-FO ne sont pas encore suffisamment matures. Et l’un des auteurs de la spécifications XSL-FO estimait en décembre 2002 qu’il faudrait 3 à 5 ans pour que XSL-FO rentre dans les moeurs des éditeurs de logiciels et des développeurs.
En attendant, pour générer des états sans Crystal Reports, il semble que l’on doive envisager :
- soit d’adopter XSL-FO et des outils insatisfaisants si on dispose déjà de compétences XML (pour faciliter l’adoption et pallier au manque de maturité des logiciels)
- soit d’adopter une approche simpliste mais vaguement similaire à XSL-FO en générant, via un langage de programmation, des documents PDF ou autres à partir des données, via XML ou non
- soit d’adopter des briques logicielles de génération d’états PDF comme DataVision ou JasperReports (pour l’offre open source)
- soit de payer cher des licences Crystal Enterprise pour pouvoir continuer à générer des états Crystal Reports
Crystal Reports, mais en open source ?
Crystal Reports, vous connaissez ? C’est beau, c’est bien. Mais c’est cher. Et l’éditeur de
Crystal Reports est en train de se faire acheter par Business Objects. Alors, quelles
alternatives opensource pour remplacer Crystal Reports ?
- Les trois leaders (voir notamment ce retour d’expérience):
- JasperReports (Java, voir cet article), chez Sourceforge, accompagné de designer d’états, eux-même opensource, mais moins stables que le serveur d’états JasperReports :
et également inclus dans une suite Web opensource plus “produit fini” : OpenReports (chez Sourceforge)
- DataVision (chez Sourceforge)
- JFreeReports et JFreeGraph, (Java, chez Sourceforge)
- JasperReports (Java, voir cet article), chez Sourceforge, accompagné de designer d’états, eux-même opensource, mais moins stables que le serveur d’états JasperReports :
- La version opensource (un module ?) d’un produit commercial assez complet : ReportLab (génération de PDF à l’aide de RML, un langage de script propriétaire mais simple), disponible chez Sourceforge
- Des produits moins complets :
- PHPReports (transformations de données XML en HTML avec PHP + Sablotron, voir aussi plus bas), disponible chez Sourceforge
- PC4P (génération de PDF avec PHP, disponible chez Sourceforge)
- Un produit peut-être moins mature ? : Agata
- Et peut-être encore d’autres bidules Java
- Et puis, dans les produits commerciaux, sans entrer dans les grosses suites de “Business
intelligence” (comprenant requêteurs poussés, bases multidimensionnelles/moteurs xOLAP,
analyseurs multidimensionnels), il y a aussi :
A noter, comme le suggère la dernière question de cette FAQ, que la technologie XSLT, à condition de disposer d’éditeurs XSL graphiques de bonne qualité, semble
directement concurrencer les produits comme Crystal Reports. Parmi les moteurs XSLT
opensource les plus connus, on trouve Xalan et Sablotron. Cette tendance
favoriserait-elle vraiment des produits simples comme PhpReports ?
Fresh news aggregated with Plone
Here is my kind of a HOW-TO documentation if you want to setup a portal
aggregating news from remote web sites (by the way of RDF/RSS
syndication or by the way of search engines “screen scraping”). Want
your own news aggregator and portal, hey ?
I will use the following products : Plone + ZEO + CMFNewsFeed +
CMFWebAgent. Personnally, I installed them on a Windows 2000 platform.
And I have to say that this installation process is rather long and
tricky… I would welcome a Plone distribution that would include the
right version of ZEO and the configuration of Plone as a ZEO client. It
should also include the XML library needed for CMFNewsFeed.
- Download everything you will need
- Download Plone 1.0.1 from http://prdownloads.sourceforge.net/plone/Plone-1.0.1.exe?download
- Download ZEO in its latest CVS version from within the ZODB
3.3.1 CVS at
http://cvs.zope.org/ZEO/ZEO/ZEO.tar.gz?tarball=1&only_with_tag=ZODB3-3_1-branch (because ZEO 2.0 cannot run with Zope 2.6.x which is included
in Plone 1.0.1) - Download CMFNewsFeed 1.1 and CMFWebAgent 1.0 from
http://sourceforge.net/projects/collective - Download the PyXML library, version 0.8.1 as a tar.gz file at
http://sourceforge.net/project/showfiles.php?group_id=6473 (Note that the 0.8.1 exe versions are specific either to Python 2.1 or to Python 2.2 - Download my plone_conf.zip file which includes some config files
I gathered mainly from CMFNewsFeed distributions I suppose.
- Install, unzip and move everything to its right place
- Install Plone to C:\Plone (do not ask Plone to start
automatically and do not start it manually either) - Add C:\Plone\Python to your environment variable PATH if Plone
installer did not do it - Unzip ZEO to C:\Plone\ZEO
- Unzip CMFNewsFeed to C:\Plone\CMFNewsFeed-r1_1 which you then
rename to C:\Plone\CMFNewsFeed for more ease - Unzip CMFWebAgent to C:\Plone\CMFWebAgent-r0_1 which you then
rename to C:\Plone\CMFWebAgent for more ease - Read C:\Plone\ZEO\docs\ZopeREADME.txt
- Move C:\Plone\ZEO\ZEO to C:\Plone\Zope\lib\python\ZEO
- Unzip PyXML-0.8.1.tar.gz into C:\Plone\PyXML-0.8.1
- Read C:\Plone\PyXML-0.8.1\README
- Within a commandline, go to C:\Plone\PyXML-0.8.1 and do a
“python setup.py build”. You will run into some erros, but that’s not
that important for our purpose - Move all the files and directories included in
C:\Plone\PyXML-0.8.1\build\lib.win32-2.1\_xmlplus to
C:\Plone\Python\lib\xml, replacing every existing file (I know it must
be a very dirty way to install this but I don’t know an easy way to do
it better since I did not want to install a standalone python
distribution outside Plone) - Unzip plone_conf.zip file to C:\
- Install Plone to C:\Plone (do not ask Plone to start
- Startup ZEO and Plone
- Execute C:\Plone\1.start_zeo.bat
- Wait a few seconds (or more…) and check
C:\Plone\Data\var\ZEO_Server.log to see if ZEO properly started (you
should see several lines explaining that ZEO created a StorageServer,
and so on) - Set Plone’s emergency user with the Windows “Plone
controller” - Execute C:\Plone\2.start_plone.bat
- Wait a few seconds (or more…) and check
C:\Plone\Data\var\debug.log to see if Zope (Plone) properly
started - Bring your browser to http://localhost then to
http://localhost:8080/manage to see if Plone works properly and you can
log into Plone management interface as your emergency user. It should
work (well, it works for me…).
- Setup and start CMFNewsFeed as a ZEO client
- Go to http://localhost and register as a new user called
“newsfeed” : this will be the username CMFNewsfeed uses for retrieving
content from the Net and posting it into Plone. - Log into http://localhost:8080/manage with your emergency user
and give “newsfeed” the “Reviewer” role (go into Plone/acl_users, click
on newsfeed and give it the Reviewer role). I suppose newsfeed should
still keep its “Member” role. - Open C:\Plone\Data\getnews.conf and set the member_name variable
as ‘newsfeed’ (the default value is ‘rssfeeder’) - Set a new RSS source as follow : go to http://localhost and
login as ‘newsfeed’, click on the “my folder” link (in the navigation
bar), ; then create a new folder : you select Folder in the list box
and click on the “add a new element” button and fill in the form
(“my_slashdot_source” as id/name and “My Slashdot RSS source” as
title), validate. Then create a link into this new folder. It should be
named ‘RDF’ (mandatory), it could be titled ‘the Slashdot RSS link’ and
its URL points to the RSS file you want to be retrieved
(http://slashdot.org/slashdot.rdf). - Hack CMFNewsFeed to adapt it to Plone : open
C:\Plone\CMFNewsFeed\CMFFeedApp.py and replace ‘Portal Folder’ with
‘Plone Folder’. Still in CMFFeedApp.py, find the line containing
“_edit” and, just below it, comment out the “description=description,”
line then add a “new_link.description = description” line below the
“new_link.title = title” - Open a commandline and get to C:\Plone\Data then execute this :
“python C:\Plone\CMFNewsFeed\getnews.py” (or just run the 3rd .bat file I prepared in my plone_conf.zip file - You should find your new news items under the “my_slashdot_source” folder. If they don’t display (but the getnews.py command line affirmed they were retrieved), it may be a ZEO cache issue. Quick and bad fix for this is restarting your plone. But, of course, you may have to fix your zope.conf file in order to avoid this kind of issue. For the moment, I don’t know how to fix that. I’ll try later.
- Schedule a ‘cmd.exe “C:\Plone\Python\python C:\Plone\CMFNewsFeed\getnews.py”‘ to run once a day (never run it more frequently than 30 minutes or you may be banned by the news sources) so that your news are fresh everyday. You may use a Windows version of cron to do this.
- Go to http://localhost and register as a new user called
- Setup and start CMFWebAgent as a ZEO client
- OK. You are a big boy/girl now. So try and follow similar steps to make CMFWebAgent run. You may have to fix some CMFWebAgent search engines scripts since their web interface may have changed since CMFWebAgent (and this doc) were released. Dirty hacks on sight…
- Last but not least : please drop a comment here to tell me if this works for you, how hard it was to setup and so on… Or maybe you know of a better way to make these damned CMFstuffagents work !
Tests gratuits de montée en charge
Les technologies de développement les plus populaires
La popularité d’une technologie informatique ne laisse en rien présumer de sa qualité et a fortiori, de son adéquation pour un projet donné ou un contexte donné. Néanmoins, elle influence sans doute le coût du recrutement de ressources humaines vaguement compétentes : il est plus facile de trouver sur le marché un développeur prétendant “connaître Java” qu’un développeur prétendant “connaître Eiffel”. Plusieurs sites Web donnent un aperçu de la popularité relative de ces technologies dans les offres d’emploi.
Le Gartner Group et l’IM
Selon le Gartner Group, en 2002, la plupart des entreprises ont massivement adopté la messagerie instantanée (IM) en tant que procédé de communication, “malgré la résistance du département informatique”. Le marché des systèmes d’IM pour l’entreprise commencerait à se consolider vers 2004 et, en 2006, 75% des éditeurs actuels de messagerie instantanée pourraient avoir été rachetés ou avoir disparu. Le Gartner prévoit également qu’en 2003, l’IETF ne parviendra pas à créer de normes “largement acceptées et commercialement déployables” pour l’interopérabilité des systèmes d’IM. Et les entreprises devront se résoudre à choisir parmi des réseaux d’IM concurrents (et non compatibles). Le Gartner envisage que les gens (ou les applications) apprendront à choisir la meilleure façon de communiquer en fonction de l’urgence du message et du mode de travail de l’expéditeur et du destinataire. En attendant et en l’absence de conseils, “les utilisateurs se trouveront rapidement confrontés à une mauvaise utilisation et à la surcharge de la messagerie instantanée”… Et ces mauvais usages “risquent d’être encore pires que la surcharge du courrier électronique”. Les conseils du Gartner pour se préparer à cet avenir : évaluer l’ampleur avec laquelle l’IM grand publique est utilisée dans l’entreprise et à quelles fins, inclure l’IM dans les règles d’usages de l’informatique (chartes utilisateurs), définir des bonnes pratiques…
De beaux jours en perspective pour Jabber.
Servez-Vous?
Besoin d’inspiration pour vous rendre utile près de chez vous ? Envie de faire connaître une initiative sympathique dont vous avez entendu parler ? Allez sur Servez-Vous?, fournisseur officiel de projets du coin…
Opensourcez vos développements
Les logiciels opensource sont de plus en plus utilisés dans les grandes entreprises. 54% des DSI prévoieraient qu’en 2007, leurs principales plate-formes seront opensource.
Comme l’indique cet article du magazine Computerworld, certaines grandes entreprises adoptent même le modèle économique des développements opensource pour réduire les coûts de leur informatique. Après l'”outsourcing”, l’ “opensourcing” consiste donc à publier sous licence opensource les développements menés en interne pour améliorer ou corriger un logiciel libre. Cela évite d’avoir à maintenir, en interne, une version spécifique du logiciel et permet donc de partager les coûts de développement avec d’autres entités. Cela permet également à l’entreprise de gagner en légitimité dans les communauté de développement et de pouvoir ainsi influencer de manière significative leurs stratégies de développement. La contribution des entreprises ne consiste pas seulement en code informatique mais également en documentation ou en graphisme, ressources qui font défaut pour de nombreux logiciels libres.
Mozilla en tant que debugger de site Web
Mozilla dispose de fonctionnalités intéressantes pour être utilisé en tant que débuggueur de site Web (JavaScript, gestion des cookies, …). Des experts, sur Slashdot, donnent leurs points de vue sur la question.
Propriété intellectuelle ?
The New Economist du 25 janvier publie un article sur les problématiques de propriété intellectuelle dans le cadre de l’Internet. Cet article rappelle que la vocation du droit d’auteur a été d’établir un équilibre entre la garantie d’un accès public aux flux des idées et l’incitation à la création et la distribution de travaux intellectuels par la concession de monopoles économiques temporaires et limités sur l’exploitation de ces travaux. A l’heure de l’Internet, cet équilibre semble être rompu : les industriels du contenu prétendent être spoliés de leur propriété (intellectuelle) et les défenseurs des consommateurs et des libertés individuelles dénoncent l’asphyxie de créativité entraînée par le comportement des dits-industriels.
Pour rétablir le juste équilibre, The New Economist cite plusieurs suggestions de modifications substantielles du droit d’auteur :
- abandonner toute velléité de contrôle des copies de contenu et accorder, par la loi, aux créateurs de contenu, un droit exclusif pour l’exploitation commerciale de leurs travaux ; mais cette option pourrait entraîner de nombreux litiges portant sur la définition du caractère commercial d’une exploitation de travaux intellectuels et sur le caractère exclusif de ce droit
- garantir la gratuité de l’accès à tout contenu mais taxer l’accès à l’Internet et aux équipements électroniques, reverser cette taxe aux distributeurs de contenus et ajuster le montant de cette taxe à une évaluation globale de la consommation de ces contenus ; mais cette option impliquerait des mesures gouvernementales très importantes, l’impossibilité d’une différenciation des distributeurs par les prix et, surtout, une taxation importante des équipements qui rendent possibles la révolution numérique
- l’obligation pour les auteurs de déposer leur demande de droit d’auteur sur un nouveau contenu, de renouveler cette demande tous les cinq ans avec une limite du nombre de renouvellements et l’obligation d’exploiter ce droit par une distribution commerciale (faute de quoi il tombe dans le domaine public) ; cette option semble la plus réaliste, même si elle implique également une forte intervention des Etats, et est émise par un professeur de droit de l’université de Stanford, Mr Lessig.