ECE 692 Special Topics: Mobile Network Systems Design Mobile Computing Wei Gao Spring 2013 New Forms of Computing Wireless Computing Nomadic Computing • Distributed Computing (Client/Server) Mobile Computing Ubiquitous Computing Pervasive Computing Invisible Computing ECE 692 Mobile Network Systems Design 2 Mobile Computing Enabled by the technical advances of Wireless technology Mobile device development and production • Laptop, PDAs -> smartphone, tablet Mobile software platform • Symbian, Blackberry -> Android, iOS Built up on wireless networking Mobile applications Mobile data access Mobile interaction among users ECE 692 Mobile Network Systems Design 3 Contents Human mobility Mobility characterization Mobile data access Methods for providing data access Mobile caching strategies Mobile sensing Applications: sound, image, health Inference of user context Issues: generic framework, energy consumption, user incentive Mobile social network Mobile Facebook, ambience monitoring Who is near you: friend vs. stranger Mobile software platform: Android ECE 692 Mobile Network Systems Design 4 Human Mobility How human beings move? Transition among points of interests Mobility characterization Predict user mobility in the future Forecast disconnection among mobile nodes Actively pre-fetch data before network partition ECE 692 Mobile Network Systems Design 5 Coarse-Grained Characterization Mobility observation: association to wireless Access Points (APs) Mobility pattern: transitions among APs Rough prediction on node movement in the future Model: semi-Markov chain Characterized node mobility Node movement ECE 692 Mobile Network Systems Design 6 Fine-Grained Characterization Mobility observation: geographical node movement Accurate mobility prediction Model: Hidden Markov Model (HMM) Characterized node mobility ECE 692 Mobile Network Systems Design 7 Temporal and Spatial Correlation A user’s current and previous mobility may be correlated One user’s mobility may be correlated with that of other users ECE 692 Mobile Network Systems Design 8 Contents Human mobility Mobility characterization Mobile data access Methods for providing data access Mobile caching strategies Mobile sensing Applications: sound, image, health Inference of user context Issues: generic framework, energy consumption, user incentive Mobile social network Mobile Facebook, ambience monitoring Who is near you: friend vs. stranger Mobile software platform: Android ECE 692 Mobile Network Systems Design 9 Mobile Data Access Different from routing Data destinations are unknown Active data dissemination Data source actively push data to users being interested in the data Data dissemination Publish/Subscribe Brokers forward data to users according to their subscriptions Caching Cooperative caching ECE 692 Mobile Network Systems Design 10 Caching Conjoining push and pull data access strategies Data sources push data to the appropriate network locations for being cached Users send queries to caching locations for requesting data Challenges Where to cache • Minimize query delay What to cache • Limited local storage at caching nodes How many to cache • Multiple data copies may be needed ECE 692 Mobile Network Systems Design 11 With End-to-End Connectivity D q1(d1) d1 A G Incidentally cache pass-by data H E q2(d1) C K d2 B F q3(d2) ECE 692 Mobile Network Systems Design 12 Without End-to-End Connectivity D q1(d1) d1 A G H d1 E q2(d1) C K d2 d2 B F q3(d2) ECE 692 Mobile Network Systems Design 13 Contents Human mobility Mobility characterization Mobile data access Methods for providing data access Mobile caching strategies Mobile sensing Applications: sound, image, health Inference of user context Issues: generic framework, energy consumption, user incentive Mobile social network Mobile Facebook, ambience monitoring Who is near you: friend vs. stranger Mobile software platform: Android ECE 692 Mobile Network Systems Design 14 Mobile Sensing ECE 692 Mobile Network Systems Design 15 Data Collection Mobile system development Operate system sensors via APIs provided by mobile OS May need to compete with other applications • Two applications cannot use the same sensor simultaneously Running as background service Sensors used in literature Mobility: accelerometer, compass, GPS Sound: environmental noise level, people’s emotion… Photo: with location tags ECE 692 Mobile Network Systems Design 16 Understanding the data Local processing and aggregation of data Event detection Reduce transmission overhead Context inference Human behaviors: CenceMe Environmental conditions: traffic, crowd, weather… Health status: ECG/EEG/GSR Crowdsourcing Borrowed idea from NASA Mobile cloud computing ECE 692 Mobile Network Systems Design 17 Concerns Generic framework Universal system APIs Building blocks for heterogeneous applications Energy consumption All your sensors must remain working Requirement of battery lifetime: 1 day Idea: temporal and spatial correlation of sensed data User incentives Why should I provide the data? Server-centric: Payments provided by server User-centric: it won’t cost you too much! ECE 692 Mobile Network Systems Design 18 Contents Human mobility Mobility characterization Mobile data access Methods for providing data access Mobile caching strategies Mobile sensing Applications: sound, image, health Inference of user context Issues: generic framework, energy consumption, user incentive Mobile social network Mobile Facebook, ambience monitoring Who is near you: friend vs. stranger Mobile software platform: Android ECE 692 Mobile Network Systems Design 19 Mobile Social Network Online social network on smartphones Facebook, Twitter, etc Location-based service: check-in Proximity-based interaction Who is near you? The familiar stranger project: • http://www.paulos.net/research/intel/familiarstranger/index.htm • You may have seen this people before! ECE 692 Mobile Network Systems Design 20 Sociology Concept Community Human groups based on their social relations Small-world: six degree of separation Centrality Someone is more popular than others Communication hubs to connect other people ECE 692 Mobile Network Systems Design 21 Information Sharing ECE 692 Mobile Network Systems Design 22 Contents Human mobility Mobility characterization Mobile data access Methods for providing data access Mobile caching strategies Mobile sensing Applications: sound, image, health Inference of user context Issues: generic framework, energy consumption, user incentive Mobile social network Mobile Facebook, ambience monitoring Who is near you: friend vs. stranger Mobile software platform: Android ECE 692 Mobile Network Systems Design 23 Mobile Software Platform - Android The first open-source OS for smartphone Android is a software stack for mobile devices that includes an operating system, middleware, and key applications. http://developer.android.com/guide/basics/what-is- android.html Android Software Development Kit (SDK) http://developer.android.com/sdk/index.html Provides the tools and APIs to begin developing applications on the Android platform using Java. Includes a debugger, libraries, a handset emulator, documentation, sample code, and tutorials ECE 692 Mobile Network Systems Design 24 History Android versions Improved performance, VM support, and sensing APIs New UI framework, graphics and multi-core support 4G support, WiFi p2p connections ECE 692 Mobile Network Systems Design 25 Android System Architecture Middleware ECE 692 Mobile Network Systems Design 26 Android Middleware Software above the OS Provides services to (user) software applications beyond those available from the OS Advantages of middleware Separate less important functionalities out from OS kernel • “micro”-kernel Easier for developers to perform communication and I/O • Better APIs Android Runtime Davlik Virtual Machine: optimized for mobile devices Each application in Android runs as a separate instance of Davlik virtual machine Robust, reliable, and secure • Each application runs as a separate process ECE 692 Mobile Network Systems Design 27 Android Application Components Activity: visual user interface Activities work together to form a cohesive user interface Service: runs in the background for an indefinite period of time Comparable to Windows services Content provider Makes a specific set of the application's data available to other applications Broadcast receivers: System-wide event notification ECE 692 Mobile Network Systems Design 28 Manifest XML file Applications must declare their components in a manifest file Before Android can start an application component, it must learn that the component exists. AndroidManifest.xml for each application Declares the application's components Names any libraries the application needs to be linked against Identifies any permissions the application expects to be granted ECE 692 Mobile Network Systems Design 29 The Manifest XML File of HelloWorld <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.helloandroid" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="15" /> The platform version used <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" Being indicated as android:label="@string/title_activity_main" > application entry <intent-filter> <action android:name="android.intent.action.MAIN" /> of Type action <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> Other action types: CALL, SYNC, BATTERY_LOW,etc </application> </manifest> http://developer.android.com/guide/components /intents-filters.html ECE 692 Mobile Network Systems Design 30 Mobile System Security Mobile phones are becoming targets for attackers Mobile worms/malware Stealing users’ sensitive information • Contacts, personal documents, back accounts… Key solution: • Functional isolation • Principle of least privilege • Android: Davlik VM does the job! How to track/detect/identify mobile malware?? ECE 692 Mobile Network Systems Design 31