30
JAMP DAY 22 Maggio 2010 Relatori: Ruben Patanè Giampiero Ancilletta Università degli Studi di Roma "Tor Vergata"

JAMP DAY 2010 - ROMA (1)

Embed Size (px)

Citation preview

Page 1: JAMP DAY 2010 - ROMA (1)

JAMP DAY

22 Maggio 2010

Relatori:

Ruben Patanè

Giampiero Ancilletta

Università degli Studi di Roma "Tor Vergata"

Page 2: JAMP DAY 2010 - ROMA (1)

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

Page 3: JAMP DAY 2010 - ROMA (1)

INTRODUZIONE AL WEB 2.0

Page 4: JAMP DAY 2010 - ROMA (1)

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

Page 5: JAMP DAY 2010 - ROMA (1)

GARA TRA BROWSER

Page 6: JAMP DAY 2010 - ROMA (1)

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)

Page 7: JAMP DAY 2010 - ROMA (1)

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.

Page 8: JAMP DAY 2010 - ROMA (1)

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.

Page 9: JAMP DAY 2010 - ROMA (1)

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.

Page 10: JAMP DAY 2010 - ROMA (1)

IL COSTO DELLE MODIFICHE

Barry Boehm’s "Cost of Change" curve

Page 11: JAMP DAY 2010 - ROMA (1)

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.

Page 12: JAMP DAY 2010 - ROMA (1)

COS’E’ JAMP ?

Framework per lo sviluppo di applicazioni

WEB 2.0 basato su PHP e JAVASCRIPT

creato dalle esigenze di noi programmatori.

Page 13: JAMP DAY 2010 - ROMA (1)

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

Page 14: JAMP DAY 2010 - ROMA (1)

PERCHE’ USARE JAMP ?Opensource:

• Tutti possono contribuire

• Il codice è scritto in modo chiaro e semplice

• Tutti possono adattare il codice alle proprie esigenze

Page 15: JAMP DAY 2010 - ROMA (1)

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

Page 16: JAMP DAY 2010 - ROMA (1)

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

Page 17: JAMP DAY 2010 - ROMA (1)

PERCHE’ USARE JAMP ?Veloce:

• Leggero

• Ottimizzazione delle transazioni

Page 18: JAMP DAY 2010 - ROMA (1)

INSTALLAZIONE ED ESEMPI

Page 19: JAMP DAY 2010 - ROMA (1)

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)

Page 20: JAMP DAY 2010 - ROMA (1)

STRUTTURA DELLE DIRECTORY

Page 21: JAMP DAY 2010 - ROMA (1)

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

Page 22: JAMP DAY 2010 - ROMA (1)

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

Page 23: JAMP DAY 2010 - ROMA (1)

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

Page 24: JAMP DAY 2010 - ROMA (1)

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

Page 25: JAMP DAY 2010 - ROMA (1)

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

Page 26: JAMP DAY 2010 - ROMA (1)

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

Page 27: JAMP DAY 2010 - ROMA (1)

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

Page 28: JAMP DAY 2010 - ROMA (1)

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

Page 29: JAMP DAY 2010 - ROMA (1)

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.

Page 30: JAMP DAY 2010 - ROMA (1)

COFFEE BREAK