WebFLow PrototypeWebFlow logo:Click here to return to main page






Our prototype WebVM is given by a mesh of Java Servers, running servlets that manage and coordinate distributed computation. Atomic encapsulation units of WebVM computation are called modules and they communicate by sending objects along channels attached to module. Unlike management servlets which are usually persistent and application independent, modules are more transient and can be dynamically created, connected, scheduled, run, relocated and destroyed by servlets. WebFlow is a particular programming paradigm implemented over WebVM and given by a dataflow programming model (other models under experimentation include data parallel, collaboratory, and televirtual paradigms). WebFlow application is given by a computational graph, visually edited by end-users using Java applets. Modules are written by module developers, people who have only limited knowledge of the system on which the modules will run. They not need concern themselves with issues such as:

  • allocating and running the modules on various machines
  • creating connections among the modules
  • sending and receiving data across these connections
  • running several modules concurrently on one machine
  • The WebFlow system hides these management and coordination functions from the developers, allowing them to concentrate on the modules being developed. WebFlow management is currently implemented in terms of the following three servlets: Session Manager, Module Manager, and Connection Manager. These servlets are URL addressable and can offer dynamic information about their services and current state. Each of them can also communicate with each other through sockets.

    The WebFlow prototype is discussed under three sections.
    User Interface
    Server Side Implementation and
    Tutorial for developing modules