SlideShare a Scribd company logo
1 of 60
Download to read offline
chariot
A scalable processing architecture for Internet of Things
Abhilash Kumar and Saurav Kumar
April 19, 2016
Indian Institute of Technology Kanpur
introduction
introduction
Credits: bhartiyatech.org 2
introduction
Internet of Things
∙ Network of physical objects—devices, vehicles, buildings etc
Credits: Wikipedia
3
introduction
Internet of Things
∙ Network of physical objects—devices, vehicles, buildings etc
∙ Embedded with electronics, software, sensors, and network
connectivity
Credits: Wikipedia
3
introduction
Internet of Things
∙ Network of physical objects—devices, vehicles, buildings etc
∙ Embedded with electronics, software, sensors, and network
connectivity
∙ Objects can be sensed and controlled remotely across existing
network infrastructure
Credits: Wikipedia
3
introduction
Internet of Things
∙ Network of physical objects—devices, vehicles, buildings etc
∙ Embedded with electronics, software, sensors, and network
connectivity
∙ Objects can be sensed and controlled remotely across existing
network infrastructure
∙ IoT augmented with sensors and actuators: Smart grids, smart
homes, intelligent transportation and smart cities
Credits: Wikipedia
3
introduction
Credits: Clarice Technologies (2014)
4
chariot
chariot
The Idea
∙ Use the computational resources of powerful machines
6
chariot
The Idea
∙ Use the computational resources of powerful machines
∙ Small IoT devices need not have powerful processors or RAMs
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
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
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
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
Credits: sinetif.com
7
chariot
Nomenclature
Credits: sinetif.com
8
chariot
Nomenclature
∙ Also, CHAR is anagram for ARCH: Architecture for IOT
9
chariot
Nomenclature
∙ Also, CHAR is anagram for ARCH: Architecture for IOT
∙ Named our components based on horse-wagon analogy
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)
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)
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)
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
architecture diagrams
architecture diagrams
Logical View
11
architecture diagrams
Physical View
12
architecture diagrams
Process View
13
implementation
implementation
Technology Stack
∙ Source Language: Java 7
15
implementation
Technology Stack
∙ Source Language: Java 7
∙ Gradle build system
15
implementation
Technology Stack
∙ Source Language: Java 7
∙ Gradle build system
∙ RabbitMQ RPC Server
15
implementation
Technology Stack
∙ Source Language: Java 7
∙ Gradle build system
∙ RabbitMQ RPC Server
∙ Apache Avro Data Schema
15
implementation
Technology Stack
∙ Source Language: Java 7
∙ Gradle build system
∙ RabbitMQ RPC Server
∙ Apache Avro Data Schema
∙ Spark WebServer for D2
15
implementation
Technology Stack
∙ Source Language: Java 7
∙ Gradle build system
∙ RabbitMQ RPC Server
∙ Apache Avro Data Schema
∙ Spark WebServer for D2
∙ Docker
15
implementation
Technology Stack
∙ Source Language: Java 7
∙ Gradle build system
∙ RabbitMQ RPC Server
∙ Apache Avro Data Schema
∙ Spark WebServer for D2
∙ Docker
∙ MongoDB
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
Flow diagram
16
demonstration
demonstration
Demonstration
∙ Project page and Codebase
18
demonstration
Demonstration
∙ Project page and Codebase
∙ Screencast of deployment, running simple Java client, fault
tolerance testing
18
demonstration
Demonstration
∙ Project page and Codebase
∙ Screencast of deployment, running simple Java client, fault
tolerance testing
∙ Image Blur Android App demo
18
demonstration
Demonstration
∙ Project page and Codebase
∙ Screencast of deployment, running simple Java client, fault
tolerance testing
∙ Image Blur Android App demo
∙ Live demo of using chariot framework from Python shell as a
client
18
quality attributes
quality attributes
Quality Attributes
✓ Availability: Two Prashti (and Zookeeper) to make system
available
20
quality attributes
Quality Attributes
✓ Availability: Two Prashti (and Zookeeper) to make system
available
✓ Maintainability: Modular code with Java best practices.
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 among
Ashvas
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 among
Ashvas
× Security: Unencrypted data flow and common shared directory
for docker communication
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 among
Ashvas
× Security: Unencrypted data flow and common shared directory
for docker communication
✓ Scalability: Devices and Ashvas can be added dynamically at
runtime
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 among
Ashvas
× Security: Unencrypted data flow and common shared directory
for docker communication
✓ Scalability: Devices and Ashvas can be added dynamically at
runtime
✓ Usability: Simple interface for developers to integrate
applications and devices.
20
quality attributes
Quality Attributes
✓ Testability: JUnit Tests automatically runs on gradle build.
Integration Tests also provided with source code.
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 remote
procedure calls for small computations.
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 remote
procedure calls for small computations.
✓ Reliability: Automated recovery begins on faults. Uses active
redundancy to restore states.
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 remote
procedure calls for small computations.
✓ Reliability: Automated recovery begins on faults. Uses active
redundancy to restore states.
✓ Flexibility: By design, keeping in mind the use case.
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 remote
procedure calls for small computations.
✓ Reliability: Automated recovery begins on faults. Uses active
redundancy to restore states.
✓ Flexibility: By design, keeping in mind the use case.
✓ Reusability: Modular code with Java best practices. Avro schema
reusable for different languages
21
use cases
use cases
Possible use cases
∙ Internet of Things: By 2020, home networks will have many IoT
devices - sensors, smart TVs, washing machines, AI powered
mini-bots etc
23
use cases
Possible use cases
∙ Internet of Things: By 2020, home networks will have many IoT
devices - sensors, smart TVs, washing machines, AI powered
mini-bots etc
∙ As private cloud offering PaaS in institutions and organizations.
CSE students can put their docker images on Docker Hub and
simply run code from personal devices which will be executed in
CSE Lab Machines
23
use cases
Possible use cases
∙ Internet of Things: By 2020, home networks will have many IoT
devices - sensors, smart TVs, washing machines, AI powered
mini-bots etc
∙ As private cloud offering PaaS in institutions and organizations.
CSE students can put their docker images on Docker Hub and
simply run code from personal devices which will be executed in
CSE Lab Machines
23
Questions?
Slides created using Beamer(mtheme) on ShareLaTeX
24
Thank You
25

