Concurrent Component Patterns, Models of Computation, and...

14
1 Department of Electrical Engineering and Computer Sciences University of California at Berkeley Concurrent Component Patterns, Models of Computation, and Types Edward A. Lee Yuhong Xiong Presented at Fourth Annual Workshop on New Directions in Software Technology (NDIST01), St. John, US Virgin Islands, December 2001. E. A. Lee, UC Berkeley 2 Pattern-Related Questions ! Are components active? If passive, how are they activated? ! event driven ! dataflow ! time driven ! synchronous ! How are multiple sources of stimulus merged? ! nondeterministic merge ! round robin ! priorities ! time stamps ! Are communications synchronous? ! synchronous method calls ! thread rendezvous ! asynchronous with futures ! asynchronous with feedback

Transcript of Concurrent Component Patterns, Models of Computation, and...

Page 1: Concurrent Component Patterns, Models of Computation, and ...ptolemy.eecs.berkeley.edu/presentations/01/stjohn.pdf · We capture patterns of component interaction in a type system

1

Department of Electrical Engineering and Computer SciencesUniversity of California at Berkeley

Concurrent Component Patterns, Models of Computation, and Types

Edward A. LeeYuhong Xiong

Presented at Fourth Annual Workshop on New Directionsin Software Technology (NDIST�01), St. John, US Virgin Islands, December 2001.

E. A. Lee, UC Berkeley 2

Pattern-Related Questions! Are components active? If passive, how are they activated?

! event driven! dataflow! time driven! synchronous

! How are multiple sources of stimulus merged?! nondeterministic merge! round robin! priorities! time stamps

! Are communications synchronous?! synchronous method calls! thread rendezvous! asynchronous with futures! asynchronous with feedback

Page 2: Concurrent Component Patterns, Models of Computation, and ...ptolemy.eecs.berkeley.edu/presentations/01/stjohn.pdf · We capture patterns of component interaction in a type system

2

E. A. Lee, UC Berkeley 3

View of Concurrent Components:Actors with Ports and Attributes

PortPort

Actor ActorLink

Relation

ActorPort

connection

connection conn

ectio

n

Link

Link

Attributes Attributes

Attributes

Model of Computation:

� Messaging schema� Flow of control� Concurrency

Key idea: The model of computation is part of the framework within which components are embedded not part of the components themselves. It enforces patterns.

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 tR1

Basic Transport:

Receiver(inside port)

Page 3: Concurrent Component Patterns, Models of Computation, and ...ptolemy.eecs.berkeley.edu/presentations/01/stjohn.pdf · We capture patterns of component interaction in a type system

3

E. A. Lee, UC Berkeley 5

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)! �

E. A. Lee, UC Berkeley 6

Contrast with Object Orientation! Call/return imperative semantics! Concurrency is realized by ad-hoc calling conventions! Patterns are supported by futures, proxies, monitors

ComponentEntityCompositeEntity

AtomicActor

CompositeActor

0..10..n

«Interface»Actor

+getDirector() : Director+getExecutiveDirector() : Director+getManager() : Manager+inputPortList() : List+newReceiver() : Receiver+outputPortList() : List

«Interface»Executable

+fire()+initialize()+postfire() : boolean+prefire() : boolean+preinitialize()+stopFire()+terminate()+wrapup()

Director

Object orientation emphasizes inheritance and procedural interfaces.

Actor orientation emphasizes concurrency and communication abstractions.

Page 4: Concurrent Component Patterns, Models of Computation, and ...ptolemy.eecs.berkeley.edu/presentations/01/stjohn.pdf · We capture patterns of component interaction in a type system

4

E. A. Lee, UC Berkeley 7

Actor Orientation with a Visual Syntax

Ptolemy II is an experimental framework supporting exploration of concurrent component models of computation.

Model by Jie Liu

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 5: Concurrent Component Patterns, Models of Computation, and ...ptolemy.eecs.berkeley.edu/presentations/01/stjohn.pdf · We capture patterns of component interaction in a type system

5

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

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

Page 6: Concurrent Component Patterns, Models of Computation, and ...ptolemy.eecs.berkeley.edu/presentations/01/stjohn.pdf · We capture patterns of component interaction in a type system

6

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

throwsNoTokenException

throws

PNReceiver

«Interface»ProcessReceiver

CSPReceiver

