Things I Learned Writing FindMyPhone

Things I Learned Writing FindMyPhone

Talk Outline Overview of Project Illustrative Example Details of What Were Providing Comments from Suman and Romit 1 Overview The goal of the Hawaii Project is to enable you to build applications that incorporate cloud services in order to enhance the end-user experience on mobile devices. We want to encourage the creation of cloud-enabled mobile applications to better understand the systems and networking infrastructure needed to enable the next generation of applications. 2

Victor Bahl, Jitu Padhye, Alec Wolman and Brian Zill Networking Research Group PROJECT HAWAII Cloud-enabled Mobile Apps These cloud-enabled mobile applications are essentially distributed systems involving a potentially large number of components: Mobile Device UI, sensors, computation, storage. Web Site or Service Web UI, computation, storage. Authentication Cross-system identity verification. Location Determining mobile devices location from environmental clues. Mapping Conversion between location representations (lat/long to map, or street address). Notification Resource-efficient messaging.

4 Example A Find My Phone application to help people find their lost phones. Scenario: User loses their phone (oops). Logs into the Find My Phone website. Issues request for the phone to report in Views the phones location on a map. 5 Whats Involved Windows Live ID Authentication

Hawaii Notification Service Bing Maps Hawaii Location Service Find My Phone 6 Download and Register Windows Live ID Authentication Hawaii Notification Service

Bing Maps Hawaii Location Service Find My Phone 7 Phone is Lost Windows Live ID Authentication Hawaii Notification Service Bing Maps Hawaii

Location Service Find My Phone 8 Login and Request Update Windows Live ID Authentication Hawaii Notification Service Bing Maps Hawaii Location Service Find My

Phone 9 Phone Phones Home Windows Live ID Authentication Hawaii Notification Service Bing Maps Hawaii Location Service Find My Phone 10

User Maps Location Windows Live ID Authentication Hawaii Notification Service Bing Maps Hawaii Location Service Find My Phone 11 Hawaii Platform Details We will be providing phones, tools, SDKs, sample

code HTC Pure A touch-screen smartphone running Windows Mobile 6.5. Windows Azure Hosted utility for web site/service and database services. Windows Live ID Web login service. Hawaii Location Service and mobile device API Provides current Latitude/Longitude/Altitude. Bing Maps Provides maps and imagery for a particular location. Hawaii Notification Service A persistent notification channel. 12 Status Three universities USC (Ramesh Govindan) Duke (Romit)

U. of Wisconsin (Suman) Similar program run in Israel Next year: More services (e.g. a video streaming and transcoding service) At least 5 universities, including one or two outside US. Well announce the program formally at MobiSys 2010 Many of you have already been invited http://research.microsoft.com/hawaii/ 13 Backup 14 Mobile Device Details We have standardized on the HTC

Pure mobile phone for the Hawaii project. Windows Mobile 6.5 professional 3.2 touch-screen (800 x 480 resolution) 3G radio compatible with AT&Ts network Wi-Fi (802.11 b/g) Bluetooth 2.0 with EDR GPS 5MP auto-focus camera Also: accelerometer, ambient light sensor, FM radio 15 Windows Mobile Development Development Environment Visual Studio 2008 Professional SP1

Windows Mobile 6 Professional SDK .NET Compact Framework 3.5 Windows Mobile Device Center 6.1 Similar to programming for the desktop .NET Compact Framework is subset of full framework. Demo of simple Hello World app Most things can be tested using the device emulator. 16 Hawaii Location API We will be providing a prototype service and API

Not yet public. Please dont distribute! Simple API for determining location Provides current Latitude/Longitude/Altitude. Handles GPS and radio-location for you. Collects location information from local sensors (GPS readings, WiFi AP bssids, cell phone towers, etc). Back-end service provides algorithms/database for determining location based on sensor information. 17 Privacy Concerns Users dont like it when programs expose potentially private information

to others without telling them. Some countries/jurisdictions have legal requirements. Your applications MUST get the users consent before calling the location API. Once the user has consented, your app may remember this fact rather than ask on each run. Exact language required is specified in the SDK. 18 Location API Details LiveLocation.CAB Installs on the phone.

Extends the OS to include location capability. Applications link with LiveLocationLib.dll. LiveLocationWrapper provides a .NET API. API can be called two ways: One-shot. Provide asynchronous callback updates. 19 Bing Maps API Provides information about a location. Street maps, imagery, etc. Translates between location

