Elimina'ng Implicit Dependencies in Component Models for - - PowerPoint PPT Presentation

elimina ng implicit dependencies in component models for
SMART_READER_LITE
LIVE PREVIEW

Elimina'ng Implicit Dependencies in Component Models for - - PowerPoint PPT Presentation

Elimina'ng Implicit Dependencies in Component Models for Networked Embedded Systems Danny Hughes Katholieke Universiteit Leuven danny.hughes@cs.kuleuven.be


slide-1
SLIDE 1

Elimina'ng ¡Implicit ¡Dependencies ¡ in ¡Component ¡Models ¡for ¡ Networked ¡Embedded ¡Systems ¡ ¡

Danny ¡Hughes ¡ Katholieke ¡Universiteit ¡Leuven ¡

¡

danny.hughes@cs.kuleuven.be ¡

slide-2
SLIDE 2

Structure ¡of ¡This ¡Talk ¡

  • 1. What ¡is ¡a ¡component ¡model? ¡
  • 2. Cri=que ¡of ¡contemporary ¡component ¡models ¡

¡

  • 3. The ¡Loosely-­‑coupled ¡Component ¡Infrastructure ¡
  • 4. Conclusions ¡
slide-3
SLIDE 3

Structure ¡of ¡This ¡Talk ¡

  • 1. What ¡is ¡a ¡component ¡model? ¡
  • 2. Cri=que ¡of ¡contemporary ¡component ¡models ¡

¡

  • 3. The ¡Loosely-­‑coupled ¡Component ¡Infrastructure ¡
  • 4. Conclusions ¡
slide-4
SLIDE 4

Defining ¡Components ¡

“A ¡software ¡component ¡is ¡a ¡unit ¡of ¡composition ¡ with ¡contractually ¡specified ¡interfaces ¡and ¡ explicit ¡context ¡dependencies ¡only. ¡A ¡software ¡ component ¡can ¡be ¡deployed ¡independently ¡and ¡is ¡ subject ¡to ¡third-­‑party ¡composition.” ¡ ¡

¡

¡-­‑ ¡Clemens ¡Szyperski ¡ Microso3 ¡ ¡

slide-5
SLIDE 5

Contractually ¡Specified ¡Interfaces ¡

  • Types ¡of ¡Interface: ¡

– Provided ¡interfaces ¡define ¡the ¡services ¡that ¡a ¡component ¡offers. ¡ – Required ¡interfaces ¡define ¡the ¡services ¡that ¡a ¡component ¡

  • requires. ¡
  • Interfaces ¡are ¡specified ¡in ¡a ¡standardized ¡form ¡and ¡may ¡be ¡
  • inspected. ¡
  • This ¡enables ¡us ¡to ¡easily ¡compose ¡custom ¡soJware ¡images ¡
  • p=mized ¡for ¡a ¡specific ¡context. ¡
  • This ¡is ¡cri=cal ¡in ¡NES, ¡where ¡we ¡have ¡very ¡constrained ¡
  • resources. ¡
slide-6
SLIDE 6

Contractually ¡Specified ¡Interfaces ¡

“A ¡so3ware ¡component ¡is ¡a ¡unit ¡of ¡composi@on ¡ with ¡contractually ¡specified ¡interfaces ¡and ¡explicit ¡ context ¡dependencies ¡only. ¡A ¡so3ware ¡component ¡ can ¡be ¡deployed ¡independently ¡and ¡is ¡subject ¡to ¡ third-­‑party ¡composi@on.” ¡

  • ­‑ Clemens ¡Szyperski ¡
slide-7
SLIDE 7

Contractually ¡Specified ¡Interfaces ¡

“A ¡so3ware ¡component ¡is ¡a ¡unit ¡of ¡composi@on ¡ with ¡contractually ¡specified ¡interfaces ¡and ¡explicit ¡ context ¡dependencies ¡only. ¡A ¡so3ware ¡component ¡ can ¡be ¡deployed ¡independently ¡and ¡is ¡subject ¡to ¡ third-­‑party ¡composi@on.” ¡

  • ­‑ Clemens ¡Szyperski ¡
slide-8
SLIDE 8

