SlideShare a Scribd company logo
1 of 41
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
Architectural Styles
Software Architecture
Lecture 5
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
2
Object-Oriented Style
 Components are objects
Data and associated operations
 Connectors are messages and method invocations
 Style invariants
Objects are responsible for their internal representation
integrity
Internal representation is hidden from other objects
 Advantages
“Infinite malleability” of object internals
System decomposition into sets of interacting agents
 Disadvantages
Objects must know identities of servers
Side effects in object method invocations
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
3
Object-Oriented LL
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
4
OO/LL in UML
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
5
Layered Style
 Hierarchical system organization
“Multi-level client-server”
Each layer exposes an interface (API) to be used by
above layers
 Each layer acts as a
Server: service provider to layers “above”
Client: service consumer of layer(s) “below”
 Connectors are protocols of layer interaction
 Example: operating systems
 Virtual machine style results from fully opaque layers
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
6
Layered Style (cont’d)
 Advantages
Increasing abstraction levels
Evolvability
Changes in a layer affect at most the adjacent two
layers
Reuse
Different implementations of layer are allowed as long
as interface is preserved
Standardized layer interfaces for libraries and
frameworks
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
7
Layered Style (cont’d)
 Disadvantages
Not universally applicable
Performance
 Layers may have to be skipped
Determining the correct abstraction level
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
8
Layered Systems/Virtual Machines
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
9
Layered LL
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
10
Client-Server Style
 Components are clients and servers
 Servers do not know number or identities of clients
 Clients know server’s identity
 Connectors are RPC-based network interaction
protocols
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
11
Client-Server LL
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
12
Data-Flow Styles
Batch Sequential
Separate programs are executed in order; data is
passed as an aggregate from one program to the
next.
Connectors: “The human hand” carrying tapes
between the programs, a.k.a. “sneaker-net ”
Data Elements: Explicit, aggregate elements passed
from one component to the next upon completion of
the producing program’s execution.
 Typical uses: Transaction processing in financial
systems. “The Granddaddy of Styles”
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
13
Batch-Sequential: A Financial
Application
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
14
Batch-Sequential LL
Not a recipe for a successful lunar mission!
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
15
Pipe and Filter Style
 Components are filters
Transform input data streams into output data streams
Possibly incremental production of output
 Connectors are pipes
Conduits for data streams
 Style invariants
Filters are independent (no shared state)
Filter has no knowledge of up- or down-stream filters
 Examples
UNIX shell signal processing
Distributed systems parallel programming
 Example: ls invoices | grep -e August | sort
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
16
Pipe and Filter (cont’d)
 Variations
Pipelines — linear sequences of filters
Bounded pipes — limited amount of data on a pipe
Typed pipes — data strongly typed
 Advantages
System behavior is a succession of component behaviors
Filter addition, replacement, and reuse
Possible to hook any two filters together
Certain analyses
Throughput, latency, deadlock
Concurrent execution
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
17
Pipe and Filter (cont’d)
 Disadvantages
Batch organization of processing
Interactive applications
Lowest common denominator on data transmission
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
18
Pipe and Filter LL
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
19
Blackboard Style
 Two kinds of components
Central data structure — blackboard
Components operating on the blackboard
 System control is entirely driven by the blackboard state
 Examples
Typically used for AI systems
Integrated software environments (e.g., Interlisp)
Compiler architecture
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
20
Blackboard LL
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
21
Mobile-Code Style
 Summary: a data element (some representation of a
program) is dynamically transformed into a data
processing component.
 Components: “Execution dock”, which handles receipt of
code and state; code compiler/interpreter
 Connectors: Network protocols and elements for
packaging code and data for transmission.
 Data Elements: Representations of code as data;
program state; data
 Variants: Code-on-demand, remote evaluation, and
mobile agent.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
22
Mobile Code LL
Scripting languages (i.e. JavaScript,
VBScript), ActiveX control,
embedded Word/Excel macros.
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
23
Implicit Invocation Style
 Event announcement instead of method invocation
“Listeners” register interest in and associate methods with
events
System invokes all registered methods implicitly
 Component interfaces are methods and events
 Two types of connectors
Invocation is either explicit or implicit in response to events
 Style invariants
“Announcers” are unaware of their events’ effects
No assumption about processing in response to events
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
24
Implicit Invocation (cont’d)
 Advantages
Component reuse
System evolution
Both at system construction-time & run-time
 Disadvantages
