Piattaforme Software Distribuite - dis.uniroma1.itberaldi/PSD2012/slides/Introduzione_012.pdf ·...

51
Piattaforme Software Distribuite Roberto Beraldi

Transcript of Piattaforme Software Distribuite - dis.uniroma1.itberaldi/PSD2012/slides/Introduzione_012.pdf ·...

Piattaforme Software Distribuite

Roberto Beraldi

Programma

• Applicazioni oggi

• Cloud computing

• Python

• Javascript

• Php

• Mobile app (cenni)

Esame

• Progetto individuale

• Scritto

Introduzione

Ecosistema applicazioni distribuite

Social

Based

Mobile

Enterprise

Geo-based

Web

based

….

Tecnologie

Linguaggi

Piattaforme

SviluppoProtocolli

REST

Scrivere applicazioni distribuite oggi

RETE DATI

INTERNET

Scrivere applicazioni distribuite oggi

RETE DATI

INTERNET

RETE TELEFONICA

FISSA

Scrivere applicazioni distribuite oggi

RETE DATI

INTERNET

RETE TELEFONICA

MOBILE

RETE TELEFONICA

FISSA

Scrivere applicazioni distribuite oggi

RETE DATI

INTERNET

RETE TELEFONICA

MOBILE

RETE TELEFONICA

FISSA

Nuove possiblità: QRCode

QR-code

QR-reader

Internet

codifica URI

Esempio: annunci immobiliari

Altro esempio

Applicazioni mobili

Realtà aumentata

• Posizione, accelerometro, giroscopio

Geo based

• Informazioni correlate al ‘contesto’, per

esempio alla posizione attuale…

• GPS, Triangolazione, IP provider

Altro esempio: videosorgeglianza

Applicazioni distribuite

Applicazioni distribuite

Applicazioni distribuite

Applicazioni distribuite

jj

Applicazioni distribuite

Applicazioni distribuite

Applicazioni distribuite

Decompozione verticale: client/server

Decomposizione Orizzontale: peer2peer

Piattaforme SW distribuite

• Insieme di tool per lo sviluppo e l’esecuzione

di applicazioni distribuite

Big view

Distributed

System

Distributed

applications

run on

Resources

virtualizes

OS

HW deviceCPU

Local Comm

Higher abstractions :

-Process (threads)

- File, Virtual Memory

-Active role (not need

control SW, which is

‘embedded’)

- Receive and respond to

external events

(interrupts)

-passive role

-need to be

‘controlled’

Memory

Socket Socket

OS

C M D

Comm

Remote Comm

SW SW

Esempio, stack completo

Remote Communication

OS1

HW1

OS2

HW2

SW1 SW2

Protocol

Esempio

Client Server

Protocol

•GET•POST•HEAD•PUT•DELETE•TRACE•OPTIONS•CONNECT

rosso= No side-effect sul server

Status Line

Esempio

Client Server

Protocol

Header

Body

Esempio mapping tecnologico (1/3)

Client Server

HTTP

HTML

User Agent

mod_php

TCP/IP connection

3306,…

Esempio mapping tecnologico (2/3)

Client Server

HTTP

HTMLEmbedded

Objects

User Agent

mod_php

TCP/IP connection

3306,…

Esempio mapping tecnologico (3/3)

Client Server

HTTP

HTML+JS

User Agent

mod_php

TCP/IP connection

3306,…

Altro esempio

HTML

Tomcat

Servlet

Container

Legacy

Server

HTTP

Esempio: Altervista ®

Web API

WEB-API

INRTENET

Client

Application

Mediante una WEB API si fornisce

Un’interfaccia programmatica verso

Servizi normalemente fruiti da una persona

mediante un broweser

Più popolari

Web API

Esempio: Google apis

Web API

Programmatic Service Access

(many methods)

Web URL

(standard HTTP methods)

web browerHTTP

Application

HTTP

Rest,XML-RPC,etc

(Web API)

Esempio: Applicazioni mashup(1/2)

Client

Server

Web API…

Server

Web API…

JSON-RPC

Server

Web API

AJAX

Python

..

Esempio: Applicazioni mashup(2/2)

Pro

vid

e A

Pro

vid

er

B …API WEB

CLIENT

s=A.method(par1)

z=B.method(s,par2)

Esempio: Applicazioni mashup (2)

HTTP

-Server Web

-”mashupper”

(e.g.,dynamic pages

Php)

WEB API

XML-RPC

SOAP

Service Oriented Architecture

Service Oriented Architecture

• Architettura verticale

• No comunicazione fra applicazioni

Silos applicativi Architettura orientata ai servizi

Esempio: Workwflow applications

Chiama WS

che implementa

Attività 1

Un’attività è realizzata come servizio

BPEL

Interoperabilità

WEB-API

Client

Application

(Tecnologia A)

Client

Application

(Tecnologia B)

Client

Application

(Tecnologia C)

….

Sicurezza

OAuth 2

Esempio: Google calendar

• Dropbox is a free (up to 2GB), web-based cloud storage mechanism– file backup service

– data sharing

– Data sync among different clients

– Mobile applications

iPhone

iPad

Blackberry

Windows

Linux

MAC

.mp3

.avi.jpg

Freemium business model

REST / JSON

Architetture SW di un’applicazione

• Silos

• SoA

• Mashup

• P2P

Domande?