- - PowerPoint PPT Presentation

0 1 234 03 0 3 structure of this talk
SMART_READER_LITE
LIVE PREVIEW

- - PowerPoint PPT Presentation

!""#$%&'(")*%$+,-".*"/$/0,1/234#03)(0)3$, Structure of this Talk !"#$%&&'($)*+",-#+-.*#$ 5$/$34%,1/03"+)(6"/, !""-1,-".*"/$/0#,7,!82$(&(%$,


slide-1
SLIDE 1

!""#$%&'(")*%$+,-".*"/$/0,1/234#03)(0)3$,

slide-2
SLIDE 2

Structure of this Talk

!"#$%&&'($)*+",-#+-.*#$

5$/$34%,1/03"+)(6"/, !""-1,-".*"/$/0#,7,!82$(&(%$, !""-1,9:$/0,;)#,7,;8/+8/<#,

!"#$%&&'($/012$)3(45$

!""-1,=$*%"&.$/0,>?1, !""-1,@)/6.$,-"/03"%,>?1, !""-1,1/03"#*$(6"/,>?1,

3*&6*788,96$7$%&&'($'&8:&9#9-$

slide-3
SLIDE 3

A Loosely-coupled Component Infrastructure

AB&,8#,80,<""+,0",C$,%""#$%&'(")*%$+D,

;7-+"$-"#$)<5-*7+=&9$>,-"$-"#$?9/,*&98#9-@$4#,AEF, 43$,8/B$3$/0%&,$:$/0'C4#$+G,H$,#B")%+,$/(")34<$,0B$, +$:$%"*$3,0",0B8/I,0B8#,H4&J, ;,9,8,A#$B/#*"#7C@$$%4&$38/<,4,6<B0%&'(")*%$+,#&#0$., "/,4/,)/3$%84C%$,/$0H"3I,$/048%#,#8</8K(4/0, 3$034/#.8##8"/,":$3B$4+J, D.::&*=96$EF978,+$G#+&9H6.*7=&9@$.48/048/8/<, #8.*%$G,%""#$%&'(")*%$+,C8/+8/<#,3$.":$#,0B$,/$$+,2"3, +8#038C)0$+,L)8$#($/($J,

,

slide-4
SLIDE 4

A Loosely-coupled Component Infrastructure

M"H,8#,!""-1,%""#$%&'(")*%$+D,

E,5-*,<.-#C$?/#9-$I.5@$$:$/0'C4#$+,("..)/8(46"/,8/,4, +$($/034%8N$+,.4//$3J, )5F9+"*&9&.5$(9-#*7+=&95@,C$#0'$O"30,$:$/0,+$%8:$3&G, (".*"/$/0#,+",/"0,C%"(IG,HB8%$,H486/<,"/,P)/3$%84C%$Q, 3$."0$,8/0$34(6"/#J, D#:7*7=&9$<#->##9$'&8:&9#9-5$79C$-"#,*$I,9C,965@$ +$:$%"*$3#R(".*"/$/0#,+",/"0,I/"H,!"#,"3,$"%#!&$% 0B$83,(".*"/$/0,8#,C")/+J, ;.J=K8&C#J$I,9C,965@$")3,C8/+8/<,."+$%,8#,'(!)*)($+,%

  • '.$*'/0$)-%4/+,4%%"H#,"/$'0"'"/$G,.4/&'0"'"/$,"3,

.4/&'0"'.4/&,3$%46"/#B8*#,4#,H$%%,4#,"**"30)/8#6(, 8/0$34(6"/#J,

slide-5
SLIDE 5

The LooCI Architecture

@$("/K<)346"/, 9/<8/$,

  • ".*"/$/0,
  • ".*"/$/0,
  • ".*"/$/0,

9:$/0,;)#, F$0H"3I,S34.$H"3I, T/+$3%&8/<,?%4U"3.,PE)/E?VWG,-"/6I8G,VE58G,XQ,