Counter-intuitive system structure
Components relinquish computation control to the
system
No knowledge of what components will respond to
event
No knowledge of order of responses
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
25
Publish-Subscribe
Subscribers register/deregister to receive specific
messages or specific content. Publishers broadcast
messages to subscribers either synchronously or
asynchronously.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
26
Publish-Subscribe (cont’d)
 Components: Publishers, subscribers, proxies for managing
distribution
 Connectors: Typically a network protocol is required.
Content-based subscription requires sophisticated
connectors.
 Data Elements: Subscriptions, notifications, published
information
 Topology: Subscribers connect to publishers either directly or
may receive notifications via a network protocol from
intermediaries
 Qualities yielded: Highly efficient one-way dissemination of
information with very low-coupling of components
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
27
Pub-Sub LL
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
28
Event-Based Style
 Independent components asynchronously emit and receive
events communicated over event buses
 Components: Independent, concurrent event generators
and/or consumers
 Connectors: Event buses (at least one)
 Data Elements: Events – data sent as a first-class entity over
the event bus
 Topology: Components communicate with the event buses,
not directly to each other.
 Variants: Component communication with the event bus may
either be push or pull based.
 Highly scalable, easy to evolve, effective for highly distributed
applications.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
29
Event-based LL
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
30
Peer-to-Peer Style
 State and behavior are distributed among peers
which can act as either clients or servers.
 Peers: independent components, having their own
state and control thread.
 Connectors: Network protocols, often custom.
 Data Elements: Network messages
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
31
Peer-to-Peer Style (cont’d)
 Topology: Network (may have redundant connections
between peers); can vary arbitrarily and dynamically
 Supports decentralized computing with flow of control
and resources distributed among peers.
 Highly robust in the face of failure of any given node.
 Scalable in terms of access to resources and
computing power.
But caution on the protocol!
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
32
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Peer-to-Peer LL
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
33
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
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
34
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.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
35
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 first-class
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.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
36
C2 LL
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
37
KLAX
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
38
KLAX in
C2
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
39
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
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
40
CORBA Concept and
Implementation
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
41
CORBA LL
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

More Related Content

What's hot

Architecture business cycle ( abc )
Architecture business cycle ( abc )Architecture business cycle ( abc )
Architecture business cycle ( abc )Dr Reeja S R
 
Software Devlopment Life Cycle
Software Devlopment Life CycleSoftware Devlopment Life Cycle
Software Devlopment Life CycleVivek Gupta
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software EngineeringVarsha Ajith
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture PatternsAssaf Gannon
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)Akash Kumar Dhameja
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
software management, project management,
software management, project management,software management, project management,
software management, project management,Lisa Elisa
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Fadhil Ismail
 
Rational Unified Process(Rup)
Rational Unified Process(Rup)Rational Unified Process(Rup)
Rational Unified Process(Rup)pawanonline83
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.pptJAYAPRIYAR7
 
Software architect - roles & responsabilities
Software architect - roles & responsabilitiesSoftware architect - roles & responsabilities
Software architect - roles & responsabilitiesAdrian Cristian Grigoras
 
CS6201 Software Reuse - Design Patterns
CS6201 Software Reuse - Design PatternsCS6201 Software Reuse - Design Patterns
CS6201 Software Reuse - Design PatternsKwangshin Oh
 

What's hot (20)

Architecture business cycle ( abc )
Architecture business cycle ( abc )Architecture business cycle ( abc )
Architecture business cycle ( abc )
 
Waterfallmodel
WaterfallmodelWaterfallmodel
Waterfallmodel
 
Software Devlopment Life Cycle
Software Devlopment Life CycleSoftware Devlopment Life Cycle
Software Devlopment Life Cycle
 
Unit1
Unit1Unit1
Unit1
 
Documenting Software Architectures
Documenting Software ArchitecturesDocumenting Software Architectures
Documenting Software Architectures
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Water fall model
Water fall modelWater fall model
Water fall model
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
software management, project management,
software management, project management,software management, project management,
software management, project management,
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
Software Engineering Practice
Software Engineering PracticeSoftware Engineering Practice
Software Engineering Practice
 
Rational Unified Process(Rup)
Rational Unified Process(Rup)Rational Unified Process(Rup)
Rational Unified Process(Rup)
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.ppt
 
Software architect - roles & responsabilities
Software architect - roles & responsabilitiesSoftware architect - roles & responsabilities
Software architect - roles & responsabilities
 
