[Zope-it] Perche' Zope

Carrer Yuri yurj@alfa.it
Fri, 26 Jul 2002 17:20:31 +0200


Salve,

vi invio una serie di considerazioni sul perche' utilizzare Zope per lo=20
sviluppo di una applicazione web-oriented.

Fate i vostri ocmmenti e/o correzioni.

In particolare mi interessano confronti con Java (e ambienti connessi).=20
Mi hanno detto di un post nella mailing list che fa il confronto fra=20
vignette, zope e php, qualcuno me lo puo' inviare ? :) Grazie.

-------

Piattaforma per il prototipo

Intendo utilizzare la piattaforma Zope (http://www.zope.org) per lo=20
sviluppo del prototipo, per i seguenti motivi:

- E' un prototipo, quindi deve evidenziare la fattibilita' e=20
l'interazione con l'utente - cliente.

L'utilizzo di Zope permette di sviluppare in tempo rapido interfacce,=20
ricerca, gestione file, autenticazione e autorizzazione, utile quando si=20
deve sviluppare un modello.

- Fornisce un supporto nativo per i metadati e la loro gestione.

Zope associa ad ogni oggetto una collezione di proprieta', esse stesse=20
oggetti. Queste propriet=E0 descrivono l'oggetto e possono essere=20
utilizzate per determinare l'autore, il titolo, i diritti sull'oggetto=20
digitale. Anche le proprieta' sono soggette alle politiche di sicurezza=20
integrate nell'oggetto.

- Rapida e semplice protopizzazione che garantisce il linguaggio Python.

La caratteristica di linguaggio ad oggetti e di risoluzione dei nomi e=20
proprieta' degli oggetti permette di creare rapidamente classi che=20
definiscono i comportamenti degli attori in gioco, senza continue=20
ricompilazioni, anzi permette di sostituire parti di codice mentre il=20
programma e' in esecuzione.

- Supporto vasto nella comunita' open source.

La sola comunita' italiana conta 600 iscritti attivi in meno di un'anno,=20
quella internazionale alcune decine di migliaia, con centinaia di=20
prodotti finiti basati su Zope rilasciati all'anno. In particolare=20
segnalo PAFlow, il primo software libero per il protocollo informatico e=20
la gestione dei flussi documentali in una Pubblica Amministrazione;=20
PAFlow =E8 un software libero, nato da un progetto tra l' AIPA (Autorit=E0=
=20
Informatica nella Pubblica Amministrazione) e la Scuola Superiore=20
Sant'Anna di Pisa per la sperimentazione delle indicazioni fornite=20
dall'AIPA stessa per la realizzazione del nucleo minimo di protocollo e=20
dell'interoperabilit=E0 dei sistemi di protocollo nelle pubbliche=20
amministrazioni.

- Semplicita' estrema del codice.

Il codice risulta compatto e permette di ben documentare le funzioni=20
fondamentali ed essere ripreso da terze persone in maniera efficace e=20
rapida. Zope utilizza degli oggetti per le funzioni base e questo=20
permette di non replicare codice, limitandosi a scrivere quello=20
necessario all'applicazione stessa. Sicurezza, gestione file, versioni,=20
proprieta' sono gia' implementati e pronti all'uso. Con poche righe si=20
possono sviluppare intere applicazioni, e sopra di queste altre ancora.=20
Ad esempio ZEO (vedi' scalabilita') e' stato scritto in una settimana.

- Semplice estensione delle funzionalita' che si hanno con Zope.

E' immediato cambiare, ad esempio, la forma di memorizzazione, senza=20
cambiare in pratica il codice, in maniera trasparente. Gli oggetti=20
possono essere memorizzati in un database esterno invece che su disco, o=20
in maniera distribuita in rete, in modo trasparente all'applicazione.
- Modello di sicurezza esplicito.

Zope ha la sicurezza in mente, permette per ogni oggetto di definire una=20
flessibile politica di sicurezza, spesso senza la necessita' di codice=20
suppletivo per i controlli di sicurezza.

- E' basato su un linguaggio (Python) object oriented.

Esistono ambienti di sviluppo per Python che permettono, tramite=20
un'estensione, di creare applicazioni che funzionano sia sul computer=20
locale che sul Web, senza particolari adattamenti.

- Database nativo object oriented.

Il sistema di memorizzazione nativo di Zope e' un database ad oggetti,=20
memorizzo dunque non solo i dati, ma anche i metodi e le proprieta' di=20
un oggetto. Questo, unito alle sue cartatteristiche transazionali, e=20
alla coerenza dei dati tipica dei database ad oggetti, solleva lo=20
sviluppatore da errori nella memorizzazione e coerenza dei dati.

- Scalabilit=E0.

Zope ha un prodotto, ZEO, che permette di distribuire il carico di=20
lavoro su piu' macchine, in modo trasparente e aumentando la capacita'=20
complessiva del sistema di non risentire dei guasti.

- Portabilit=E0.

- Sia i dati, che tutte le funzionalita' sono trasportabili in=20
piattaforme hardware/software diverse che supportino Python (scritto in=20
C), senza modifiche. Posso scrivere una applicazione in una piattaforma=20
e distribuirla ad ogni altra piattaforma tramite un formato comune.

- E' un software Open Source:

Vantaggi:

Vantaggi economici dell'impiego del software libero nella P.A.:

- Minori costi di acquisto delle licenze rispetto ai software proprietari
- Libert=E0 di duplicazione e modifica del software in uso

Vantaggi del software libero in termini di sicurezza

- Trasparenza
- Possibilit=E0 di apportare correzioni autonomamente
- Possibilit=E0 di reperire aggiornamenti e correzioni per software liber=
o=20
di grande utilizzo

Vantaggi dal punto di vista dell'efficienza

- Possibilit=E0 di implementazioni e miglioramenti personali
- Per i software di grande utilizzo, aggiornamento frequente con i pi=F9=20
recenti algoritmi disponibili

Svantaggi

- Esigenza di avere all'interno dell'amministrazione personale con=20
conoscenze adeguate
- Esigenza di affidarsi a partner qualificati, dinamici e preparati

Nota: puo' essere un vantaggio a lungo termine dover ricorrere a partner=20
qualificati :)

Esempi nella pubblica amministrazione: www.abetone.org, www.paflow.it