Architectural Styles Pipes-and-Filters Architectural Style

advertisement
TDDD05
Component-Based Software
Pipes-and-Filters Architectural Style
„ Aka. Data-flow style
pipe
„ Filters are independent
Don’t know of the others’
existence
Reuse (1) by re-wiring filters
Reuse (2) by replacing filters
Concurrency (implicit)
z E.g. concurrent branches,
pipelining
System can be analyzed
z E.g. throughput
Batch processing only
z No interactive applications
Some redundancy in filter
functionality, e.g. sanity checks of
data, may affect performance
z
Architectural Styles
„
for Software Architecture Systems
„
„
„„ Pipes
Pipes and
andFilters
FiltersArchitectural
Architectural Style
Style
„„ Client-Server
Client-Server Architectural
Architectural Style
Style
„
„„ 3-Tier
3-Tier Architectural
Architectural Style
Style
„„ Layered
LayeredArchitectural
Architectural Style
Style
„
„„ Repository
Repository(Blackboard)
(Blackboard) Architectural
Architectural Style
Style
„
Christoph Kessler, IDA,
Linköpings universitet, 2010.
C
2 layers
C
C
„ Clients connect dynamically
to server
e.g. standard compiler structure;
Unix shells; stream processing
TDDD05 Component-Based Software, 2010
3 - Tier Architecture
„ 2 separate roles: Client, Server
z
Write
output
stream
Read
input
stream
2
C. Kessler, IDA, Linköpings universitet.
Client-Server Architecture
filter
(data stream)
C
Presentation layer
(GUI)
Business logic
layer
Database access
layer
May call
„ (Remote) Method invocation
S
on server
„ Common access point of service
e.g. SAP R/3
C. Kessler, IDA, Linköpings universitet.
3
TDDD05 Component-Based Software, 2010
Layered (Onion) Architectural Style
(except callbacks – anticipated)
„ Strict layering
z Calls only from Layer i to i-1
for i = N, …, 1
z Layer i is server for Layer i+1
and client for Layer i-1
„ Layer interfaces
z Upwards exposed (provided)
z Downwards exposed (expected)
„ Examples
z Network processing (OSI 7
layers)
z Layered OS (Unix, Windows, …)
z …
z
C. Kessler, IDA, Linköpings universitet.
5
TDDD05 Component-Based Software, 2010
4
Repository (Blackboard) Architecture
Layer N (top)
„ No upwards calls
C. Kessler, IDA, Linköpings universitet.
call
„ Examples
z
Linda Tuple Space
z
Jini
z
Component based compiler
frameworks e.g. CoSy
set /
get
Layer N-1
Layer N-2
+ Consistency of shared data
by synchronizing common
access point
Access to
Repository;
Shared data
- Performance bottleneck
Layer N-3
…
TDDD05 Component-Based Software, 2010
C. Kessler, IDA, Linköpings universitet.
6
TDDD05 Component-Based Software, 2010
Download