System overview
Future plans
Mailing lists
Email us


Brief Overview of the Knowbot Software

The Knowbot software consists of several components (all of which are part of the release package). The main components are:

  • A server (the "Knowbot Operating System", or KOS) that runs on a host to enable it to run Knowbot programs. (In our terminology, this makes it a "Knowbot service station".)
  • A distributed, replicated namespace server (the "worldroot server") which provides the shared namespace used by Knowbot programs for navigation and environmental inquiries.
  • Tools to manage, create, submit, monitor and debug Knowbot programs.
  • Tools to monitor and control collections of Knowbot service stations.
  • A library of Python modules for use by Knowbot programs as well as by the support tools.

These components are discussed in some more detail below. A longer overview is also present in the Knowbot software documentation.

Knowbot programs can also be seen as examples of digital objects, and may be managed and archived in accordance with CNRI's Digital Object Infrastructure.

The Knowbot Operating System, or KOS

The KOS is the central piece of software that enables Knowbot programs to run and migrate. It contains a server component which receives submissions of incoming Knowbot programs. Once accepted, Knowbot programs are then dispatched to a supervisor component, which executes them in a restricted execution environment (also known as a "sandbox") to prevent Knowbot programs from doing harm to the host system, and mediates their environmental interactions. The KOS also implements dynamic local naming services for Knowbot programs. These are used (for example) to allow Knowbots to interact with "plugins" - optional components which provide specific services, for example (limited) access to web servers.

The Worldroot Server

Knowbot service stations on the same local area network can share a single worldroot server. The worldroot server incorporates a replication feature which allows servers connected over a wide area network to reconcile changes to the namespace in the light of network and server outages. The replicated worldroot service only maintains the top levels of the Knowbot namespace hierarchy, so that updates will be relatively infrequent (only when hosts are added or removed), thus making the replication process scalable. Lower levels of the namespace are maintained by local servers (e.g. by individual Knowbot service stations).

(The namespace provided by the worldroot server and local servers provides temporary dynamic naming services, which complement the persistent naming service provided by CNRI's Handle System®.)

Knowbot Program Management Tools

Basic management tools are available for the users of individual Knowbot programs. These tools allow end users to submit Knowbot programs and monitor their progress or kill them, to list the contents of the shared namespace, and so on.

Knowbot Service Station Management Tools

Tools for the administrator of a Knowbot service station (a host running the KOS software) include programs to start and stop the KOS service, a program to get a list of all Knowbot programs running at a particular host, and a visualizer for a group of Knowbot service stations, which shows a graphical representation Knowbot program migrations as they occur.

Knowbot Module Library

The creators of Knowbot programs have access to a collection of Python modules specifically designed for use by Knowbot programs. These modules help with such common tasks such as communication with other Knowbot programs, accessing the shared namespace, and so on. We expect this library to grow in future releases.