1 / 24

The Alchemy Project

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

caelan
Download Presentation

The Alchemy Project

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Alchemy Project Jay Lepreau Matthew Flatt Eric Eide Alastair Reid John Regehr University of Utah Contract F33615-00-C-1696 October 26, 2001

  2. 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

  3. 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

  4. Artist’s Conception

  5. 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

  6. 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)

  7. 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

  8. Maya: compile-time metaprogramming AspectJ: language support for cross-cutting concerns Maya and AspectJ JSE

  9. “Task Isolation” in Java • For real-time in particular • For QoS in general • For robustness • JSR-121… more later

  10. 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

  11. 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 } } }

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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)

  17. 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

  18. 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

  19. 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)

  20. 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?

  21. 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

  22. 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

  23. Program Issues • none

  24. Utah Alchemy ProjectDARPA PCES Program www.cs.utah.edu/flux/alchemy

More Related