modelli applicativi per il cloud computing - part 1 - edition 2014

22
Modelli applicativi per il Cloud Compunting/#1 Edizione 2014 Marco Parenzan

Upload: marco-parenzan

Post on 06-Dec-2014

285 views

Category:

Technology


1 download

DESCRIPTION

Some history developing applications, starting from OOP and three tier. The limitations, and some mistakes. Prepare moving to new architectures for Cloud Computing...in part 2

TRANSCRIPT

Page 1: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Modelli applicativiper il Cloud Compunting/#1

Edizione 2014Marco Parenzan

Page 2: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

MANUTENIBILITÀ VS. PERFORMANCES

Page 3: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Cos’è una applicazione?Per l’utente un «monolito»

Soluzione Applicativa«vede una Interfaccia utente»

Un’icona da clikkareUn programma da eseguire

Un file .exe sul disco

Utente

Page 4: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Programmazione Orientata agli Oggetti

Modellare la realtà, ma anche no

È un paradigma, alla pari della programmazione imperativa e della programmazione funzionale

È una tecnologia, non una filosofia

Attenzione i linguaggi: Statically typed, strongly typed, class based (Java, C#)

Class-based (Ruby, Python)

Non Class-based (Javascript)

Page 5: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Cos’è una applicazione?Per la OOP…

È un insieme di oggetti

…tra l’altro, non si può più dire «è un insieme di classi»

Page 6: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Three Tier

Data Access

Business Logic

Presentation

Page 7: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Design Patternsper i tiers dell’applicazione

Come scrivo gli oggetti?

Alla fine li posso classificare in alcune categorie

Derivano dall’esperienza di scrive «oggetti»

Page 8: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Entità

Cos’è una entità?

Rapprentazione (astrazione) di qualcosa di reale

Non è detto che sia concreto neppure nel mondo reale (un metodo, una procedura, ...)

Esempi

Ordine

Bolla

Fattura

Articolo

Utente

Caratterizzate da

Stato: insieme delle sue proprietà

Interazione

Con le entità «circostanti»

Page 9: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Three Tier + 1

Data Access

Business Logic

Presentation

Model

Page 10: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Three Tier Contracts

Contratto: qualcosa per cui due si mettono d’accordo

Due layer comunicano: si accordano su come comunicare.

Tipicamente uno definisce una funzionalità e uno la consume

Data Access

Business Logic

Presentation

Model

Page 11: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Cos’è una interfaccia

Definisce in Object Orientation COSA fare, ma non il come

Es. Persistenza di entità

GetAll

GetSingle

Update

Delete

Page 12: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Modelli applicativiper il Cloud Compunting/#1

Criticità

Page 13: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

A single model cannot solve every problem

A single model cannot be appropriate for reporting, searching, and transactional behaviors…

Page 14: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Anemic model

No actions on object

Only Values (and accessor methods)

A persistence-focused approach

Page 15: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Il databasenon è un buon punto di partenza

Non si deve scegliere a priori Come qualsiasi altra tecnologia, bisogna valutare quali funzionalità mette a disposizione

Altrimenti diventa un vincolo di progetto

Page 16: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Tecnologie di accesso ai dati

SQL (Specifico)

SQL (standard)

xdbc

ORM

NoSql

Web Services

REST

Page 17: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Modelli applicativiper il Cloud Compunting/#1

Un assaggio di futuro

Page 18: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

A method that returns data should not change the state of the object itself

Page 19: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

A method that change the state should not return any information

Page 20: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

“Every method should either be a command that performs an action, or a query that returns data to the caller, but not both.”

Page 21: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Different models for different needs

UI

ORM

CMD

Validatio

nTransacti

onsBusin

ess Rules

Write Model

UI

Read Model

Page 22: Modelli applicativi per il Cloud Computing - Part 1 - Edition 2014

Modelli applicativiper il Cloud Compunting/#1

Edizione 2014Marco Parenzan