|
Maggiori informazioni sulle condizioni di gara e la semantica
2008-10-11T09: 01:00.011 +02:00
Nelle precedenti distacco Ho posto sceanario le seguenti:
Data la semplice applicazione di seguito indicato:
- Non vi è un singolo evento fonte (quindi non problemi di sincronizzazione di clock) che genera gli eventi di tre tipi E1, E2, E3.
- Consentitemi di dire che anche nella nostra storia non vi è un unico eventi di ogni tipo che è stato pubblicato (in modo non sinonimi questioni), la tabella mostra l'incidenza tempo (quando si è verificato nella realtà) e l'individuazione tempo (quando sono stati segnalati al sistema ) - ciascuno di essi è stata riportata 1 unità di tempo dopo la sua comparsa, non riordinazione problema.
- Eventi E1, E2 servire come input per un accordo di partenariato economico di tipo "del modello di rilevazione", che rileva una sequenza temporale modello "e1 prima e2", e quando questo viene rilevato, deriva un evento e4 - qualche funzione di E1 ed E2.
- Eventi e3 (greggio caso) e e4 (evento derivati) servono come input per un altro tipo di APE "modello di rilevazione", che individua un nuovo modello di sequenze temporali "e3 prima e4", se questo modello viene rilevato - creare e5 evento che fa scattare alcuni azione nel consumatore.
Ho anche chiesto la questione è - dato di cui sopra - che l'azione innescata da e5 verificarsi?, Vale a dire che il modello - "e3 prima e4" essere valutate al fine di vero?
Ho avuto alcune risposte a questa e ad essi si può leggere come commenti al post originale, come promesso, mi dedicare questo post per l'analisi di questo caso semplice:
La prima cosa da discutere è la semantica di "sequenza temporale". Ci sono due possibili tipi di semantica per la sequenza temporale, che io chiamo "i tempi di rilevamento semantica" e "tempo presenza semantica".
- L'individuazione tempo semantica è attuato in varie lingue e gli strumenti che l'ordine temporale è la fine del periodo di francobolli in cui il "caso di trasformazione piattaforma" rileva che questo evento si verifica, se vi è un unico filo di tale rilevazione, quindi gli eventi sono totalmente ordinato, altrimenti, ci possono essere più eventi con la stessa "individuazione timestamp".
- Il verificarsi anche semantica tempo attuato in diverse lingue, vuol dire che l'ordine temporale è la fine del periodo di francobolli che vengono forniti come parte delle informazioni sugli eventi, e designare - se questo evento happend in realtà. Ci sono alcune complessità di sincronizzazione di tempo in ambiente multi-produttore, tuttavia, in questo esempio si suppone che un singolo produttore (I'll scrivere su multi-produttore dei casi in un altro post).
- Si noti che questo fine due relazioni non possono essere identici.
- Vi è inoltre tipo di soluzione ibrida ( "totale per semantica") - la semantica è realmente "i tempi di rilevamento" semantica, ma al fine di consentire gli eventi che arrivano un po 'tardi per prendere il loro ruolo, gli eventi sono in coda a un buffer (e non considerate come rilevato) fino al time-out per permettere "di fine" per arrivare eventi e ri-ordinare il buffer, e poi inviare gli eventi in base alla fine del buffer.
Rimettersi l'esempio - nella piccola tabella in basso a sinistra della figura sopra, ci sono tempi di insorgenza e l'individuazione di E1, E2, E3. Per e4 c'è solo i tempi di rilevamento - E4 è diverso da (E1, E2, E3) dal fatto che si tratta di un evento e non derivati greggio evento come gli altri tre. La domanda è: "che cosa è il tempo di insorgenza di un evento derivati"? - Non vi è una chiara risposta che - ci sono diverse risposte possibili:
- Nel caso derivati caso del verificarsi di rilevamento tempo \u003d tempo, dal momento che questo evento non è reale, ma un evento virtuale, quindi, la sua fonte è l'EPA che crea, e che si è verificato quando creato. Nel nostro caso ciò significa che occurence-time (e4) \u003d 4.
- La sua comparsa il tempo è il verificarsi di tempo l'ultimo evento che ha completato il modello - in quanto partecipanti eventi per la creazione di e4 sono (E1, E2) e e2 è stato l'ultimo che hanno compilato il modello, la presenza a tempo (e4) \u003d eventi tempo (E2) \u003d 2
- Intervallo di semantica: L'evento si verifica in e4 l'intervallo in cui si verificano tutti i partecipanti, è che questo caso significa verificarsi-time (e4) \u003d [1, 2].
Il fenomeno di più interpretazioni semantiche applicate a vari altri semantico decisioni in caso di trasformazione semantica del linguaggio, e la soluzione preferita è quella di fornire l'utente con semantica "fine tuning" delle politiche, in base al quale l'utente può scegliere la semantica, invece di " duro codice "una certa semantica (con il più comune, come di default), questo è uno dei vantaggi di usare COTS per caso di trasformazione, in quanto è molto difficile pensare a tali questioni, quando in via di sviluppo PE manuaully utilizzando linguaggio convenzionale.
La semantica del secondo "sequenza temporale" (e3, e4) è così:
- Secondo "i tempi di rilevamento" semantica - entrambi hanno tempo di rilevazione 4. Come tale, la sequenza di condizione non è soddisfatta. Tuttavia, se vogliamo imporre totale fine da un unico filo, questo può creare condizioni di gara tra i due eventi. In questo caso si consiglia di utilizzare una politica coerente di priorità - a larghezza prima (il greggio arriva sempre primo caso) o profondità prima (l'evento è sempre derivata prima) al fine di garantire deterministico risultato.
- Secondo il "tempo presenza" - che dipende dalla scelta politica, ma in base a tutti i interprerations - e4 avviene prima e3 - quindi la sequenza temporale non è soddisfatto.
Bottome linea: la sequenza temporale (e3, e4) è soddisfatta se:
- La semantica temporale è tempo di rilevamento
- Esso viene applicato mediante totale per
- Il totale per la politica è "larghezza prima" - ossia la priorità per le materie prime manifestazioni.
In tutti gli altri casi, la sequenza temporale non saranno soddisfatti e il corollario azione non eseguire.
Fonte ...
|