More Related Content

What's hot

CNCF, State of Serverless & Project Nuclio
CNCF, State of Serverless & Project NuclioCNCF, State of Serverless & Project Nuclio
CNCF, State of Serverless & Project NuclioLee Calcote
 
“Vitis and Vitis AI: Application Acceleration from Cloud to Edge,” a Presenta...
“Vitis and Vitis AI: Application Acceleration from Cloud to Edge,” a Presenta...“Vitis and Vitis AI: Application Acceleration from Cloud to Edge,” a Presenta...
“Vitis and Vitis AI: Application Acceleration from Cloud to Edge,” a Presenta...Edge AI and Vision Alliance
 
Enabling Artificial Intelligence - Alison B. Lowndes
Enabling Artificial Intelligence - Alison B. LowndesEnabling Artificial Intelligence - Alison B. Lowndes
Enabling Artificial Intelligence - Alison B. LowndesWithTheBest
 
QuAI platform
QuAI platformQuAI platform
QuAI platformTeddy Kuo
 
How to Get Going with Kubernetes
How to Get Going with KubernetesHow to Get Going with Kubernetes
How to Get Going with KubernetesTed Dunning
 
OGCE TeraGrid 2010 Science Gateway Tutorial Intro
OGCE TeraGrid 2010 Science Gateway Tutorial IntroOGCE TeraGrid 2010 Science Gateway Tutorial Intro
OGCE TeraGrid 2010 Science Gateway Tutorial Intromarpierc
 
Reference architecture for Internet of Things
Reference architecture for Internet of ThingsReference architecture for Internet of Things
Reference architecture for Internet of ThingsSujee Maniyam
 
