WoT Tutorial @ Cisco
-
Upload
dominique-guinard -
Category
Technology
-
view
2.252 -
download
1
description
Transcript of WoT Tutorial @ Cisco
Web of Things - Fast Prototyping Physical Computing ApplicationsCisco - 3. March 2011Vlad Trifa - ETH ZurichDominique Guinard - ETH Zurich
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Electronic things are invading us...
‣ Powerful tiny computers‣ Sensors & actuators‣ Web connectivity‣ Cheap‣ Ubiquitous
Translation for hackers:An infinite playground.
YAAAY!
OGC SensorML
Zorro III
Megaco
AMQP
Modbus
Zorro III
OPC-UA
Problem:
Given that tons of different‣ Devices ‣ Capabilities‣ Functionalities‣ Applications/middlewares‣ Networking protocols
How to combine heterogeneous mobile devices
to create interactive ad-hoc applications?
I don’t have a PhD in Computer
Science...
Can I use this too?
pleeeeease?
We need an universal protocol that is:
simple, lightweight, loosely-coupled, scalable, flexible
and hopefully... standard
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Sounds like the Web...
‣ TCP/IP & Web granted, WiFi routers ubiquitous‣ Development of simple Web apps: cheap & quick‣ Integrate real-world data on the Web‣ Get features of the Web for free
Use Web standards to develop applications for networked devices.
HTTP, HTML, XML, JSON, RSS, ATOM, MIME,...
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Social Web
Real-time Web
Programmable WebSemantic Web
Physical Web
Web of Things
RESTful devices
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
The Web of Things in a nutshell
Steps to create a basic Web of Things:
1. Connecting things to the Internet (IPv4/IPv6)2. Embedded Web servers 3. Make devices part of the Web (using REST)
‣ Model their function as RESTful resources
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
RESTful SunSPOTs
‣ Properties and functions are RESTful resources
‣ Devices/services become Web resources‣ URI-addressed ‣ Links between them (hateoas)‣ Different representations (content
negotiation)‣ Uniform interface (HTTP verbs, status
codes)
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Sunspots resources modeling
Services on embedded devices are adapted for resource oriented architectures‣ root: www.spotshost.com‣ spots list: www.spotshost.com/sunspots‣ spot #1: www.spotshost.com/sunspots/1‣ sensors list: www.spotshost.com/sunspots/1/sensors‣ LEDs : www.spotshost.com/sunspots/1/actuators/leds‣ LED #1 : www.spotshost.com/sunspots/1/actuators/leds/led1
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Representations
‣ XHTML ideal for browsinghttp://webofthings.com/spots
‣ JSON ideal for parsing (& lightweight for device)
http://webofthings.com/spots.json
‣ XML ideal for business integrationhttp://webofthings.com/spots.xml
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Uniform interface‣ HTTP verbs‣ GET: current temperature‣ POST: add a timer‣ PUT: turn a device on/off ‣ DELETE: delete a timer on a device
‣ HTTP headers‣ Accept header for MIME types‣ Status codes (200 ok, 401 unauthorized)
RouterProxy
Indirect Pass-through
Non Web-enabled Web-enabled
HTTP
HTTPLegacy
Devices
Internet
Gateway
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Gateway level integration: Energie Visible
Gateway (IP:10.1.1.5)
Sensors(Ploggs)
Electric appliances
Web / Mobile Interface
GET http://10.1.1.5:8080/energymonitor/ploggs/*
[{
"deviceName": "ComputerAndScreen",
"currentWatts": 50.52,
"KWh": 5.835,
"maxWattage": 100.56
},
"deviceName": "Fridge",
"currentWatts": 86.28.,
"KWh": 4.421,
"maxWattage": 288.92
}, {...}]
D. Guinard and V. Trifa. Towards the web of things: Web mashups for embedded devices. In 2nd Workshop on Mashups, Enterprise Mashups and Lightweight Composition on the Web (MEM 2009), Madrid, Spain, April 2009.
/ethz
../building/CNB
../CNB/FloorD
../southWing/D48.1
../CNB/FloorEvirt
ual g
atew
ays
(can
run
anyw
here
)ph
ysic
al g
atew
ays
(mus
t be
embo
died
)
../southWing/D48.2
../floorD/southWing
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Towards infrastructures
The era of physicalMashups
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Real-world Web applications
REST
REST
URL
PHP
REST
API
[hCp://www.pachube.com] [hCp://www.webothings.com/energievisible] [hCp://www.clickscript.ch]
JavaScript
So, my fridge is online. But what about
sharing and authentication?
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
FAT - Friends and Things
Err, what about eventing & streaming ?
The Web wasn’t quite made for that...
Yet we need this!
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Need more than Push
‣ Web mainly request/response (HTTP)‣ Need for eventing & streaming for many users‣ Sensor data represented as sequence of messages
‣ Scalable pub/sub for devices as substrate‣ Use the Web to build distributed event driven apps
‣ Parameterized subscriptions (channels/queries)‣ Specify what sensors, devices, locations, etc...
‣ Many solutions (XMPP, etc....)‣ None really integrate with the Web ‣ ATOM/ATOMpub is RESTful, but not push
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
!"##$%&'($)' *$+,-./0$'($)'
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
HTML5 Websockets
• !"##$%"&#'()*+),-')./012'/)
• 34/,)05),-')200+)2,4+%4/%)6789):)2&';<)
• =".2;/*&>0+),-/0"?-)@4A42;/*&,)
• B+;/'42*+?)+"C.'/)05)./012'/2)2"&&0/,)
Ok, great. But how do I quickly prototype
end-to-end applications?
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Data streams
‣ Sensor data represented as Web streams‣ Publish/subscribe paradigm ‣ Users can create and subscribe to streams ‣ Parameterized‣ devices‣ sensors‣ filter data‣ sampling frequency
‣ Using REST...
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Messaging implementation
‣ Messages transported in JSON‣ Message broker as an external entity (“outsourced”)‣ Swappable‣ Scalable‣ Currently use RabbitMQ
‣ Web integration with pubsubhubbub, RMS, etc.‣ RESTful, Web-hook based pub/sub‣ Supports CometD for Web push‣ HTML5 WebSockets
Wisspr - Web infrastructure for sensor streams processing
user@machine:~$ curl -i -d "devices=http://vslab20:8083/sunspots/device_11
&data=temperature,light,tiltX&filter=temperature > 10" http://vslab20:8085/datastreams
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Request
POST example.org/datastreams/ HTTP/1.1 Content-Type: application/x-www-form-urlencoded devices=purpleSensor & data=temperature,light & frequency=2 & filter=light < 200 && temperature > 19
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Response
HTTP/1.1 201 [...] Content-Location: http://example.com:8085/datastreams/bh_0 [...] Connection: close
curl -vd "hub.mode=subscribe&hub.callback=http://example.com:8888/client_callback_handler&hub.topic=&hub.verify=sync" http://example.com:8085/datastreams/bh_0
‣ Then we just subscribe to it:
Ok, great. But is this useful for
real world applications?
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
| SENSEable City Lab
crowd sourcing application design
LIVE Singapore!real time data platform with tools
real Singapore city and citizens
enabling platform for application developmentdata collection/combination/distributionEnabling platform for developing urban applications
Data collection/processing/distribution
this is you
Web API
LIVE Singapore!
real-time (raw) data streams
http://senseable.mit.edu/livesingapore
the epcis network in a nutshell
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
A typical Fosstrack deployment...
!
" #
$%
&
' ()
!*+
!!,+-./.+011+23456.7486+98:;:<+=3>?.5,+ !",+-./.+@4586167A8+BCD+
~12 software components for a typical RFID deployment!!
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Case Study: WoT patterns for Global RFID Network
‣ Reduce the deployment complexity of standard RFID/IoT software stacks.
‣ Allow easier (cheaper), more lightweight (mobile/WSNs) RFID application development.
‣ Enable RFID mashability:‣ Composition of RFID/WSNs/appliances and existing services on
the Web‣ Allow anyone to implement simple use-cases
‣ By applying Web and Web of Things blueprints!
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Fosstrack EPC cloud
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Cloud computing
‣ Run your EPC Network server in 5 minutes! ‣ Cloud appliance:‣ Full EPC Network backend‣ Admin Web interface‣ Fully configured Tomcat Instance
‣ Based on Amazon EC2:‣ Public Cloud‣ Utility Computing
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
• !"#$%&'()*#+,-&,"-).,'/,0'&&.)-1,
• !$#%*23*1,3$&.-22,'$,.'",'/,0'&&.)-1,45678,
• 6)'&&%9)':&#),;#9,3$.#)/-*#,
• <'932#,=&#),7$.#)/-*#,• :#9'>?3$@&A*'BC)D+,,?E"FCCAAAC!"#$%"&CB3@)'&F9-C'($)('C,
:-)#?'(&#F3$*'B3$@C%*(C,GHHI%JG%GJKJLFGGFHMAHHHNC(+(&,C456,
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
• !"#$%&'()&*+$',-.**(– /01+,2023(4"'(./5(,6,2+1(– !$%7*%,8,'9(
• :(,6,2+(-;(2()"22,<+"'1(– )"2+'"%(+='"$3=(>5?@4$%(.ABC(
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
• !"#$%&'($)"*+,-"$• )&../*0'$'"+"*12$
0*13'./*0'4$– !"#'/-5"0'$– 6/378./22,37$9$:/;"0$– )0*"1;,37$
• :2,"30$<;/#,2"9!"#=$1..2,-1>/3$,3$?@$2,3"'A$
• B1'"C$/3$D0;/'.("*"9E"*'"F$13C$,0'$EG&"*F$%2&7,3$
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Mobile Reader Monitor
• !"#$%&"#'(– )%&*(+,(%-.#(– /-*01-2(&*(,345(2#&.#2(670&(88,9:;8<=(>07#(?2-@(&*A(@-B0>#(B2-C"#2(
• D#%E*->-FA'(– 3-""12&G(<9H(H>-I.(– 19I"E#2(:(%&J1I2#(K#B&.&J1#2(
– LMN(>0*#"(-?(O&7&"%20J1(%-@J&PB>#(C01E(@-"1(@-B0>#(B2-C"#2"(
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
RFID Mashup Editor
• !"#$%&'()*+,(-.%*+/"-."0*01,+"2+13.(/&%+4567+&..%(/&8"0,+
• 9:*'+&+!&,;$.+5'&-*<"'=+>+?0@(0*A+– B,*',+/&0+C$(%#+1;*('+"<0+$,*+/&,*,+
• D'"1"3.*+C&,*#+"0A+– E'"<,*'FC&,*#+GH&I&,/'(.1J+– K%(/=,/'(.1L/;+&##*#A+
• M*C+.$,;+,$.."'1+• N*'I*'&%+4567OM"P+-"#$%*,+
6D+4*&#*'++Q&-*+
?DK+
6D+
E$,(0*,,++,1*.+
?DK+?I*01,+GR,"0J+
P'$*O+5&%,*+
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Clickscript
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Sample App: Mobile EAS
• !"#$%&'(– )*+(,-.#(/012(0*"3*0#(– 4$*0*(&013%5+#(6,-.7("80*"39(
#183:(– ;/(<1+(+"=*("(&>5+%0*(?>+$(
4*@5"2(– -%#$(6?*@#15=*+7(&>5+%0*(+1("88(
58>*<+#(1<(AB+$*C#(
• !1@>8*'(– D%@#50>@*(+1(B+$*C#(– E>#&8"9(#<"&#$1+("<3(&013%5+(
></1(– ;2&8*2*<+*3(?>+$(+$*(D*<5$"(
F1%5$(G"H"#50>&+(I>@0"09J(• KHLJ(*<3M+1M*<3(&%#$'(NOO(2#(
Still not convinced? Try it!!! http://epcmashup.webofthings.com
• !"#"$%&'()*+"$,-(*./0123*
• 4$5$*),5*6781*9:;3*• 7<)5=$'>?5*@'AB5)*>"$53*• 8,C&)%C+'=B$D*
– EC@*">C-)*&5"?FG+5H*– I5JC=A*7:K;8H*– L*65"A5&*M*(-$,H**
Web of Things, 3.3.2011 Vlad Trifa/Dominique Guinard - ETH Zurich
Conclusions
‣ Huge opportunities ahead for WoT‣ The Web of Things is hard because ‣ People are good Web developers
XOR‣ Good embedded systems developers
‣ Tools & best practices for Web-enabled things are needed‣ Tradeoff between performance and features‣ Web developers need to apply their skills and
expertise to build a programmable world‣ Prototyping via large-scale applications‣ Deployment support, runtime debugging, patterns & toolkits, etc.