Amazon AppStream(GA)应用程序运行在 AWS 上,而将输出以流传输的方式发送到世界各地的设备上

  • Abel Avram
  • 马德奎

2014 年 3 月 17 日

话题:AWS语言 & 开发

Amazon 提供了AppStream服务,使开发人员可以在 AWS 上运行应用程序,而将输出以流传输的方式发送到各种设备上。

在 2013 年 11 月推出有限预览版四个月之后,Amazon 发布了面向所有开发人员的AppStream服务。当使用 AppStream 时,应用程序可以运行在 Amazon 的云上,而将其输出——视频、音频、数据——以流传输的方式发送到瘦客户端应用程序。客户端应用程序运行在遍及整个互联网的各种设备上,负责接收和显示信息流,并获取用户输入,发送回服务器。这种方式有若干好处:

  • 应用程序可以针对单一的平台开发和测试
  • 简便,用于各种平台的客户端应用程序都很容易开发
  • 应用程序可以运行在强大的服务器上,而不受制于设备的局限性
  • 更新应用程序通常意味着更新服务器部分,可以在不影响用户的情况下以任何方式完成
  • 用户无需下载应用程序,这点在面对比较大的应用程序时会有用

现有的应用程序可以通过AppStream SDK进行增强,以便支持流传输。目前,AppStream 只支持 Windows 应用程序,不过客户端应用程序可以部署到所有主流平台上:Android、iOS、OS X、Windows 和 Kindle/FireOS。Amazon 还提供了一个Java SDK,其中封装了一个 RESTful API,用于与 AppStream 服务在验证、授权、处理错误等方面进行交互。AppStream 应用程序可以访问许多 Amazon 服务——S3、RDS、NoSQL、SQS、SNS 等——限于同一区域内。

为了在 AWS 上使用流传输,应用程序必须能够运行在 Windows Server 2008 及更高版本上。32 位应用程序可以通过 WoW64 扩展使用。.NET 应用程序也可以使用。应用程序必须能够使用YUV 420 视频格式进行流传输。Amazon 为这样的应用程序提供了EC2 G2实例类型,这是一个 3D 图形实例,包含了 10 个 EC2 计算单位,其中有 8 个虚拟内核,频率为 2.5HZ,10GB 内存,50GB 存储和 1 个有 4G 内存的 NVIDIA GK104 GPU。

但是,有一个问题。客户设备必须总是具备良好的互联网连接,对于每秒 30 帧 720p 的流传输速率,Amazon 推荐 3Mbps 的连接带宽。如果应用程序脱机工作,那么客户端应用程序就要在本地处理各自的功能。

Amazon 还宣布了十一月份之后推出的多项服务改进

  • 自动识别版本——AppStream 现在可以检测出客户端创建所使用的 SDK 版本,并自动启动兼容的后端服务。这使 AppStream 和 SDK 可以不断发展,而无需升级客户端。
  • 支持 Mac 客户端——现在有一个 OSX SDK 可以用来开发运行在 Mac 上的客户端。
  • 改进客户端 SDK——客户端 SDK 经过改进,现在包含了对游戏控制器的支持。它们还提供了一个增强的面向键盘和触控事件的输入映射模型。
  • 简化入门体验——文档和打包模型经过改进,这样,用户可以快速建立并运行自己的第一个应用程序。

Amazon 对 AppStream 评价颇高,号称它可以使开发人员创建图形密集型应用程序,而与之匹配的轻量级客户端只有 5MB 大小:游戏、CAD、视频渲染。它还允许混合结构,应用程序可以部分运行在服务器上,部分运行在客户端上。CCP 的 Eve Online是一个大型多人游戏使用 AppStream 运行在 Amazon 上的案例。

查看英文原文:Amazon AppStream (GA) Apps Run on AWS and Stream to Devices around the World

AWS语言 & 开发