Anteprima
Vedrai una selezione di 4 pagine su 13
Applicazione e Servizi Web - Riassunti dispense Pag. 1 Applicazione e Servizi Web - Riassunti dispense Pag. 2
Anteprima di 4 pagg. su 13.
Scarica il documento per vederlo tutto.
Applicazione e Servizi Web - Riassunti dispense Pag. 6
Anteprima di 4 pagg. su 13.
Scarica il documento per vederlo tutto.
Applicazione e Servizi Web - Riassunti dispense Pag. 11
1 su 13
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

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.
single-threaded nel quale, ad ogni iterazione, si controlla se ci sono nuovi eventi nella coda e si esegue il relativo handler. Per le sue caratteristiche Node.js è una piattaforma altamente indicata per data-intensive real-time application, che eseguono su diversi device distribuiti. NON usare node per applicazioni cpu-intensive. Express è un Node.js web application framework server side, minimale e flessibile. Consente di definire middleware per rispondere a richieste HTTP. Consente di definire una tabella di routing per eseguire azioni differenti in base a: Metodo HTTP, URL. MongoDB è un database non relazionale, classificato come NoSql database. Non utilizza le solite strutture a tabelle relazionali ma documenti json-like con schema dinamici. Angular è un framework javascript open source che permette di creare applicazioni single page. Human-Computer Interaction: Concepts and Methodologies. User interface and Interaction. Interface: è uno strumento di interazione. Interaction: Comunicazione. Un'attività.
  1. 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.
  2. Man-machine interaction: (anni 70') studi sul design basati sull'usabilità degli strumenti di lavoro e oggetti (ad es. macchine, computer, ecc.).
  3. Human-computer interaction: (anni 80') studi relativi alla progettazione di software e hardware.
  4. Interfaccia utente: È correlato agli aspetti e alle caratteristiche delle applicazioni utilizzate dagli utenti.
  5. Interaction Design (IXD): È collegato a un approccio multidisciplinare applicato alla progettazione di ogni interazione tra umani e sistemi informatici / digitali.
  6. 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?
    Usabilità secondo Nielsen:
    • Apprendimento -> quanto è facile per gli utenti ottenere risultati di base compiti la prima volta che incontrano il design?
    • Efficienza -> una
    volta che gli utenti hanno imparato il design, come velocemente possono svolgere compiti? Memorabilità -> quando gli utenti tornano al design dopo un periodo di non utilizzo, con quale facilità possono essere ripristinate le competenze? Errori -> quanti errori commettono gli utenti, quanto gravi sono questi errori e da quanto facilmente possono recuperare gli errori? Soddisfazione: quanto è piacevole usare il design? Fasi di Design e Sviluppo User-Centered Design (UCD) Un quadro di processi in cui i bisogni, i desideri e le limitazioni degli utenti finali di un prodotto, servizio o processo vengono considerati con attenzione in ogni fase del processo di progettazione. Questa metodologia di progettazione si basa principalmente sul coinvolgimento degli utenti in modo molto attivo e sul sottovalutazione dei requisiti e delle preferenze degli utenti e di compiti. Analisi degli utenti Definire Personas e Scenarios Design partecipativo Questa è un'altra metodologia.che può essere sfruttata durante la progettazione, lo sviluppo e la valutazione di un prodotto / servizio. Si basa sul coinvolgimento di utenti reali in ogni passo. Lo scopo è fare in modo che gli utenti abbiano ciò di cui hanno veramente bisogno.
    1. Focus Group
    Dopo aver identificato gli utenti target e aver definito le storyboard si può effettuare un focus group. È una metodologia usata per esplorare e scoprire vantaggi e svantaggi di un limitato e insieme predefinito di utenti. Durante un focus group, un moderatore facilita una discussione di gruppo tra gli utenti, incoraggiando il libero scambio di idee e opinioni. Questo permette di raccogliere informazioni preziose sulle esigenze e le preferenze degli utenti, che possono poi essere utilizzate per migliorare il prodotto o il servizio.
Dettagli
A.A. 2019-2020
13 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher stefano.salvatori di informazioni apprese con la frequenza delle lezioni di Applicazioni e Servizi Web e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Mirri Silvia.