![Page 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/1.jpg)
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
![Page 2: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/2.jpg)
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
![Page 3: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/3.jpg)
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
![Page 4: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/4.jpg)
4
Artist’s Conception
![Page 5: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/5.jpg)
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
![Page 6: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/6.jpg)
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)
![Page 7: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/7.jpg)
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
![Page 8: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/8.jpg)
8
Maya and AspectJ
Maya:compile-time
metaprogramming
AspectJ:language supportfor cross-cutting
concerns
JSE
![Page 9: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/9.jpg)
9
“Task Isolation” in Java
For real-time in particular For QoS in general For robustness JSR-121… more later
![Page 10: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/10.jpg)
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
![Page 11: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/11.jpg)
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
}}
}
![Page 12: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/12.jpg)
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
![Page 13: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/13.jpg)
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
![Page 14: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/14.jpg)
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
![Page 15: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/15.jpg)
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 checkerAlchemy-configured memory
management in OVM
Jiazzi + weaver release
Jiazzi release
2001
Resource management in OVM
w/Alchemy checking
Blue: tools
Black: tool use
Maya releaseCPU resv in UAV
![Page 16: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/16.jpg)
16
Technical Progress & Accomplishments
1. 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)
![Page 17: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/17.jpg)
17
Accomplishments (cont’d)
2. 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
![Page 18: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/18.jpg)
18
Accomplishments (cont’d)
3. 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
![Page 19: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/19.jpg)
19
Accomplishments (cont’d)
4. 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)
![Page 20: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/20.jpg)
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?
![Page 21: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/21.jpg)
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
![Page 22: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/22.jpg)
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
![Page 23: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/23.jpg)
23
Program Issues
none
![Page 24: 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](https://reader035.vdocuments.us/reader035/viewer/2022062516/56649d385503460f94a11ee8/html5/thumbnails/24.jpg)
24
Utah Alchemy ProjectDARPA PCES Program
www.cs.utah.edu/flux/alchemy