Java and Web technology suggest new programming environments that integrate compiled and interpreted or scripting languages. In Figure 1.8, we show a system that uses an interpreted Web client interacting dynamically with compiled code through a typical middle-tier server [32]. This system uses an HPF = backend, but the architecture is independent of the backend language. The Java or JavaScript frontend holds proxy objects produced by an HPF frontend operating on the backend code. These proxy objects can be manipulated with interpreted Java or JavaScript commands to request additional processing, visualization, and other interactive computational steering and analysis. We note that for compiled (parallel) Java, the use of objects (as opposed to simple types in the language) probably has unacceptable overhead. However, such objects are appropriate for interpreted frontends, where object references are translated into efficient compiled code. We believe such hybrid architectures are attractive and warrant further research.
Figure 1.8: An architecture for an interpreted Java frontend
communicating with a middle-tier server controlling dynamically an
HPCC backend