The Visualizer provides a graphical view of the Knowbot Operating Environment (KOE) by displaying icons representing each Knowbot Service Station (KSS), and all the Knowbot Programs (KP) associated with those KSSs. The Visualizer animates interesting events for these KPs, including KP starting and terminating, KP migration, KP cloning, etc. The Visualizer also periodically scans the namespace, synchronizing its view of the world with the namespace's. As KSSs become inactive, or new KSSs are started, the Visualizer updates the graphical display automatically.
Figure 1 shows a KOE with two KSSs, called anthem and imagerepo. anthem has two extensions (ImagePlayer and simpleio), and imagerepo has a single extension (BassImageRepository). Neither KSS has any running KPs. Notice that the Visualizer has a default alignment algorithm for KSS icons; in this figure you can see that the window is slightly taller than it is wide, so the Visualizer biases alignment in the vertical direction. For two KSSs, it will align them one above the other.
When the window is wider than it is tall, alignment will be biased in the horizontal direction. You can watch the Visualizer realign the icons by resizing the top level window. When there is exactly one KSS, it is centered in the window. When there are three or more KSSs, they are arranged in a circular path around the narrowest dimension. In all cases, there is a slight adjustment towards the upper left corner of the window to compensate for the display's growth as KPs are added. You can also place KSS icons manually by left-clicking on the icon and dragging it to the new location.
Figure 2 shows what the display looks like with a number of KPs running on the KSSs. Here, anthem is running two KPs, one with ID 14844-kpshell.1, and the other with ID 14847-kpshell.1. The imagerepo KSS is running one KP.
The Visualizer animates various events in the life of a KP, such as KP launch, migration, cloning, and exiting. Figure 3 shows the animation in progress during the initial launch of the KP 15063-kpshell.1 to the KSS imagerepo. In this case the animation is fairly simple; an arrow is drawn from the KSS icon to the KP icon. The arrow stays visible for a short time, then is removed.
Migration events are animated as a series of steps which graphically show a KP moving from one KSS to another. In the animation, as illustrated in Figure 4, an arrow is first drawn from the KP icon to the position in the destination KSS where the KP is migrating to. The next series of steps moves the KP along that arrow until it arrives at its destination.
A word about these animations: by their nature, they slightly lag behind the actual events that are taking place. Since an event is instantaneous (and atomic), the need to slow down the animation for human consumption means that the Visualizer is playing catch-up to KOE events. This is not usually a problem because if an event occurs for a KP in the middle of its animation, the current animation is halted and a new one is started, reflecting the most current event.
Figure 4 showed a KP migrating from one KSS to another. Figure 5 shows what the animation looks like when a KP migrates to the host it is already running on. A double arrow is drawn from the KSS icon to the KP icon.
Clone events are also animated, as illustrated in figures 6 and 7. Figure 6 illustrates a KP cloning itself to the same host that it is on, while Figure 7 shows a KP cloning itself to a different host.
KSS icons are normally laid out automatically, optimized for displaying all KSS and KP information. You can manually layout the KSS icons (and any KPs associated with that KSS), by simply grabbing the KSS icon with the left mouse button. When the icon is highlighted (as shown in figure 8) drag it to the location you want and release the left button.
Notice the little red L under the KSS name. This indicates that the position of icon is locked and will not be automatically relocated on the display when the number of KSSs change. You lock or unlock the positions all the KSS icons collectively by choosing one of the menu entries under the Layout menu. You can always manually position a KSS, even if it is locked.
In general, KSS icons are laid out whenever the number of KSSs changes, i.e. because one has been shutdown or a new one has been started. The layout also changes whenever you resize the Visualizer window. You can also tell the Visualizer to automatically layout the icons by choosing Refresh Layout from the Layout menu.
Note that both long and short options are supported.
The current implementation of the Visualizer contains memory leaks; it is recommended that the Visualizer be exited and restarted at regular intervals. These intervals should not exceed thirty minutes for most machines.
You should not try to manually place KSS icons while KPs are moving around. This can sometimes confuse the Visualizer's notion of where the KPs associated with a particular KSS should go.
You should try to run the Visualizer on a machine that is not running any KSSes. Because the Visualizer sees all migration events that occur anywhere with the system, it can be a bottleneck. If it is competing for system resources with other processes, especially such as a couple of KSS kernels, it can start to lag very far behind reality during periods of heavy load.
There are no options to disable KP aging, or to set the aging interval or colors. Also, there is a bug in the aging display such that sometimes, very old KPs will turn white. Think of it as their hair getting grey.