Current Web systems, fueled by Java, are evolving rapidly towards a powerful open infrastructure that will enable world-wide distributed computing. In the current Web/Java expansion phase, we are witnessing a wide variety of new interesting tools and technologies but the overall integration framework is still missing and the software reuse remains difficult. We need a coarser grain encapsulation unit than a Java class to enable user-friendly distributed computing on the Web. In fact, several attempts at specifying such a framework are underway, for example JavaBeans from JavaSoft. However, the Web software industry is currently focused mainly on the front - end support for component based GUI integration, whereas the middleware and back-end layers are still an open research and prototyping area. At NPAC, we are monitoring the emergent Web technologies pertaining to the domain of world wide scalable distributed computing and we are designing and prototyping a visual graph based dataflow environment,WebFlow, using the mesh of Java Web Servers as a control and coordination middleware, WebVM. |
|
Our goal is to provide a coarser grain packaging model and the associated user-friendly authoring framework for distributed applications on the Web. We believe that we should build on top of the established standards such as HTTP, HTML and Java, and hence we adopt Java Web server as a base runtime and coordination node of any distributed Web system. Dataflow model, already proven effective by previous systems such as AVS, Khoros, etc. Hence and others, seems to be a natural coordination framework to extend the current node model in which HTTP/MIME data flows between Web client and server towards multi-server systems. Hence, we propose a runtime environment given by a mesh of Web Java servers to coordinate distributed computation represented as a set of channel-connected coarse grain Java modules. Modules are thin veneer Java interfaces so that any chunk of Java can be easily modularized and connected to other modules via suitable communication ports, acting as terminals of point-to-point dataflow channels. Modules run asynchronously, are mobile i.e. can be instantiated on any WebVM server, and communicate by exchanging Java objects along their dataflow channels. |