CHARIOT
-
Upload
saurav-kumar -
Category
Software
-
view
152 -
download
0
Transcript of CHARIOT
chariotA scalable processing architecture for Internet of Things
Abhilash Kumar and Saurav KumarApril 19, 2016
Indian Institute of Technology Kanpur
introduction
Internet of Things∙ Network of physical objects—devices, vehicles, buildings etc
∙ Embedded with electronics, software, sensors, and networkconnectivity
∙ Objects can be sensed and controlled remotely across existingnetwork infrastructure
∙ IoT augmented with sensors and actuators: Smart grids, smarthomes, intelligent transportation and smart cities
Credits: Wikipedia
3
introduction
Internet of Things∙ Network of physical objects—devices, vehicles, buildings etc
∙ Embedded with electronics, software, sensors, and networkconnectivity
∙ Objects can be sensed and controlled remotely across existingnetwork infrastructure
∙ IoT augmented with sensors and actuators: Smart grids, smarthomes, intelligent transportation and smart cities
Credits: Wikipedia
3
introduction
Internet of Things∙ Network of physical objects—devices, vehicles, buildings etc
∙ Embedded with electronics, software, sensors, and networkconnectivity
∙ Objects can be sensed and controlled remotely across existingnetwork infrastructure
∙ IoT augmented with sensors and actuators: Smart grids, smarthomes, intelligent transportation and smart cities
Credits: Wikipedia
3
introduction
Internet of Things∙ Network of physical objects—devices, vehicles, buildings etc
∙ Embedded with electronics, software, sensors, and networkconnectivity
∙ Objects can be sensed and controlled remotely across existingnetwork infrastructure
∙ IoT augmented with sensors and actuators: Smart grids, smarthomes, intelligent transportation and smart cities
Credits: Wikipedia
3
chariot
The Idea∙ Use the computational resources of powerful machines
∙ Small IoT devices need not have powerful processors or RAMs
∙ Saves resources, and thus money
∙ Saves battery power on devices
∙ We present: A scalable architecture to solve this problem
∙ Inspired from Pub-Sub architecture and RPC protocol
6
chariot
The Idea∙ Use the computational resources of powerful machines
∙ Small IoT devices need not have powerful processors or RAMs
∙ Saves resources, and thus money
∙ Saves battery power on devices
∙ We present: A scalable architecture to solve this problem
∙ Inspired from Pub-Sub architecture and RPC protocol
6
chariot
The Idea∙ Use the computational resources of powerful machines
∙ Small IoT devices need not have powerful processors or RAMs
∙ Saves resources, and thus money
∙ Saves battery power on devices
∙ We present: A scalable architecture to solve this problem
∙ Inspired from Pub-Sub architecture and RPC protocol
6
chariot
The Idea∙ Use the computational resources of powerful machines
∙ Small IoT devices need not have powerful processors or RAMs
∙ Saves resources, and thus money
∙ Saves battery power on devices
∙ We present: A scalable architecture to solve this problem
∙ Inspired from Pub-Sub architecture and RPC protocol
6
chariot
The Idea∙ Use the computational resources of powerful machines
∙ Small IoT devices need not have powerful processors or RAMs
∙ Saves resources, and thus money
∙ Saves battery power on devices
∙ We present: A scalable architecture to solve this problem
∙ Inspired from Pub-Sub architecture and RPC protocol
6
chariot
The Idea∙ Use the computational resources of powerful machines
∙ Small IoT devices need not have powerful processors or RAMs
∙ Saves resources, and thus money
∙ Saves battery power on devices
∙ We present: A scalable architecture to solve this problem
∙ Inspired from Pub-Sub architecture and RPC protocol
6
chariot
Nomenclature∙ Also, CHAR is anagram for ARCH: Architecture for IOT
∙ Named our components based on horse-wagon analogy
∙ IoT device - Yaan (Sanskrit for wagon)
∙ Processing Machine - Ashva (Sanskrit for horse)
∙ Supervising Machine - Prashti (Sanskrit for horse leader)
∙ Zookeeper - Turagraksa (Sanskrit for patron of horse)
9
chariot
Nomenclature∙ Also, CHAR is anagram for ARCH: Architecture for IOT
∙ Named our components based on horse-wagon analogy
∙ IoT device - Yaan (Sanskrit for wagon)
∙ Processing Machine - Ashva (Sanskrit for horse)
∙ Supervising Machine - Prashti (Sanskrit for horse leader)
∙ Zookeeper - Turagraksa (Sanskrit for patron of horse)
9
chariot
Nomenclature∙ Also, CHAR is anagram for ARCH: Architecture for IOT
∙ Named our components based on horse-wagon analogy
∙ IoT device - Yaan (Sanskrit for wagon)
∙ Processing Machine - Ashva (Sanskrit for horse)
∙ Supervising Machine - Prashti (Sanskrit for horse leader)
∙ Zookeeper - Turagraksa (Sanskrit for patron of horse)
9
chariot
Nomenclature∙ Also, CHAR is anagram for ARCH: Architecture for IOT
∙ Named our components based on horse-wagon analogy
∙ IoT device - Yaan (Sanskrit for wagon)
∙ Processing Machine - Ashva (Sanskrit for horse)
∙ Supervising Machine - Prashti (Sanskrit for horse leader)
∙ Zookeeper - Turagraksa (Sanskrit for patron of horse)
9
chariot
Nomenclature∙ Also, CHAR is anagram for ARCH: Architecture for IOT
∙ Named our components based on horse-wagon analogy
∙ IoT device - Yaan (Sanskrit for wagon)
∙ Processing Machine - Ashva (Sanskrit for horse)
∙ Supervising Machine - Prashti (Sanskrit for horse leader)
∙ Zookeeper - Turagraksa (Sanskrit for patron of horse)
9
chariot
Nomenclature∙ Also, CHAR is anagram for ARCH: Architecture for IOT
∙ Named our components based on horse-wagon analogy
∙ IoT device - Yaan (Sanskrit for wagon)
∙ Processing Machine - Ashva (Sanskrit for horse)
∙ Supervising Machine - Prashti (Sanskrit for horse leader)
∙ Zookeeper - Turagraksa (Sanskrit for patron of horse)
9
implementation
Technology Stack∙ Source Language: Java 7
∙ Gradle build system
∙ RabbitMQ RPC Server
∙ Apache Avro Data Schema
∙ Spark WebServer for D2
∙ Docker
∙ MongoDB
∙ JUnit Test Framework
15
implementation
Technology Stack∙ Source Language: Java 7
∙ Gradle build system
∙ RabbitMQ RPC Server
∙ Apache Avro Data Schema
∙ Spark WebServer for D2
∙ Docker
∙ MongoDB
∙ JUnit Test Framework
15
implementation
Technology Stack∙ Source Language: Java 7
∙ Gradle build system
∙ RabbitMQ RPC Server
∙ Apache Avro Data Schema
∙ Spark WebServer for D2
∙ Docker
∙ MongoDB
∙ JUnit Test Framework
15
implementation
Technology Stack∙ Source Language: Java 7
∙ Gradle build system
∙ RabbitMQ RPC Server
∙ Apache Avro Data Schema
∙ Spark WebServer for D2
∙ Docker
∙ MongoDB
∙ JUnit Test Framework
15
implementation
Technology Stack∙ Source Language: Java 7
∙ Gradle build system
∙ RabbitMQ RPC Server
∙ Apache Avro Data Schema
∙ Spark WebServer for D2
∙ Docker
∙ MongoDB
∙ JUnit Test Framework
15
implementation
Technology Stack∙ Source Language: Java 7
∙ Gradle build system
∙ RabbitMQ RPC Server
∙ Apache Avro Data Schema
∙ Spark WebServer for D2
∙ Docker
∙ MongoDB
∙ JUnit Test Framework
15
implementation
Technology Stack∙ Source Language: Java 7
∙ Gradle build system
∙ RabbitMQ RPC Server
∙ Apache Avro Data Schema
∙ Spark WebServer for D2
∙ Docker
∙ MongoDB
∙ JUnit Test Framework
15
implementation
Technology Stack∙ Source Language: Java 7
∙ Gradle build system
∙ RabbitMQ RPC Server
∙ Apache Avro Data Schema
∙ Spark WebServer for D2
∙ Docker
∙ MongoDB
∙ JUnit Test Framework
15
demonstration
Demonstration∙ Project page and Codebase
∙ Screencast of deployment, running simple Java client, faulttolerance testing
∙ Image Blur Android App demo
∙ Live demo of using chariot framework from Python shell as aclient
18
demonstration
Demonstration∙ Project page and Codebase
∙ Screencast of deployment, running simple Java client, faulttolerance testing
∙ Image Blur Android App demo
∙ Live demo of using chariot framework from Python shell as aclient
18
demonstration
Demonstration∙ Project page and Codebase
∙ Screencast of deployment, running simple Java client, faulttolerance testing
∙ Image Blur Android App demo
∙ Live demo of using chariot framework from Python shell as aclient
18
demonstration
Demonstration∙ Project page and Codebase
∙ Screencast of deployment, running simple Java client, faulttolerance testing
∙ Image Blur Android App demo
∙ Live demo of using chariot framework from Python shell as aclient
18
quality attributes
Quality Attributes✓ Availability: Two Prashti (and Zookeeper) to make system
available
✓ Maintainability: Modular code with Java best practices.
✓ Performance: Low latency by design. Load-balancing amongAshvas
× Security: Unencrypted data flow and common shared directoryfor docker communication
✓ Scalability: Devices and Ashvas can be added dynamically atruntime
✓ Usability: Simple interface for developers to integrateapplications and devices.
20
quality attributes
Quality Attributes✓ Availability: Two Prashti (and Zookeeper) to make system
available
✓ Maintainability: Modular code with Java best practices.
✓ Performance: Low latency by design. Load-balancing amongAshvas
× Security: Unencrypted data flow and common shared directoryfor docker communication
✓ Scalability: Devices and Ashvas can be added dynamically atruntime
✓ Usability: Simple interface for developers to integrateapplications and devices.
20
quality attributes
Quality Attributes✓ Availability: Two Prashti (and Zookeeper) to make system
available
✓ Maintainability: Modular code with Java best practices.
✓ Performance: Low latency by design. Load-balancing amongAshvas
× Security: Unencrypted data flow and common shared directoryfor docker communication
✓ Scalability: Devices and Ashvas can be added dynamically atruntime
✓ Usability: Simple interface for developers to integrateapplications and devices.
20
quality attributes
Quality Attributes✓ Availability: Two Prashti (and Zookeeper) to make system
available
✓ Maintainability: Modular code with Java best practices.
✓ Performance: Low latency by design. Load-balancing amongAshvas
× Security: Unencrypted data flow and common shared directoryfor docker communication
✓ Scalability: Devices and Ashvas can be added dynamically atruntime
✓ Usability: Simple interface for developers to integrateapplications and devices.
20
quality attributes
Quality Attributes✓ Availability: Two Prashti (and Zookeeper) to make system
available
✓ Maintainability: Modular code with Java best practices.
✓ Performance: Low latency by design. Load-balancing amongAshvas
× Security: Unencrypted data flow and common shared directoryfor docker communication
✓ Scalability: Devices and Ashvas can be added dynamically atruntime
✓ Usability: Simple interface for developers to integrateapplications and devices.
20
quality attributes
Quality Attributes✓ Availability: Two Prashti (and Zookeeper) to make system
available
✓ Maintainability: Modular code with Java best practices.
✓ Performance: Low latency by design. Load-balancing amongAshvas
× Security: Unencrypted data flow and common shared directoryfor docker communication
✓ Scalability: Devices and Ashvas can be added dynamically atruntime
✓ Usability: Simple interface for developers to integrateapplications and devices.
20
quality attributes
Quality Attributes✓ Testability: JUnit Tests automatically runs on gradle build.
Integration Tests also provided with source code.
× Efficiency: Local procedure calls will outperform remoteprocedure calls for small computations.
✓ Reliability: Automated recovery begins on faults. Uses activeredundancy to restore states.
✓ Flexibility: By design, keeping in mind the use case.
✓ Reusability: Modular code with Java best practices. Avro schemareusable for different languages
21
quality attributes
Quality Attributes✓ Testability: JUnit Tests automatically runs on gradle build.
Integration Tests also provided with source code.
× Efficiency: Local procedure calls will outperform remoteprocedure calls for small computations.
✓ Reliability: Automated recovery begins on faults. Uses activeredundancy to restore states.
✓ Flexibility: By design, keeping in mind the use case.
✓ Reusability: Modular code with Java best practices. Avro schemareusable for different languages
21
quality attributes
Quality Attributes✓ Testability: JUnit Tests automatically runs on gradle build.
Integration Tests also provided with source code.
× Efficiency: Local procedure calls will outperform remoteprocedure calls for small computations.
✓ Reliability: Automated recovery begins on faults. Uses activeredundancy to restore states.
✓ Flexibility: By design, keeping in mind the use case.
✓ Reusability: Modular code with Java best practices. Avro schemareusable for different languages
21
quality attributes
Quality Attributes✓ Testability: JUnit Tests automatically runs on gradle build.
Integration Tests also provided with source code.
× Efficiency: Local procedure calls will outperform remoteprocedure calls for small computations.
✓ Reliability: Automated recovery begins on faults. Uses activeredundancy to restore states.
✓ Flexibility: By design, keeping in mind the use case.
✓ Reusability: Modular code with Java best practices. Avro schemareusable for different languages
21
quality attributes
Quality Attributes✓ Testability: JUnit Tests automatically runs on gradle build.
Integration Tests also provided with source code.
× Efficiency: Local procedure calls will outperform remoteprocedure calls for small computations.
✓ Reliability: Automated recovery begins on faults. Uses activeredundancy to restore states.
✓ Flexibility: By design, keeping in mind the use case.
✓ Reusability: Modular code with Java best practices. Avro schemareusable for different languages
21
use cases
Possible use cases∙ Internet of Things: By 2020, home networks will have many IoTdevices - sensors, smart TVs, washing machines, AI poweredmini-bots etc
∙ As private cloud offering PaaS in institutions and organizations.CSE students can put their docker images on Docker Hub andsimply run code from personal devices which will be executed inCSE Lab Machines
23
use cases
Possible use cases∙ Internet of Things: By 2020, home networks will have many IoTdevices - sensors, smart TVs, washing machines, AI poweredmini-bots etc
∙ As private cloud offering PaaS in institutions and organizations.CSE students can put their docker images on Docker Hub andsimply run code from personal devices which will be executed inCSE Lab Machines
23
use cases
Possible use cases∙ Internet of Things: By 2020, home networks will have many IoTdevices - sensors, smart TVs, washing machines, AI poweredmini-bots etc
∙ As private cloud offering PaaS in institutions and organizations.CSE students can put their docker images on Docker Hub andsimply run code from personal devices which will be executed inCSE Lab Machines
23