2012-03-13 13 views
6

Mi chiedevo quale sia la differenza effettiva tra Kahn Process Network e Actor Model. Infatti, se osservo la definizione, entrambi sono modelli in cui le entità computazionali (chiamate attori in entrambi i casi ...) scambiano messaggi tramite buffer illimitati. Inoltre, in entrambi i casi, questi messaggi vengono inviati in modo asincrono poiché una procedura può sempre inviare un messaggio. Non è necessario attendere che il destinatario sia pronto a ricevere.Differenza tra Kahn Process Network e Actor Model

Quindi la mia domanda, c'è qualche differenza effettiva?

Grazie mille!

risposta

3

La rete di processo Kahn è garantita per essere deterministica. Tutte le connessioni FIFO tra i processi sono conosciute in precedenza e non si alterano dinamicamente durante l'esecuzione. Al contrario, nel caso del modello Attore (citando wikipedia):

in risposta ad un messaggio che riceve, un attore può prendere decisioni locali, creare più attori, di inviare più messaggi, e capire come rispondere alla messaggio successivo ricevuto

Modello di attore, pertanto non è garantito che sia deterministico. Citando Wikipeda:

Il modello di attore presenta un non determinismo illimitato che è stato catturato in un modello matematico da Will Clinger usando la teoria dei domini.

Un'altra distinzione importante è come la comunicazione si è svolto

In caso di KPN - preservare determinismo, tutta la comunicazione avviene attraverso canali FIFO. Ma non c'è un tale requisito nel caso del modello di attore. Citando Wikipedia:

[In KPN non c'è] Nessun requisito per l'ordine di arrivo del messaggio [....] Se si desidera ordinare un messaggio di output, può essere modellato da un attore che fornisce questa funzionalità. Un tale attore di coda accodava i messaggi che arrivavano in modo da poterli recuperare nell'ordine FIFO. Quindi, se un attore X invia un messaggio M1 a un attore Y, e successivamente X invia un altro messaggio da M2 a Y, non vi è alcun obbligo che M1 arrivi a Y prima di M2.

In questo senso il modello di attore rispecchia i sistemi di commutazione a pacchetto che non garantiscono che i pacchetti debbano essere ricevuti nell'ordine inviato. La mancata fornitura dell'ordine di garanzia di consegna consente al pacchetto di passare ai pacchetti buffer, utilizzare più percorsi per inviare pacchetti, inviare nuovamente pacchetti danneggiati e fornire altre ottimizzazioni.

Come è chiaro dalla discussione precedente, KPN è uno scenario molto più limitato che può essere modellato utilizzando il modello di attore aggiungendo ulteriori restrizioni.