CL18_Windows Phone 7 Series Architecture Deep Dive

Download Report

Transcript CL18_Windows Phone 7 Series Architecture Deep Dive

Windows Phone 7 Series
Architecture Deep Dive
Istvan Cseri
Distinguished Engineer
Windows Phone
[email protected]
Changing our Game
A new approach with WP7
DESIGN:
PLATFORM:
HARDWARE:
END USER
COMES FIRST
RICHER, DEEPER,
EASIER APPS
FASTER TO
MARKET, LESS
HEAVY LIFTING
Session Outline
Cloud Integration
Services
App
Model
UI
Model
Software
Architecture
Hardware
Foundation
Hardware
Foundation
Hardware Foundation
Capacitive touch
4 or more contact points
Sensors
A-GPS, Accelerometer, Compass, Light, Proximity
Camera
5 mega pixels or more
Multimedia
Common detailed specs, Codec acceleration
Memory
256MB RAM or more, 8GB Flash or more
GPU
DirectX 9 acceleration
CPU
ARMv7 Cortex/Scorpion or better
Hardware buttons | Back, Start, Search
Software
Architecture
Software Architecture
Applications
Your App UI and logic
Silverlight
App Model
App management
Licensing
Chamber isolation
Software updates
Frameworks
XNA
HTML/JavaScript
CLR
UI Model
Cloud Integration
Shell frame
Session manager
Direct3D
Compositor
Xbox LIVE
Bing
Location
Push notifications
Windows Live ID
Kernel
Security
Networking
Storage
Hardware BSP
A-GPS
Media
Accelerometer
Wi-Fi
Compass Light
Proximity
Radio
Graphics
Hardware Foundation
App
Model
App Model: Concepts
Application
Uniquely identifiable,
licensable and serviceable
software product
packaged as a XAP
Application
Deployment
Windows Phone
Marketplace
Steps include Ingestion,
Certification and Signing
Application license
Crypto-verifiable object
issued to grant rights to
an application
Windows Phone
Marketplace
App Lifecycle
Windows Phone
Marketplace
+
Phone only installs .xap packages signed by marketplace
Phone handles all aspects of .xap installation based on the manifest

Individual apps cannot make arbitrary changes to the phone during installation
Users control install, update and uninstall, while the marketplace controls
revocation

