Software Architectures Chapter 2: Architectural StylesTaxonomy of Architectural StylesSlide 3Overall Framework Consider a Question-Based ApproachPipes and FiltersSlide 6Pipes and Filters Another ExampleADTs and OO ArchitecturesImplicit InvocationSlide 10Layered SystemsSlide 12RepositoriesInterpretersProcess Control ParadigmsClient/Server Single and Multi-Tier ArchitecturesSlide 17Example: Software Architectural StructureBusiness Process Model: Scanning and Initial Data EntryConcluding RemarksSWA-1.1CSE300Software ArchitecturesSoftware ArchitecturesChapter 2: Architectural StylesChapter 2: Architectural StylesProf. Steven A. Demurjian, Sr.Computer Science & Engineering DepartmentThe University of Connecticut191 Auditorium Road, Box U-155Storrs, CT [email protected]://www.engr.uconn.edu/~steve(860) 486 - 4818Copyright © 2000 by S. Demurjian, Storrs, CT.SWA-1.2CSE300Taxonomy of Architectural StylesTaxonomy of Architectural StylesData Flow SystemsData Flow SystemsBatch SequentialPipes and FiltersCall & Return SystemsCall & Return SystemsMain/Subroutines (C, Pascal)Object OrientedImplicit InvocationHierarchical SystemsVirtual MachinesVirtual MachinesInterpretersRule Based SystemsData Centered SystemsData Centered SystemsDBSHypertextBlackboardsIndependent Independent ComponentsComponentsCommunicating Processes/Event SystemsClient/ServerClient/ServerTwo-TierMulti-TierSWA-1.3CSE300Taxonomy of Architectural StylesTaxonomy of Architectural StylesEstablish Framework of … Establish Framework of … Components Building Blocks for Constructing SystemsA Major Unit of FunctionalityExamples Include: Client, Server, Filter, Layer, DBConnectorsDefining the Ways that Components InteractWhat 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, PipeSWA-1.4CSE300Overall FrameworkOverall FrameworkConsider a Question-Based ApproachConsider a Question-Based ApproachWhat Is the Design Vocabulary?What Is the Design Vocabulary?Connectors and ComponentsWhat Are Allowable Structural Patterns?What Are Allowable Structural Patterns?Constraints on Combining Components & ConnectorsWhat Is the Underlying Conceptual Model?What Is the Underlying Conceptual Model?Von Newman, Parallel, Agent, Etc.What Are Essential Invariants of a Style?What Are Essential Invariants of a Style?Limits on Allowable Components & ConnectorsCommon Examples of UsageCommon Examples of UsageAdvantages and Disadvantages of a StyleAdvantages and Disadvantages of a StyleCommon Specializations of a StyleCommon Specializations of a StyleSWA-1.5CSE300Pipes and FiltersPipes and FiltersFilters:Filters:Invariant: Unaware of up and Down Stream BehaviorStreamed Behavior: Output Could Go From One Filter to the Next One Allowing Multiple Filters to Run in Parallel.SortSortSortSortMergeMergeConnectors for Flow Streams of I/OComponents with Input and OutputComponents are IndependentEntities. No Shared State!SWA-1.6CSE300Pipes and FiltersPipes and FiltersPossible Specializations:Possible Specializations:Pipelines - Linear SequenceBounded - Limits on Data AmountsTyped Pipes - Known Data FormatWhat is a Classic Example?What is a Classic Example?Other Examples:Other Examples:CompilersSequential ProcessesParallel ProcessesSWA-1.7CSE300Pipes and FiltersPipes and FiltersAnother ExampleAnother ExampleText Information Retrieval Systems Text Information Retrieval Systems Scanning Newspapers for Key Words, Etc.Also, Boolean Search ExpressionsUserSearchSearchControllerControllerSearchSearchDBDBQueryQueryResolverResolverTerm Term ComparatorComparatorDiskDiskControllerControllerCommandsCommandsProgrammingProgrammingControlControlResultResultDataDataSWA-1.8CSE300ADTs and OO ArchitecturesADTs and OO ArchitecturesWidespread Usage in the 1990’sWidespread Usage in the 1990’sAdvantages Are Well Known Advantages Are Well Known Disadvantages:Disadvantages:Interaction Required Object IdentityIf Identity Changes, It Is Difficult to Track All Affected Objects.objobjobjobjobjobjobjobjopopopopopop opopopop opopopConnectorsComponentsSWA-1.9CSE300Implicit InvocationImplicit InvocationSimilar to OO in the Sense that Components Can Similar to OO in the Sense that Components Can Call Services on Other ComponentsCall Services on Other ComponentsHow Does this Work?How Does this Work?Components Have List of Events they can Raise and List of Procedures to Handle EventsWhen Event is Raised, it is BroadcastAll Components that Have Procedure to Handle Broadcast Event will Act Upon itThe Component That Raised the Event has no Knowledge of Which Component(s) will Handle EventWhat are Some Examples?What are Some Examples?SWA-1.10CSE300Implicit InvocationImplicit InvocationAdvantagesAdvantagesNo Need to Know the Targeted ComponentsSingle Event can Impact Multiple ComponentsNew Event Handlers can Easily be AddedNew Events Can then be RaisedDisadvantagesDisadvantagesNo Control Over the Order of Processing When an Event is RaisedNo Control Over “Who” and “How Many” Process EventsVery Non-Deterministic System BehaviorSWA-1.11CSE300Layered SystemsLayered SystemsComponents - Virtual Machine at Each LayerComponents - Virtual Machine at Each LayerConnectors - Protocols That Specify How Layers InteractConnectors - Protocols That Specify How Layers InteractInteraction Is Restricted to Adjacent LayersInteraction Is Restricted to Adjacent LayersExamples: ISO Layers: Examples: ISO Layers: Physical, Data Link, Network, Transport, Session, Presentation and ApplicationUsersCorelevelBase UtilityUseful SystemsSWA-1.12CSE300Layered SystemsLayered SystemsAdvantages:Advantages:Increasing Levels of AbstractionSupport Enhancement - New LayersSupport for ReuseDrawbacks:Drawbacks:Not Feasible for All SystemsPerformance Issues With Multiple LayersDefining Abstractions Is Difficult.SWA-1.13CSE300RepositoriesRepositoriesKnowledge Sources Interact With the Blackboard.Knowledge Sources Interact With the Blackboard.Blackboard Contains the Problem Solving State Data.Blackboard Contains the Problem Solving State Data.Control Is Driven by the State of the Blackboard.Control Is Driven by the
View Full Document