Hire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas
Hire a Machine to Code - Michael Arthur Bucko & Aurélien NicolasHire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas
Hire a Machine to Code - Michael Arthur Bucko & Aurélien NicolasWithTheBest
 

What's hot (9)

CNCF, State of Serverless & Project Nuclio
CNCF, State of Serverless & Project NuclioCNCF, State of Serverless & Project Nuclio
CNCF, State of Serverless & Project Nuclio
 
“Vitis and Vitis AI: Application Acceleration from Cloud to Edge,” a Presenta...
“Vitis and Vitis AI: Application Acceleration from Cloud to Edge,” a Presenta...“Vitis and Vitis AI: Application Acceleration from Cloud to Edge,” a Presenta...
“Vitis and Vitis AI: Application Acceleration from Cloud to Edge,” a Presenta...
 
Enabling Artificial Intelligence - Alison B. Lowndes
Enabling Artificial Intelligence - Alison B. LowndesEnabling Artificial Intelligence - Alison B. Lowndes
Enabling Artificial Intelligence - Alison B. Lowndes
 
QuAI platform
QuAI platformQuAI platform
QuAI platform
 
Phi Week 2019
Phi Week 2019Phi Week 2019
Phi Week 2019
 
How to Get Going with Kubernetes
How to Get Going with KubernetesHow to Get Going with Kubernetes
How to Get Going with Kubernetes
 
OGCE TeraGrid 2010 Science Gateway Tutorial Intro
OGCE TeraGrid 2010 Science Gateway Tutorial IntroOGCE TeraGrid 2010 Science Gateway Tutorial Intro
OGCE TeraGrid 2010 Science Gateway Tutorial Intro
 
Reference architecture for Internet of Things
Reference architecture for Internet of ThingsReference architecture for Internet of Things
Reference architecture for Internet of Things
 
Hire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas
Hire a Machine to Code - Michael Arthur Bucko & Aurélien NicolasHire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas
Hire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas
 

Viewers also liked

งานชิ้นที่ 3 ปฏิทิน
งานชิ้นที่ 3 ปฏิทินงานชิ้นที่ 3 ปฏิทิน
งานชิ้นที่ 3 ปฏิทินPimjai Young-oun
 
8 11-11 1è
8 11-11  1è8 11-11  1è
8 11-11 1èmalvar85
 
Brochure - Austria | Germany | Switzerland
Brochure - Austria | Germany | SwitzerlandBrochure - Austria | Germany | Switzerland
Brochure - Austria | Germany | SwitzerlandFrancisAFS
 
Photobook Muzium Istana Negara, Balairung Seri
Photobook Muzium Istana Negara, Balairung SeriPhotobook Muzium Istana Negara, Balairung Seri
Photobook Muzium Istana Negara, Balairung SeriWooley Shirley
 
COASTAL PLANTS OF RHODES BOTANICAL GARDEN
COASTAL PLANTS OF RHODES BOTANICAL GARDENCOASTAL PLANTS OF RHODES BOTANICAL GARDEN
COASTAL PLANTS OF RHODES BOTANICAL GARDENSpyros Geravelis
 
Introduction to Kafka
Introduction to KafkaIntroduction to Kafka
Introduction to KafkaAkash Vacher
 
Dental sleep & skin care
Dental sleep & skin careDental sleep & skin care
Dental sleep & skin careGreg
 
SauravKumar-ContentFiltering-InternDay2015
SauravKumar-ContentFiltering-InternDay2015SauravKumar-ContentFiltering-InternDay2015
SauravKumar-ContentFiltering-InternDay2015Saurav Kumar
 
GfOE 2016_Jannik_Ecosystem service access Ethiopia
GfOE 2016_Jannik_Ecosystem service access EthiopiaGfOE 2016_Jannik_Ecosystem service access Ethiopia
GfOE 2016_Jannik_Ecosystem service access EthiopiaJSchultner
 
Change Data Capture using Kafka
Change Data Capture using KafkaChange Data Capture using Kafka
Change Data Capture using KafkaAkash Vacher
 
