240 likes | 351 Views
The Alchemy Project. Jay Lepreau Matthew Flatt Eric Eide Alastair Reid John Regehr University of Utah Contract F33615-00-C-1696 October 26, 2001. Problem Description. Embedded RT software development too difficult, prone to error, expensive
E N D
The Alchemy Project Jay Lepreau Matthew Flatt Eric Eide Alastair Reid John Regehr University of Utah Contract F33615-00-C-1696 October 26, 2001
Problem Description • Embedded RT software development too difficult, prone to error, expensive • System-level programming using components is especially hard • Embedded sys, VM, middleware, OS • Non-local constraints • Need build-time assurance • Existing code • Performance
Project Objectives & Technical Approach • Robust, flexible component composition • A mostly static architecture • Design rules checked at system build time • Aspects implemented using components • “Weaving” by composition • … provides: • “Product line” flexibility, increased reuse • AOP • Architectural clarity • Other: • Explore new compile-time metaprogramming system as aspect language for Java • Cross-layer RT QoS provision
Knit: Components for C • External component definition and linking language • Discussed at previous PI meetings • Released Feb’01, open source • Gaining experience and refining it • Version 2 in progress
Jiazzi: Components for Java • Support for component programming on a large scale • Jiazzi components… • are not stored in hierarchical namespace. • import and export signatures. • are parameterized by imports. • are defined and composed using an external language. • Flexible class extensions (mixins) • Groups of related mixin functionality (aspects)
Maya: Compile-time Metaprogramming for Java • “Macros on crack” • Semantic actions in the parser are generic functions • Maya “macros” are methods on the generic functions • New syntax returned to parser • Is hygienic and referentially transparent
Maya: compile-time metaprogramming AspectJ: language support for cross-cutting concerns Maya and AspectJ JSE
“Task Isolation” in Java • For real-time in particular • For QoS in general • For robustness • JSR-121… more later
Contribution to PCES Goals • Unified model for components and aspects • Functional and non-functional aspects • Design rule checking (constraints) • Support product families & evolution in Java & C • Java: aspects via components and language • Increased predictability, cross-layer • Promote technology adoption • Component mining • Minimal changes to existing code • Usable today: Knit, Jiazzi, Maya: open source
Family of JVMs:the OVM product line Composable RT schedulers Task isolation Resource controls VM services, footprint Object representation Design / configure time assurances Component reuse Principled use of COTS software Predictable, resilient run-time behavior Fit constrained execution envs. Cheaper, faster, better development Contributions to Military Apps } } }
Military Apps (cont’d) • Kernel CPU reservations for UAV OEP • Benefits: • Increased predictability • Isolation of timing faults • for C++ soon, Java later • Challenges: • Param calibration for multithreaded apps • Adjustable safety margin • Make reservations controllable from remote nodes
Military Apps (cont’d) • Jiazzi’ed event service in Boeing OEP Java-based ORB (w/ Wash U) • Aspect weaving in UAV Java code • At compile time using Maya • At runtime using Handi-Wrap
Metrics • Systems metrics: • UAV & Linux/RK CPU resv: quantified improvement in predictability • OVM product family: footprint • SW Engineering metrics • Reduced module “coupling” in Jiazzi’ed systems • Constraints: fewer incorrect systems composed by students, in a controlled study • Mining: quicker to componentize, in a controlled study
OVM mobile processes as Alchemy components Resource management in OVM w/Alchemy checking Alchemy-configured memory management in OVM Jiazzi + constraint checker Alchemy-configured data layout in OVM Jiazzi + weaver release Alchemy-configured feature selection in OVM Jiazzi release Initial OVM as Alchemy components 2001 Knit release Blue: tools Black: tool use Project Tasks/Schedule CPU resv in UAV Maya release
Technical Progress & Accomplishments • Jiazzi: components for Java • New release (Aug’01) • On-site meeting with OVM team (Sep’01) • Applied Jiazzi to OVM “Repository” subsystem • OOPSLA paper (Oct’01)
Accomplishments (cont’d) • Knit: components for C • “Shearing” -- extracting code that implements a component • Required in order to import and export types • Applied to RTLinux apps, the MzScheme VM, and the OSKit
Accomplishments (cont’d) • Component mining tools and methodology • Tools to extract components from existing code • Human-guided heuristic process (“lather, rinse, repeat”) • Knit/C tools applied to • Moab active network OS • MzScheme virtual machine • OSKit OS components • … by 3 different people. Tools improved markedly. • Jiazzi/Java next
Accomplishments (cont’d) • Maya: Metaprogramming for Java • Thesis signed (Aug’01) • Implemented Handi-Wrap tool for run-time metaprogramming (Sep’01) • Initial release (Oct ’01) • AOSD paper under review (Oct ’01)
Next Milestones • Jiazzi • First non-beta release (4Q01) • Construct OVM from Jiazzi components (1Q02) • RT-Java components (4Q02) • CPU reservations in UAV OEP (1Q02) • Java “Task” isolation • G.Back PhD thesis signed (any day!) • JSR-121 release (1Q02) • Maya • PLDI submission (Nov ’01) • Integrate with Jiazzi?
Collaborations • OVM team (Purdue, UMD, SUNY) • BBN: • CPU reservations across UAV/OS • Alchemy-configured feature selection in OVM • Deliver RT-JVM components (w/ Purdue) • Wash Univ: Jiazzi’ed event service in Boeing OEP’s Java-based ORB
Technology Transition/Transfer • Software releases & users described earlier: OVM, BBN OEP, Boeing OEP? • Sun JSR-121: “pseudo-task” isolation • Highly relevant to real-time & robustness • Potential alternate base for RT-Java • A natural resource boundary • OS abstractions, GC mechanisms • Long line of OS/lang. research at Utah • Utah has leading role in Expert Group • Will be in JDK 1.5 (3Q02) • Just first stage: control;next: sharing, resource management
Program Issues • none
Utah Alchemy ProjectDARPA PCES Program www.cs.utah.edu/flux/alchemy