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