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