SDFReceiver

ArrayFIFOQueue

1..11..1

DEReceiverMailbox

CTReceiver

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 7: Concurrent Component Patterns, Models of Computation, and ...ptolemy.eecs.berkeley.edu/presentations/01/stjohn.pdf · We capture patterns of component interaction in a type system

7

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! domain type signatures

! Components are! data polymorphic! domain polymorphic

E. A. Lee, UC Berkeley 14

Second Version of a Behavioral Type System! 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�

! 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.! Provides the ordering we need for subtyping & polymorphism

! Key theorem about compatibility and alternating simulation

Page 8: Concurrent Component Patterns, Models of Computation, and ...ptolemy.eecs.berkeley.edu/presentations/01/stjohn.pdf · We capture patterns of component interaction in a type system

8

E. A. Lee, UC Berkeley 15

Example: Synchronous Dataflow (SDF) Consumer Actor Type Definition

hasTokenhTgetgReturn from firefR

Return False from hasTokenhTF

Return True from hasTokenhTTTokentfiref

Inputs:Outputs:

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

executioninterface

communicationinterface

E. A. Lee, UC Berkeley 16

Type Definition �Synchronous Dataflow (SDF) Domain

produceractor

consumeractor

IOPort

Receiver

Directorreceiverinterface

directorinterface

Page 9: Concurrent Component Patterns, Models of Computation, and ...ptolemy.eecs.berkeley.edu/presentations/01/stjohn.pdf · We capture patterns of component interaction in a type system

9

E. A. Lee, UC Berkeley 17

Type Checking � ComposeSDF Consumer Actor with SDF Domain

ComposeSDF Domain SDF Consumer Actor

E. A. Lee, UC Berkeley 18

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 10: Concurrent Component Patterns, Models of Computation, and ...ptolemy.eecs.berkeley.edu/presentations/01/stjohn.pdf · We capture patterns of component interaction in a type system

10

E. A. Lee, UC Berkeley 19

Type Definition �Discrete Event (DE) Domain

This domain may fire actors without first providing inputs

E. A. Lee, UC Berkeley 20

Recall Component BehaviorSDF Consumer Actor

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

Page 11: Concurrent Component Patterns, Models of Computation, and ...ptolemy.eecs.berkeley.edu/presentations/01/stjohn.pdf · We capture patterns of component interaction in a type system

11

E. A. Lee, UC Berkeley 21

Type Checking � ComposeSDF Consumer Actor with DE Domain

! Empty automaton indicates incompatibility! Composition type has no behaviors

ComposeDE Domain SDF Consumer Actor

E. A. Lee, UC Berkeley 22

Subtyping RelationAlternating Simulation: SDF ≤ DE

SDF Domain DE Domain

Page 12: Concurrent Component Patterns, Models of Computation, and ...ptolemy.eecs.berkeley.edu/presentations/01/stjohn.pdf · We capture patterns of component interaction in a type system

12

E. A. Lee, UC Berkeley 23

System-Level Type Lattice �Defined by Alternating Simulation

! Consumer actor types! Subtyping relation! Shown here for a few

Ptolemy II domains

If an actor is compatible with a certain type, it is also compatible with the subtypes

unknown

PN

SDF

DE

CSP

DP

discreteevents

synchronousdataflow

unknown

processnetworks

communicatingsequentialprocesses

domainpolymorphic

E. A. Lee, UC Berkeley 24

Type Definition �Domain Polymorphic Consumer Actor

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 13: Concurrent Component Patterns, Models of Computation, and ...ptolemy.eecs.berkeley.edu/presentations/01/stjohn.pdf · We capture patterns of component interaction in a type system

13

E. A. Lee, UC Berkeley 25

Domain Polymorphic ActorComposes with the DE Domain

ComposeDE Domain Poly Actor

E. A. Lee, UC Berkeley 26

Domain Polymorphic Actor AlsoComposes with the SDF Domain

ComposePoly ActorSDF Domain

Page 14: Concurrent Component Patterns, Models of Computation, and ...ptolemy.eecs.berkeley.edu/presentations/01/stjohn.pdf · We capture patterns of component interaction in a type system

14

E. A. Lee, UC Berkeley 27

Conclusion! 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.

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

E. A. Lee, UC Berkeley 28

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 become a type check! generalized schedulability analysis