Starfish Systems
information security by design
(604) 916-7871
Services Software Community About Us
Guided Tour
Here are a few simple screen shots which offer a sense of how the Starfish manager looks and operates.

Starfish is designed to aid ad hoc system management over groups of computers, rather than single computers in isolation. You interact directly with the manager, which in turn controls agents operating on remote systems. On the manager, these systems are represented using host icons. Arbitrary tree structures can be formed from these using group icons.

Although it is sometimes useful to manage a single host, many system management tasks involve maintaining consistency across a group of hosts. Groups are typically used to contain conceptually related objects, as will be seen in the examples to follow. Often, a group is defined by some abstract characteristic, such as "marketing" or "production". These groups may have particular system management requirements which require special treatment. For example, marketing systems may be laptops which are frequently taken off the net without warning, while production systems are not expected to operate continuously.
A Session Containing Three Groups

In this example, we see a manager session in progress at a hypothetical site. This session has created three groups, indicated by circle icons in the topmost pane. Inside these groups may be other groups or hosts. The groups are collapsed so that their contents are not shown.

The concept of object state is important for managing control flow in Starfish. As each agent remotely evaluates an expression, it returns a result, and with it a state value indicating the success or failure of that evaluation. The Starfish manager can use this state to decide on different courses of action, such as issuing further expressions to that agent, retrying the current expression, or asking for intervention.

We can see by the color of the icons that these groups are in different states. For example, green indicates success and red indicates failure, while blue is used to show a group containing a mixture of both states among its members.

Notice that the group named local is marked in gray. This marking indicates that the object has been interactively selected as a candidate for subsequent operations.
(click to enlarge)
An Expanded Group

Here, one of the groups from the previous example has been expanded to show its members. We can now see in detail why each group has a particular color.

Turning attention to the middle pane, we can see the aggregate report of the last evaluation. In this case it appears in blue, indicating that a mixture of states were returned along with the evaluation result.

The bottom pane shows a command expression ready for evaluation. This particular expression consists simply of a call to the agent function demo::rand, which we often use for simulation testing. It randomly returns success or failure.
(click to enlarge)
The History Pane

In this example, a highlight box has been drawn around one of the hosts, and its history pane appears at the bottom of the window, showing a log of expressions and results accumulated during this session. Evidently, this host has evaluated several expressions, returning success in each of the cases shown.

Starfish agents use the Tcl scripting language to evaluate remote expressions. The similarity of this language to native shell languages makes it well suited for remote system management. In the history log, we see several examples of expressions which the agent has seamlessly passed to the operating system for evaluation. Language elements such as control structure are interpreted directly by the agent.

Tcl has the additional advantage over native shell languages of being platform independent. Its syntax is compact, regular, and easy to read, while its control and data structures work well in both ad hoc interaction and programmatic use.
(click to enlarge)