Consistente? De-normalizzazione, consistenza eventuale e assenza di transazioni, perché sono un vantaggio e non un problema.

Slides:



Advertisements
Presentazioni simili
“Insieme per crescere”
Advertisements

2006 KILOG KIMO la soluzione per il Mobile Office Gabriele Ottaviani Product Manager
U.V.P. la base del Marketing
CORSO DI SICUREZZA SU RETI II PROF. A. DE SANTIS ANNO 2006/07 Informatica granata Gruppo 2 ISP Gruppo 3 ISP.
SUPERARE IL PANICO.
Limpresa : prospettive di lettura Limpresa è un fenomeno complesso: è un insieme di attività e di processi svolti da una comunità di persone, ma anche.
La progettazione secondo la norma internazionale ISO 9001
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Diritto e Informatica.
Introduzione al datawarehouse
Problem solving Metodologia di lavoro.
QUELLE DUE.
L’Informatica dal Problema alla Soluzione
Problema e algoritmo Prof. Baldassare Galia 2002.
© 2011 Sala, Stivani Anno Accademico 2010 / 11 Adriano Sala - Eros Stivani Facoltà di Scienze Matematiche Fisiche e Naturali Logica dei Servizi e della.
IL COLLOQUIO DI SELEZIONE
La Modifica dei Dati in una Base Dati La modifica dei dati contenuti allinterno di una base dati è unoperazione delicata Infatti, ogni potenziale problema.
LE LEGGI DELL’INNOVAZIONE AZIENDALE
1 REALTA E VISION MBS LUGLIO STIME OCSE LUGLIO 2009 SUL PIL ITALIANO 2009: -5,1% 2010: +0,1%
Lezione 2. SUI CONCETTI DI SVILUPPO CRESCITA, DECRESCITA Corso di Economia dello Sviluppo Internazionale Lezione 2. SUI CONCETTI DI SVILUPPO CRESCITA,
Significati della scarsità idrica Clima eccezionalmente caldo e privo di piogge Lacqua è un bene limitato Lacqua è una risorsa infinita Lacqua più vale.
Argomenti della prima lezione (parte introduttiva)
ECONOMIA DELLE IMPRESE
Lezione 20. On Line E il nucleo centrale di tutta la trasformazione Anche se esiste - almeno concettualmente - da molti anni (Arpanet 1969 – http 1991.
Nuova tipologia di ruolo segreteria LA SEGRETERIA LIGHT a cura del Servizio per il Personale.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Distributed File System Service Dario Agostinone.
Argomenti della prima lezione (parte introduttiva) Sociologia ed esperienza Ruolo sociale Lo sguardo sociologico ed il senso comune.
SVILUPPO MODERNO DI APPLICAZIONI PER WINDOWS
Restituzione questionario
MLM Multi Level Marketing.
Inserite il Vostro Nome Utente e la Vostra Password … e fate un click per continuare.
Windows Azure Community Tour… la vendemmia Mario De Ghetto Microsoft MVP – Visual Basic Development Iscritto allOrdine degli Ingegneri di Belluno Community.
KIMO la soluzione per il Mobile Office
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
La seconda lingua comunitaria: perché? (...) In un mondo in rapida evoluzione, è assolutamente indispensabile che tutti imparino le lingue straniere.
Ar.System 5x soluzione base per il Project Management aziendale.
Firenze – Festival della Creatività 2009 Comm.it s.r.l. – Ing. Davide Rogai, Ph.D. – Software >> fast on demand software.
La gestione informatica dei documenti
Alloy. Intestazione (1) Al modello descritto è stato dato il nome di azienda_compravendita_materieprime come espresso dalla traccia, tale modello è volto.
L ANELLO 2 Un alunno presentò al suo professore un problema: « Sono qui, professore, perchè sono tanto debole, e non ho la forza per fare.
UNA LITIGATA FINITA BENE
O PEN S OURCE M ANAGEMENT 16 Dicembre 2011 IL PROGETTO DI CRESCITA QUALE STRADA PER IL FUTURO?
Ciao amichetta….. Ti va stasera di partecipare alla serata più fica del mondo??? Ci saremo noi, dei bei maschioni, giochi, divertimento, sesso, alcool,
Proprietà di Brianza Solidale Vietata la riproduzione 1.
LA LIM IPPSA NINO BERGESE.
Ci vogliamo liberare da ambiguità verbali, logiche o di sostanza? Dobbiamo precisare il concetto di Educazione - istruzione, campo nel quale ci consideriamo.
Tassonomia dei Sistemi Distribuiti Antonio D'Angelo.
IL M E T O D O. IL METODO IL METODO DEFINIZIONI E REQUISITI DEFINIZIONI E REQUISITI METODO vs OBIETTIVO METODO vs OBIETTIVO LE DUE DIMENSIONI DEL METODO.
“Come costruire una relazione genitori – figli positiva per entrambi”
ACCONTENTARSI PER ESSERE CONTENTI?
Infrastruttura per la gestione distribuita di un sistema di prenotazione Progetto di: Fabio Fabbri Matricola
Fonti energetiche rinnovabili Celle a combustibile
Strategia di uno sviluppo
Ciascuno di noi ha, dunque, la sua storia...io vi racconto la mia...
Il primo focus group Alcune citazioni.
Come risolvere il cubo di RUBIK
E - Commerce.
Conoscere la propria Azienda per competere nel mercato con successo…… Benvenuti Presentazione realizzata da Antonio Perini Vero Project S.r.l.1.
Anime Bianche & Anime nere. Qual è l’abilità che oggi l’imprenditore moderno deve assolutamente possedere ?
IL PREVENTIVO DA PERDITA DI TEMPO A OPPORTUNITA’.
Le basi di dati.
La gioia di amare.
/ Analisi anomalie bancarie Anatocismo bancario Assicurazioni RC AUTO Assicurazioni Casa Assicurazioni professionali Assicurazioni.
Web Agency specializzata in pay per click, search marketing e keywords advertising.
Analisi matematica Introduzione ai limiti
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
MBS ITALY (Moresco Business Solutions Italy) 2016.
Situazione attuale (triennio clinico) Orario delle lezioni: 8:30-11:30 = esercitazioni 11:30-13:30 = lezione frontale 14:30-17:30 = lezione frontale Tot:
Tre sostanze chimiche: mescolandole ne succedono di tutti i colori. Cosa succede invece miscelando tre mappe mentali?
Transcript della presentazione:

Consistente? De-normalizzazione, consistenza eventuale e assenza di transazioni, perché sono un vantaggio e non un problema.

Mauro Servienti Managed //milestone.topics.it //blogs.ugidotnet.org/topics RavenDB trainer NServiceBus trainer/support Microsoft MVP – Visual C#

DEFINIZIONI Cominciamo con il metterci d’accordo sull’argomento

Consistenza è il grado di accordo tra le parti che guardano uno stesso sistema in un dato momento T più le parti concordano su quello che vedono più il sistema è consistente

Accoppiamento è il grado di interdipendenza tra le parti più il cambiamento di una parte impatta sulle altri più il sistema è accoppiato

Accoppiamento temporale è una forma specifica di accoppiamento più la non disponibilità di una parte impatta sulle altre più il sistema è accoppiato

ABBIAMO UN PROBLEMA?

Contesto e requisiti È fondamentale identificare il contesto; senza contesto i problemi sono aria fritta; I requisiti determinano i confini del problema ma ancora di più della soluzione; Una soluzione è valida quando è validata dai requisiti altrimenti è inutile sovra- ingegnerizzazione;

Un esempio teorico Single Picker per Batch Multiple Picker per Batch

IL REQUISITO

e-commerce Abbiamo un “piccolo” portale di e-commerce che sta rapidamente crescendo e vogliamo: – Migliorare i tempi di risposta del portale; – Dare in out-sourcing la gestione delle spedizioni; – Espandere il nostro business ad altri paesi extra europei;

TEMPI DI RISPOSTA Diamo per scontato che abbiamo identificato il problema e non è il nostro codice

Sharding e Replica Se il database va piano la prima cosa da guardare è l’hardware, fine, spesso un buon SSD risolve tutti i problemi con un impatto nullo sull’architettura; Se un SSD non basta Sharding e Replica sono l’unica vera soluzione, soluzione drastica e dolorosa;

E le transazioni? Non è più pensabile a questo punto fare in una singola passata (aka Commit): – Modifica del carrello; – Checkout; – Creazione dell’ordine; – Creazione della spedizione “Banalmente” potrebbero essere su database diversi;

OUT-SOURCING DELLE SPEDIZIONI

Accoppiamento Store Front End Shipping Service

Accoppiamento #2 L’accoppiamento con un servizio è molto pericoloso, a prescindere: – Leghiamo due componenti che nonostante siano sotto il nostro controllo non possiamo garantire essere disponibili nello stesso momento; L’accoppiamento con un servizio esterno, non sotto il nostro controllo è un suicidio: – Non abbiamo neanche lontanamente la possibilità di garantire nulla;

ESPANSIONE DEL BUSINESS

…e le time-zone? Ci espandiamo dall’Europa verso agli Stati Uniti e il nostro concetto di alta disponibilità cambia drasticamente: – Passiamo da 3 fusi orari a 12 – La finestra temporale in cui possiamo essere offline è ridotta all’osso È un problema sia di affidabilità ma anche di deploy

Accoppiamento temporale La distruzione geografica di un monolite è impossibile, comporta l’impossibilità di evolvere il monolite; – Oltre a tutti i problemi di cui già abbiamo parlato; L’alta disponibilità su un range orario ampio è possibile solo se non abbiamo dipendenza “temporale” tra le parti; – Naturalmente non va d’accordo con un’architettura tradizionale;

IL MODELLO MENTALE DELL’UTENTE

Mettiamoci in testa che… noi, dev, non siamo la soluzione di un bel nulla, siamo lo strumento per raggiungere la soluzione -- Non siamo pagati per inventare iperboliche soluzioni ma per risolvere problemi

Una strana realtà… Arriva un ordine; l’azienda si blocca perché stiamo processando l’ordine finché non abbiamo capito se le giacenze a magazzino sono in grado di soddisfare il nuovo ordine; La produzione nel frattempo è sospesa perché deve capire come pianificare il nuovo ordine che però in coda per le giacenze che sono bloccate da un pick della produzione che è ferma…

DEADLOCK

La realtà… L’ovvia e unica conseguenza di scalare un monolite lasciandolo un monolite è il collasso del sistema; La realtà: – Non sa cosa sono le transazioni; – Ha un bassissimo, se non nullo, accoppiamento tra le parti; – Non ha accoppiamento temporale;

Non è proprio così vero… All’interno di un’azienda è pensabile che: – Ci sia accoppiamento in un reparto/OU; – Ci sia accoppiamento temporale tra alcune parti Produzione e magazzino materie prime – C siano all’interno di un reparto alcune operazioni che devo essere coordinate da un supervisore (DTC)

ALL’INTERNO DI UN REPARTO…

BOUNDED CONTEXT

Bounded Context e Ubiquitous Language Due dei concetti più snobbati da chi pratica DDD; L’unico vero modo per trasformare il monolite in tante piccole parti che parlano tra di loro con: – Basso accoppiamento (nullo è impossibile); – Nessun accoppiamento temporale; – In maniera eventualmente consistente

EVENTUALMENTE CONSISTENTE

Torniamo alla nostra azienda… Chiediamo ad un manager lo stato di avanzamento di una commessa – dove la produzione è conto terzi in Malesia La risposta: – A ieri alle 5 la situazione era…bla bla…non so ancora nulla di XYX perché arriva dagli Stati Uniti e iniziano a lavorare far 6 ore, ti aggiorno stasera;

Il grado di accordo tra le parti Diventa molto basso; Ogni comunicazione deve portare con se la versione (a ieri alle 6) consentendoci di discernere e mettere in ordine eventuali comunicazioni multiple; Le parti sono però libere di “muoversi” come vogliono: – Evolvere perché l’accoppiamento è basso; – esserci/non esserci perché l’accoppiamento temporale non esiste;

E LE TRANSAZIONI?

Ci servono ancora? All’interno del nostro orticello (BC) perché no? In base alla tecnologia di persistenza potremmo essere obbligati ad usarle; Cross-BC assolutamente no; Se modelliamo la realtà non ci interessa più essere consistenti (fully) ma ci basta essere certi che prima o poi lo saremo;

La posta e il postino Una mail è consistente? No; Il nostro rapporto con il server di posta è consistente? Si; Il rapporto tra i singoli server SMTP è consistente? Si; Il rapporto tra l’ultimo server e la mailbox del destinatario è consistente? Si;

L’intero sistema è consistente? No Ci da però delle garanzie: – Ogni singolo passaggio è consistente; – Se un passaggio fallisce avremo, con la stessa logica, indietro un’informazione che la nostra richiesta è fallita; Abbiamo bisogno delle transazioni distribuite? No;

EVENTUALMENTE CONSISTENTE -- DEMO