Zope X3 est une réécriture du serveur d'applications web objet Zope visant à proposer une nouvelle génération de technologies inspirées des motifs de développement modernes. Le coeur de Zope X3 est "l'architecture à base de composants" dont le principe de base est le respect des interfaces. Elle permet d'augmenter la qualité logicielle dans la mesure où chaque composant est conforme à des interfaces qui sont définies, et dont le résultat est prédictible, notamment via des tests unitaires.
Parmi les nouveautés de Zope X3, on trouve :
- une meilleure séparation du code et de la configuration grâce au langage ZCML ;
- une nouvelle version de la base de données "objet" de Zope, ZODB 3.3, plus à même de gérer des sites à haut trafic ;
- une meilleure documentation.
NdM : Un énorme merci à l'équipe d'Ingeniweb, à l'initiative notamment de Zopera, et qui a rédigé cette dépêche, ainsi qu'à ArBaDaCarBa, Nicolas Évrard et Baptiste Simon pour leurs propositions. Zope X3 est une plateforme expérimentale : la plate-forme Zope 2.0 reste celle de référence. La version 3.0 de Zope intégrera la plupart des nouveautés de Zope X3, mais cette séparation facilitera grandement la migration.
Les nouveautés de Zope X3 plus en détail :
1. L'architecture de composants. Elle met en oeuvre des objets qui respectent des interfaces : les composants.
Le principal bénéfice en terme de productivité pour les développeurs de composants vient du fait qu'il est possible de définir un nouveau composant en adaptant un composant existant à une interface donnée grâce à un composant d'adaptation ("Adapteur"). Comparé au mode de développement de Zope 2, il y a donc plus de réutilisabilité et moins de code à écrire.
Les types de composants techniques participant à l'architecture sont : les "composants de contenu", les Vues, les Adapteurs, les Outils, les Utilitaires, et les Services.
Les autres apports de l'architecture sont :
- la séparation du code et de la configuration logicielle grâce au langage ZCML (basé sur XML) ;
- les schémas pour la gestion de listes de champs avec génération des formulaires (grâce aux widgets) à la manière du produit Formulator pour Zope 2.
Le serveur est livré avec un certain nombre de composants utilitaires importants : les interfaces, les permissions, les rôles, les gestionnaires de cache, le négociateur de langue, les utilitaires de création d'objets (factories), les connecteurs SQL, l'utilitaire de livraison de courriel, etc.
2. Zope X3 utilise la dernière version stable de la base de données "objet" de Zope, ZODB 3.3. Cette version, entre autres, grâce à la technologie MVCC (Multi-Version Concurrency Control) lève les limitations en termes de conflits de lecture des versions précédentes, de manière à permettre la gestion correcte de sites à haut trafic.
3. Enfin, pour faciliter le travail des développeurs, la documentation de l'API, extraite à partir du code source, est directement accessible.
Quelle plate-forme Zope de production à l'horizon ?
Zope X3 est une plate-forme expérimentale. La plate-forme Zope 2 reste celle sur laquelle Zope Corp. et le reste de la communauté mettra les efforts afin de continuer à fournir le meilleur service possible. Le long terme verra arriver une version 3.0 de Zope intégrant la plupart des nouveautés de Zope X3, mais l'évolution sera progressive de manière à garantir la pérennité des investissements des utilisateurs de Zope.
Cette phase de migration progressive sera également volontaire. Elle a en fait déjà commencé avec la préparation de la version 2.8 de Zope. La prochaine version de Zope, déjà en phase alpha, intègre la ZODB 3.3 et permet le support du nouveau type de classes introduit par Python 2.3 (new-style classes) pour les classes d'objets Zope.
Une fois le passage à Zope 2.8 garanti, les différents modules de l'architecture de composants de Zope X3 pourront être ajoutés, probablement dans Zope 2.9.
Pour découvrir Zope X3 :
- Téléchargez Zope X3 pour Windows ou Linux/Unix,
- Télécharger des modules d'extension fournissant des applications "exemples" ou des outils tels que les connecteurs SQL.
Aller plus loin
- L'annonce (3 clics)
- Le site du projet (2 clics)
- Feuille de route vers Zope 3 (5 clics)
- Zopera (4 clics)
- Plone (2 clics)
- Ingeniweb (3 clics)
# mon commentaire
Posté par TImaniac (site web personnel) . Évalué à 6.
Enfin le but était peut être de passer en première page de linuxfr, qui comme chacun le sait est limité aux versions à chiffre rond ;)
[^] # Re: mon commentaire
Posté par Manuel Menal . Évalué à 5.
[^] # Re: mon commentaire
Posté par TImaniac (site web personnel) . Évalué à 4.
En gros c'est une version pas finie (puisque les interfaces évoluent) finie. Mais j'ai un peu peur pour le support de ce genre de version "finale" : ils vont proposer des maj pour toutes les version expérimentales finales ? J'espère que y'en a pas trop :)
[^] # Re: mon commentaire
Posté par TImaniac (site web personnel) . Évalué à 2.
[^] # Re: mon commentaire
Posté par Manuel Menal . Évalué à 3.
C'est en tous cas la façon dont je le vois, et c'est une procédure de développement que j'ai souvent vu mise en oeuvre et mis en oeuvre moi-même dans des projets orientés composants.
[^] # Re: mon commentaire
Posté par TImaniac (site web personnel) . Évalué à 2.
M'enfin quand on voit "Zope X3 en version final" on se doute vraiment pas qu'on a entre les mains une plateforme pas du tout fini et qui n'assure pas la compatiblité avec l'existant. Je dirais presqu'il y a tromperie sur la marchandise :) Heuresement c'est bien explicité sur la première page, mais je suis sûr que des daissideure vont se prendre au piège et des journaleux faire des articles avec ce même titre accrocheur : Zope 3 en version finale (le journaleux enlèvera le X qui n'a pas trop d'intérêt pour lui)
# L'hébergement
Posté par Julien Duponchelle (site web personnel) . Évalué à 5.
[^] # Re: L'hébergement
Posté par Jean-Max Reymond (site web personnel) . Évalué à 3.
consommateur en ressources ? ressource CPU, mémoire, disque dur ?
[^] # Re: L'hébergement
Posté par Elrik de Melnibone . Évalué à 3.
[^] # Re: L'hébergement
Posté par tgl . Évalué à 4.
Ah, les dures lois du marché...
[^] # Re: L'hébergement
Posté par Julien Duponchelle (site web personnel) . Évalué à 2.
[^] # Re: L'hébergement
Posté par Gniarf . Évalué à 1.
[^] # Re: L'hébergement
Posté par alexissoft . Évalué à 1.
En fait faut créer un dossier avec les deux options cochées, et ensuite on va dans le dossier avec /manage/ après, un joli vhost monster et des rewrite rules apache et ça rox.
[^] # Re: L'hébergement
Posté par Julien Duponchelle (site web personnel) . Évalué à 2.
[^] # Re: L'hébergement
Posté par davewave . Évalué à 2.
Objectis, c'est 6.274 sites Zope ce soir, dont 3.290 sites Plone 2. Le tout gratuit bien sûr.
L'argument "c'est plus cher que PHP" tombe en partie, et l'écart qui restera entre l'hébergement d'une appli Plone et d'un SPIP par exemple, tiendra au fait qu'un serveur d'application, c'est plus lourd qu'un environnement de script. Et plus puissant (ZEO, pour les intimes, est packagé en standard à partir de Zope 2.7. C'est un répartiteur de charge applicatif).
http://www.objectis.org(...)
[^] # Re: L'hébergement
Posté par Julien Duponchelle (site web personnel) . Évalué à 1.
[^] # Re: L'hébergement
Posté par odeckmyn . Évalué à 1.
# Des interfaces en python
Posté par Philippe F (site web personnel) . Évalué à 5.
Je serai curieux de voir commen Zope reussit a rendre ces interfaces robustes.
[^] # Re: Des interfaces en python
Posté par Sébastien Douche . Évalué à 3.
- Zope 3
http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/Fr(...)
- Twisted
http://twistedmatrix.com/(...)
- PyProtocols
http://peak.telecommunity.com/PyProtocols.html(...)
[^] # Re: Des interfaces en python
Posté par Sébastien Douche . Évalué à 2.
http://svn.zope.org/Zope3/trunk/src/zope/interface/README.txt?rev=2(...)
Le README sur les interfaces dans Zope3.
[^] # Re: Des interfaces en python
Posté par didbaba . Évalué à 3.
Il existe aussi quelques PEP pour intégrer cela dans Python. http://www.python.org/peps/pep-0245.html(...) par exemple. Cela permettra peut-être l'unification, et en même temps la non évolutivité.
[^] # Re: Des interfaces en python
Posté par Gabriel . Évalué à 1.
ça m'étonne parce qu'un des mantras des javaistes et autres personnes est: Coder des interfaces pas des classes. ça permet de te libérer de l'implémentation. C'est même devenu pour beaucoup plus caractéristique de l'approche objet que l'héritage.
Est-ce qu'on parle de la meme chose?
[^] # Re: Des interfaces en python
Posté par Philippe F (site web personnel) . Évalué à 4.
On peut citer plusieurs caracteristiques qui "compensent" ce probleme:
1. l'interface n'est pas tout, il faut une suite de test pour valider des composants et donc s'appuyer sur des interfaces plutot que sur des suites de tests conduit a diminuer la qualite de l'implementation. Enfin ca, c'est si tu compenses ton absence d'interface par une bonne suite de test.
2. Ecrire des suites de tests en python est tres tres facile. Sa caracteristique dynamique fait qu'on peut facilement substituer un objet a tester par un autre qui lui va verifier qu'il est appele correctement.
Apres avoir lu les quelques liens, je ne suis pas convaincu. Le systeme permet de dire que tu reponds a une interface donnee, mais il ne permet pas en revanche de valider qu'un objet repond a l'interface qu'il indique. Ca me parait moins strict que ce que je souhaiterai niveau test. Mais je n'ai fait que survoler les liens, donc je peux me tromper.
# Un autre lien
Posté par plagiats . Évalué à 3.
http://zopeur.org/(...)
# Espoir
Posté par dilbert . Évalué à 3.
SI maintenant on me dit que la doc est à jour, alors...vivement que des mentors tracent un chemin dans cette brousse et que des faqs hémergent. Espérons car je trouve en tout cas que c'est un bel outil.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.