Sports Wearable : Business Case TomTom
Sports Wearable : Business Case TomTomSports Wearable : Business Case TomTom
Sports Wearable : Business Case TomTomNathalie LAMRI
 
งานชิ้นที่ 3 ปฏิทินรายเดือน
งานชิ้นที่ 3 ปฏิทินรายเดือนงานชิ้นที่ 3 ปฏิทินรายเดือน
งานชิ้นที่ 3 ปฏิทินรายเดือนMinny Min Min
 
Loos, J. (2012). Annual Conference of the Ecological Society of Germany, Aust...
Loos, J. (2012). Annual Conference of the Ecological Society of Germany, Aust...Loos, J. (2012). Annual Conference of the Ecological Society of Germany, Aust...
Loos, J. (2012). Annual Conference of the Ecological Society of Germany, Aust...JSchultner
 
มัทนะพาธา
มัทนะพาธามัทนะพาธา
มัทนะพาธาJean Arjarasiri
 
Building construction 1 experiencing construction (zone innovation park klang)
Building construction 1 experiencing construction (zone innovation park klang)Building construction 1 experiencing construction (zone innovation park klang)
Building construction 1 experiencing construction (zone innovation park klang)Chow Hong Da
 

Viewers also liked (20)

งานชิ้นที่ 3 ปฏิทิน
งานชิ้นที่ 3 ปฏิทินงานชิ้นที่ 3 ปฏิทิน
งานชิ้นที่ 3 ปฏิทิน
 
θρακη
θρακηθρακη
θρακη
 
8 11-11 1è
8 11-11  1è8 11-11  1è
8 11-11 1è
 
Brochure - Austria | Germany | Switzerland
Brochure - Austria | Germany | SwitzerlandBrochure - Austria | Germany | Switzerland
Brochure - Austria | Germany | Switzerland
 
Photobook Muzium Istana Negara, Balairung Seri
Photobook Muzium Istana Negara, Balairung SeriPhotobook Muzium Istana Negara, Balairung Seri
Photobook Muzium Istana Negara, Balairung Seri
 
ISMAIL - Kominfo
ISMAIL - KominfoISMAIL - Kominfo
ISMAIL - Kominfo
 
COASTAL PLANTS OF RHODES BOTANICAL GARDEN
COASTAL PLANTS OF RHODES BOTANICAL GARDENCOASTAL PLANTS OF RHODES BOTANICAL GARDEN
COASTAL PLANTS OF RHODES BOTANICAL GARDEN
 
แผ่นพับกาพย์ห่อโคลง
แผ่นพับกาพย์ห่อโคลงแผ่นพับกาพย์ห่อโคลง
แผ่นพับกาพย์ห่อโคลง
 
Introduction to Kafka
Introduction to KafkaIntroduction to Kafka
Introduction to Kafka
 
Dental sleep & skin care
Dental sleep & skin careDental sleep & skin care
Dental sleep & skin care
 
SauravKumar-ContentFiltering-InternDay2015
SauravKumar-ContentFiltering-InternDay2015SauravKumar-ContentFiltering-InternDay2015
SauravKumar-ContentFiltering-InternDay2015
 
GfOE 2016_Jannik_Ecosystem service access Ethiopia
GfOE 2016_Jannik_Ecosystem service access EthiopiaGfOE 2016_Jannik_Ecosystem service access Ethiopia
GfOE 2016_Jannik_Ecosystem service access Ethiopia
 
Change Data Capture using Kafka
Change Data Capture using KafkaChange Data Capture using Kafka
Change Data Capture using Kafka
 
Sports Wearable : Business Case TomTom
Sports Wearable : Business Case TomTomSports Wearable : Business Case TomTom
Sports Wearable : Business Case TomTom
 
Resume
ResumeResume
Resume
 
งานชิ้นที่ 3 ปฏิทินรายเดือน
งานชิ้นที่ 3 ปฏิทินรายเดือนงานชิ้นที่ 3 ปฏิทินรายเดือน
งานชิ้นที่ 3 ปฏิทินรายเดือน
 
Tolera. stockholm
Tolera. stockholmTolera. stockholm
Tolera. stockholm
 
