Now that the Windows Azure Architecture Guide – Part 2 is “done” (Done = content is complete and production is taking place. Production = index, covers, PDF conversion, etc), our team is ready for the next adventure.
Our fictitious ISV, Tailspin, is very innovative and wants to stay on the latest and greatest. Now they want to extend their flagship application: Tailspin Surveys, to mobile users. The essential idea being to allow its customers (Adatum, Fabrikam, etc) to publish surveys to people with Windows Phone 7 devices, so they can capture information from the field.
This is a “mobile front-end” interacting with a “cloud backend” scenario.
Note: Tailspin backend is mostly covered in the Windows Azure Guide, but we will extend it to support new user stories that are specific to the mobile client. So expect a different version included in the new guide.
Detailed scenario (hidden agenda items in red)
TailSpin: the “SaaS” ISV (this is covered in WAAG Part 2)
- Develops a multitenant “survey as a service” for a wide range of companies (with “Big IT” and with “Small IT”)
- Hosts the application on Windows Azure (service endpoint for WP7 app to interact: REST? SOAP? Chunky? Chatty?)
- Develops a WP7 application for “surveyors” (people taking surveys) (packaging the app)
- Publishes the WP7 application to the Application Marketplace (Publishing the app, certification process, versions, trials and betas)
Fabrikam & Adatum (companies subscribing to TailSpin’s service)
- (Self) design and launch surveys using TailSpin’s app (surveys now will have a target geography, used for “get surveys near me”)
- Waits for collected information
- Browses and analyzes results (added data-points captured by the phone: geo-location, voice, pictures, barcodes)
People with WP7: “surveyors”
- Own a WP7 device (browse the Tailspin mobile website, download the app from the Application Marketplace)
- They “work from home”
- They subscribe to surveys that are targeted to the place they are (location based search, like “Surveys 40 miles from Redmond”)
- They are notified of new surveys available that match their subscription criteria (push notifications)
- They complete the surveys (UI design, app state, connectivity management, sending results back to the service-> service design, authenticating, being a “good citizen app”, resource management like battery levels)
In this scenario, the “surveyors” could answer for themselves, but our current preference would be that they’ll interview others or would provide multiple answers (think someone surveying homes or traffic patterns in different places or someone going from home to home in a neighborhood collecting information).
You can imagine a mechanism were there’s compensation for surveyors from the companies that submit the survey: Adatum could pay for every “x submitted surveys” or there might even be a “coupon” system: “every 10 surveys you get a discount coupon for the supermarket”.
As usual, the surveys application is just an excuse to discuss the design patterns behind the solution (all the red things above). The entire app will be functionally incomplete, but technically sound.
The current (draft) structure for the guide is the following:
Feedback of course, is greatly welcome!