Individual apps do not control their own lifecycle on the phone
App Isolation and Execution
Applications
and licenses
Application
install folders
Running
applications
Phone only runs apps that have a valid marketplace license
Apps are sandboxed into separate security accounts 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
App Hosting and Runtime
App Domain
Silverlight
Application Object
XNA Game
Object
Frameworks
Silverlight
HTML/JavaScript
CLR
System provides host process for app code
App Model Host
App Model
App management
Licensing
Chamber isolation
Software updates
Sandbox enforced for host process
based on declared capabilities
XNA
UI Model
Shell frame
Session manager
Direct3D
Compositor
Kernel
Security
Networking
Storage
A-GPS
Compass Light
A-GPSAccelerometer
Compass
Media Wi-Fi
Radio
Graphics
Cloud Integration
Xbox LIVE
Bing
Location
Push notifications
Windows Live ID
Location
Push Notifications
Hardware BSP
Proximity
Hardware Foundation
Each app executes inside an isolated, least-privileged host process
All app code is transparent and CLS-verifiable, mitigating impact of common attacks
Frameworks enable app code to interact with app model, UI model, phone functionality
Windows Phone 7 Series
Frameworks At-a-glance
Windows Phone 7 Series
Frameworks Details
Windows Phone Frameworks
Camera
PhoneApplicationFrame
Device Integration
PhoneApplicationPage
Launchers &
Choosers
PushNotification
Silverlight Presentation and Media
Controls
Drawing
Shapes
Markup
WebBrowserControl
Drawing
Navigation
Sensors
XNA Frameworks for Games
IsolatedStorage
Media
Windows Phone
Controls
Input
Media
GamerServices
Graphics
Audio
Content
Application Object
Common Base Class Library
Runtime
Resources
Globalization
Security
Threading
Collections
Reflection
Location
ComponentModel
Text
Configuration
IO
Net
Diagnostics
ServiceModel
Linq
3 Screens and Cloud
Windows
Phone
Windows
Desktop
Xbox
XNA
Frameworks
XNA
Frameworks
XNA
Frameworks
Silverlight
Presentation
and Media
Silverlight
Presentation
and Media
Windows
Phone 7 Series
Frameworks
Cloud
Location Service
Notification Service
Common Base Class Library
UI
Model
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
UI Model: Familiar Web Concepts
Phone application
Web application
Provides UI represented as
XAML pages connected into
cross-app flows by URI’s
Provide media represented
as HTTP resources linked
by URL’s
Shell frame
Web browser
Requests pages, renders UI, and
handles navigation across apps
Requests HTTP resources,
renders them, and handles
navigation across sites
Sessions and back stack
History and tabs
Groups together sequences of
pages corresponding to a user’s
activity across apps
Groups together sequences of
HTTP resources corresponding
to a user’s activity across sites
UI Navigation: Example
Pictures
Take a look at
recent photos
People
Look up the status
for a contact
Pictures
Continue looking
at recent photos
Active
sessions
UI and State Management: Concepts
Discarded while the session is
paused
Page UI
Describes the visual
appearance of a page
Page State
Contains data that
describes an instance of
a page, analogous to
browser cookie
Retained in shell frame to support
resuming paused sessions
UI and State Management: Example
Running Applications
Dehydrated and
rehydrated on demand
from saved state
Shell Frame
Monitors resource
usage to decide when to
pause sessions
Apps restarted and UI rehydrated as
the user navigates thru the phone
DEMO: UI MODEL
Graphics Composition
Shell frame composes all UI into a single screen
Central page management enables cross app UI transitions and other effects
System wide Z order enforcement emphasizes core phone functionality
Graphics Architecture
App UI and logic
Silverlight
XNA
HTML/JavaScript
Shell frame
Compositor
Direct3D
Window
manager
Graphics driver
Cloud Integration
Services
Cloud Integration: Concepts
Windows Phone
Your Web Service
Custom Web Service
Windows
Phone
Application
Existing Web Services
Microsoft Services
Frameworks
Cloud integration client services
Location Service
Notification
Service
Built-in user experiences and APIs integrated with key Microsoft services
Familiar API frameworks for interacting with existing Web 2.0 services
Rich support for incorporating custom web services into app-specific experiences
Location Service
Windows Phone
Existing Web Services
Microsoft Services
System.Device.Location
Location client service
Location Service
Built-in support for consuming GPS, AGPS 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
Location Client Architecture
Security
A-GPS
Wi-Fi
Radio
Microsoft Services
Location client service
Windows Phone Location Service
App UI and logic
Push Notification Service
Windows Phone
Your Web Service
Custom Web Service
Existing Web Services
Microsoft Services
Microsoft.Phone.Notification
Notification
Service
Push client service
Built-in support for efficient, battery-aware mobile push notifications
Managed APIs for notification-driven interaction with existing Web 2.0 sites
Push Client Architecture
Live Tiles service
Download Manager
Networking
Push client service
Wi-Fi
Radio
Microsoft Services
Microsoft.Phone.Notification
Microsoft Push Notification Service
App UI and logic
DEMO: PUSH NOTIFICATION
XBOX Live
Windows Phone
Game specific
web requests
Your Web Service
Custom Web Service
Microsoft Services
XNA
Authenticated
Xbox LIVE calls
Game Foundation
Gamer Services APIs for Xbox LIVE Profiles, Achievements, and Leaderboards
Game Foundation handles auth, caching, & partial connectivity for Xbox LIVE
Third party token allows secure integration with game-specific services
Gamer Services Architecture
Download Manager
Networking
Storage
Live ID client service
Windows Live ID
Game Foundation
Xbox LIVE
XNA Gamer Services
APIs
Microsoft Services
App UI and logic
A different
kind of phone
So you can build
Designed for
life in motion
integrated
experiences
& profit from it
Call to Action
Download the Windows Phone Developer Tools
http://developer.windowsphone.com
Create awesome apps and games!