Software/ Zope, l'Application Server open source

Software/ Zope, l'Application Server open source

Facciamo la conoscenza di Zope, la risposta open source ad application server commerciali come ColdFusion, Silverstream e Netscape Application Server
Facciamo la conoscenza di Zope, la risposta open source ad application server commerciali come ColdFusion, Silverstream e Netscape Application Server


Zope (Z Object Publishing Environment), oramai arrivata alla versione 2.2, è una piattaforma Open Source basata su oggetti che permette di costruire facilmente applicazioni web potenti, dinamiche e molto performanti. Utilizza un database ad oggetti integrato, studiato appositamente per facilitare il lavoro dei Contents Manager e degli sviluppatori web.

Zope consente ai team di collaborare nella creazione e nella gestione di applicazioni fortemente dinamiche, basate sul web, come Intranet e Portali.

La gestione delle news e dell’e-commerce all’interno di un’applicazione web diventa estremamente semplice grazie agli strumenti offerti nativamente da Zope.
Inoltre attraverso l’ereditarietà delle classi si può gestire in maniera uniforme l’estetica del sito e facilmente se ne può anche effettuare la personalizzazione.

L’architettura di questo prodotto compete con prodotti commerciali come ColdFusion , Silverstream e Netscapès Application Server. In Zope le pagine web sono costruite aggiungendo “oggetti” e modificandone le “Proprietà”. Nel software sono già inclusi diversi oggetti nativi ad uso dei costruttori del sito, ad esempio i Folders (per la gestione omogenea dei dati, analoga alle directory del file system), Documents (per le gestione delle pagine vere e proprie che verranno pubblicate), Images (gestisce le immagini con Anteprima e caricamento) e MailHost (per l’invio e la ricezione delle mail attraverso il protocollo SMTP).

Il sistema è organizzato in Gerarchie di Oggetti, molto simile ad un file system tradizionale. Una semplice gerarchia di oggetti potrebbe includere un folder contenente dei documents i quali a loro volta possono avere delle images, oltre ad eventuali sotto-folder per organizzare ulteriormente i contenuti o delegarli. Tutto questo processo è effettuato attraverso un qualsiasi Browser Web, non c’è bisogno di accedere direttamente al file system.
I documenti di Zope, oltre al codice HTML standard, sono arricchiti di alcuni costrutti di programmazione più evoluti come l’iterazione, i test condizionali, l’inserimento di variabli, gestione di cookies, gestione degli HTTP Headears ecc. Poiché queste funzionalità HTML arricchite sono oggetti, l’utente finale può annullare gli errori fatti: l'”undo” è infatti una funzionalità evoluta offerta dal sistema.

Zope è multipiattaforma, può essere utilizzato su svariati sistemi operativi e Web Server.
Zope attraverso gli Z SQL Methods fornisce accesso a database relazionali esterni. Le applicazioni Zope sono sviluppate su un database nativo orientato agli oggetti. Tutti i dati di Zope sono memorizzati in questo database ad oggetti. I comandi e le query ai database relazionali possono essere usate per pubblicare, memorizzare ed elaborare dati esterni permettendo la creazione di applicazioni WEB basate su database, anche se già esistenti.
Gli Z SQL Methods mantengono aperte le connessioni ai database, fornendo alte performance (non richiedono l’apertura della connessione al database ad ogni richiesta). Attraverso gli Z SQL Methods si possono dunque creare applicazioni complesse che sarebbe estremamente difficile creare con altri ambienti di sviluppo.

Cosa si può fare con Zope?

Zope è leader nel mercato degli application server open-source, perchè offre la soluzione più flessibile per creare e mantenere siti web di grandi dimensioni.
E’ possibile realizzare un’infrastruttura tale da permettere al sito di crescere con le proprie esigenze commerciali, ricorrendo esclusivamente agli strumenti messi a disposizione da Zope.
Per avere un’idea di quelli che Zope è in grado di gestire, è possibile dare un’occhiata ai siti, italiani e stranieri, che già lo utilizzano:
http://www.annuncicasa.com
http://www.tradinglab.com
http://www.arcibaldo.it
http://www.appwatch.com
http://www.stormlinux.com/
http://www.technocrat.net
http://www.punto.it
http://squishdot.org/
http://www.beehive.de/
http://www.winecask.com/

In generale, il modo per sapere se un dato sito è stato creato con Zope è quello di vedere se esiste la directory “manage”, come ad esempio in http://www.annuncicasa.com/manage . Questa non si può comunque considerare una prova definitiva, visto che la collocazione della directory di amministrazione può essere cambiato rispetto alla configurazione di default.



Un po’ di storia

