1 / 57

Zope base Giuseppe Masili

Zope base Giuseppe Masili giuseppe@linux.it. “The limits of a writing a product are really your imagination” Andy McKay. Che cos'è Zope?.

lotta
Download Presentation

Zope base Giuseppe Masili

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Zope base Giuseppe Masili giuseppe@linux.it “The limits of a writing a product are really your imagination” Andy McKay

  2. Che cos'è Zope? Zope è una piattaforma che permette a sviluppatori con differenti livelli di competenza di costruire applicazioni web. Questa presentazione illustra gli impieghi di Zope in maggior dettaglio ed il pubblico a cui è destinato. Descrive inoltre che cosa distingue Zope da applicazioni simili. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  3. Che cos'è un'applicazione web? Una applicazione web e' un programma per computer che viene eseguito dagli utenti sfruttando un qualsiasi browser web tipo: • Galeon • Mozilla • Konqueror • Opera • Microsoft Internet Explorer Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  4. Storia di Zope: 1996 Nel 1996 Jim Fulton, l'attuale CTO (Chief Technology Officer) di Zope Corporation, venne scelto per tenere un corso sulla programmazione CGI, malgrado non ne sapesse molto a riguardo. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  5. Storia di Zope: CGI La programmazione CGI (common gateway interface) è un modello di sviluppo web comunemente utilizzato che permette agli sviluppatori di costruire siti web dinamici. Jim studiò tutta la documentazione esistente sui CGI durante il viaggio. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  6. Storia di Zope: 1996 Al ritorno dal corso, Jim valutò che gli ambienti di programmazione basati su CGI non erano di suo gradimento. Il cuore di Zope venne scritto, in seguito a queste considerazioni, sull'aereo durante il volo di ritorno. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  7. Storia di Zope: Zope Corporation (nota come Digital Creations) rilasciò tre pacchetti software open source per la pubblicazione web: Bobo, Document Template e BoboPOS. Vennero scritti in un linguaggio chiamato Python, e rispettivamente offrivano uno strumento per la pubblicazione su web, il templating del testo e un database ad oggetti. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  8. Storia di Zope: Venne sviluppato un server di applicazioni web commerciale basato su questi loro tre componenti open source, chiamato Principia. Nel Novembre del 1998, l'investitore Hadar Pedhazur convinse la Digital Creations a rendere open source Principia. Questi componenti si sono evoluti nei componenti base di Zope. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  9. L'acronimo “Zope”: L'acronimo "Zope" sta per Z Object Publishing Environment (ambiente per pubblicazione di oggetti) Ora.. sta "Z"? Non significa niente :o) La maggior parte di Zope è scritta nel linguaggio di scripting Python, ed in C nei frammenti di codice critici per le prestazioni. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  10. Dieci motivi per scegliere Zope: Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  11. Gratis & open-source: 1 Zope è gratuito ed è distribuito secondo una licenza open-source. Ci sono molti server di applicazioni commerciali non gratuiti parecchio costosi. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  12. Tutti i prodotti che cerchi: 2 Viene fornito con tutti i componenti necessari per cominciare lo sviluppo di una applicazione. Tanti altri server di applicazioni implicano spese "nascoste" dovute alle licenze di costosi software o alla configurazione di complesse infrastrutture di terze parti prima che possiate cominciare lo sviluppo della vostra applicazione. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  13. Tutti gli sviluppatori che cerchi: 3 Zope permette ed incoraggia gli sviluppatori a pacchettizzare e a distribuire applicazioni pronte all'uso. Grazie a ciò, Zope è corredato da un'ampia varietà di servizi integrati e di prodotti aggiuntivi per un utilizzo immediato. La popolarità di Zope ha originato una grossa comunità di sviluppatori di applicazioni. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  14. ZEO: 4 Le applicazioni create in Zope possono scalare quasi linearmente utilizzando la soluzione ZEO (Zope Enterprise Objects) che Zope mette a disposizione. Utilizzando ZEO, potrete fornire una applicazione Zope attraverso molti computer. Molti application servers non scalano affatto. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  15. Interfaccia Web di gestione: 5 Zope consente agli sviluppatori di delegare in modo sicuro i compiti di sviluppo ad altri sviluppatori "attraverso il web" utilizzando l'interfaccia di Zope (la Zope Management Interface, anche nota come ZMI). Davvero pochi altri server di applicazioni, se ce ne fosse alcuno, forniscono lo stesso livello di funzionalità. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  16. Sicurezza e autenticazione: 6 Zope fornisce una piattaforma dalla sicurezza estensibile e granulare. Potrete integrare semplicemente Zope con diversi sistemi di autenticazione come, LDAP, Windows NT e RADIUS simultaneamente, utilizzando modelli esistenti. Molti altri application servers mancano del supporto per alcuni di questi sistemi. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  17. Ad ognuno il suo spazio/compito: 7 Zope consente davvero a gruppi di sviluppatori di collaborare fornendo: la funzionalita di Undo, la History ed altri strumenti che aiutano le diverse parti a lavorare in modo sicuro assieme e permettono il ripristino dagli errori. Molti altri application servers non prevedono questo tipo di caratteristica. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  18. Tu dammi un s.o. ed io ti installerò Zope: 8 Zope gira sui più diffusi sistemi operativi per microcomputer: Linux, Windows NT/2000/XP, Solaris, FreeBSD, NetBSD, OpenBSD e Mac OS X. Molti altri server di applicazioni richiedono che li si esegua su un sistema operativo scelto dal venditore. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  19. Python: 9 Zope può essere esteso utilizzando il linguaggio di scripting Python. Python è open source, di semplice apprendimento e agevola lo sviluppo rapido. Molti altri application servers devono venire estesi mediante linguaggi non open source. Questo significa maggiori costi di sviluppo. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  20. Comunità: 10 Software, manuali multilingue e assistenza sono gratuiti. Info: http://www.zope.org http://www.zope.it Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  21. Zope in un solo click! L'ultima versione di Zope è sempre disponibile gratuitamente al seguente indirizzo: http://www.zope.org/Products Attualmente: Zope-2.6.1-win32-x86.exe 2.6.1(Stable) Zope-2.6.1-src.tgz 2.6.1(Stable) Zope-2.6.1-solaris-2.8-sparc.tgz 2.6.1(Stable) Zope-2.6.1-linux2-x86.tgz 2.6.1(Stable) Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  22. Cosa fornisce Zope? Zope è costituito da più moduli che interagiscono tra di loro: • un server web • un database ad oggetti • un'interfaccia di amministrazione Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  23. Un server web: Zope contiene già un server web in grado di supportare tutte le funzionalità necessarie al servizio delle applicazioni sviluppate. Se però si ha la necessità di utilizzare un altro server web Zope dà la possibilità di sostituire facilmente il server web interno con uno qualsiasi, come ad esempio Apache. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  24. Un database ad oggetti: La grande differenza tra Zope e prodotti analoghi è il fatto che Zope ha trasformato il Web in una struttura ad oggetti e quindi contiene al suo interno un database ad oggetti nel quale verranno immagazzinati i dati. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  25. Un'interfaccia di amministrazione: Zope fornisce una completa interfaccia utente che può essere utilizzata per la gestione e lo sviluppo delle applicazioni. L'interfaccia può essere usata da qualsiasi browser web moderno e si presenta in modo molto familiare agli utenti, visualizzando gli oggetti tramite una struttura ad albero, in modo simile ai più diffusi file manager. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  26. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  27. Orientamento agli oggetti: Per utilizzare Zope al meglio, sara' necessario afferrare il concetto di orientamento agli oggetti. L'orientamento agli oggetti e' un modello di sviluppo del software che viene utilizzato in molti linguaggi di programmazione (C++, Java, Python, ed altri). Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  28. Orientamento agli oggetti: In un sistema orientato agli oggetti (come Zope), le applicazioni vengono plasmate sugli oggetti. Gli oggetti sono "contenitori" di dati e di logica di controllo. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  29. Applicazione NON orientata agli oggetti: In una normale applicazione non orientata agli oggetti, potete distinguere due parti: • Codice. Ad esempio, in una classica applicazione web basata su CGI potete avere una parte logica sottoforma di script Perl. • Dati. Potreste avere le informazioni relative agli impiegati memorizzate in una base di dati gestita da MySQL o Oracle, su cui opera il vostro codice. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  30. Applicazione NON orientata agli oggetti: Questo implica che questi dati esistono quasi unicamente in funzione del codice che li può manipolare. Senza di esso praticamente non avrebbero significato. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  31. Applicazione orientata agli oggetti: Ci sarà una ed una sola cosa: • Oggetti. Gli oggetti sono collezioni di codice e di dati assemblati assieme. Per esempio potete avere un oggetto che rappresenta un impiegato. Al suo interno sono presenti i dati sull'impiegato, quali il numero di telefono, la via, .., e anche la "logica" (il codice) in grado di manipolare questi dati. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  32. Riassunto: In una applicazione non orientata agli oggetti, i dati sono separati dal codice. In una applicazione orientata agli oggetti invece sia i dati che il codice sono immagazzinati in uno o piu' oggetti. Gli oggetti possono modellare praticamente ogni cosa. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  33. In Zope, il Control_Panel e' un oggetto, le "Folder" che create sono oggetti e anche la "root folder" e' un oggetto. Quando si utilizza la lista contenente gli elementi da aggiungere per creare un nuovo elemento nella Zope Management Interface, state creando un oggetto. Le persone che estendono Zope creando i Prodotti definiscono i propri tipi di oggetti. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  34. Attributi: I dati relativi ad un oggetto sono definiti dai suoi attributi. Ad esempio, dei possibili attributi possono essere: "first_name" e "last_name", che sono rispettivamente una serie di caratteri che rappresentano il nome e il cognome dell'impiegato. Infine può avere l'attributo "title", che identifica la descrizione dell'incarico. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  35. Metodi: L'insieme di azioni che un oggetto può compiere è definita dai suoi metodi. Per esempio, un metodo "getFirstName" può restituire il valore dell'attributo "first_name" dell'oggetto, mentre il metodo "setFirstName" può modificare il valore dell'attributo "first_name". Il metodo "getTitle" dell'oggetto può restituire "Vice Presidente" o "Portinaio". Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  36. Approfondimento: Alcuni oggetti sono chiamati "metodi". Per esempio, esistono Metodi DTML, Metodi SQL e Metodi Esterni. Ciò avviene perchè questi oggetti sono stati pensati per essere usati come metodi. Quando vengono invocati sono ancorati alla cartella che li contiene; anche la logica che includono fa riferimento alla cartella che li contiene. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  37. Classi: Una classe definisce il comportamento di un oggetto e ne rappresenta il costruttore. E' una cosa piuttosto normale trovare alcuni oggetti in un sistema che sono essenzialmente simili ad un altro salvo per il valore dei loro attributi. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  38. Esempio: Potete avere oggetti nel vostro sistema, ognuno dei quali con gli attributi "first_name" e "last_name". L'unica differenza è il valore contenuto all'interno degli attributi. L'attributo "first_name" di un oggetto può essere "Fred", mentre un altro può contenere "Jim". Questi oggetti sono membri della stessa classe. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  39. Istanze: Gli oggetti che vengono costruiti da una classe sono chiamati istanze della classe o (piu' spesso) semplicemente istanze. Per esempio, la cartella Test ha un attributo id il cui valore è Test, mentre un'altra cartella può avere l'attributo id impostato a Test2 ma entrambe sono istanze della stessa classe e si comportano allo stesso modo. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  40. Istanze: Tutti gli oggetti con cui avete a che fare utilizzando l'interfaccia di amministrazione di Zope sono istanze di una classe. Generalmente le classi da cui questi oggetti sono costruiti sono definite nei Prodotti di Zope, che sono creati dagli sviluppatori di Zope e dai membri della comunità. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  41. Ereditarietà: In Zope l'ereditarietà è molto utilizzata. Ad esempio, la classe "Image" eredita il suo comportamento dalla classe "File", poiché le immagini sono un particolare tipo di file. Ma la classe "Image" aggiunge qualche comportamento in più che le permette di presentare in forma visuale un marcatore HTML invece di provocare il download del file. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  42. Contenuti dinamici con DTML: DTML (Document Template Markup Language) è uno dei linguaggi a tag di Zope. Questo tipo di linguaggio è dedicato principalmente ai progettisti Web. Il DTML è molto potente ma deve essere utilizzato solo per la presentazione dei dati. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  43. Formattazione dei dati eterogenei: Esempio: <dtml-var standard_html_header> <p>Hello world.</p> <dtml-var standard_html_footer> Questa pagina Web utilizza insieme codice HTML e DTML. Il dtml-var indica una sostituzione dell'oggetto. Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  44. Gli oggetti header e footer: standard_html_header contiene: <html> <body> <p> Ultima modifica 2003/10/16 by Amost</p> standard_html_footer contiene: <p><dtml-var ZopeAttributionButton></p> </body> </html> Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  45. Eseguendo la pagina Web: Il DTML verrà sostituito per ereditarietà ottenendo: Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  46. Il sorgente: Se l'oggetto è un'immagine, Zope lo sostituisce con il TAG <img ... Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  47. Approfondimento dtml-var: <dtml-call "REQUEST.set('name', 'paul everitt')"> <dtml-var name capitalize> Paul everitt <dtml-var name lower> paul everitt <dtml-var name upper> PAUL EVERITT <dtml-var name missing=”non inserito”> non inserito <dtml-var name size=3> pau... <dtml-var name size=3 etc=””> pau Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  48. dtml-call variabile globale: Il dtml-call attiva una variabile globale che sarà attiva per tutto il tempo di visualizzazione della pagina Web. <dtml-call "REQUEST.set('name', 'paul everitt')"> L'assegnazione determina il tipo della variabile. In questo caso name è di tipo string Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  49. dtml-let variabile locale: Il dtml-let attiva una o più variabili locali che saranno attive solo in quella parte di codice. <dtml-let name=”paul everitt” num=23 tot=123> <tr with=”dtml-tot;”> <td with=”&dtml-num;”>&dtml-name;</td> ... </tr> </dtml-let> &dtml- è una sintassi abbreviata per il tag var Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

  50. Commentare una parte di codice: Il dtml-comment può essere usato per escludere una parte di codice e/o per indicare un commento in formato testo che non verrà inserito nella pagine Web. <dtml-comment> Ho escluso questa variabile per i seguenti motivi... <dtml-call "REQUEST.set('name', 'paul everitt')"> </dtml-comment> Z o p e A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

More Related