Document Actions

Repoze

Note: Return to tutorial view.

Repoze è un insieme di tecnologie che rendono Zope interfacciabile con lo standard WSGI, per uno sviluppo di applicazioni web ottimale.

Introduzione

Qualche informazione in più riguardo WSGI e Repoze...

Esiste un gran numero di framework per lo sviluppo di applicazioni Web basati su Python, tra cui Zope.

Web Server Gateway Interface (WSGI) propone una semplice ed universale interfaccia  per garantire l'interoperabilità tra web server e framework per lo sviluppo di applicazioni web.

Repoze, introduzione

Repoze non è altro che uno strato software che permette a Zope di interfacciarsi con un ambiente WSGI e quindi permette il riutilizzo di altri componenti Python WSGI. Quindi Repoze permette allo stesso momento di combinare la maturità e potenza dell'application server Zope con la flessibilità che WSGI offre.

Vantaggi

 Repoze offre una serie di vantaggi, ovvero:

  • consente agli sviluppatori Python che utilizzano altre piattaforme di accedere selettivamente alle funzionalità offerte da Zope in un ambiente WSGI
  • aiuta gli sviluppatori Zope ad integrare le loro applicazioni in un ambiente WSGI

Problemi

Tra le numerose funzionalità offerte da Zope, molte sarebbero utili da integrare in altre applicazioni Python WSGI, come ad esempio il sistema di gestione delle transazioni, virtual hosting, marshalling, sicurezza, ecc. Attualmente non è semplice per sviluppatori Python che non conoscono bene la piattaforma Zope utilizzare queste feature, perché magari non sono abbastanza modulari ed usabili.

Nonostante lo sviluppo di applicazioni Python in ambiente WSGI stia diventando uno standard de facto, è ancora abbastanza difficile accedere a Zope (ed in particolare Zope 2) tramite un WSGI server.

Soluzioni

Una soluzione possibile potrebbe essere Repoze in una reimplementazione delle funzionalità Zope come librerie Python e WSGI middleware. Repoze, inoltre, riutilizza server e middleware WSGI esistenti dove possibile; le parti di Repoze che costituiscono delle funzionalità base di Zope possono essere usate o ignorate in contesti di utilizzo non-Zope.

Requisiti software e limitazioni

I package nel namespace repoze. richiedono setuptools per essere installati; inoltre nessun modulo sotto il namespace repoze è stato testato sotto Windows (è stato testato solo sotto sistemi UNIX-like).

Dipendenze

Repoze dipende pesantemente dal tool Paste di Ian Bicking, da setuptools di Phillip Eby e naturalmente dalle specifiche WSGI sempre scritte da Phillip Eby. Inoltre Repoze reimplementa e riusa diverse tecnologie facenti capo a Zope.

Licenza

Repoze è rilasciato sotto una licenza di tipo BSD. Altre parti non originali sono rilasciate sotto la licenza ZPL (sempre di tipo BSD).

Risorse in rete

Contribuire

Essendo un prodotto open source, potete contribuire al miglioramento di questo software spedendo delle patch alla repoze-dev maillist o effettuando delle segnalazioni nel bug tracking system. Le patch mandate in lista potrebbero essere perse, quindi è meglio utilizzare il sistema di bug tracking disponibile.

Inoltre, per poter accedere al codice di Repoze in qualità di sviluppatore, dovrai accettare le seguenti condizioni.

Integrare Repoze in Plone

http://repoze.org/quickstart.html http://repoze.org/development.html

Partenza rapida con repoze!

Grazie ad easy_install è facile creare un ambiente repoze-enabled perfettamente configurato, comprese tutte le dipendenze.

In questa guida vedremo come ottenere facilmente un ambiente Plone basato su Repoze, mentre per ottenere sempre con la stessa facilità un ambiente Zope2 o Grok con easy_install si faccia riferimento al seguente tutorial.

Utilizzare repoze.plone

L'applicazione repoze.project aiuta a creare facilmente un ambiente basato su repoze.

I seguenti comandi creano un ambiente repoze.plone, inclusi Plone 3.0.1 e tutte le sue dipendenze. Assumendo che tu abbia già installato setuptools, non rimane altro che digitare:

$ bin/easy_install -f http://dist.repoze.org/ repoze.project
$ bin/repozeproject repoze.plone --path=/tmp/plone

Una volta che il comando repozeproject ha terminato l'esecuzione, puoi lanciare il server appena creato eseguendo:

$ cd /tmp/plone
$ bin/addzope2user admin admin # create manager account
$ bin/paster serve etc/zope2.ini

Ignora eventuali warning dopo l'esecuzione dei comandi addzope2user e paster. Il server solitamente è raggiungibile alla porta 8080. Visitando infatti l'URL "http://localhost:8080/", vedrai la pagina di benvenuto di Zope. A questo punto non devi far altro che loggarti con l'utente admin (password: admin), creare un portale e utilizzarlo come un normale Plone qualsiasi.

Le azioni che vengono intraprese digitando i comandi illustrati appena qui sopra sono le seguenti:

  • Un'installazione Python "virtuale" viene creata nella directory "/tmp/plone". Quindi i package installati non andranno in conflitto con quelli contenuti nella cartella site-packages del Python di sistema.
  • Le dipendenze setuptools e virtualenv saranno scaricate ed installate automaticamente nella cartella site-packages nel Python "virtuale" appena creato, come tra l'altro fatto anche per lo stesso repoze.project .
  • Tutti i package Python che dipendono da repoze.plone saranno automaticamente scaricati, compilati ed installati sotto forma di egg Python, sempre nella directory site-packages del nostro Python virtuale. Per finire, lo stesso package "repoze.plone" sarà installato sotto forma di "development egg".
  • le cartelle Products, logs, vared etc saranno create nell'istanza appena creata. La cartella Products è il posto in cui posizionare i prodotti Zope 2 per essere installati; logs conterrà i log di Zope; var contiene come al solito il Data.fs dello ZODB, mentre etc contiene i file di configurazione dell'istanza di Zope.
  • Degli esempi di file di configurazione inoltre saranno installati nella cartella etc dell'istanza, tra cui:
    • zope2.ini, un file di configurazione Paste utilizzato per configurare l'ambiente WSGI;
    • zope.conf, il classico file per la configurazione dell'istanza Zope;
    • site.zcml, la radice di tutti i file ZCML di Zope.

Installazione senza setuptools

Se non hai già installato setuptools, puoi provare lo stesso Repoze. In un ambiente UNIX con installati gcc e le librerie python-dev, è necessario seguire i seguenti passi:

$ wget http://dist.repoze.org/repoze.project-0.0.4.tar.gz
$ tar xzf repoze.project-0.0.4.tar.gz
$ cd repoze.project-0.0.4/
$ /path/to/bin/python setup.py install

A questo punto non devi far altro che eseguire lo script repozeproject come mostrato nell'esempio precedente.