IoT/P2P Project
Niels Olof Bouvin
1
IoT/P2P Project Niels Olof Bouvin 1 The IoT/P2P Project course - - PowerPoint PPT Presentation
IoT/P2P Project Niels Olof Bouvin 1 The IoT/P2P Project course Form (Very) few lectures (count em: One) Most of the time spent working on your project Your project is self determined, pending my approval so start thinking about cool
Niels Olof Bouvin
1
Form
(Very) few lectures (count ‘em: One) Most of the time spent working on your project Your project is self determined, pending my approval
Two weeks before course end: Show & Tell Last two weeks spent writing the Report Exam: An oral, individual defense of your system and report
2
Week 14: Introduction to the course and your project
You develop a smashing idea and get it approved
Week 15-20: Coding, coding, coding…
groups have weekly meetings with me Thursday (fjrst meeting next Thursday)
Week 16-20: Present central paper of your topic to me Week 20: Code freeze & Show and tell (2016-5-19)
in front of everybody—mandatory participation
2016-5-30: Turn report and system in
report quite important at the exam
3
Communication (text, audio, video, …)
multi-casted?
Backup Collaborative “spaces” File sharing (duh!) (Domain specifjc) software frameworks Security? Games (cheat prevention etc.)
4
Sensing phenomena Actuating devices and actions Tracking of persons and entities Situated interation Coordination between devices
5
Locality aware BitTorrent
always prefer pieces from local network rather than WAN
BitTorrent for streaming
time critical piece selection
Synchronized playback over mobile devices
for a discreet dance club
Secure social networking
confjding confjdentially
Cheat prevention in a MMOG
no central authority here
6
You are free to choose any base technology
This includes programming language, system platform, and framework
I should still be able to run your system
7
Do not under any circumstances use this
8
An officially sanctioned Java implementation of Pastry
http://www.freepastry.org/ (last updated 2009)
9
An open source Java implementation of Chord
https://sourceforge.net/projects/open-chord/ (last updated 2013-04-23)
But… why not use your own?
10
Several implementations in diverse languages
MaidSafe: https://github.com/maidsafe/MaidSafe-Routing (C++) (2015-3-25) Entangled: http://entangled.sourceforge.net (Python) (2012-5-18) (TomP2P: http://tomp2p.net (Java) (2015-5-27) Not so much)
Plenty more, see
http://en.wikipedia.org/wiki/Kademlia#Libraries
11
Enables Android phones to use Ad-Hoc WiFi with each
http://www.servalproject.org
12
MonoTorrent (C#)
https://github.com/mono/monotorrent/ (2013-3-25)
Ttorrent (Java)
https://mpetazzoni.github.io/ttorrent/ (2016-3-10)
13
WebRTC — reasonably supported in many modern browsers http://www.openwebrtc.org
14
See this discussion on Hacker News:
https://news.ycombinator.com/item?id=11144921
15
You can, of course, just continue with Photon Alternatives are plentiful, including Arduino, Raspberry Pi, etc. Don’t forget about mobile devices!
Android/IOS devices certainly qualify as interesting platforms
16
https://home-assistant.io (Python 3) http://www.openhab.org (Java) http://nodered.org (Node.js) https://www.cesanta.com/products/smart-js (C,C++,js)
17
You do your project in groups
2-4 persons
All email communication must include group id
18
Your project proposal should consist of at least
a use case – a short story to illustrate the why & how a description of how and why IoT/P2P will be used a sketch of the envisioned architecture some rough and realistic weekly milestones
All this in 1-2 pages (PDF, please!) Due: The sooner, the better. Preferably early next
19
You have a limited time, so you can’t polish your system
a fancy GUI is not a priority
Functionality is paramount; form less so Reproducible functionality is a requirement
ensure that you are creating a system where you can run repeated, quantifjable tests (I like graphs with error bars) your system should be easy to setup and its intended use well-documented
Statistics and proper graphs are important tools
use “Think Stats: Probability and Statistics for Programmers” (it’s free!) http://www.greenteapress.com/thinkstats/
20
Given the project nature of the course, it is easy to focus solely on coding, coding, coding
this would be a grave mistake
Even though there will be no official syllabus for the course, it will go hard for a report without a respectable list of references (at least 10 references) Therefore: Research your chosen project topic and fjnd related work as you develop your ideas
who knows? Could turn out to be a help along the way… http://scholar.google.com/
21
Your report should contain the standard elements
introduction, related work, analysis thereof, system design & implementation, experiments/evaluation, conclusion, (future work), references
A description of intended use & a link to a video demo A comprehensive manual in an appendix
your system is not self-explanatory…
A clear distinction between planned and actual functionality
this is should be in the introduction
22
Innovative/exciting use case Well documented positioning with regards to related work Impressive system with a good description Thought-out and systematic evaluation/experiments Well reasoned analysis of results
23
20 minutes per person Prepare your personal presentation of the report
12 minutes, then a few minutes for questions
Slides are welcome — demos OK, if you think you have the time Your grade is based on the work, the report, and your presentation
24