Network
    Places:
Dynamic content
Example of dynamic content using Mathematica.

[Up: Network Places] [Back: Distributed Databases]

The World Wide Web was designed with the idea one page equals one file. That is, each page of information on the Web corresponds to a static, unchanging file. Of course, the introduction of CGI, Java, server push, and other technologies removes this limitation. Another way to provide dynamic content is with MOO.

Many MOOs have already been programmed to handle Web requests; the AstroVR MOO Web Core is one freely available example. Dynamic content can be handled in a number of ways. In the example at the top of this page, MOO objects decide how to display themselves, and the user can 'move around' simply by following links.

Programming forms in MOO is very straightforward; in one Web system I designed, objects which service the forms receive a list of {parameter name, value} pairs indicating the returned data. The object itself doesn't have to do any parsing, and in fact doesn't even need to know it was accessed through the Web.

Example of dynamic content using Mathematica.

Because the MOO can access other network servers server-side processes, additional content can be imported. In the example above, users enter an equation to be graphed, the server forks the request to a Mathematica process, and then retrieves and displays the resulting image. All this takes place in the few seconds needed for the Web page to load, so the user is blissfully unaware of all the work taking place behind the scenes.

AstroVR uses similar techniques to give astronomers convenient access to image repositories. For example, the researcher can enter coordinates in whatever system is convenient (or even just give the name of a nearby celestial object, whose coordinates are then looked up in another online database). Then these coordinates are translated into the coordinate system used by the particular image database being accessed, and the desired image(s) obtained. In this way, several services may be integrated, or functionality added to an existing service.

Although all of these objectives can also be accomplished in other ways, for example with special-purpose CGI scripts, the MOO system has at least two advantages. One is that -- thanks to its OO paradigm -- the low-level code for dealing with these services need be written only once. For example, once the code to obtain a Mathematica image has been written, any service in the MOO can make use of it. Another is that all of these services exist in one place, one "virtual reality," to be intermixed or interacted with at will. You can pick up a database and carry it with you to your next (virtual) conference meeting, plug it into the (virtual) slide projector, and go.



[Up: Network Places] [Back: Distributed Databases]