Loos, J. (2012). Annual Conference of the Ecological Society of Germany, Aust...
Loos, J. (2012). Annual Conference of the Ecological Society of Germany, Aust...Loos, J. (2012). Annual Conference of the Ecological Society of Germany, Aust...
Loos, J. (2012). Annual Conference of the Ecological Society of Germany, Aust...
 
มัทนะพาธา
มัทนะพาธามัทนะพาธา
มัทนะพาธา
 
Building construction 1 experiencing construction (zone innovation park klang)
Building construction 1 experiencing construction (zone innovation park klang)Building construction 1 experiencing construction (zone innovation park klang)
Building construction 1 experiencing construction (zone innovation park klang)
 

Similar to CHARIOT

Programming the world with Docker
Programming the world with DockerProgramming the world with Docker
Programming the world with DockerPatrick Chanezon
 
Boston Data Engineering: Kedro Python Framework for Data Science: Overview an...
Boston Data Engineering: Kedro Python Framework for Data Science: Overview an...Boston Data Engineering: Kedro Python Framework for Data Science: Overview an...
Boston Data Engineering: Kedro Python Framework for Data Science: Overview an...Boston Data Engineering
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015WaveMaker, Inc.
 
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...confluent
 
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...Patrick Chanezon
 
Docker Orchestration: Welcome to the Jungle! JavaOne 2015
Docker Orchestration: Welcome to the Jungle! JavaOne 2015Docker Orchestration: Welcome to the Jungle! JavaOne 2015
Docker Orchestration: Welcome to the Jungle! JavaOne 2015Patrick Chanezon
 
Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)Matt Bynum
 
Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)Matt Bynum
 
Java and internet fundamentals.
Java and internet fundamentals.Java and internet fundamentals.
Java and internet fundamentals.mali yogesh kumar
 
Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Patrick Chanezon
 
Genomic Computation at Scale with Serverless, StackStorm and Docker Swarm
Genomic Computation at Scale with Serverless, StackStorm and Docker SwarmGenomic Computation at Scale with Serverless, StackStorm and Docker Swarm
Genomic Computation at Scale with Serverless, StackStorm and Docker SwarmDmitri Zimine
 
Can i service this from my raspberry pi
Can i service this from my raspberry piCan i service this from my raspberry pi
Can i service this from my raspberry piThoughtworks
 
Gervais Peter Resume Oct :2015
Gervais Peter Resume Oct :2015Gervais Peter Resume Oct :2015
Gervais Peter Resume Oct :2015Peter Gervais
 
Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Vinay Kumar
 
CN Asturias - Stateful application for kubernetes
CN Asturias -  Stateful application for kubernetes CN Asturias -  Stateful application for kubernetes
CN Asturias - Stateful application for kubernetes Cédrick Lunven
 
Open source applied - Real world use cases (Presented at Open Source 101)
Open source applied - Real world use cases (Presented at Open Source 101)Open source applied - Real world use cases (Presented at Open Source 101)
Open source applied - Real world use cases (Presented at Open Source 101)Rogue Wave Software
 
Open Source Applied - Real World Use Cases
Open Source Applied - Real World Use CasesOpen Source Applied - Real World Use Cases
Open Source Applied - Real World Use CasesAll Things Open
 

Similar to CHARIOT (20)

Programming the world with Docker
Programming the world with DockerProgramming the world with Docker
Programming the world with Docker
 
Boston Data Engineering: Kedro Python Framework for Data Science: Overview an...
Boston Data Engineering: Kedro Python Framework for Data Science: Overview an...Boston Data Engineering: Kedro Python Framework for Data Science: Overview an...
Boston Data Engineering: Kedro Python Framework for Data Science: Overview an...
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
 
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
 
Java Test
Java TestJava Test
Java Test
 
Java
JavaJava
Java
 
Docker Orchestration: Welcome to the Jungle! JavaOne 2015
Docker Orchestration: Welcome to the Jungle! JavaOne 2015Docker Orchestration: Welcome to the Jungle! JavaOne 2015
Docker Orchestration: Welcome to the Jungle! JavaOne 2015
 
Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)
 
Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)
 
