INF5261 – Development of Mobile Information Systems and Services Mobile Ad-Hoc Networking - Transparent Virtual Directory Final Presentation May 22nd, 2006 Henning Berg Jon Oldevik Lars Kristian Snellingen Bye Mansur Ali Abbasi Outline 1. Overview [Jon] 2. Mobile Ad-Hoc Networking [Jon] 3. Prototype Concept [Henning] 4. Proof of Concept Implementation [Mansur] 5. Usage Areas [Lars] 6. Reflections [Mansur] 7. Conclusion [Henning] 8. Questions [All] 1. Overview • Objectives – Learning what Ad-hoc networking can be used for – And how it can be implemented • Our approach – Reading theory; books and articles – Defining a prototype • File Sharing on a virtual ad-hoc network – Analyzing usage areas – Implementing the prototype (Proof-of-Concept) • Results – Knowledge on mobile ad-hoc networking and Bluetooth… • Technologies: J2ME, Bluetooth • Usage – A partially implemented prototype – Documentation of results 2. Mobile Ad-Hoc Networking • Ad-hoc in computer networking – – – – – – – Spontaneous network establishment. Ad-hoc is mostly associated with wireless devices. Requires no base station. Devices discover others within range to form a network. Connections are possible over multiple nodes. Devices out of range can be found by forwarding. Routing protocols provide stable connections even if nodes are moving around. • Example: Sony's PlayStation Portable Uses Ad-Hoc connection for wireless multiplayer gaming. 2. Mobile Ad-Hoc Networking – Usage Areas • Social services – Dating, chatting • Work and productivity related / ”useful” areas – Emergency / crisis management – Military operations – Sensor Networks (industry, hospitals, offshore) • Entertainment – Gameplay • Information sharing – File sharing – Streaming media services – Commercials and sales / marketing 3. Prototype Concept – Transparent Virtual Directory (TVD) • File sharing service where all nodes should be able to share files with each other using a Bluetooth-compatible unit. • Used to understand and reason about ad-hoc networking. • Several problem areas related to spontaneous networks (with Bluetooth): – – – – – Master/slave issues (server/client) Routing File replication and file ownership Load balancing File forwarding 3. Prototype Concept – How does TVD work? • Scenarios that describe usage: 1. Two nodes (A and B) in a net, where ’node A’ wants to download two files located on ’node B’ 2. Three nodes (A, B, and C) in a net, where node A wants to download one file from ’node B’ and one file from ’node C’. 3. Three nodes (A, B, and C) in a net • • • • ’node A’ and ’node B’ are within each others range ’node B’ and ’node C’ are within each others range ’node A’ is out of range to ’node C’ ’node A’ wants to download a file from ’node C’ 3. Prototype Concept – Scenario 3 illustrated • Three nodes; ’node A’ wants to download a file from a node not directly accessible from A 4. Proof of Concept Implementation – Realization plan • Technologies and Tools – Bluetooth-devices (Java-based emulator – Sun Wireless Toolkit) – J2ME with Java Bluetooth API • Open, non-proprietary standard for BT app. development • Hides complexity of BT – JBAN (a open source library, more later) – Eclipse with EclipseME-plugin as IDE 4. Proof of Concept Implementation – More on JBAN • Problem: – Process of forming scatternet out of piconets is usually not dynamic and practical – Scatternets formed are not robust. – Routing and network management complicates development – Master/slave distinction is not desired in TVD • Solution – The JBAN open source “library”: – Provides new way to form BT ad-hoc network at Java application level – Allows unlimited devices to form a network dynamically – Abstracts away the master/slave distinction between nodes 4. Proof of Concept Implementation – More on JBAN (2) • Pitfalls: – – – – • Relatively new (bundle of code in a JAR-file) “Released” February 2006, no reported experiences Declared stable, but is it really? (Multithreaded - difficult to test) No documentation (some simple javadoc only) Big pitfall, discovered during implementation: – Dynamic network management is not yet implemented! • Discovery worked fine, but network was unable to detect changes (nodes coming and leaving) • Not documented, spent some time in understanding this • E-mail to JBAN author confirmed that network management is not implemented, but on the TODO-list – We have all reasons to believe JBAN will do what we desire once network management is implemented 4. Proof of Concept Implementation – The TVD POC Midlet 4. Proof of Concept Implementation – The TVD POC Midlet (2) • JBAN handles – – – – • Discovery and formation of network Network management (not yet, but hopefully soon) Service registration and service discovery Sending and receiving of data (class Packet in JBAN) using standard Java (byte array) streams We handle / plan to handle – – – – – Sharing files (making own files available to the TVD) Security (mutual authorization, and group memberships) Distribution of directory listing (File Awareness Model) File transfer and file relay management Other application logic (pausing/resuming transfers, etc.) 4. Proof of Concept Implementation – The TVD POC Midlet (3) • Results from the implementation work: – JBAN eased a lot of “pain” in BT programming – JBAN will (soon) provide simple formation of a fully dynamic, mobile ad-hoc network as desirable for TVD – We are able to send data between nodes, and forwarding is unproblematic. – Still many other issues to think of, but mainly: – TVD is realizable on the Bluetooth/J2ME/JBAN platform • Thoughts for further development – Involve in the JBAN open source project. Don’t want to “reinvent the wheel” so contributing to further development of JBAN-library should be the right way to go to. – What about performance when network is being formed at Java application level? 5. Usage areas for TVD – Many possibilities • Sharing of image and music files • Commercial / product information • Work situations – Document sharing – Collecting data from nodes • Team calendar synchronization 5. Usage areas for TVD – Example usage scenario • Document sharing between coworkers at a meeting: – No papers – No possibility to forget / loose links – Don’t need to bring a big laptop, the cell phone is enough. 6. Reflections around TVD – Context Awareness • Need to add some context intelligence to application – Context of Bluetooth-unit • Disallow initiation of file transfer / file relay when BT-unit communicating with a BT-handsfree (or performing other high priority BT-task)? – Context of device resources • Battery getting low keep TVD running or auto-pause? • Memory getting low refuse to act as relay-node? – Context of user • Member of multiple TVD groups. Which access group has higher priority? Can the priorities be made place-aware? • Other precautionary rules? 6. Reflections around TVD – User Interface and Testing • Need to come up with a “perfect” user interface – Dependent on type of device (mobile phone, mass storage device, etc.) – Allow for easy manipulation of context settings – What placements of (G)UI elements feel natural for the users – Conduct live testing with a group of potential users • Need to test various aspects of TVD – Test UI (live) with a group of potential users – Test context awareness in various scenarios – Simulate large TVD-networks in a BT-simulator (BT-Sim?) 7. Conclusions • General conclusions: – The technology used proves suitable for building ad-hoc network applications – The Ad-hoc concept invites context sensitivity and ”social applications” – The TVD concept was useful to learn about and understand ad-hoc networking – Several issues not implemented • Routing, security mechanisms, etc. • Learning outcomes: – Raised level of understanding of principles and challenges of Ad-Hoc networking – Raised level of understanding of the concepts mobility, context-awareness and space/place-distinction – Insight into Bluetooth technology and BT app development – Insight into J2ME and JBAN Questions?