Thursday, December 9, 2010

CloudApp Part 1: Business Purpose & Architecture

A week or 2 ago I mentioned building my first app in the cloud and that I'd be blogging about some of the challenges this had posed. Well, I thought a good start (like in any project) would be to provide an overview of the business purpose the app was trying to fulfil, and the architecture we were proposing to employ.

Purpose

Although we started with a very lofty goal of providing a resource management application to help manage the resources within Chamonix, we decided that our first version should focus on capturing information about our people - things like basic resource profile information (name, office etc), as well as more interesting things like skills and education. This was a basic need for our sales guys to be able to know who had experience in what, whether it be technical, business, or industry oriented. Our plans were to build this basic data capture capability, and over time to flesh this out with further capabilities such as resource planning (potentially based on skills and availability).

Obviously a very important secondary goal for this exercise was to explore building apps in the cloud and get a better grip on some of the potential challenges - as well as some of the opportunities this presents. One of those opportunities (that we're still in the process of evolving) was the ability to allow users to sign in to our app using federated identity - eg Google, Facebook, or Windows Live. And of course while we were at it, if possible, to pull in information from their profile, such as their profile picture. As you'll see as we go along, this is getting increasingly easier, but also raises its own considerations.

Architecture

So, this is the high-level technology architecture we're using:
  • Data Store: SQL Server -> SQL Azure + Azure Storage
  • Data Access: Entity Framework 4.0
  • Business: WCF RIA Services
  • Presentation: ASP.NET 4.0
  • Authentication + Authorisation: Forms -> Azure Access Control Service
  • Hosting: IIS -> Azure Web Role
There are a few things to note here. Firstly, I've indicated roughly where we've made changes to the app in order to deploy it to the cloud. Secondly... Entity Framework 4.0 + WCF RIA Services + ASP.NET isn't such a common combination, but I wanted to try it out. You'll see my observations on the results in a future post...

Next time I'll get into some of the fun of building the parts of this app.

No comments:

Post a Comment