Windows Phone System Architecture – Auri’s Journal

Posted: March 17, 2010 in Uncategorized
  • “Modern OS” – virtual memory support with paging, networking, similar to Windows.
  • Integration with Bing search and maps.
  • DirectX-capable hardware
  • Application rutime uses CLR, with other capabilities: Silverlight UI, XNA for gaming, 3D and 3D graphics and content pipeline, and HTML + Javascript. Animation, Gaming, and HTML are the three key areas.
  • XAP package used to deploy app to phone using deployment to Marketplace. Microsoft checks the code, sign the code, and issue a license.
  • Application license is a crypto-verifiable object issued to grant rights to an application
  • (this model also guarantees Microsoft, just like Apple, always gets their cut of app profits – editor)
  • Phone handles all aspects of XAP installation based on the manifest. Individual apps will not be able to make arbitrary changes to the phone during installation.
  • Individual apps do not control their own lifecycle on the phone.
  • The Marketplace also controls revocation.
  • Both Trial and Beta are supported via Marketplace as well.
  • Apps are sandboxes into separate security accounts created while installed and at runtime.
  • Resource allocation policy keeps the foreground app responsive.
  • Resource management policy ensures the user can always use Start to run a new app.
  • Phone only runs apps that have a valid marketplace license.
  • Each app executes inside an isolated least privileged host process.
  • All app code is transparent and CLS-verifiable (making sure its not tampered with), mitigating impact of common attacks.
  • Frameworks enable app code to interact with app model, UI model, and phone functionality.
  • When you invest in this platform, you can re-use it on Windows Desktop, Xbox, and Bloud.
  • As time goes by, more and more capabilities will be made available across all Microsoft platforms.
  • UI Model concepts:
    • Application: UI and logic for functionality exposed through pages
    • Page: A single screen of user interaction elements
    • Session: An ordered workflow of user interactions spanning applications
  • The point is to blur experiences between applications. Make the system a single unified experience.
  • This approach is very similar to how Web app browsing/usage works.
  • The app page state can be retained and the application can be resumed from the page state. Basically, tell the presenter to show the UI again by reading the page state. So, UI can be discarded, freeing resources.
  • Showing a cool tool that shows processes, pages, memory utilization and more. I want to know if we’ll have access to this tool. It overlays on top of all running apps! Very cool.
  • App apps are a Direct3D surface. So, pages are layered on top of each other, rather than rendering the app in the application’s space.
  • System wide Z-order enforcement

Cloud Integration Concepts

  • Cloud is always on, unlike your phone, with unlimited power compared to the phone.
  • Built-in user experiences and APIs integrated with key Microsoft services
  • Familiar API frameworks for interaction with existing Web 2.0 services.
  • Rich support for incorporating custom web services into app-=specific  experiences.
  • Windows Live and Bing integration.
  • Integration with Facebook supported as well.
  • Location Service
    • Built-in support for consuming GPS, AGPS (assisted GPS) and Wi-Fi based location data
    • Managed APIs for location based interaction
    • Microsoft managed Wi-Fi access point data as part of Windows Phone Services
    • System.Device.Location namespace
  • Push Notification Services
    • Built-in support for efficient, battery-aware mobile push notifications
    • Managed APIs for notification-driven interation with existing Web 2,0 sites
    • App receives a URI to push or post data
    • Free to delay messages, free to batch messages – all managed by phone
    • No guarantee of message notifications – notifications can be deleted and never supplied to app (whaaa?)
    • Notification manager is in charge of all this and makes the decisions as to whether to deliver the message and when (how do other platforms work?)
    • HttpNotificationChannel channel = new HttpNotificationChannel(uri)
    • channel.ChannelUriUpdates += new EventHandler<NotificationChannelUriEventArgs>
    • channel.Open();
    • channel.BindToShellNotification();
    • channel.BindToShellEntryPoint(new ShellEntryPoint { code } ) // bind to tile
    • taskhost.exe hosts all application cod
    • sn1.notify.live.net/throttledthirdparty/ appears to be the url handling this
    • There is a Desktop Push Tool to get data to the phone

Xbox Live Service Integration

  • Gamer Services APIs for Xbox LIVE Profiles, Achievements and Leaderboards
  • Game Foundation ahndles authentication, caching, and partial connectivity for Xbox LIVE
  • Third party token allows secure integration with game-specific services
  • Profile information is cached locally on the phone, and synchronized whenever connected to Xbox Live
  • There is a Live ID client service in the OS (remember, a Live ID is required to use the phone)

Q&A

  • Apps will not be able to play or access or DRMed content, but they will be able to request the system do play such. Not sure if this means you won’t be able to enumerate music / video files.
  • The SLA (Service Level Agreement) for push notifications may be published as the phone gets closer to release.
  • The super cool debugging tool they showed will not be available to developers (as of yet) – bumr.
  • There will only be one SKU ultimately – Windows Phone – but no answer as to what the Series means in Windows Phone 7 Series.

Takeaway as a Dev (Op Ed)

The developers who don’t know what they’re missing will still create great apps. We can still do some great things, but what will the next 7 months bring from Microsoft’s competitors? Other platforms already provide this functionality in one way or another, and in some cases better – other cases, worse. But they have seven months to review this and change their game, and they move pretty fast.

I’m wondering if they’re holding anything back, but my gut tells me no.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s