Java and internet fundamentals.
Java and internet fundamentals.Java and internet fundamentals.
Java and internet fundamentals.
 
Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015
 
Genomic Computation at Scale with Serverless, StackStorm and Docker Swarm
Genomic Computation at Scale with Serverless, StackStorm and Docker SwarmGenomic Computation at Scale with Serverless, StackStorm and Docker Swarm
Genomic Computation at Scale with Serverless, StackStorm and Docker Swarm
 
Can i service this from my raspberry pi
Can i service this from my raspberry piCan i service this from my raspberry pi
Can i service this from my raspberry pi
 
Gervais Peter Resume Oct :2015
Gervais Peter Resume Oct :2015Gervais Peter Resume Oct :2015
Gervais Peter Resume Oct :2015
 
Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17
 
CN Asturias - Stateful application for kubernetes
CN Asturias -  Stateful application for kubernetes CN Asturias -  Stateful application for kubernetes
CN Asturias - Stateful application for kubernetes
 
Open source applied - Real world use cases (Presented at Open Source 101)
Open source applied - Real world use cases (Presented at Open Source 101)Open source applied - Real world use cases (Presented at Open Source 101)
Open source applied - Real world use cases (Presented at Open Source 101)
 
Open Source Applied - Real World Use Cases
Open Source Applied - Real World Use CasesOpen Source Applied - Real World Use Cases
Open Source Applied - Real World Use Cases
 
Where should I run my code? Serverless, Containers, Virtual Machines and more
Where should I run my code? Serverless, Containers, Virtual Machines and moreWhere should I run my code? Serverless, Containers, Virtual Machines and more
Where should I run my code? Serverless, Containers, Virtual Machines and more
 

Recently uploaded

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 

Recently uploaded (20)

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 

