02.07.2013 Views

article de presse - Cap Data Consulting

article de presse - Cap Data Consulting

article de presse - Cap Data Consulting

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

T echnologie<br />

De Zope 2 à Zope 3<br />

Zope est un serveur d'application complet, écrit principalement en Python, et en C pour certaines<br />

parties, disponible comme logiciel libre <strong>de</strong>puis 1998, date à laquelle Digital Creations,<br />

la société à l'origine du produit, l'a mis à disposition <strong>de</strong> la communauté. Zope a rapi<strong>de</strong>ment<br />

évolué vers une version 2,sortie en 1999.Le succès <strong>de</strong> cette plate-forme a été immédiat,aussi<br />

bien chez les intégrateurs que chez les développeurs, grâce à <strong>de</strong> nombreux atouts.<br />

Caractéristiques <strong>de</strong> Zope<br />

Le premier atout <strong>de</strong> Zope est bien évi<strong>de</strong>mment<br />

l'utilisation du langage Python, qui rend le<br />

développement très agile, grâce à une syntaxe<br />

concise et claire, et à <strong>de</strong>s types <strong>de</strong> base très<br />

puissants. Zope propose un système <strong>de</strong> publication<br />

d'objets. Chaque objet stocké sur le serveur<br />

peut être publié grâce à une traduction <strong>de</strong><br />

l'URL, saisie par un chemin dans une arborescence<br />

d'objets représentant le site. Ce mécanisme,<br />

appelé traversal, parcourt l'arbre stocké<br />

sur le serveur. Pour stocker ces objets, Zope<br />

possè<strong>de</strong> un système transparent <strong>de</strong> persistance<br />

transactionnelle d'objets appelé ZODB<br />

(Zope Object <strong>Data</strong>Base). Ce système est équivalent<br />

à Caché ou db4o.<br />

Zope fournit également un système <strong>de</strong> template<br />

basé sur XML, le ZPT (Zope Page<br />

Template), qui permet d'enrichir une <strong>de</strong>scription<br />

<strong>de</strong> page HTML. Le ZPT introduit un système<br />

<strong>de</strong> macros et quelques fonctionnalités<br />

<strong>de</strong> transformation <strong>de</strong> façon similaire à XSLT.<br />

Le cas d'utilisation le plus fréquent du<br />

moteur ZPT est bien sûr la génération HTML,<br />

mais il peut être employé pour d'autres types<br />

<strong>de</strong> markups. Un système <strong>de</strong> greffons est proposé,<br />

et permet au développeur <strong>de</strong> créer <strong>de</strong>s<br />

produits pour enrichir les fonctionnalités du<br />

serveur. Ces produits définissent en général<br />

<strong>de</strong>s nouveaux types d'objets publiables,<br />

accompagnés <strong>de</strong> vues décrites en ZPT.<br />

Ainsi, pour développer un produit Foire Aux<br />

Questions, on peut créer un type d'objet FAQ, et<br />

un type Question. La FAQ étant représentée par<br />

une instance <strong>de</strong> FAQ contenant un certain nombre<br />

d'instances Question, qui contiennent ellesmêmes<br />

le texte <strong>de</strong>s questions et <strong>de</strong>s réponses.<br />

Enfin, un <strong>de</strong>s atouts majeurs est la licence:<br />

Zope est un logiciel libre, distribué sous licence<br />

ZPL (équivalent BSD, compatible GPL). Le<br />

système propose, grâce à cette ouverture, un<br />

modèle <strong>de</strong> développement communautaire<br />

appelé fishbowl process. Ce modèle, similaire<br />

à ce qui est pratiqué dans la plupart <strong>de</strong>s projets<br />

libre <strong>de</strong> cette envergure, donne la possibilité<br />

à chacun <strong>de</strong> contribuer au développement.<br />

Cette approche est basée sur le respect <strong>de</strong><br />

quelques pratiques agiles, comme l'écriture et<br />

la discussion par la communauté <strong>de</strong> spécifications<br />

minimums, et la programmation dirigée<br />

par les tests. Pour consoli<strong>de</strong>r le développement<br />

pratiqué à distance, les développeurs<br />

les plus actifs se réunissent régulièrement<br />

dans <strong>de</strong>s sprints, sortes <strong>de</strong> journées <strong>de</strong> développement<br />

intensif.<br />

Par ces principes, Zope a acquis <strong>de</strong> manière<br />

structurée un panel complet <strong>de</strong> fonctionnalités.<br />

En outre, il existe plusieurs centaines <strong>de</strong> produits<br />

d'extensions disponibles sur le site <strong>de</strong> Zope.<br />

Le Content Management Framework<br />

Le CMF (Content Management Framework), initié<br />

par Digital Creations, <strong>de</strong>venu Zope Corp, est<br />

un ensemble <strong>de</strong> produits permettant <strong>de</strong> fournir<br />

un nouveau paradigme <strong>de</strong> programmation,<br />

CPS en action<br />

Programmez n°85 58 avril 2006<br />

orienté vers la gestion <strong>de</strong> contenu. Il définit,<br />

entre autres, la notion <strong>de</strong> vue, <strong>de</strong>s types <strong>de</strong><br />

contenu et un système <strong>de</strong> workflow. Le CMF a<br />

remporté un franc succès auprès <strong>de</strong>s développeurs<br />

: il a notamment été choisi par les projets<br />

Zope majeurs comme le CMS (Content<br />

Management System) Plone, et Nuxeo CPS<br />

(plate-forme complète <strong>de</strong> gestion documentaire<br />

et <strong>de</strong> travail collaboratif).<br />

Développement <strong>de</strong> Zope 3 :<br />

Pourquoi Zope 3 ?<br />

Parallèlement à Zope 2, la communauté a commencé<br />

à réfléchir au développement <strong>de</strong> Zope 3,<br />

en essayant <strong>de</strong> prendre un recul constructif.<br />

Une <strong>de</strong>s critiques récurrentes <strong>de</strong>s développeurs<br />

à l'égard <strong>de</strong> Zope 2 est son éloignement <strong>de</strong><br />

l'esprit <strong>de</strong> Python. En effet, le mécanisme d'extension<br />

par produits oblige le développeur à<br />

reproduire une quantité importante <strong>de</strong> boilerplate<br />

co<strong>de</strong>, c'est à dire du co<strong>de</strong> « magique »,<br />

repris d'un produit à l'autre, qu'il faut obliga-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!