close

Вход

Забыли?

вход по аккаунту

?

Execution Architecture

код для вставкиСкачать
Foundations of Software Architecture : Module 4
Execution Architecture
John Reekie
University of Technology, Sydney
Contributors
Lian Loke, University of Technology, Sydney
Rohan McAdam, Honeywell Inc.
Terms of Use: Creative Commons Attribution-ShareAlike 2.5
http://creativecommons.org/licenses/by-sa/2.5/
An elephant with a view
Structure
пЃ®
пЃ®
пЃ®
Compute nodes
Processes
Subsystems
Activity
пЃ®
пЃ®
Behavior
Communication
The execution architecture focuses on the “runtime” structures that exist in the system.
Conceptual vs execution
Conceptual
Architecture
Execution
Architecture
Component
Domain-level
responsibilities
Unit of concurrent
activity
Connector
Flow of
information
Invocation
relationship
View
Single view
Multiple views
Component relationships
P h y sica lC o m p o n e n t
h o s ts
0 ..*
0 ..*
C o n c u rre n tC o m p o n e n t
s u p p o rts
0 ..*
C o n c e p tu a lC o m p o n e n t
This is a simplified and idealized (but useful) diagram.
When you do it
Inception
Elaboration I
Elaboration II
Conceptual
architecture
Execution
architecture
Implementation
architecture
A close-up view of a possible Unified Process instance.
What is concurrent activity?
When two actions occur
“simultaneously”.
In actuality, the activities
are time-sliced into a
single processor.
Concurrency needs are
often related to time:
пЃ®
пЃ®
пЃ®
Waiting for something
Working at the same time
When does the event
occur?
When to use concurrency
Waiting for a
slow external
device
++ Performance
Locate
components
on different
processors
++ Scalability
Independent development
and compilation of
components
++ Maintainability
Processes and threads
A more “concrete”
execution unit than
concurrent subsystems
Map directly to operating
system processes and
threads
Process
Thread
Own memory
space
Shared memory
space
Communicate via
IPC, pipes, sockets
Communicate by
shared data structures
Visible to most O/S
utilities
Not so visible
N o de
P roce ss
T hread
Activity stereotypes
How is concurrent
activity initiated?
пЃ®
пЃ®
пЃ®
By user action
By an active
thread or threads
of control
In response to a
request
U s e r-in itia te d
A c tiv e
S e rv ice
Communication
Arrows indicate an
invocation relationship
пЃ®
пЃ®
пЃ®
Synchronous
Asynchronous
Callback
S yn ch ro n o u s ca ll
A syn ch ro n o u s ca ll
C a llb a ck
Concurrent subsystems
A large-grained unit of execution
пЃ®
пЃ®
пЃ®
Database
Web/application server
Real-time disk recorder
A concurrent subsystem may:
пЃ®
пЃ®
Exhibit significant (and complex) internal
concurrency
Consist of a number of processes, which may be
both static and dynamic
Concurrent subsystems view
Contains only
concurrent subsystems
The highest-level
execution view of the
system
S ou n d U I
A u dio C ap tu re
/ P layb a ck
S ou n d
L ib ra ry
A u d io In /O u t
A simple audio processing system
An example
A foley and
sound-editing
system
HTTP
W eb
In te rfa c e
UI
C lie n t
Tra c k/c lip
S e rv e r
A u d io
C a p tu re
D is k
R e c o rd e rs
L ib ra ry
D a ta b a se
P la y b a c k
S ys te m
A u d io In
A u d io O u t
V id e o S y n c
Process view
Shows only processes
A process is the real unit of
deployment
пЃ®
пЃ®
The process view shows
exactly how the software
system is allocated to
hardware units
Operating system utilities
“understand” processes
May be more palatable to
traditional systems
designers - ?
Dynamic concurrency
Processes or threads
are created and
destroyed in response
to operating conditions
E n d O fS ession
A cce p to r
C o n ne ctio nR ece ive d
H a n d le r
S e rve rS o cke t
C o n n e ction R e ceived
Dynamic concurrency is best illustrated by
judicious use of use-case maps!
To deploy v.t.
de·ploy (dĭ –ploi´ )
v. deВ·ployed, deВ·ployВ·ing, deВ·ploys
v. tr.
1.
a.To position (troops) in readiness for combat, as along a
front or line.
b.To bring (forces or material) into action.
c.To base (a weapons system) in the field.
2.To distribute (persons or forces) systematically or
strategically.
3.To put into use or action: “Samuel Beckett's friends
suspected that he was a genius, yet no one knew... how his
abilities would be deployed” (Richard Ellmann).
http://www.dictionary.com
Shrink-wrap
Buy a piece of software and
install it on your own computer
Client-managed
Buy one or more pieces of
software and install it on your
own servers and clients
Physical architecture
H o st/C o n tro lle r
A simple
audioprocessing
embedded
system
Ethernet
D S P ca rd
FPG A
A n a lo g in /o u t
DSP
A n a lo g I/O
The physical architecture shows the key hardware
elements of the system—as relevant to the
software architecture
Deployment view
P u b lic H T T P c o n n e ctio n
F ire w a ll
W eb
se rve r
D a ta b a se
se rve r
A deployment view shows the
mapping of software elements
onto hardware elements
Deployment example
U se r co n so le s
UI
C lie n t
HTTP
A p p lica tio n se rve r
W eb
In te rfa ce
Tra ck/clip
S e rve r
L ib ra ry
D a ta b a se
A u d io su b syste m
A u d io
C a p tu re
A u d io In
P la yb a ck
S yste m
A u d io O u t
V id e o S yn c
D isk R e co rd e rs
A concurrent
subsystems view
overlaid on a
(simplified) physical
view
пЃ® Processes map to a
single processing
node
пЃ® Subsystems map to
one or more
processing nodes
пЃ® Replication to show
scalability
That’s all folks!
Questions or comments?
Документ
Категория
Презентации
Просмотров
2
Размер файла
434 Кб
Теги
1/--страниц
Пожаловаться на содержимое документа