A NetAlive application has the following parts, which largely define its capabilities:
The figure below shows the architecture of the NetAlive application, or Intertask. An Intertask has attributes of both an application and a document. As a document, an Intertask has a background (1) produced by any standard graphic desktop publishing tool. Widget tasks (2) overlay the background. Widget tasks can be X-Windows widgets in Unix or controls in Windows. As an application, invisible functional tasks (3) perform functions defined in Perl and other langauges. Arrows (4) control information flow between widgets and functional tasks.
The figure below shows the parallel processing nature of an Intertask. The top diagram shows the Intertask view of a simple NetAlive application. The application has two widget tasks connected by one arrow.
Each task may have an address consisting of one or more host names. In the figure, the phrases "on A" and "on B" address two widget tasks. A task exists only on the host or hosts contained its address. The address of a widget specifically controls whether it is visible or not, letting a multi-user Intertask have different GUIs on different clients. Thus, the figure shows the GUIs on clients A and B each having one of the two widget tasks. The address on a functional task controls which computer executes the code.
The NetAlive system distributes the Intertask among the appropriate computers and manages communications between tasks. The designer does not have to perform any communications activities.
An Intertask is like a Web page. The text below shows the general syntax and parts of NetAlive's Intertask format. It is an ASCII format, but created and interpreted only by a NetAlive system program. It starts with a record containing attributes of the Intertask as a whole (<NetAlive ...>), such as width, height, version number, etc. An arbitrary number of task declarations follow. Widget-task declarations (<Wgt ...>) include their position in the document and their type (as in pushbutton, list box, etc.). Functional task declarations (<Fcn ...>) include source code and the name of the source code's language. An arbitrary number of link declarations (<Link ...>) follow. Each link connects tie points on two tasks.
<NetAlive Width=300 Height=200> <Wgt L=10 R=50 T=10 B=50 WindowType=Button> <Fcn SourceLanguage="Perl" SourceCode=//open (OUT, '> $3'); print OUT "Hello world\n"; close OUT;//> <Link T=3 O=0 T=9 O=1> End
The NetAlive format is not HTML, although there are similarities. (We made it similar to leave certain options open for future enhancement.) The NetAlive format is like HTML markup but without the underlying text. Furthermore, an HTML parser will not accept NetAlive format due to differences in string quoting.
|Next Section||Parent Document|
|This is part 1 of a 5 part document:|
|This document was referenced from:|