embedded actors towards distributed programming in the iot
play

Embedded Actors Towards Distributed Programming in the IoT Raphael - PowerPoint PPT Presentation

Embedded Actors Towards Distributed Programming in the IoT Raphael Hiesgen, Dominik Charousset, Thomas C. Schmidt HAW Hamburg raphael.hiesgen@haw-hamburg.de September 2014, ICCE-Berlin Agenda 1 The Internet of Things (IoT) 2 The Actor


  1. Embedded Actors — Towards Distributed Programming in the IoT Raphael Hiesgen, Dominik Charousset, Thomas C. Schmidt HAW Hamburg raphael.hiesgen@haw-hamburg.de September 2014, ICCE-Berlin

  2. Agenda 1 The Internet of Things (IoT) 2 The Actor Model 3 Communication in the IoT 4 Messaging Architecture 5 Evaluation 6 Conclusion & Outlook Raphael Hiesgen iNET – HAW Hamburg 2

  3. The Internet of Things (IoT) Characteristics Cooperatively process complex duties Dependent on machine-to-machine communication Connected to the Internet Implemented with networking standards Often constrained environment Developing for the IoT Fall back to low-level programming Hand-crafted network code Barely portable code ⇒ Raise the level of abstraction through the actor model Raphael Hiesgen iNET – HAW Hamburg 3

  4. Agenda 1 The Internet of Things (IoT) 2 The Actor Model 3 Communication in the IoT 4 Messaging Architecture 5 Evaluation 6 Conclusion & Outlook Raphael Hiesgen iNET – HAW Hamburg 4

  5. The Actor Model Isolated, concurrent software entities: actors Network-transparent message passing Divide & conquer via “spawn” Strong, hierarchical failure model Re-deployment at runtime Raphael Hiesgen iNET – HAW Hamburg 5

  6. Limitations Actors not yet established in the native programming domain Need to broaden range of applications Deploy actors in performance-critical systems Actors not available for embedded systems Why not model the “Internet of Things” as network of actors? HW platform should not dictate programming model Raphael Hiesgen iNET – HAW Hamburg 6

  7. The C++ Actor Framework The C++ Actor Framework ( CAF ) is an C++11 actor system Previously named libcppa Efficient program execution Low memory footprint Fast, lock-free mailbox implementation Targets both high-end and low-end computing Multi-core & many-node systems 1 Embedded HW, e.g., running 1 http://www.riot-os.org Raphael Hiesgen iNET – HAW Hamburg 7

  8. Memory Usage 3500 25th percentile 75th percentile 1st percentile 99th percentile 3000 x x 2500 Resident Set Size [MB] Mean Median 95th percentile 5th percentile 2000 1500 1000 500 0 CAF scala erlang Raphael Hiesgen iNET – HAW Hamburg 8

  9. Agenda 1 The Internet of Things (IoT) 2 The Actor Model 3 Communication in the IoT 4 Messaging Architecture 5 Evaluation 6 Conclusion & Outlook Raphael Hiesgen iNET – HAW Hamburg 9

  10. Communication in the IoT Loosely coupled Unreliable links Infrastructure failure Challenges Error propagation for non-hierarchical systems Secure and authenticated connectivity Multiple open standards available to meet these challenges Raphael Hiesgen iNET – HAW Hamburg 10

  11. Standards for the IoT Bluetooth low energy Supported by all major OSs IEEE 802.15.4 WPAN for embedded devices 127 bytes frame size IPv6 over Low-Power Wireless Personal Area Networks (6LoWPAN) IPv6 compatibility Header compression UDP / Datagram Transport Layer Security (DTLS) Features of TLS with datagrams Reordering, retransmission and fragmentation for the handshake Constrained Application Protocol (CoAP) Request-response model adapted from HTTP Works asynchronously over datagram protocols Offers reliability through Confirmable messages (CON) Raphael Hiesgen iNET – HAW Hamburg 11

  12. Agenda 1 The Internet of Things (IoT) 2 The Actor Model 3 Communication in the IoT 4 Messaging Architecture 5 Evaluation 6 Conclusion & Outlook Raphael Hiesgen iNET – HAW Hamburg 12

  13. CAF Network Stack C++ Actor Framework CoAP TCP DTLS UDP IPv4 / IPv6 6LoWPAN Ethernet / WLAN 802.15.4 / Bluetooth LE Raphael Hiesgen iNET – HAW Hamburg 13

  14. Messaging Architecture Between Actors Map CoAP messages to CAF Reliability (CON) → synchronous messages Unreliability (NON) → asynchronous messages Handle small frame sizes Compress meta-information to slim down headers Type-exchange & annotation introduces more state Fragmentation on the application layer (CoAP block messages) Concept for error-propagation No longer connection oriented Based on asynchronous transactions (CoAP) Take unreliable messages into account Raphael Hiesgen iNET – HAW Hamburg 14

  15. Agenda 1 The Internet of Things (IoT) 2 The Actor Model 3 Communication in the IoT 4 Messaging Architecture 5 Evaluation 6 Conclusion & Outlook Raphael Hiesgen iNET – HAW Hamburg 15

  16. Packet Flow Evaluation Proof-of-concept implementation Network stack composed of Ethernet, UDP and CoAP Based on libcoap 2 Bitrate & message count compared to TCP based impl. Raspberry Pi sends 10 bytes to a desktop PC every 100 ms Characteristic scenario for sensor nodes Trace network traffic (handshakes, ACKs, messages, ...) 2 http://libcoap.sourceforge.net Raphael Hiesgen iNET – HAW Hamburg 16

  17. Packet Flow CoAP + UDP 120k TCP 100k 80k Bit rate (bit/s) 60k 40k 20k 0 0 500 1000 Time (ms) Raphael Hiesgen iNET – HAW Hamburg 17

  18. Packet Size Distribution CoAP + UDP 20 TCP 15 Count 10 5 0 0 20 40 60 80 100 120 140 160 180 200 220 240 260 Packet Size (bytes) Raphael Hiesgen iNET – HAW Hamburg 18

  19. Agenda 1 The Internet of Things (IoT) 2 The Actor Model 3 Communication in the IoT 4 Messaging Architecture 5 Evaluation 6 Conclusion & Outlook Raphael Hiesgen iNET – HAW Hamburg 19

  20. Conclusion & Outlook Development for the IoT requires specialized knowledge Network communication & synchronization Port software to different hardware The actor model abstracts over distributed systems Adjusted the CAF network stack to the IoT Proof-of-concept with first measurements Future work Concept for error-propagation Additional CoAP drafts (CoCoA, block messages, ...) Evaluation of packet loss, message sizes Adaption to RIOT Raphael Hiesgen iNET – HAW Hamburg 20

  21. Thank you for your attention! Website: http://actor-framework.org Sources: https://github.com/actor-framework iNET working group: http://inet.cpt.haw-hamburg.de Raphael Hiesgen iNET – HAW Hamburg 21

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend