The World is the Computer
                            and the programmer is You


Davide Carboni
Surfing the 3rd wave, Int...
Time
•   1956:There's Plenty of Room at the Bottom -->MEMS
    (Feynman)
•   1974: TCP/IP (V.Cerf, R Kahn)
•   1990: Web (...
Models and tools

• to understand Ubiquitous
  Computing we must make more
  systematic use of models [...]
• how models c...
Top down Vs bottom up

• Bottom up
  – Few simple rules, many subjects,
    many objects
  – Integrative levels, emergent
...
Projects

• Languages, tools, and models for
  Web of Things and Wireless Sensor
  Computing
  – Hyperpipe (bottom up)
  –...
Top Down




           6
wireless sensor
networking today




                   7
PySense

• Wireless Sensor Computing
  – not only simple sensors connected to
    a central computer, but rather
    eleme...
Sensing, 
routing, 
computing




            9
• given an energy consumption
  model E and an application code C,
  there exists a partitioning of code
  C={c1,c2,...,cn...
• Node-level programming
  – program for each node type (error
    prone, difficult, only for geeks)
• Network as DB
  – G...
PySense

• PySense
  – Language (hosted on decorators) and
    API
  – Base Runtime Environment (based on
    Python 2.6)
...
PySense Regions

Region((0,0,100,100)) | Region(“/foo/3/312”)




                                               13
@mote
class M:
  def getX(self):pass
  def setY(self,y):pass

       Finds a mote m with X,Y
m=M()
m.getX()        Read X ...
@mote
class M:
   def getX(self):pass

   @onboard
   def f(self,args):<some code here>

   @onbase
   def g(self,args):<s...
Simple program

@mote
class CO2Sense:
  def getConc(self):
    return self.x

values=[c.getConc() for c in 
region.items(C...
A little better

@mote
class CO2Sense:
  def getConc(self):return self.conc


class CO2Cluster(Cluster)
  @onboard
  def a...
Bottom up




Picture released under (CC) attribution share­alike by alasis on Flickr    18
Only for geeks

ls ­l | less


curl 
"http://en.wikipedia.org/wiki/Pipeline_(Unix)" 
| 
sed 's/[^a­zA­Z ]/ /g' | 
tr 'A­Z ...
Also for bloggers




                    20
Web 1.0            Pages linked
Web 2.0            People, content, social
Web 3.0            Structured data and 
       ...
Hyperpipe

• Hyperpipes =architecture for the
  Web of Things
• Point-select-connect interaction
• Based on pi-calculus / ...
– Every thing is a process
– Things have public operations
  (channels)
– Things exchange data through
  channels
– Hyper ...
sensor

src()­>data
                          effector
sink(data)
f(data)­>data'

                          processor




...
src()­>data   sink(data)




                           25
src()­>data         sink(data')




              f(data)­>data'




                                  26
src()­>video   sink(video)




                             27
src()­>video            sink(video)

           Hyper pipe




                                      28
29
30
31
32
Selecting two different actions
from two different objects
(or even from the same object)
a pipe can be constructed.




T...
stream()­>video           sink(video)

   snapshot()­>image

  faceRecognition()­>event




wsdl




                     ...
35
References

• Macroprogramming
  http://fiji.eecs.harvard.edu/Macroprogramming
• Enowireless - http://opensource.crs4.it/e...
Upcoming SlideShare
Loading in...5
×

Davide Carboni - The world is the computer and the programmer is You

1,236

Published on

The world is the computer and the programmer is you - Presentation Transcript

The World is the Computer and the programmer is You Davide Carboni Surfing the 3rd wave, Internet of Things in Sardinia Workshop Pula 14 04 2010 1
Time • 1956:There's Plenty of Room at the Bottom -->MEMS (Feynman) • 1974: TCP/IP (V.Cerf, R Kahn) • 1990: Web (T.Berners Lee) • 1993: Vision of Ubiquitous Computing (Weiser) • 1998: Jini (Sun) • 1999: Internet of things (AutoID labs) • 2000: REST (Roy Fielding) • 2001: Smart Dust (Pister) • 2003: Project JXTA-C: Enabling a Web of Things • 2004: Vision of Spime (B. Sterling) • 2004: Web 2.0 (O'Reilly or DiNucci in 1999) • 2008: (Restful) Web of Things Manifesto (Trifa et al.) 2
Models and tools • to understand Ubiquitous Computing we must make more systematic use of models [...] • how models can form a hierarchy, allowing them to be combined and higher models to explain lower ones – Robin Milner 3
Top down Vs bottom up • Bottom up – Few simple rules, many subjects, many objects – Integrative levels, emergent complexity,evolutionary approach • Top Down – Many complex rules and logic, one subject, many objects – Creational approach 4
Projects • Languages, tools, and models for Web of Things and Wireless Sensor Computing – Hyperpipe (bottom up) – PySense (top down) 5
Top Down 6
wireless sensor networking today 7
PySense • Wireless Sensor Computing – not only simple sensors connected to a central computer, but rather elements capable of computation in a distributed system • Computation Vs Communication – One byte sent demands 100 times the energy of an integer instruction 8
Sensing, routing, computing 9
• given an energy consumption model E and an application code C, there exists a partitioning of code C={c1,c2,...,cn} and a set Tx of transmissions Tx={tx1,tx2,...,txk} which is optimal for E 10
• Node-level programming – program for each node type (error prone, difficult, only for geeks) • Network as DB – Good but limited to queries (TinyDB) • Macroprogramming – Program the net as a whole, the tool partition the code on the nodes automatically 11
PySense • PySense – Language (hosted on decorators) and API – Base Runtime Environment (based on Python 2.6) – Remote Runtime Environment (based on Python-on-a-chip) 12
PySense Regions Region((0,0,100,100)) | Region(“/foo/3/312”) 13
@mote class M: def getX(self):pass def setY(self,y):pass Finds a mote m with X,Y m=M() m.getX() Read X from m 14
@mote class M: def getX(self):pass @onboard def f(self,args):<some> @onbase def g(self,args):<some> @auto def h(self,args):<some> 15
Simple program @mote class CO2Sense: def getConc(self): return self.x values=[c.getConc() for c in region.items(CO2Sense)] 16
A little better @mote class CO2Sense: def getConc(self):return self.conc class CO2Cluster(Cluster) @onboard def average(self): return sum([m.getConc() for m in self.motes]) / len(self.motes) values=CO2Cluster(region.items(CO2Sense)).average () 17
Bottom up Picture released under (CC) attribution share alike by alasis on Flickr 18
Only for geeks ls l | less curl "http://en.wikipedia.org/wiki/Pipeline_(Unix)" | sed 's/[^a zA Z ]/ /g' | tr 'A Z ' 'a­zn' | grep '[a z]' | sort u | comm 23 /usr/share/dict/words 19
Also for bloggers 20
Web 1.0 Pages linked Web 2.0 People, content, social Web 3.0 Structured data and services Web of Things Physical objects,sensors, effectors Wiki of Things, People bend the rules, Physical Mashups new unexpected apps 21
Hyperpipe • Hyperpipes =architecture for the Web of Things • Point-select-connect interaction • Based on pi-calculus / SOA 22
– Every thing is a process – Things have public operations (channels) – Things exchange data through channels – Hyper pipes connect objects' channels – Hyper pipes are processes 23
sensor src() >data effector sink(data) f(data) >data' pro

1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
1,236
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
26
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Davide Carboni - The world is the computer and the programmer is You

  1. 1. The World is the Computer and the programmer is You Davide Carboni Surfing the 3rd wave, Internet of Things in Sardinia Workshop Pula 14 04 2010 1
  2. 2. Time • 1956:There's Plenty of Room at the Bottom -->MEMS (Feynman) • 1974: TCP/IP (V.Cerf, R Kahn) • 1990: Web (T.Berners Lee) • 1993: Vision of Ubiquitous Computing (Weiser) • 1998: Jini (Sun) • 1999: Internet of things (AutoID labs) • 2000: REST (Roy Fielding) • 2001: Smart Dust (Pister) • 2003: Project JXTA-C: Enabling a Web of Things • 2004: Vision of Spime (B. Sterling) • 2004: Web 2.0 (O'Reilly or DiNucci in 1999) • 2008: (Restful) Web of Things Manifesto (Trifa et al.) 2
  3. 3. Models and tools • to understand Ubiquitous Computing we must make more systematic use of models [...] • how models can form a hierarchy, allowing them to be combined and higher models to explain lower ones – Robin Milner 3
  4. 4. Top down Vs bottom up • Bottom up – Few simple rules, many subjects, many objects – Integrative levels, emergent complexity,evolutionary approach • Top Down – Many complex rules and logic, one subject, many objects – Creational approach 4
  5. 5. Projects • Languages, tools, and models for Web of Things and Wireless Sensor Computing – Hyperpipe (bottom up) – PySense (top down) 5
  6. 6. Top Down 6
  7. 7. wireless sensor networking today 7
  8. 8. PySense • Wireless Sensor Computing – not only simple sensors connected to a central computer, but rather elements capable of computation in a distributed system • Computation Vs Communication – One byte sent demands 100 times the energy of an integer instruction 8
  9. 9. Sensing,  routing,  computing 9
  10. 10. • given an energy consumption model E and an application code C, there exists a partitioning of code C={c1,c2,...,cn} and a set Tx of transmissions Tx={tx1,tx2,...,txk} which is optimal for E 10
  11. 11. • Node-level programming – program for each node type (error prone, difficult, only for geeks) • Network as DB – Good but limited to queries (TinyDB) • Macroprogramming – Program the net as a whole, the tool partition the code on the nodes automatically 11
  12. 12. PySense • PySense – Language (hosted on decorators) and API – Base Runtime Environment (based on Python 2.6) – Remote Runtime Environment (based on Python-on-a-chip) 12
  13. 13. PySense Regions Region((0,0,100,100)) | Region(“/foo/3/312”) 13
  14. 14. @mote class M:   def getX(self):pass   def setY(self,y):pass Finds a mote m with X,Y m=M() m.getX() Read X from m 14
  15. 15. @mote class M: def getX(self):pass @onboard def f(self,args):<some code here> @onbase def g(self,args):<some code> @auto def h(self,args):<some code> 15
  16. 16. Simple program @mote class CO2Sense:   def getConc(self):     return self.x values=[c.getConc() for c in  region.items(CO2Sense)] 16
  17. 17. A little better @mote class CO2Sense:   def getConc(self):return self.conc class CO2Cluster(Cluster)   @onboard   def average(self):     return sum([m.getConc() for m in self.motes])  / len(self.motes) values=CO2Cluster(region.items(CO2Sense)).average () 17
  18. 18. Bottom up Picture released under (CC) attribution share­alike by alasis on Flickr  18
  19. 19. Only for geeks ls ­l | less curl  "http://en.wikipedia.org/wiki/Pipeline_(Unix)"  |  sed 's/[^a­zA­Z ]/ /g' |  tr 'A­Z ' 'a­zn' |  grep '[a­z]' |  sort ­u |  comm ­23 ­ /usr/share/dict/words 19
  20. 20. Also for bloggers 20
  21. 21. Web 1.0 Pages linked Web 2.0 People, content, social Web 3.0  Structured data and  services Web of Things Physical  objects,sensors,  effectors Wiki of Things,  People bend the rules,  Physical Mashups new unexpected apps 21
  22. 22. Hyperpipe • Hyperpipes =architecture for the Web of Things • Point-select-connect interaction • Based on pi-calculus / SOA 22
  23. 23. – Every thing is a process – Things have public operations (channels) – Things exchange data through channels – Hyper pipes connect objects' channels – Hyper pipes are processes 23
  24. 24. sensor src()­>data effector sink(data) f(data)­>data' processor 24
  25. 25. src()­>data sink(data) 25
  26. 26. src()­>data sink(data') f(data)­>data' 26
  27. 27. src()­>video sink(video) 27
  28. 28. src()­>video sink(video) Hyper pipe 28
  29. 29. 29
  30. 30. 30
  31. 31. 31
  32. 32. 32
  33. 33. Selecting two different actions from two different objects (or even from the same object) a pipe can be constructed. Thanks to  Alessandro Giordano and Alberto Serra  for the prototype 33
  34. 34. stream()­>video sink(video) snapshot()­>image faceRecognition()­>event wsdl 34
  35. 35. 35
  36. 36. References • Macroprogramming http://fiji.eecs.harvard.edu/Macroprogramming • Enowireless - http://opensource.crs4.it/enowireless/ • Wireless Wires: Let the Users Build the Ubiquitous ComputerIn Proc. of MUM 2007 - 6th Int. Conference on Mobile and Ubiquitous Multimedia. ACM Press. • http://en.wikipedia.org/wiki/Mark_Weiser 36
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×