The Age of the Train
Over the last few weeks, I’ve been part of a team from Microsoft, Conchango and National Rail Enquiries building a proof of concept. On Wednesday 1 October, at the TechNet event in London at which Steve Ballmer spoke, we showed a live demo of some of what we had built in the three week proof of concept. The concept we proved is the use of National Rail Enquiries services in multiple channels. National Rail Enquiries already have a very popular Vista gadget available that allows you to see live train departure information on your desktop. Prior to starting the proof of concept, we held a two day architectural workshop to establish what services and applications rail users need to make their experience of using trains even better. The priority sample applications were an Outlook Add-In, a Windows Mobile application, a new way of presenting live train information on the web and an internal dashboard application. Those of you who attended the TechNet event on Wednesday will have seen the first three of these applications in action.
The Outlook Add-In enables users to book travel time. Most of us have appointments in our Outlook calendar. Some of these appointments require travel. The add-in lets you select the appointment and plan your train journey to and from the appointment. When you select the trains you want to take, it books time in your diary automatically – in the detail of this travel time there is information about the selected journey and an earlier and later journey should everything not run to plan. It’s simply formatted so that it reads well on your mobile device. It also links directly to the live train information on the web.
Speaking of the web, we set out to build something that would enable you to get the information you want quickly and as intuitively as possible. So, we settled on using Silverlight using DeepZoom to navigate around Virtual Earth imagery, on top of which we overlay track and train information. You can zoom in to your chosen station and get station information, see the trains in the area (blue for on time, red for late) and get information on them, too. And, even better than that, the train positions are updated so they move. Here’s a peek at what it looks like:
The map can be embedded in the National Rail Enquiries site and there’s a button that allows you to expand it to a full screen view (which is the view I’ve used above.) Given the popularity of the National Rail Enquiries site, scalability was a primary consideration. When you think that there are in the region of half a million visits per day to the site and thousands of trains, you can see it would be easy to design an application that would not scale. We used a state service which holds a model of the train network on the server – thus minimising the network traffic that would result from this model being held on the client given that every client would have to get updates from the server. This way a client only gets the information it needs. The other thing to note about the service is that it has SQL Server 2008 at its heart – we made usage of the geospatial capabilities to store information about tracks and stations.
The last application we demoed was a mobile phone application that enables you to check what time the next train leaves, if it’s on time, when it’s due to arrive and what platform it’s leaving from. Given that this is a mobile application, it’s written using the .NET Compact Framework 3.5. It takes advantage of local storage (for instance the list of stations is held on the device) and features of the compact framework such as multithreading while using a web service to get live information.
All in all, I think this is a great demonstration of how your architecture can cover multiple delivery channels taking advantage of different devices. I’ve already been using the mobile application (someone needs to test it) – and my journeys have involved less waiting in stations as a result.