By Zach Skyles Owens
Just minutes ago at TechEd 2008 Developers in Orlando Dave Campbell, Technical Fellow, was on stage with Bill Gates doing the Data Platform demo which included a host of exciting Microsoft Technologies.
- SQL Server 2008 – Supports any data
- SQL Server Data Services (SSDS) – Quickly provisioning for unpredictable scale
- Microsoft Sync Framework – Keeping all data synchronized
Building this demo has been one of the most rewarding experiences in my career. Everyone involved has put in 110%.
When we set out to build this demo we spent a lot of time making sure that the architecture was something that we have heard customers asking for. Since SSDS is such a new piece of the Microsoft Data Platform going through this process was an interesting experience.
In this article I will quickly highlight the architecture of this application and describe why we made some of the architecture decisions.
This application was built around a fictitious company called Trey Research. Trey Research is a news agency that has launched a new strategy aimed at turning bloggers into paid journalists by paying them for their articles and photos. Bloggers from around the world submit articles and images through either a web application or Windows Mobile app. New analysts at Trey Research find the best articles and images for a given geographic area of interest, combine them into a story and sell them to companies like MSNBC; paying the content creators in the process.
Here is a high-level overview of the architecture.
SQL Server 2008 and WPF
So starting from the News Analyst WPF App and SQL Server 2008. We chose to use local SQL Server database connected to a WPF desktop application for a number of reasons including.
- High Performance of a Local Database
- Powerful Analytics of the SQL Server platform
- Ability to execute Spatial Queries to search for relevant content
- Storage of all content types including geo-tagged text and images
News Analysts at Trey Research can search for content with a power UI including Spatial and Time based queries. SQL Server uses powerful analytics on the back end to determine the target demographic for the content. Some of the exciting technologies being used are:
- FILESTREAM to store binary data
- New DateTimeOffset type used to store the date and time a photo was taken, which preserves time zone information
- Spatial queries and indexes which allow for the fast retrieval of geo-tagged data.
- SQL Server Reporting Services to provide rich visualization of analytical data.
SQL Server Data Services, Web Application and Mobile Device
All of this content is submitted via a web site or via a Windows Mobile application. The content submitted via the web site or mobile app are stored in SSDS. Their core competency is managing news content, not building Internet scale data centers. Trey Research decided to use SSDS as the data storage platform for a number of reasons:
- To quickly provision for the unpredictable scale of what is turning out to be a very popular web site
- The nature of news is that a large event can produce huge spikes in traffic, so they are relying on Microsoft’s global infrastructure and Service Level Agreements
- SSDS is acting as a Data Hub where web and mobile devices submit content
Microsoft Sync Framework
The final piece of magic in this application is the Microsoft Sync Framework. Sync is used to pull data down from SSDS into the local SQL Server database in addition to moving data from the mobile device into SSDS. The sync framework provides a powerful platform for dealing with things like conflict detection, etc.
As you can see there were a number of architecture decisions that had to be made. Trey Research is using many of the powerful features of the Microsoft Data Platform to quickly build this application. I’ll continue to post information about this demo.