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

The Alchemy Project

  • 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

Page 1: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

4

Artist’s Conception

Page 5: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

8

Maya and AspectJ

Maya:compile-time

metaprogramming

AspectJ:language supportfor cross-cutting

concerns

JSE

Page 9: The Alchemy Project

9

“Task Isolation” in Java

For real-time in particular For QoS in general For robustness JSR-121… more later

Page 10: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

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: The Alchemy Project

23

Program Issues

none

Page 24: The Alchemy Project

24

Utah Alchemy ProjectDARPA PCES Program

www.cs.utah.edu/flux/alchemy