%%   format=book

\Doc[]
\FrFr[]
\FrPref[\def\FrPrefPgbr{N}]
\FrPrefhd[\def\FrPrefHdFntTsz{I}\def\FrPrefHdUnderln{F}\def\FrPrefHdJust{C}]Prototyping
a WebVM based WebFlow Environment for Distributed Computing and Visual
Programming\FrEndprefhd[]
\HdMiscLvi[\def\HdMiscLviFntTst{\it}] Wojtek Furmanski and Geoffrey
Fox\HdMiscEndvi[]
\HdMiscLviii[\def\HdMiscLviiiFntTsz{G}\def\HdMiscLviiiFntTst{\rm}\def\HdMiscLviiiStyAJust{C}\def\HdMiscLviiiFntFfm{\SSF}]Northeast
Parallel Architectures Center, Syracuse University, Syracuse, NY%
\newlinetag[]
\Symlbr[]furm, gcf\Symrbr[]@npac.syr.edu\HdMiscEndviii[]
\HdMiscLviii[\def\HdMiscLviiiFntTsz{F}\def\HdMiscLviiiFntTst{\rm}\def\HdMiscLviiiStyAJust{C}\def\HdMiscLviiiFntFfm{\SSF}]To
be presented at the IEEE Dual-Use Technologies \Symand[] Applications
Conference, Syracuse, NY, June 1996\HdMiscEndviii[]
\HdMiscLviii[\def\HdMiscLviiiFntTsz{F}\def\HdMiscLviiiFntTst{\rm}\def\HdMiscLviiiStyAJust{C}\def\HdMiscLviiiFntFfm{\SSF}]March
15, 1996\HdMiscEndviii[]
\HdMiscLvii[\def\HdMiscLviiStyAJust{C}\def\HdMiscLviiFntTsz{H}\def\HdMiscLviiFntFfm{\SSF}]Summary%
\HdMiscEndvii[]
\Para[\ParaFontsize{H}]We review recent NPAC activities in the area
of computational Web technologies. Our general strategy is to develop
distributed computing environment on top of the Web. Subsequent design
and development steps and technologies such as WebTools, WebVM and
WebFlow are reviewed and put in the context of dual-use applications
for command \Symand[] control, telemedicine and distance education.%
\Endpara[]
\FrEndpref[]
\FrToc[\def\FrTocTpcent{F}\def\FrTocSctentTNumFirstdisp{2}\def\FrTocChpentTFntGenlTst{\bf}\def\FrTocChpentTNumHspace{P}\FrTocChpentTRshift=0.3in \def\FrTocChpentTPgnum{D}\def\FrTocChpentTInit{Chapter}\def\FrTocHdJust{C}\def\FrTocHdFntTsz{H}\def\FrTocPrefent{F}\def\FrTocPgbr{N}]
\FrEndtoc[]
\FrEndfr[]
\DivBod[\def\BodyPgbr{P}]
\TyColCol2[]
\DivLii[]\HdMjLii[]Overview of NPAC Web Activities\HdMjEndii[]
\Para[]At NPAC, we recognized early (in summer \rsquo[]94) that the
software technologies of the World-Wide Web contain a promising potential
for building new generation  high performance computing environments.
We call this concept \tyxtstxit[]WebWindows\tyxtstxendit[] \Symlbk[]FoFu95\Symrbk[]
to point out that it does not refer to any specific operating/windowing
system (such as X Windows under UNIX or MS Windows on PC) and is developed
collectively as a set of open standards and public software modules
by the Web community at large.\Endpara[]
\DivLiii[]\HdMjLiii[]WebTools \EnDash[] Personal Assistant%
\HdMjEndiii[]
\Para[]Our first contribution, developed in early \rsquo[]95, was
packaged as a set of \tyxtstxit[]WebTools\tyxtstxendit[] \Symlbk[]Furm95a\Symrbk[],
based on CGI/Perl extended \rsquo[]personal\rsquo[] web servers. The
core toolkit includes Document Tree Navigator, Manager and Editor,
and offers the base functionality required for interactive authoring
and exploration of the document tree on the WebTools server. All tools
are implemented as Perl packages and associated with PDA-style forms
based front-ends. Manager supports creation and destruction of files
and directories in the server document tree. Each file is created
with built-in navigation bar, containing a set of control button/HTML
links which are associated with suitable CGI actions at the server
side. Typical actions include moving left or right in the current
directory, traversing the directory tree, or launching the Editor
or the Manager tool. Editor supports on-line HTML authoring for each
page, maintained by a WebTools server.\Endpara[]
\Para[]WebTools were used extensively in \rsquo[]95 at NPAC both in
the PDA mode (e.g. to develop technology information pages) and in
the collaboratory mode by a group of Web enthusiasts exploring various
aspects of interactive Web technologies.\Endpara[]
\Para[]We also started the development of WebMail in the WebTools
framework. This task, however, turned out to be rather complex and
we realized that several backend operations, critical for reliable
production version can be more efficiently implemented using commercial
RDBMS support. Oracle engine for e-mail and newsgroup was in fact
developed in another NPAC project \Symlbk[]Cheng95\Symrbk[] and we
are now addressing the merging of WebTools and Oracle components of
the mail system.\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]WebWork \EnDash[] Distributed Computing%
\HdMjEndiii[]
\Para[]Also in early \rsquo[]95, we developed in collaboration with
Boston University and Cooperating Systems Corporation the concept
of \tyxtstxit[]WebWork\tyxtstxendit[] \Symlbk[]FFCRC95\Symrbk[] \EnDash[]
a distributed computing environment based on a mesh of computationally
extended Web servers. We realized that the HTTP protocol can be used
to implement the point-to-point message passing between servers. We
also observed that dataflow offers a natural high-level programming
paradigm in this framework. We called it \tyxtstxit[]WebFlow%
\tyxtstxendit[] and noticed that Java programming language could be
used for developing the visual authoring tools for editing WebFlow
networks, or \tyxtstxit[]compute-webs\tyxtstxendit[].\Endpara[]
\Para[]A simple proof of the concept WebWork application \EnDash[]
parallel search \EnDash[] was prototyped in terms of a mesh of Web
servers \Symlbk[]Bala95\Symrbk[]. A more advanced application in the
area of RSA factoring on a \rsquo[]World-Wide Computer\rsquo[] was
developed by our Boston/CSC collaborators, productized at NPAC, presented
at Supercomputing \rsquo[]95 and awarded within the Teraflop Grand
Challenge contest \Symlbk[]Cowie95\Symrbk[].\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]WebFoil \EnDash[] Distance Education%
\HdMjEndiii[]
\Para[]In spring/summer \rsquo[]95, Java programming language became
the driving force of new Web developments. Also at this time, Netscape
initiated a major internal effort in the area of web tools, and we
decided to refocus our activities on exploring the potential of Java.
Following the WebWork spirit, we prototyped, using alpha Java, the
front-end for the visual compute-web editor and for a sample WebFlow
application \EmDash[] Project Manager \Symlbk[]Vish95a\Symrbk[].%
\Endpara[]
\Para[]We also observed that HotJava can be customized and extended
\Symlbk[]Furm95b\Symrbk[] to provide an appealing tool for electronic
presentation and distance education, \tyxtstxit[]WebFoil%
\tyxtstxendit[].\Endpara[]
\Para[]Our Java prototypes were successfully demonstrated during the
two Web tutorials on \ldquo[]Interactive Web Technologies for Distance
Education\rdquo[], presented by NPAC in \rsquo[]95: at HPDC4 \Symlbk[]FFP95b\Symrbk[]
in June and at Supercomputing\rsquo[]95 in December \Symlbk[]NPAC95\Symrbk[].
\Endpara[]
\Para[]The most recent version of WebFoil is based on multiframe JavaScript
under Netscape 2, supports Real Audio and offers an integrated presentation
framework as well as an extensive educational material, covering a
broad spectrum of Web and HPCC technologies \Symlbk[]Fox96\Symrbk[].%
\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]WebSpace \EnDash[] Collaboratory%
\HdMjEndiii[]
\Para[]We are also collaborating with Argonne National Laboratory
in the area of Web technologies and we developed the concept of WebSpace
\Symlbk[]FFP95a\Symrbk[] as a Web based \rsquo[]plug-in\rsquo[] to
ANL LabSpace \EnDash[] a collaboratory environment to support scientific
research, remote experimentation and shared teleoperation of advanced
equipment such as ANL electron microscope. WebSpace will provide Web
access and insight into the current advances of science for educational
and small business communities.\Endpara[]
\Para[]WebSpace technologies will include support for %
\tyxtstxit[]CGI server\tyxtstxendit[] \EnDash[] a collaboratory server
cooperating with the Web server via CGI and handling tasks such as
session control or document caching. An early prototype of such a
collaboratory server was developed in the alpha Java framework \Symlbk[]Vish95b\Symrbk[].
The model included Java standalone application, acting as a multiuser
network server, and a set of HotJava clients. Participants of such
a chat space were mapped on individual threads inside the Java servers.
A simple textual whiteboard was developed in this framework as well
as simple distributed games such as tic-tac-toe. Another prototype
of a Web based chat tool was constructed more recently using Oracle
database server as collaboratory engine and Netscape client pull mechanism
\Symlbk[]Cheng96\Symrbk[]. We are now addressing the issue of combining
Java and Oracle technologies (e.g. using JavaSoft\rsquo[]s JDBC) for
the collaboratory server development. \Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]The Bridge and Its Dual Use\HdMjEndiii[]
\Para[]We are also working with Dave Warner on Web implementation
of the Bridge \Symlbk[]WaBa95\Symrbk[] based Distributed Medical Intelligence.
The bridge topology includes three generic components:  \ldquo[]points
of need\rdquo[] (or \rsquo[]care portals\rsquo[] i.e. healthcare customers),
\ldquo[]points of expertise\rdquo[] ( or \rsquo[]docking stations\rsquo[],
i.e. healthcare providers) and the intelligent switchboard (i.e. the
bridge itself), providing suitable optimized routing, and offering
information and interactive consulting services for the participants%
\Endpara[]
\Para[]We realized the a similar bridge topology can be found in the
WebSpace/LabSpace architecture with the \rsquo[]points on need\rsquo[]
represented by schools or small businesses and handled by the WebSpace
plug-in,  with the \ldquo[]points of expertise\rsquo[] represented
by scientists, and with the bridge itself provided by the ANL LabSpace.%
\Endpara[]
\Para[]Our major current activity which again follows the bridge architecture
is Collaborative Interactive Visualization project with Rome Laboratory.
Here the point of need/expertise is represented by troops/commanders
and the intelligent switchboard is the electronic command and control
center. We are currently developing component technologies and application
modules to be integrated within a wargame scenario of a hypothetical
missile attack.\Endpara[]
\Para[]We are also exploring the synergy od dual-use between the command
\Symand[] control  and telemedicine bridge architectures and we use
healthcare as the initial pilot/testcase domain. In our %
\tyxtstxit[]WebMed \tyxtstxendit[] activities, we currently focus
on a pilot project \tyxtstxit[]CareWeb\tyxtstxendit[] for pediatric
nursing triage, developed by a collaboration including NPAC, Syracuse
School District, Syracuse University College of Nursing and SUNY Pediatrics
Department. Points of need are represented by nursing stations, installed
in selected schools, and using web browsers to access and operate
on patient record databases. Nurse practitioner in the Nursing College
(the bridge) is consulted to confirm the nurse diagnosis, and can
in turn consult a pediatrician (point of expertise) in some more complex
cases. Typical collaboratory actions include (WebTools based) shared
development of the patient assessment form by nurse, nurse practitioner
and pediatrician, and (chatboard based) interactive consulting support
for the bridge and physician stations.\Endpara[]
\DivEndiii[]
\DivEndii[]
\DivLii[]\HdMjLii[]WebVM \EnDash[] Web  Virtual Machine%
\HdMjEndii[]
\Para[]So far, we reviewed our previous prototyping activities in
the area of computational extensions of Web technologies and we outlined
a set of large scale Web based distributed applications such as command
\Symand[] control, distance education and telemedicine, which we start
to address at NPAC. In this chapter, we discuss in more detail our
planned underlying infrastructure, \tyxtstxit[]WebVM%
\tyxtstxendit[], which is expected to integrate our current prototypes
and set the framework for the continued development of larger scale
applications.\Endpara[]
\DivLiii[]\HdMjLiii[]Computational Web Concepts\HdMjEndiii[]
\Para[]The base support for the computational extensions of the Web
is already present as part of the standard model in the form of the
CGI protocol. These CGI extensions are usually exploited in  conventional
client-server configurations, e.g. for dynamic document generation,
handling forms or accessing database servers. Typically, a CGI process
receives a set of arguments from the client, performs some computation
at the server side, and returns a MIME object to the client.%
\Endpara[]
\Para[]More elaborate services, which start to appear recently, would
request an URL of the input MIME object from the client domain, fetch
this object to the server domain, perform a suitable transform or
filter and return it to the client as on output MIME object. Popular
examples include AutoCAD DXF to VRML file convertors, remote image
editing and improvement services, or remote VRML authoring kits.%
\Endpara[]
\Para[]A natural next step could include combining such services,
e.g. by dataflow chaining. Consider for example a DXF to VRML conversion
service and VRML authoring service, operated by two different providers
at two different geographic locations. A Web user who owns a DXF files
and wants to convert it to VRML and modify before saving, could do
it most efficiently by linking the converter output to the editor
input, passing URL of the DXF file to such composite service, or %
\tyxtstxit[]compute-web\tyxtstxendit[], edit the on-the-fly converted
VRML file and finally save it at the client side, bypassing all intermediate
formats and manual manipulations on temporary files.\Endpara[]
\Para[]At the moment, such linkage of Web services is impractical
or just impossible since there is no standard methodology for publishing
and connecting individual computational modules. The goal of %
\tyxtstxit[]WebVM\tyxtstxendit[] is to provide a framework that would
enable such interoperability. Below, we discuss our design which builds
on the previous WebWork concepts and takes into account the most recent
developments in the Web software industry.\Endpara[]
\Para[]In WebWork, we described the HTTP+CGI mechanism for server-to-server
communication and we indicated how to generalize and improve this
approach in terms of the next generation more dynamic Web server technologies.
These technologies become available today from several vendors, most
notably from Netscape and JavaSoft. In the following, we refine our
base minimal design and we address the the issue of interoperability
with the coming commercial products.\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]HTTP+CGI \EnDash[] Minimal Model%
\HdMjEndiii[]
\Para[]Minimal WebVM is given by a collection of CGI extended Web
servers, typically with an independent server running on each node
of a workstation cluster. The CGI extension includes a library of
system CGI modules which are provided as part of the WebVM distribution,
and a set of custom, user/application provided CGI modules. The overall
computational paradigm is given by dataflow with user CGI processes
acting as computational nodes/modules, and with the system CGI processes
providing the required system control and management functions.%
\Endpara[]
\Para[]Each module receives a set of input MIME objects, performs
an arbitrary local computation, and returns a set of output MIME objects.
Both input and output objects are URL-addressable, i.e. they reside
as MIME documents in a server document tree, and can be transferred
between servers during the dataflow actions. \Endpara[]
\FgBlock[]
\PreProcFgGfx\FgGfx[\FgGfxHt=357.00pt \FgGfxWd=392.00pt \def\FgGfxPath{dual1}\def\FgGfxCache{dual1}\FgGfxX=0.00pt \FgGfxY=0.00pt \FgGfxMag=60 \FgGfxRes=56 \def\FgGfxProc{IslandDraw}\def\FgGfxFilename{/home/T6D/HPFI/users/furm/img/p2p.id}]
\FgEndblock[]
\Para[\ParaType{B}\ParaFontsize{D}\ParaFontfam{\SSF}]Fig. 1: Minimal
model for HTTP+CGI based Server-to-Server Communication discussed
in Section 2.2\Endpara[]
\Para[]\newlinetag[]
\Endpara[]
\Para[]Each module reads input files from and write output files to
the local disk. Server-to-server object transfer is implemented via
the HTTP protocol and carried out by the system CGI module called
\tyxtstxit[]Flow Executive\tyxtstxendit[]. Fig, 1 illustrates the
steps involved in transferring the output object \tyxtstxit[]O%
\mthxsub[]1\mthxendsub[]\mthxsup[](1)\mthxendsup[]%
\tyxtstxendit[] created by module \tyxtstxit[]M\mthxsub[]1%
\mthxendsub[]\tyxtstxendit[] from the server \tyxtstxit[]S%
\mthxsub[]1\mthxendsub[]\tyxtstxendit[] document tree to the server
\tyxtstxit[]S\mthxsub[]2\mthxendsub[]\tyxtstxendit[] document tree,
where it is stored as the input object \tyxtstxit[]I\mthxsub[]1%
\mthxendsub[]\mthxsup[](2)\mthxendsup[]\tyxtstxendit[], ready to be
used by the module \tyxtstxit[]M\mthxsub[]2\mthxendsub[]%
\tyxtstxendit[]. The transfer starts after the module %
\tyxtstxit[]M\mthxsub[]1\mthxendsub[]\tyxtstxendit[] finished its
computation and wrote \tyxtstxit[]O\mthxsub[]1\mthxendsub[]%
\mthxsup[](1)\mthxendsup[]\tyxtstxendit[] to the local disk. After
completing the write action, \tyxtstxit[]M\mthxsub[]1%
\mthxendsub[]\tyxtstxendit[] opens connection to \tyxtstxit[]S%
\mthxsub[]2\mthxendsub[]\tyxtstxendit[] and sends a POST message to
the Flow Executive \tyxtstxit[]F\mthxsub[]2\mthxendsub[]%
\tyxtstxendit[], passing the current URL of stored \tyxtstxit[]O%
\mthxsub[]1\mthxendsub[]\mthxsup[](1)\mthxendsup[]%
\tyxtstxendit[]. \tyxtstxit[]F\mthxsub[]2\mthxendsub[]%
\tyxtstxendit[] sends the GET message to \tyxtstxit[]S\mthxsub[]1%
\mthxendsub[]\tyxtstxendit[], retrieves \tyxtstxit[]O\mthxsub[]1%
\mthxendsub[]\mthxsup[](1)\mthxendsup[]\tyxtstxendit[], and stores
it as \tyxtstxit[]I\mthxsub[]1\mthxendsub[]\mthxsup[](2)%
\mthxendsup[]\tyxtstxendit[]. Next, \tyxtstxit[]F\mthxsub[]2%
\mthxendsub[]\tyxtstxendit[] starts module \tyxtstxit[]M%
\mthxsub[]2\mthxendsub[]\tyxtstxendit[] in the background and exits.
At this point, \tyxtstxit[]M\mthxsub[]1\mthxendsub[]%
\tyxtstxendit[] can also exit and all connections between servers
\tyxtstxit[]S\mthxsub[]1\mthxendsub[]\tyxtstxendit[] and %
\tyxtstxit[]S\mthxsub[]2\mthxendsub[]\tyxtstxendit[] are closed. Module
\tyxtstxit[]M\mthxsub[]2\mthxendsub[]\tyxtstxendit[] reads its input
files \tyxtstxit[]I\mthxsub[]1\mthxendsub[]\mthxsup[](2)%
\mthxendsup[]\tyxtstxendit[], \tyxtstxit[]I\mthxsub[]1%
\mthxendsub[]\mthxsup[](2)\mthxendsup[]\tyxtstxendit[], performs local
computation, writes its output files \tyxtstxit[]O\mthxsub[]1%
\mthxendsub[]\mthxsup[](2)\mthxendsup[]\tyxtstxendit[], %
\tyxtstxit[]O\mthxsub[]2\mthxendsub[]\mthxsup[](2)\mthxendsup[]%
\tyxtstxendit[], and notifies the Flow Executive processes in the
destination servers.\Endpara[]
\Para[]Fig. 1 illustrates only two neighboring nodes %
\tyxtstxit[]M\mthxsub[]1\mthxendsub[]\tyxtstxendit[], %
\tyxtstxit[]M\mthxsub[]2\mthxendsub[]\tyxtstxendit[] and one arc (%
\tyxtstxit[]O\mthxsub[]1\mthxendsub[]\mthxsup[](1)\mthxendsup[]%
\tyxtstxendit[] \mthxsyxrarrow[] \tyxtstxit[]I\mthxsub[]1%
\mthxendsub[]\mthxsup[](2)\mthxendsup[]\tyxtstxendit[]) of a larger
computational graph called \tyxtstxit[]compute-web%
\tyxtstxendit[]. A given web server can host and handle modules from
several compute-webs, belonging to different users. Local connectivity
information is stored in configuration files in each server. Initial
or idle state of a WebVM involves a set of (always) running Web servers
which act as network daemons, and no other WebVM-specific active CGI
processes. Dataflow is typically initiated by a browser which activates
the initial module, e.g. \tyxtstxit[]M\mthxsub[]1\mthxendsub[]%
\tyxtstxendit[] in Fig. 1, via the usual URL addressing mode and the
CGI convention. The subsequent \tyxtstxit[]M\tyxtstxendit[] processes
are activated whenever the state of any of their input objects changes
as a result of some previous dataflow action, and the %
\tyxtstxit[]F\tyxtstxendit[] processes are activated upon each object
transfer request, issued by the \tyxtstxit[]M\tyxtstxendit[] processes.
\Endpara[]
\Para[]A prototype implementation of the minimal model for the server-to-server
communcation descibed above has been recently accomplished at NPAC
\Symlbk[]Haupt96\Symrbk[].\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Management Modules\HdMjEndiii[]
\Para[]The minimal model in Fig. 1 contains only one system module
(Flow Executive) per node. More realistic version of WebVM will contain
additional management modules. For example, the minimal model does
not specify how the compute-web configuration files are being created,
maintained and updated. For a small, testcase compute-web, these files
can be created manually by a developer. Production level WebVM will
be typically associated with some high level compute-web editing tools
such as discussed in Chapter 3, WebFlow. To support automated compute-web
editing, we may introduce \tyxtstxit[]Link Manager%
\tyxtstxendit[] system module which will be notified  by the client
side authoring toolkit and will respond with the corresponding update
of the compute-web configuration files. These configuration files
 require some management support as well to assure atomicity and concurrency
