Skip to content

Dialog Manager

Carsten Stocklöw edited this page Apr 27, 2018 · 4 revisions

Table of Contents

Black box description

Dialog manager: Dialog Manager is the main component for handling system dialogs. It (1) represents the whole system by providing different flavours of system menus, managing system reactivity and handling context-free user input, (2) assists the UI buses by acting as a representative for the framework supporting context-awareness & personalization and by providing user-specific dialog management, (3) provides persistency mechanism for dialogs, (4) provides a mechanisms for a user to edit UI related preferences profile. It is also responsible for offering a unified view of all services available on the platform and a method to search for specific services.

It provides a screen and enabling the user to directly access (see and modify) preferences related to user interaction parameters (see ont.profile.ui.preferences )

It enables different means of loading a main menu to the user: automatically during runtime (see ont.profile.ui.mainmenu ) and from local configuration file.

It adds persistency to the dialogues exchanged between application and users so even if system goes down those dialogues will not be lost.

When adding adaptation parameters to the UIRequests (arriving from the UICallers) it also adds most current user location to it (if it is up to date - since this iformation is constantly refreshed and has an expiration time that is configurable in DM) enabling follow me scenario (since this information is also used within ui bus strategy when determining best suited UI Handler.

Bundles

Artefact: Dialog Manger
Maven artefact org.universAAL.ui / ui.dm
Pax Composite bundle scan-composite:mvn:org.universAAL.ui/ui.dm/x.y.0/composite
Karaf Feature uAAL-UI.DM
Maven Site https://universaal.github.io/ui/ui.dm/index.html

Features

  • Handles system-wide dialogs:
    • Provides for navigation through available service classes based on user- and language-specific configuration files
    • Provides means for users to suspend and resume dialogs (see also the underlying mechanism in assisting UI buses)
    • Handles such user input that could not be assigned to any running dialog (the so-called context-free user input)
  • Manages system reactivity
    • Provides a database for associating service calls with situations
    • Subscribes to the context bus for all situations in the above database that are associated with actions
    • Upon occurrence of the above situations, constructs a service request from the associated action data and sends it to the service bus
  • Assists the UI bus
    • Enriches output events by adding the (personal and situational part of) adaptation parameters to them
    • Notifies the output bus to re-do match-making for the selection of the appropriate UI handler for any running dialog whenever relevant adaptation parameters change
    • Manages parallel dialogs for several users based on priority queues of published dialogs and takes care that only one dialog is presented to the user at each point in time
    • Provides mechanisms for suspending and resuming dialogs

Design decisions

Dialog Manager is the main (application-independent) component for handling system dialogs. It (1) represents the whole system by providing system menus (a unified view of all services available), possibilities to search for specific services, and by handling context-free user input (user input that cannot be assigned to any running dialog), and (2) assists the UI buses by (2.1) acting as a representative for the whole framework supporting context-awareness & personalization (i.e., the framework under the responsibility of the CM expert group), and by (2.2) providing user-specific management of dialogs initiated by different applications to protect the user against a mess of parallel dialogs.

Configuration

the configuration of the ui.dm is mainly done through java's system properties (by adding -D<property></property>=<value></value> to the commandline JVM start command, or by editing the system.properties file of the container); the properties dm looks for are:

ui.dm.finalizeWait:Wait period for a dialog before main menu is shown. in milliseconds, not recommended more than 500 milliseconds, e.g. 150
ui.dm.loadAllServices: to be used only for testing purposes, when set the DM will load and display all resitered profiles for InitialDialogServie.
the main configuration folder is called ui.dm and it may contain some configuration files:
main_menu_<userid></userid>[_<2letterLocale>].txt:old style main menu definition (see tutorial for more information about the format).
mainmenu_<userid></userid>[_<2letterLocale>].txt: profiling store of main menu items done through service calls.
persistency: folder containing the pending messages and pending messages for the user (the later in case of DM fail).