Zope è stato sviluppato dalla Digital Creations . All’inizio era un software commerciale, ma poi i dirigenti dell’azienda si convinsero che sposando la filosofia Open Source il valore della società si sarebbe accresciuto e avrebbero potuto ottenere diversi vantaggi.

Infatti, dopo il rilascio del software con licenza aperta, in poco tempo la base degli utenti si è moltiplicata, facendo accrescere la conoscenza del marchio. Questo ha portato ad incrementare le attività nell’area della consulenza.
Inoltre il codice è divenuto disponibile per piattaforme diverse e gli sviluppatori (non necessariamente della Digital Creations) hanno potuto aggiungerci molte funzionalità ed ottimizzarne delle altre: l’hanno potuto rendere più veloce, più sicuro e più stabile.

Il rilascio del codice sorgente dell’applicazione è stato un investimento che ha reso più facile la crescita della società, gli ha permesso di risparmiare sulla forza lavoro informatica e di marketing e di destinare più risorse verso la consulenza.

Un’altra importante caratteristica per i clienti è la longevità del ciclo vitale del software. Nella comunità Open Source il software può vivere per sempre, si troverà sempre qualcuno che aggiungerà nuova tecnologia e lo terrà aggiornato. Muovendosi nell’Open Source, Zope si è proposto come un’alternativa a Cold Fusion che fino ad allora dominava il mercato. E la Digital Creation ha pensato giustamente che questa fosse l’unica via per acquisire quote di mercato in poco tempo e con pochi investimenti, favorendo la trasformazione da società di prodotto a società di servizi.

I Benefici dell’Open Source

Zope è un software Open Source, con libero accesso al codice sorgente e con una licenza non restrittiva per utilizzarlo. Tutto ciò fornisce svariati benefici: innanzi tutto non si è ostaggio dei piani dei venditori, ma si ha il potere di usare e cambiare Zope per soddisfare i bisogni del proprio business, poi si può contare su di una maggiore sicurezza visto che i bug possono essere scoperti più facilmente. I test massicci e i contributi della comunità assicurano infatti una migliore qualità del software: quando viene trovato un problema la sua risoluzione viene data velocemente ed è facile correggerlo. Il codice disponibile a tutti permette a Zope di essere esteso, ottimizzato e personalizzato. E di questi miglioramenti ne beneficiano tutti gli utilizzatori.

L?Architettura di Zope

Zope ha un’architettura modulare, interamente basata su oggetti. Il linguaggio Python, in cui è stato sviluppato, consente infatti una struttura fortemente flessibile ed una reimplementazione di alcuni moduli in linguaggio C/C++ ha massimizzato l?efficienza delle applicazioni.
Nei due anni di vita del prodotto questo approccio ha permesso di mantenere invariata l?architettura, che si dimostra sempre più una stabile struttura su cui costruire applicazioni web.

La comunità degli sviluppatori di Zope (che ormai conta più di 4000 membri in tutto il mondo) costituisce il fulcro dell?evoluzione di questo prodotto, rinnovandolo continuamente e fornendo nuove versioni con cadenza ormai quasi mensile.

L?architettura di Zope ha la seguente struttura:

Diagramma dell'architettura ad oggetti di Zope

Questa architettura denota un’infinita flessibilità nei metodi di accesso da parte dell?utente (HTTP, FTP, XML-RPC, WebDAV) e da parte del web-server (HTTP, PCGI) che in più può essere anche sostituito direttamente dallo ZServer appartente al nucleo centrale di Zope. Da notare, inoltre, la presenza di un database ad oggetti nel nucleo. Con questa caratteristica, per semplici applicazioni è possibile avvalersi di Zope sia come application-server che come data storage engine. La connettività alle fonti dati legacy à infine garantita tramite l?accesso al filesystem e database SQL o ODBC sulle maggiori piattaforme software.

Per concludere, le ZClasses forniscono a Zope l?estensibilità richiesta dalle moderne applicazioni, senza dover ricorrere all?ausilio di un linguaggio di programmazione, ma utilizzando solamente un?intuitiva interfaccia GUI per la realizzazione di applicazioni data-driven. Qualora tale ausilio non risultasse sufficiente, attraverso gli Zope Products è possibile andare ad interagire direttamente con il motore di Zope a livello di API Python, C, C++ ed in futuro Perl.
La realizzazione di Zope Products diventa in questo modo, un semplice mezzo per creare una piattaforma ad hoc per qualsiasi applicazione.


Perché Zope?

Riassumiamo i motivi che fanno di Zope la piattaforma ideale per sviluppare applicazioni e siti Web dinamici anche molto complessi.

