windows phone 7 in azure
TRANSCRIPT
anytao We build apps.
Windows Phone in Azure
Wang Tao / 2011-12-17
• 专注于.NET,架构师,微软MVP,TechEd讲师, 著《你必须知道的.NET》。
• http://weibo.com/anytao
• http://okr.me
王涛 若云兄弟
Agenda
1 Phone + Cloud
2 关于Windows Azure
3 关于Windows Phone
4 基于推荐引擎的移动应用
5 最佳实践
1 Phone + Cloud
2 关于Windows Azure
3 关于Windows Phone
4 基于推荐引擎的移动应用
5 最佳实践
Phone + Cloud
• 趋势必行 – 数据、资源、复杂计算走向云端 – 应用、桌面深入移动端
• Cloud – 提供了更大的资源池 – 提供了一处服务、多处设备的可能 – 按需消费 – 自动管理 – 可用性
• Phone – 实现了更近的访问(LBS) – 实现了随时、随地
Cloud = (数据软件 + 平台 + 基础设施) × 服务
Phone = (随时 + 随地) × 服务
服务
以无限应对有限
Phone + Cloud
Windows Phone + Windows Azure
• PaaS(Not IaaS or SaaS) • 可伸缩性、高可靠性、安全性 • 支付系统 • 更多附加服务(ASC、Traffic Manager、Caching、
CDN) • 统一的工具和平台
– .NET/Silverlight/C#/VB .NET – Visual Studio / Expression Blend – 模拟器开发 – 易于迁移
Azure for Device, not only for Windows Phone
1 Phone + Cloud
2 关于Windows Azure
3 关于Windows Phone
4 基于推荐引擎的移动应用
5 最佳实践
Windows Azure
1 Phone + Cloud
2 关于Windows Azure
3 关于Windows Phone
4 基于推荐引擎的移动应用
5 最佳实践
Windows Phone 7
三分天下
WP7
iPhone
Android
1 Phone + Cloud
2 关于Windows Azure
3 关于Windows Phone
4 基于推荐引擎的移动应用
5 最佳实践
演示
海纳个性化应用推荐
www.haina123.com
面临的问题
• 高计算量服务 • 随时骤增的资源需求 • 高性能 • 缓存 • 完全自动化的部署和配置管理 • 可伸缩性、可靠性、安全性保证 • 通知服务 • 成本控制 • 与既有服务的整合 • 多移动端平台:Windows Phone、iOS、Android、Html5 • 同一个平台、同一套工具
基本场景
用户信息验证 计算推荐 发送通知
Windows Azure提供的应对之道
• 身份认证
• 存储
• 服务和计算
• 通信
• 推送通知
• 其他
基于推荐引擎的移动应用
通信
通信
• 通信模型
– Phone-initiated
– Cloud-initiated
Push VS Pull
Client-Pull Server-Push
Phone-initiated
• HTTP-based, request/response
• 框架选择(WCF, OData, WebRequest, etc.)
• 格式选择(SOAP, JSON, POX, etc.)
Cloud-Initiated
• Push Notifications
– Phone和MSPN单连接
–带宽和电池友好
–无需运维
• 3种类型
– Raw – 发送消息给application
– Toast – 发送消息给user
– Tile – 更新Tile Title
PN架构
Cloud Service
Windows Phone 7
MPNS
演示
Push notification
不同的Notifications
• Windows 8
– WNS, Windows Push Notification Service
• Windows Phone
– MPNS, Microsoft Push Notification Service
• iOS
– APNS, Apple Push Notification Service
• Android
– C2DM, Cloud To Device Messaging
基于推荐引擎的移动应用
身份认证
身份认证
• 使用既有身份服务
– LiveID、Facebook、OpenID
• ACS(Access Control Service)
• 自定义身份服务
– username + password
– token
基于推荐引擎的移动应用
存储
存储 • SQL Azure
–关系数据库
–高可用性
–通过服务管理
• Windows Azure Table – 非关系结构数据 – 横向扩展 – Odata
• Windows Azure Blob – 大文件 – Restful API
• Windows Azure Queue – 分布式队列
SQL Azure (OData Service)
• 客户端发送数据到Web Role
• Web Role将数据存储在SQL Azure
Web Role
Windows Azure Blobs: public blobs
• 客户端发送数据到Web Role
• Web Role将数据存储在Blobs
• 客户端直接获取Blob数据 Web Role
Web Role和Worker Role
• Web Role有IIS
• Worker Role 没有
– DLL with Main()
• 都实现了RoleEntryPoint
基于推荐引擎的移动应用
服务和计算
工作场景
1. Web Role接受消息
2. Web Role将工作加入队列
3. Worker Role从队列获取并处理
4. Worker Role发送通知
MPNS
Worker Role
Web Role
Multi-Instance
instance1 Instance1~X
HainaService
ContentService
InstanceX+1
Portal Site
Admin Site
Image Service
CDN
CDN
CDN
CDN
CDN
CDN
CDN
Traffic Manager
1 Phone + Cloud
2 关于Windows Azure
3 关于Windows Phone
4 基于推荐引擎的移动应用
5 最佳实践
UX
Design
Performance
Data
Storage
Service
Game
Network
XNA
MVVM
Marketplace
Ad
让开发飞一会儿。。。
(v1.3.0) http://watoolkitwp7.codeplex.com/
Windows Azure Toolkits for Device
• WP7, http://watwp.codeplex.com/
• iOS, https://github.com/microsoft-dpe/wa-toolkit-ios
• Android, https://github.com/microsoft-dpe/wa-toolkit-android
Azure for Device, not only for Windows Phone
1 Phone + Cloud
2 关于Windows Azure
3 关于Windows Phone
4 基于推荐引擎的移动应用
5 最佳实践
anytao We build apps.
?
@anytao
more info at http://anytao.net/blog
anytao We build apps.
Thank you.