Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
15-829B/18-849B/95-811A/19-729A Internet-Scale Sensor Systems: Design and Policy Lecture 3 – Code Overview & Project Ideas Outline Code Overview Project Ideas 01-21-03 Lecture 3 2 Code Availability http://www.intel-iris.net Code accessible via CVS What is CVS version control system Useful for group access to source code Multiple people can edit the same file but conflicts may occur Anonymous 01-21-03 CVS can’t check in code Lecture 3 3 Mailing-lists Class members [email protected] Iriscode developers [email protected] Managed by [email protected] 01-21-03 Lecture 3 4 Using Laptop Laptop setup irisnet and root account passwords = irisnet Feel free to customize account but don’t change password IrisNet source code checked out in ~irisnet/IRISNET Redhat 8.0 Boot with camera attached Say configure at all the configuration prompts Log in as irisnet Start X server Network configuration System settings network Add… wireless lucent SSID = CMU Activate Start browser with outside CMU URL register wireless 01-21-03 Lecture 3 5 Building IrisNet cd IRISNET export CVS_RSH=ssh cvs login password cvs up -d -P ./install Should = anonymous build without error Try test suite cd 01-21-03 ~/IRISNET/TestSuite; ./testall.sh Lecture 3 6 Components SA OA Java-based Base OA code Apache Xindice XML database Logger C-based Base SA code OpenCV CamStream webcam viewer NAM network simulation animator Applications 01-21-03 Lecture 3 7 SA Architecture Sensor Feed Senselet Shared Memory Senselet Network Senselet SA Daemon 01-21-03 Lecture 3 8 SA – Sensor Feed Read from sensor and place info in shared memory One process per sensor Sensor readings are stored in circular buffer Provides access to historical measurements as space permits 01-21-03 Lecture 3 9 SA – Starting the Sensor Feed cd SA/IrisWebcam ./runwebcam.sh to use real camera ./loadImage to load one image ./loadImage images/pX.jpg 75 X = number of full spots = 0..6 75 = shared memory key for IrisNet ./loadImages to cycle through files in images subdir ./showImage shows the current image 01-21-03 Lecture 3 10 SA – CamStream CamStream provides an interface to webcams and a bunch of useful tools E.g., webcam capture/record Needs gcc 2.95 (not installed on laptops) to compile completely Gcc 3.2 only compiles the few libraries critical to IrisNet 01-21-03 Lecture 3 11 SA – Senselet Senselet One senselet per sensor service Each senselet runs as a separate process Senselet typically does: 1) take sensor data from shared memory 2) processes data to produce result 3) Transmits result to configured OA 4) Results may be stored back in shared memory 01-21-03 Lecture 3 12 SA – Running Senselet ./SAControl 127.0.0.1 3456 “S 127.0.0.1 6789 parking” executes parking detection senselet Need to first run “Util/Portsink/portsink 6789” to discard data Can load new images to see changes in result Can use similar technique to test your code for mini-project 01-21-03 Lecture 3 13 SA – Example Senselet cd Applications/parking/SA parking.cc contains parking space senselet Main function called Start(FilterParameter param) Typical structure of main function Open shared memory cvCreateImageHeader and cvSetImageData calls retrieve video image openCV calls to process image data Send data to the OA 01-21-03 Lecture 3 14 SA – SA Daemon Manages the execution of senselets Accepts commands from OAs to start/stop execution Text-based command protocol (port #3456) L <OA_IP> <OA_PORT> <senselet filename> <senselet name> <senselet code> S <OA_IP> <OA_PORT> <senselet name> starts execution of a senselet and transmits output to specified OA U <OA_IP> <OA_PORT> <senselet name> 01-21-03 uploads the code for a senselet and places it in filesystem stop execution of a senselet Lecture 3 15 SA – SA Daemon Starting cd SA/IrisSA/src ./runsa Controlling Normally controlled by OA’s cd Util/SAControl ./SAControl to manually send commands 01-21-03 Lecture 3 16 OA - Architecture Xindice 01-21-03 OA Daemon Lecture 3 Network 17 OA – Xindice What does it do? Local XML database engine Stores XML documents, handles Xpath 1.0 (mostly select and update) Interfaces Command line enter Xpath Java API What doesn’t it do [well] Xquery, XSLT XSLT processing done in separate Java library Image storage How do we use it Each service has a single XML document that stores sensor readings and static metadata 01-21-03 Lecture 3 18 OA – Starting Xindice cd packages/xml-xindice-1.0 ./xindice.server start Make sure that config/xindice.pid does not exist export XINDICE_HOME=`pwd` cd packages/xml-xindice-1.0/bin Run ./xinidiceadmin to control database 01-21-03 Lecture 3 19 OA – OA Daemon Listens on port 6789 Handles processing/forwarding of queries Uses XSLT to query Xindice database Manages partitioning of database across nodes DNS entries Reaction to load 01-21-03 Lecture 3 20 OA – OA Daemon Messages Query <srcPort> <id> <fragment #> <root> <Xpath query> Reply <id> <fragment #> <replying OA> <response> Split an OA Delete database <database name> Load data from SA <num xupdates> <xupdates> Start a new OA Delegate ownership <targetIP> <targetPort> <Xpath query> Answer to a query Take ownership <schema> Process the XPath query, id identifies source query made at root, fragment identifies this particular subquery Used by SAs to add to database Update DNS <database name> 01-21-03 Use dynamic DNS Lecture 3 21 OA – OA Daemon Running cd OA/IrisOA Edit oa.cfg if needed make run Controlling make runcl Type help to see interface Running a Service cd Applications/parking/OA Look at demodataone.xml Follow handout instructions to load xml document 01-21-03 Lecture 3 22 Logging What are the OAs/SAs doing? all messages currently uses a central server Log Challenge: how to order and playback log messages Lamport clocks to ensure causal order ns-2 network animator (nam) used to playback log 01-21-03 What is nam? Lecture 3 23 Logging Running the logger cd logger/IrisLogger/src runnam.sh Running NAM cd logger/nam-1.0a11a_iris ./nam ../IrisLogger/src/logfile.6 Currently logging must be carefully tuned to the application manual steps involved: Name and layout of nodes in animation Conversion of logfile node names to nam nodes identifiers 01-21-03 Lecture 3 24 Outline Code Overview Project Ideas 01-21-03 Lecture 3 25 Projects 2 or 3-person groups IrisNet-based Mini-project provides intro to IrisNet Expectations 10 page report + presentation Workshop quality results Project ideas Will 01-21-03 be posted on Web pages Lecture 3 26 Projects (cont.) Generous donation from Intel 20 laptops + cameras 10 desktops Each project group will receive 2 laptops and 3 cameras Handed out TODAY in CMCL lab 3604 Wean Hall Only to enrolled students, other students will need to wait No replacements – take good care of them No grade until you return them in good condition! Interesting deadlines 01-21-03 Sensys – Apr 8th Mobicom workshops – June middle Lecture 3 27 Applications – Monitoring Interesting Places At lunch places At grad lounge foosball table NSH Atrium Find me a free conference rooms Tennis/raquetball/etc. court avail Desk area/terminal room availability Car theft monitor Call/email owner if thief is near car! Traffic monitoring 01-21-03 Auto traffic (traffic jams) Throughput of area (cars, people) - speed trap Lecture 3 28 Applications – Object Tracking Person tracking Where did my child/pet go Advisor/advisee avoidance Location of my/someone else's car Inventory control 01-21-03 Lecture 3 29 Other Service Types Audio sensor-based applications Identify language spoken Identify individual based on voice Triggered sensor applications Record picture when car horn is heard Network monitoring as an IrisNet application Intrusion 01-21-03 detection system Lecture 3 30 Other Service Types – Environment Modeling Smart room support 3d positioning based on multiple sensors Virtual reality tour Take the sensor input to create parts of a virtual reality Weather monitoring 01-21-03 Lecture 3 31 Applications – General Challenges Image processing How do you identify objects of interest? Person/object counting techniques Motion detection based Identifying the same object in different views Handoff of tracking data from one sensor to next 01-21-03 Lecture 3 32 Applications – General Challenges Privacy issues Access control to OA database How does a person opt out of a surveillance Query processing What type of data schema for sensor readings? How are historic queries handled Data mining 01-21-03 Long term trends – e.g., in parking space availability or waiting lines Lecture 3 33 Infrastructure Incorporating new sensor types in IrisNet infrastructure Sensor motes – how do you modify the SA programming model to accommodate motes? Others: mobile sensors, public webcams, smart camera phones Making IrisNet infrastructure robust to failures Replicating part of database How to handle dynamic vs. static parts of database Handling failures in routing of queries – e.g., due to caching? Distributed monitoring of system and on-demand collection of logs 01-21-03 Lecture 3 34 Infrastructure – Energy Constraints Power management for local processing, e.g., how accurately can we predict energy consumption? What is the energy tradeoff between local processing of data vs. sending the data to do remote processing? Running a CPU, a sensor device, or a communication device in sleep mode can save energy considerably. An approach for saving power is thus to operate our devices mostly in sleep mode, and have them turn on periodically. How much accuracy does our sensor data loose given some duty cycle? Can we find more intelligent scheduling algorithms than simply uniform duty cycles (on during 100ms each second)? What about using low-energy sensors to schedule more power-hungry sensors? 01-21-03 Lecture 3 35 Infrastructure Location-based services How could we incorporate location-specific information in our sensors? How could we establish or verify the location of a sensor? Using video landmarks Image Processing we anonymize raw sensor feed – e.g., by blurring people in image Can 01-21-03 Lecture 3 36 Infrastructure – Policy/Security How can a user ensure that a video feed has not been “misused”? E.g., monitor the output XML, perform test queries on system Assuming an open environment (i.e., no central certificate authority everybody trusts), how can we establish trust between unrelated entities? How do we ensure that sensor data we receive is trustworthy and originates from the correct sensor? If anyone can make queries/program sensors, how do we protect the system from a denial-of-service attack? 01-21-03 Lecture 3 37 Infrastructure DNS Performance evaluation DHTs as an alternative Code safety and resource allocation on SAs/OAs How are services protected from each other How are nodes protected from malicious services that consume resources Storage use on SAs Support for historic sensor reading retrieval Impact on result sharing 01-21-03 Lecture 3 38 Infrastructure Push vs. Pull of data Impact on monitoring of failed nodes Impact on caching/response time for queries Handling aggregate fields in OA database 01-21-03 Lecture 3 39 Next Lecture Image processing OpenCV library Assigned reading: TBA 01-21-03 Lecture 3 40