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