A project combining Exchange + Azure + Tags called “Thor” is an open source project undertaken by the Minneapolis Cloud Computing User Group designed to be a mobile utility that allows friction free access to  schedules and scheduling services of Exchange.  Thor was developed as a way to educate the local user group on the Azure cloud while working on manageable real world problem. It is designed to be a real solution that showcases the power of cloud based solutions coupled with on premise software. As a result, Thor’s design takes into consideration, security, performance and manageability.

 

Scenarios:

  • Internal conference room scheduling – Ever have a person visit your office and you need a place to meet? You make a quick pass around the usual suspects looking for an open room. You find one but you’re not sure how long it’s open… Then you want to book it… but what’s the alias? Thor makes it easy.
  • External Schedule of Events for a Conference – Provides people a live calendar of events direct to their mobile phone without the need to create a new web site or management application.
  • Public Conference room Schedules – Allow Anonymous users to access room schedules securely without needing direct access to exchange.

 

Benefits of Thor:

  • No need for expensive LCD monitors for your conference rooms…
  • No need to remember conference room alias to lookup a schedule…
  • No need to open outlook to book a room or resource…

 

Thor’s Technology:

  • Microsoft Tag – Thor’s addressing layer. You can get at calendars via URL but tag makes it easy
  • Windows Azure Web – Presentation layer that takes advantage of ASP.NET MVC and RIA services for the client presentation layer and Silverlight as the configuration and administration presentation layer
  • Windows Azure Compute – The compute layer supports a calendar provider model. Thor ships with providers for Exchange 2007 Interop, Exchange 2010 Interop and Exchange Web Services for cloud hosted exchange instances! The compute layer caches the calendars so exchange is not accessed in public calendar modes! The compute layer also addresses scenarios where a proxy is required to book appointments
  • Azure Storage – Azure storage is the calendar caching layer for Thor as well as logging repository
  • Exchange 2010 – Exchange is used as an on and off premise calendaring service for Thor!
  • PowerShell – Thor also includes PowerShell scripts required to manage and maintain the service

 

Architecture Notes:

  • Thor Presentation The Web role is responsible for UX rendering for both the calendar services as well as Thor’s administrative interface. When a user requests a calendar or administrative services, authentication, if required, is performed against Exchange services. The calendar services UX leverages ASP.NET MVC for display segmentation and RIA services for advanced data binding. The information rendered on the calendars is not pulled directly from Exchange but from an Azure Storage table cache. This helps firewall the Exchange server in public use scenarios as well as address potential performance issues with potentially thousands of users requesting the same calendar.

    The administrative pages for Thor are implemented in Silverlight. The administrative UX binds to a set of tables in Azure storage that maintain configuration settings for each Thor instance deployed. These tables can be accessed using a storage utility but some of the fields are encrypted. The Azure tables are also used by Thor to store application logging data.

  • Thor Worker The Worker role  does most of the Exchange Server interaction. Thor was designed around a provider model so that it could be extended to support multiple calendaring providers. Thor ships with providers for Exchange 2007, 2010 and native Web Services. The worker role uses these providers to access Exchange calendars using a service account configured by the administrator. Once authentication has been successful, the worker role generates the calendar cache in Azure storage and maintains synchronization with the Exchange Server as calendar updates are made.

 

Download Thor free at CodePlex here: http://thor.codeplex.com/releases/view/40406