160 likes | 314 Views
CHAIMS. CHAIMS. CHAIMS: C ompiling H igh-level A ccess I nterfaces for M ulti-site S oftware. Stanford University. Objective : Investigate new approaches to large-scale software composition .
E N D
CHAIMS CHAIMS
CHAIMS CHAIMS: Compiling High-level Access Interfaces for Multi-site Software Stanford University Objective: Investigate new approaches to large-scale software composition. Approach: Develop and validate a composition-only language, a protocol for large, distributed, heterogeneous and autonomous megamodules, and a supporting system. CHAIMS
Shift in Programming Tasks I n t e g r a t i o n C o d i n g 1970 1990 2010 CHAIMS
Typical Scenario - Logistics A general has to ship troops and/or various material from L.A. to Chicago: • different kind of material, not every airport equally suited • congestion, prices, weather constraints • exact due or ready dates • different transport service providers Today: · calling different companies, looking up information on the web, reservations by hand · hand coded systems Future: fast system development by tools supporting automated composition CHAIMS
What CHAIMS does: Composition of megamodules by a composition only language (CLAM) that also provides run-time cost estimation and allows automatic run-time invocation scheduling. Composition is automated by using the protocol CPAM on top of several distribution systems by hiding protocol details in CLAM, and by providing a compiler for CLAM. CHAIMS
Megamodules - Definition • from different providers: several services from different providers available for similar tasks • autonomous: maintenance of megamodule and control over resources remains with provider • heterogeneous: accessible by various distribution protocols like RMI, DCE, CORBA • distributed: to be used by more than one client • large: computation intensive, data intensive, ongoing processes Megamodules are large, autonomous, distributed, heterogeneous services or processes. CHAIMS
Examples of Megamodules General I/O-megamodule Travel information: • Computing all possible routes between two cities • Computing the air and ground cost for each route given data about the goods to be transported RoutePlan - AllRoutes - ... RouteCost - OneRoute- Cost - ... Calculating optimal routes • Two megamodules from different suppliers offering similar services BestPick - Optimum - ... RouteChoose - BestRoute - ... InputOutput - write - ask - ... CHAIMS
Megamodule Providers wrap legacy megamodules writes CPAM compliant megamodule Wrapper Templates add information to CORBA RM I b CHAIMS Repository d e DCE MEGA Modules a c Process - Providing Megamodules CHAIMS
Composers write in CLAM read CHAIMS Repository Megaprogram Megaprogram information generates CHAIMS Compiler Client Side Run Time compiled megaprograms Process - Composing Megamodules CHAIMS
Client Side Run Time Distribution System (CORBA, RMI, …) with CPAM Protocol DCE CORBA d e b a c MEGA Modules Process - Running a Megaprogram located on the client located on several servers CHAIMS
Megamodule Provider Composer provides megamodules client side server side writes Wrapper Templates Megaprogram adds information to CHAIMS Compiler CHAIMS Repository b d generates e a Client Side Run Time c MEGA Modules Distribution Systems (CORBA, RMI…) Process - Summary CHAIMS
CHAIMS - Special Features CHAIMS supports megamodule heterogeneity: • The CHAIMS compiler ensures that clients support the various megamodule distribution systems • The CHAIMS data encoding-rules facilitates heterogeneous data transmission between megamodules CHAIMS preserves megamodule autonomy: • The CHAIMS repository contains the information necessary to access megamodules • Run-time cost estimation allows to leave control over resources to providers CHAIMS enables optimized composition: • Parallelism, invocation monitoring, and cost estimation allow clients to optimize the invocation sequence to megamodules • Global pre-setting of parameters and partial extraction of results allow minimized data flow between megamodules CHAIMS
Primitives in CHAIMS Pre-invocation: SETUP: set up a connection to a megamodule SET-, GETPARAM: preset / get parameters in a megamodule ESTIMATE: get cost estimation for optimization Invocation and result gathering: INVOKE: start a specific method EXAMINE: test status and progress of an invoked method EXTRACT: extract results from an invoked method Termination: TERMINATE: terminate a method invocation TERMINATEALL: terminate the connection to a megamodule CHAIMS
CHAIMS proves that ... »We can do composition in a high-level language and hide technical details »Large-scale composition can be automated »Run-time cost estimation is essential for invocation scheduling optimization. CHAIMS
Focus for Future • Applying CHAIMS to a larger real-life example. • Automated scheduling of invocations and extractions, automatic optimization of dataflows. • Automatic generation of direct dataflows between megamodules. • Flexible interaction with megamodules; extracting and handling overview results. • Enhancing CHAIMS language CLAM and complementing it by graphical front-end. CHAIMS
CHAIMS CHAIMS