Windows Azure 解决方案系列: 开发拓展搜索-救援应用程序,拯救更多溺水者

公告:本博客为微软云计算中文博客的镜像博客。部分文章因为博客兼容性问题,会影响阅读体验。如遇此情况,请访问原博客


为了降低居高不下的捕鱼业坠海死亡率, Royal National Lifeboat Institution 与 Active Web Solutions (AWS) 签订协议来创建一个自动化的海上安全应用程序。 AWS 开发了一个基于位置的服务基础设施,代号" GeoPoint",它能将位置数据传递给中央追踪和报警系统。 AWS 使用GeoPoint来构建 MOB Guardian,为渔船设计的搜索-救援应用程序。为了使 GeoPoint能运用于更多场景, AWS迁移至了 Windows Azure™ 平台。将 GeoPoint托管于微软数据中心的云中, AWS获得了巨大的可拓展性,更丰富的功能,更低的基础设施花费。 AWS 能够迅速的将应用程序转换成托管服务,从而避免构建与管理数据中心的花费。 AWS 同时具有了弹性与拓展性,使得 GeoPoint能够投放于更大的市场。

场景:

捕鱼是一个高危业务。 权威统计,全世界每年有24000名船员溺水而亡。Royal National Lifeboat Institution (RNLI)统计表明,在英国附近海域,从1996年至2007年有350名船员丧生。这些数据还不包括游艇和非捕鱼船引起的溺亡事件。

RNLI 想要创建一个自动化的报警系统来改变现状,使得渔船与船员能够实时的与其服务取得联系。因此,在2006年, RNLI 聘用Active Web Solutions (AWS),一家 Microsoft® Gold Certified Partner 和软件开发商,来创建自动化系统。 AWS创建了一个基于位置的服务基础设施,代号“ GeoPoint”, 它能将位置数据传递给中央追踪和报警系统。将其与大量的服务支持以及其他系统相结合,使其适用于位置感知的场景。使用 GeoPoint作为基础, AWS 继而在2008年构建了 MOB Guardian, 一个为渔船设计的搜索-救援应用程序 , (MOB 代表"man overboard",人员落水).。英国捕鱼业已逐渐开始采用它。

以下是 MOB Guardian的工作方式: 船员会装备一个个人安全装置,能与渔船上的一个设备通过无线电保持联系。当船员落水时,无线电通信会被切断,便会自动的触发警报,同时通过卫星发送一个信号至搜索-救援服务。陆上警报包括,溺水者的位置与详细信息,这些通常都在2分钟内完成,所以紧急服务便会开始救援工作。

Richard ProdgerActive Web Solutions技术总监我们的原始架构支持10000艘渔船,但是Windows Azure 平台使得我们能够支持数以千计甚至百万计的渔船,并且没有任何资本支出。

在它最初运作的18月内, MOB Guardian已经拯救了9条生命。 AWS 与 RNLI签订了一个10年的合约,来托管MOB Guardian后台基础设施。-大约15台服务器,起初为了提供快速恢复的能力,而分布在英国的2个数据中心之中。随着越来越多人采用 MOB Guardian, AWS所托管的基础设施马上便会到达渔船监控的数量上限。

“我们当初的基础设施可以处理大约10000艘渔船,但是我们希望能够将 MOB Guardian提供给英国的500,000 艘游艇,以及全世界的数百万海洋用户使用。” Richard Anscombe解释道, Active Web Solutions市场销售总监。 “那些承担不起 MOB Guardian 装置的小船,也可以使用手机来作为发送器。后台基础设施导致了可拓展性的限制。我们是只有35名员工的小公司,我们承担不起MOB Guardian的高额基础设施费用。”

当 AWS开始考虑如何拓展 MOB Guardian时, 它意识到它需要维持对现有代码的投资,以及用户对于现有的MOB Guardian硬件的投资。 “我们不能重新安装 正在使用的MOB Guardian装置 ,也不能修改渔船与服务之间的通信协议。” Richard Prodger说道, Active Web Solutions技术总监 “我们也没有时间和预算来重写桌面用户接口,后台服务和数据库。无论如何拓展解决方案都需要能支持原有的投资。 ”

最后, RNLI 要保持低价,鼓励更多的船员使用MOB Guardian,并将服务拓展至游艇市场。

解决方案:

AWS 在开发MOB Guardian时便已与微软密切合作,应用程序的主要部件是基于微软软件的- Windows Server® 2003操作系统以及微软 SQL Server® 2005 数据库软件-并用Microsoft Visual Studio® 开发系统进行开发。微软将 Windows Azure™ 平台告知了AWS,另外,当平台可用时,它将非常适合 MOB Guardian 以及其他 GeoPoint 应用程序。