control in the multi-user environment. Such responsibility could be
assigned to \tyxtstxit[]Configuration Manager\tyxtstxendit[] module
which offers interface to a relational database that maintains the
compute-web connectivity information.\Endpara[]
\Para[]The minimal model in Fig. 1 doesn\rsquo[]t also specify the
mechanism for assigning user modules to physical hosts in a workstation
cluster. Again, for small testcase compute-webs, such placement could
be hardwired in a manual mode, but a realistic production system will
require \tyxtstxit[]Resource Manager\tyxtstxendit[] module to assure
fault tolerance, static resource allocation, and dynamic load balancing
via module mobility. We are currently exploring several existing Cluster
Management Systems (CMS) \Symlbk[]Baker95\Symrbk[] and selecting the
most adequate solutions to be adapted to and plugged into the resource
management sector of the WebVM.\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Recent Web Developments\HdMjEndiii[]
\Para[]Minimal model is built on top of the classic Web servers which
are stateless, whereas WebVM requires module state information (such
as the current values of all input objects) to be available in the
runtime. Minimal model implements the module state in terms of the
MIME files, stored on the local disk. This, combined with the need
for new socket connections to establish each dataflow channel, results
in high latency of our server-to-server communication model. A series
of the new products, coming from the Web software vendors such as
Netscape or JavaSoft, open up new, better design and higher performance
implementation avenues for the WebVM architecture.\Endpara[]
\Para[]A high performance implementation of the message passing in
Fig. 1 can be realized in terms of auxiliary servers (referred to
as \tyxtstxit[]CGI servers\tyxtstxendit[] as in Section 1.4), present
in all WebVM nodes, cooperating with Web servers and supporting object
and configuration caching. In the minimal implementation of Fig 1.,
two large blobs represent document tress associated with servers %
\tyxtstxit[]S\mthxsub[]1\mthxendsub[]\tyxtstxendit[] and %
\tyxtstxit[]S\mthxsub[]2\mthxendsub[]\tyxtstxendit[], with modules
as heavy\EnDash[]weighted processes and objects as MIME files. In
the CGI server based implementation, these blobs become object-oriented,
multithreaded servers with modules represented as threads and objects
as class instances, cached in the dynamic memory.\Endpara[]
\Para[]Several new advanced Web technologies coming soon from the
software vendors could be employed to develop such a dynamic compute-server
support. We list here and discuss briefly a few most promising alternatives.%
\Endpara[]
\DivLiv[]\HdMinLiv[]Java Applets\HdMinEndiv[]
\Para[]Applets represent currently the most popular way of using Java.
Their role in developing WebFlow visual editors is discussed in Section
3.1. However, applets can also be employed as a mechanism for easy
download and moving selected WebVM modules written in Java from the
server to the client domain.\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Java Applications\HdMinEndiv[]
\Para[]Java supports networking, multithreading and object-oriented
programming, and hence it offers a natural implementation platform
for the CGI servers discussed in Section 1.4. A Java based CGI server
approach is particularily useful for WebVM modules also written in
Java.\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Distributed Java\HdMinEndiv[]
\Para[]Development of Java based CGI server is most convenient in
a distributed Java programming environment such as offered by the
E language from Electric Communities or the RMI (Remote Method Interface)
from JavaSoft.\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Java/Database\HdMinEndiv[]
\Para[]There are some analogies between Java interfaces to RDBMS and
to generic computational modules in WebVM model. Java/datbase interface
models such as dbKona/T3 server by WebLogic or JDBC (Java Database
Connectivity) by JavaSoft can be used as design templates for Java
based CGI server and also for developing specialized system modules
such as the Configuration Manager.\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Java HTTPD\HdMinEndiv[]
\Para[]An extreme Java-centered approach would view the whole computational
structure in a WebVM node as a single Java server, offering both the
HTTPD capabilities and the server-to-server message pasing layer.
Early prototypes of Java HTTPD are already available on the Web. Java
HTTPD is a promising candidate for the eventual Web server programming
model but is unlikely to dominate in the near term the current installation
base of NCSA HTTPD servers.\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]HPJava\HdMinEndiv[]
\Para[]Parallel Compiler Runtime Consortium (PCRC) led by NPAC addressed
recently the role of Java in the high performance computing domain.
Several concepts were contributed to the current position paper, including
our previous work on MOVIE/HPFI model for distributed interpreted
high performance computation. HPJava might possibly result in the
high performance version of distributed Java, and hence a convenient
vehicle for high performance version of the WebVM.\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Web/CORBA\HdMinEndiv[]
\Para[]World-Wide Web Consortium plans to include CORBA into the current
set of Web standards and to provide a set of CORBA based Web binders
to various object-oriented interpreters. This work could greaty enhance
the interoperability of WebVM in the object domain.\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Netscape FastTrack Servers\HdMinEndiv[]
\Para[]Netscape announced recently the new generation servers, with
the integrated support for email, newsgropus, collaboratory, Java,
JavaScript and LiveWire. This model, when open enough, could provide
a foundation for WebVM or in fact offer already the full solution
to the challenge of Web based distributed computing we are tying to
address here.\Endpara[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Portable Module API\HdMjEndiii[]
\Para[]In view of the coming Web industry offerings, a unique technology
selection and detailed WebVM specification is a difficult task at
the moment. Two possible strategies could be: a) select the best software
platform, e.g. the latest server model from Netscape or JavaSoft and
build WebVM in this framework, or b) seek for a maximally portable
and scalable design, which must be then given by the common denominator
of various available and coming soon approaches. We decided to follow
the option b) which seems to be more safe given the current Web technology
\rsquo[]soup\rsquo[], has larger  near term installation base, and
is also more natural in the spirit of abstract, platform and vendor
independent Virtual Machine concepts.\Endpara[]
\Para[]Our main design objective is to provide a framework which would
a) allow each W3C compliant Web server to participate in WebVM computations,
 and b) provide hooks for more advanced servers to exploit their advantages.