CHARIOT

  • 1. chariot A scalable processing architecture for Internet of Things Abhilash Kumar and Saurav Kumar April 19, 2016 Indian Institute of Technology Kanpur
  • 4. introduction Internet of Things ∙ Network of physical objects—devices, vehicles, buildings etc Credits: Wikipedia 3
  • 5. introduction Internet of Things ∙ Network of physical objects—devices, vehicles, buildings etc ∙ Embedded with electronics, software, sensors, and network connectivity Credits: Wikipedia 3
  • 6. introduction Internet of Things ∙ Network of physical objects—devices, vehicles, buildings etc ∙ Embedded with electronics, software, sensors, and network connectivity ∙ Objects can be sensed and controlled remotely across existing network infrastructure Credits: Wikipedia 3
  • 7. introduction Internet of Things ∙ Network of physical objects—devices, vehicles, buildings etc ∙ Embedded with electronics, software, sensors, and network connectivity ∙ Objects can be sensed and controlled remotely across existing network infrastructure ∙ IoT augmented with sensors and actuators: Smart grids, smart homes, intelligent transportation and smart cities Credits: Wikipedia 3
  • 10. chariot The Idea ∙ Use the computational resources of powerful machines 6
  • 11. chariot The Idea ∙ Use the computational resources of powerful machines ∙ Small IoT devices need not have powerful processors or RAMs 6
  • 12. 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 6
  • 13. 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 6
  • 14. 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 6
  • 15. 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
  • 18. chariot Nomenclature ∙ Also, CHAR is anagram for ARCH: Architecture for IOT 9
  • 19. chariot Nomenclature ∙ Also, CHAR is anagram for ARCH: Architecture for IOT ∙ Named our components based on horse-wagon analogy 9
  • 20. 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) 9
  • 21. 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) 9
  • 22. 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) 9
  • 23. 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
  • 30. implementation Technology Stack ∙ Source Language: Java 7 ∙ Gradle build system 15
  • 31. implementation Technology Stack ∙ Source Language: Java 7 ∙ Gradle build system ∙ RabbitMQ RPC Server 15
  • 32. implementation Technology Stack ∙ Source Language: Java 7 ∙ Gradle build system ∙ RabbitMQ RPC Server ∙ Apache Avro Data Schema 15
  • 33. implementation Technology Stack ∙ Source Language: Java 7 ∙ Gradle build system ∙ RabbitMQ RPC Server ∙ Apache Avro Data Schema ∙ Spark WebServer for D2 15
  • 34. implementation Technology Stack ∙ Source Language: Java 7 ∙ Gradle build system ∙ RabbitMQ RPC Server ∙ Apache Avro Data Schema ∙ Spark WebServer for D2 ∙ Docker 15
  • 35. implementation Technology Stack ∙ Source Language: Java 7 ∙ Gradle build system ∙ RabbitMQ RPC Server ∙ Apache Avro Data Schema ∙ Spark WebServer for D2 ∙ Docker ∙ MongoDB 15
  • 36. 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
  • 40. demonstration Demonstration ∙ Project page and Codebase ∙ Screencast of deployment, running simple Java client, fault tolerance testing 18
  • 41. demonstration Demonstration ∙ Project page and Codebase ∙ Screencast of deployment, running simple Java client, fault tolerance testing ∙ Image Blur Android App demo 18
  • 42. demonstration Demonstration ∙ Project page and Codebase ∙ Screencast of deployment, running simple Java client, fault tolerance testing ∙ Image Blur Android App demo ∙ Live demo of using chariot framework from Python shell as a client 18
  • 44. quality attributes Quality Attributes ✓ Availability: Two Prashti (and Zookeeper) to make system available 20
  • 45. quality attributes Quality Attributes ✓ Availability: Two Prashti (and Zookeeper) to make system available ✓ Maintainability: Modular code with Java best practices. 20
  • 46. 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 among Ashvas 20
  • 47. 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 among Ashvas × Security: Unencrypted data flow and common shared directory for docker communication 20
  • 48. 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 among Ashvas × Security: Unencrypted data flow and common shared directory for docker communication ✓ Scalability: Devices and Ashvas can be added dynamically at runtime 20
  • 49. 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 among Ashvas × Security: Unencrypted data flow and common shared directory for docker communication ✓ Scalability: Devices and Ashvas can be added dynamically at runtime ✓ Usability: Simple interface for developers to integrate applications and devices. 20
  • 50. quality attributes Quality Attributes ✓ Testability: JUnit Tests automatically runs on gradle build. Integration Tests also provided with source code. 21
  • 51. 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 remote procedure calls for small computations. 21
  • 52. 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 remote procedure calls for small computations. ✓ Reliability: Automated recovery begins on faults. Uses active redundancy to restore states. 21
  • 53. 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 remote procedure calls for small computations. ✓ Reliability: Automated recovery begins on faults. Uses active redundancy to restore states. ✓ Flexibility: By design, keeping in mind the use case. 21
  • 54. 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 remote procedure calls for small computations. ✓ Reliability: Automated recovery begins on faults. Uses active redundancy to restore states. ✓ Flexibility: By design, keeping in mind the use case. ✓ Reusability: Modular code with Java best practices. Avro schema reusable for different languages 21
  • 56. use cases Possible use cases ∙ Internet of Things: By 2020, home networks will have many IoT devices - sensors, smart TVs, washing machines, AI powered mini-bots etc 23
  • 57. use cases Possible use cases ∙ Internet of Things: By 2020, home networks will have many IoT devices - sensors, smart TVs, washing machines, AI powered mini-bots etc ∙ As private cloud offering PaaS in institutions and organizations. CSE students can put their docker images on Docker Hub and simply run code from personal devices which will be executed in CSE Lab Machines 23
  • 58. use cases Possible use cases ∙ Internet of Things: By 2020, home networks will have many IoT devices - sensors, smart TVs, washing machines, AI powered mini-bots etc ∙ As private cloud offering PaaS in institutions and organizations. CSE students can put their docker images on Docker Hub and simply run code from personal devices which will be executed in CSE Lab Machines 23
  • 59. Questions? Slides created using Beamer(mtheme) on ShareLaTeX 24