Contractually ¡Specified ¡Interfaces ¡

“A ¡so3ware ¡component ¡is ¡a ¡unit ¡of ¡composi@on ¡ with ¡contractually ¡specified ¡interfaces ¡and ¡explicit ¡ context ¡dependencies ¡only. ¡A ¡so3ware ¡component ¡ can ¡be ¡deployed ¡independently ¡and ¡is ¡subject ¡to ¡ third-­‑party ¡composi@on.” ¡

  • ­‑ Clemens ¡Szyperski ¡
slide-9
SLIDE 9

Applica'on ¡Composi'ons ¡

  • Component-­‑based ¡development ¡consists ¡of ¡two ¡

phases: ¡

– Development ¡of ¡re-­‑usable ¡components. ¡ – Wiring ¡of ¡components ¡into ¡an ¡‘applica=on ¡ composi=on’. ¡

TEMP ¡ SENSOR ¡ TEMP ¡ ALARM ¡ ALARM ¡ GUI ¡

Fire ¡Monitoring ¡Composi=on ¡ Generic ¡Components ¡ Bindings ¡

slide-10
SLIDE 10

Independent ¡Deployable ¡

  • Components ¡should ¡be ¡deployable ¡as ¡self-­‑

contained ¡en==es ¡without ¡support. ¡

  • This ¡enables ¡the ¡injec=on ¡of ¡specific ¡func=onality ¡

at ¡run-­‑=me ¡without ¡monolithic ¡re-­‑flashing. ¡

  • This ¡enables: ¡

– SoJware ¡evolu=on ¡through ¡component ¡updates. ¡ – Adapta=on ¡through ¡component ¡replacement. ¡

¡

  • This ¡is ¡an ¡excellent ¡fit ¡with ¡the ¡dynamic ¡

characteris=cs ¡of ¡NES. ¡

slide-11
SLIDE 11

Characteris'cs ¡of ¡NES ¡(1/2) ¡

  • Heterogeneity ¡in ¡mul=ple ¡dimensions: ¡

– Compu=ng, ¡networking, ¡sensing, ¡soJware. ¡

  • Extreme ¡resource ¡constraints: ¡

– CPU, ¡Memory ¡and ¡Networking. ¡ – Limited ¡power ¡supplies ¡(baaery ¡or ¡solar ¡power). ¡

  • Dynamic ¡opera=ng ¡environments: ¡

– Changing ¡applica=on ¡requirements. ¡ – Tight ¡coupling ¡with ¡environment. ¡

slide-12
SLIDE 12

Characteris'cs ¡of ¡NES ¡(2/2) ¡

  • Unreliable: ¡

– Nodes ¡use ¡unreliable ¡radio ¡links. ¡ – Nodes ¡power ¡supplies ¡may ¡be ¡exhausted. ¡

  • Highly ¡distributed: ¡

– Typical ¡applica=ons ¡use ¡thousands ¡or ¡nodes. ¡ – Nodes ¡have ¡a ¡range ¡of ¡may ¡be ¡deployed ¡across ¡ 100s ¡of ¡KM ¡of ¡variable ¡terrain. ¡

slide-13
SLIDE 13

3rd ¡Party ¡Composi'on ¡

  • Combina=on ¡of: ¡explicit ¡interfaces ¡and ¡explicit ¡context ¡

dependencies ¡allows ¡for ¡3rd ¡party ¡composi=on. ¡

  • As ¡the ¡component ¡describes ¡the ¡services ¡it ¡provides, ¡

we ¡can ¡find ¡compa=ble ¡building ¡blocks. ¡

  • As ¡the ¡component ¡is ¡independently ¡deployable, ¡we ¡

can ¡treat ¡it ¡as ¡a ¡black ¡box ¡in ¡our ¡composi=on. ¡

  • The ¡vision ¡is ¡that ¡the ¡developer ¡is ¡relieved ¡from ¡low-­‑

level ¡details ¡and ¡becomes ¡a ¡‘composer’ ¡of ¡ components.... ¡but ¡there ¡are ¡complica=ons. ¡

slide-14
SLIDE 14

