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

Preview:

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

Citation preview

Modelli applicativiper il Cloud Compunting/#1

Edizione 2014Marco Parenzan

MANUTENIBILITÀ VS. PERFORMANCES

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

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)

Cos’è una applicazione?Per la OOP…

È un insieme di oggetti

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

Three Tier

Data Access

Business Logic

Presentation

Design Patternsper i tiers dell’applicazione

Come scrivo gli oggetti?

Alla fine li posso classificare in alcune categorie

Derivano dall’esperienza di scrive «oggetti»

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»

Three Tier + 1

Data Access

Business Logic

Presentation

Model

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

Cos’è una interfaccia

Definisce in Object Orientation COSA fare, ma non il come

Es. Persistenza di entità

GetAll

GetSingle

Update

Delete

Modelli applicativiper il Cloud Compunting/#1

Criticità

A single model cannot solve every problem

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

Anemic model

No actions on object

Only Values (and accessor methods)

A persistence-focused approach

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

Tecnologie di accesso ai dati

SQL (Specifico)

SQL (standard)

xdbc

ORM

NoSql

Web Services

REST

Modelli applicativiper il Cloud Compunting/#1

Un assaggio di futuro

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

A method that change the state should not return any information

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

Different models for different needs

UI

ORM

CMD

Validatio

nTransacti

onsBusin

ess Rules

Write Model

UI

Read Model

Modelli applicativiper il Cloud Compunting/#1

Edizione 2014Marco Parenzan

Recommended