[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