250 likes | 335 Views
CCDM: central controller-based device management with distributed script engines. Akihiro Sugiyama Hideya Ochiai Hiroshi Esaki The University of Tokyo / NICT 2009-07-23. Outline. Background CCDM Architecture and System Design Implementation Demonstration Discussion Conclusion.
E N D
CCDM: central controller-based device management with distributed script engines. Akihiro Sugiyama Hideya Ochiai Hiroshi Esaki The University of Tokyo / NICT 2009-07-23
Outline • Background • CCDM Architecture and System Design • Implementation • Demonstration • Discussion • Conclusion
Background • Programming and Data Processing in IP-based Facility Networking • Approach 1: Data Centralization ○Programmability ×Fault tolerance, Computing capacity • Approach 2: Distributed Programming ×Programmability ○Fault tolerance, Scale-out computing capacity • CCDM: Centralized Programming and Distributed Computing in IP-based Facility networking 3F 2F 1F Operator
<< Scenario Description >>Centralized Programming 7 put Programmer AVG get get get 1 1 1 Program Time TCP/IP TCP/IP get 2 GW GW put 6 MAX get Field-bus A Field-bus B 3 gt 5 8 get 20 4 put 1 2 3 4 6 8 7 Sensors and Actuators
<< Scenario Description >>Distributed Computing Program Deploy 20 AVG MAX GW GW gt Field-bus A Field-bus B 5 1 2 3 4 6 8 7
Outline • Background • CCDM Architecture and System Design • Implementation • Demonstration • Discussion • Conclusion
CCDM Architecture Programmer Resource Information (Present) Programming Program Controller Compile Resource Information (Gather) Deploy (or Execute) Resource Information (Extract) Runtime Object GW GW GW GW Field-Bus
Programming by OperatorsHow do operators program?? Switch Light Light Light hot Display cold plus if + divide Comp (gteq) / 4 20 Temperature Actuators Sensors Software Logic
Implementation of Software Logic <OUTPUT name=”X”> <if> <gteq> <divide> <plus> <INPUT name=”A” /> <INPUT name=”B” /> <INPUT name=”C” /> <INPUT name=”D” /> </plus> <int>4</int> </divide> <double>20</double> </gteq> <text>hot</text> <text>cold</text> </if> </OUTPUT> hot X cold A plus if B + divide Comp (gteq) C / D 4 20 Ladder-Software Logic
Implementation byLISP-based XML Script <plus> <int>3</int> <int>5</int> </plus> <while> <lt>...</lt> ... </while> <progn> <setq name=“mysocket”> <dgSocket> <text>203.178.135.72</text> <int>13572</int> </dgSocket> </setq> <dgSend> <getq name=“mysocket” /> <getq name=“myarray” /> </dgSend> <dgClose> <getq name=“mysocket” /> </dgClose> </progn> 3+5 <if> <eq> <getq name=“x” /> <int>6</int> </eq> <text>IPv6</text> <text>Unknown</text> </if> if (x==6) { return “IPv6”; }else{ return “Unknown”; }
The Structure of the Programming Language CCDMScript CCDMScript chunk A chunk A INPUT X Readable Device POST channel C (e.g., Temperature) CATCH OUTPUT Y Writable Device chunk B chunk B (e.g., Buzzer) Message Channel INPUT / OUTPUT
<< The Structure of a Script >>Message Channel <CCDMScript> <chunk name=”A”> ... <POST channel=”C”> ... </POST> </chunk> <chunk name=”B”> ... <CATCH channel=”C” /> ... </chunk> ... </CCDMScript> CCDMScript chunk A POST channel C CATCH chunk B
<< The Structure of a Script >>INPUT / OUTPUT Interfaces <CCDMScript> <chunk name=”A”> ... <INPUT name=”X” /> ... </chunk> <chunk name=”B”> <OUTPUT name=”Y”> ... </OUTPUT> ... </chunk> ... </CCDMScript> CCDMScript Readable Device chunk A INPUT X OUTPUT Y Writable Device chunk B
Compile Process CCDMScript Executable Code for GW0 chunk A INPUT POST Compile Device driver socket channel C CATCH TCP/IP OUTPUT chunk B socket Device driver Executable Code for GW1 Resouce Information
Resource Information IP Address Other Information IP Address Other Information Port Range Port Range Device List Device List I/F Name Device Driver I/F Name Device Driver A ........... A’ ........... B ........... B’ ........... C ........... C’ ........... D ........... D’ ........... Resource Information from GW0 Resource Information from GW1
Outline • Background • CCDM Architecture and System Design • Implementation • Demonstration • Discussion • Conclusion
Implementation • Core System: Java - 84 classes • Interpreter • Compiler • Deployment Tools • Devices • {Buzzer, 3 Color LED, 7 Segment LED, Rotary SW, CDS} on PICNIC • Weather Sensor (WM918) on Armadillo • Dot Matrix Display on Armadillo
Outline • Background • CCDM Architecture and System Design • Implementation • Demonstration • Discussion • Conclusion
Demonstration Head Quarter CCDM Controller Armadillo Switch Weather Sensor Armadillo Display Switch Switch Switch Ethernet Ethernet Ethernet CCDM GW CCDM GW CCDM GW PICNIC PICNIC PICNIC PICNIC PICNIC PIO PIO PIO PIO PIO LED SW LED SW CDS LED LED SW CDS LED Buzzer Buzzer Buzzer Room 1 Room 2 Room 3
Demonstration (Compile and Deploy) Head Quarter Program CCDM Controller Compile Armadillo Exec Code Exec Code Switch Weather Sensor Exec Code Armadillo Deploy Deploy Deploy Display Switch Switch Switch Exec Code Ethernet Exec Code Exec Code Ethernet Ethernet CCDM GW CCDM GW CCDM GW PICNIC PICNIC PICNIC PICNIC PICNIC PIO PIO PIO PIO PIO LED SW LED SW CDS LED LED SW CDS LED Buzzer Buzzer Buzzer Room 1 Room 2 Room 3
Demonstration (Dataflow and Fault Tolerance) Head Quarter Program CCDM Controller Armadillo Switch Weather Sensor Armadillo Display Switch Switch Switch Exec Code Ethernet Exec Code Exec Code Ethernet Ethernet CCDM GW CCDM GW CCDM GW PICNIC PICNIC PICNIC PICNIC PICNIC PIO PIO PIO PIO PIO LED SW LED SW CDS LED LED SW CDS LED Buzzer Buzzer Buzzer Room 1 Room 2 Room 3
Outline • Background • CCDM Architecture and System Design • Implementation • Demonstration • Discussion • Conclusion
Discussion • Programming and Compiler • Static resource information × Dynamic optimization, resource management • Toward Facility Operating System • Dynamic resource management • Access control • Sensor networking as a database • Sensor networking as a network
Conclusion • Centralized Programming and Distributed Computing for IP-Based Facility Networking • CCDM Design using LISP-based XML Script • Facility Networking can be discussed in terms of Resource Management and Programming • Open Issues • Debug, Dynamic optimization • Multi-operator case: Mutual exclusion, Access control