Upload
zareh
View
40
Download
0
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
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 and AspectJ
Maya:compile-time
metaprogramming
AspectJ:language supportfor cross-cutting
concerns
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
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
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
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
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)
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
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
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)
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