Top Banner
Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee with special thanks to: Luca de Alfaro, Tom Henzinger, and Yuhong Xiong Invited talk, FMCAD, Fourth International Conference on Formal Methods in Computer-Aided Design, November 6-8, 2002, Portland, Oregon
35

Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

Dec 19, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

Department of Electrical Engineering and Computer Sciences

University of California at Berkeley

Behavioral Types forActor-Oriented Design

Edward A. Lee

with special thanks to:

Luca de Alfaro, Tom Henzinger, and Yuhong Xiong

Invited talk, FMCAD, Fourth International Conference on

Formal Methods in Computer-Aided Design, November 6-8, 2002, Portland, Oregon

Page 2: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 2

Actor-Oriented Design

Object orientation:class name

data

methods

call return

What flows through an object is

sequential control

Actor orientation:actor name

data (state)

portsInput data

parameters

Output data

What flows through an object is data

streams

Page 3: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 3

Examples of Actor-OrientedComponent Frameworks

Simulink (The MathWorks) Labview (National Instruments) OCP, open control platform (Boeing) SPW, signal processing worksystem (Cadence) System studio (Synopsys) ROOM, real-time object-oriented modeling (Rational) Port-based objects (U of Maryland) I/O automata (MIT) VHDL, Verilog, SystemC (Various) Polis & Metropolis (UC Berkeley) Ptolemy & Ptolemy II (UC Berkeley) …

Page 4: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 4

Actor View of Producer/Consumer Components

Models of Computation:

• continuous-time• dataflow• rendezvous• discrete events• synchronous• time-driven• publish/subscribe•…

Actor

IOPort

IORelation

P2P1

E1

E2

send(0,t) receiver.put(t) get(0)

token tR 1

Basic Transport:

Receiver(inside port)

Key idea: The model of computation defines the component interaction patterns and is part of the framework, not part of the components themselves.

Page 5: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 5

Contrast with Object Orientation

Call/return imperative semantics Concurrency is realized by ad-hoc calling conventions Concurrent patterns are supported by futures, proxies,

monitors, and semaphores

ComponentEntityCompositeEntity

AtomicActor

CompositeActor

0..10..n

« In te rface»Actor

+getD irec tor() : D irec to r+getE xecutiveD irec tor() : D irec to r+getM anager() : M anager+ inputP ortL is t() : L is t+new R ece iver() : R ece iver+outpu tP ortL is t() : L is t

«In te rface»Executable

+fire ()+ in itia lize ()+pos tfire () : boo lean+pre fire () : boo lean+pre in itia lize ()+s topF ire ()+ term ina te()+w rapup()

Director

Object orientation emphasizes inheritance and procedural interfaces.

Actor orientation emphasizes concurrency and communication abstractions.

Page 6: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 6

Actor Orientation with a Visual Syntax

Actor-oriented model of two real-time control systems sharing a single CPU under a priority-driven RTOS scheduler.

Model by Jie Liu

Page 7: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 7

Our Evolving Software Laboratory

Ptolemy II:A framework supporting experimentation with actor-oriented design, concurrent semantics, and visual syntaxes.

http://ptolemy.eecs.berkeley.edu

continuous environment

modal model

discrete controller

example Ptolemy model: hybrid control system

Model by Johan Eker

Page 8: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 8

Realization of a Model of Computation is a “Domain” in Ptolemy II

The “laws of physics” of component interaction communication semantics flow of control constraints

In astrophysics: a “domain” is a region of the universe where a certain set of “laws of physics” applies.

Multiple domains may be combined hierarchically depends on the concept of “domain polymorphism”

Page 9: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 9

Ptolemy II Domains

Define the flow(s) of control “execution model” Realized by a Director class

Define communication between components “interaction model” Realized by a Receiver class

produceractor

consumeractor

IOPort

Receiver

Director

Page 10: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 10

Example Domains Communicating Sequential Processes (CSP):

rendezvous-style communication Process Networks (PN):

asynchronous communication, determinism Synchronous Data Flow (SDF):

stream-based communication, statically scheduled Discrete Event (DE):

event-based communication Synchronous/Reactive (SR):

synchronous, fixed point semantics Time Driven (Giotto):

synchronous, time-driven multitasking Timed Multitasking (TM):

priority-driven multitasking, deterministic communication Continuous Time (CT):

numerical differential equation solver

produceractor

consumeractor

IOPort

Receiver

Director

Page 11: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 11

Receiver Object ModelIOPort

FIFOQueue

1..1

1..1

«Interface»Receiver

+get() : Token+getContainer() : IOPort+hasRoom() : boolean+hasToken() : boolean+put(t : Token)+setContainer(port : IOPort)

0..1 0..n

QueueReceiver

NoRoomException

throws

NoTokenExceptionthrows

PNReceiver

«Interface»ProcessReceiver

CSPReceiver

SDFReceiver

ArrayFIFOQueue

1..11..1

DEReceiverMailbox

CTReceiver

Page 12: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 12

Receiver Interface

«Interface»Receiver

+get() : Token+getContainer() : IOPort+hasRoom() : boolean+hasToken() : boolean+put(t : Token)+setContainer(port : IOPort)

These polymorphic methods implement the communication semantics of a domain in Ptolemy II. The receiver instance used in communication is supplied by the director, not by the component.

produceractor

consumeractor

IOPort

Receiver

Director

Page 13: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 13

Behavioral Types –Codification of Domain Semantics

Capture the dynamic interaction of components in types Obtain benefits analogous to data typing. Call the result behavioral types.

