Webtool Foilset Towards Web/Java based High Performance Distributed Computing - an Evolving Virtual Machine

This talk describes an evolutionary process of building Web/Java based HPCC environment, pursued by the IWT'96 research group at NPAC. Since the "Java phenomenon" is the essential part of this process, we first review aspects of Java history that started from NeWS and ended with Java as the most popular programming framework for the Web. Since the Java phenomenon didn't happen in a vacuum and since other similar models might affect the onging Web/Java evolution, we also mention previous related approaches such as NeXT or Telescript, as well as our previous efforts in this area such as MOVIE and HPFI. Today, with Java in its expansion phase , the time is right to start addressing its role for various computational domains, including HPCC. Current JavaVM suffers from performance problems when it comes to numerically intensive computing, but serveral performance boosters are available such as native classes or the coming family of JIT compilers. Unlike ANDF that focused on too much on performance to broadly succeed, Java gained quick acceptance by offering first a general purpose architecture-neutral framework which will now provide wrappers for and facilitate the development of specialized native libraries for HPCC. With both browsers (HotJava, Netscape4) and servers (Jeeves, Jigsaw) becoming Java powered in the near future , we can now start addressing Java based distributed environments. Given that Java continues evolving and its spec is controlled by Sun, a reasonable strategy is to encapsulate Java engines via abstraction layers such as Netscape JRI for native code or our WebVM for distributed computing. WebVM offers foundation for Web based HPCC in which computing is done by a mesh of evolving Web servers and human interfaces are given by evolving Web browsers. A natural associated programming paradigm is given by WebFlow, i.e. Web based dataflow with Java applet based visual programming interfaces. In the next step, by systematically grouping WebFlow module networks into larger scale meta-modules, we will naturally arrive at the WebVM/WebFlow based Problem Solving Environments with collaboratory Bridge topologies that link information providers/producers and consumers via intelligent agents. We are exploring such a multi-purpose bridge architecture in two telemedicine projects: 3D Visible Human where we gradually migrate from previous AVS based imaging tools to the corresponding Java modules; and CareWeb for school nursing where we integrated several databases that pertain to the student health record and we offered interactive consulting 'HyperWorld' for the healthcare personel. We are now pursuing several prototyping thrusts aimed at developing a proof-of-the-concept architecture-neutral WebVM layer on top of evolving Web servers. These range from the still most popular NCSA or CERN HTTPD deamons where we add HTTP based server-to-server communication links to more modern Java based servers where we can build sophisticated concurrency patterns in terms of Java networking and multithreading. We are currently evaluating a set of Java server technologies such as Jigsaw, Habanero and Infospheres. Jigsaw allows to manage URL-adressable dynamic Java resources, ranging from conventional page services to arbitrary distributing computing modules. Habanero offers a framework for multi-server based event distribution, ranging from simple collaboratory environments to arbitrary event-driven simulations. We are evaluating these and other new promising Web technologies as candidates for WebVM components. Based on several alternative models, we made our initial selection of technologies and we start the integration process. Our goal is to put together a minimal but fully operational WebVM prototype which will allow us in turn to address the design and prototyping issues for various high level programming models in the Web based HPCC framework. The following set of screens summarizes our current activities (as of August '96) in this area. WebVM management is distributed in terms of personal Jigsaw servers, maintained by IWT'96 developers. This concept, prototyped in our Perl/CGI based WebTools '94, in now productized in Java/Jigsaw based WebTools '96. We are experimenting with several dynamic Jigsaw resources/modules such as Chat, Forms or Thread monitors. We also initiated WebFlow front-end prototyping, with the initial focus on scalable tools for Java inheritance graph analysis. Habanero based collaboratory graph layout tool was also constructed and is used to experiment with partitioning algorithms, viewed as intelligent agent or simulation extensions fo the habanero framework. An alternative collaboratory model, Shaking Hands was started at NPAC in alpha Java, is now continued at IBM Watson, and offers a set of services such as Chess or Whiteboard which we now plan to package as Jigsaw resources. Multi-server coordination is prototyped in terms of portlets based Java message passing given by Caltech Infospheres. Other experiments with Jigsaw recourse include interfaces to JDBC and to MOO servers. We evaluate MOO as one of the simulation engine candidates for VRML based televirtual environments. We are also testing the first Java based VRML2.0 implementation given by the Liquid Reality toolkit. Early WebVM prototype including components listed above is expected to be operational by the end of '96 and then tested as a reusable middleware in several ongoing projects.