[Pipet Devel] summary for web
Brad Chapman
chapmanb at arches.uga.edu
Fri Mar 31 03:01:50 EST 2000
Jarl wrote:
> OK, here comes MY partial view on vsh. Jean & Brad & Jeff: please
fix and
> expand
> this!
I took a stab at my two assigned parts. Comments are very welcome :-)
Interface <-> DL:
The user interface communicates with the functional parts of vsh
through a streaming XML dialog with the definition layer. This dialog
occurs in the form of a request and response interchange between the
user interface and the definition layer through a local socket. For
instance, to request the addition of a processor node (program) to
the workspace, the user interface would send the following XML request
to the definition layer:
<ui>
<add>
<workspace id = 'workspace1/workspace2'/>
<node type = 'processor'>
</add>
</ui>
The definition layer would then process this message, perform the
requested operation, and if the operation was successful, return
information to the user interface in the response:
<dl>
<success>
<node id = 'newly assigned node id'
num_inputs = 'number of initial inputs'
num_outputs = 'number of initial outputs'
ui_name = 'name of the UI type' />
</success>
</dl>
or return an error message if there were problems.
The design of this interface to definition layer communication allows
multiple user interfaces to be created on the same definition and
processing layer internals. In addition, these user interfaces can be
created in any programming language supporting XML manipulation tools
and sockets.
DL internal:
Thw definition layer provides the glue which connects the user
interfaces with the processing internals of vsh. It is responsible for
a number of functions:
1. Maintaining communication with multiple user interfaces through a
streaming XML dialog communication protocol.
2. Storing of work-flow diagrams from the user interfaces in an XML
format. This XML models the nodes present in the user interface and
the
connections/interrelationships between them.
3. Maintaining a permanent storage location for specially designed
nodes
that represent specific programs and libraries. The information for
these nodes will be stored as XML and be available directly available
to the user interface through the streaming XML dialog.
4. Communication with the processing portion of the program be
implementing a CORBA client to a server in the brokering layer.
This communication allows work flow diagrams to be passed to the
processing layers for implementation, and allows a process to be
queried while running.
5. Communication with remote vsh programs as both a client and a
server
using corba (through an idl that still has to be defined). This allows
a
specific implementation of vsh to serve out a specialized node or set
of
nodes to be utilized by other vsh implementations at remote locations.
The processing layer will handle the specifics of this communication,
but the middle will define a protocol to authenticate remote vsh
implementations and provide access only to available nodes.
The definition layer is implemented in the python programming
language and relies on freely available XML and DOM libraries. CORBA
communication will occur using the Fnorb ORB implementation, but will
eventually move to ORBit (using ORBit-python) as work on python
bindings
for ORBit continues.
More information about the Pipet-Devel
mailing list