slide-6
SLIDE 6

What is a LooCI Component?

  • ".*"/$/0#Y,

>,!""-1,(".*"/$/0,,8#,4,+&7*5#$6*7,9#C,4/+,#$3:8($,%8I$, .9,-$&L$L.9+=&97J,-F,,0B40,.4&,C$,8.*%$.$/0$+,8/,4/&, %4/<)4<$J, 94(B,(".*"/$/0,(4338$#,0H",8+$/6K$3#Y,4,23$$2"3.!-F:#$ C#5+*,:=&9,4/+,4/,8/#04/($!(E,0B40,8#,)/8L)$,8/,0B$, ("/0$Z0,"2,0B$,B"#6/<,/"+$J,

  • ".*"/$/0#,43$,3$<8#0$3$+,H80B,4,*$3'/"+$,

3$("/K<)346"/,$/<8/$G,HB8(B,*3":8+$#,C#:J&F8#9-M$ +&9-*&J,79C$,9-*&5:#+=&9$.$(B4/8#.#,0B40,43$, 4(($##8C%$,23".,0B$,<40$H4&,4/+,8/'/$0H"3IJ,

slide-7
SLIDE 7

What is a LooCI Interface?

1/0$324($#Y,

>%%,!""-1,(".*"/$/0#,("..)/8(40$,$Z(%)#8:$%&, 0B3")<B,0B$,#N+"796#,"2,#04/+43+8N$+,#/#9-5, ":$3,$Z*%8(80%&,+$(%43$+,8/0$324($#J, 9:$/0#,034:$%,":$3,4/,$/63$%&,C#+#9-*7J,A#C$ :.<J,5"K5.<5+*,<#$+&88.9,+7=&9$8#C,.8,P0B$, $:$/0,C)#QJ, 1/0$34(6"/,0B3")<BY,

  • (9-#*L7+#5$."+$%,0B$,*)C%8(46"/,"2,$:$/0#,0",0B$,

$:$/0,C)#J,

  • G#+#:-7+J#5$."+$%,0B$,#)C#(38*6"/,0",$:$/0#,23".,

0B$,$:$/0,C)#J,

slide-8
SLIDE 8

The Component Life-Cycle

1F>-W1[9, >-W1[9, +$*%"&PXQ, 4(6:40$PXQ, +$4(6:40$PXQ, 3$.":$-".*"/$/0PXQ, 1/,0B$,)'!(O?,#040$G,0B$,(".*"/$/0,,$Z$()0$#,/"3.4%%&G,#$/+8/<,$:$/0#,:84,80#, 8/0$324($#,4/+,3$($8:8/<,$:$/0#,:84,80#,3$($*04(%$#J, , 1/,0B$,(P)'!(O?,#040$G,0B$,$Z$()6"/,"2,4,(".*"/$/0,8#,B4%0$+,4/+,0B)#,80,H8%%,/$80B$3, #$/+,"3,3$($8:$,$:$/0#J,

slide-9
SLIDE 9

The LooCI Event Bus

E#+#9-*7J,A#C,("..)/8(46"/,0B40,8#,+8#038C)0$+,4(3"##,4%%, #$/#"3,/"+$#J, 3.<J,5"K5.<5+*,<#,HB$3$8/,/"+$#,.4&,*)C%8#B,$:$/0#,0"Y,

WB$,HB"%$,/$0H"3I, >%%,(".*"/$/0#,"2,4,<8:$/,0&*$, >%%,8/0$324($#,"2,4,<8:$/'0&*$, >,#*$(8K(,/"+$J, >,)/8L)$,(".*"/$/0,8/0$324($J,

More Fine Grained

slide-10
SLIDE 10

The LooCI Event Bus

P&9K<J&+Q,96@,4,(4%%,0",*)C%8#B,4/,$:$/0,3$0)3/#, 8..$+840$%&J, >,*$3'/"+$,3)/6.$,#0"3$#,I,9C,96,8/2"3.46"/,)#$+,0", +8#*40(B,$:$/0#Y,

S3".,J&+7J$(".*"/$/0#!0"$J&+7J$"3$*#8&-#,(".*"/$/0#J, S3".!*#8&-#,(".*"/$/0#$-&$J&+7J,(".*"/$/0#,

;8/+8/<#Y$R,9-#*L7+#M$+&8:&9#9-M$9&C#S$0"$

R*#+#:-7+J#M$+&8:&9#9-M$9&C#S$

9:$/0#Y,T#/#9-!F:#M$5&.*+#'&8:&9#9-(EM$:7FJ&7CU$

slide-11
SLIDE 11

F"+$,\]^J\_`JaJ\, F"+$,\]^J\_`JaJ^,

LooCI Bindings

!""-1,C8/+8/<#,"#$%!#$&'()*+',!*$-!('+'.&*+"',,"2,P+8O$3$/0Q,(".*"/$/0#, #",0B40,$:$/0#,"2,4,($3048/!'/'$&!&0.',(4/,C$,$Z(B4/<$+J, !""-1,C8/+8/<#,.4&,C$,%"(4%,"3!-#,&(#12&'-,43624(0#J, ,, ,

!8<B0E$/#"3, bcd, !8<B0=8#*%4&, bed, !15MWf@9>=1F5, b\^ed, 3/'$&! 4,&5!67-'! \^e, \]^J\_`JaJ^, 4',&5!879.5! e, E)C#(38*6"/,W4C%$, E)C#(38*6"/,W4C%$, :(+5879.! c, 3/'$&! :(+5!67-'! \^e, \]^J\_`JaJ\, :(+58795! c,

slide-12
SLIDE 12

One-to-One Bindings

>,"/$'0"'"/$,C8/+8/<,%8/I#,4,#8/<%$,8/0$324($G,"2,4,)/8L)$,(".*"/$/0, 8/#04/($,3)//8/<,"/,4,#*$(8K(,/"+$,4++3$##,0",4/,$L)4%%&,)/8L)$, 3$($*04(%$J, ,, , S"3,$Z4.*%$,4,+$:$%"*$3,.4&,("//$(0,0B$,!15MWf@9>=1F5,8/0$324($,"2, 0B$,!8<B0E$/#"3,(".*"/$/0,3)//8/<,"/,/"+$,\]^J\_`JaJ\,0",0B$, !15MWf@9>=1F5,3$($*04(%$,"2,0B$,!8<B0=8#*%4&,(".*"/$/0,3)//8/<,"/, /"+$,\]^J\_`JaJ^J,

FV=9Y,\]^J\_`JaJ\, !8<B0E$/#"3, FV=9Y,\]^J\_`JaJ^, !8<B0=8#*%4&, !15MWf@9>=1F5,

slide-13
SLIDE 13

Multi-Party Bindings

>,9*$0;&7;7$',%8/I#,.)%6*%$,(".*"/$/0,8/0$324($#,0",4,#8/<%$, 3$($*04(%$J, , ,

FV=9Y,\]^J\_`JaJ\, !8<B0E$/#"3, FV=9Y,\]^J\_`JaJ^, !8<B0=8#*%4&, !15MWf@9>=1F5, FV=9Y,\]^J\_`JaJc, !8<B0E$/#"3,

slide-14
SLIDE 14

Multi-Party Bindings

>,7$';&7;9*$0,C8/+8/<,%8/I#,4,(".*"/$/0,8/0$324($#,0",.)%6*%$, 3$($*04(%$#J, , ,

FV=9Y,\]^J\_`JaJ\, !8<B0=8#*%4&, FV=9Y,\]^J\_`JaJ^, !8<B0E$/#"3, FV=9Y,\]^J\_`JaJc, !8<B0=8#*%4&, !15MWf@9>=1F5,

slide-15
SLIDE 15

Use of Wildcards

P&C#$)CC*#55#5@$

T#$,"2,0B$,/"+$,4++3$##,H8%+'(43+,+$/"0$#,4%%,/"+$#,0B40,43$,8/, 34/<$J, AB$/,)#$+,8/,4,H83$S3".PXQ,,.$0B"+G,0B8#,3$#)%0#,8/,0B$,043<$0, 3$($*04(%$,3$($8:8/<,$:$/0#,23".,4/&,%"(46"/,0B40,#$/+#,0B$.J, AB$/,)#$+,8/,4,H83$W"PXQ,,.$0B"+G,0B8#,3$#)%0#,8/,0B$,043<$0,, 8/0$324($,$:$/0#,0",4%%,/"+$#,H80B8/,34/<$J,

'&8:&9#9-$(E5@$

T#$,"2,0B$,(".*"/$/0,1=,H8%+'(43+,+$/"0$#,4/&,(".*"/$/0J, AB$/,)#$+,8/,4,H83$S3".PXQ,.$0B"+G,0B8#,3$#)%0#,,8/,0B$,043<$0, 3$($*04(%$,3$($8:8/<,$:$/0#,23".,4/&,(".*"/$/0,0B40,#$/+#,0B$.J,,

A8%+(43+#,(4/,C$,(".C8/$+G,4%%"H8/<,:$3&,#*$(8K(G,"3,:$3&, C3"4+,C8/+8/<#,0",C$,(3$40$+J,

slide-16
SLIDE 16

Opportunistic Interactions

1/,0B$,#04/+43+8N$+,."+$%G,/",(".*"/$/0#,43$,8.*%8(80%&,C")/+G, B"H$:$3G,,80,8#,#6%%,*"##8C%$,0",(3$40$,(".*"/$/0#,0B40,8/0$34(0, "**"30)/8#6(4%%&J, S"3,9Z4.*%$Y,("/#8+$3,4,."C8%$,#($/438"G,HB$3$,0B$,!8<B0E$/#"3, (".*"/$/0,#B")%+,034/#.80,0",4/&,!8<B0=8#*%4&,H80B8/,34/<$G,0B$, 2"%%"H8/<,#0$*#,H")%+,C$,04I$/Y,

WB$,+$:$%"*$3,H")%+,K3#0,(4%%,0B$,H83$S3".>%%,.$0B"+,"/,0B$,/"+$, B"#6/<,0B$,!8<B0=8#*%4&,)#8/<,0B$,/"+$,4++3$##,H8%+(43+J, WB$,+$:$%"*$3,H")%+,0B$/,(4%%,0B$,H83$W">%%,.$0B"+,"/,0B$,/"+$, B"#6/<,0B$,!8<B0E$/#"3,)#8/<,0B$,/"+$,4++3$##,H8%+(43+J, >g$3,0B$#$,"*$346"/#G,HB$/$:$3,0B$,/"+$#,(".$,H80B8/,34/<$G,0B$&, H8%%,8/0$34(0J,

slide-17
SLIDE 17

Structure of this Talk

!"#$%&&'($)*+",-#+-.*#$

5$/$34%,1/03"+)(6"/, !""-1,-".*"/$/0#,7,!82$(&(%$, !""-1,9:$/0,;)#,7,;8/+8/<#,

!"#$%&&'($/012$)3(45$

!""-1,=$*%"&.$/0,>?1, !""-1,@)/6.$,-"/03"%,>?1, !""-1,1/03"#*$(6"/,>?1,

3*&6*788,96$7$%&&'($'&8:&9#9-$

slide-18
SLIDE 18

LooCI v1.0 APIs

%&&'($E#:J&F8#9-$)3( ,P"/%&,4:48%4C%$,23".,<40$H4&Q, %&&'($G.9=8#$'&9-*&J$)3( ,P4:48%4C%$,"/,<40$H4&,4/+,/"+$#Q, %&&'($(9-*&5:#+=&9$)3( ,P4:48%4C%$,"/,<40$H4&,4/+,/"+$#Q,

slide-19
SLIDE 19

LooCI Deployment API

! ! ! ! ! ,,

P&-#@$E#:J&F8#9-$&*$G#8&/7J$87F$&9JF$<#$#97+-#C$L*&8$-"#$67-#>7F1$

$

<+=7$! >*(*9'&'(,! ?'&2($!/*"2'!

  • '."70!

#038/<,(".*"/$/0S8%$G, #038/<,/"+$1=, C&0$,(".*"/$/01=, ('97/'879.7$'$&! C&0$,(".*"/$/01=G,#038/<, /"+$1=, C""%$4/,3$#)%0,

slide-20
SLIDE 20

LooCI Control API (1/2)

! ! ! ! ! ,,

<+=7$! >*(*9'&'(,! ?'&2($!/*"2'!

*+=/*&'! C&0$,(".*"/$/01=G,#038/<, /"+$1=, C""%$4/,3$#)%0,

  • '*+=/*&'!

C&0$,(".*"/$/01=G,#038/<, /"+$1=, C""%$4/,3$#)%0, @#('A7! C&0$,8/0$324($9:$/0G, C&0$,#")3($-".*"/$/01=, #038/<,#")3($F"+$1=G, #038/<,+$#0F"+$1=, C""%$4/,3$#)%0, @#('B(79! C&0$,8/0$324($9:$/0G, C&0$,#")3($-".*"/$/01=, #038/<,#")3($F"+$1=G, C&0$,3$($*04(%$9:$/0G, C&0$,+$#0-".*"/$/01=G, #038/<,+$#0F"+$1=, C""%$4/,3$#)%0,

slide-21
SLIDE 21

LooCI Control API (2/2)

! ! ! ! ! ,,

<+=7$! >*(*9'&'(,! ?'&2($!/*"2'!

@#('A7<""! C&0$,8/0$324($9:$/0G, C&0$,#")3($-".*"/$/01=G, #038/<,#")3($F"+$1=, C""%$4/,3$#)%0, @#('B(79<""! C&0$,8/0$324($9:$/0G, C&0$,3$($*04(%$9:$/0G, C&0$,+$#0-".*"/$/01=G, #038/<,+$#0F"+$1=, C""%$4/,3$#)%0, @#('C7+*"! C&0$,8/0$324($9:$/0G, C&0$,#")3($-".*"/$/01=, C&0$,3$($*04(%$9:$/0G, #038/<,+$#0-".*"/$/01=G, #038/<,/"+$1=, C""%$4/,3$#)%0, (','&D#(#$E,! C&0$,(".*"/$/01=, #038/<,/"+$1=, C""%$4/,3$#)%0,

slide-22
SLIDE 22

LooCI Introspection API (1/3)

>0,/"+$,%$:$%Y, ! ! ! ! ,,

<+=7$! >*(*9'&'(,! ?'&2($!/*"2'!

E'&879.7$'$&F4,! #038/<,/"+$1=, C&0$bd,(".*"/$/01=#, E'&879.7$'$&F4,G)A0.'! #038/<,(".*"/$/0W&*$G, #038/<,/"+$1=, C&0$bd,(".*"/$/01=#,

slide-23
SLIDE 23

LooCI Introspection API (2/3)

>0,(".*"/$/0,%$:$%Y, , , , , ,,

<+=7$! >*(*9'&'(,! ?'&2($!/*"2'!

E'&879.7$'$&A0.'! C&0$,(".*"/$/01=G, #038/<,/"+$1=, #038/<,(".*"/$/0W&*$, E'&:&*&'! C&0$,(".*"/$/01=, #038/<,/"+$1=, C&0$,#040$, E'&F$&'()*+',! C&0$,(".*"/$/01=G, #038/<,/"+$1=, C&0$bd,$:$/0W&*$, E'&?'+'.&*+"',! C&0$,(".*"/$/01=G, #038/<,/"+$1=, C&0$bd,$:$/0W&*$,

slide-24
SLIDE 24

LooCI Introspection API (3/3)

>0,H83$,%$:$%Y, , , , , ,,

<+=7$! >*(*9'&'(,! ?'&2($!/*"2'!

E'&G2&E7#$E?'97&'D#(',! C&0$,8/0$324($9:$/0G, C&0$,(".*"/$/01=G, #038/<,/"+$1=, #038/<bd,/"+$1=#, E'&F$+79#$E?'97&'D#(',! C&0$,3$($*04(%$9:$/0G, C&0$,(".*"/$/01=G, #038/<,/"+$1=, h#038/<,/"+$1=G,C&0$, (".*"/$/01=ibd,, E'&C7+*"D#(',! C&0$,8/0$324($9:$/0G,C&0$, #")3($-".*"/$/01=G,E038/<, /"+$1=, C&0$bd,(".*"/$/01=#,

slide-25
SLIDE 25

Structure of this Talk

!"#$%&&'($)*+",-#+-.*#$

5$/$34%,1/03"+)(6"/, !""-1,-".*"/$/0#,7,!82$(&(%$, !""-1,9:$/0,;)#,7,;8/+8/<#,

!"#$%&&'($/012$)3(45$

!""-1,=$*%"&.$/0,>?1, !""-1,@)/6.$,-"/03"%,>?1, !""-1,1/03"#*$(6"/,>?1,

3*&6*788,96$7$%&&'($'&8:&9#9-$

slide-26
SLIDE 26

Programming LooCI/SPOT (1/2)

public class TempFilter extends LooCIComponent { private final int TEMP_THRESHOLD = 20; public TempFilter() { super("TempFilter", // component type new byte[]{EventTypes.TEMP_READING}, // interfaces new byte[]{EventTypes.TEMP_READING}); // receptacles } protected void start() { } protected void stop() { } public void receive(Event event) { ... } }

slide-27
SLIDE 27

Programming LooCI/SPOT (2/2)

public class TempFilter extends LooCIComponent { private final int TEMP_THRESHOLD = 20; ... public void receive(Event event) { if (event.getType() == EventTypes.TEMP_READING) { PayloadBuilder payload = new PayloadBuilder(event.getPayload()); int reading = payload.getIntegerAt(0); if (reading > TEMP_THRESHOLD) { payload = new PayloadBuilder(); payload.addInteger(reading); publish(new Event(EventTypes.TEMP_READING, getComponentID(), payload.getPayload())); } } } }

slide-28
SLIDE 28

References

WB$,"38<8/4%,!""-1,*4*$3Y,j!""-1Y,>,!""#$%&'(")*%$+,

  • ".*"/$/0,1/234#03)(0)3$,2"3,F$0H"3I$+,9.C$++$+,

E&#0$.#kG,8/,*3"(J,"2,l"llma]G,**J,\]e'^an, ;)8%+8/<,4**%8(46"/#,H80B,!""-1Y,j;)8%+8/<,A83$%$##,E$/#"3, F$0H"3I,>**%8(46"/#,H80B,!""-1kG,8/,0B$,1/0$3/46"/4%,o")3/4%, "2,l"C8%$,-".*)6/<,4/+,l)%6.$+84,-"..)/8(46"/#, P1ol-l-QG,["%J,^G,F"J,nG,**J,c`'_nJ,, WB$,=8#E$FW,0""%I80Y,jE03$4.%8/8/<,=$:$%"*.$/0,2"3, F$0H"3I$+,9.C$++$+,E&#0$.#,T#8/<,l)%6*%$,?434+8<.#kG, 1999,E"gH43$G,["%J,^pG,F"J,eG,**J,ne,q,e^J,,

slide-29
SLIDE 29

Any Questions?

D,