3rd ¡Party ¡Composi'on ¡

  • Combina=on ¡of: ¡explicit ¡interfaces ¡and ¡explicit ¡context ¡

dependencies ¡allows ¡for ¡3rd ¡party ¡composi=on. ¡

  • As ¡the ¡component ¡describes ¡the ¡services ¡it ¡provides, ¡

we ¡can ¡find ¡compa=ble ¡building ¡blocks. ¡

  • As ¡the ¡component ¡is ¡independently ¡deployable, ¡we ¡

can ¡treat ¡it ¡as ¡a ¡black ¡box ¡in ¡our ¡composi=on. ¡

  • The ¡vision ¡is ¡that ¡the ¡developer ¡is ¡relieved ¡from ¡low-­‑

level ¡details ¡and ¡becomes ¡a ¡‘composer’ ¡of ¡ components.... ¡but ¡there ¡are ¡complica/ons. ¡

slide-15
SLIDE 15

Explicit ¡Context ¡Dependencies ¡

  • Required ¡soJware ¡interfaces ¡are ¡ ¡one ¡form ¡of ¡

dependency, ¡others ¡include: ¡

– PlaHorm ¡dependencies ¡on ¡OS ¡and ¡hardware. ¡ – Distribu@on ¡dependencies ¡on ¡IP, ¡RMI, ¡etc. ¡

TEMP ¡ SENSOR ¡ TEMP ¡ ALARM ¡ ALARM ¡ GUI ¡ PDA ¡(node ¡1): ¡ ¡ ¡ ¡ ¡ ¡ ¡ Sensor ¡(node ¡2): ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-16
SLIDE 16

Explicit ¡Context ¡Dependencies ¡

  • Required ¡soJware ¡interfaces ¡are ¡ ¡one ¡form ¡of ¡

dependency, ¡others ¡include: ¡

– Pla4orm ¡dependencies ¡on ¡OS ¡and ¡hardware. ¡ – Distribu@on ¡dependencies ¡on ¡IP, ¡RMI, ¡etc. ¡

TEMP ¡ SENSOR ¡ TEMP ¡ ALARM ¡ ALARM ¡ GUI ¡ PDA ¡(node ¡1): ¡ ¡ ¡ ¡ ¡ ¡ ¡ Sensor ¡(node ¡2): ¡ ¡ ¡ ¡ ¡ ¡ ¡ ANDROID ¡ OS ¡ CONTIKI ¡OS ¡

slide-17
SLIDE 17

Explicit ¡Context ¡Dependencies ¡

  • Required ¡soJware ¡interfaces ¡are ¡ ¡one ¡form ¡of ¡

dependency, ¡others ¡include: ¡

– Pla4orm ¡dependencies ¡on ¡OS ¡and ¡hardware. ¡ – Distribu/on ¡dependencies ¡on ¡IP, ¡RMI, ¡etc. ¡

TEMP ¡ SENSOR ¡ TEMP ¡ ALARM ¡ ALARM ¡ GUI ¡ PDA ¡(node ¡1): ¡ ¡ ¡ ¡ ¡ ¡ ¡ Sensor ¡(node ¡2): ¡ ¡ ¡ ¡ ¡ ¡ ¡ ANDROID ¡ OS ¡ SQUAWK ¡O/S ¡ Java ¡RMI ¡

slide-18
SLIDE 18

Introspec'on ¡

  • Dynamism ¡and ¡unreliability ¡means ¡that ¡we ¡

cannot ¡assume ¡a ¡fixed ¡composi=on. ¡ ¡

TEMP ¡ SENSOR ¡ TEMP ¡ ALARM ¡ ALARM ¡ GUI ¡ PDA ¡(node ¡1): ¡ ¡ ¡ ¡ ¡ ¡ ¡ Sensor ¡(node ¡2): ¡ ¡ ¡ ¡ ¡ ¡ ¡ ANDROID ¡ OS ¡ SQUAWK ¡O/S ¡ Java ¡RMI ¡

slide-19
SLIDE 19

Introspec'on ¡

  • Dynamism ¡and ¡unreliability ¡means ¡that ¡we ¡

cannot ¡assume ¡a ¡fixed ¡composi=on. ¡ ¡