representations. E.g. street address to lat/long, place names, etc. AJAX API for calling from browser. Interactive SDK: http://www.microsoft.com/maps/isdk/ajax Other APIs (e.g. Web Services) available. See http://msdn.microsoft.com/library/dd877180.asp 20 Bing Maps Example

21 Bing Maps Example 22

Windows Azure Primer We will be providing you with Azure accounts. Azure is essentially web and database services in the cloud. Hosted ASP.NET web site/service Looks like IIS with web management interface. Websites are given URLs of the form http://.cloudapp.net/ 23 Windows Azure Development Development Environment Visual Studio 2008 Professional SP1 Windows Azure Tools for Visual Studio 2008

Windows Azure SDK Azure Tools for Visual Studio streamlines the process of building Azure services: Project to hold Azure configuration. Project to hold standard ASP.NET website. Results can be directly uploaded to Azure. 24 ASP.NET Environment Each Web site is an Application. Applications isolated by .NET runtime: Runs on App Pool thread(s). Created upon first HTTP request. Can timeout if no requests (default 20 mins).

Most code runs as handlers to HTTP requests: The Page_Load event being the most common. 25 ASP.NET Handlers Application/Session event handlers Specified in global.asax file. Application/Session start, end, error, etc. Page handlers for HTTP requests Filename.aspx (for layout and optional code). UI objects may be declared in layout and manipulated in code.

Filename.aspx.cs (optional place for code). Raw HTTP handlers Mapped to arbitrary parts of namespace. E.g. http://website.com/PurchaseOrder/* 26 Keeping State in ASP.NET Application State Defined on Application instance. Application dictionary object of name/object pairs. Session State In process, state server, SQL server options. ViewState dictionary object of name/object pairs.

Page State Instance of Page object created per request. Only static members of object persist across 27 Windows Live ID Primer Live ID provides an authentication service. Handles web site sign in for you. Provides an unique ID for each signed-in user. Web Authentication SDK Source code for WindowsLiveLogin class. Example code for service callback handler. Example code showing use of API to get

user id. Must register your web site URL with 28 Hawaii Notification Service We will be providing an experimental notification service and example code for calling it. Provides a simple method of signaling mobile. Why a Notification Service? Mobile devices rarely have fixed public IP addresses. Power is limited, more efficient to have

single system. Apps allocate channel(s) from 29 Hawaii Forum Questions? Problems? Need Help? Discussion Forum for Hawaii Project: http://community.research.microsoft.com Hawaii Project forum is private. Please create an account for yourself: See Join link at top of main page. Email me ([email protected]) your account name and Ill add you to the forums access list. Ask questions of us or your fellow

students. http://community.research.microsoft.com/forums/149 30 Resources General: Visual Studio 2008 Professional Edition Service Pack 1 From MSDN http://www.msdn.com or DreamSpark http://www.dreamspark.com Microsoft Web Platform Installer:

http://www.microsoft.com/web/downloads/platform.aspx .NET Framework 3.5 Service Pack 1 Download: http://msdn.microsoft.com/netframework/aa569263.aspx .NET Framework Information: http://msdn.microsoft.com/netframework Windows Mobile 6.5 Development: Windows Mobile Developer Center: http://msdn.microsoft.com/windowsmobile Core Downloads for Windows Mobile Development: http://msdn.microsoft.com/windowsmobile/bb264327.aspx Windows Mobile 6 Professional SDK: http://go.microsoft.com/fwlink/?LinkId=87437 Windows Mobile Device Center 6.1 (for Vista/7) or Microsoft ActiveSync (for XP).

.NET Compact Framework 3.5 Redistributable 31 Resources Continued Web Application/Service using Windows Azure: Azure Developer Center: http://www.microsoft.com/windowsazure/developers Windows Azure Tools for Visual Studio 2008 (includes Windows Azure SDK): http://go.microsoft.com/fwlink/?LinkId=128752 Windows Azure SDK Online documentation: http://msdn.microsoft.com/library/dd179367.aspx Windows Azure Platform Training Kit: http://www.microsoft.com/downloads/details.aspx?familyid=77299

0DA-8926-4DB0-958F-95C1DA572C84 Identification using Windows Live ID: Windows Live ID Web Auth SDK: http://go.microsoft.com/fwlink/?LinkID=91761 Windows Live ID Web Authentication Online Documentation: http://msdn.microsoft.com/library/bb676633.aspx Mapping using Bing Maps (formerly known as Virtual Earth): Interactive SDK: http://www.microsoft.com/maps/isdk/ajax 32

