Before we
dig into the details, we should start with the “Hello, world!” of the
Backplane.
•On the upper left side of the display we have a basic
application built with XHTML and XForms that allows the user to specify his address and a radius of concern from that
location.
•When the user hits a search button, results are
obtained, in this case, how many sushi restaurants there are within range.
•The user expects this data to seamlessly be integrated
into the user experience of the currently running web application.
•But the returned search list is one-dimensional, so
presenting it like a set of Google or Yahoo search results does not produce the richest user
experience. Since we know the list
includes geographic information appropriate
for two-dimensional display against the backdrop of a map, it makes sense to involve another component for that purpose.
•In this case, the master controller for the application
is perhaps expressed in SCXML, and it detects the availability of the restaurant list, and changes the
application state to include a map component.
•In this state, the map component shows the list of
search results as bubble points against the backdrop of a map of the region specified by the user.
•The user may then choose a particular bubble point,
which drives further behavior in either a third component or as part of the first to present restaurant details such as
its address or a link to its menu and prices.
One
important observation to be made about this application is that data obtained
from the web is used within the application
to create a dynamic, rich user experience. The application is not replaced by another application containing the additional data. In other words, the application avoids the
unwieldy user experience of a page refresh
that is characteristic of older web applications.
The key
idea of this slide, though, is this: although this application is simple
enough to stitch together by hand, i.e. by
directly mashing up the components using detailed knowledge of the data
schemas of each, it is also possible to
begin envisioning a less ad hoc approach in which the components’ contracts
with the outside world are specified and
less dependent on the internal workings of other specific components. This
makes solutions that are less brittle and more reusable in other applications.