Given by Wojtek Furmanski, Geoffrey Fox at Study of DoE2000 Initiative on July 1997. Foils prepared 13 July 97
Outside Index
Summary of Material
We proposed an evolutionary process of developing user-friendly visual component based authoring tools for HPCC by integrating the current C++ and coming Java based parallel object technologies via CORBA with the JavaBeans based visual component technologies. |
Our proposed process starts from the existing parallel C++ object libraries and provides HP-ORBlet based interoperability with Java. |
Next, the CORBA/Enterprise Beans based server/backend side component technologies are incorporated in the Java server and adapted to the HPCC needs within the emergent Java Frameworks for Computing. |
Finally, the BeanBox based front-end visual tools provided by the industry are being linked via client-side ORBlets with the tier-2+3 components to offer visual authoring of HP-Components and HPCC applications. |
Examples are given from DoE HPCC Technologies |
Outside Index
Summary of Material
Geoffrey Fox and Wojtek Furmanski |
Northeast Parallel Architectures Center (NPAC) |
Syracuse University |
315 443 2163 |
gcf,furm@npac.syr.edu |
We proposed an evolutionary process of developing user-friendly visual component based authoring tools for HPCC by integrating the current C++ and coming Java based parallel object technologies via CORBA with the JavaBeans based visual component technologies. |
Our proposed process starts from the existing parallel C++ object libraries and provides HP-ORBlet based interoperability with Java. |
Next, the CORBA/Enterprise Beans based server/backend side component technologies are incorporated in the Java server and adapted to the HPCC needs within the emergent Java Frameworks for Computing. |
Finally, the BeanBox based front-end visual tools provided by the industry are being linked via client-side ORBlets with the tier-2+3 components to offer visual authoring of HP-Components and HPCC applications. |
Examples are given from DoE HPCC Technologies |
The goal of Advanced Computational Testing and Simulation Toolkit (ACTS) within the DoE2000 program is to integrate numerical, parallel, object and runtime libraries such as PETSc, POOMA, PAWS, Cumulvs and others. |
FY'98 solicitation calls for extensions of ACTS to enable multi-language support and to enhance portability, functionality and interoperability of the object subsystems under development. |
We observe that the current stage of the ACTS evolution can be viewed as moving form the specialized object to reusable component based programming. |
We also note that a similar transition from object-oriented to visual components is already well advanced for PC desktop applications and is now being extended to the enterprise (hence naturally distributed) computing for the intranets and the Internet. |
A new revolution referred to as the 'Object Web' based on integrating CORBA/IIOP based distributed objects and Java/JavaBeans based visual componentware technologies is around the corner. |
The development of ACTS could be boosted by adapting these new industry standards and augmenting them by suitable focused high performance implementations of critical functions. |
We propose here a systematic process of evolving the current heterogeneous collection of object libraries and tools within ACTS towards a more organized and interoperable ensemble of HP-CORBA based HP-Components.
|
Large gains in HPCC user productivity will be attained if we can integrate the ideas and technologies of modern (PC) visual programming with classical HPCC approaches |
Use of important emerging Web and CORBA technology allows HPCC object (C++.,Java) and visual (CODE, Hence, WebFlow, AVS, Khoros) systems to be enhanced to become parallel component-based visual programming systems. |
CORBA does not incorporate HPCC but as it specifies services and not implementation, we assert that one can build a high performance HP-CORBA environment where we separate a high functionality modest performance control layer from an optional high performance method invocation layer. |
HP-CORBA can be built on Nexus and Globus and it will allow HPCC users access to any CORBA service with an option for high performance when necessary. |
The NPAC WebFlow technology can be combined with emerging JavaBean technology to produce a prototype HPcomponent system which can be used with DoE HPCC object based systems such as POOMA and PETSc. |
We present the proposed process of integrating HPCC and Enterprise Computing technologies on 2-dimensional 3x3 chart, exposing the evolution of user and system perspectives on new computing technologies. |
On the (vertical) system/complexity axis, we start from PC desktop and we evolve towards distributed and finally HPCC computing. |
On the (horizontal) user/simplicity axis, we start from objects and we evolve towards reusable components and finally their visual development and runtime environments. |
The first row on our char represents the already established PC technologies exemplified by systems such as Visual C++/J++, VBScript, Borland Delphi, Visual Cafe etc. |
The second row corresponds to the emergent Object Web based Enterprise Computing that integrates Java/JavaBeans based component technologies with CORBA based distributed objects. |
Finally, the third row represents our proposed HPCC extensions of these technologies in terms of HP-CORBA based HP-Components. |
Traditional (compiled) object-oriented languages such as C++ offer powerful development tools for expert programmers. |
However, C++ is often being found difficult as a delivery platform for high level reusable classes, suitable for visual interactive application development. |
Most typical problems with C++ based large scale and/or visual interactive development are: platform dependency, code maintenance, lack of code mobility, lack of introspection support for runtime code manipulation and inspection. |
Java offers several attractive features missing in C++ and is now being considered a superior language by a rapidly growing community of Java programmers. |
In particular, new language capabilities brought recently by JDK1.1 such as event delegation/filtering, serialization, introspection and JavaBeans design patterns offer a solid foundation for reusable component based programming. |
Integrated multithreading, networking and advanced graphics (evolving from AWT to Java2D to Java3D) offers a foundation for visual interactive programming and IDE engineering. |
JavaBeans are Java objects with well defined methodology for providing hooks that enable design or even runtime composition. |
Beans connectivity is implemented in terms of events, posted by the source beans and selectively delivered to the destination beans that expressed interest in specific event types. |
Interests are expressed, either programmatically or dynamically in the design- or runtime, in terms of specialized objects - event listeners - that are created by (human or machine) bean connector and then specialized and registered with the destination beans. |
Bean design patterns for naming accessor methods and other control elements provide a uniform support for dynamic bean manipulation both by programmers and by authoring tools (beanboxes). |
At the moment, the most popular component technology at the PC desktop level comes from Microsoft in terms of OLE/ActiveX controls but the much more powerful and modern JavaBeans technology gains rapid acceptance by the software industry. |
Beans can be manipulated programmatically but their most efficient use is within visual development or runtime environments. |
A typical PC desktop example is a GUI builder in which both the control buttons and the application-specific computation and graphics modules are represented as beans and suitably positioned and connected in the visual interactive mode. |
At the moment, JavaSoft offers a simple BeanBox called BDK but a broad suite of more sophisticated and powerful IDEs is under development by the Web industry. |
Most notable BeanBox called InfoBus, developed by Lotus and used in their Kona product for Beans based electronic presentation tools will become part of future JDK releases. |
Another interesting BeanBox technology called BeanConnect will be offered by Netscape and will provide HTML/JavaScript support for bean manipulation and connectivity. |
At present, JavaBeans technology is focused on component programming within a single Java VM. |
Within the Sun philosophy of '100% Java', distributed Beans can be developed using RMI interconnect. However, the rest of the industry tries to protect their C++ investments while converting to Java. |
Hence, in parallel with JavaBeans development, the Web industry explores now the linkage of Java with CORBA based distributed object technologies which offer an full C++/Java interoperability. |
CORBA supports cross-language remote object invocation as well as IIOP (Internet Inter-ORB Protocol) based interoperability between object brokers from various vendors. |
Of particular interest are Java based ORBs or ORBlets which can be downloaded as applets to enable CORBA capabilities also at the client/browser side. |
An alternative, offered by Netscape, is a resident ORB support in all browser and server products. |
Java based ORBs will soon turn the Web, so far acting as a largely passive document publishing framework, into a powerful dynamic world-wide distributed object-based computing environment. |
A natural next step in the Object Web evolution will be reusable component based support for distributed objects and the associated BeanBoxes for authoring. |
This area is now actively explored by the software industry as a promising framework for the Intranet Enterprise Computing. Some prominent efforts include:
|
An alternative to the emergent CORBA/Beans based distributed componentware is Microsoft DCOM which is a distributed version of OLE/ActiveX. DCOM is currently a few years behind CORBA and hence it will likely evolve by assimilating the CORBA/Beans concepts. |
Integration of JavaBeans based visual component- and CORBA based distributed object technologies will result in a new generation of visual authoring and runtime environments for distributed computing. |
We expect a variety of specific models to appear soon, based on various distributed computing paradigm of relevance for the Object Web given on next foil |
Such environments, provided by the Web Industry, will be naturally focused on Internet commerce, entertainment and distance learning. |
HPCC will add optimized support for high performance time stepped simulations and will use commercial technologies listed above for authoring, control, monitoring, visualization, steering, etc. |
client-server (i.e. embarrassingly parallel with visual icons representing Internet services) |
collaboratory (single server and multiple clients with client-driven multicast channels) |
push (single server and multiple clients with server-driven multicast channels) |
dataflow (multi-server, data driven) |
distributed interactive simulations (multi-server, realtime clock driven) |
event driven simulations (multi-server, event driven) |
televirtuality (multi-server, multi-client, client or server/agent-driven) |
Distributed Componentware is an emergent Web technology in its early stage. |
We will witness several specific prototype solutions as listed above, but one can expect some commonalities in these systems, typically based on the 3-tier Object Web Architecture as outlined on next foil. |
This architecture extends naturally to the HPCC domain as discussed in the following foils, devoted to the third row in our technology evolution chart. |
Clients will offer BeanBox based visual composition tools with the actual components residing or represented/wrapped in various Java servers (supporting HTTP, IIOP and streamlined media) of an enterprise |
A mesh of Java Servers will form a middleware layer, serving applets, beans and orblets that establish IIOP connectivity with the CORBA bus, and managing distributed components as CORBA/Enterprise Beans. |
A backend layer in tier 3 will by given by a suite of legacy systems, exporting their CORBA IDL interfaces to and accessible at the CORBA bus in the middleware. |
Based on DoE support, we developed at NPAC a 3-tier based visual dataflow authoring environment WebFlow that can be viewed as an early prototype of the emergent family of Object Web authoring systems. |
WebFlow development started in '96, and hence in the pre-Beans, pre-ORBlets era but it contains nevertheless most aspects of the Object Web Architecture discussed above, emulated in terms of the JDK1.0 technologies and listed on next foil. |
In the proposed system, we intend to use WebFlow prototype and augment it by the currently emerging technologies: JavaBeans for visual graph authoring, servlet based orblets for IOOP connectivity, and CORBA/Beans based (to be yet defined by OMG...) WebFlow module API. |
Visual authoring front-end (based on GEF Java package from UCI) that represents distributed components as graph nodes and their data connections as graph links |
Middleware given by a mesh of Java Web Servers from JavaSoft wit servlet based support for session, module and connectivity management |
Sample backend components such as imaging, JSDA collaboratory or simple HPCC simulation, represented as custom (i.e. pre-CORBA/Beans) WebFlow modules. |
We now start the discussion of the proposed HPCC extension and adaptation of the Object Web Architecture. In the object domain (chart column), we propose the extension of the CORBA model for the HPCC domain by developing a minimal high performance ORB on top of MPI/Nexus. |
Such HP-ORBlets, residing in the individual nodes of a parallel system (either as network daemons or as runtime libraries) would allow to hide explicit message passing calls in terms of higher level more user-friendly remote object invocations. |
HP-ORBlets would focus on high performance data/method communication support, whereas the lower bandwidth control communication would be passed to and handled by the full functionality lower performance commercial ORBs in the CORBA bus in the middleware layer. |
The split between data and control communication would be fully transparent at the programmatic level, i.e. both parallel object developers and integrators would be offered a uniform CORBA object based programming model. |
Two major advantages of the proposed approach are:
|
A current common trend in several HPCC domains is to encapsulate parallel constructs in terms of maximally reusable components. |
Examples include:
|
We propose to follow the emergent industry standards for distributed computing such as Enterprise/CORBA Beans, and to integrate them with the HP-CORBA based remote object framework. |
The resulting HP-Components will be composable in terms of BeanBoxes based visual tools, publishable on the CORBA bus, and still high performance due to the optimized HP-ORBlet based data communication support. |
This technology represents the final corner of our technology evolution chart and the ultimate goal of our proposal. |
In the envisioned development environment, both parallel object developers and HPCC applications integrators are offered intuitive visual tools to assemble node programs or computational graphs for HPDC applications in terms of iconic components of suitable grain size and connectivity. |
Our approach builds on anticipated convergence of Java/CORBA based object and component technologies and it offers guidelines for the design and development of the emergent Java Frameworks for Computing. |