Windows Azure 平台式一个云计算服务平台,托管于微软数据中心,它提供了计算、存储、通信以及认证服务,来创建可拓展的,现收现付的互联网服务。它包括Windows Azure,一个云服务操作系统;微软 SQL Azure™ 云数据库服务; Service Bus 以及 Access Control Service 组件;以及在线 table 和blob storage.

基于云的系统

2008年8月,当微软发布了 Windows Azure平台的早期版本时, AWS在Windows Azure上构建了一个基于位置的基础设施原型。 2009年晚些时候, AWS完成了 Windows Azure–托管的 GeoPoint,,将它作为一个基于位置的服务,它能用于任何类型的搜索-救援环境。

GeoPoint运行于微软数据中心的Windows Azure 平台之上,而不是像上个迭代版本中运行于基于Windows Server 的服务器上。对应的,紧急警报不再通过卫星传输至AWS的物理服务器上,而是通过 Simple Mail Transfer Protocol (SMTP) 传输给卫星,之后投递至消息队列中。多个服务实例读取信息队列,处理信息,并将数据传输至 Windows Azure table storage。紧急警报之后通过Service Bus转达至位于搜索-救援中心的最终用户监测应用程序。

AWS 管理者也使用 Service Bus ,从一个中央网络系统(NMS)来管理 Windows Azure 服务。他们可以很容易的看到哪些服务正在运行,当前的服务性能,每个运行的服务有多少个实例。提升性能表现只需通过NMS提供额外的Windows Azure计算能力,之后只要查看服务性能的提升水平便可。

AWS 使用另一个Windows Azure平台开发者服务, Access Control Service,使得在调试与监测时,提供在GeoPoint和大量非云端应用程序之间高安全性的通信。Access Control Service 提供了一个简单的方法来通过标准化的认证提供商,管理认证以及应用程序和服务的授权。 授权决策可以从应用程序中抽离出来,并被放置在一套转化流入的安全声明为应用程序能理解的声明的规则之中。

GeoPoint 基于位置的服务平台使用 Service Bus 来传递警告

迅速迁移至云端

对于 AWS,实现 GeoPoint 主要是一个迁移工作。开发者只需些少量的代码,并能够将服务导向的架构的现有技能转化成适用于 Windows Azure 平台的。 “通过一些简单的指导,以及使用微软开发工具,在几周之内便将应用程序的主体从我们的数据中心迁移至Windows Azure平台。 ” Prodger 说道 “从原始架构到 Windows Azure 平台的转换只包括一些用来将信息路由至Service Bus的网络配置更改。”

前台应用程序无需更改

Service Bus的一个重要优势是消除了修改桌面应用程序(为了RNLI搜索-救援运营团队能与GeoPoint交互)的需求。 在原始策划中,客户端应用程序通过后台服务器来观察当前是否有警告。随着向 Windows Azure平台的迁移, AWS想用一个智能的客户端来取代推送消息,但这需要重新设计应用程序,以及许多开发工作。 Prodger 解释道 “使用Service Bus来替代原有方案,我们能够将信息直接从Windoss Azure平台路由至客户端应用程序,避免了跨防火墙的信息推送在技术上的难点。”

跨防火墙与非云端数据库连接

使用 Service Bus的第二个优点是连接基于云的 GeoPoint 和非云端数据库,而不在互联网上暴露数据。举例来说,捕鱼船员的认证信息保存在一个高安全性和机密的数据库内,只能被搜索-救援的操作所访问。为了使数据对于 GeoPoint安全可用, AWS 开发了一个名为SocketShifter的附加项。 它自动化的在任意TCP/IP端点之间建立了连接,处理防火墙间的任何流入流出数据。该机制使得从云端可以访问非云端的 SQL Server 数据库。

Windows Azure 解决方案系列: 开发拓展搜索-救援应用程序,拯救更多溺水者

深入诊断

Service Bus的第三大优点是能够为它托管的应用程序构建复杂而精密的诊断工具。“一旦你的应用程序运行在微软数据中心而不是你自己的数据中,在粒度级别的故障检测就极为困难。” Prodger 说道。“我们需要一个机制来给予我们那一级别的控制。”

在微软 .NET 框架中,通过使用.NET TraceListener特性来实现这些目的。追踪是调试的一种形式,它使得开发者能够追踪应用程序的运行情况。一个追踪监听器收集、存储以及路由追踪信息。 AWS 使用 Service Bus 和 Access Control Service来在云端构建 TraceListener,并用来监测和诊断GeoPoint的基础设施事务。如果在微软数据中心的某台GeoPoint服务器出错,AWS能够准确知道是哪里出的问题。

