Insights
Internet of Things Frameworks

The practice of software engineering experiences intermittent spikes of activity focused on a new technology. In these periods, there is a rush to create new frameworks and tools that will be used to build the next generation of systems. A current interest for organizations that want to connect smart devices is in the supporting technology for the Internet of Things or IOT. In this Quoin Tech Talk, Brad Kain will present a survey of important commercial and open source frameworks.

IoT Frameworks

Apache Kafka

  • Kafka is an established open source platform designed for realtime streaming
  • Publish and subscribe to streams of records, similar to a message queue
  • Fault-tolerant storage
  • Records processing
  • Kafka is generally used for two broad classes of applications
  • Data pipelines that reliably get data between systems or applications
  • Applications that transform or react to the streams of data
  • A Kafka cluster stores streams of records in topics
  • A record is just a timestamped key-value pairs in topics
  • Producer API allows an application to publish a stream of records to one or more Kafka topics
  • Consumer API allows an application to subscribe to one or more topics and process the stream of records
  • Streams API allows an application to act as a stream processor, transforming input to output streams
  • Connector API allows building and running
  • Client applications in Java, Python, Ruby, Node.js, C++, Storm, etc
  • Uses Apache Zookeeper
  • Packaged with HortonWorks, IBM Message Hub, Confluent, etc
  • Integration with Hadoop, JDBC, Oracle for data persistence
  • Integration with ElasticSearch, Hive, Presto for search indexing
  • Reference applications include nytimes.com, pinterest.com. Airbnb.com

Eclipse IoT

  • Hardware Abstraction – software layer to ensure portability and enable access to flash memory, GPIOs, serial interfaces, etc
  • Eclipse Edje provides an high-level API for accessing hardware features
  • Communication – protocols that allow to connect it to a wired or wireless protocol, and therefore enable communication.
  • Eclipse Paho implements the MQTT protocol
  • Remote Management – interface for monitoring and controlling hardware
  • Eclipse Wakaama implements the OMA LWM2M standard
  • Eclipse Kura provides a general purpose middleware and application container for IoT gateway services
  • Eclipse SmartHome provides an IoT gateway platform that is specifically focused on home automation
  • Eclipse 4diac provides an infrastructure for distributed industrial process measurement and control systems based on the IEC 61499 standard

KAA

  • KAA is a middleware platform comprised of a KAA server and custom endpoints to connect devices
  • KAA server implemented as a fault tolerant cluster
  • Managed by Apache Zookeeper
  • REST interfaces, logging, data management, and custom services
  • Integration with Apache Spark, Cassandra
  • Integration with Hadoop, MongoDB, CouchDB, Oracle
  • KAA SDKs for Java, C, C++
  • ‘Banana Beach’ enough said!

TeamViewer

  • Remote desktop control product that has been extended for generalized and distributed device management
  • Platform includes a suite of mature cross-platform technologies
  • Remote Desktop – Remote Login, Screen Sharing
  • Enterprise Management – User Management, Device Management, Software Deployment
  • Collaboration – Video conferencing, chat
  • Security & Monitoring – Encryption, Two-factor Authentication, Trusted Devices, Event-based Monitoring, Dashboard, Logging