software architecture
software architecturesoftware architecture
software architecture
 
CS6201 Software Reuse - Design Patterns
CS6201 Software Reuse - Design PatternsCS6201 Software Reuse - Design Patterns
CS6201 Software Reuse - Design Patterns
 
Static analysis
Static analysisStatic analysis
Static analysis
 

Viewers also liked

Enterprise Application Architectures by Dr. Indika Kumara
Enterprise Application Architectures by Dr. Indika KumaraEnterprise Application Architectures by Dr. Indika Kumara
Enterprise Application Architectures by Dr. Indika KumaraThejan Wijesinghe
 
Software Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika KumaraSoftware Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika KumaraThejan Wijesinghe
 
Week 8 Architectual Styles
Week 8 Architectual StylesWeek 8 Architectual Styles
Week 8 Architectual StylesRoxy Pilly
 
Enterprise Software Architecture styles
Enterprise Software Architecture stylesEnterprise Software Architecture styles
Enterprise Software Architecture stylesAraf Karsh Hamid
 
Modern Software Architecture Styles and Patterns
Modern Software Architecture Styles and PatternsModern Software Architecture Styles and Patterns
Modern Software Architecture Styles and PatternsGanesh Samarthyam
 
Software Architecture Styles
Software Architecture StylesSoftware Architecture Styles
Software Architecture StylesHenry Muccini
 
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Modern Software Architectures: Building Solutions for Web, Cloud, and MobileModern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Modern Software Architectures: Building Solutions for Web, Cloud, and MobileDan Mohl
 
05 architectural styles
05 architectural styles05 architectural styles
05 architectural stylesMajong DevJfu
 
A Software Architect's View On Diagramming
A Software Architect's View On DiagrammingA Software Architect's View On Diagramming
A Software Architect's View On Diagrammingmeghantaylor
 
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Svetlin Nakov
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software ArchitectureMarkus Voelter
 
Three Software Architecture Styles
Three Software Architecture StylesThree Software Architecture Styles
Three Software Architecture StylesJorgen Thelin
 

Viewers also liked (14)

Usability
UsabilityUsability
Usability
 
Enterprise Application Architectures by Dr. Indika Kumara
Enterprise Application Architectures by Dr. Indika KumaraEnterprise Application Architectures by Dr. Indika Kumara
Enterprise Application Architectures by Dr. Indika Kumara
 
Software Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika KumaraSoftware Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika Kumara
 
Week 8 Architectual Styles
Week 8 Architectual StylesWeek 8 Architectual Styles
Week 8 Architectual Styles
 
Enterprise Software Architecture styles
Enterprise Software Architecture stylesEnterprise Software Architecture styles
Enterprise Software Architecture styles
 
Modern Software Architecture Styles and Patterns
Modern Software Architecture Styles and PatternsModern Software Architecture Styles and Patterns
Modern Software Architecture Styles and Patterns
 
Software Architecture Styles
Software Architecture StylesSoftware Architecture Styles
Software Architecture Styles
 
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Modern Software Architectures: Building Solutions for Web, Cloud, and MobileModern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
 
05 architectural styles
05 architectural styles05 architectural styles
05 architectural styles
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
A Software Architect's View On Diagramming
A Software Architect's View On DiagrammingA Software Architect's View On Diagramming
A Software Architect's View On Diagramming
 
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software Architecture
 
Three Software Architecture Styles
Three Software Architecture StylesThree Software Architecture Styles
Three Software Architecture Styles
 

Similar to Cs 1023 lec 6 architecture (week 1)

07 software connectors (2)
07 software connectors (2)07 software connectors (2)
07 software connectors (2)Jaya Chavan
 
18 applied architectures_part_2
18 applied architectures_part_218 applied architectures_part_2
18 applied architectures_part_2Majong DevJfu
 
Analysis of software architectures
Analysis of software architecturesAnalysis of software architectures
Analysis of software architecturesHoria Constantin
 
Cs 1023 lec 13 web (week 4)
Cs 1023 lec 13 web (week 4)Cs 1023 lec 13 web (week 4)
Cs 1023 lec 13 web (week 4)stanbridge
 
13 analysis of_software_architectures
13 analysis of_software_architectures13 analysis of_software_architectures
13 analysis of_software_architecturesMajong DevJfu
 
07 software connectors
07 software connectors07 software connectors
07 software connectorsMajong DevJfu
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)stanbridge
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)stanbridge
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptationMajong DevJfu
 
