Anwendungen als Dienste


In jAugment sind alle Anwendungen eigentlich ein oder mehrere (JINI-)Dienste. Dienste sind fähig sich gegenseitig zu finden und zu nutzen. So wird z.B. der Karten-Dienst besser, wernn er einen GPS-Dienst im lokalen Netz findet und noch besser, wenn es einen Kompass-Dienst, welcher einen GPS-Dienst erweitert giebt.
Dienste sind dafür gemacht, laufen zu bleiben. Normale Anwendungen nicht. Ein Dienst bracuht nicht die ganze Zeit über Ressourcen zu verwenden. Während er nur auf Anfragen wartet, kann der RMID ihn auf Platte schreiben und bei einer Anfrage wieder herstellen. Dies funktioniert sogar über Neu-Starts hinweg.
Ein Dienst braucht keine Represnetation zu haben. Der GPS-Diens hat keine. Aber er wird durch den Karten-Dienst benutzt, der mindestens eine hat. Man kann weitere als neue Attribute anhängen und sogar die bestehende abnehmen.
Diens ist ein anderer grosser Unterschied zwischen Anwendungen und Diesten.
Eine Anwendung ist üblicherweise dafür gedacht, von einem Benutzer durch ein Nutzer-Interface gleichzeitig benutzt zu werden. Ein Dienst hebt diese Beschränkungen auf und hält alle Representationen synchronisiert. (z.B. wenn ein User eine Datei in eine Playlist vie Spracheingabe über die TextUI einfügt, erscheint sie sofort in der SwingUI auf dem Schirm.)