50 likes | 144 Views
Compiler:. CHAIMS compiler, simple scheduler. client code in C, C++, Java, stub code. user. megaprogram in CHAIMS language. Idl-file generator and compiler. executable client ( CSRT ). C++, Java compiler and linker. network. Interpreter:. user. CHAIMS execution machine
E N D
Compiler: CHAIMS compiler, simple scheduler client code in C, C++, Java, stub code user megaprogram in CHAIMS language Idl-file generator and compiler executable client (CSRT) C++, Java compiler and linker network Interpreter: user CHAIMS execution machine (interpreter and scheduler) completemegaprogram in CHAIMS language serves as input to CHAIMS-protocol user some CHAIMS statements serve as input to network Interpreter instead of Compiler CHAIMS
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 CHAIMS
Current Architecture: Several Implementations of PAM Client C P A M - protocols CORBA-idl DCE-idl Java-class W r a p p e r s M e g a m o d u l e s CHAIMS
Alternative Architecture:Other Approach to Heterogeneity Client client site e.g. TCP/IP sockets or RMI CPAM different wrapper site RMI wrapper CORBA wrapper RMI wrapper sites of servers CORBA RMI server-specific protocols native server 1 native server 2 native server 3 chaims compliant module chaims I/O module CHAIMS
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. CHAIMS