ALL ¡ CLEAR ¡

slide-20
SLIDE 20

Introspec'on ¡

  • Dynamism ¡and ¡unreliability ¡means ¡that ¡we ¡

cannot ¡assume ¡a ¡fixed ¡composi=on. ¡ ¡

ALL ¡ CLEAR ¡

POWER ¡IS ¡INTERRUPTED ¡AND ¡NODE ¡FAILS ¡

slide-21
SLIDE 21

Introspec'on ¡

  • Dynamism ¡and ¡unreliability ¡means ¡that ¡we ¡

cannot ¡assume ¡a ¡fixed ¡composi=on. ¡ ¡

ALL ¡ CLEAR ¡

POWER ¡RESUMES ¡AND ¡NODE ¡REACTIVATES ¡

slide-22
SLIDE 22

Introspec'on ¡

  • Dynamism ¡and ¡unreliability ¡mean ¡that ¡we ¡

cannot ¡assume ¡a ¡fixed ¡composi=on. ¡ ¡

ALARM ¡ GUI ¡ PDA ¡(node ¡1): ¡ ¡ ¡ ¡ ¡ ¡ ¡ Sensor ¡(node ¡2): ¡ ¡ ¡ ¡ ¡ ¡ ¡ ANDROID ¡ OS ¡ SQUAWK ¡O/S ¡

BUT ¡OUR ¡COMPOSITION ¡IS ¡FAULTY ¡DUE ¡TO ¡MISSING ¡COMPONENTS. ¡

slide-23
SLIDE 23

Introspec'on ¡

  • Dynamism ¡and ¡unreliability ¡means ¡that ¡we ¡

cannot ¡assume ¡a ¡fixed ¡composi=on. ¡ ¡

ALL ¡ CLEAR ¡

slide-24
SLIDE 24

Introspec'on ¡

  • Dynamism ¡and ¡unreliability ¡means ¡that ¡we ¡

cannot ¡assume ¡a ¡fixed ¡composi=on. ¡ ¡

ALL ¡ CLEAR ¡

AFTER ¡RESET ¡ALARMS ¡ARE ¡NOT ¡RECEIVED! ¡

slide-25
SLIDE 25

Introspec'on ¡

  • Dynamism ¡and ¡unreliability ¡mean ¡that ¡we ¡cannot ¡

assume ¡a ¡fixed ¡composi=on. ¡

  • We ¡need ¡to ¡inspect ¡the ¡composi=on ¡at ¡run=me ¡

and ¡determine ¡its ¡state. ¡

  • This ¡enables ¡us ¡to ¡reason ¡about ¡composi=on ¡

state ¡and ¡sensibly ¡reconfigure. ¡

  • The ¡possibility ¡of ¡autonomic ¡repair ¡and ¡

reconfigura=on ¡is ¡introduced. ¡

slide-26
SLIDE 26

Structure ¡of ¡This ¡Talk ¡

  • 1. What ¡is ¡a ¡component ¡model? ¡
  • 2. Cri'que ¡of ¡contemporary ¡component ¡models ¡

¡

  • 3. The ¡Loosely-­‑coupled ¡Component ¡Infrastructure ¡
  • 4. Conclusions ¡
slide-27
SLIDE 27

State ¡of ¡the ¡Art ¡(1/3) ¡

  • NesC ¡is ¡a ¡popular ¡WSN ¡component ¡model ¡that ¡supports ¡
  • TinyOS. ¡

– At ¡development ¡=me, ¡developers ¡compose ¡a ¡custom ¡run=me ¡ from ¡generic ¡components. ¡ – This ¡applica=on ¡composi=on ¡is ¡op=mized ¡and ¡compiled ¡to ¡a ¡ monolithic ¡binary ¡removing ¡plagorm ¡dependencies. ¡ – This ¡binary ¡can ¡be ¡deployed ¡over ¡the ¡air ¡on ¡sensor ¡nodes. ¡ – No ¡distribu=on ¡support ¡is ¡provided ¡and ¡distribu=on ¡is ¡ embedded ¡in ¡components ¡and ¡implicit. ¡

  • As ¡components ¡do ¡not ¡persist ¡at ¡run@me ¡we ¡lose ¡

