vuoi
o PayPal
tutte le volte che vuoi
MVC
Il model è l'informazione che viene manipolata dall'applicazione, o anche solo dal widget.
La view è la visualizzazione del modello sullo schermo. Possono esistere view molteplici per ogni modello.
Il controller riceve gli input dall'utente e decide cosa significano e cosa si debba fare.
Modello Client-Server
Il modello Client/Server prevede due entità:
- L'entità Client che richiede il servizio
- L'entità Server che offre il servizio
L'interazione può essere stateful o stateless. Il server deve gestire la concorrenza.
Le principali specifiche di una architettura di un sistema distribuito web based sono:
- Completa aderenza allo standard HTTP
- Completa compatibilità con i Browser Web disponibili
- Apertura alle diverse tecniche e tecnologie di sviluppo software
- Possibilità di ingegnerizzare il software e il processo di sviluppo
- Scalabilità
- Tolleranza ai guasti
Architettura di base
Completa aderenza allo standard HTTP.
sviluppo software più strutturate.Scalabilità e tolleranza ai guasti buone, ma possono essere limitate dalla frammentazione dell'applicazione.Architettura basata su scripting client-side e server-side, con l'utilizzo della Common Gateway Interface (CGI).ingegneria del software su strutture realizzate da enormi quantità di filtri disaggregati.
Apertura alle diverse tecniche e tecnologie di sviluppo software: è possibile realizzare programmi CGI con diverse tecniche e linguaggi; sono molto usati sia linguaggi di scripting come il perl o tcl/tk ma è possibile utilizzare anche il C.
Scalabilità e tolleranza ai guasti ottime.
Java Servlet
Completa aderenza allo standard HTTP: OK.
Essendo Java permette una buona apertura alle diverse tecniche e tecnologie di sviluppo software.
Ingegnerizzabilità del software e del processo di sviluppo: anche in questo caso questa proprietà risente delle caratteristiche di Java.
Scalabilità: il Servlet Container è stateful, è possibile mantenere oggetti attivi in memoria che interagiscono con le servlet. La replicazione dipende quindi o dalla implementazione di strutture di clustering da parte del servlet container oppure da una soluzione a livello
applicativo.Service Page
Completa aderenza allo standard HTTP: OK.
Apertura alle diverse tecniche e tecnologie di sviluppo software: dipende dalla implementazione; ASP è una tecnologia proprietaria quindi completamente chiusa, ASP.NET è un tecnologia proprietaria ma con aperture verso il mondo esterno, per le JSP valgono tutte le considerazioni fatte per le Java servlet.
Ingegnerizzabilità del software e del processo di sviluppo: è un modello che permette un rapido sviluppo di applicazioni ma, preso da solo, non offre nessun strumento di ingegnerizzazione del software.
Scalabilità: come il ServletContainer, anche i SP Container sono in generale stateful, le diverse tecnologie offrono diverse soluzioni al problema della scalabilità.
Stack MEANLAMP problemi:
- Apache non è il web server più veloce esistente
- È difficile scrivere buon codice PHP riusabile e veloce da eseguire
- Si usano linguaggi diversi per front end e backend
- Molte conversioni
Dei dati (e.g., da XMP a PHP a HTML)
Non c'è una netta separazione nello sviluppo della parte client da quella server
MEAN: Full-stack Javascript framework
Permette di velocizzare e rendere più semplice (user-friendly) la creazione di applicazioni web robuste e facilmente mantenibili
È l'acronimo per:
- MongoDB
- Express JS
- Angular JS
- node.js
Con MEAN si passa da MVC (model-view-controller) lato server, a single web application lato client.
Vantaggi:
- 100% open source
- 100% Javascript (+JSON + HTML)
- 100% Web standard
- Modello consistente tra back-end e front-end
- Uso di Javascript in tutto lo stack
- Javascript (il linguaggio del web)
- JSON (data format del web)
- Nessuna conversione necessaria per il database
- Low memory overhead
- Si può iniziare lo sviluppo con il frontend
Svantaggi:
- Non esistono ancora linee guide per la generazione di codice JS
- Inoltre.. Javascript.. Solite problematiche dovute al blocco nel browser dell'esecuzione di script
- MongoDB non è robusto
Quanto a SQL server in termini di sicurezza.
NodeJS è una piattaforma software (non un web server nel linguaggio) cross-platform.
Permette di creare il proprio web server.
Si possono creare web application sopra di esso.
Node.js permette di avere web applications con connessioni real-time, two-way, dove non solo il client ma anche il server può iniziare una connessione, permettendo di trasferire dati liberamente.
Benefici:
- Permette di scrivere codice in Javascript.
- Estremamente veloce e leggero.
- Uso davvero efficiente delle risorse.
- Non c'è bisogno di eseguire un web server separato.
- Permette di avere un forte controllo della logica dell'app e dell'ambiente.
- Permette di gestire diversi utenti con poche risorse.
- È basato su Javascript V8.
- Usa un modello I/O non bloccante ad eventi (diverso dal modello thread base tradizionale): le richieste vengono tradotte in eventi, ognuno dei quali è associato a un event handler, e inserite in una coda. C'è un event loop.
- HCI (Human Computer Interaction): Ergonomia. Disciplina scientifica che si occupa dei problemi relativi al lavoro umano in rapporto alla progettazione delle macchine e agli ambienti di lavoro.
- Man-machine interaction: (anni 70') studi sul design basati sull'usabilità degli strumenti di lavoro e oggetti (ad es. macchine, computer, ecc.).
- Human-computer interaction: (anni 80') studi relativi alla progettazione di software e hardware.
- Interfaccia utente: È correlato agli aspetti e alle caratteristiche delle applicazioni utilizzate dagli utenti.
- Interaction Design (IXD): È collegato a un approccio multidisciplinare applicato alla progettazione di ogni interazione tra umani e sistemi informatici / digitali.
- Esperienza utente (UX): È correlato alla soddisfazione degli utenti.
La user experience è data da:
- lo stato interno di un utente (predisposizioni, aspettative, esigenze, ecc.) motivazione, umore, eccetera.), le caratteristiche del sistema progettato (ad es. complessità, scopo, usabilità, funzionalità, ecc.) il contesto (o l'ambiente) all'interno del quale si verifica l'interazione (ad es. contesto organizzativo / sociale, significatività dell'attività, volontarietà di utilizzo, ecc.). Usabilità La facilità d'uso e l'apprendimento di un oggetto creato dall'uomo come uno strumento o un dispositivo. Usabilità secondo ISO 9241-11:
- Efficacia -> gli utenti possono completare le attività, raggiungere obiettivi con il prodotto?
- Efficienza -> quanta fatica devono fare gli utenti? (spesso misurato nel tempo)
- Soddisfazione -> cosa pensano gli utenti della facilità d'uso dei prodotti?
- Apprendimento -> quanto è facile per gli utenti ottenere risultati di base compiti la prima volta che incontrano il design?
- Efficienza -> una
- Focus Group