APPENDIX Random App Ideas Pothole Reporter - App for reporting potholes (w/ pictures) to a website that can display their location on a map. Directional Poke - Ping people in a particular physical region. Parking Assistant - Find public parking near you, tell others about open parking spaces, find your parked car.

Taxi Fare Predictor - Crowd-sourced database and logic for estimating taxi fare between two points. Commute Logger - Determine which of your alternate routes is best for a particular day of week and time of day. Workout Monitor - Use the accelerometer to determine things about a person's workout.

Lecture Review - App and website for sharing reviews of a lecture with the other people present. Physical Presence Proof - Some means of proving your presence in a physical location, such as responding to some sort of challenge/response. Battery Monitor - Crowd-sourced comparison of your battery usage with other peoples to identify when your battery is no longer holding as good a charge.

Photo Tagger - Geo-tag photos. Crowd News Reporting - Let a news site alert you to newsworthy events near you so you can cover the event. Walking Route Suggestion - Find the optimal way around your College campus. Virtual Graffiti - Post notes that only

appear to other people who later visit Social Heat Map - See if your friends are around, or where they are 34 Running Your Own Server Server 2008 R2 Has IIS 7.5 (non R2 has IIS 7.0) IIS 7.0/7.5 May need to enable using Server Manager Roles -> Roles Summary -> Add Roles ASP.NET Need to enable using Server Manager Roles -> Role Services -> Add Role Services

Features -> Add Features -> .NET Framework 3.5.1 Features 35 Web Sites in IIS Use IIS Manager to create web sites Connect to server, Select server -> Sites, Add Web Site Important site properties Name (not externally visible) Application Pool (usually one per web site)

Content Directory (usually under C:\InetPub) Binding (defines external access point) Host name, IP address(es), Port, Protocol Global IIS configuration kept in XML files %SystemRoot%\System32\inetsrv\config\* Site-specific configuration kept in XML file 36

Recently Viewed Presentations

  • Snort & ACID - Del Mar College

    Snort & ACID - Del Mar College

    The System Architecture consists of these main parts: Sniffer "Promiscuous Mode" NIC Preprocessor frag2, stream4, http_decode Detection Engine Using Rules Logging and Alerting plugins log mysql, alert smb Packets on the wire Snort Detection Process Records in a SQL db...
  • Lecture 4: The ER Model

    Lecture 4: The ER Model

    Boyce-Codd. Normal Form (BCNF) 3. rd. Normal Form (3NF) 4. th . and 5. th. Normal Forms = see text books. DB designs based on . functional dependencies, intended to prevent data . anomalies. Our focus for this lecture +...
  • Present tense of regular -ar verbs

    Present tense of regular -ar verbs

    Habl-arCom-erEscrib-ir. Every verb has a stem followed by an ending. The stem tells the verbs meaning. An infinitive ending doesn't name a subject or a tense
  • Faculty Development Training Programme on Engineering ...

    Faculty Development Training Programme on Engineering ...

    * Perspective projection, on the other hand, is a pictorial drawing representing the three dimensions of an object and all the three sides will have a tendency to converge at a point. This corresponds to how we usually visualize the...
  • Lecture 14 Stochastic Network Models

    Lecture 14 Stochastic Network Models

    Comparison with Non-Network Models. This network model finds greater effectiveness and efficacy of PrEP than prior studies that relied on simpler models, without network structure. These prior models fundamentally do not account for the complex network structure that must be...
  • REGULI DE REDACTARE I PREZENTARE A LUCRRILOR TIINIFICE

    REGULI DE REDACTARE I PREZENTARE A LUCRRILOR TIINIFICE

    Publ. 27 sept 74. Ferăstrău mecanic portativ perfecţionat. Alpina, SPA, IT. ... London: Macmillan, an 1930. Localizare în cadrul Section 12, Phylum Mollusca, p. 663-782 documentului-gazdă. ... Persoană sau colectivitate responsabilă de conţinutul intelectual sau artistic al unui document ...
  • Crisis Call Diversion - Texas Council of Community Centers

    Crisis Call Diversion - Texas Council of Community Centers

    HFD "psych problem" CFS requires priority responses from all first responders. Have access to The Harris Center records to determine if individual is current/past client. Referrals to MCOT, community-based services, other. Determine if additional call back is required in the...
  • AP007 How to Monetise Infrastructure & Platform The

    AP007 How to Monetise Infrastructure & Platform The

    The Cloud OS is delivered via our leading enterprise server, cloud and data platform technologies: Windows Server, which is at the heart of the Cloud OS and delivers on the promises of a modern data center; it works with Windows...