16 implementation techniques
16 implementation techniques16 implementation techniques
16 implementation techniquesMajong DevJfu
 
Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)stanbridge
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)stanbridge
 
14 analysis techniques
14 analysis techniques14 analysis techniques
14 analysis techniquesMajong DevJfu
 

Similar to Cs 1023 lec 6 architecture (week 1) (20)

07 software connectors (2)
07 software connectors (2)07 software connectors (2)
07 software connectors (2)
 
18 applied architectures_part_2
18 applied architectures_part_218 applied architectures_part_2
18 applied architectures_part_2
 
Analysis of software architectures
Analysis of software architecturesAnalysis of software architectures
Analysis of software architectures
 
Cs 1023 lec 13 web (week 4)
Cs 1023 lec 13 web (week 4)Cs 1023 lec 13 web (week 4)
Cs 1023 lec 13 web (week 4)
 
13 analysis of_software_architectures
13 analysis of_software_architectures13 analysis of_software_architectures
13 analysis of_software_architectures
 
07 software connectors
07 software connectors07 software connectors
07 software connectors
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
 
lecture7.ppt
lecture7.pptlecture7.ppt
lecture7.ppt
 
lecture7.ppt
lecture7.pptlecture7.ppt
lecture7.ppt
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
 
16 implementation techniques
16 implementation techniques16 implementation techniques
16 implementation techniques
 
03 basic concepts
03 basic concepts03 basic concepts
03 basic concepts
 
Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
Chapter1
Chapter1Chapter1
Chapter1
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)
 
Seng 123 9-iid
Seng 123 9-iidSeng 123 9-iid
Seng 123 9-iid
 
14 analysis techniques
14 analysis techniques14 analysis techniques
14 analysis techniques
 
What is Software Architecture?
What is Software Architecture?What is Software Architecture?
What is Software Architecture?
 

More from stanbridge

Micro Lab 3 Lecture
Micro Lab 3 LectureMicro Lab 3 Lecture
Micro Lab 3 Lecturestanbridge
 
Creating a poster v2
Creating a poster v2Creating a poster v2
Creating a poster v2stanbridge
 
Creating a poster
Creating a posterCreating a poster
Creating a posterstanbridge
 
OT 5018 Thesis Dissemination
OT 5018 Thesis DisseminationOT 5018 Thesis Dissemination
OT 5018 Thesis Disseminationstanbridge
 
Ot5101 005 week 5
Ot5101 005 week 5Ot5101 005 week 5
Ot5101 005 week 5stanbridge
 
Ot5101 005 week4
Ot5101 005 week4Ot5101 005 week4
Ot5101 005 week4stanbridge
 
Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors stanbridge
 
Ch 5 developmental stages of the learner
Ch 5   developmental stages of the learnerCh 5   developmental stages of the learner
Ch 5 developmental stages of the learnerstanbridge
 
OT 5101 week2 theory policy
OT 5101 week2 theory policyOT 5101 week2 theory policy
OT 5101 week2 theory policystanbridge
 
OT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessmentOT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessmentstanbridge
 
NUR 304 Chapter005
NUR 304 Chapter005NUR 304 Chapter005
NUR 304 Chapter005stanbridge
 
NUR 3043 Chapter007
NUR 3043 Chapter007NUR 3043 Chapter007
NUR 3043 Chapter007stanbridge
 
NUR 3043 Chapter006
NUR 3043 Chapter006NUR 3043 Chapter006
NUR 3043 Chapter006stanbridge
 
NUR 3043 Chapter004
NUR 3043 Chapter004NUR 3043 Chapter004
NUR 3043 Chapter004stanbridge
 
3043 Chapter009
3043 Chapter0093043 Chapter009
3043 Chapter009stanbridge
 
3043 Chapter008
 3043 Chapter008 3043 Chapter008
3043 Chapter008stanbridge
 
Melnyk ppt chapter_21
Melnyk ppt chapter_21Melnyk ppt chapter_21
Melnyk ppt chapter_21stanbridge
 
Melnyk ppt chapter_22
Melnyk ppt chapter_22Melnyk ppt chapter_22
Melnyk ppt chapter_22stanbridge
 

More from stanbridge (20)

Micro Lab 3 Lecture
Micro Lab 3 LectureMicro Lab 3 Lecture
Micro Lab 3 Lecture
 
Creating a poster v2
Creating a poster v2Creating a poster v2
Creating a poster v2
 
