June 1998 CHAIMS1 Interpreter instead of Compiler CHAIMS execution machine (interpreter and scheduler) user Interpreter: network CHAIMS-protocol complete megaprogram in CHAIMS language some CHAIMS statements user serves as input to serve as input to Compiler: megaprogram in CHAIMS language client code in C, C++, Java, stub code executable client (CSRT) user CHAIMS compiler, simple scheduler Idl-file generator and compiler C++, Java compiler and linker network
June 1998 CHAIMS2 Reasons for Interpreter Dynamic scheduler: »Input is parsed and stored in a dependency graph. »Execution machine (interpreter / scheduler) works through the graph and makes appropriate calls: –estimate-calls are added in order to get necessary run-time information for scheduling (cost-function) –every invocation is issued as soon as possible (data-flow) and reasonable (according to cost-function) –all invocations for which the CSRT waits for results are polled regularly, and results extracted and new invocations issued as soon as possible CSRT would still be sequential! Overview results, flexible interactions: »composer can program statement by statement; immediate results can influence subsequent programming »like ftp, web
June 1998 CHAIMS3 Current Architecture: Several Implementations of PAM Client C P A M - protocols CORBA-idlDCE-idlJava-class M e g a m o d u l e s W r a p p e r s
June 1998 CHAIMS4 Alternative Architecture: Other Approach to Heterogeneity Client native server 1 native server 3 native server 2 chaims compliant module chaims I/O module RMI wrapper e.g. TCP/IP sockets or RMI CPAM CORBARMI server-specific protocols sites of servers client site different wrapper site RMI wrapper CORBA wrapper
June 1998 CHAIMS5 Reasons for Alternative Architecture Overall: »Simpler architecture: less wrappers, just one protocol on client side Server-side: »Dataflow-optimization: direct messages within CPAM layer between megamodules/their wrappers possible without bridges Client-side: »Thin client that could run everywhere (TCP/IP or RMI are available everywhere, but not CORBA or DCE). »Implementation of the CSRT by interpreter instead of compiler is easier. »Already now we use just transport-facility of different distribution systems.