Introduction
Amber Alerts is a system developed in 1996 for alerting the public via television, digital signage, radio and recently some internet outlets of child abductions or missing children in the U.S. . To date, 9 other countries have adopted a similar system, however the speed at which the notifications get to the public seems antiquated or behind the times.
Late last year, I developed Find Amber for Windows Phone which used Azure features as a development practice. The app has seen some success and there is a need to take it to the next level in order to increase visibility of these important alerts.

Current Architecture
Find Amber, as mentioned above, does take advantage of Azure now in the way of 2 worker roles, a web role and SQL.
The worker roles are responsible for downloading the data and sending notifications to the devices. ASP.NET Web API runs on the web roles and serves the RESTful API for the Windows Phone client, while all the data resides in the SQL Azure instance.
A pretty solid offering, but the maintenance of the multiple roles has been a task for updates and there are platforms I want to move the app to. This is where Azure Mobile Services and Azure Websites comes in.
Future Architecture
Mobile Services will be put in place to serve as the RESTful API and as a part of that it also offers Scheduler by which automated scripts will be run to call a node.js service running on a Mobile Website to aggregate and load the data.
When a new record is added, push notifications will be sent to the client applications using the PUSH feature of Mobile Services.
Clients supported:
- Windows Phone 7, 8
- Windows 8
- iOS
- Android
- Facebook Application
- ASP.NET Single Page Application
Android and iOS clients will be built using Icenium, a cross platform development tool from Telerik which runs PhoneGap under the covers.
All of the applications will take full advantage of the REST API provided by Mobile Services, Push Notifications, Social sharing (where applicable).
Points of Interest
Some takeaways of the project I would like for the readers/watchers here is to show not only how to take advantage of a cloud based application, but also see how building a reusable API allows for any application to be put on to any mobile OS or web with little effort.
Why Azure?
The application already uses Azure, but why? Scalability, performance! In the event of a tragedy I see that solution like natural disasters, child abductions, or some other horrific event. We as a society need to be able to get the notifications to the public as fast as possible without delay or excuse of "too much traffic".
With a solution like I am proposing here, digital signage could even be added to take advantage of the REST API. With a simple slider, the back scales as we need to meet the demand. We would never have the excuse of we were over loaded in the server room. Save a life, move the slider!
History
04/29/2013 - Project Scope / Description
Shayne Boyer aka TattooCoder, has been developing Microsoft based solutions for the last 15 years. Currently working as a Solutions Architect focused on Services Oriented Architecture and in his spare time runs the Orlando Windows Phone and Windows 8 User Group. He is a passionate developer and loves to talk about his craft, teach and also learn from others.
- MCSD .NET
- Telerik MVP
- Orlando Windows Phone & Metro User Group Founder (@OrlandoWPUG)
- INETA Speaker
- DZone.com MVB