La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Zope base Zope base Giuseppe Masili Giuseppe Masili The limits of a writing a product are really your imagination Andy.

Presentazioni simili


Presentazione sul tema: "Zope base Zope base Giuseppe Masili Giuseppe Masili The limits of a writing a product are really your imagination Andy."— Transcript della presentazione:

1 Zope base Zope base Giuseppe Masili Giuseppe Masili The limits of a writing a product are really your imagination Andy McKay

2 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 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.

3 Che cos'è un'applicazione web? 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 Galeon Mozilla Mozilla Konqueror Konqueror Opera Opera Microsoft Internet Explorer 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. 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. 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) 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: Zope è gratuito ed è distribuito secondo una licenza open-source. 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 1 1

12 Tutti i prodotti che cerchi: Viene fornito con tutti i componenti necessari per cominciare lo sviluppo di una applicazione. 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 2 2

13 Tutti gli sviluppatori che cerchi: Zope permette ed incoraggia gli sviluppatori a pacchettizzare e a distribuire applicazioni pronte all'uso. 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 3 3

14 ZEO: 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. 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 4 4

15 Interfaccia Web di gestione: 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). 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 5 5

16 Sicurezza e autenticazione: 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. 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 6 6

17 Ad ognuno il suo spazio/compito: 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. 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 7 7

18 Tu dammi un s.o. ed io ti installerò Zope: Zope gira sui più diffusi sistemi operativi per microcomputer: Linux, Windows NT/2000/XP, Solaris, FreeBSD, NetBSD, OpenBSD e Mac OS X. 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 8 8

19 Python: Zope può essere esteso utilizzando il linguaggio di scripting Python. Python è open source, di semplice apprendimento e agevola lo sviluppo rapido. 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 9 9

20 Comunità: Software, manuali multilingue e assistenza sono gratuiti. Software, manuali multilingue e assistenza sono gratuiti.Info: 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

21 Zope in un solo click! L'ultima versione di Zope è sempre disponibile gratuitamente al seguente indirizzo: Zope win32-x86.exe 2.6.1(Stable) Zope src.tgz 2.6.1(Stable) Zope win32-x86.exe 2.6.1(Stable) Zope src.tgz 2.6.1(Stable) Zope solaris-2.8-sparc.tgz 2.6.1(Stable) Zope linux2-x86.tgz 2.6.1(Stable) Zope solaris-2.8-sparc.tgz 2.6.1(Stable) Zope 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 server web un database ad oggetti un database ad oggetti un'interfaccia di amministrazione 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: 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 Per utilizzare Zope al meglio, sara' necessario afferrare il concetto di 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).

28 Orientamento agli 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 In un sistema orientato agli oggetti (come Zope), le applicazioni vengono plasmate sugli 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.

29 Applicazione NON orientata agli 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 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. 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. 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.

30 Applicazione NON orientata agli 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 Questo implica che questi dati esistono quasi unicamente in funzione del codice che li può manipolare. Senza di esso praticamente non avrebbero significato.

31 Applicazione orientata agli 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 Ci sarà una ed una sola cosa: Oggetti. Gli oggetti sono collezioni di codice e di dati assemblati assieme. 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.

32 Riassunto: 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 In una applicazione non orientata agli oggetti, i dati sono separati dal codice. 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.

33 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 In Zope, il Control_Panel e' un oggetto, le "Folder" che create sono oggetti e anche la "root folder" e' un oggetto. 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.

34 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 Attributi: I dati relativi ad un oggetto sono definiti dai suoi 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.

35 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 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".

36 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 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.

37 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 Classi: Una classe definisce il comportamento di un oggetto e ne rappresenta il costruttore. 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.

38 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 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.

39 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 Istanze: Gli oggetti che vengono costruiti da una classe sono chiamati istanze della classe o (piu' spesso) semplicemente 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.

40 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 Istanze: Tutti gli oggetti con cui avete a che fare utilizzando l'interfaccia di amministrazione di Zope sono istanze di una classe. 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à.

41 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 Ereditarietà:

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: Hello world. Hello world. 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: Ultima modifica 2003/10/16 by Amost Ultima modifica 2003/10/16 by Amost standard_html_footer 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

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

47 Approfondimento dtml-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 Paul everitt Paul everitt paul everitt paul everitt PAUL EVERITT PAUL EVERITT non inserito non inserito pau... pau... pau pau

48 dtml-call variabile globale: 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 Il dtml-call attiva una variabile globale che sarà attiva per tutto il tempo di visualizzazione della pagina Web. L'assegnazione determina il tipo della variabile. In questo caso name è di tipo string

49 dtml-let variabile locale: 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 Il dtml-let attiva una o più variabili locali che saranno attive solo in quella parte di codice. &dtml-name; &dtml-name; &dtml- è una sintassi abbreviata per il tag var

50 Commentare una parte di 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 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. Ho escluso questa variabile per i seguenti motivi... Ho escluso questa variabile per i seguenti motivi...

51 Verifica la condizione con dtml-if: 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 Il dtml-if permette di personalizzare la propria pagina Web. Consente di valutare una condizione e di svolgere operazioni differenti. Benvenuto ! Benvenuto ! Not Found Not Found

52 Cicli con dtml-in: 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 Il dtml-in permette un'iterazione su una sequenza di oggetti eseguendo un blocco di operazioni per ogni elemento contenuto nella sequenza. "> ">

53 In fine Zope e FTP: 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 E' il formato di comunicazione con il quale si possono trasferire dati tra computer connessi in rete con velocita' e praticita' maggiori. Zope poteva non permettere questa tecnica? ;o) lftp lftp Si può accedere ai dati contenuti nel data.fs usando un qualsiasi programma FTP con il proprio utente sulla porta 8021

54 Cosa c'e' ancora da sapere? 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 Data.fs CMF Plone OpenFlow ZPT Local File System DTML Document manage_addFolder Mail Host Zope3 Python __init__.py Cookie Crumbler Formulator RAM Cache Manager Virtual Host Monster Vocabulary Z SQL Method ZPoPyDA User Folder Session REQUEST temp_folder ZCatalog Security Script Python ZopeTestCase MailBoxer manage CMFWiki Silva fcForum ExtZSQL TTWType dtml-tree...

55 Dove posso reperire informazioni? 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 irc.debian.org 6667 #zope #zope-it #plone

56 In particolare 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 Questo sito nasce con un'idea: mettere a disposizione esperienze e nozioni dei tanti sviluppatori italiani in Zope. Zope.it sfrutta la potenza del CMF. Al Webbit 2003 ci sarà il primo Sprint Zope.it nel quale verrà sostituito CMF con Plone.

57 Grazie per l'attenzione Grazie per l'attenzione 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 Zope Giuseppe Masili Giuseppe Masili


Scaricare ppt "Zope base Zope base Giuseppe Masili Giuseppe Masili The limits of a writing a product are really your imagination Andy."

Presentazioni simili


Annunci Google