!"#$%&'#()*+,*-./#,+&"#.*.(*0%&1%/%)*!"#$%&'#()*+,*-./#,+&"#.*.(*0%&1%/%)*
!""#$$%&$'!'(%)*+&#'!&",-.#"./&#'0%&'1%2'
!"#$%"&'(&)**&+,-*%.&/(&0*11*%&2345678349*"&0%,:*44,%&
&;$%<9&=>?&@>AB&
Invited Talk: Google, Mountain View, CA
2+(*34'(*#",+&5.6+"*(%78"+/+9)3''•! 456#&'7'8,5$-"+9'•! 4%:;/.+<%='7'>5=+:-"$'•! (#"/&-.5'7'(+0#.5'*:&+;%&6%'<*•! ?-@,95'A5=+:-"'•! (+0#.5'"&-<"+9'•! B="#&.+-='#=C-&%=:#=.'•! 8,5$-"+995'A-$.&-6/.#A'•! (;%&+A-"'"%==#"<C-.5'•! D#$%/&"#'"%=$.&+-=#A'
E#'=##A'#=@-=##&-=@':%A#9$'+=A':#.,%A%9%@-#$'0%&'A#;#=A+69#'"56#&F;,5$-"+9'$5$.#:$G'
Automotive
456#&F8,5$-"+9'(5$.#:$'H%"/$'%='.,#'1=.#&=#.'%0'CD1,%.$6.'2,-=@$'
Biomedical
Military
Energy
Manufacturing
Avionics
Buildings
2
''''''''''
I%.#'.,+.'.,-$'-$'=%.'+$'=#*'+='+&#+'+$'$%:#';#%;9#'+$$/:#…'
3
1=.#&=#.'%0'2,-=@$'J1%2K'K'
1=A/$.&5'LGM'1=A/$.&5'LGM' 2,#'1=A/$.&-+9'1=.#&=#.'
1=.#&=#.'%0'1=.#&=#.'%0'2,-=@$'
1=.#&=#.'%0'1=.#&=#.'%0'1=.#&=#.'%0'1=.#&=#.'%0'
1=.#&=#.'%0'NC#&5.,-=@'
(:+&.#&'89+=#.'
O+",-=#'.%'O+",-=#'JOPOK'
456#&F8,5$-"+9'(5$.#:$'
2(#=$%&$'J2&-99-%='(#=$%&$K'
O+",-=#'JOPOK'
2(#=$%&$J2&-99-%='(#=$%&$K'
''''''''''2,#'H%@'
Q##R'S#&T#9#5'
!'4%::%='1%2'>#$-@='8+U#&=3'DN(2'*-.,'!!4$'
!'DN(20/9'$#&C-"#'VH-#9A-=@'W'2+59%&'PMMPX'-$'+""#$$#A'/$-=@'+'A#$-@=';+U#&='"%::%='%='.,#'*#6'.,+.'*#'"+99''4E6<9%,6,84&'.,D3<&F$GG-$<H4&J!!4K'J+9$%'"+99#A'.,#'+*$<.,%&0$I*%6KG'
'1='.,#'E#6R'!!4'-$'*-A#95'/$#AG'1.'-$'"#=.&+9'.%':+=5';%;/9+&'-=.#&=#.';&%@&+::-=@'0&+:#*%&T$'$/",'+$'I%A#GY$'W'Z#&.G[R'+=A'.%'48('0&+:#*%&T$'$/",'+$'2-=5\(G'
4
49-#=.';&%@&+:'
2,-=@'
?228'&#]/#$.'&#$;%=$#'
BDQ'#="%A#$'+99'$.+.#'-=0%'J"&#A#=<+9$R'"%::+=A$R'#."GK'
D#$;%=$#'-$'.5;-"+995'+$5=",&%=%/$'.%'+C%-A'69%"T-=@'.,#'"9-#=.';&%@&+:G''D#$;%=$#',+=A9#&'#[#"/.#$'+.%:-"+995G'
Q##R'S#&T#9#5'
N[+:;9#'-='^+C+("&-;.'
// Import a module providing network servicesvar http = require("http”);// Construct a URL encoding a requestvar url = "http://foo.com/deviceID/...";// Issue the request and provide a callbackhttp.get(url, function(response) { // ... handle the response ...});
5
2,#'"+996+"T'0/="<%='*-99'6#'"+99#A'+.%:-"+995'$%:#'<:#'9+.#&'*,#='.,#'$#&C#&'&#$;%=$#'+&&-C#$G'
Q##R'S#&T#9#5'
!=%.,#&'4%::%='>#$-@='8+U#&=3''<.,%4&
(.&#+:-=@'&#]/#$.$3'
6
(#]/#="#'%0'&#]/#$.$'0%&'+'$#&C-"#'J+'$.&#+:K'.&-@@#&$'+'$#]/#="#'%0'&#$;%=$#$G'
Q##R'S#&T#9#5'
!".%&$'#:6&+"#'"%="/&&#="5'+=A'$"+9#'*#99G'
!".%&$'+=A'!!4'
(.&#+:-=@'&#]/#$.$3'
7
2,-=@'
&#]/#$.' +$5=",&%=%/$'&#$;%=$#'
2,-$'-$'.,#'#$$#="#'%0'+""#$$%&$R'+'A#$-@=';+U#&='0%&'1%2'.,+.'#:6&+"#$'"%="/&&#="5R'+$5=",&%=5R'+=A'+.%:-"-.5G'
E#+.,#&'(.+<%='
Q##R'S#&T#9#5'
E#'+&#'=%.'+9%=#';/&$/-=@'.,-$'+;;&%+",'
I%.+69#'#_%&.$3'•! I%A#'D#A'J1SOK'•! 4+9C-='JN&-"$$%=K'
Q##R'S#&T#9#5' 8 8
H&%:3'`?%:#'!/.%:+<%='*-.,'I%A#'D#AR'^##I%A#$'+=A'\;#='N=#&@5'O%=-.%&Ra'>%:'S&+:9#5b$'S9%@'%0'O+[-:%'+=A'.,#'b1=.#&=#.'%0'2,-=@$cR'1SO'>#C#9%;#&'E%&T$R'>#"GR'PMdeG'
(*+&:9#.3'4%:;%$-<%='%0'!""#$$%&$'
9
4%=$-A#&'+'=#[.'@#=#&+<%='A-@-.+9'+$$-$.+=.R'+='#A@#'"%:;/.#&'.,+.'"+=',%$.'$*+&:9#.$'+=A'0/="<%=$'+$'+'$:+&.'@+.#*+5G'
9
(*+&:9#.3''4%:;%$-<%='%0'!""#$$%&$'
10
("&-;.#A'+;;9-"+<%='9%@-"'.,+.'&/=$'-='+'$+=A6%['%='.,#'@+.#*+5G'
10
(*+&:9#.3''4%:;%$-<%='%0'!""#$$%&$'
11
!;;9-"+<%='.#[.'"%=C#&.#A'.%'+/A-%'A+.+'C-+'DN(20/9'!81G'
11
(*+&:9#.3''4%:;%$-<%='%0'!""#$$%&$'
12
!""#$$%&'-=C%T#$'+/A-%'!81'%='.,#'@+.#*+5'.%';&%A/"#'+='+/A-%';&%:;.G'
12
(*+&:9#.3''4%:;%$-<%='%0'!""#$$%&$'
13
!""#$$%&'&#"%&A$'+/A-%'/=<9'-.'A#.#".$'+';+/$#G'
13
(*+&:9#.3''4%:;%$-<%='%0'!""#$$%&$'
14
!/A-%'A+.+'"%=C#&.#A'.%'.#[.'C-+'DN(20/9'!81G'
14
(*+&:9#.3''4%:;%$-<%='%0'!""#$$%&$'
15
I+./&+9'9+=@/+@#';&%"#$$-=@';#&0%&:#A'65'+='!81G!1'+@#=.G'
15
(*+&:9#.3''4%:;%$-<%='%0'!""#$$%&$'
16
!;;9-"+<%='A#"-A#$'*,+.'.%'A%'*-.,'.,#'&#$;%=$#G'
16
(*+&:9#.3''4%:;%$-<%='%0'!""#$$%&$'
17
!""#$$%&'/$#$'f-@6##'&+A-%'%='.,#'@+.#*+5'.%'"%=.&%9'+'9-@,.'6/96G'
17
!""#$$%&$
4+;#4%A#3'(*+&:9#.'>#C#9%;:#=.'\/&'8&%@&+::-=@'H&+:#*%&T'0%&'.,#'1%2'
18
4+;#4%A#'9#C#&+@#$'8.%9#:5'11R'*,-",';&%C-A#$'+'C-$/+9'#A-.%&R'$.&%=@'.5;#'$5$.#:R'+=A'9%.$'%0'%.,#&'-=0&+$.&/"./&#G'
>#;9%5-=@'(*+&:9#.$'
4%A#'@#=#&+.%&';&%A/"#$'^+C+("&-;.'g9#$'.,+.'"+='&/='%='+'9-@,.*#-@,.'^+C+("&-;.',%$.G'
19
>#;9%5-=@'(*+&:9#.$'E&-.#'\="#R'D/='NC#&5*,#&#h'
20
:(+/%5)*==*
20
2,#='!@+-=…'
E#'"%/9A'-=$.#+A'/$#'.,-$'.#",=%9%@53'
21
E,+.'+6%/.'.,#'1=.#&=#.'%0'CD1,%.$6.'2,-=@$h'
4,+99#=@#$'
•! S&-U9#'A#$-@='–! !81$'",+=@#'–! (#&C-"#$'+=A'A#C-"#$'A-$+;;#+&'
•! (+0#.5'+=A'$#"/&-.5'–! !/.,%&-i+<%='J#C#='*-.,%/.'=#.*%&T'"%==#"<C-.5K'
•! 8&-C+"5'–! j##;'A+.+'9%"+9'*,#=#C#&';%$$-69#'
•! 2-:-=@'–! S#$.F#_%&.'<:-=@'-$'=%.'@%%A'#=%/@,'–! 49%/A'C+&-+6-9-.5'-$'.%%':/",'0%&':+=5'+;;9-"+<%=$G'
•! D#@&#$$-%='.#$.$'–! Z#&5'A-k"/9.'.%'*&-.#'–! I##A'A/::5'A#C-"#$'+=A'$#&C-"#$'
22
4,+99#=@#$'
•! S&-U9#'A#$-@='–! !81$'",+=@#'–! (#&C-"#$'+=A'A#C-"#$'A-$+;;#+&'
•! (+0#.5'+=A'$#"/&-.5'–! !/.,%&-i+<%='J#C#='*-.,%/.'=#.*%&T'"%==#"<C-.5K'
•! 8&-C+"5'–! j##;'A+.+'9%"+9'*,#=#C#&';%$$-69#'
•! 2-:-=@'–! S#$.F#_%&.'<:-=@'-$'=%.'@%%A'#=%/@,'–! 49%/A'C+&-+6-9-.5'-$'.%%':/",'0%&':+=5'+;;9-"+<%=$G'
•! D#@&#$$-%='.#$.$'–! Z#&5'A-k"/9.'.%'*&-.#'–! I##A'A/::5'A#C-"#$'+=A'$#&C-"#$'
23
!='+U#:;.'.%'&/='l%%@9#c$'%*='!81G!1'A#:%'*-.,'$%/=A'-=;/.'&+.,#&'.,+='.#[.'5-#9A#A'.,-$3''mGGG'$.+./$3'm''''''"%A#3'LMeR''''''#&&%&>#.+-9$3'n!81G!1'$;##",'&#"%@=-<%='-$'@%-=@'.%'6#'A#;&#"+.#A'$%%=G'''''''''''''''''''''''''''''''B$#'l%%@9#'49%/A'(;##",'!81'%&'%.,#&'$%9/<%=$GaR''''''#&&%&25;#'o'n0%&6-AA#=ap'…p''
O/.+69#'!""#$$%&$'
!""#$$%&$',+C#'*#99FA#g=#A'-=.#&0+"#$G'O/.+69#'+""#$$%&$'"+='6#'&#-g#A'*-.,'"34<,J*%*"'$#&C-"#$'%&'J9%"+9K'A#C-"#$'.,+.':+.",'.,#-&'-=.#&0+"#$G'
24
E-.,'.,#'+AA-<%='%0'A/::5'A#C-"#$q$#&C-"#$R'.,-$'+9$%'+AA&#$$#$'.,#';&%69#:'%0'&#@&#$$-%='.#$<=@G'
2,-$'-$'+'6-@';&%69#:'+=A'+'0%"/$'%0'%=@%-=@'&#$#+&",G'
4,+99#=@#$'
•! S&-U9#'A#$-@='–! !81$'",+=@#'–! (#&C-"#$'+=A'A#C-"#$'A-$+;;#+&'
•! (+0#.5'+=A'$#"/&-.5'–! !/.,%&-i+<%='J#C#='*-.,%/.'=#.*%&T'"%==#"<C-.5K'
•! 8&-C+"5'–! j##;'A+.+'9%"+9'*,#=#C#&';%$$-69#'
•! 2-:-=@'–! S#$.F#_%&.'<:-=@'-$'=%.'@%%A'#=%/@,'–! 49%/A'C+&-+6-9-.5'-$'.%%':/",'0%&':+=5'+;;9-"+<%=$G'
•! D#@&#$$-%='.#$.$'–! Z#&5'A-k"/9.'.%'*&-.#'–! I##A'A/::5'A#C-"#$'+=A'$#&C-"#$'
25
1%2'>#C-"#$'(,/.''>%*='.,#'1=.#&=#.'
26 26 Q##R'S#&T#9#5'
49%/AF6+$#A'!/.,#=<"+<%='(,/.$'>%*='.,#'1=.#&=#.'+=A'NC#='Q%"+9'(#&C-"#$r'
!&<"9#$'-='H%&6#$'+=A'f>I#.R'H#6G'PLR'PMdsR'%='.,#'0+-9/&#'%0'l%%@9#c$'\=?/6'$:+&.'&%/.#&'6#"+/$#'%0'9%$$'%0'"9%/A'$#&C-"#$G'
27 27
49%/AF4#=.&-"'(#&C-"#$'2%A+5'
2#&&+(*+&:'D#$#+&",'4#=.#&' 28
2,-=@$'
D%/.#&'
4/$.%:'l+.#*+5$'
49%/A'
4#99/9+&'
2,-=@$'
4%::$'
4%:;/.+<%=R'$.%&+@#'
2%:%&&%*3'NA@#'4%:;/<=@R'(:+&.'l+.#*+5$R'H%@'4%:;/<=@R'(*+&:6%[#$R'…'
2#&&+(*+&:'D#$#+&",'4#=.#&' 29
2,-=@$'
49%/A'!@@&#@+<%=R'$.%&+@#'
(*+&:6%['
4#99/9+&R'Q%&+R'(-@0%[R'Q2NFO'ISF1%2'
4%::$'+=A'"%:;/.+<%='
2,-=@$'
(-@0%[Q2NFO'ISF
H%@F6+$#A'(#"/&-.5'((23'(#"/&#'(*+&:'2%%9T-.'
30
V?%T#/='j-:X'
Q%"+995'"#=.&+9-i#AR'@9%6+995'A-$.&-6/.#A'+/.,#=<"+<%=R'+/.,%&-i+<%=R'+=A'$#"/&-.5G'
(##'j-:R'#.'+9GR'`!'(#"/&#'I#.*%&T'!&",-.#"./&#'0%&'.,#'1=.#&=#.'%0'2,-=@$'S+$#A'%='Q%"+9'!/.,%&-i+<%='N=<<#$Ra'H-49%/A'bdt'
•! \;#=F$%/&"#'9%"+9'+/.,%&-i+<%='#=<.5''8.9'+$'+'@+.#*+5'0%&'+/.,%&-i+<%='%0'.,#'9%"+9'n2,-=@$a'
•! (#"/&#'"%::/=-"+<%='+""#$$%&$'0%&'+""#$$-=@'9%"+9'+/.,%&-i+<%='$#&C-"#'
!"#$%&'()*%#&+*,*-'.$//*&0'
12+"'
12+"'
12+"'!"#$%"$#&'($)*+,&-$#./%01&
12+"'
!"#$%"&'((&)*"+,-
Accessor !"#"$%&$'()*$
+,&-(..$/(-(01(*$!"#"$
!"#$% &'()'(%
Q%"+9'!/.,'%;#&+.#$'#C#='-='.,#';&#$#="#'%0'1=.#&=#.'%/.+@#$'J#G@G'>5='+U+"TR'I%CG'PMdtKG'
2,#'@%+9'%0'.,#'+""#$$%&'-$'.%':+T#'$.+.#F%0F.,#F+&.'$#"/&-.5'/$+69#'65'=%=#[;#&.$G'
31
!"#$%&!"#$'&
()*+,#&
!"#$%&&&
!"#$%"&'((&)*"+,-
Accessor
'(()**&+)(),-).&
/0$0&
/0$0&12&3)".&
452()**&+)(),-).&
/0$0&
+)*62".&12&78,)"$&
!"#$%"&'((!"%."%-
Accessor
!"#$%&
!"#$%&
-+./+.&
!"#$%&
&&
//-
/&-/!-
01+23415"6- &!-
01+23415"7- &!-
01+23415"8- &!-
9&:)%&;25&(8,)"$&<&-)5-)5&/&-9&!"(5%6$).&=,$>&:)%&;25&!?$>@&<&(8,)"$& //-9&!"(5%6$).&=,$>&:)%&;25&!?$>@&<&!?$>A&/!-9&!"(5%6$).&=,$>&:)%&;25&!?$>A&<&-)5-)5& &!-9&!"(5%6$).&=,$>&:)%&;25&(8,)"$&<&-8,)"$&
V?%T#/='j-:X'
Q%"+995'4#=.&+9-i#AR'l9%6+995'>-$.&-6/.#A'((23'(#"/&#'(*+&:'2%%9T-.'
!;;9-"+<%='N[+:;9#'((23'(#"/&#'(*+&:'2%%9T-.'
2&+k"'-=0&+$.&/"./&#'W'C#,-"9#$'
32
>4(8*
2&+k"'4%=.&%99#&'
>4(8*
(+0#.5F"&-<"+9'W':%6-9#'J-=.#&:-U#=.'"%==#"<C-.5K*
2#&&+(*+&:'(*+&:S%['n(:+&.'@+.#*+5$n'
V?%T#/='j-:X'
4,+99#=@#$'
•! S&-U9#'A#$-@='–! !81$'",+=@#'–! (#&C-"#$'+=A'A#C-"#$'A-$+;;#+&'
•! (+0#.5'+=A'$#"/&-.5'–! !/.,%&-i+<%='J#C#='*-.,%/.'=#.*%&T'"%==#"<C-.5K'
•! 8&-C+"5'–! j##;'A+.+'9%"+9'*,#=#C#&';%$$-69#'
•! 2-:-=@'–! S#$.F#_%&.'<:-=@'-$'=%.'@%%A'#=%/@,'–! 49%/A'C+&-+6-9-.5'-$'.%%':/",'0%&':+=5'+;;9-"+<%=$G'
•! D#@&#$$-%='.#$.$'–! Z#&5'A-k"/9.'.%'*&-.#'–! I##A'A/::5'A#C-"#$'+=A'$#&C-"#$'
33
!".%&$'+=A'!!43'2-:-=@'
N[+:;9#'%0'+';%.#=<+9';&%69#:3'
34
2,-=@'
?228'&#]/#$.'
&#$;%=$#'
2,#'&#$;%=$#$':+5'=%.'"%:#'6+"T'-='.,#'$+:#'%&A#&'+$'.,#'&#]/#$.$r'2,-$'-$'+'&/A-:#=.+&5'<:-=@';&%69#:G'
E#+.,#&'(.+<%='
Q##R'S#&T#9#5'
!=%.,#&'2-:-=@'8&%69#:'
4%%&A-=+.#A'<:-=@3'
Q##R'S#&T#9#5' 35
2-:-=@'8&%69#:$'Q%%:'Q+&@#'-='2,#'1=.#&=#.'%0'CD1,%.$6.'2,-=@$'J1%12K'
The order and timing of events matters a lot when interacting with physical processes. The system at the right orchestrates hundreds of microcontrollers to deposit ink on paper flying through the printer at 100 km/h with micron precision.
Q##R'S#&T#9#5' 36
2,-$'S%$",'D#[&%.,';&-=<=@';&#$$'-$'+'"56#&F;,5$-"+9'0+".%&5'/$-=@'N.,#&=#.'+=A'248q18'*-.,',-@,F;&#"-$-%='"9%"T'$5=",&%=-i+<%='J1NNN'duvvK'%='+='-$%9+.#A'Q!IG'
Q+6#9#A'49%"T'>%:+-=$'
37
setInterval(f,20,L1)
setInterval(g,40,L1)
setInterval(h,20,L1)
setInterval(j,20,L2)
0 10 20 30 40 50 60 70 80
\/&'+""#$$%&'0&+:#*%&T'-=.&%A/"#$'.,#'-A#+'%0'G$-*G*"&<G,<H&",D$364&*-.,'+'$#:+=<"'=%<%='%0'$-:/9.+=#-.5'+=A'A#.#&:-=-$<"'%&A#&-=@'%0'#C#=.$G'
Q+6#9#A'49%"T'>%:+-=$'
38
setInterval(f,20,L1)
setInterval(g,40,L1)
setInterval(h,20,L1)
setInterval(j,20,L2)
0 10 20 30 40 50 60 70 80
2-:#A'+"<%=$'*-.,'.,#'$+:#'9+6#9'$,+&#'.,#'$+:#'$#:+=<"'=%<%='%0'<:#G'
setInterval(f,20,L1)
setInterval(g,40,L1)setInterval(g,40,L1)
setInterval(h,20,L1)setInterval(h,20,L1)setInterval(h,20,L1)setInterval(h,20,L1)setInterval(h,20,L1)
Q%@-"+9'(-:/9.+=#-.5'
setInterval(j,20,L2)setInterval(j,20,L2)
Q%@-"+9'2-:#'D#+9'2-:#'
H%"/$'%='1=.#&0+"#$'
39
(.+=A+&A-i+<%='"+='%""/&'*-.,'#-.,#&'.,#',%&-i%=.+9'"%=.&+".'%&'.,#'C#&<"+9'"%=.&+".G'
NG@G'+$5=",&%=%/$'+.%:-"'"+996+"T$'J!!4KG'
Q##R'S#&T#9#5'
Z#&<"+9'4%=.&+".'(.+=A+&A$'H%"/$'%='%C#&F.,#F*-&#';&%.%"%9$'
40
•! ?228'•! E#6(%"T#.$'•! 4%!8'•! wO88'•! Ox22'•! B8=8'•! >>('•! y'
Q##R'S#&T#9#5' 40
Z#&<"+9'"%=.&+".'@%C#&=$'.,#'-=.#&+"<%='6#.*##='.,#'+""#$$%&'+=A'.,#'$#&C-"#'%&'.,-=@G'
?%&-i%=.+9'4%=.&+".'J(.+=A+&A$hK''8&%C-A-=@'+'G,<$G&1%,KE&0%&'+'%*D,.*&4*%J3<*'
41 Q##R'S#&T#9#5'
?%&-i%=.+9'"%=.+".'@%C#&=$'+".%&'-=.#&+"<%=$'H%&',%&-i%=.+9'"%=.&+".$R':5'%;-=-%='-$'.,+.'"/&&#=.'*%&T'-$'*#+TG'
\/&'+""#$$%&$'*%&T',+$';/.'+'$.+T#'-='.,#'@&%/=A'.,+.'-=$-$.$'%='A#.#&:-=-$<"'"%="/&&#="5':%A#9$'0%&'"%:;%$-<%='%0'+""#$$%&$G'
H%"/$'%='.,#',%&-i%=.+9'"%=.&+".'>-$"&#.#'NC#=.'O%4'
42
10'.,#'.,-=@'-$'69+"T'6%['*-.,'+'DN(20/9'-=.#&0+"#R'.,#='*#'<:#'$.+:;'.,#'&#$;%=$#'
y'6/.'-0'*#'"+='A#$-@='.,#'.,-=@R'*#'"+='A%':/",'6#U#&r'
Q##R'S#&T#9#5'
E#'/$#'<:#F$.+:;#A'#C#=.$';&%"#$$#A'-='<:#F$.+:;'%&A#&R'+'A-$"&#.#F#C#=.'J>NK':%A#9'%0'"%:;/.+<%='JO%4KG'
>-$.&-6/.#A'(*+&:9#.$'/$-=@'!""#$$%&$'
Q#C#&+@-=@'<:#'$.+:;$'+=A'$5=",&%=-i#A'"9%"T$R'*#'"+='+",-#C#'?%(%&5#"#'67'A-$.&-6/.#A'O%4$G''2#",=-]/#3'821>N('
43 Q##R'S#&T#9#5'(*+&:S%[R'NA@#'"%:;/.#&R'H%@'"%:;/.#&R'…'
D%%.$'%0'.,#'1A#+'
!4O'2&+=$+"<%=$'%='8&%@&+::-=@'Q+=@/+@#$'+=A'(5$.#:$R'dzvLG'
Q##R'S#&T#9#5' 44
>@'(&.7(3'>-$"&#.#F#C#=.'J>NK':%A#9$'+&#'0%&:+9'$5$.#:'$;#"-g"+<%=$'.,+.',+C#'+=+95i+69#'A#.#&:-=-$<"'6#,+C-%&$G'B$-=@'+'@9%6+9R'"%=$-$.#=.'=%<%='%0'<:#R'>N'"%:;%=#=.$'"%::/=-"+.#'C-+'<:#F$.+:;#A'#C#=.$G'>N':%A#9$',+C#';&-:+&-95'6##='/$#A'-=';#&0%&:+="#':%A#9-=@'+=A'$-:/9+<%=R'*,#&#'<:#'$.+:;$'+&#'+':%A#9-=@';&%;#&.5'6#+&-=@'=%'	+<%=$,-;'.%'&#+9'<:#'A/&-=@'#[#"/<%='%0'.,#':%A#9G'1='.,-$';+;#&R'*#'#[.#=A'>N':%A#9$'*-.,'.,#'"+;+6-9-.5'%0'	+<=@'"#&.+-='#C#=.$'.%';,5$-"+9'<:#y'
45 Q##R'S#&T#9#5'
Ptides – A Robust Distributed DE MoC for IoIT Applications
l%%@9#'(;+==#&'{'!'D#-=C#=<%='
l%%@9#'-=A#;#=A#=.95'A#C#9%;#A'+'C#&5'$-:-9+&'.#",=-]/#'+=A'+;;9-#A'-.'.%'A-$.&-6/.#A'A+.+6+$#$G'
Q##R'S#&T#9#5' 46
'8&%"##A-=@$'%0'\(>1'PMdP'
821>N(3'>-$"&#.#FNC#=.'(#:+=<"$'7'(5=",&%=-i#A'49%"T$'7'(#=$%&$'+=A'!"./+.%&$'
Q##R'S#&T#9#5' 47
2-:#F$.+:;#A'#C#=.$'.,+.'+&#';&%"#$$#A'-='<:#F$.+:;'%&A#&G'
2,-$'O%4'-$'*-A#95'/$#A'-='$-:/9+<%='+=A'?>Q$G'
l-C#='<:#F$.+:;#A'-=;/.$R'-.'-$'+'A#.#&:-=-$<"'"%="/&&#=.'O%4G'
!'0#*'.#[.$'.,+.'/$#'.,#'>N'O%4'
l%%@9#'(;+==#&'{'!'D#-=C#=<%='%0'821>N('
Q##R'S#&T#9#5' 48
>-$.&-6/.#A'A+.+6+$#'*-.,'&#A/=A+=.'$.%&+@#'+=A']/#&5',+=A9-=@'+"&%$$'A+.+'"#=.#&$G'
B;A+.#'.%'+'&#"%&A'"%:#$'-=G'2-:#'$.+:;'.dG'
x/#&5'0%&'.,#'$+:#'&#"%&A'"%:#$'-=G'2-:#'$.+:;'.PG'
l%%@9#'(;+==#&'{'!'D#-=C#=<%='%0'821>N('
Q##R'S#&T#9#5' 49
x/#&5'0%&'.,#'$+:#'&#"%&A'"%:#$'-=G'2-:#'$.+:;'.PG'
10'.P'|'.dR'.,#']/#&5'&#$;%=$#'$,%/9A'6#'.,#';&#F/;A+.#'C+9/#G'\.,#&*-$#R'-.'$,%/9A'6#'.,#';%$.F/;A+.#'C+9/#G'
B;A+.#'.%'+'&#"%&A'"%:#$'-=G'2-:#'$.+:;'.dG'
l%%@9#'(;+==#&3'E,#='.%'D#$;%=Ah'
Q##R'S#&T#9#5' 50
x/#&5'0%&'.,#'$+:#'&#"%&A'"%:#$'-=G'2-:#'$.+:;'.PG'
E,#='.,#'9%"+9'"9%"T'<:#'#["##A$''.P'7'#'7'6R'-$$/#'.,#'"/&&#=.'&#"%&A'C+9/#'+$'+'&#$;%=$#G'
(5=",&%=-i#'"9%"T$'*-.,'#&&%&'6%/=A'#G'
4%::/=-"+<%='9+.#="5'6%/=A'6G'
B;A+.#'.%'+'&#"%&A'"%:#$'-=G'2-:#'$.+:;'.dG'
l%%@9#'(;+==#&3'H+/9.r'
Q##R'S#&T#9#5' 51
x/#&5'0%&'.,#'$+:#'&#"%&A'"%:#$'-=G'2-:#'$.+:;'.PG'
10'+)#&'$#=A-=@'+'&#$;%=$#R'*#'&#"#-C#'+'&#"%&A'/;A+.#'*-.,'<:#'$.+:;'.d'|'.P'A#"9+&#'+'0+/9.G'(;+==#&',+=A9#$'.,-$'*-.,'+'.&+=$+"<%='$",#:+G'
(5=",&%=-i#'"9%"T$'*-.,'#&&%&'6%/=A'#G'
4%::/=-"+<%='9+.#="5'6%/=A'6G'
B;A+.#'.%'+'&#"%&A'"%:#$'-=G'2-:#'$.+:;'.dG'
2-:#'$.+:;'C+9/#'-$'+'A#+A9-=#'
2-:#'$.+:;'C+9/#'-$'<:#'%0':#+$/&#:#=.'
!".%&$'*&+;'$#=$%&$'
!".%&$'*&+;'+"./+.%&$'
Q##R'S#&T#9#5' 52
Ptides: Time stamps bind to real time at sensors and actuators'
O#$$+@#$'+&#';&%"#$$#A'-='<:#F$.+:;'%&A#&'
>#.#&:-=-$<"'>-$.&-6/.#A''D#+9F2-:#'
!$$/:#'6%/=A$'%=3'•! <G,<H&4E6<9%,63L$5,6&*%%,%&•! 6*.#,%H&G$.*6<E&.,#='!"!#$%&'(!&)(*+!%%!,&-#&./!0%$'/)&*(,!(&+.'#C#&5'"%:;%=#=.G''10'-='+AA-<%='*#'+$$/:#'•! -,86"4&,6&*K*<85,6&5D*&.,#='#C#=.$'+&#'A#9-C#&#A'.%'+"./+.%&$'%='<:#G'
Q##R'S#&T#9#5' 53
(##',U;3qq",#$$G##"$G6#&T#9#5G#A/q;<A#$'
All of the assumptions are achievable with today’s technology, and are requirements anyway for hard-real-time systems. The Ptides model makes the requirements explicit.
Q##R'S#&T#9#5' 54
So Many Assumptions?'
}%/'*-99'=#C#&'$.&-T#'%-9'65'A&-99-=@'.,&%/@,'.,#':+;r&
Violations of the requirements are detectable as out-of-order events and can be treated as faults.
I%=F(5=",&%=-i#A'49%"T$'
A fault manifests as out-of-order events.
y'+)#&'+='#C#=.',#&#'*-.,'+'9+.#&'<:#'$.+:;',+$'6##=';&%"#$$#AR'.,#='0+/9.r'
10'+='#C#=.'+&&-C#$',#&#'
*-.,'+='#+&9-#&'<:#'$.+:;y'
\""/&&#="#'%0'+'0+/9.'-:;9-#$'%=#'%&':%&#'%0'.,#'+$$/:;<%=$'*+$'C-%9+.#AG'
Q##R'S#&T#9#5' 55
Handling Faults'
4%="9/$-%=',U;$3qq+""#$$%&$G%&@'
•! 1%2'-$'=%.'$%'=#*G'48('-$'.,#'#$$#=<+9';&%69#:G'•! 1%12'-$'+'&#+995'-=.#&#$<=@';&%69#:'+&#+G'•! O%A#&='"%="/&&#="5':%A#9$'+&#'/$#0/93'
–!!$5=",&%=%/$'+.%:-"'"+996+"T$'–!!".%&$'
•! 2,#5'"+='6#'"%:6-=#A'J+""#$$%&$K'•! S/.'0%&'1%12R'.,#5'6#@'0%&':%&#'A#.#&:-=-$:'•! 821>N('$,%*$'.,+.'A#.#&:-=-$<"':%A#9$'0%&'A-$.&-6/.#A'48('+;;9-"+<%=$'+&#';&+"<"+9G'
Q##R'S#&T#9#5' 56
-458,53'2,#'?%:#'0%&'.,-$'D#$#+&",'C6"84.%3$G&FE-*%M09E43<$G&/E4.*D4&F*6.*%&
1458,5'-$'+'/=-C#&$-.5F-=A/$.&5';+&.=#&$,-;'.%';/&$/#';&#F"%:;#<<C#'&#$#+&",'%='A#$-@=R':%A#9-=@R'+=A'+=+95$-$'.#",=-]/#$'0%&'"56#&F;,5$-"+9'$5$.#:$R'*-.,'#:;,+$-$'%='-=A/$.&-+9'+;;9-"+<%=$G'2%;-"$3'•! ?+&A*+&#'+=A'$%)*+&#'+&",-.#"./&#$'•! O%A#9F6+$#A'A#$-@='0%&'48('•! Z#&-g"+<%=R'C+9-A+<%=R'+=A'"#&<g"+<%='•! ?-@,95'A5=+:-"'=#.*%&T#A'$5$.#:$'•! 2,#'1=.#&=#.'%0'.,-=@$'J1%2K'•! (+0#.5R';&-C+"5R'+=A'$#"/&-.5'•! (5=.,#$-$'+=A'9#+&=-=@'•! Q%"+9-i+<%='+=A'9%"+<%=F+*+&#'$#&C-"#$'•! Q#+&=-=@'+=A'%;<:-i+<%='•! (+0#.5F"&-<"+9'$5$.#:$'•! ?/:+=F-=F.,#F9%%;'$5$.#:$G'•! (5$.#:$F%0F$5$.#:$'A#$-@='•! (#:+=<"$'%0'<:#A'$5$.#:$'8A;<BB#7);8)C+&9*
57 8&+6+9'>/U+R'NA*+&A'Q##R'!96#&.%'(+=@-%=C+==-FZ-="#.#99-R'(+=Y-.'(#$,-+'