Micro Reader

Tuesday, March 6, 2007

Building The Tour Tracker, part 1

This post will describe how the Adobe Tour Tracker was built. I'll break it into a couple of parts: the overall system architecture and the design of the Flex application itself. First, the overall architecture:

Overview
The Tracker is a Adobe Flex application built using Flex Builder 2.01. Thus it is in reality a Flash application from the user's point of view and will run on any system that has Flash Player 9 installed. Flash Player 9 is required because newer applications built with Flex Builder are all ActionScript 3.0 and version 9 was the first player to support ActionScript 3.

In addition to the Tracker itself, there are a number of server-side components that make up the complete solution:

- Flex Data Services: This Adobe server product provides dead-simple server support for Flex applications. In this case, I use it to multi-cast data changes to all active Trackers. Those changes include new play-by-play messages from Velonews, new GPS-tagged photos that have been posted by the photographer, new GPS-tagged videos that have been uploaded by the production crew, and new GPS information for each rider/car. In addition, it provides a small amount of state data by recording if and when a given day's race has started.

- Akamai Video/Audio Streaming: This is a cluster of servers that provide the live video and audio streams to all of the Trackers. Each Tracker connects to the cluster directly. The servers are using Adobe Flash Media Servers to stream the video and audio data.

- Flickr Photo Servers: As the race photographer takes GPS-tagged photos of the race, the photos are uploaded to a Flickr Pro account. The Tracker accesses this account directly when it starts up to find out about old photos, and the FDS server (above) accesses the account regularily to look for new photos. When the FDS server discovers a new photo, it broadcasts details about the photo to all running Trackers.

- Portent Web Servers: The Tracker itself (ie, the SWF file) is hosted on a cluster of Portent web servers. In addition, a great deal of XML data is hosted there and is accessed by the Tracker at runtime. That includes information about the tour itself (times, courses, teams, riders) and daily updates (standings, video clips, stage results).

- Yahoo Maps: Not much to say here. Our map data for the overhead view is provided by Yahoo and it's imaging partners.

- Akamai Web Servers: Archived video clips (whose location is recorded in the XML files mentioned above) are actually stored on a cluster of Akamai servers. They are servered as progressive FLV's directly to the Tracker when users view video clips.

So, that is the highest level of Tracker design. For more information about the FDS solution, see http://coenraets.org/blog/2007/02/building-the-back-end-of-the-tour-of-california-%e2%80%9ctour-tracker%e2%80%9d-using-flex-data-services/ where the FDS engineer describes what he had to do to provide the Tracker with real-time updates.

Next, some details...

0 Comments:

Post a Comment



<< Home


 
Free Hit Counters