Creating a poster
Creating a posterCreating a poster
Creating a poster
 
Sample poster
Sample posterSample poster
Sample poster
 
OT 5018 Thesis Dissemination
OT 5018 Thesis DisseminationOT 5018 Thesis Dissemination
OT 5018 Thesis Dissemination
 
Ot5101 005 week 5
Ot5101 005 week 5Ot5101 005 week 5
Ot5101 005 week 5
 
Ot5101 005 week4
Ot5101 005 week4Ot5101 005 week4
Ot5101 005 week4
 
Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors
 
Ch 5 developmental stages of the learner
Ch 5   developmental stages of the learnerCh 5   developmental stages of the learner
Ch 5 developmental stages of the learner
 
OT 5101 week2 theory policy
OT 5101 week2 theory policyOT 5101 week2 theory policy
OT 5101 week2 theory policy
 
OT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessmentOT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessment
 
Ot5101 week1
Ot5101 week1Ot5101 week1
Ot5101 week1
 
NUR 304 Chapter005
NUR 304 Chapter005NUR 304 Chapter005
NUR 304 Chapter005
 
NUR 3043 Chapter007
NUR 3043 Chapter007NUR 3043 Chapter007
NUR 3043 Chapter007
 
NUR 3043 Chapter006
NUR 3043 Chapter006NUR 3043 Chapter006
NUR 3043 Chapter006
 
NUR 3043 Chapter004
NUR 3043 Chapter004NUR 3043 Chapter004
NUR 3043 Chapter004
 
3043 Chapter009
3043 Chapter0093043 Chapter009
3043 Chapter009
 
3043 Chapter008
 3043 Chapter008 3043 Chapter008
3043 Chapter008
 
Melnyk ppt chapter_21
Melnyk ppt chapter_21Melnyk ppt chapter_21
Melnyk ppt chapter_21
 
Melnyk ppt chapter_22
Melnyk ppt chapter_22Melnyk ppt chapter_22
Melnyk ppt chapter_22
 

Recently uploaded

Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024Janet Corral
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 

Recently uploaded (20)

Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 