introspec=on ¡and ¡reconfigura=on. ¡

  • We ¡also ¡cannot ¡re-­‑use ¡components ¡in ¡new ¡distributed ¡

contexts ¡as ¡their ¡distribu=on ¡mechanisms ¡are ¡hard-­‑coded. ¡ ¡

slide-28
SLIDE 28

State ¡of ¡the ¡Art ¡(2/3) ¡

  • OpenCOM/RUNES: ¡

– Plagorm ¡independent ¡reconfigurable ¡component ¡model. ¡ – Composi=ons ¡are ¡supported ¡by ¡a ¡minimal ¡kernel ¡that ¡ implements ¡introspec=on ¡and ¡reconfigura=on. ¡ – Distribu=on ¡support ¡is ¡embedded ¡in ¡components ¡or ¡ provided ¡transparently ¡by ¡the ¡run=me. ¡

  • This ¡allows ¡for ¡run=me ¡introspec=on, ¡management ¡

and ¡reconfigura=on. ¡

  • But ¡it ¡doesn’t ¡fix ¡our ¡distribu=on ¡problems ¡and ¡

plagorm ¡dependencies ¡are ¡implicit. ¡ ¡

slide-29
SLIDE 29

State ¡of ¡the ¡Art ¡(3/3) ¡

  • OSGi: ¡

– Plagorm ¡independent ¡reconfigurable ¡component ¡model. ¡ – Distribu=on ¡support ¡is ¡embedded ¡in ¡components ¡or ¡ provided ¡transparently ¡by ¡the ¡run=me. ¡ – OSGi ¡also ¡provides ¡op=onal ¡support ¡for ¡describing ¡ plagorm ¡dependencies. ¡

  • REMORA: ¡

– Plagorm ¡independent ¡reconfigurable ¡component ¡model. ¡ – Uses ¡a ¡high-­‑level ¡language ¡to ¡specify ¡components ¡that ¡is ¡ compiled ¡down ¡to ¡byte-­‑code ¡that ¡is ¡executed ¡on ¡the ¡ REMORA ¡VM, ¡removing ¡implicit ¡dependencies. ¡

¡

slide-30
SLIDE 30

Against ¡Transparent ¡Distribu'on ¡

  • Transparent ¡distribu=on ¡allow ¡local ¡communica=on ¡

seman=cs ¡to ¡be ¡applied ¡in ¡distributed ¡fashion. ¡

  • Classic ¡example ¡is ¡RPC: ¡

– Under ¡the ¡hood ¡interfaces ¡and ¡receptacles ¡map ¡to ¡ procedure ¡calls. ¡ – RPC ¡provides ¡an ¡easy ¡way ¡to ¡make ¡local ¡component ¡ models ¡distributed. ¡

  • But ¡this ¡depends ¡on ¡distributed ¡registries ¡that ¡are ¡
  • utside ¡of ¡the ¡model ¡and ¡thus ¡invisible ¡to ¡the ¡

applica=on ¡composer. ¡

slide-31
SLIDE 31

Against ¡Transparent ¡Distribu'on ¡

  • We ¡built ¡a ¡large-­‑scale ¡flood ¡warning ¡system ¡using ¡OpenCOM. ¡
  • We ¡demonstrated ¡benefits ¡but ¡distribu=on ¡was ¡a ¡problem. ¡

COMPOSITION ¡VIEW ¡ A ¡

FLOOD ¡ MODEL ¡

B ¡

FLOOD ¡ MODEL ¡

slide-32
SLIDE 32

Against ¡Transparent ¡Distribu'on ¡

  • We ¡built ¡a ¡large-­‑scale ¡flood ¡warning ¡system ¡using ¡OpenCOM. ¡
  • We ¡demonstrated ¡benefits ¡but ¡distribu=on ¡was ¡a ¡problem. ¡

DISTRUBTION ¡VIEW ¡ A ¡

FLOOD ¡ MODEL ¡

B ¡

FLOOD ¡ MODEL ¡

C ¡

slide-33
SLIDE 33

