wright adl n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Wright ADL PowerPoint Presentation
Download Presentation
Wright ADL

Loading in 2 Seconds...

play fullscreen
1 / 18

Wright ADL - PowerPoint PPT Presentation


  • 111 Views
  • Uploaded on

Wright ADL. Liz White INFT 821 - Software Architecture. Wright Model. Components - computation elements with multiple ports Connectors - interaction - first class - consists of roles and glue Configuration - components and connectors related into a system. Example. System SimpleExample

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Wright ADL' - stefanie


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
wright adl

Wright ADL

Liz White

INFT 821 - Software Architecture

wright model
Wright Model
  • Components - computation elements with multiple ports
  • Connectors - interaction - first class - consists of roles and glue
  • Configuration - components and connectors related into a system
example

Example

System SimpleExample

component Server =

port provide = [ provide protocol]

computation =

component Client =

port request = [ request protocol]

computation =

connector C-S-connector =

role client = [ client protocol]

role server = [ server protocol ]

glue = [ glue protocol]

slide4
Instances

s: Server

c: Client

cs: C-S-connector

Attachments

s.provide as cs.server

c.request as cs.client

describing connection
Describing connection
  • Should be able to express common cases of architectural interaction (pipes, events, procedure call)
  • Should allow description of complex dynamic interactions between components (for example, that a connection must be initialized before use)
  • Should allow distinctions between connector variations
  • Should be based on analyzable formal model
communicating sequential processes csp
Communicating Sequential Processes - CSP
  • Processes and events - events may have input (e?x) and output (e!x) data
  • Prefixing e --> P
  • Internal/external choice (| and c )
  • Parallel Composition -- P || Q - joint interaction over events in intersection of alphabets of P and Q
  • Special symbol for successful termination z
  • Scoped process names (let Q = … in R)
why csp
Why CSP?
  • Other options: Petri Nets, SDL, I/O Automata, StateCharts
  • In CSP, we can capture the distinction between internal and external choice
  • CSP has parallel composition
  • Tool support (theorem proving)
  • Disadvantages: timing, fairness not addressed in CSP
wright connectors
Wright Connectors
  • Connectors describe the behavior of connection
  • Roles - local behavior of the interaction parties - the obligations of each participant in the interaction
  • Glue - describes how the activities of the roles are coordinated
  • Glue || role-1 || role-2 || . . . || role-n
simple pipe

Simple Pipe

connector pipe =

port source = in!x --> source

port sink = out?y --> sink

glue = source.in?x --> sink.out!x --> glue

simple client server

Simple Client/Server

connector C-S-connector =

role Client = (request!x --> result?y --> Client) | z

role Server = (invoke?v --> return!w --> Server) c z

glue = (Client.request?x --> Server.invoke!x -->

Server.return?y --> Client.result!y --> glue)

another pipe

Another Pipe

connector Pipe =

role Writer = write --> Writer | close -->z

role Reader = let ExitOnly = close -> z

in let DoRead = (read --> Reader

c read-eof --> ExitOnly)

in DoRead | ExitOnly

slide12

glue = let ReadOnly = Reader.read --> ReadOnly

c Reader.read-eof --> Reader.close --> z

c Reader.close --> z

in let WriteOnly = Writer.write --> WriteOnly

Writer.close --> z

in Writer.write--> glue c

Reader.read --> glue c

Writer.close --> ReadOnly c

Reader.close --> WriteOnly

shared data

Shared Data

connector shared_data1 =

role User1 = set --> User1 | get --> User1 |

role User2 = set --> User2 | get --> User2 |

glue = User1.set --> glue c User2.set --> glue c

User1.get --> glue c User2.get --> glue c z

wright components
Wright Components
  • Port - logical point of interaction between a component and its environment (I.e. the rest of the system) - Defines the expectations of the component.
  • A component may have multiple ports
  • Computation - describes the relationship between the ports
example1

Example

system Capitalize

component Split =

port input = getchar?x --> input

port output1 = putchar!x --> output1

port output2 = putchar!x --> output2

computation = input.getchar?y --> output1.putchar!y

--> input.getchar?y --> output2.putchar!y -->

computation

component Filter =

port inport = get?x --> inport

port outport = put!x --> outport

computation = inport.get?x --> outport!x --> computation

slide16

component Merger

port input1 = get?c --> input1

port input2 = get?c --> input2

port output = put!c --> output

computation = input1.get?c --> output.put!c -->

input2.get?d --> output.put!d --> computation

wright configuration
Wright Configuration
  • Describe the system structure
  • Instances - instantiate some components and connectors of given types
  • Attachments - bind the port of a component to the role of a connector
  • Hierarchical
slide18

Instances

s : Split

l, u : Filter

m: Merger

p1, p2, p3, p4: Pipe;

Attachments

s.output1 as p1.source

s.output2 as p2.source

l.inport as p1.sink

u.inport as p2.sink

l.outport as p3.source

u.output as p4.source

m.input1 as p3.sink

m.input2 as p4.sink