TAAS
Informazioni Corso
- Giovanna Petrone
- Laboratorio
- partecipazione obbligatoria
- a gruppi
- simili a corsi di management nelle aziende
- Obiettivi
- Extreme Programming
- imparare a gestire un progetto
- identificare l’ambito per poter gestire correttamente lo sviluppo
- off the shelf
- per ogni cliente possibile
- custom made
- project scheduling
- stesura dei requisiti e sviluppo dei task
Project Management
- Meeting
- Project Meeting
- Project Review
Traditional Approach
- Project Charter
- objectives, no goals
- assunzioni, restrizioni
- misure
- Planning
- l’approccio cerca di anticipare i problemi
- stabilire obiettivi concreti
Maven
- repeatable builds
- dipendenze transitive
- gestisce l’ambiente di sviluppo e di esecuzione
Ogni progetto è identificato dal GAV
- groupID:artifactID:version
Per progetti di grandi dimensioni si può definire un parent project da cui ereditare la configurazione dall’alto.
Maven
è opinionato riguardo la struttura del progetto.
- target, src, …test, etc
mvn install
mvn clean
mvn clean compile
JEE
Java Enterprise
- quando ci sono necessità di scalabilità
- adatta allo sviluppo di applicazioni web-based a livello di impresa
- il competitor Microsoft è
.net
Offre funzionalità on top of i componenti di gestione dati e database
- servlet
- injection
- web pages
- expression language
- SOAP services
- REST services
- JSON
- validation
- persistence
- concurrency
- security
- …
Enterprise Java Beans
EJB
Componenti sul lato server
Single Page Application
Le interazioni sono gestite dal client che richiama il server solo per le richieste dati necessarie alle interazioni utente.
- niente reload continui o page flicker
- interazione più veloce e seamless, migliore
UX
- il render è gestito da
JavaScript
È una evoluzione a partire dal sito web classico, carica una singola pagina HTML
. Sfruttano AJAX
e HTML5
per creare una web app fluida e responsiva.
Docker
Spring
Angular
Service Oriented Architecture
-
necessità di integrare servizi eterogenei tra loro di terze parti
-
prima di questa architettura si utilizzavano software
- sito-ed, closed, monolithic, brittle
- una volta aggiornata una delle sezioni andavano testate e redeployed tutte quante
-
dopo
- strutturare il software attorno applicazioni composite e composed business process
- vengono estratti i servizi riutilizzabili, reusable business services
- test e redeploy sono necessari solamente per il modulo aggiornato successivamente
- i servizi vengono poi orchestrati per il funzionamento delle applicazioni sovrastanti
Web service wrapper sono stati utilizzati per creare interfacce tra una lingua franca (XML
) e applicazioni in un qualsiasi linguaggio.
Uno shift fondamentale dell’uso del web
- web human-centric
- maggioranza delle transazioni web iniziate da un umano
- web application-centric
- scambi inter-application
- necessità di esporre tramite uno standard dei servizi sul web
Questi web-service
sono
- encapsulated
- loosely coupled
- contracted software objects via standard protocols
- disponibili tramite web
- utilizzano messaggi
XML
standardizzati - indipendenti da
OS
o linguaggio - self describing via
XML
- easily discoverable
Gli standard XML
sono:
- SOAP, simple object access protocol
- WSDL, web services description language
- UDDI, universal description, discovery and integration
- Microsoft
- interrogati da applicazioni in rete
- sostanzialmente delle pagine gialle per
SOAP
- provvedono contact/business information
- binding information e
API
Il modello di uso è
- publish
- find
- bind
Per l’utilizzo di SOAP
- RPC-style, sincrono
- remote procedure call
- Document-style, asincrono
La differenza con REST è che con questa architettura ho la possibilità di fare programmazione distribuita, le richieste possono essere vere richieste programmatiche mentre l’alternativa si occupa più prettamente di scambio di dati.
Representational State Transfer
- REST
- 2000, tesi di dottorato di Roy Fielding
- il tipo di contenuto che viene restituito sta al programmatore
- spesso
JSON
,XML
- spesso
- i siti web sono
RESTful
- non ha l’espressività di WSDL
Utilizzo dei metodi http
GET
POST
PUT
DELETE