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
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
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