By john on Feb 26, 2009
The demo script for the Video Surveillance system we built for Mobile World Congress in Barcelona unfolds as follows.
Background: A centralized console shows six video feeds from cameras situated throughout a corporate campus. All feeds are active simultaneously, with each shown as a thumbnail. The system cycles through the feeds, expanding one at a time to highlight it.
Several security guards, each with a JavaFX handset, make their rounds throughout the campus. The handsets are GPS-enabled, and the app on the handset invokes the Java Location API (JSR 179) to determine its location, and broadcasts this back up to the desktop application over http (using javafx.io.http.HttpRequest), with the physical location of the phone encoded in the URL string.
Like the console, the handsets cycle through each video feed, and also display a map showing the location of each feed.
A map on the desktop shows the entire campus, with icons representing each guard wandering around the campus corresponding to the guard movements.
That's the backround. Now the action begins. An operater monitoring the main console observes a suspicious-looking truck pulling into the loading dock, as shown on one of the camera feeds. Three thugs jump out of the truck, grab crowbars and sledge hammers, and within ten seconds are able to break into the loading bay and make their way into the building, and start stealing servers and monitors and loading them into the truck.
Seeing all this, the operator sounds the alarm by clicking an alarm button on the console. Immediately each handset changes state and displays a bright red background screen, plays an audio message ("INTRUDER ALERT AT LOADING DOCK D"), while the video feed from the loading dock camera is simultaneously streamed to the phone.
The phone also shows a map of the area where the breakin occurs with a flashing red camera icon at the loading dock. This map can be zoomed with a tap of the stylus.
With the guards notified, the main console map shows all four guards converging at the loading dock area. The precise moment the first guard arrives, the video feeds (on both the console and the handset) show a security truck arriving, followed by the guard jumping out and making the arrest.
At this time the operator at the console cancels the alarm, whereby the phone plays another audio alert ("SITUATION UNDER CONTROL") and returns to its previous state of cycling through camera feeds.That's the demo scenario in a nutshell. Due to the nature of the demo and some constraints imposed by the conference environment, some aspects of the demo were simulated. But overall it was a good proof of concept showing a sophisticated media-rich JavaFX application running on both the desktop and the handsets.