Table of Contents
Wiglaf is an interface for command reception and event generation. Wiglaf graphical user interfaces are meant to be used by a wide variety of individuals, so that they may carry out tasks and report events in their vicinity.
There are currently two classes of Wiglaf interfaces, tablet and PDA. The tablet interface, displayed in Figure 1, is designed to be run on a tablet, laptop, desktop computer, or mobile data terminal. The PDA interface, shown in Figure 2, is designed to be compact for display on a PDA. It, however, is not currently run on actual PDAs due to technological limitations. The primary difficulty is that only early versions of Java are presently available on PDAs, and Wiglaf requires Java 1.4. (It should be noted that another STILT interface, not developed for this project, is available on PDAs through a web browser.) Tablet interfaces will most likely be used by responders in the field with mobile PCs or by responders who are managing others, while PDAs will probably be used by responders in the field who are performing actionable tasks.
Using Wiglaf, individuals may receive either commands or messages. When a command is received, the user must report her status in completing it. Specifically, the user must indicate when the command has been started, paused, completed successfully, or completed unsuccessfully.
Additionally, Wiglaf allows users to act as human sensors." Included in the interface is an Event Injection panel. This can be seen on the right-hand side of Figure 1, and can be accessed in the "Report Events" tab of a PDA interface. Using the "Event Injection" panel, users may report events from their environment. These events and the typical event attributes are predefined in formal specifications.
Event information is stored in tree form in the "Event Injection" panel. To report an event, a user simply navigates to a leaf node of this tree and then clicks the "Send" button. For example, to report a tractor trailor accident, the user would select "Traffic Accident -> Semi -> Chemical Payload." This combination might be specified and reported as a ChemicalSpillEvent. Futhermore, for some event types, additional information might be requested, and text boxes or combo boxes might appear for user input. The user can enter the requested information or leave the fields blank.
Finally, Wiglaf displays the current threat advisory according to the US Department of Homeland Security. This information is taken from the DHS web site each time Wiglaf is started.
Several steps must be taken to use Wiglaf.
To start a siena server, execute:
java siena.StartServer -ka -port # -log -
Additional siena options can be found in the siena documentation.
The wiglaf configuration file contains configuration information, including the individual's name, the hardware type to be used, the siena server address, the Spartan address, the "config root" location (location of the XML files of the attribute model, intentions, and reasons), the location of the spartan event default information, and the location of the event configuration information. Each option is set in the file in the form:
Hardware=tablet
name=Lori
Siena= ka:cobra:23456
ConfigRoot=http://vasser.cs.virginia.edu/willow/ANDREA/Resources/stilt/FirstResponder/
Spartan=tcp:localhost:7501
SpartanEvent=http://vasser.cs.virginia.edu/willow/spartan/resources/EventDefault.xml
Events=http://www.cs.virginia.edu/~les7j/Events/FirstResponderEvents.xml
Note that the order of these entries does not matter. Entries should be entered one per line.
The "hardware=" configuration option determines which interface template will be used for this instance of Wiglaf. The options are:
The "siena=" configuration option sets the location and port of the siena server to be used by this Wiglaf interface. The string entered must be of the form: type:location:port. Valid values for type are "tcp" and "ka." For instance,
ka:cobra:23456
The "configroot=" option sets the location of ANDREA formal specifications for this interface. This files include Default.xml, Intent.xml, Model.xml, and Reason.xml. The address entered must be for the directory containing these files.
The "spartan=" configuration option sets the location and port of the spartan controller or relayer to which all events should be reported. The string entered must be of the same form as siena strings.
The "spartanevent=" configuration option sets the location of the formal specification describing the attributes of the spartan events reported. For example, spartan events might include attributes for source, type, latitude and longitude.
To start Wiglaf, execute:
java wiglaf.Wiglaf --config "full path to config file"
For instance,
java wiglaf.Wiglaf --config C:\firstresponderConfig.txt
Commands in STILT are transmitted using Willow's selective notification mechanism. Therefore, commands may reach an individual based on attributes of the receiver, sender, and message. Wiglaf users are responsible for setting their attributes and setting "sender qualification" attributes. For example, an Emergency Medical Technician might set her name as "Jane Doe" and her branch as EMT. She might indicate that she has a defibrillator, and she can set her location using coordinates found with a GPS receiver. She might also specify that individuals sending her commands must be EMT of higher rank. This is accomplished using Wiglaf's File/View Attributes, displayed in Figure 4, and File/Sender Qualification menu options. Note that these attribute settings remain distributed and are not stored in any central repository. In addition, these settings will eventually include some enforcement of correctness by an unimplemented Willow trust mediation component. Individuals will not be able to set all attributes at will. Jane, for instance, cannot declare herself to be the division chief.
To set the attributes, go to wiglaf's File/View and Set Attributes menu option. Set the attributes to represent the individual's current location and capabilities.
It is additionally possible to set properties for sender qualification. This is accomplised using the File/Sender Qualification menu option.
An event relayer is used to forward events to both map relayers and SPARTAN controllers. To run a relayer, execute:
relayer.Relayer --receiveport # --sendport #
For example,
relayer.Relayer --receiveport 6500 --sendport 6501
Note that it is not necessary to run a relayer if you do not wish to report events.
A MapRelayer subscribes to events from a relayer. It then takes any events received, takes information of interest, and forwards it to an Operational Area Map interface. To start a MapRelayer, execute:
java wiglaf.MapRelayer --port # (The MapRelayer listens on this port for event Notifications from wiglaf) --mapport # (The port where the map interface is listening) --address location (The machine running the map interface)
For example,
java wiglaf.MapRelayer --port 7502 --mapport 7503 --address zelda.cs.virginia.edu
Note that it is not necessary to run a map relayer if you do not wish to report events.
As mentioned above, the location and port of an event relayer or SPARTAN controller is set in the configuration file. It is also possible to set this information manually using the File/Configure Spartan Controller menu option.