Zope utilizza un database ad oggetti integrato, studiato appositamente per facilitare il lavoro dei Contents Manager e degli sviluppatori web.
Zope è un potente strumento che permette di gestire e manipolare i contenuti, i layout e la sicurezza attraverso una semplice interfaccia user-friendly che ricorda molto quella di Windows Explorer. Si può accedere all’ambiente di sviluppo attraverso Internet (con qualsiasi browser).

Zope è multipiattaforma: è stato testato sotto Windows, Linux, Solaris, IRIX e HP-UX e supporta diversi WebServer (Apache, IIS, Netscape).
Zope è stato progettato in modo da rendere la connessione ai database esterni indolore. Inoltre la lista dei database supportati è decisamente vasta (MySQL, PostGres, Oracle, Interbase, per citarne alcuni).
In Zope le pagine WEB sono costruite aggiungendo “oggetti” e modificando le “proprietà” di tali oggetti.

Per lo sviluppo di applicazioni Web dinamiche si hanno a disposizione svariati strumenti: PHP, Perl, ASP, Servlet ecc. o applicazioni commerciali come ColdFusion.
Questi strumenti sono presenti sul mercato da svariati anni; Zope è presente sul mercato da un paio anni. Ed è questo il motivo per cui non è ancora molto conosciuto.

Altri pregi di Zope? Eccoli…

1) Una volta imparato i fondamentali di Zope, si rimane stupiti di quanto facile sia lavorarci rispetto ad altri strumenti.
2) Si può accedere in remoto all’ambiente di sviluppo dell’applicazione ed editarne il codice da un qualunque Browser Web (mediante Internet o rete locale) che supporti i frame.
3)Il ciclo di sviluppo delle applicazioni è molto più veloce in confronto agli altri strumenti.
4) Lo sviluppo delle pagine segue la filosofia della programmazione ad oggetti. Questo permette la massima riusabilità ed estendibilità del codice. Diventa facile aggiungere nuove funzionalità.
5) Esiste un discreto debugger interno.
6) La sicurezza: vi sono Access List Granulari a livello di metodo. E’ possibile settare i permessi su ogni singolo file per ogni singolo utente
7) Supporta l’SSL in maniera nativa (ZServer-SSL).
8) E’ dotato, nativamente, di moltissime funzionalità (viste come oggetti) che non si trovano in altri strumenti analoghi. Ad esempio è in grado di manipolare l’XML. Supporta l’XML RPC per la comunicazione tra applicazione remote.
9) Gestisce i cookie in maniera nativa.
10) La funzione UNDO è avanzata.

Uno dei dubbi più grandi che vengono a chi si avvicina per la prima volta a Zope riguarda la sua velocità. Test effettuati su di un Pentium III 500 MHz che aveva un carico di circa 18.000.000 di hits al mese (non tutti sotto Zope) hanno mostrato la capacità di supportare circa 80 pagine al secondo di tipo semplice e circa 40 pagine al secondo di tipo complesse e grafiche.
Un Server dedicato Pentium III 550 con 256 MB di RAM, dischi veloci e sistema operativo Linux è in grado di gestire tranquillamente 1.000.000 di hit al giorno, su di una applicazione dinamica complessa scritta con Zope.

Nel momento in cui si hanno molti più accessi alle pagine esiste ZEO (Zope Enterprise Option) che praticamente permette di far funzionare lo Zope Server in maniera distribuita su più computer (è sostanzialmente un cluster). E? indicato per siti ad altissima intensità di traffico.
Il sito Zope.org è velocissimo (media di 85.000 visite al giorno) e gira anche senza ZEO.

Code Catalog ha costruito il prototipo del suo sito sia in PHP sia in Zope. E ha scelto Zope perché si è dimostrato più veloce sia durante lo sviluppo che durante le prove su strada.

Le applicazioni inoltre possono essere ulteriormente ottimizzate facendo in modo di far girare i contenuti statici su di una macchina dedicata direttamente sotto Apache e quelli dinamici su di un’altra con Zope.
Vengono poi normalmente usate tutte le tecniche di caching e di cache-control.

Zope si sta diffondendo rapidamente anche in Italia dove è appena nata una mailing list sulla programmazione con Zope (zope-it@zope.org); sono stati sviluppati siti di una certa consistenza e altri, molto importanti, sono in fase di test.

Per chiudere, ecco una breve lista dei siti più famosi che utilizzano Zope: Bell Atlantic Mobile, Red Hat, NASA, US Navy, ishophere.com, i-Gift, IDG, General Electric, Digal Garage, Verio, www.HireTechs.com, Storm Linux.

Luca Bove

Link copiato negli appunti

Ti potrebbe interessare

Pubblicato il
15 ott 2000
Link copiato negli appunti