download tesi - MobiLab
download tesi - MobiLab
download tesi - MobiLab
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
1.2 Service Oriented Architecture (SOA)<br />
Analisi delle prestazioni delle principali soluzioni<br />
per servizi publish/subscribe<br />
Un sistema distribuito è formato da diversi agenti software discreti che devono cooperare<br />
insieme per svolgere determinate funzioni. Inoltre, gli agenti in un sistema distribuito non<br />
operano nello stesso ambiente, quindi devono comunicare affidandosi a protocolli software<br />
e hardware attraverso una rete. Questo implica che le comunicazioni in un sistema<br />
distribuito sono intrinsecamente meno veloci e disponibili di quelle tramite invocazione<br />
diretta nel codice e usando memoria condivisa. Questo ha delle importanti implicazioni<br />
architetturali, poichè i sistemi distribuiti richiedono che gli sviluppatori prendano in<br />
considerazione l‟imprevedibile latenza di una comunicazione remota e gestire le<br />
problematiche derivate dalla concorrenza e dai possibili fallimenti parziali.<br />
I distributed object systems sono sistemi distribuiti nei quali la semantica<br />
dell‟inizializzazione di un oggetto e dei suoi metodi sono esposti a sistemi remoti tramite<br />
meccanismi proprietari o standard per inoltrare la richiesta oltre i confini del sistema,<br />
effettuare marshall o unmarshall degli argomenti dei metodi, etc.<br />
Una Service Oriented Architecture (SOA) [57,58] è una forma d‟architettura di sistemi<br />
distribuiti tipicamente caratterizzata da queste proprietà:<br />
Vista logica: Il servizio è un‟astrazione, vista logica, del programma, database,<br />
processo etc., definito in termini di cosa fa, tipicamente astraendo un‟operazione.<br />
Orientato ai messaggi: Il servizio è formalmente definito in termini dei messaggi<br />
scambiati tra l‟agente fornitore e l‟agente fruitore e non sulle proprietà degli agenti<br />
stessi. La struttura interna degli agenti, compreso ad esempio il linguaggio di<br />
programmazione usato per implementarlo, la struttura dei processi o la struttura delle<br />
basi di dati, sono deliberatamente astratti nella SOA: non deve essere assolutamente<br />
necessario sapere qualcosa dell‟implementazione di un agente per interagirci. Un<br />
beneficio chiave di questa funzionalità interessa i cosiddetti sistemi legacy.<br />
Orientato alla descrizione: Un servizio è descritto da metadati interpretabili da una<br />
macchina. Questa descrizione deve supportare la natura pubblica della SOA: solo<br />
12