Against ¡Transparent ¡Distribu'on ¡

  • We ¡built ¡a ¡large-­‑scale ¡flood ¡warning ¡system ¡using ¡OpenCOM. ¡
  • We ¡demonstrated ¡benefits ¡but ¡distribu=on ¡was ¡a ¡problem. ¡

WHAT ¡IF ¡(C) ¡FAILS? ¡ A ¡

FLOOD ¡ MODEL ¡

B ¡

FLOOD ¡ MODEL ¡

C ¡

slide-34
SLIDE 34

Against ¡Transparent ¡Distribu'on ¡

  • We ¡built ¡a ¡large-­‑scale ¡flood ¡warning ¡system ¡using ¡OpenCOM. ¡
  • We ¡demonstrated ¡benefits ¡but ¡distribu=on ¡was ¡a ¡problem. ¡

OUR ¡COMPOSITION ¡IS ¡FAULTY, ¡BUT ¡WE ¡CANNOT ¡TELL! ¡ A ¡

FLOOD ¡ MODEL ¡

B ¡

FLOOD ¡ MODEL ¡

slide-35
SLIDE 35

Against ¡Transparent ¡Distribu'on ¡

  • The ¡introspec=on ¡view ¡should ¡match ¡the ¡distributed ¡

view… ¡

  • …If ¡not, ¡the ¡applica=on ¡developer ¡does ¡not ¡see ¡the ¡

whole ¡story. ¡

  • Worse ¡s=ll, ¡as ¡the ¡RPC ¡registry ¡is ¡not ¡a ¡component, ¡it ¡

cannot ¡be ¡managed. ¡

  • What ¡we ¡really ¡need: ¡

– All ¡distributed ¡dependencies ¡must ¡be ¡explicitly ¡specified. ¡ – Distribu=on ¡topology ¡must ¡match ¡composi=on. ¡

slide-36
SLIDE 36

Against ¡Virtual ¡Machines ¡

  • REMORA ¡removes ¡implicit ¡dependencies ¡by ¡compiling ¡

everything ¡to ¡a ¡common ¡VM ¡but ¡access ¡to ¡lower ¡layers ¡ is ¡valuable ¡as ¡OS ¡and ¡hardware ¡developers ¡are ¡clever ¡ guys: ¡

– Abstrac=ng ¡features ¡ ¡to ¡the ¡lowest ¡common ¡denominator ¡ is ¡like ¡building ¡a ¡Skoda ¡from ¡Ferrari ¡parts. ¡

  • Models ¡such ¡as ¡TinyOS, ¡RUNES, ¡OpenCOM ¡and ¡OSGi ¡

allow ¡low-­‑level ¡access. ¡

– This ¡means ¡they ¡can ¡access ¡all ¡the ¡OS/hardware ¡goodies. ¡

  • I’ll ¡conclude ¡with ¡a ¡look ¡at ¡another ¡poten=al ¡approach. ¡
slide-37
SLIDE 37

Contemporary ¡Component ¡Models ¡

The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.

N/P ¡= ¡Not ¡Possible, ¡E ¡= ¡Explicit, ¡I ¡= ¡Implicit ¡

slide-38
SLIDE 38

No ¡Model ¡Meets ¡our ¡Defini'on! ¡

“A ¡software ¡component ¡is ¡a ¡unit ¡of ¡composition ¡ with ¡contractually ¡specified ¡interfaces ¡and ¡ explicit ¡context ¡dependencies ¡only. ¡A ¡software ¡ component ¡can ¡be ¡deployed ¡independently ¡and ¡is ¡ subject ¡to ¡third-­‑party ¡composition.” ¡ ¡

¡

¡-­‑ ¡Clemens ¡Szyperski ¡ Microso3 ¡ ¡

slide-39
SLIDE 39

Structure ¡of ¡This ¡Talk ¡

  • 1. What ¡is ¡a ¡component ¡model? ¡
  • 2. Cri=que ¡of ¡contemporary ¡component ¡models ¡

¡

  • 3. The ¡Loosely-­‑coupled ¡Component ¡Infrastructure ¡
  • 4. Conclusions ¡
slide-40
SLIDE 40