The Virtual Machine concept provides a natural methodology to satisfy
both constraints. The essential point is the distinction between module
API, i.e. \ldquo[]what the user sees\rdquo[] and the WebVM implementation
layer. We already described in Section 2.2 the specific HTTP+CGI based
implementation of the minimal model and pointed out that Java server
implementation would look quite different. However, a generic WebVM
user does not usually see or need to care about many of these details.
Users develop application specific modules using their favored languages
(C/C++, Fortran, COBOL, ADA, Java etc.) and they follow the dataflow
metaphor. The minimal module API is built around the abstraction of
a named dataflow port (heavy dot in Fig. 1) and two function calls:
\tyxtstxit[]inp\Symuns[]handle = port\Symuns[]read(port\Symuns[]name)%
\tyxtstxendit[] and \tyxtstxit[]port\Symuns[]write(port\Symuns[]name,out\Symuns[]handle)%
\tyxtstxendit[]. For example, module \tyxtstxit[]M\mthxsub[]1%
\mthxendsub[]\tyxtstxendit[] would execute \tyxtstxit[] port\Symuns[]read%
\tyxtstxendit[] twice to receive handles for input objects %
\tyxtstxit[]I\mthxsub[]1\mthxendsub[]\mthxsup[](2)\mthxendsup[]%
\tyxtstxendit[], \tyxtstxit[]I\mthxsub[]1\mthxendsub[]\mthxsup[](2)%
\mthxendsup[]\tyxtstxendit[], perform the computation, then execute
\tyxtstxit[]port\Symuns[]write\tyxtstxendit[] twice to pass handles
for the output objects \tyxtstxit[]O\mthxsub[]1\mthxendsub[]%
\mthxsup[](2)\mthxendsup[]\tyxtstxendit[], \tyxtstxit[]O%
\mthxsub[]2\mthxendsub[]\mthxsup[](2)\mthxendsup[]%
\tyxtstxendit[] to the system layer, and exit. This minimal API is
identical for various WebVM implementation modes, be it pure CGI,
Java or Netscape/LiveWire. Various sites publishing their WebVM compliant
modules can select their favored implementation strategies and in
fact a given Intranet site can contain a mixture of implementation
techniques which are most adequate for individual application needs.%
\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Scripted Extensions\HdMjEndiii[]
\Para[]Conventional dataflow model is most useful for possibly heterogeneous
but topologically static distributed applications. However, several
relevant scientific computing and information processing problems
require dynamically varying topologies. For example, Adaptive Mesh
Refinement (AMR) algorithm for hyperbolic PDEs generates dynamically
new transient tasks for refined grids, and a WebAMR programmer would
like to distribute such processes efficiently over the WebVM nodes.
\Endpara[]
\FgBlock[]
\PreProcFgGfx\FgGfx[\FgGfxHt=279.00pt \FgGfxWd=373.00pt \def\FgGfxPath{dual1}\def\FgGfxCache{dual1}\FgGfxX=0.00pt \FgGfxY=0.00pt \FgGfxMag=90 \FgGfxRes=56 \def\FgGfxProc{IslandDraw}\def\FgGfxFilename{/home/T6D/HPFI/users/furm/img/ww1.id}]
\FgEndblock[]
\Para[\ParaType{B}\ParaFontsize{D}\ParaFontfam{\SSF}]Fig. 2: Client
(Java based visual editor) and Server (WebVM) components of a WebFlow
environment.\Endpara[]
\Para[]\newlinetag[]
\Endpara[]
\Para[]Similar expansion needs arise in Intelligent Agents based information
processing problems. Agents, sent to the \rsquo[]cloud\rsquo[] in
search for specific information, find it often useful to spawn other
agents/slaves, send them with suitable subtasks to specialized subdomains,
and then collect, compare and integrate the individual information
scores. The most popular agent technology is given by Telescript,
in which the information cloud in modelled in terms of a mesh of Telescript
servers-interpreters. Agent objects are autonomous chunks of Telescript
with methods supporting propagation in the Telescript medium, reproduction,
and rule based intelligent/adaptive behavior.\Endpara[]
\Para[]We initially focus on simpler, more structured and deterministic
dynamic compute-webs such as required by AMR. One possible way to
handle such problems is to extend the module API by domain specific
calls such as \tyxtstxit[]grid\Symuns[]refine\tyxtstxendit[] etc.
However, such approach mixes domain specific and generic WebVM components
and increases complexity of implementation since each domain-specific
call (and there will be many such calls for various domains) needs
to be associated with multi-language binders for all languages supported
by WebVM.\Endpara[]
\Para[]We chose instead a more elegant and problem-independent approach
based on scripted extensions of the base WebVM model. In terms of
the minimal model and its management modules, we introduce another
system process called \tyxtstxit[]Script Executive%
\tyxtstxendit[], and one more routine in the module API \EnDash[]
\tyxtstxit[]script\Symuns[]execute(string)\tyxtstxendit[] \EmDash[]
which passes scripts in the application-specific \tyxtstxit[]little
language\tyxtstxendit[] to the Script Executive for immediate execution/interpretation.
Script Executive will offer a default set of commands such as creating,
destroying or modifying the compute-web topologies, as well as mechanisms
for installing new application specific commands by users or their
domain system administrators.\Endpara[]
\Para[]Script Executive builds its functionality on top of the base
WebVM layer, including the server-to-server message passing, and hence
it can also exploit the distributed interpretation capabilities. For
example, a user command to create new node in the current compute-web
can be implemented with built-in dynamic load balancing: Script Executive
can issue a status request to Configuration Managers, select the optimal
node based on this information, and finally send the module placement
request to the Link Manager in this node. An alternative and often
more efficient strategy for load balancing could use periodically
refreshed information maintained by local Resource Managers but the
scripting channel will offer more direct insight into the realtime
operation of WebVM and a platform for refining the existent and prototyping
new commands in the WebVM instruction set. Also, system and user strategies
can be more easily integrated in the scripted mode. For example, application
may provice a special handler module to refine or even override the
default node placement process and pass the URL of such a handler
to the Script Executive as part of the command script.\Endpara[]
\Para[]At the current design stage we do not yet specify either the
syntax or the instruction set of such coordination script. Syntax
ambiguity might be soon resolved be new coming products \EnDash[]
for example, Netscape can provide an open enough LiveWire support
to be useful for our purposes, or W3C/CORBA initiative may come soon
enough with standard Web bindings for various language interpreters.
Initially, our needs in the scripting sector will be  limited and
we can tentatively develop a custom small interpreter while waiting
for more stable solutions by the Web community. We also note that
our scripted extension shares common aspects with other related published
specifications, such as: Script Node in VRML 2.0 to specify dynamic
behavior of other, more static VRML nodes; or the SQL scripting mechanism
in the JDBC interface to relational databases. \Endpara[]
\DivEndiii[]
\DivEndii[]
\DivLii[]\HdMjLii[]WebFlow \EnDash[] Visual Programming%
\HdMjEndii[]
\DivLiii[]\HdMjLiii[]Visual Authoring for the Web\HdMjEndiii[]
\Para[]Several high level programming paradigms can be implemented
on top of the WebVM layer discussed in Chapter 2. Based on our previous
experience with AVS and Khoros, we view visual authoring of application-specific
compute-webs as particularly attractive and useful system integration
technique. Java capable browser such as HotJava offers a natural implementation
vehicle for such high level tools. We illustrate it in Fig. 2 where
the WebVM modules are associated with Java threads at the client side
and visually editable via Java GUI/AWT classes. Visual feedback, corresponding
to currently instantiated dataflow channels can be implemented e.g.
via notification messages sent by individual Flow Executives to the
JavaVM at the clent side. In Netscape 2, such implementation is currently
impossible due to applet security restrictions, but some of these
constraints are to be modified in the following releases, and also
one can construct already now an equivalent realtime networking support
by using a suitable personal server in the client domain.%
\Endpara[]
\Para[]We expect such \tyxtstxit[]WebFlow\tyxtstxendit[] i.e. visual
Web programming paradigm to be come increasingly popular with the
growing complexity of the multi-language Web. First commercial tools
in this domain are already available (e.g. JFactory for Java software
engineering) and simple Java applet based visual editor prototypes
are now also within the reach of the Web research community. We expect
a family of such authoring tools to appear soon, specialized for various
editing tasks and operating at various granularity levels, ranging
from the fine grain Java class or VRML behavior editors, to coarse
grain problem solving and system integration toolkits.\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]WebToolkits as Meta Modules\HdMjEndiii[]
\Para[]In our visual WebFlow design work, we plan to focus again on
some minimal and expectably universal editor primitives that appear
in a natural way and are useful at various granularities of the underlying
compute-webs. Hierarchical design, in which computer-webs of finer
grain modules are encapsulated and become coarse grain modules in
a larger compute-web, will play essential role in providing the bridge
and navigability between various WebFlow editor instances. %
\Endpara[]
\Para[]For example, we expect to be using soon an SGI editor to design
3D scenes in a televirtual collaboratory environment, a JavaSoft editor
to develop the associated Java classes for Script Nodes with dynamic
reactive behavior, and a Netscape editor to integrate such reality
window into a multiframe window. Finally, we would use NPAC WebFlow
editor to plug-in such an environment/toolkit, now encapsulated and
viewed as composite module, into a larger scale distributed application
such as discussed in Chapter 1.\Endpara[]
\Para[]Since our WebVM is most adequate, at least initially, for handling
large coarse grain modules, we started recently the classification
of such \tyxtstxit[]WebToolkits\tyxtstxendit[] that are needed for
WebWindows based larger scale system engineering. A sample grouping
of various current and coming web technology products into self-contained
meta modules with well defined functionality and connectivity is collected
in the Table. As in the above example of developing a TVR collaboratory,
we expect each such toolkit to contain a set of finer grain compute-webs,
editable by suitable visual programming tools. Here, we try to identify
and encapsulate the top level modules to be used in the final application
or service integration.\Endpara[]
\TyColCol1[]
\FgBlock[]
\Tbl[\def\TableRuleWt{1}]
\Table[\def\TabColW{\\82\\90\\176\\183}]
\Rrule[\def\TabRuleHS{\\-\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\CellShade{2}\def\TabJustH{c}\def\TabJustV{t}]
\SSF Toolkit
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\CellShade{2}\def\TabJustH{c}\def\TabJustV{t}]
\SSF Entity
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\CellShade{2}\def\TabJustH{c}\def\TabJustV{t}]
\SSF Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\CellShade{2}\def\TabJustH{c}\def\TabJustV{t}]
\SSF Technologies
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
WebAgent
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
rule
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Intelligent Agents,
Distributed AI
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Telescript, Safe-Tcl
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
WebAuthor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
widget
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Interactive GUI Authoring
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
JavaScript,
LiveWireWebCASE
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
WebCASE
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
applet, module
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Software Engineering
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
JDE, TDE
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
WebCMS
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
process(or)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Cluster
Management
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Odine, EASY, ...
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
WebConf
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
person
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Conferencing/Chat
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
IRC, MOO,
LiveMedia
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
WebDBMS
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
table/object
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Relational \Symand[] OO DBMS
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
JDBC, Oracle,
Informix, ...
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
WebImg
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
image
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Imaging
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
AVS, Khoros
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
WebPDA
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
note
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Personal Digital
Assistant
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Netscap2, Lotus Notes, WebTools
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
WebSim
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
avatar
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Distributed Interactive
Simulations
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
VRML+, DIS/DSI
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
WebVoD
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
stream
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Streamlined Video \Symand[] Audio

