![Page 2: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/2.jpg)
Stack dei protocolli di rete:Modello ISO/OSI
• Livello Applicazione
• Livello Presentazione
• Livello Sessione
• Livello Trasporto
• Livello Rete
• Livello Collegamento Dati
• Livello Fisico
![Page 3: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/3.jpg)
I sistemi Web
• Si basano su alcuni protocolli aperti
• che consentono di realizzare un’infrastruttura di comunicazione aperta.
• Chiunque può entrare in rete, pubblicare un servizio Web, accedere ad un servizio web
![Page 4: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/4.jpg)
Modello ISO/OSI e Web
• Livello Applicazione HTML
• Livello Presentazione UNICODE/UTF-8
• Livello Sessione HTTP/HTTPS
• Livello Trasporto TCP
• Livello Rete IP
• Livello Colelgamento Dati CSMA/CD, 802.11, LTE, …
• Livello Fisico
![Page 5: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/5.jpg)
OK, ma le risorsecomputazionali?
Per realizzare un Sistema web serve:
• Storage (un file system)
• Un DBMS e i database
• Un server sul quale gira un Web Server (o HTTP Server, software chegestisce le chiamate HTTP)
Dove li mettiamo?
• Su una o più macchine (server) collegate ad Internet
![Page 6: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/6.jpg)
Problemi dei Server in casa?
• Rischio rottura
• Rischio furto (ambienti protetti/blindati)
• Surriscaldamento (quindi, ambienti condizionati)
• Costi energetici elevati
• Risorse umane dedicate
• Obsolescenza delle macchine
• Collegamento ad Internet costoso
• Scarsa scalabilità
![Page 7: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/7.jpg)
In principio, l’hosting
• Un Provider fornisce risorse computazionali sulle sue machine
• fa Hosting del sito
• fornisce un collegamento ad Internet veloce
• si accolla i costi di obsolescenza e aggiornamento del software di base
![Page 8: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/8.jpg)
Macchine Virtuali
• Macchina Virtualevi sono programmi che consentono di creare una macchina virtuale, cioè un sistema di elaborazione completo ma virtuale
• Sulla stessa macchina fisica possono essere emulate molteplici macchine virtuali
• Vantaggio: la macchina reale viene sfruttata di più, riducendo i tempi di inutilizzo
![Page 9: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/9.jpg)
Ripartizione sulle Macchine Virtuali
• Soluzione tradizionale:la ripartizione delle risorse è fissa (per es., numero di processori, tempo di CPU, storage)
![Page 10: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/10.jpg)
Hosting con Macchine Virtuali
Macchina Reale
Macchina Virtuale
Macchina Virtuale
Macchina Virtuale
Macchina Virtuale
Macchina Virtuale
Macchina Reale
Macchina Virtuale
Macchina Virtuale
Macchina Virtuale
Macchina Virtuale
Macchina Virtuale
![Page 11: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/11.jpg)
Ripartizione sulle Macchine Virtuali
• Soluzione del mondo cloud: viene riconfigurata dinamicamente, in base alle necessità
• Modello Pay per Use: paghi per quanto usi (o impegni)
![Page 12: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/12.jpg)
Quindi, perché Cloud?
• Perché si passa da una soluzione di hosting, dove le macchine virtuali sono ospitate sempre sulla stessa macchina fisica
• Ad una soluzione dove l’infrastruttura di elaborazione ridistribuisce le macchine virtuali sulla «Nuvola di Server»
• «Nuvola id Server» = «Cloud Computing»
![Page 13: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/13.jpg)
Cloud Computing
Risorsa
Risorsa
Risorsa
Risorsa
Risorsa
Risorsa
Risorsa
Risorsa
Risorsa
Risorsa
Risorsa
Risorsa
Risorsa
Risorsa
Risorsa
Risorsa
Risorsa
Risorsa
![Page 14: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/14.jpg)
I Layer del Cloud Computing
![Page 15: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/15.jpg)
Un altro stack: software
Un’applicazione si appoggia su molti strati
di software sottostanti
• Storage
•Networking
•Sistema operative
•Middleware
•Servizi tra S.O. e Applicazione (es., DBMS)
![Page 16: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/16.jpg)
Un altro stack: software
Quindi, lo stack software potrebbe essere suddiviso in layer:
• Infrastruttura
• Piattaforma
• Software Applicativo
![Page 17: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/17.jpg)
Infrastruttura
• Si intende il sistema di elaborazione vero e proprio, virtualizzato
• Il sistema cloud fornisce quindi l’infrastruttura di elaborazione, che il cliente poi gestisce
• IaaS: Infrastructure as a Service
![Page 18: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/18.jpg)
Piattaforma
• Si intende la piattaforma sulal quale si sviluppano e si eseguono i programmi e i sistemi informativi
• Comprende gli strumenti di sviluppo,di testing e di deploye tutti gli strumenti di integrazione
• PaaS: Platform as a Service
![Page 19: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/19.jpg)
Software
• Si intende il softtware applicativousato dagli utenti, che si avvale degli strati sottostanti
• SaaS: Software as a Service
![Page 20: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/20.jpg)
Visione di Insieme
![Page 21: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/21.jpg)
Ma perché «as a service»
IaaS: Infrastructure as a Service
• Il cliente non possiede più l’infrastruttura
•L’infrastruttura è posseduta dal Provider
•Per il cliente, l’infrastruttura è un servizio fornito dal Provider
![Page 22: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/22.jpg)
Ma perché «as a service»
PaaS: Platform as a Service
• Il cliente non possiede né l’infrastruttura né la piattaforma di sviluppo e esecuzione
•L’infrastruttura e la piattaforma sono possedute dal Provider
•Per il cliente, la piattaforma (e al di sotto, l’infrastruttura) è un servizio fornito dal Provider
![Page 23: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/23.jpg)
Ma perché «as a service»
SaaS: Software as a Service
• Il cliente non possiede né l’infrastruttura, né la piattaforma, né il sfotware
• Il software è posseduto dal Provider
•Per il cliente, il software (e al di sotto, l’infrastruttura e la piattaforma) è un servizio fornito dal Provider
• Il cliente non deve installare il sfotware
![Page 24: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/24.jpg)
Approccio «as a service»
Che cosa serve all’utente finale,
•Possedere il sofotware?
• Il servizio svolto dal software?
All’utente finale interessa il servizio
![Page 25: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/25.jpg)
Approccio «as a service»
Vantaggi
•Non deve compare i server (la ferraglia)
•Non deve compare il software di base/applicativo
•Non deve occuparsi di installare gli aggiornamenti
![Page 26: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/26.jpg)
Approccio «as a service»
Chi è l’utente finale
•Se parliamo di un sistema informativo aziendale, potrebbe essere
•Un dipendente dell’azienda
•Un cliente dell’azienda
•Un potenziale cliente che visita il sito e cerca informazioni
![Page 27: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/27.jpg)
Layer e Utenti
![Page 28: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/28.jpg)
Esempi Famosi
•Saas• La suite Google
• Microsoft Office 365
• Overleaf (ambiente di scrittura Latex)
• Salesforce.com
![Page 29: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/29.jpg)
Esempi Famosi
•PaaS• Microsoft Azure
• Google Cloud Platform
• Amazon Web Service
• IBM
• Heroku
• Force.com (la piattaforma di Salesforce.com)
![Page 30: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/30.jpg)
Esempi Famosi
• IaaS• HP
• IBM
• IBM AS400 in Cloud
![Page 31: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/31.jpg)
Storage as a Service
• Il servizio è lo storage• Dropbox
• Google Drive
• Apple iCloud
• Microsoft OneDrive
![Page 32: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/32.jpg)
Salesforce.com
•Si tratta di un prodotto totalmente a se
•È il primo sistema informativo aziendale erogato da sempre in modalità cloud (dal 1998)
•Di base, fornisce un CRM (CustomerRelationship Management) molto completo e altamente personalizzabile ed estendibile
![Page 33: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/33.jpg)
Force.com
•È la piattaforma di Salesforce.com• Database a oggetti senza gerarchie
• Linguaggio di programmazione Apex (derivato da Java), tradotto in Byte-code
• Formato XML specifico per pagine web, con pattern Model-View-Controller
• Interfaccia lightning basata sul pattern Model-Controller-Controller-view e JavaScript
• Web Services, JSON and WSDL integrati
![Page 34: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/34.jpg)
Architettura Multi-tenant
•Salesforce.com ripartisce le risorse in modo dinamico
•Una server farm gestisce i sistemi informativi di molti clienti (detti ORG)
•Le routine possono essere eseguite su un qualsiasi server
•SI perde completamente il concetto di macchina
![Page 35: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/35.jpg)
L’Infrastruttura?
•L’infrastruttura ovviamente c’è, ma non si vede
•È completamente mascherata al di sotto della piattaforma
![Page 36: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/36.jpg)
Quali tecnologie?
• Le tecnologie usate nel mondo del cloud sono molteplici
• Ma, di fatto, sono tecnologie che provengono da mondi noti o nuovi:
• Web: HTML, JavaScript, XML
• Web Services:REST, SOAP; WSDL
• Database: Relazionai, NoSQL
![Page 37: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/37.jpg)
Dettagli del Corso
![Page 38: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/38.jpg)
Argomenti Trattati
• XML: il formato di rappresentazione dei dati Alla base di molte applicazioni
• JavaScript: il linguaggio di programmazione client-side delle pagine web
• JSON: il nuovo formato di rappresentazione dei dati per il web
• AJAX: il meccanismo di comunicazione delle pagine web con i server
![Page 39: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/39.jpg)
Argomenti Trattati
• JQuery: un framework per potenziare javascript(e usare AJAX facilmente)
• Node.js: JavaScript passa sul lato server
• MongoDB e i NoSQL databases: il più famoso esempio di JSON storage
• I Web Services: REST, SOAP e WSDL
• Python: il linguaggio di programmazione per la Data Science
![Page 40: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/40.jpg)
Argomenti Trattati
• L’approccio a Micro-Servizi: le Lambda-function
• Map-Reduce: parallelizzale applicazioni usando primitive semplici, senza occuparsi dell’esecuzione
• Block-Chain: diverse soluzioni per diversi problemi applicativi (panoramica)
![Page 41: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/41.jpg)
Esercitazioni
• Esercitazioni pratiche in laboratorio
• Se rimarremo in modalità telematica, sarà un laboratorio virtuale, ma le faremo lo stesso.
• Useremo Google Cloud Platform
• Tenute da: Ing. Mauro Pelucchi
• Obiettivo: usare con mano queste tecnologie
• Al fine di svolgere un progetto
![Page 42: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/42.jpg)
Modalità d’Esame
• Scrittocon quiz e codici da completare
• Progettofacoltativo: se fatto consente di completare il votoValutato dall’Ing. PelucchiDa presentare entro luglio
![Page 43: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/43.jpg)
Mobile
![Page 44: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/44.jpg)
Applicazioni Mobili
• Le applicazioni mobili sono dette semplicemente «app»
• Difficile trattare nel dettaglio anche questo argomento
• Tuttavia, gli argomenti del corso torano utili anche per questo
• Che affrontiamo nelle slide seguenti
![Page 45: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/45.jpg)
Tipologie di App
• Applicazioni Native (native applictions)
• Applicazioni Ibride (Hybrid applications)
• Web App (embedded web applications)
![Page 46: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/46.jpg)
Applicazioni Native
• Sono scritte nello specifico linguaggio di programmazione nativo della piattaforma mobile
• Ovviamente, ogni piataforma ha un suo linguaggio di programmazione
• La stessa App va completamente riscritta, per passare da una piattaforma ad un’altra
![Page 47: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/47.jpg)
Applicazioni Native Android
• Linguaggio di programmazione: Java
• Ambiente di sviluppo: Android Studio (in origine Eclipse)
• Target intermedio: Byte-code
• Target finale: Dalvik virtual machine, con evoluzione del Byte-code a 16 bit
• Distribuzione attraverso Google Play Store
• Tutto il processo di pubblicazione è gestito via Web
![Page 48: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/48.jpg)
Applicazioni Native Android
• Recensente, Google ha introdotto un nuovo linguaggio di programmazione per sviluppo nativo
• Kotlin
• Per certi versi, è una via di mezzo tra Java e JacaScript
• Più snello di Java con tipizazione dinamica
• Che viene tradotto in Byte-code
![Page 49: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/49.jpg)
Applicazioni Native iOS
• Linguaggio di programmazione: Objective C
• Ambiente di sviluppo: XCODE su Mac
• Distribuzione attraverso iTunes Store
• L’app viene preparata da XCODE, che la invia ad iTunes Store
• Non si possono pubblicare App senza Mac
![Page 50: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/50.jpg)
Storia di Objective C
• All’inizio degli anni ’80
• vennero proposte due estensioni a oggetti del C• C++
• Objective C
• Il «vincitore» è stato il C++ (come estensione ufficiale del C)
• Ma Objective C non scomparve, rimase nascosto fino alla fine degli anni 2000
![Page 51: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/51.jpg)
Storia di Objective C
• È ricomparso in modo deciso con i primi smartphone di Apple
• L’ambiente di sviluppo comprende molte librerie, dove molte funzioni hanno il prefisso «NS»
• Che cosa indica «NS»?
• NextStep, il sistema operativo sviluppato dalla società NextStep fondata da Steve Jobs a inizio anni ’90
• Quando venne messo alla porta dalla Apple
![Page 52: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/52.jpg)
Storia di Objective C
• Nel 1985, Steve Jobs viene cacciato dalla Apple (che aveva fondato)
• Fonda NexXT per lo sviluppo di workstation grafiche ad alte prestazioni (chiamate NextStep)
• NeXT acquisisce la licenza di Objective C e sviluppa il sistema operativo con Objective C
• Quindi, Objective C si è sviluppato in nella nicchia di NeXT, per sofotware ad alte prestazioni
![Page 53: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/53.jpg)
Storia di Objective C
• Nel 1997, ripreso il controllo della Apple, Objective C rientra in Apple insieme a Steve Jobs
• Objective C rimane nastosto all’interno di Apple, fino a che non c’è stata l’esplosione dei degli smartphone Apple.
![Page 54: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/54.jpg)
Applicazioni Native iOS
• Apple ha introdotto un nuovo linguaggio di programmazione per iOS
• Swift
• Progettato per attirare i programmatori HJavaScript
• Molto più semplice e stabile di Objective C
• Anch’esso basato sulla tipizzazione dinamica
![Page 55: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/55.jpg)
Applicazioni Ibride
• Come evitare di riscrivere le applicazioni per passare da iOS ad android e viceversa?
• Idea: usare un altro linguaggio di programmazione
• Ma come eseguire questa app?
• Due possibilità:• Interpretazione
• Traduzione
![Page 56: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/56.jpg)
Applicazioni Ibride Interpretate
• Il linguaggio viene interpretato all’internodi uno scheletro base
Sistema Operativo
Interprete
Applicazione
Codice da
Interpretare
![Page 57: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/57.jpg)
Idea: JavaScript + HTML
• HTML per il layout grafico
• JavaScript per la parte dinamica
• Web View: componente per visualizzare HTML
• Interprete JavaScript
• Bridge: libreria per consentire al codice di accedere al sistema operativo
Sistema Operativo
Bridge
Applicazione
Codice JavaScipt
+
HTML
Web View
Interprete JavaScript
![Page 58: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/58.jpg)
Cordova / PhoneGap
• Apache Cordova: il framework che integra il bridge e l’interprete JavaScript
• Versioni principali:• Per iOS
• Per Android
• Le varie versioni forniscono la stessa interfaccia (più o meno) con i diversi sistemi operativi.
• Apache Cordova è gratuito
![Page 59: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/59.jpg)
Cordova / PhoneGap
• Adobe PhoneGap:: un servizio di Adobe per sviluppare applicazioni ibride basate su Apache Cordova
• Il sistema genera i build per le diverse piattaforme on-line
![Page 60: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/60.jpg)
Microsoft Xamarine
• Questo strumento adotta lil secondo approccio
• L’applicazione viene scritta in C# (linguaggio proprietario di Microsoft)
• Xamarine traduce il codice C#
• In Java, per Android
• Nel codice binario per iOS
![Page 61: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/61.jpg)
Vantaggi/Svantaggi
• Apache Cordova consente di adattare le competenze dei programmatori web
• Ma l’esecuzione risulta generalmente lenta
• Xamarine richiede di acquisire competenze specifiche (se non si conosce già C#)
• C# è un linguaggio più complicato di JavaScript
• Le applicazioni sono molto veloci in esecuzione
![Page 62: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/62.jpg)
React Native
• Esiste una terza via: il framework React Native
• Ideato e spinto da Facebook
• Il codice REACT-native viene tradotto in Java (per Android) e i Objective C (per iOS)
• Ma si usa un unico linguaggio di programmazione
• Quindi, un app React-native non è una web view
![Page 63: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/63.jpg)
React Native
• Il linguaggio di programmazione è JavaScript
• Ma non viene interpretato
• Fornisce un framework per gestire le view
• Fiorisce librerie per gestire le risorse del dispositivo
![Page 64: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/64.jpg)
Web Application
• L’app che si installa sul dispositivo mobile contiene solo una Web View
• Le schermate sono pagine HTML + JavaScript che vengono recuperate dal server
• Vantaggi: l’app è di fatto un’applicazione web, gestibile con specifici fogli di stile dal sito web
• Svantaggi: necessità del collegamento ad Internet
![Page 65: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/65.jpg)
App Mobili e resto del Mondo
• Le App devono comunicare con i server di appoggio
• I server forniscono API (Application Programming Interface) basate sui web service
• Quindi, si ha una visione integrata: sono le stesse tecnologie
• Progettazione integrata: separare l’interfaccia dai servizi
• Diverse interfacce usano gli stessi servizi
![Page 66: Tecnologie Cloud e Mobile Lez. 01 - Università degli …Storia di Objective C •È ricomparso in modo deciso con i primi smartphone di Apple •L’ambiente di sviluppo comprende](https://reader035.vdocuments.site/reader035/viewer/2022062604/5fbc303384fd1710f2723be7/html5/thumbnails/66.jpg)
Approccio Integrato
• Tanti componenti diversi
• Ognuno con un ruolo ben preciso
Servizio 1 Servizio0 2 Servizio 3
Sito Web 2Sito Web 1
App Nativa
App Ibrida
Web App