Download presentation
Presentation is loading. Please wait.
1
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
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
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
4 Artist’s Conception
5
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
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
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
8 Maya and AspectJ Maya: compile-time metaprogramming AspectJ: language support for cross-cutting concerns JSE
9
9 “Task Isolation” in Java For real-time in particular For QoS in general For robustness JSR-121… more later
10
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
11 Contributions to Military Apps 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 } } }
12
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
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
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
15 Project Tasks/Schedule Knit release Alchemy-configured feature selection in OVM Initial OVM as Alchemy components Alchemy-configured data layout in OVM OVM mobile processes as Alchemy components Jiazzi + constraint checker Alchemy-configured memory management in OVM Jiazzi + weaver release Jiazzi release 2001 Resource management in OVM w/Alchemy checking Blue: tools Black: tool use Maya release CPU resv in UAV
16
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
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
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
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
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
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
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
23 Program Issues none
24
24 Utah Alchemy Project DARPA PCES Program www.cs.utah.edu/flux/alchemy
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.