LooCI Principles

  • Match ¡the ¡Abstrac/on ¡with ¡the ¡Environment: ¡WSN ¡

are ¡inherently ¡event-­‑based, ¡so ¡this ¡lowers ¡overhead. ¡

  • Harmonize ¡Composi/on ¡and ¡Distribu/on ¡views: ¡ ¡

implicit ¡dependencies ¡are ¡removed. ¡

  • Separa/on ¡of ¡Distribu/on ¡Concerns: ¡components ¡do ¡

not ¡know ¡anything ¡about ¡distribu=on. ¡

¡

  • Suppor/ng ¡Dynamic ¡Reconfigura/on: ¡maintaining ¡

loosely-­‑coupled ¡bindings: ¡

– Facilitates ¡the ¡reifica=on ¡of ¡distributed ¡applica=on ¡state. ¡ – Minimizes ¡the ¡need ¡for ¡distributed ¡quiescence ¡protocols. ¡

40 ¡

slide-41
SLIDE 41

LooCI Features

  • Low-­‑level ¡Access: ¡full ¡access ¡to ¡the ¡lower ¡layers. ¡
  • Distributed ¡Event ¡Bus: ¡completely ¡decentralized ¡

publish-­‑subscribe ¡communica=on. ¡

¡

  • Asynchronous ¡Interac/ons: ¡best-­‑effort ¡event ¡

delivery, ¡no ¡blocking ¡on ¡send/receive. ¡

  • Mul/-­‑model ¡Bindings: ¡allow ¡for ¡one-­‑to-­‑one, ¡one-­‑

to-­‑many, ¡many-­‑to-­‑many ¡and ¡opportunis=c ¡

  • bindings. ¡

41 ¡

slide-42
SLIDE 42

The LooCI Architecture ¡

Reconfigura=on ¡ Engine ¡ Component ¡ Component ¡ Component ¡ Event ¡Manager ¡ Standardized ¡Network ¡Framework ¡ Underlying ¡Plagorm ¡(SunSPOT, ¡Con=ki, ¡OSGi) ¡

slide-43
SLIDE 43

LooCI ¡Components ¡

  • LooCI ¡Component ¡

– is ¡a ¡coarse ¡grained ¡unit ¡of ¡func=onality ¡ ¡ – Encapsulates ¡local ¡func=onality ¡and ¡connects ¡it ¡to ¡the ¡ Reconfigura=on ¡Engine ¡(introspec=on, ¡life-­‑cycle ¡control) ¡ and ¡Event ¡Bus ¡(distributed ¡composi=on). ¡

  • Interac'on ¡

– Exclusively ¡via ¡events ¡over ¡explicitly ¡declared ¡interfaces: ¡

  • Provided ¡Interfaces ¡model ¡the ¡publica=on ¡of ¡events ¡to ¡the ¡

event ¡bus. ¡

  • Required ¡Interfaces ¡model ¡the ¡subscrip=on ¡to ¡events ¡from ¡

the ¡event ¡bus. ¡

43 ¡

slide-44
SLIDE 44

LooCI Bindings

  • Decentralized ¡publish/subscribe ¡communica=on ¡medium ¡

that ¡is ¡distributed ¡across ¡all ¡sensor ¡nodes ¡

  • Consistent ¡Views: ¡the ¡distribu=on ¡view ¡matches ¡the ¡

composi=on ¡view. ¡

  • The ¡event ¡manager ¡stores ¡Binding ¡informa=on ¡used ¡to ¡

dispatch ¡events: ¡

– From ¡local ¡components ¡to ¡local ¡or ¡remote ¡components. ¡ – From ¡remote ¡components ¡to ¡local ¡components ¡

44 ¡

slide-45
SLIDE 45

Run'me ¡Memory ¡Evalua'on ¡

45 ¡

Contiki SQUAWK OSGi LooCI 2,167 bytes 7,168 bytes 84,992 bytes Underlying Platform 8,885 bytes 78,848 bytes 445,440 bytes Total RAM Required 11,052 bytes 86,016 bytes 530,432 bytes

