Architettura SOA
L'architettura SOA nasce in un periodo storico in cui l'XML veniva unanimamente riconosciuto come un formato di scambio dati straordinario (il JSON non esisteva ancora).
Non meravigliamoci dunque che attorno, dentro, fuori ad essa ci sia XML...
Alla base di SOA c'è un concetto molto semplice: sviluppo un servizio con un qualsiasi linguaggio e mi assicuro che esso possa ricevere richieste e risposte in un formato dati XML che possa garantire la correttezza delle informazioni.
Per quei tempi sembrava fantascienza.
Per fare questo dovevo produrre il servizio stesso ma anche un file importantissimo per SOA: il WSDL!
La vera chiave di volta di SOA è il WSDL.
WSDL non è altro che un contratto che contiene in modo dettagliatissimo tutte le regole per poter costruire i dati di input e di output. E' scritto in XSL (che a sua volta è un linguaggio XML) e descrive dati che a sua volta sono in XML.
ogni architettura SOA deve partire dal WSDL, qualsiasi altro approccio semplicemente non fa parte della filosofia per cui è nata questa architettura. Dimenticare questo rischia di trasformare una potente e utile architettura in un infernale quanto inutile tormento.
Perchè è così importante?
WSDL può essere letto bilateralmente dall'uomo e dalla macchina e questo ci permette di creare un disaccoppiamento fortissimo fra i team di sviluppo come mai prima.
Prima di WSDL il controllo dei dati era umano... ed era semplicissimo sbagliarsi sia nell'usare il servizio che nel programmarlo. (Es. ma lì dovevo passarti un numero o un testo...)
In questo modo:
- Chi deve usare un servizio che ancora non esiste può simularlo semplicemente utilizzando le regole del WSDL
- Chi deve produrre il servizio viene obbligato ad avere un input/output preciso. Se più team sviluppano lo stesso servizio potremmo avere la certezza che esso sia perfettamente intercambiabile.
il WSDL fornisce anche la documentazione del servizio stesso e può essere anche utilizzato in runtime per controllare la pulizia effettiva dei dati sull'architettura SOA.
Bellissimo
un unico file leggibile da uomo e computer che descrive il servizio, ogni dato che passa da esso, e l'indirizzo http per richiamare il servizio stesso.
Così se voglio fare un software in java e devo utilizzare un servizio fatto da altri devo avere solo ed esclusivamente il suo WSDL, anzi, esistono programmi che dal WSDL mi producono il client per richiamare il servizio stesso.
Se devo sviluppare un nuovo servizio non ho bisogno di inutili e lunghe riunioni, mi basta il WSDL e tramite appositi programmi avrò anche lo scheletro di codice già pronto, indipendentemente dal linguaggio che voglio usare
Ma con che linguaggio è scritto il servizio e su che sistema operativo gira? non mi importa nulla di saperlo. Mi basta il WSDL e ho tutto quello che mi serve.
Questa è la magia dell'architettura SOA.
Ma per migliorare ancora le cose è stato poi creato un software capace di disaccoppiare ulteriormente i servizi fra di loro e anche di richiamarli autonomamente aggregando dati: Il service bus
Una sorta di parcheggio dove mettere tutti servizi e dove avere la certezza di ritrovarli senza perderli in chissà quali server.
4 comments
GhYBfWRkDZLEipAc
bDUVRBTWiAH
XFaCTflLHJVdRoN
wQWCUpJie