Dal punto di vista architetturale, e per quel poco che posso vedere e comprendere dall’esterno, Office365 è una cosa decisamente interessante, per la precisione mi riferisco al portale di amministrazione di Office365.

Composite UI

La dashboard è un ottimo esempio di “Composite UI”, le informazioni vengono da servizi diversi, Users, Billing, Message Center, Support, Health e Reporting. Ho volutamente fatto uno screenshot quando uno dei servizi era probabilmente giù (Message Center). Non ho idea dei tecnicismi che ci siano dietro questa UI, mi aspetto però che le parti (chiamiamole widget o module o component) che si vedono nella UI siano dinamicamente caricate e non staticamente note. In questo momento il concetto di ownership di SOA si estende per tutta la fetta verticale fino agli elementi della UI.

 

image

 

Non è tutto oro quel che luccica…

…ero tutto bello contento di vedere l’implementazione di cui sopra che con gioia mi appresto a modificare i dettagli del pagamento del mio abbonamento…e boom: accoppiamento a nastro :-(

Quella che segue è una delle pagine (degli step per essere più precisi) del processo di modifica/creazione di una sottoscrizione, notate il campo evidenziato?

 

image

 

Bene, sto semplicemente cercando di aggiungere la P.IVA, se applico le mie conoscenze di SOA potrei vedere quella li sopra ancora una volta come una Composite UI, in cui per farla semplice tutti i campi relativi all’indirizzo sono sotto il controllo di Billing mentre la P.IVA è controllata da Finance, un sistema diverso. Quella UI è bloccata da almeno 3 giorni, perché? perché fa l’unica cosa che non dovrebbe fare, violando tutte le regolette base di un sistema distribuito: cerca di fare la validazione della P.IVA in maniera sincrona, validazione che se non passa o fallisce ti impedisce di andare avanti. Ora…immagino che il sistema che fa la validazione sia giù, o sia malfunzionante, perché continua a rifiutare una P.IVA che ha usato da almeno 5 anni.

Quella validazione deve essere fatta in maniera asincrona e offline rispetto alla UI, se fosse un carrello della spesa di un e-commerce avrebbero già perso un cliente.