Styles and Greenfield Design Software Architecture Lecture 6 Copyright Richard N Taylor Nenad Medvidovic and Eric M Dashofy All rights reserv Software Architecture Foundations Theory and Practice Heterogeneous Styles More complex styles created through composition of simpler styles REST from the first lecture Complex history presented later in course C2 Implicit invocation Layering other constraints Distributed objects OO client server network style CORBA 2 Software Architecture Foundations Theory and Practice C2 Style An indirect invocation style in which independent components communicate exclusively through message routing connectors Strict rules on connections between components and connectors induce layering 3 Software Architecture Foundations Theory and Practice C2 Style cont d Components Independent potentially concurrent message generators and or consumers Connectors Message routers that may filter translate and broadcast messages of two kinds notifications and requests Data Elements Messages data sent as firstclass entities over the connectors Notification messages announce changes of state Request messages request performance of an action Topology Layers of components and connectors with a defined top and bottom wherein notifications flow downwards and requests upwards 4 Software Architecture Foundations Theory and Practice C2 LL 5 Software Architecture Foundations Theory and Practice Richard N Taylor Nenad Medvidovic and Eric M Dashofy 2008 John Wiley Sons Inc Reprinted with permission Software Architecture Foundations Theory and Practice KLAX 6 Software Architecture Foundations Theory and Practice Richard N Taylor Nenad Medvidovic and Eric M Dashofy 2008 John Wiley Sons Inc Reprinted with permission Software Architecture Foundations Theory and Practice KLAX in C2 7 Software Architecture Foundations Theory and Practice Richard N Taylor Nenad Medvidovic and Eric M Dashofy 2008 John Wiley Sons Inc Reprinted with permission Software Architecture Foundations Theory and Practice Distributed Objects CORBA Objects coarse or fine grained run on heterogeneous hosts written in heterogeneous languages Objects provide services through well defined interfaces Objects invoke methods across host process and language boundaries via remote procedure calls RPCs Components Objects software components exposing services through well defined provided interfaces Connector Remote Method invocation Data Elements Arguments to methods return values and exceptions Topology General graph of objects from callers to callees Additional constraints imposed Data passed in remote procedure calls must be serializable Callers must deal with exceptions that can arise due to network or process faults Location platform and language transparency CAUTION 8 Software Architecture Foundations Theory and Practice CORBA Concept and Implementation 9 Software Architecture Foundations Theory and Practice Richard N Taylor Nenad Medvidovic and Eric M Dashofy 2008 John Wiley Sons Inc Reprinted with permission Software Architecture Foundations Theory and Practice CORBA LL 10 Software Architecture Foundations Theory and Practice Richard N Taylor Nenad Medvidovic and Eric M Dashofy 2008 John Wiley Sons Inc Reprinted with permission Software Architecture Foundations Theory and Practice Observations Different styles result in Different architectures Architectures with greatly differing properties A style does not fully determine resulting architecture A single style can result in different architectures Considerable room for Individual judgment Variations among architects A style defines domain of discourse About problem domain About resulting system 11 Software Architecture Foundations Theory and Practice Style Summary 1 4 Style Category Name Summary Use It When Avoid It When Application is small and simple Complex data structures needed Future modifications likely Objects encapsulate state and accessing functions Close mapping between external entities and internal objects is sensible Many complex and interrelated data structures Application is distributed in a heterogeneou s network Strong independence between components necessary High performance required Virtual machine or a layer offers services to layers above it Many applications can be based upon a single common layer of services Interface service specification resilient when implementation of a layer must change Many levels are required causes inefficiency Data structures must be accessed from multiple layers Clients request service from a server Centralization of computation and data at a single location the server promotes manageability and scalability end user processing limited to data entry and presentation Centrality presents a single point of failure risk Network bandwidth limited Client machine cap abilities rival or exceed the server s Language influenced styles Main Program Main program controls and program execution calling Subroutines multiple subroutines Object oriented Layered Virtual Machines Client server 12 Software Architecture Foundations Theory and Practice Style Summary continued 2 4 Data flow styles Batch Separate programs sequential executed sequentially with batched input Pipe and filter Problem easily formulated as a set of sequential severable steps Separate programs a k a filters executed potentially concurrently Pipes route data streams between filters As with batch sequential Filters are useful in more than one application Data structures easily serializable Blackboard Independent programs access and communicate exclusively through a global repository known as blackboard All calculation centers on a common changing data structure Order of processing dynamically determined and data driven Rule based Use facts or rules entered into the knowledge base to resolve a query Problem data and queries expressible as simple rules over which inference may be performed Interactivity or concurrency between components necessary or desirable Random access to data required Interaction between components required Exchange of complex data structures between components required Shared memory Programs deal with independent parts of the common data Interface to common data susceptible to change When interactions between the independent programs require complex regulation Number of rules is large Interaction between rules present High performance required 13 Software Architecture Foundations Theory and Practice Style Summary continued 3 4 Interpreter
View Full Document