Cs 1023 lec 6 architecture (week 1)

  • 1. Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Software Architecture Lecture 5
  • 2. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 2 Object-Oriented Style  Components are objects Data and associated operations  Connectors are messages and method invocations  Style invariants Objects are responsible for their internal representation integrity Internal representation is hidden from other objects  Advantages “Infinite malleability” of object internals System decomposition into sets of interacting agents  Disadvantages Objects must know identities of servers Side effects in object method invocations
  • 3. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 3 Object-Oriented LL Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 4. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 4 OO/LL in UML Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 5. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 5 Layered Style  Hierarchical system organization “Multi-level client-server” Each layer exposes an interface (API) to be used by above layers  Each layer acts as a Server: service provider to layers “above” Client: service consumer of layer(s) “below”  Connectors are protocols of layer interaction  Example: operating systems  Virtual machine style results from fully opaque layers
  • 6. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 6 Layered Style (cont’d)  Advantages Increasing abstraction levels Evolvability Changes in a layer affect at most the adjacent two layers Reuse Different implementations of layer are allowed as long as interface is preserved Standardized layer interfaces for libraries and frameworks
  • 7. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 7 Layered Style (cont’d)  Disadvantages Not universally applicable Performance  Layers may have to be skipped Determining the correct abstraction level
  • 8. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 8 Layered Systems/Virtual Machines Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 9. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 9 Layered LL Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 10. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 10 Client-Server Style  Components are clients and servers  Servers do not know number or identities of clients  Clients know server’s identity  Connectors are RPC-based network interaction protocols
  • 11. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 11 Client-Server LL Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 12. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 12 Data-Flow Styles Batch Sequential Separate programs are executed in order; data is passed as an aggregate from one program to the next. Connectors: “The human hand” carrying tapes between the programs, a.k.a. “sneaker-net ” Data Elements: Explicit, aggregate elements passed from one component to the next upon completion of the producing program’s execution.  Typical uses: Transaction processing in financial systems. “The Granddaddy of Styles”
  • 13. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 13 Batch-Sequential: A Financial Application Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 14. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 14 Batch-Sequential LL Not a recipe for a successful lunar mission! Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 15. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 15 Pipe and Filter Style  Components are filters Transform input data streams into output data streams Possibly incremental production of output  Connectors are pipes Conduits for data streams  Style invariants Filters are independent (no shared state) Filter has no knowledge of up- or down-stream filters  Examples UNIX shell signal processing Distributed systems parallel programming  Example: ls invoices | grep -e August | sort
  • 16. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 16 Pipe and Filter (cont’d)  Variations Pipelines — linear sequences of filters Bounded pipes — limited amount of data on a pipe Typed pipes — data strongly typed  Advantages System behavior is a succession of component behaviors Filter addition, replacement, and reuse Possible to hook any two filters together Certain analyses Throughput, latency, deadlock Concurrent execution
  • 17. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 17 Pipe and Filter (cont’d)  Disadvantages Batch organization of processing Interactive applications Lowest common denominator on data transmission
  • 18. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 18 Pipe and Filter LL Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 19. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 19 Blackboard Style  Two kinds of components Central data structure — blackboard Components operating on the blackboard  System control is entirely driven by the blackboard state  Examples Typically used for AI systems Integrated software environments (e.g., Interlisp) Compiler architecture
  • 20. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 20 Blackboard LL Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 21. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 21 Mobile-Code Style  Summary: a data element (some representation of a program) is dynamically transformed into a data processing component.  Components: “Execution dock”, which handles receipt of code and state; code compiler/interpreter  Connectors: Network protocols and elements for packaging code and data for transmission.  Data Elements: Representations of code as data; program state; data  Variants: Code-on-demand, remote evaluation, and mobile agent.
  • 22. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 22 Mobile Code LL Scripting languages (i.e. JavaScript, VBScript), ActiveX control, embedded Word/Excel macros. Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 23. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 23 Implicit Invocation Style  Event announcement instead of method invocation “Listeners” register interest in and associate methods with events System invokes all registered methods implicitly  Component interfaces are methods and events  Two types of connectors Invocation is either explicit or implicit in response to events  Style invariants “Announcers” are unaware of their events’ effects No assumption about processing in response to events
  • 24. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 24 Implicit Invocation (cont’d)  Advantages Component reuse System evolution Both at system construction-time & run-time  Disadvantages Counter-intuitive system structure Components relinquish computation control to the system No knowledge of what components will respond to event No knowledge of order of responses
  • 25. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 25 Publish-Subscribe Subscribers register/deregister to receive specific messages or specific content. Publishers broadcast messages to subscribers either synchronously or asynchronously.
  • 26. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 26 Publish-Subscribe (cont’d)  Components: Publishers, subscribers, proxies for managing distribution  Connectors: Typically a network protocol is required. Content-based subscription requires sophisticated connectors.  Data Elements: Subscriptions, notifications, published information  Topology: Subscribers connect to publishers either directly or may receive notifications via a network protocol from intermediaries  Qualities yielded: Highly efficient one-way dissemination of information with very low-coupling of components
  • 27. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 27 Pub-Sub LL Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 28. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 28 Event-Based Style  Independent components asynchronously emit and receive events communicated over event buses  Components: Independent, concurrent event generators and/or consumers  Connectors: Event buses (at least one)  Data Elements: Events – data sent as a first-class entity over the event bus  Topology: Components communicate with the event buses, not directly to each other.  Variants: Component communication with the event bus may either be push or pull based.  Highly scalable, easy to evolve, effective for highly distributed applications.
  • 29. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 29 Event-based LL Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 30. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 30 Peer-to-Peer Style  State and behavior are distributed among peers which can act as either clients or servers.  Peers: independent components, having their own state and control thread.  Connectors: Network protocols, often custom.  Data Elements: Network messages
  • 31. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 31 Peer-to-Peer Style (cont’d)  Topology: Network (may have redundant connections between peers); can vary arbitrarily and dynamically  Supports decentralized computing with flow of control and resources distributed among peers.  Highly robust in the face of failure of any given node.  Scalable in terms of access to resources and computing power. But caution on the protocol!
  • 32. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 32 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission. Peer-to-Peer LL
  • 33. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 33 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
  • 34. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 34 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.
  • 35. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 35 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 first-class 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.
  • 36. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 36 C2 LL Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 37. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 37 KLAX Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 38. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 38 KLAX in C2 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 39. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 39 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
  • 40. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 40 CORBA Concept and Implementation Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 41. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 41 CORBA LL Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Editor's Notes

  1. GetBurnRate runs continuously on its own, prompting the user for a new burn rate. In this design the “compute new values” determines how much time has passed. Could alternatively do that in the GetBurnRate filter. Would change semantics a bit.