produceractor

consumeractor

IOPort

Receiver

Director

Communication has data types behavioral types

Components have data type signatures behavioral type signatures

Components are data polymorphic domain polymorphic

Page 14: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 14

A Behavioral Type SystemWith Contravariant Inputs and Outputs

Based on Interface automata Proposed by de Alfaro and Henzinger Concise composition (vs. standard automata) Alternating simulation provides contravariance

Compatibility checking Done by automata composition Captures the notion “components can work together”

Subtyping & polymorphism Alternating simulation (from Q to P) All input steps of P can be simulated by Q, and All output steps of Q can be simulated by P. Used to build a partial order among types

Page 15: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 15

Simple Example: One Place BufferShowing Consumer Interface Only

g get

hT hasToken

t Token

hTT Return True from hasToken

hTF Return False from hasToken

Outputs:Inputs:

Model of the interaction of a one-place buffer, showing the interface to a consumer actor.

consumerinterfaceBuffer:

Page 16: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 16

Two Candidate Consumer Actors

Consumer with check: Consumer without check:

bufferinterface

g get

hT hasToken

t Token

hTT Return True from hasToken

hTF Return False from hasToken

Inputs: Outputs:

Page 17: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 17

Composition: Behavioral Type Check

Consumer with check: Buffer:

Illegal states are pruned out of the composition. A composite state is illegal if an output produced by one has no corresponding input in the other.

Page 18: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 18

Composition: Behavioral Type CheckBuffer:Consumer without check:

An empty composition means that all composite states are illegal. E.g., here, 0_0 is illegal, which results in pruning all states.

Page 19: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 19

Subclassing and Polymorphism

Buffer:

Buffer with Default:

Alternating simulation relation

We can construct a type lattice by defining a partial order based on alternating simulation. It properly reflects the desire for contravariant inputs and outputs.

Page 20: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 20

Contravariance of Inputs and Outputsin a Classical Type System

public Complex foo(Double arg)

BaseClass

public Double foo(Complex arg)

DerivedClass

Can accept more general inputs

… and deliver more specific outputs

DerivedClass remains a valid drop-

in substitution for BaseClass.

Page 21: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 21

Representing Models of Computation Synchronous Dataflow (SDF) Domain

produceractor

consumeractor

IOPort

Receiver

Directorreceiverinterface

directorinterface

Page 22: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 22

Consumer Actor With Firing-Type Definition

fR Return from fire

g get

hT hasToken

f fire

t Token

hTT Return True from hasToken

hTF Return False from hasToken

Inputs:Outputs:

Such actors are passive, and assume that input is available when they fire.

executioninterface

communicationinterface

Page 23: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 23

Type Checking – ComposeSDF Consumer Actor with SDF Domain

ComposeSDF Domain SDF Consumer Actor

Page 24: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 24

Type Definition –SDF Consumer Actor in SDF Domain

1. receives token from producer

interface toproducer actor

2. accept token

3. internal action: fire consumer

4. internal action: call get()

5. internal action: get token

6. internal action: return from fire

Page 25: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 25

Representing Models of Computation –Discrete Event (DE) Domain

This domain may fire actors without first providing inputs

Page 26: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 26

Recall Component BehaviorSDF Consumer Actor

1. is fired2. calls get()3. gets a token4. returns

Page 27: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 27

Type Checking – ComposeSDF Consumer Actor with DE Domain

Empty automaton indicates incompatibility Composition type has no behaviors

ComposeDE Domain SDF Consumer Actor

Page 28: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 28

Subtyping RelationAlternating Simulation: SDF DE

SDF Domain

DE Domain

Page 29: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 29

Domain Polymorphic Type Definition –Consumer Actor with Firing

1. is fired 2. calls hasToken()

3. true

3. false

4. return

4. call get()

5. get token

6. return

This actor checks for token availability before attempting to get the token.

Page 30: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 30

Domain Polymorphic ActorComposes with the DE Domain

ComposeDE Domain Poly Actor

Page 31: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 31

Domain Polymorphic Actor AlsoComposes with the SDF Domain

ComposePoly ActorSDF Domain

Page 32: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 32

Summary of Behavioral Types Results

We capture patterns of component interaction in a type system framework: behavioral types

We describe interaction types and component behavior using interface automata.

We do type checking through automata composition (detect component incompatibilities)

Subtyping order is given by the alternating simulation relation, supporting polymorphism.

A behavioral type system is a set of automata that form a lattice under alternating simulation.

Page 33: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 33

Scalability

Automata represent behavioral types Not arbitrary program behavior Descriptions are small Compositions are small Scalability is probably not an issue

Type system design becomes an issue What to express and what to not express Restraint!

Will lead to efficient type check and type inference algorithms

Page 34: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 34

Issues and Ideas

Composition by name-matching awkward, limiting. use ports in hierarchical models?

Rich subtyping: extra ports interfere with alternating simulation. projection automata? use ports in hierarchical models?

Synchronous composition: composed automata react synchronously. modeling mutual exclusion is awkward use transient states? hierarchy with transition refinements?

Page 35: Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.

E. A. Lee, UC Berkeley 35

More Speculative

We can reflect component dynamics in a run-time environment, providing behavioral reflection. admission control run-time type checking fault detection, isolation, and recovery (FDIR)

Timed interface automata may be able to model real-time requirements and constraints. checking consistency becomes a type check generalized schedulability analysis

Need a language with a behavioral type system Visual syntax given here is meta modeling Use this to build domain-specific languages