之后为了修复这个问题,需要控制正运行于微软数据中心的GeoPoint应用程序, AWS构建了一个定制的 Simple Network Management Protocol (SNMP) 代理。此代理通过Service Bus连接至一个AWS管理接口,AWS管理员可以通过其监测和管理基于Windows Azure的应用程序。“我可以做在我的办公椅上,使用现有的网络管理工具来查看云端的情况,或控制我们的应用程序。” Prodger 说道。 “如果没有Service Bus,这将变得更困难,并且需要使用更多的资金,而Service Bus提供了一个路由信息以及穿越防火墙的方法。因为此代理是基于 SNMP标准的,我们可以使用任何网络管理工具来监测我们的应用程序。”

很快,,AWS 计划为GeoPoint创建一个定制的Microsoft System Center Operations Manager 2007 管理包,它可以使用熟悉的 System Center Operations Manager ,就像她的中央监测控制台。

好处:

通过将海洋安全的应用程序从受限于物理服务器拓展性的非云端基础设施转变至互联网服务,AWS 便移除了市场增长的限制。—并提供了几个新功能。AWS避免了需要数百万美元的数据服务器投资,通过使用 Service Bus,免去了3到6个月的部署时间。通过高可拓展性的平台,AWS可以提供卓越的性能表现,无论系统正在监测多少人和渔船。

Richard ProdgerActive Web Solutions 技术总监我可以做在我的办公椅上,使用现有的网络管理工具来查看云端的情况,或控制我们的应用程序。如果没有Service Bus,这将变得更困难,并且需要使用更多的资金。

巨大的可拓展性

将GeoPoint迁移至Windows Azure平台,对于AWS和RNLI最有价值的优点是拓展应用程序的便捷性。“我们的原始架构支持10000艘渔船,但是Windows Azure 平台使得我们能够支持数以千计甚至百万计的渔船,并且没有任何资本支出。” Prodger 说道 “要拓展应用程序,我们只需通过Windows Azure平台端口,简单的提供更多的计算能力,以及增加信息队列。”

事实上,通过 Windows Azure平台和开发者服务, AWS 已经能够将面向渔船的MOB Guardian 应用程序转变为更广泛的地理定位服务平台。它有着许多延伸的功能,并能吸引到许多用户。

“如果有人在北太平洋坠海,或者科罗拉多大峡谷的登山者遭遇雪崩, GeoPoint都可以立即将警报信息路由至合适的搜索-救援机构。” Prodger 说道。 “通过 Service Bus,,我们可以处理各种请求与信息。”

新的市场机遇

AWS 可以将技术投放至游艇以及其他市场。举例来说,AWS计划构建一个Web应用程序,使得乘船者在假期时也能与GeoPoint互动,使得旅程更加安全。举例来说,水手和乘快艇者,可能通过Facebook来访问 GeoPoint,来查看地图上他们在哪里,或者记录他们的航程。 当然,如果他们落水, GeoPoint也会生成救援信息,但是AWS还能提供其他额外服务。“通过Access Control Service,对于这样一个场景,我们不必强迫用户创建另外一套验证凭证。” Prodger 说道。 “我们可以使用Facebook凭证来作为他们的GeoPoint ID。”

更低的基础设施与管理花费

通过Windows Azure,AWS避免了拓展物理非云端基础设施需要的高额资本支出。 “我们无需担心购买、管理、升级服务器,便有了一个更大的服务器基础设施。” Prodger 说道。 “我们本需要投资一百万美元来拓展物理基础设施,才能使得我们的方案成为一个全球性的方案。”

自从将服务器管理任务交由微软管理,公司也同样省去了高额的IT职员支出。“微软处理了所有操作系统的更新与升级,并且是在没有停工的情况下。” Prodger 说道。

AWS也节省了互联网服务供应商的费用,现在只需使用了多少Windows Azure平台资源,便支付多少费用。在这方面,AWS能够将基础设施变成一个可变成本,从而改善了盈利情况。 “我们将每月固定的托管费用,转变成按使用情况可变的花费,” Anscombe 说道, “我们现在只需为所使用的CPU,存储以及网络资源付费。” 相对的,通过降低内部成本, AWS 在保证盈利的情况下为那些价格敏感的用户提供较低的使用费。

更快的上市时间

AWS 通过Windows Azure平台开发者服务削减了开发成本。 “通过使用Service Bus和 Access Control Service免去了我们3到6个月的部署时间。” Prodger 说道 “更重要的是,如果没有这些服务,我们不能构建一个如此具有弹性的解决方案。”

公司在增强GeoPoint的同时,继续节省开发成本,以及实现更快的上市时间。“统一而灵活的通信和验证框架,消除了对于每一个场景构建大量点对点的解决方案的需求。” Prodger 补充道。

性能改善

通过 Windows Azure 平台, AWS 的GeoPoint有着巨大的可拓展性。“应用程序的性能受限于很多因素,” Prodger 说道。 “如果信息负荷增加,我们会创建新的应用程序实例。 Windows Azure 平台会动态的应付这些拓展变化,而在其他平台很难做到这些。”

本文翻译自:

http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000005892

你可能感兴趣的:(windows)