SlideShare una empresa de Scribd logo
1 de 30
JAMP DAY 22 Maggio 2010 Relatori: Ruben Patanè Giampiero Ancilletta Università degli Studi di Roma "Tor Vergata"
[object Object],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
[object Object]
[object Object],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
[object Object],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)
[object Object],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.
[object Object],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.
[object Object],Barry Boehm’s "Cost of Change" curve
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Framework per lo sviluppo di applicazioni  WEB 2.0 basato su PHP e JAVASCRIPT  creato dalle esigenze di noi programmatori.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object]
[object Object],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
[object Object],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:ampptdocs
[object Object],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
[object Object],Scompattare il file   jamp_ version - release .zip  all'interno del profilo degli utenti: C:ocuments and Settingsser1tdocs ..................... C:ocuments and Settingsserntdocs 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
[object Object],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
[object Object],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
[object Object],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
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],<?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(); ?> ,[object Object],[object Object],[object Object],[object Object]
[object Object],<? 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.
[object Object]

Más contenido relacionado

Similar a JAMP DAY 2010 - ROMA (1)

Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
Yeser Rema
 
Corso Avanzato Alfresco Ecm
Corso Avanzato Alfresco EcmCorso Avanzato Alfresco Ecm
Corso Avanzato Alfresco Ecm
edoardo fraioli
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
Whymca
 

Similar a JAMP DAY 2010 - ROMA (1) (20)

Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
 
Installazione del cms alfresco
Installazione del cms alfrescoInstallazione del cms alfresco
Installazione del cms alfresco
 
Dot net framework 2
Dot net framework 2Dot net framework 2
Dot net framework 2
 
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
 
Catasto Rumore Struttura Informatica
Catasto Rumore Struttura InformaticaCatasto Rumore Struttura Informatica
Catasto Rumore Struttura Informatica
 
CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09
 
Novità di Asp.Net 4.0
Novità di Asp.Net 4.0Novità di Asp.Net 4.0
Novità di Asp.Net 4.0
 
Introduzione a Struts
Introduzione a StrutsIntroduzione a Struts
Introduzione a Struts
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3
 
Web frameworks
Web frameworksWeb frameworks
Web frameworks
 
Corso Avanzato Alfresco Ecm
Corso Avanzato Alfresco EcmCorso Avanzato Alfresco Ecm
Corso Avanzato Alfresco Ecm
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
ASP.NET performance optimization
ASP.NET performance optimizationASP.NET performance optimization
ASP.NET performance optimization
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
 
Hadoop SAR
Hadoop SARHadoop SAR
Hadoop SAR
 
Il buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceIl buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita felice
 

JAMP DAY 2010 - ROMA (1)

  • 1. JAMP DAY 22 Maggio 2010 Relatori: Ruben Patanè Giampiero Ancilletta Università degli Studi di Roma &quot;Tor Vergata&quot;
  • 2.
  • 3.
  • 4.
  • 6.
  • 7.
  • 8.
  • 9. 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.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.

Notas del editor

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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&apos;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&apos;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&apos;uso dei framework che come precedentemente detto riduce il codice necessario a sviluppare l&apos;applicazione anche da questo punto di vista risulta essere estremamente utile.
  7. Infine quando pensiamo alla progettazione di un software dobbiamo considere il suo intero ciclo di vita quindi anche eventuali richieste da parte dell&apos;utente di modifiche, studi ci dicono che il costo della modifica incide soprattutto nell&apos;attuazione della modifica stessa, minore è il codice necessario a realizzare l&apos;applicazione meno ripida sarà la mia curva. In definitiva possiamo affermare che i framework risultando essere la soluzione ottimale per l&apos;abbattimento di quelli che sono i tempi e costi di realizzazione.
  8. 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&apos;estrema potenzialità di questi strumenti dall&apos;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&apos;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&apos;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&apos;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&apos;oggi al domani in serie difficoltà perché chi ha prodotto il framework non ha più l&apos;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&apos;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&apos;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.
  9. Perchè gli utenti ordinari dovrebbero conoscere parole come &amp;quot;sistema operativo&amp;quot; &amp;quot;driver&amp;quot; o &amp;quot;patch&amp;quot;. C&apos;è 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.
  10. Prima descrivere nel dettaglio l’architettura generale e di entrare poi nei singoli dettagli del framework,