Applications as services
In jAugment all applications are actually one or more (JINI-)services. Services
are able to find and use each other. Thus the Map-service functions better
if a GPS-service is available in the local network and even better is there
is a Compass-service extending a GPS-service.
Services are meant to keep running. Conventional applications are not. A
service does not need to use ressources all the time to do this. While it
only waits for incomming requests it can use RMID to be suspended to disk
and waked up automatically if a new request comes in. This works even across
restarts.
A service does not need to have a representation. The GPS-service has none.
However it is used by the Map-service wich has at least one and you can atach
a new representation to it (or take one away).
This is another major difference between services and applications.
An application is usually meant to be used by one user through one user-interface.
A service can lifts both limitations and should keep all representation in
sync with it's current state. (e.g. if the user adds a file to a playlist
in the media-player in the TextUI via voice it shall apear in the SwingUI
on the screen.)