Mokoversity
IoT & Maker Crossover Conference
!
Jollen Chen / 2015.04.28
<jollen@jollen.org>
Mokoversity
Open IoT Cloud Architecture
Using Web Technology and Open Standards
Jollen <jollen@jollen.org>!
!
Android Framework, Mobile Devices,
HTML5 Full Stack, Node.js Backend,
Linux Device Drivers, Linux Kernel
and etc.!
!
Founder, Moko365 Inc.!
Founder and Developer, Mokoversity!
Co-founder and Developer, Openmbed!
Developer, WoT.City
講者介紹
Skill!
Domains
Jobs
(C) 2015 Mokoversity Inc. v0.1.0 CONFIDENTIAL.
jollen <jollen@jollen.org>
Mokoversity Inc.
Mokoversity
Pre-Startup 訓練場
IoT & Maker 創客學院
Hackers Lead
www.mokoversity.com
(C) 2015 Mokoversity Inc. v0.1.0 CONFIDENTIAL.
jollen <jollen@jollen.org>
Mokoversity Inc.
WoT.City
Web of Things Startup
使⽤用 Openmbed 開源計畫
源⾃自台灣本⼟土的物聯網開發平臺
wotcity.com
Facebook Parse IoT SDK
Intel IoT Developer Kit
Google Physical Web
W3C Web of Things
IBM IoT Foundation
ADEPT BlockChain
Amazon 2lemetry
AllSeen Alliance
Thread Group
AWS C-SDK
IBM Bluemix
ARM mbed
…
Libre
Software
Gives users the freedom to run
the software for any purpose as
well as to study, modify, and
distribute the original software
and the adapted versions.
(—wikipedia)
Libre
IoT
Gives users the freedom to ___ the
personal data for any purpose as well
as to ___, ___, and ___ the original
data and the ______ versions.
IoT WoT
連結⽅方式 Bluetooth HTTP
數據管理 Centerlized Decenterlized
Things Objects RESTful Objects
應⽤用開發模式 Native Web (SPA)
硬件概念 Sensor Device
Physical Web
(Sensor Fusion)
Figure: Thinking in WoT. Copyright (C) 2014 Mokoversity Inc.
IoT vs WOT
IoT WoT
Connectivity Machine to Machine
LWM2M
Machine to Web
Networking TCP / UDP HTTP / REST / CoAP
Things Sensor Device RESTful Objects
Data Streaming Data Time-Series Data
Discover MQTT Publish / Subscribe
Figure: Thinking in WoT. Copyright (C) 2015 Mokoversity Inc.
Connectivity
Source: http://coap.technology
REST model for small
devices
!
Like HTTP, CoAP is based on the wildly successful
REST model: Servers make resources available
under a URL, and clients access these resources
using methods such as GET, PUT, POST, and
DELETE.
Source: http://coap.technology
Made for billions of
nodes
!
The Internet of Things will need billions of nodes,
many of which will need to be inexpensive. CoAP
has been designed to work on microcontrollers
with as low as 10 KiB of RAM and 100 KiB of code
space (RFC 7228).
Source: http://coap.technology
Existing skills transfer
!
From a developer point of view, CoAP feels very
much like HTTP. Obtaining a value from a sensor is
not much different from obtaining a value from a
Web API.
Source: http://coap.technology
Ready for integration
!
Since HTTP and CoAP share the REST model, they
can easily be connected using application-agnostic
cross-protocol proxies. A Web client may not even
notice that it just accessed a sensor resource!
ARM IoT Tutorial
https://www.youtube.com/watch?v=4bSr5x5gKvA
HTTP
The Web protocol.
!
CoAP
The Web of Things
Protocol.
!
MQTT
The TCP Protocol.
IoT Device
IoT Device
IoT Proxy
1
2
IoT Device
2
3
Constrained Environment
3
From HTTP to CoAP
API
Business Logic
Data Access Layer !
and Databases
Security
Logging
“server-side
implementations are
becoming a thin layer
with an API for data and
security” (-Shiju
Varghese)
“modern Web
developers are writing
their server-side code
for both Mobile apps
and Web apps” (-Shiju
Varghese)
API Driven Development
Web Frontend
Boundary Compositor -
update DOM subtree
Data Compositor -
integrate the services and data
AutomationJS
Composition Layer
- programmable
widgets
!
Physical Mashup
!
Building Blocks
Pattern
!
(…)
AutomationJS
Abstraction Level of WoT.City
Data Model
ws://
coap://
Sensor Device
WoT Framework
Broker
Board-Level
Hardware
Data-View Methodology
Data Model Set
ws://
coap://
Sensor Device
View
Neither really a MVC pattern nor MVVM pattern. The
architecture only contains a data set and a
corresponding template-based view.
Websocket
HTTP 1.1/2.0
CoAP
IoT
Proxy
IoT Device
IoT Device
IoT Proxy
(IoT Gateway)
1
2
IoT Device
2
3
Mobile &
Client
3
Arch Pro
Arch Pro
Arch Pro
Seeeduino Cloud
Data-View Methodology
IoT Cloud as the Proxy Pattern