Bhaskar Krishnamachari Gowri Ramachandran …...I3 v0 prototype Demonstration Crew Taylor Gowri Ramachandran Bhaskar Krishnamachari Center for Cyber-Physical Systems and the Internet

Post on 24-Aug-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

I3 v0 prototypeDemonstration

Crew TaylorGowri Ramachandran

Bhaskar Krishnamachari

Center for Cyber-Physical Systems and the Internet of ThingsUSC Viterbi School of Engineering

I3 Domain Controller - v0 architecture

Sensors and Actuators (Devices or Things)

Buyer UI/API

Seller UI/API

Broker UI/API

Registry Authorization

Real-Time Data Routing

Middleware

Application API

Metering

Billing & Payments

Recommendation Engine

Administrative InterfaceDevice Data and Control

API

Analytics and Applications

Data Formats

Privacy MechanismsRatings and Trust

Peering API

We envision one I3 domain controller for each community: campus, city, a downtown area, hospital, potentially a range of scales, and potentially with some overlaps in data sources or applications relevant to the community

Sensors and Actuators (Devices or Things)

Buyer UI/API

Seller UI/API

Broker UI/API

Registry Authorization

Real-Time Data Routing

Middleware

Application API

Metering

Billing & Payments

Recommendation Engine

Administrative InterfaceDevice Data and Control

API

Analytics and Applications

Data Formats

Privacy MechanismsRatings and Trust

Peering API

✔✔

✔ ✔

XXX

XX X

I3 Domain Controller - v0 Prototype

I3 Demonstration | 3

SellerI3 Platform

Buyer

BACnet client

MarketplaceWebsite Frontend

BackendPub-Sub Broker

AuthenticationPlugin

Parser

Website Database

AccessDatabase

Broker Log

Subscriber Client

Sell data

Send data

Buy data

Receive data

VisualizationPublisher Client

Adminmanages I3

I3 Proof of Concept Prototype Demo Video I3 v0

Prototype

I3 Domain Controller - v0 Prototype details

● Publish-Subscribe: MQTT (Mosquitto) Broker with mosquitto-auth-plugin

● Metering via custom script ● Web Front-End: Custom-adapted Django site in

Python 2.7 ● REST API-based access for buyer, seller and admin● MySQL database for data registry and authentication

info● Publish and Subscribe Clients via Eclipse MQTT

paho (for any language) with HTTP wrapper

Frontend Demonstration

Login

Signup

Dashboard

Description

Cart

Transactions

Updated Dashboard and Notifications

Seller View of Dashboard

Create a Product

REST API

REST API Routes

● Seller○ Product

■ List■ Read■ Create■ Update■ Delete

○ Sale■ List■ Read

● Buyer○ Product

■ List■ Read

○ Purchase■ List■ Read■ Create

Example List Product Query

/api/buyer/product

Example Create Product Query

user$ curl --header "Content-Type:

application/json" --header

"Authorization: Token

727cff9f71ad15267aadbcd9d8b9fa9ba881c1

ad" --request POST --data

'{"media":"myimg.jpg

","title":"anrg-temp-sensor",

"sensor_type":"sensor",

"description":"Temperature sensor at

the ANRG lab", "price": "9.99",

"sale_price": "6.99", "sale_active",

false}'

http://localhost:8000/api/seller/produ

ct

I3 Backend Demonstration

Seller script

● Account name● Topic to publish to● Password

Buyer script

● Account name● Topic to publish to● Password

Webservices Demonstration

HTTP Subscribe

user$ curl -ivs --raw

"http://localhost:5000/subscribe?topic

=anrg-temp-sensor&username=trojan&pass

word=hgibtr”

HTTP Publish

user$ curl -H "Content-Type:

application/json"

"http://localhost:5000/post" -d

'{"topic" : "anrg-temp-sensor",

"message" : "Hello World", "username"

: "trojan", "password" : "hgibtr" }'

top related