\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
LiveMedia
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
WebWorld
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
3D object
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
3D Scene/World Design
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
VRML 1.0
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
WebHPL
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
array
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
multi-server
sclable HPCC
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Java, E, PCRC
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
WebTVR
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
world
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Web based televirtuality
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
VRML 2.0,
VRML+, MOO
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\TyColEndcol1[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Large Scale System Integration\HdMjEndiii[]
\Para[]Fig. 3 illustrates a Mega WebFlow environment for large scale
system integration in terms of WebToolkits collected in the Table.
Such a framework is at the moment still far beyond our reach but hopefully
soon feasible given the current explosion of the Web technologies.
Each toolkit is accessible as AVS-like module icon that can be brought
interactively to the visual editor area, customized in terms of the
chain of finer grain tools, and integrated. The overall system architecture
follows the reusable bridge topology discussed in Chapter 1. Hence,
it is applicable for integrating several large scale distributed Web
services such as command \Symand[] control, telemedicine or distance
education. \Endpara[]
\Para[]Suppose we focus on telemedicine domain, and even more specifically
on our current CareWeb project. The top level encapsulation unit,
i.e. an instance of a bridge meta module corresponds to a local (Syracuse)
school district at the \rsquo[]point of need\rsquo[] side, and to
a specific (pediatrics) department in a local (SUNY) hospital at the
\rsquo[]point of expertise\rsquo[] side. Other bridge modules, also
sketched in the figure, could represent other departments, hospitals
or HMO domains that are willing to adopt similar technologies. School
nurses connect to the CareWeb bridge for patient record database services,
medical information or interactive consulting with a nurse practitioner.
New connections are typically to be handled by the central %
\tyxtstxit[]Agent\tyxtstxendit[] module which performs the initial
 automated triage and provides a suitable switch to an adequate service
in the bridge area. A patient record request will be routed to the
\tyxtstxit[]DBMS\tyxtstxendit[] module which may in turn request additional
services from specialized media database servers such as %
\tyxtstxit[]Img\tyxtstxendit[], \tyxtstxit[]VoD\tyxtstxendit[] or
\tyxtstxit[]World\tyxtstxendit[]. Interactive consulting will be typically
routed to a \tyxtstxit[]Conf\tyxtstxendit[] module which offers chat\EnDash[]like
services. In more complex cases, nurse practitioner may request pediatrician\rsquo[]s
help. The doctor needs an insight into the patient record and the
assessment form as filled so far by the nurse and the nurse practitioner,
as well as access to an independent or shared chat space for consulting
with any of them or with other doctors. More advanced services are
available for special complex cases: for example, radiologist\rsquo[]s
expertise might be required and the need arises for real-time medical
image processing; or the surgeon, when brought to the consulting team
requests a virtual surgery playback in a \tyxtstxit[]TVR%
\tyxtstxendit[] session which requires a real-time \tyxtstxit[]HPL%
\tyxtstxendit[] based simulation. Specific medical record databases
are coupled with more generic medical information databases to guide
the healthcare providers in the decision making process. Agents are
routing such requests to on-board MIS databases in the bride area,
and if not available, can consult other bridges or finally offer the
guided access to the vast but poorly structured medical information
on the World-Wide Web.\Endpara[]
\Para[]The above description represents a plausible scenario for a
bridge operation in the healthcare domain as we see it today based
on interactions so far with the medical community. New contacts bring
new ideas and system design requirements. WebFlow based environments
for visual programming in large as in Fig. 3 are expected to play
essential role in prototyping new services and interactive, incremental
system refinement.\Endpara[]
\TyColCol1[]
\FgBlock[]
\PreProcFgGfx\FgGfx[\FgGfxHt=293.00pt \FgGfxWd=371.00pt \def\FgGfxPath{dual1}\def\FgGfxCache{dual1}\FgGfxX=0.00pt \FgGfxY=0.00pt \FgGfxMag=120 \FgGfxRes=56 \def\FgGfxProc{IslandDraw}\def\FgGfxFilename{/home/T6D/HPFI/users/furm/img/bridge.id}]
\FgEndblock[]
\Para[\ParaFontfam{\SSF}\ParaType{B}\ParaFontsize{D}]Fig. 3: Example
of using WebFlow for large scale software integration. Modules correspond
to WebToolkits collected in the Table.\Endpara[]
\TyColEndcol1[]
\DivEndiii[]
\DivEndii[]
\TyColEndcol2[]
\DivLii[]\HdMjLii[]References\HdMjEndii[]
\Para[\ParaType{B}]\Symlbk[]Baker95\Symrbk[] Marek Baker, \ldquo[]Cluster
Computing Overview\rdquo[], http://www.npac.syr.edu/techreports/hypertext/sccs-0748/%
\Endpara[]
\Para[\ParaType{B}]\Symlbk[]Bala95\Symrbk[] Balaji Velikandanathan,
\ldquo[]Parallel WebSearch\rdquo[], http://kayak.npac.syr.edu:2007/HPDC/Demos/WebWork.html%
\Endpara[]
\Para[\ParaType{B}]\Symlbk[]BeOl84\Symrbk[] M. Berger and J. Oliger,
\tyxtstxit[]J. Comp. Phys.\tyxtstxendit[] 53, 484 (1984)%
\Endpara[]
\Para[\ParaType{B}]\Symlbk[]Cheng95\Symrbk[] Gang Cheng, \ldquo[]NPAC
Oracle 7 Database Server\rdquo[], http://kayak.npac.syr.edu:1963%
\Endpara[]
\Para[\ParaType{B}]\Symlbk[]Cheng96\Symrbk[] Gang Cheng, \ldquo[]AskNPAC
Chat-Board\rdquo[], http://kayak.npac.syr.edu:1963/cgi-bin/chat/chat.html%
\Endpara[]
\Para[\ParaType{B}]\Symlbk[]Cowie95\Symrbk[] Jim Cowie, \ldquo[]RSA
Factoring by Web\rdquo[], http://www.npac.syr.edu/factoring/%
\Endpara[]
\Para[\ParaType{B}]\Symlbk[]FFCRC95\Symrbk[] Geoffrey Fox, Wojtek
Furmanski, Marina Chen, Claudio Rebbi and Jim Cowie, \ldquo[]WebWork:
Integrated PRogramming Environment Tools for National and Grand Challenges\rdquo[],
NPAC Technical Report, SCCS-715., http://www.npac.syr.edu/techreports/html/0700/abs-0715.html%
\Endpara[]
\Para[\ParaType{B}]\Symlbk[]FFP95a\Symrbk[] Geoffrey Fox, Wojtek Furmanski
and Marek Podgorny, \ldquo[]WebSpcae: A WebWindows Based Gateway to
ANL Labspace\rdquo[], http://ww.npac.syr.edu/projects/webspace/%
\Endpara[]
\Para[\ParaType{B}]\Symlbk[]FFP95b\Symrbk[] Geoffrey Fox, Wojtek Furmanski
and Marek Prodgorny, \ldquo[] Interactive Web based HPDC Technologies
for Distance Education\rdquo[], http://ww.npac.syr.edu/users/gcf/hpdc95master/%
\Endpara[]
\Para[\ParaType{B}]\Symlbk[]FFPCR95\Symrbk[] Geoffrey Fox, Wojtek
Furmanski, Marek Prodgorny, Gang Cheng and Roman Markowski, \ldquo[]
Interactive Web Technologies for Distance Education\rdquo[], http://ww.npac.syr.edu/users/gcf/sc95tutorial/%
\Endpara[]
\Para[\ParaType{B}]\Symlbk[]FoFu95\Symrbk[] Geoffrey Fox and Wojtek
Furmanski, \ldquo[]The Use of the National Information Infrastructure
and High Performance Computers in Industry\rdquo[], NPAC Technical
Report SCCS-732, July 1995, http://www.npac.syr.edu/techreports/html/0700/abs-0732.html%
\Endpara[]
\Para[\ParaType{B}]\Symlbk[]Fox96\Symrbk[] Geoffrey Fox, \ldquo[]WebFoil\rdquo[],
http://www.npac.syr.edu/users/gcf/webfoil/Main.html\Endpara[]
\Para[\ParaType{B}]\Symlbk[]Furm95a\Symrbk[] Wojtek Furmanski, \ldquo[]WebTools\rdquo[],
http://king.syr.edu:2006/WebTools.html\Endpara[]
\Para[\ParaType{B}]\Symlbk[]Furm95b\Symrbk[] Wojtek Furmanski, \ldquo[]HotJava
WebFoil\rdquo[], http://www.npac.syr.edu/users/gcf/rcihalloween%
\Endpara[]
\Para[\ParaType{B}]\Symlbk[]Haupt96\Symrbk[] Tom Haupt, \ldquo[]Early
experiments towards definition of a WebFlow interface\rdquo[], http://aga.npac.syr.edu:1995%
\Endpara[]
\Para[\ParaType{B}]\Symlbk[]Vish95a\Symrbk[] Vishal Mehra, \ldquo[]WebFlow
Editor Front-End\rdquo[], http://king.syr.edu:2006/HPDC4/Demos/WebFlow.html%
\Endpara[]
\Para[\ParaType{B}]\Symlbk[]Vish95b\Symrbk[] Vishal Mehra, \ldquo[]Alpha
Java Chat Server and Client\rdquo[], \Endpara[]
\Para[\ParaType{B}]\Symlbk[]WaBa96\Symrbk[] David Warner and David
Balch, \ldquo[]Medicine Meets VR: BRIDGE\rdquo[], \newlinetag[]
http://www.telemed.med.ecu.edu/bridge/bridge\Symuns[]1.htm%
\Endpara[]
\DivEndii[]
\DivEndbod[]
\Enddoc[]
