SlideShare a Scribd company logo
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

PPT
Unit 1 - Introduction to Software Engineering.ppt
PPTX
Software engineering principles in system software design
PPT
Software Quality Management
PPS
8 Characteristics of good user requirements
PPT
Requirements analysis
PPT
Process models
PPTX
Software architecture and software design
PPTX
software History
Unit 1 - Introduction to Software Engineering.ppt
Software engineering principles in system software design
Software Quality Management
8 Characteristics of good user requirements
Requirements analysis
Process models
Software architecture and software design
software History

What's hot (20)

PPT
Software quality assurance lecture 1
PDF
Design Pattern Cheatsheet
PPTX
Software Engineering Unit 1
ODP
Evolutionary process models se.ppt
PPT
Quality Management in Software Engineering SE24
PPTX
Introduction to ASPICE
PPSX
PPT
Use case Diagram
PDF
Lesson 02 python keywords and identifiers
PPTX
Software Crisis
PPTX
Exception handling in Python
PPTX
Introduction to Software Engineering
PPTX
Case tools
PDF
Domain Driven Design
PPTX
Software design and Software engineering.pptx
DOCX
Software Engineering Assignment
PPTX
V model Over View (Software Engineering)
PDF
Types of software testing
PPTX
Two pass Assembler
PPTX
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
Software quality assurance lecture 1
Design Pattern Cheatsheet
Software Engineering Unit 1
Evolutionary process models se.ppt
Quality Management in Software Engineering SE24
Introduction to ASPICE
Use case Diagram
Lesson 02 python keywords and identifiers
Software Crisis
Exception handling in Python
Introduction to Software Engineering
Case tools
Domain Driven Design
Software design and Software engineering.pptx
Software Engineering Assignment
V model Over View (Software Engineering)
Types of software testing
Two pass Assembler
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
Ad

Viewers also liked (15)

PPT
Usability
PPTX
Enterprise Application Architectures by Dr. Indika Kumara
PPTX
Software Product Lines by Dr. Indika Kumara
PPT
Week 8 Architectual Styles
PPTX
Enterprise Software Architecture styles
PDF
Modern Software Architecture Styles and Patterns
PPTX
Software Architecture Styles
PPTX
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
PPT
05 architectural styles
PDF
The Modern Software Architect
PPTX
Software Architecture Patterns
PPTX
A Software Architect's View On Diagramming
PPT
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
PPTX
Fundamentals Of Software Architecture
PPT
Three Software Architecture Styles
Usability
Enterprise Application Architectures by Dr. Indika Kumara
Software Product Lines by Dr. Indika Kumara
Week 8 Architectual Styles
Enterprise Software Architecture styles
Modern Software Architecture Styles and Patterns
Software Architecture Styles
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
05 architectural styles
The Modern Software Architect
Software Architecture Patterns
A Software Architect's View On Diagramming
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Fundamentals Of Software Architecture
Three Software Architecture Styles
Ad

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

PPT
07 software connectors (2)
PPT
lecture7.ppt
PPT
lecture7.ppt
PPT
Cs 1023 lec 4 (week 1)
PPT
Cs 1023 lec 1 big idea (week 1)
PPT
Cs 1023 lec 1 big idea (week 1)
PPT
Cs 1023 lec 13 web (week 4)
PDF
[2016/2017] Introduction to Software Architecture
PPT
07 software connectors
DOCX
Architectural Styles and Case Studies, Software architecture ,unit–2
PPT
Cs 1023 lec 11 dsse (week 4)
PPTX
WINSEM2022-23_SWE2004_ETH_VL2022230501954_2023-02-01_Reference-Material-I.pptx
PPT
02_Architectures_In_Context.ppt
PDF
[2017/2018] Introduction to Software Architecture
PPT
Introduction to Software Integration and Architecture_2.ppt
PPT
Cs 1023 lec 3 architecture (week 1)
PPT
Cs 1023 lec 3 architecture (week 1)
PPTX
SoftwareArchitecture.pptx Software Architecture
PPT
03 basic concepts
PPT
Cs 1023 lec 7 architecture (week 1)
07 software connectors (2)
lecture7.ppt
lecture7.ppt
Cs 1023 lec 4 (week 1)
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 13 web (week 4)
[2016/2017] Introduction to Software Architecture
07 software connectors
Architectural Styles and Case Studies, Software architecture ,unit–2
Cs 1023 lec 11 dsse (week 4)
WINSEM2022-23_SWE2004_ETH_VL2022230501954_2023-02-01_Reference-Material-I.pptx
02_Architectures_In_Context.ppt
[2017/2018] Introduction to Software Architecture
Introduction to Software Integration and Architecture_2.ppt
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
SoftwareArchitecture.pptx Software Architecture
03 basic concepts
Cs 1023 lec 7 architecture (week 1)

More from stanbridge (20)

PPTX
Micro Lab 3 Lecture
PPTX
Creating a poster v2
PPTX
Creating a poster
PPTX
Sample poster
PPTX
OT 5018 Thesis Dissemination
PPTX
Ot5101 005 week 5
PPTX
Ot5101 005 week4
PPTX
Compliance, motivation, and health behaviors
PPTX
Ch 5 developmental stages of the learner
PPTX
OT 5101 week2 theory policy
PPTX
OT 5101 week3 planning needs assessment
PPTX
Ot5101 week1
PPT
NUR 304 Chapter005
PPT
NUR 3043 Chapter007
PPT
NUR 3043 Chapter006
PPT
NUR 3043 Chapter004
PPT
3043 Chapter009
PPT
3043 Chapter008
PPT
Melnyk ppt chapter_21
PPT
Melnyk ppt chapter_22
Micro Lab 3 Lecture
Creating a poster v2
Creating a poster
Sample poster
OT 5018 Thesis Dissemination
Ot5101 005 week 5
Ot5101 005 week4
Compliance, motivation, and health behaviors
Ch 5 developmental stages of the learner
OT 5101 week2 theory policy
OT 5101 week3 planning needs assessment
Ot5101 week1
NUR 304 Chapter005
NUR 3043 Chapter007
NUR 3043 Chapter006
NUR 3043 Chapter004
3043 Chapter009
3043 Chapter008
Melnyk ppt chapter_21
Melnyk ppt chapter_22

Recently uploaded (20)

PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
master seminar digital applications in india
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
Microbial disease of the cardiovascular and lymphatic systems
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
PDF
Classroom Observation Tools for Teachers
PPTX
Cell Structure & Organelles in detailed.
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PPTX
Lesson notes of climatology university.
PPTX
Pharma ospi slides which help in ospi learning
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
VCE English Exam - Section C Student Revision Booklet
Final Presentation General Medicine 03-08-2024.pptx
Anesthesia in Laparoscopic Surgery in India
master seminar digital applications in india
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
202450812 BayCHI UCSC-SV 20250812 v17.pptx
O5-L3 Freight Transport Ops (International) V1.pdf
Module 4: Burden of Disease Tutorial Slides S2 2025
Microbial disease of the cardiovascular and lymphatic systems
Supply Chain Operations Speaking Notes -ICLT Program
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
Classroom Observation Tools for Teachers
Cell Structure & Organelles in detailed.
Pharmacology of Heart Failure /Pharmacotherapy of CHF
human mycosis Human fungal infections are called human mycosis..pptx
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Lesson notes of climatology university.
Pharma ospi slides which help in ospi learning
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
VCE English Exam - Section C Student Revision Booklet

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

  • #19: 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.