STATIC ¡RUNTIME ¡MEMORY ¡CONSUMPTION ¡ DYNAMIC ¡RUNTIME ¡MEMORY ¡CONSUMPTION ¡

LooCI ¡is ¡small. ¡

slide-46
SLIDE 46

Component ¡Memory ¡Evalua'on ¡

46 ¡

Contiki SQUAWK OSGi TempMonitor

  • Native Application

281 bytes 1,740 bytes 1,511 bytes

  • LooCI Component

220 bytes 1,843 bytes 1,750 bytes

  • Change using LooCI
  • 61 bytes

+103 bytes + 239 bytes Contiki SQUAWK OSGi TempMonitor

  • Native Application

63 21,504 bytes 4,588 bytes

  • LooCI Component

59 26,624 bytes 2,304 bytes

  • Change using LooCI
  • 4 bytes

+5,120 bytes + 2,284 bytes

STATIC ¡COMPONENT ¡MEMORY ¡CONSUMPTION ¡ DYNAMIC ¡COMPONENT ¡MEMORY ¡CONSUMPTION ¡

Components ¡are ¡small. ¡

slide-47
SLIDE 47

LooCI ¡Performance ¡Evalua'on ¡

47 ¡

Contiki SQUAWK OSGi Runtime Initialization: 14 ms 498 ms 19 ms Component Initialization: 0.26 ms 35 ms 1050 ms Component Wiring: 0.15 ms 12 ms 0.12 ms Component Unwiring: 0.15 ms 12 ms 0.12 ms

RUNTIME ¡PERFORMANCE ¡

The ¡event ¡bus ¡is ¡fast. ¡

slide-48
SLIDE 48

LooCI ¡Developer ¡Effort ¡

48 ¡

Development ¡is ¡easy. ¡

Contiki SQUAWK OSGi Interface/receptacle declarations: 2 1 1 Other component declaration code: 4 5 10 Event publication: 1 1 1 Total LooCI LoC: 7 7 8 Total non-LooCI LoC: 14 8 7

DEVELOPER ¡EFFORT ¡

slide-49
SLIDE 49

Future ¡Work ¡

  • You ¡will ¡no=ce ¡that ¡we ¡have ¡not ¡tackled ¡implicit ¡

distribu=on ¡dependencies. ¡

  • We ¡have ¡advocated ¡against ¡VMs ¡(REMORA) ¡and ¡

sta=c ¡composi=on ¡(NesC) ¡is ¡not ¡an ¡op=on. ¡

  • We ¡are ¡working ¡on ¡embedding ¡explicit ¡plagorm ¡

dependencies: ¡

– Embed ¡explicit ¡descrip=ons ¡of ¡plagorm ¡requirements ¡ in ¡components. ¡ – Embed ¡explicit ¡descrip=ons ¡of ¡plagorm ¡features ¡in ¡ node ¡run-­‑=m. ¡ ¡

slide-50
SLIDE 50

Structure ¡of ¡This ¡Talk ¡

  • 1. What ¡is ¡a ¡component ¡model? ¡
  • 2. Cri=que ¡of ¡contemporary ¡component ¡models ¡

¡

  • 3. The ¡Loosely-­‑coupled ¡Component ¡Infrastructure ¡
  • 4. Conclusions ¡
slide-51
SLIDE 51

Conclusions ¡

  • We ¡have ¡seen ¡that ¡no ¡component ¡model ¡fulfils ¡

the ¡complete ¡vision ¡of ¡CBSE. ¡

  • In ¡NES ¡problems ¡that ¡were ¡glossed ¡over ¡by ¡the ¡

DS ¡community ¡come ¡to ¡the ¡fore: ¡

– Implicit ¡distribu=on ¡dependencies. ¡ – Implicit ¡plagorm ¡dependencies. ¡

  • We ¡have ¡demonstrated ¡that ¡implicit ¡distribu=on ¡

dependencies ¡can ¡be ¡removed ¡and ¡advocate ¡for ¡ the ¡removal ¡of ¡implicit ¡plagorm ¡dependencies. ¡

slide-52
SLIDE 52

Thanks ¡To… ¡

The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file
  • again. If the red x still appears, you may have to
delete the image and then insert it again.