Download presentation
Presentation is loading. Please wait.
2
SWA-1.1 CSE300 Software Architectures Chapter 2: Architectural Styles Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut 191 Auditorium Road, Box U-155 Storrs, CT 06269-3155 steve@engr.uconn.edu http://www.engr.uconn.edu/~steve (860) 486 - 4818 Copyright © 2000 by S. Demurjian, Storrs, CT.
3
SWA-1.2 CSE300 Taxonomy of Architectural Styles Data Flow Systems Batch Sequential Pipes and Filters Call & Return Systems Main/Subroutines (C, Pascal) Object Oriented Implicit Invocation Hierarchical Systems Virtual Machines Interpreters Rule Based Systems Data Centered Systems DBS Hypertext Blackboards Independent Components Communicating Processes/Event Systems Client/Server Two-Tier Multi-Tier
4
SWA-1.3 CSE300 Taxonomy of Architectural Styles Establish Framework of … Components Building Blocks for Constructing Systems A Major Unit of Functionality Examples Include: Client, Server, Filter, Layer, DB Connectors Defining the Ways that Components Interact What are the Protocols that Mandate the Allowable Interactions Among Components? How are Protocols Enforced at Run/Design Time? Examples Include: Procedure Call, Event Broadcast, DB Protocol, Pipe
5
SWA-1.4 CSE300 Overall Framework Consider a Question-Based Approach What Is the Design Vocabulary? Connectors and Components What Are Allowable Structural Patterns? Constraints on Combining Components & Connectors What Is the Underlying Conceptual Model? Von Newman, Parallel, Agent, Etc. What Are Essential Invariants of a Style? Limits on Allowable Components & Connectors Common Examples of Usage Advantages and Disadvantages of a Style Common Specializations of a Style
6
SWA-1.5 CSE300 Pipes and Filters Filters: Invariant: Unaware of up and Down Stream Behavior Streamed Behavior: Output Could Go From One Filter to the Next One Allowing Multiple Filters to Run in Parallel. Sort Sort Merge Connectors for Flow Streams of I/O Components with Input and Output Components are Independent Entities. No Shared State!
7
SWA-1.6 CSE300 Pipes and Filters Possible Specializations: Pipelines - Linear Sequence Bounded - Limits on Data Amounts Typed Pipes - Known Data Format What is a Classic Example? Other Examples: Compilers Sequential Processes Parallel Processes
8
SWA-1.7 CSE300 Pipes and Filters Another Example Text Information Retrieval Systems Scanning Newspapers for Key Words, Etc. Also, Boolean Search Expressions User SearchController SearchDB QueryResolverTermComparator DiskController Commands Programming Control Result Data
9
SWA-1.8 CSE300 ADTs and OO Architectures Widespread Usage in the 1990’s Advantages Are Well Known Disadvantages: Interaction Required Object Identity If Identity Changes, It Is Difficult to Track All Affected Objects. obj op Connectors Components
10
SWA-1.9 CSE300 Implicit Invocation Similar to OO in the Sense that Components Can Call Services on Other Components How Does this Work? Components Have List of Events they can Raise and List of Procedures to Handle Events When Event is Raised, it is Broadcast All Components that Have Procedure to Handle Broadcast Event will Act Upon it The Component That Raised the Event has no Knowledge of Which Component(s) will Handle Event What are Some Examples?
11
SWA-1.10 CSE300 Implicit Invocation Advantages No Need to Know the Targeted Components Single Event can Impact Multiple Components New Event Handlers can Easily be Added New Events Can then be Raised Disadvantages No Control Over the Order of Processing When an Event is Raised No Control Over “Who” and “How Many” Process Events Very Non-Deterministic System Behavior
12
SWA-1.11 CSE300 Layered Systems Components - Virtual Machine at Each Layer Connectors - Protocols That Specify How Layers Interact Interaction Is Restricted to Adjacent Layers Examples: ISO Layers: Physical, Data Link, Network, Transport, Session, Presentation and Application Users Core level Base Utility Useful Systems
13
SWA-1.12 CSE300 Layered Systems Advantages: Increasing Levels of Abstraction Support Enhancement - New Layers Support for Reuse Drawbacks: Not Feasible for All Systems Performance Issues With Multiple Layers Defining Abstractions Is Difficult.
14
SWA-1.13 CSE300Repositories Knowledge Sources Interact With the Blackboard. Blackboard Contains the Problem Solving State Data. Control Is Driven by the State of the Blackboard. DB Systems Are a Form of Repository With a Layer Between the BB and the KSs - Supports Concurrent Access, Security, Integrity, Recovery ks8 ks6 ks7 ks1 ks2 ks3 ks4ks5 Blackboard (shared data)
15
SWA-1.14 CSE300Interpreters What Are Components and Connectors? Where Have Interpreters Been Used in CS&E? LISP, ML, Other Languages, OS Command Line Data (program state) Program being interpreted Simulated interpretation engine Internal interpreter state Inputs Outputs Selected instruction Selected data
16
SWA-1.15 CSE300 Process Control Paradigms Also: Open vs. Close Loop Systems Well Defined Control and Computational Characters Heavily Used in Engineering Fields. Process Controller Set point Set point Input variables Controlled variable Controlled variable s to manipulated variables s to manipulated variables Controller With Feedback Without Feedback
17
SWA-1.16 CSE300 Client/Server Single and Multi-Tier Architectures Widespread use in Practice for All Types of Distributed Systems and Applications Two Kinds of Components Servers: Provide Services - May be Unaware of Clients Web Servers (unaware?) Database Servers and Functional Servers (aware?) Clients: Request Services from Servers Must Identify Servers May Need to Identify Self A Server Can be Client of Another Server
18
SWA-1.17 CSE300 Client/Server Single and Multi-Tier Architectures Normally, Clients and Servers are Independent Processes Running in Parallel Connectors Provide Means for Service Requests and Answers to be Passes Among Clients/Servers Connectors May be RPC, RMI, etc. Advantages Parallelism, Independence Separation of Concerns, Abstraction Others? Disadvantages Complex Implementation Mechanisms Scalability, Correctness, Real-Time Limits Others?
19
SWA-1.18 CSE300 Example: Software Architectural Structure Initial Data Entry Operator (Scanning & Posting) 10-100MB Network Advanced Data Entry Operators Document Server Stored Images/CD Database Server Running Oracle RMI Registry Functional Server RMI Act. Obj/Server RMI Act. Obj/Server AnalystManager
20
SWA-1.19 CSE300 Business Process Model: Scanning and Initial Data Entry Scanner Licensing Division Scanning Operator Stored Images Basic Information Entered DB Completed Applications Historical Records Printer New Licenses New Appointments FOI Letters (Request Information, etc.) Licensing Division Data Entry Operator Supervisor Review DB
21
SWA-1.20 CSE300 Concluding Remarks Architectural Styles Provide Patterns Suppose Designing a New System During Requirements Discovery, Behavior and Structure of System Will Emerge Attempt to Match to Architectural Style Modify, Extend Style as Needed By Choosing Existing Architectural Style Know Advantages and Disadvantages Ability to Focus in on Problem Areas and Bottlenecks Can Adjust Architecture Accordingly Employ Large Memory, Multi-Processor for Database Server - Dedicated Computer
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.