• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
JAMP DAY 2010 - ROMA (1)
 

JAMP DAY 2010 - ROMA (1)

on

  • 450 views

 

Statistics

Views

Total Views
450
Views on SlideShare
437
Embed Views
13

Actions

Likes
0
Downloads
5
Comments
0

2 Embeds 13

http://jamp.alyx.it 11
http://www.slideshare.net 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Diamo un’occhiata adesso a quello previsto dall’agenda di Oggi. Come potete vedere è stato diviso in due sessioni una mattutina di circa tre ore e l’altra pomeridiana di quattro. Ci sarà dunque il tempo necessario per la pausa pranzo ed un piccolo break per ogni sessione. Nella sessione mattutina parleremo del WEB in particolare 2.0 e dei framework, questo proprio per introdurre quello che poi sarà la parte centrale della discussione ossia cos’è JAMP. Mentre sessione pomeridiana sarà più tecnica, cercheremo di approfondire tutti gli aspetti e le funzionalità del framework, cercando anche di dare spazio alle domande ed hai chiarimenti tecnici. La mattinata invece caratterizzata dal fatto di essere molto più descrittiva, il nostro interesse sarà quello di dare una visione globale di tutto il progetto, anche a coloro i quali non avessero mai sentito parlare di JAMP e così da fare in modo che nel pomeriggio avrebbero modo di seguire meglio il filo del discorso o se non potessero partecipare avrebbero comunque preso visione del progetto e più facilmente tramite la documentazione online ed il forum presenti sul sito http://jamp.alyx.it potrebbero comunque seguire il progetto. Faremo comunque vedere sia l’installazione del framework che alcuni esempi. Dopo il coffee break, ripartiremo parlando dell’associazione, è un discorso strettamente legato a JAMP in quanto si tratta di un associazione “ALYX” per la promozione e divulgazione del software libero e la ricerca informatica. Sul finire tempo permettendo ci farebbe molto piacere se qualcuno di voi, venisse qui per fare un commento libero in generale sull’incontro su JAMP cosa ne pensa accettiamo anche critiche  , ognuno di voi si senta libero di dire quello che vuole, siamo anche disponibii a rispondere a eventuali domande.
  • Definiamo prima di tutto il significato di WEB che è l’abbreviazione di World Wide Web, ossia un servizio di Internet utilizzato anche nelle Intranet che consistente in un insieme vastissimo di contenuti multimediali e di servizi accessibili a tutti o ad una parte selezionata degli utenti. Lo scopo del web era quello di permettere la visualizzazione di contenuti multimediali (testi, immagini, audio, video, ipertesti, ipermedia, ecc.) o download di software “ospitati” in particolari computer chiamati server web. Il WEB 2.0 è un evoluzione del WEB, questo termine è utilizzato oltre ad indicare un evoluzione dal punto di vista delle tecnologico, per identificare una vera e propria modifica nell’approccio verso questo strumento, non più visto in maniera che potremmo definire “statica” propria del vecchio World Wide Web dove il rapporto con l’utente era completamente o scarsamente non interattivo ma di mera consultazione, ma al contrario grazie alla nascita di nuove tecnoligie in primis AJAX che hanno permesso lo sviluppo di non più ma vere e proprie applicazioni web, l’utente è divenuto sempre più partecipe ed invogliato ad utilizzarle. Possiamo definire una web-application come un’applicazione che risulta accessibile per mezzo di un dispositivo in grado di connettersi ad una rete(intranet o internet) tramite un browser. Senza voler fare delle analisi “psico-sociologiche”, penso che sia sotto gli occhi di tutti alcune applicazioni WEB come appunto dicevamo I social network, wikipedia, youtube, twitter stanno rivoluzionando non solo dal punto di vista tecnologico, ma anche la pubblicità e i comportamenti delle persone. Ripeto senza voler fare discorsi “complicati” che vanno fuori dalle mie competenze, ma basta solamente porsi una semplice domanda: “Quante persone, siano essi conoscenti, amici o familiari conoscete che prima non utilizzavano o comunque occasionalemente utilizzavano un PC e adesso invece passano giornate intere connessi a Youtube piuttosto a Facebook?”, credo tantissime tra l’altro anche le statistiche dei giornali lo confermano. Per la media degli utenti questo nuovo tipo di software sarà più facile, meno costoso, più mobile, più affidabile e più potente di un software desktop. Chi come noi opera nel settore dell’informatica e della programmazione non può non dare il giusto peso e valore. Io e Ruben da anni, JAMP è nato circa un anno e mezzo fa, ma già da molto prima erano complemtento “convertiti” verso la scelta sviluppare WEB-Application. Un’altro grosso merito che hanno avuto le applicazioni WEB quelle largamente diffuse che tutti conosciamo , non mi riferisco solo a quelle già elencate ma parliamo anche ad esempio delle tante applicazioni sviluppare da Google servono a dimostrare che le applicazioni WEB possono essere anche software complessi ed articolati.
  • Vediamo i vantaggi della programmazione web nei contronti della programmazione tradizionale per le applicazioni desktop. Architettura di una applicazione web è di tipo client-server questo significa che si può anche creare un’applicazione e farla funzionare in “locale” far concidere il client ed il server con lo stesso PC ma nel momento in cui si dovesse avere la necessità di utilizzare in rete l’applicazione non bisogna fare nulla, o al limite spostare l’applicazione in un server web, aprire qualche porta piccoli problemi sistemistici nulla di più, invece un’appliazione desktop che nasce “standalone” non sempre con poca facilità può essere condivisa in rete, a volte è necessario riprogettare tutta l’applicazione perché non era stata prevista un struttura di front-end e back-end. Centralizzato: tutto il software dell’applicazione è presente nel server, ne consegue un ernorme vantaggio in operazioni di manutenzioni quali: (aggiornamenti, backup, installazione patch, ecc)‏. Portabilità: che è la capacità di spostare la nostra applicazione su ambienti diversi, intesi come architetture hardware e software differenti, anche qui sappiamo bene che i linguaggi di programmazione tradizionali hanno il problema che uan volta compilati legano il software alla piattaforma hardware e software. Discorso a parte per JAVA che offre indipendenza dalla piattaforma grazie alla compilazione in “bytecode” a discapito però delle prestazioni non ottimali. Accessibilità: la capacità di poter accedere ad una applicazione web da qualunque dispositivo fisso o mobile, e anche qui penso di poter dire che il WEB nei confronti delle applicazioni desktop fa da gigante. Sicurezza: parola in italiano un pò ambigua da un punto di vista informatico perché può esprimere due concetti, e che correttamente nella lingua inglese vengono identificati con due parole diverse e cioè la safety: ossia la sicurezza intesa come integrità dei dati e quasto abbiamo visto prima e facilità da un architettura centralizzata e dalla security, ossia dalla sicurezza dei dati dal punto di vista della privacy, il web implementa tecniche e protocolli di sicurezza universalmente riconosciti per la loro affidabilità come https, i certificati digitali.
  • E’ giusto anche parlare degli svantaggi che la programmazione web ha nei confronti della programmazione linguaggi desktop. E’ necessario conoscere diversi linguaggi, alcuni magari come il css sono linguaggi di formattazione ma c’è comunque una sintassi da conoscere. Interattività: sempre legandoci al discorso della moltepiclità dei linguaggi che rende più complicato la gestione dell’input da parte dell’utente perché parte viene gestito lato client(quindi in javascript) e parte lato server. Visualizzazione dei dati: In una pagina HTML i dati e la formattazione degli stessi sono contenuti nella stessa pagina. Questo rende sicuramente più complessa la programmazione. Riutilizzo del codice: problema che può essere presente anche nei linguaggi di programmazione desktop ma nel WEB lo è maggiormente presente sempre relativamente che sono presenti più linguaggi.
  • framework è un termine inglese che tradotto letteralmente significa “intelaiatura” è può essere definito appunto come una struttura a supporto su cui un software può essere organizzato e progettato. Il vantaggio neI utilizzo del framework web è proprio quello di cercare di attenuare fortemente o eliminare i problemi prima citati.
  • Vediamo come: facendo risparmiare allo sviluppatore la riscrittura di codice già steso in precedenza per compiti simili, un framework può far risparmiare anche 80% del codice necessario a scrivere un'applicazione. Questo è già un importantissimo vantaggio ma, volendo dare qualche dato che ci viene dato da chi studia ingegneria del software e quindi si intende di processi produttivi e metodologie di sviluppo finalizzate alla realizzazione di sistemi software, possiamo dire: I difetti o bugs codice tipicamente incidono per il 40%-50% sui costi di produzione. Quello che spesso accade per ridurre i costi e quindi quello di pensare di diminuire il tempo di testing ma questo spesso si trasforma in un boomerang perchè 1 ora di testing in fase di sviluppo corrisponde a circa 3-10 ore in fase di maintenance. E comunque anche rispettando i tempi di “testing”, quello che si sa bene e che l'ambiente di test che si cerca di ricreare non è mai identico a quello di produzione quindi e fisiologico che alcuni bugs saltino fuori solo in una fase successiva. L'uso dei framework che come precedentemente detto riduce il codice necessario a sviluppare l'applicazione anche da questo punto di vista risulta essere estremamente utile.
  • Infine quando pensiamo alla progettazione di un software dobbiamo considere il suo intero ciclo di vita quindi anche eventuali richieste da parte dell'utente di modifiche, studi ci dicono che il costo della modifica incide soprattutto nell'attuazione della modifica stessa, minore è il codice necessario a realizzare l'applicazione meno ripida sarà la mia curva. In definitiva possiamo affermare che i framework risultando essere la soluzione ottimale per l'abbattimento di quelli che sono i tempi e costi di realizzazione.
  • Esistono tantissimi framework e molti sono web, purtroppo non sempre la quantità e sinonimo di qualità, questo è anche il motivo che ci ha spinto a scrivere noi un framework, da un lato infatti abbiamo capito l'estrema potenzialità di questi strumenti dall'altro non ne abbiamo trovato uno che soddisfacesse a tutti i nostri requisiti, sono molti le caratteristiche che riteniamo un framework debba necessariamente avere: Facilità : come detto in precedenza la programmazione web non è semplice, introdurre ulteriori difficoltà nell'utilizzo del framework significa di fatto limitare la diffusione del framework stesso, come scritto quindi la configurazione del framework ed il suo utilizzo deve essere semplice ed immediato. Flessibilità : questo punto che spesso è un grosso limite di molti framework sta a signicare che il framework non deve imporre limiti a quelle che sono le possibilità che l'achitettura web offre. Opensource : la distribuizione del codice con licenza opensource è a nostro avviso un requisito importante per qualunque software, solo in questo modo si può veramente valutare la bontà di un software, accrescere le potenzialità dello stesso grazie all'apporto degli utenti. Ma aggiungo che nei confronti di un framework assume un valore ancora maggiore, un professionista, un azienda che investe tempo e risorse per formare i propri dipendenti a conoscere e sviluppare applicazioni basate su un framework non può rischiare di trovarsi dall'oggi al domani in serie difficoltà perché chi ha prodotto il framework non ha più l'interesse a portare avanti il progetto. Questo potrebbe accadere anche per un framework opensource con la differenza però che in questo caso si avrebbe oltre che la licenza la disponibilità del codice sorgente e quindi da utilizzatore nulla mi vieterebbe di portare avanti io il progetto. Completo : Diciamo che il termine framework è un termine abbastanza genererico che accomuna molte tipologie di software che in realtà poi non tutte hanno molto in comune tra di loro, restando sempre nell'ambito web ad esempio si parla a volta di framework per descrivere semplice o anche complese ma comunque singole classi javascript per la gestione dell'interfaccia utenti, o viceversa sistemi che gestiscono solo lato server. Quando parliamo di utilizzare un framework web intendiamo un sistema completo che si presta a fornire tutti gli strumenti necessari per la realizzazione di qualsiasi tipo di applicazione. Veloce : le prestazioni delle applicazioni non devono risentire della presenza del framework.
  • Perchè gli utenti ordinari dovrebbero conoscere parole come "sistema operativo" "driver" o "patch". C'è un altro modo di utilizzare i software che risparmierà agli utenti di divenire amministratori di sistemi. Le applicazioni Web-based sono programmi che funzionano sui Web server e usano le pagine Web come interfacce. Per la media degli utenti questo nuovo tipo di software sarà più facile, meno costoso, più mobile, più affidabile e più potente di un software desktop.
  • Prima descrivere nel dettaglio l’architettura generale e di entrare poi nei singoli dettagli del framework,

