This NetAlive overview has the following sections:
I. Metaphor How NetAlive uses the metaphor of agents and service definition boards for the computer concepts of tasks and Intertasks.
II. Scope of a NetAlive Service The relationship between a service and an standard application.
III. Auto Installation of an Intertask How Intertasks install themselves transparently and on demand.
IV. Task Languages The types of code that form a task.
V. Graphical User Interface The components of an Intertask's GUI.
VI. Web Interface The manner in which NetAlive tasks and Intertasks can be stored on Web pages.
VII. Intertask Editor NetAlive's interface for editing an Intertask.
NetAlive uses a software metaphor to relate its technology to activities in the real world. In the real world groups of people engage in many group activities in business, pleasure, and their personal lives. Each activity has a set of rules associated with it. An auction, for example, involves bidders and the auctioneer communicating according to the rules of an auction. NetAlive lets computers perform these activities on behalf of people, thus automating a new aspect of our lives.
To do this, NetAlive lets people post software (called agents in the metaphor or tasks in computer terminology) on Web pages to represent themselves in certain activities. The specific activity is defined by a set of rules on another type of Web page (called a service definition board or an Intertask). Software agents for many people can then work together in a joint activity in cyberspace.
One of NetAlive's functions is to assign agents to boards. To do agent assignment, the user finds the appropriate boards and agents with a Web browser. NetAlive works with Web browsers so that hyperlinking to either a board or an agent causes it to be downloaded and displayed from within NetAlive. The user can then move agents into an board with the mouse.
Once agents have been assigned to all the necessary roles, the user can start the result as a service. Once started, various computers on the Internet will perform the activity automatically.
Alternatively, a populated board can be saved to a Web page. Once stored on a Web page, the service can be started by a simple hyperlink from a Web browser.
NetAlive supports services. Services are like applications but run on an entire computer network instead of just one computer. Remote disk access, email, and printer sharing are traditional services because they require multiple computers by definition. NetAlive's services span an entire computer network in the same way.
The diagram (right) shows NetAlive with a simple setup. The window representing the NetAlive workspace (top) represents the entire Internet and the diagram in the window defines behavior on the entire network. Each of the icons represents a software task that executes on a single computer and communicates with other tasks as indicated by the arrows. Each task executes on an Internet host as indicated by the phrase "on host" under the icon. The contents of the workspace can be stored as a single file or data set which is called an Intertask.
Note that NetAlive is a peer-to-peer system. Execution of the Intertask shown would create the communications pattern A-B and not client-A-client-B-client.
NetAlive demand-installs Intertasks on a computer. In a traditional computer system, an operator must install the software for a service on all the participating computers before that service can be used on any computer. In contrast, a NetAlive Intertask can start on any single computer and the NetAlive system will install it on the others on-the-fly.
The key is that the Intertask is sent with every data message to demand-install the destination computer if necessary. Each computer keeps the entire Intertask in memory or on disk when running (recall that this includes the code for all the computers). In the process of executing the Intertask, a computer will periodically send some data to another computer. This is done with the message format shown (below). In addition to the data, the message includes the identity of the receiving task and the entire Intertask. If the receiving computer does not have the Intertask, it can install it from the copy in the message. Then, it passes the data to the indicated task. The effect of this process is as though every imaginable Intertask were magically installed on every computer on the Internet.
Two caveats apply to the above: (1) NetAlive actually uses a handshake so that unneeded Intertasks are not actually sent, and (2) the auto-installation description above assumes the user has permission to install software on a particular computer.
The most interesting use of a task is when it has instructions describing how a person would act in a particular situation. These tasks are likely to be posted on the Web for access by the public. However, tasks can be more mundane as well, like sorting and operating an application's GUI.
A Task contains:
The table below describes the broad classes of types of tasks and their interpretation.
|Field replaceable||Applet. Software forming the GUI on one or more computers. May also process data an do I/O to other tasks.||Agent. Software running either locally or remotely that processes data, doing I/O to other tasks.|
|Fixed||Widget. Typically part of a GUI where the user can type-in questions and observe answers.||A basic function in an application, like sorting or managing form input.|
When an Intertask runs on a particular computer, the user will not see the Intertask with icons and caption, but will see a Graphical User Interface (GUI). In the figure (right), a background graphic (1) is overlayed with a widget task (2) and controls a portion of the Intertask's GUI. Task (3) is a functional task and is not visible on the GUI. Tasks communicate amongst themselves via arrows (4) irrespective of whether or not they have a widget.
NetAlive can access tasks and Intertasks stored on either disk or a Web page. The animated graphic (right) illustrates two NetAlive windows. (Note: if you are viewing this document with a browser that does not support animation or via hardcopy, you may not see the windows described in this text.) The main window is an Intertask displayed in constrained replacement view. In NetAlive, each icon-caption pair is a placeholder for an agent-task.
The left window is a NetAlive palette, or a window containing a number of unassigned tasks. A palette has headings at the highest level which expand to reveal a number of agent-tasks.
Intertasks and palettes are distinct document types on both a computer and the Web. Specifically, Intertasks have extension .net and MIME type application/netalive and palettes have extension .agt and MIME type application/netaliveagents. Activating a document of either type starts NetAlive as a server or helper application and loads the document.
The user may drag tasks from a palette and drop them onto a compatible location in an Intertask. Such a drag-and-drop changes the Intertask in the memory of the user's computer, meaning it must be saved to disk or the changes will be lost when NetAlive closes the document.
The diagram (right) shows NetAlive editing several views of an Intertask, however the reader should see Development Environment for more information.
The upper left shows the basic palette. Application-specific palettes are likely to contain tasks of the same type but differing in terms of the Web site to which they apply. While the basic palette is of the same form, it contains a diverse set of simple tasks for use in constructing new activities. The basic palette contains GUI elements and primitive functions such as sorting and merging.
The upper right window illustrates the Intertask view. Intertask view shows tasks and the connections between them with a grid instead of a background graphic. Also, the Intertask view shows all tasks instead of just those that can be replaced.
Intertask view gives the user full editing capabilities for the Intertask. In Intertask view, the user can not only replace tasks with the mouse, but can allocate new ones by dropping onto a blank area of the design surface. Existing tasks can be moved by dragging them with the mouse. Arrows representing data dependencies can be drawn and moved with the mouse.
The lower left window shows an Intertask in the GUI editor view. This view shows and permits the user to edit an Intertask's GUI. This view puts a resizing border around the GUI element corresponding to each task. The resizing borders can be moved with the mouse.
|Next Section||Parent Document|
|Development Environment||Hello World application||Intertasks and Self-Replication|
|Tasks or Agents||Parts|
|This is part 1 of a 3 part document:|
|NetAlive Technology||Automated Surfing||Organizing the Chaos|
|An Overview of NetAlive Technology (5 part document):|