Upload
jampslide
View
311
Download
4
Embed Size (px)
Citation preview
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.0Locuzione 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
SviluppoRiutilizzato
DevelopmentFramework
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
INSTALLAZIONEPre-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:\xampp\htdocs
INSTALLAZIONE MULTIUTENTE - UNIX/LINUXScompattare 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 = "/home/user1/public_html";
$this->dir_web_jamp = "/~user1/jamp/";
?>
Configurare Apache:
Aggiungere/Scommentare la riga del file httpd.conf o apache2.conf:
Include /etc/apache2/mod_userdir.conf
~user1, ~user2,
… ~usern
INSTALLAZIONE MULTIUTENTE - WINDOWSScompattare il file jamp_version-release.zip all'interno del profilo degli utenti:
C:\Documents and Settings\user1\htdocs
.....................
C:\Documents and Settings\usern\htdocs
Configurare le singole installazioni di JAMP:
<?php
$this->dir_real_web = "C:/Documents and Settings/user1/htdocs/jamp";
$this->dir_web_jamp = "/~user1/jamp/";
?>
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 CONNESSIONIIl 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 CONNESSIONIFrameworkjamp|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|22ftpidconn|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 JAMPRichiamare 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 ESEMPIGli 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
<?phprequire_once("./../../class/system.class.php");$system = new ClsSystem(true);$xml = new ClsXML("source.xml");$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="1.0" encoding="utf-8"?><jamp> <page typeobj="page" title="title">
<label typeobj="label" value="Hello world" /> </page>
</jamp>
Contiene la struttura della pagina intesa come l'insieme degli oggetti da instanziare.
COFFEE BREAK