JAMP DAY 2010 - ROMA (1) JAMP DAY 2010 - ROMA (1) Presentation Transcript

  • JAMP DAY 22 Maggio 2010 Relatori: Ruben Patanè Giampiero Ancilletta Università degli Studi di Roma "Tor Vergata"
    • AGENDA
    Mattina 10:00 - 13:00 Introduzione al web 2.0 I Framework Introduzione a JAMP Installazione ed esempi 11:30 Coffee break Applicazione di esempio Cos'é e come nasce JAMP L'associazione Talk da parte degli utenti Reclutamento dei ricercatori Pomeriggio 15:00 - 19:00 Struttura del Framework Gli eventi I datasource Castomizzazioni 17:00 Coffee break Transazioni http(s) Gestione input utente Gestione degli errori I template I grafici e i report
    • INTRODUZIONE AL WEB 2.0
    • WEB 2.0
    Locuzione generica utilizzata per indicare uno stato di evoluzione del WEB dato dall'insieme di tutte quelle applicazioni online che permettono uno spiccato livello di interazione come Facebook, Wikipedia, Youtube. Il WEB 2.0 spesso si associa all'utilizzo di tecnologie come AJAX. WEB Application: applicazione accessibile via web per mezzo di un network, come ad esempio una intranet o internet
  • GARA TRA BROWSER
    • WEB PROGRAMMING vs APPLICATION PROGRAMMING
    VANTAGGI: ARCHITETTURA: client-server CENTRALIZZATO: Facilità operazioni di manutenzione (aggiornamenti, backup, installazione patch, ecc)‏ PORTABILITA’: capacità di adattamento o modifica, volto a consentirne l'uso in un ambienti diversi. ACCESSIBILITA’: capacità di un dispositivo, di un servizio o di una risorsa d'essere fruibile con facilità da una qualsiasi tipologia d‘utente. SICUREZZA: utilizzo di protocolli e standard sulla sicurezza universalmente riconosciuti(ssl, https, certificati)
    • WEB PROGRAMMING vs APPLICATION PROGRAMMING
    SVANTAGGI: MOLTEPLICITA' DEI LINGUAGGI: html, css, javascript, script lato server(php, asp, jsp)‏ INTERATTIVITA': caratteristica di un sistema di modificare il proprio comportamento al variare dell'input dell'utente. VISUALIZZAZIONE DATI: non esiste una netta separazione tra i dati e il layout della pagina. RIUTILIZZO DEL CODICE: la maggior parte del codice scritto non può essere utilizzato in altre applicazioni senza le opportune modifiche.
    • I FRAMEWORKS
    In ambito informatico i frameworks sono strutture di supporto su cui un software può essere organizzato e progettato. Lo scopo di un framework è di far risparmiare allo sviluppatore la riscrittura di codice già steso in precedenza per compiti simili, essi dunque possono essere la soluzione ottimale per l'abbattimento di quelli che sono i tempi e costi di realizzazione.
  • REALIZZAZIONE SOFTWARE - ANALISI DEI COSTI I framework possono riuscire a ridurre anche dell'80% il codice necessario allo sviluppo di un’applicazione. Abbattendo quindi costi e tempi di sviluppo e testing. Riutilizzo del codice è minimo si stima intorno 5%-10%. Gli errori o bugs tipicamente incidono per il 40%-50% sui costi di produzione.
    • IL COSTO DELLE MODIFICHE
    Barry Boehm’s "Cost of Change" curve
    • CARATTERISTICHE OTTIMALI DEI FRAMEWORK
    • Facilità : la configurazione del framework ed il suo utilizzo deve essere semplice ed immediato.
    • Flessibilità : l'architettura del framework non deve imporre limiti strutturali allo sviluppo delle applicazioni.
    • Opensource : distribuire il codice con licenza GPL significa principalmente permettere ad altri di valutare ed esprimere un giudizio obiettivo sul lavoro svolto e di contribuire allo sviluppo dello stesso.
    • Completo : deve fornire tutti gli strumenti necessari per la realizzazione di qualsiasi tipo di applicazione.
    • Veloce : le prestazioni delle applicazioni non devono risentire della presenza del framework.
    • COS’E’ JAMP ?
    Framework per lo sviluppo di applicazioni WEB 2.0 basato su PHP e JAVASCRIPT creato dalle esigenze di noi programmatori.
    • PERCHE’ USARE JAMP ?
    • Facilità:
    • Non richiede installazione
    • Netta separazione tra codice e layout
    • Di facile utilizzo, non necessita essere programmatori per utilizzare JAMP
    • Visibilità del codice del framework
    • Struttura ad oggetti
    • PERCHE’ USARE JAMP ?
    • Opensource:
    • Tutti possono contribuire
    • Il codice è scritto in modo chiaro e semplice
    • Tutti possono adattare il codice alle proprie esigenze
    • PERCHE’ USARE JAMP ?
    • Flessibilità:
    • Fornisce classi e metodi generici
    • Consente l'esecuzione del codice PHP e Javascript
    • L'unico l'imite è quello imposto dal PHP o dalla fantasia del programmatore
    • PERCHE’ USARE JAMP ?
    • Completo:
    • Fornisce gli oggetti necessari alla creazione di qualsiasi applicazione
    • Creazione di grafici
    • Generazione di report
    • Di facile implementazione, consente di creare i propri oggetti
    • Accesso a qualsiasi fonte dati
    • Gestione della lingua
    • Gestione degli errori
    • Debug completo
    • PERCHE’ USARE JAMP ?
    • Veloce:
    • Leggero
    • Ottimizzazione delle transazioni
    • INSTALLAZIONE ED ESEMPI
    • INSTALLAZIONE
    Pre-requisiti: Apache 2.x o IIS PHP 5.x File installazione di JAMP: Area download sul sito: http://jamp.alyx.it Tipologia di installazione: - Installazione standard - Installazione Multiutente(più framework indipendenti)
  • STRUTTURA DELLE DIRECTORY
    • INSTALLAZIONE STANDARD
    Scompattare il file jamp_ version - release .tgz o jamp_ version - release .zip all'interno della DocumentRoot DocumentRoot : è la directory di lavoro del server WEB nel quale inserire le pagine web. La DocumentRoot in UNIX/Linux è normalmente: /srv/www/htdocs o /var/www (settare permissions utente apache) La DocumentRoot in UNIX/Linux è normalmente: c:xampphtdocs
    • INSTALLAZIONE MULTIUTENTE - UNIX/LINUX
    Scompattare il file jamp_ version - release .tgz all'interno della home degli utenti: /home/user1/public_html /home/user2/public_html ..................... /home/usern/public_html Configurare le singole installazioni di JAMP: <?php $this->dir_real_web = &quot; /home/user1/public_html &quot;; $this->dir_web_jamp = &quot; /~user1/jamp/ &quot;; ?> Configurare Apache: Aggiungere/Scommentare la riga del file httpd.conf o apache2.conf : Include /etc/apache2/mod_userdir.conf ~user1, ~user2, … ~usern
    • INSTALLAZIONE MULTIUTENTE - WINDOWS
    Scompattare il file jamp_ version - release .zip all'interno del profilo degli utenti: C:Documents and Settingsuser1htdocs ..................... C:Documents and Settingsusernhtdocs Configurare le singole installazioni di JAMP: <?php $this->dir_real_web = &quot; C:/Documents and Settings/user1/htdocs/jamp &quot;; $this->dir_web_jamp = &quot; /~user1/jamp/ &quot;; ?> Configurare Apache: Aggiungere/scommentare la riga del file httpd.conf : LoadModule userdir_module modules/mod_userdir.so Aggiungere/scommentare la riga del file httpd-userdir.conf : LoadModule userdir_module modules/mod_userdir.so ~user1, ~user2, … ~usern
    • LE CONNESSIONI
    Il file delle connessioni si trova in conn/conf.inc.php Ogni riga rappresenta una stringa di connessione ad una fonte dati quale: database, filesystem, file. < ds typeobj=“ds” conn=“ idconn ” /> Paramentri di connessione: idconn | tipologia | localhost [ @schema ] | user | password | port
    • TIPOLOGIE DI CONNESSIONI
    Framework jamp|security|localhost|user|password|none Database(attualmente supportati mysql, mssql, pgsql, odbc) idconn|database|localhost[@schema]|user|password|port LDAP idconn|ldap|192.168.1.234|cn=admin,dc=jamp,dc=com|password|389 SSH( attributi privkeyfile e pubkeyfile del ds per uso dei certificati) idconn|ssh|localhost|user|pwd|22 ftp idconn|ftp|localhost|user|pwd|21 Tracciati Record il valore 1020 rappresenta la lunghezza del singolo record idconn|record|nomefile|1020|none|r XML idconn|xml|database.xml|none|none|none Filesystem idconn|filesystem|none|none|none|none Connessione csv idconn|csv|nomefile|none|none|r
    • CONFIGURAZIONE JAMP
    Richiamare la pagina di configurazione di JAMP: http://indirizzoip/jamp/conf/index.php PERMESSI DELLE DIRECTORY Verifica che Apache/IIS abbia accesso alle directory di JAMP. CONTROLLO VERSIONE Controlla che la versione installata sia aggiornata(necessità connessione internet) ESTENSIONI PHP Verifica la presenza delle estensioni necessarie al funzionamento del framework e delle connessioni. CONNESSIONI Gestione del file delle connessioni conn.inc.php IMPOSTAZIONI DI JAMP Costanti del framework file conn/setting.inc.php
    • CONFIGURAZIONE ESEMPI
    • Gli esempi mostrano il funzionamento sono il metodo più veloce ed intuitivo per capire il funzionamento di JAMP.
    • Tutti gli esempi sono già inclusi nel framework e si trovano nella directory examples.
    • La maggior parte degli esempi accedono a sorgenti dati:
    • Connessioni a files(xml, csv, record, filesystem): sono pronte all'uso perchè puntano a files, nelle connessioni a filesystem bisogna verificare se il percorso specificato all'interno del file sorgente XML nell'attributo base sia un path valido(locale o remoto).
    • Connessione a servizi(ssh o ftp): configurare solo la stringa connessione.
    • Connessione a database(mysql, mssql, ldap, ecc): Le connessioni a database, richiedono oltre che la configurazione della stringa di connessione anche l'importazione dei dati. Tutto il necessario si trova nella directory examples/resource
    • Sorgente PHP
    <?php require_once (&quot; ./../../class/system.class.php &quot;); $system = new ClsSystem( true ); $xml = new ClsXML(&quot; source.xml &quot;); $event = new ClsEvent( $xml ); $event- >managerRequest(); ?>
    • Inclusione framework(system.class.php)‏
    • Caricamento della struttura della pagina(source.xml)
    • Gestione degli eventi
    • Eventi e codice custom PHP e/o javascript dell’utente
    • Sorgente XML
    <? xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?> < jamp > < page typeobj=&quot;page&quot; title=&quot;title&quot;> < label typeobj=&quot;label&quot; value=&quot;Hello world&quot; /> </ page > </ jamp > Contiene la struttura della pagina intesa come l'insieme degli oggetti da instanziare.
    • COFFEE BREAK