28.05.2013 Views

download tesi - MobiLab

download tesi - MobiLab

download tesi - MobiLab

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!