SlideShare a Scribd company logo
1 of 54
SA Styles, Patterns, and Tactics 
Henry Muccini 
DISIM, University of L’Aquila henry.muccini@univaq.it, 
@muccinihenry 
DISIM 
Dep.nt of Information Engineering, Computer Science and Mathematics 
University of L’Aquila, Italy
The material in these slides may be freely reproduced 
and distributed, partially or totally, as far as an explicit 
reference or acknowledge to the material author is 
preserved. 
SEA Group 
Henry Muccini
SEA Group 
A brief summary
SA STYLES 
SEA Group
Prescriptive vs descriptive use of an architectural 
language 
SEA Group
SEA Group 
“A set of design rules that identify the kinds of components 
and connectors that may be used to compose a system 
or subsystem, together with local or global constraints on 
the way the composition is done” (Shaw & Clements, 1996) 
A set of constraints you put on your development to elicit desirable 
properties from your software architecture. 
Topological 
Behavioral 
Communication-oriented 
etc. etc. 
IMP
Architectural styles typically determine four kinds of properties [AAG93]: 
IMP 
SEA Group
SEA Group 
The Classical Style 
The Californian Style
Many similarities between patterns and styles 
But they have come from different communities 
Differences 
SEA Group 
Architectural Styles Design Patterns 
Few Many 
Large-scale system 
organization 
Localized, small-scale 
design solutions
1. The top of a component may be connected to the 
SEA Group 
bottom of a single connector. 
2. The bottom of a component may be connected to 
the top of a single connector. 
3. There is no bound on the number of components 
or connectors that may be attached to a single 
connector. 
4. When two connectors are attached to each other, 
it must be from the bottom of one to the top of 
the other. 
5. Components can communicate only through 
connectors
The communication between components and connectors is 
achieved solely exchanging messages 
The communication is based on notifications and requests 
Both component top domain and bottom domain can notify or 
request messages 
SEA Group 
Comp2 
Comp1 
Top 
Bottom 
Top 
Requests Notifications 
Comp2 receives a request Comp2 sends a notification 
Comp1 sends a request 
Bottom Comp1 receives a request 
Comp1 receives a notification 
Comp1 sends a notification
SEA Group 
ElevatorADT1 
ElevatorPanel1 
ElevatorSynchronizer 
ElevatorPanel2 
Scheduler 
ElevatorADT2 
BuildingPanel 
ElevatorADT1 
ElevatorPanel1 
ElevatorSynchronizer 
ElevatorPanel2 
Scheduler 
ElevatorADT2 
BuildingPanel 
C2 connector 
C2 component 
comm. channel 
request 
notification
MORE ABOUT THE C2 STYLE 
SEA Group
1. The top of a component may be connected to the bottom 
SEA Group 
of a single connector. 
Comp1 NOT Permitted 
Connector Bottom 
Comp1 
Connector Top
2. The bottom of a component may be connected to the top 
SEA Group 
of a single connector. 
Comp1 
NOT Permitted 
Comp1 
Connector Bottom 
Connector Top
3. There is no bound on the number of components or 
SEA Group 
connectors that may be attached to a single connector. 
Comp1 Comp2 Comp3 
Permitted
4. When two connectors are attached to each other, it must 
SEA Group 
be from the bottom of one to the top of the other. 
Connector Bottom 
Connector Top 
Connector Bottom 
Connector Top 
Connector Bottom 
Connector Top 
Permitted 
Connector Bottom 
Connector Top 
Connector Bottom 
Connector Top 
NOT Permitted
5. Components can communicate only through 
SEA Group 
connectors 
Comp1 
Comp2 
NOT Permitted 
Permitted: 
Following rule 4
SEA Group 
ADL TOOLS DATE SUPPORT FOR ARCHITECTURAL STYLES 
AADL Osate 2001 
Descrizione di proprietà ed interfacce relative a componenti 
+ 
configurazioni di intercambio XML/XMI 
ACME Acme Studio+Armani 1995 Interscambio architetturale prevalentemente a livello strutturale 
ArchiTrio Trident 1990 Unisce lo stile delle notazioni standard UML 2.0 ai formalismi logico-temporali di TRIO 
ArchJava AcmeArchJava 2002 Supporta uno stile di programmazione flessibile orientato agli oggetti 
CommUnity 
CommUnity 
WorkBench 
2002 Linguaggio che si rispecchia negli stili UNITY ed IP 
DARWIN LTSA-WS + SAA 1991 Architetture di sistemi distribuiti il cui dinamismo è guidato da un supporto severo e formale 
EAST-ADL AutoFocus2 2001/2004 La descrizione degli elementi del linguaggio è suddivisa in sei parti (domini) 
Ménage/xAD 
L 
ArchStudio+Ménage 2000 Introduce la distinzione tra prescription e description della SA 
PRISMA PrismaCase 2002 Definizione di elementi architetturali a due diversi livelli di astrazione 
xArch/xAcm 
e 
Acme Studio 2001 
Versione recente del linguaggio Acme che ne mantiene le caratteristiche di base, specificate 
però in XML 
xArch/xADL ArchStudio+Apigen 2000 Introduce la distinzione tra prescription e description della SA
SOME OF THE MOST KNOWN STYLES 
SEA Group
SEA Group 
C2 Style 
Pipes and filters 
Layered systems 
Blackboard style 
Implicit Invocation 
Idealized FT Component Model 
Peer to peer 
Hypertext style (!) 
MVC 
RUP
For each style, we will identify: 
SEA Group
Layered Style 
SEA Group 
Java Virtual Machine 
Java 
Java 
Operating 
Processor 
System 
Virtual Machine 
Application 
(Virtual Machine Style)
The Layered System Style 
A layered system is organized hierarchically, each layer providing service 
to the layer above and below 
Components 
Connectors 
SEA Group 
Procedure calls or system calls 
Stylistic invariants
Application 
Presentation 
SEA Group 
Session 
Transport 
Network 
Data Link 
Physical 
Application 
Presentation 
Session 
Transport 
Network 
Data Link 
Physical 
Network 
Data Link 
Physical 
Network 
Data Link 
Physical
SEA Group
Advantages 
Disadvantages 
SEA Group
SEA Group 
1..1 
1..1 
XCONN1 
1..1 
1..1 
1..1 
1..1 
1..2 
1..1 
XCONN 
… 
GLOBAL 
SHELF 
PERIPHE 
RAL 
XCONN2 
XCONN3 
1..1 
1..1 
XCONN 
XCONN1 
1..1 
1..1 
1..1 
1..1 
1..2 
1..1 
… 
XCONN2 
XCONN3
SEA Group 
Blackboad style 
1..* 
Blackboard 
KS 
1..* 
Controller
The Blackboard Style 
This style is characterized by a central data structure and a collection of components 
operating on the central data store 
The Blackboard is characterized by three main types of components 
(Corkill, 1991): 
Connector 
Property 
SEA Group
Advantages 
Disadvantages 
SEA Group
SEA Group
Distributed Peer-to-Peer Systems 
Components 
Connectors 
Configurations 
Computational model 
SEA Group
SEA Group 
HTTP 
Browser Clients 
(asynchronous RPC) 
www.sitoweb.it 
www.website.com 
Netscape 
Navigator 
Microsoft 
IE 
Web 
Servers 
www.laudaweb.it 
• Load balancing 
• Cooperative caching 
• Use of geographic distribution of the server machines.
Client/Server Systems 
Client/Server systems are the most common specialization (restriction) of 
SEA Group 
the peer-to-peer style 
One component is a server offering a service 
The other components are clients using the service 
Server implementation is transparent but can be centralized or distributed, 
single-threaded or multi-threaded
SEA Group 
3-Tier Client/Server Systems (example)
3-Tier Client/Server Systems 
3-Tier Client/Server systems are a common class of distributed business 
SEA Group 
systems 
First tier: Client (user interface) tier 
Second (middle, “business logic”) tier: Servers acting as “business objects”, 
encapsulating abstract, integrated models of multiple, disparate data 
sources 
Third (back-end, database) tier: Legacy business applications providing data 
services
SEA Group 
WHAT IS P2P? 
There are 3 types of P2P System: 
1st: Napster
SEA Group 
WHAT IS P2P? 
2nd: Gnutella
SEA Group
SEA Group 
WHAT IS P2P? 
3rd: SKYPE
Advantages 
Disadvantages 
SEA Group 
Distributed state 
Potential for deadlock, starvation, race conditions, service outages 
Data marshalling and unmarshalling 
Proxies and stubs for RPC 
Legacy wrappers
SEA Group 
image from Google Images
SEA Group 
Program unit (object, process, block, module, method, 
class, component, etc.) 
Interface Exception Failure Exception 
Local Exception 
Reply 
Normal Processing Error Processing 
Return to normal 
Service Request 
Service Request Reply 
Interface Exception Failure Exception
•The normal part implements the component’s normal services 
•The exceptional part implements the responses of the 
component to exceptional situations, by means of exception-handling 
SEA Group 
techniques. 
•When the normal behavior of a component raises an exception 
(local exception) its exception handling part is automatically 
invoked. If the exception is successfully handled the component 
resumes its normal behavior, otherwise an external exception is 
signalled. 
•External exceptions are signalled to the enclosing context when 
the component realizes that is not able to provide the service.
Example 
SEA Group
MVC: 
SEA Group 
Input --> Processing --> Output 
Controller --> Model --> View
Model 
View 
Controller 
SEA Group
SEA Group 
Fig 13.7, SA in Practice book 
1..* 
1 
1..*
There is some smoke on the first apartment in the 4th floor, on Avenue de Fortune 
26. A smoke sensor detects the smoke, potential source of a fire, and informs a local 
server. The local server posts the information on-line, and this information is 
accessible from the fire station. The fire station has a view on all the alarms and 
warnings happening at the all time. The system monitors the status of alarms and 
informs the fire fighters about the entity of the fire, the time it started, the area 
covered by it, and other sensitive information. Based on such information, the 
system decides where to send the fire trucks (in case only a limited set of fires can 
be managed in parallel). The fire fighters jump into the fire truck, turn in their 
onboard computing system, and get information about the fastest way to get to 
destination. During the trip, they get all possible updates about the state of the fire. 
Based on this information, they may decide that a second truck is needed, or one is 
closer to Avenue de Fortune, or that their service is not needed anymore. When the 
fire fighters arrive to Avenue de Fortune 26, the entire 4th floor is on fire. By using 
other sensors, they may know how many people is trapped inside the building: this 
information is displayed on their devices. Fortunately, nobody is inside the building 
at this time. Before starting extinguishing the fire, the system discovers that there 
are some gas cylinders on the 6th floor. They first start securing those devices, and in 
parallel extinguishing the fire on the 4th floor. 
SEA Group
SEA Group
Patterns are constructed from different tactics 
A tactic promotes a specific quality attribute 
Tactics can be used to enhance existing patterns 
SEA Group
What you shall have learned 
You shall: 
SEA Group 
Layered systems 
Blackboard style 
Peer to peer 
…
Software Architecture in Practice, chapter 13 
[SC97] A Field Guide to Boxology: Preliminary Classification 
of Architectural Styles for Software Systems, M. Shaw and 
P. Clements, In Proc. COMPSAC97, 21st Int'l Computer 
Software and Applications Conference, August 1997, pp. 6- 
13. 
SEA Group

More Related Content

What's hot

2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software conceptsPrajakta Rane
 
Basis path testing
Basis path testingBasis path testing
Basis path testingHoa Le
 
Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecturenupurmakhija1211
 
INTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSINTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSAshita Agrawal
 
Software Engineering : OOAD using UML
Software Engineering : OOAD using UMLSoftware Engineering : OOAD using UML
Software Engineering : OOAD using UMLAjit Nayak
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSiddhesh Palkar
 
Collaboration diagram- UML diagram
Collaboration diagram- UML diagram Collaboration diagram- UML diagram
Collaboration diagram- UML diagram Ramakant Soni
 
distributed shared memory
 distributed shared memory distributed shared memory
distributed shared memoryAshish Kumar
 
Direct linking loader
Direct linking loaderDirect linking loader
Direct linking loaderbabyparul
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGSaqib Raza
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case DiagramAshesh R
 
Synchronization in distributed computing
Synchronization in distributed computingSynchronization in distributed computing
Synchronization in distributed computingSVijaylakshmi
 
Client server s/w Engineering
Client server s/w EngineeringClient server s/w Engineering
Client server s/w EngineeringRajan Shah
 

What's hot (20)

2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts
 
Basis path testing
Basis path testingBasis path testing
Basis path testing
 
Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecture
 
INTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSINTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMS
 
Software Engineering : OOAD using UML
Software Engineering : OOAD using UMLSoftware Engineering : OOAD using UML
Software Engineering : OOAD using UML
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Collaboration diagram- UML diagram
Collaboration diagram- UML diagram Collaboration diagram- UML diagram
Collaboration diagram- UML diagram
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
Fault tolerance
Fault toleranceFault tolerance
Fault tolerance
 
distributed shared memory
 distributed shared memory distributed shared memory
distributed shared memory
 
Direct linking loader
Direct linking loaderDirect linking loader
Direct linking loader
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
Lecture 3 threads
Lecture 3   threadsLecture 3   threads
Lecture 3 threads
 
Synchronization in distributed computing
Synchronization in distributed computingSynchronization in distributed computing
Synchronization in distributed computing
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Client server s/w Engineering
Client server s/w EngineeringClient server s/w Engineering
Client server s/w Engineering
 

Viewers also liked

Software Architecture: Styles
Software Architecture: StylesSoftware Architecture: Styles
Software Architecture: StylesHenry Muccini
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsHimanshu
 
Layered architecture style
Layered architecture styleLayered architecture style
Layered architecture styleBegench Suhanov
 
Three Software Architecture Styles
Three Software Architecture StylesThree Software Architecture Styles
Three Software Architecture StylesJorgen Thelin
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing FundamentalsChankey Pathak
 
Athens 2004 Licensing Program Style Guide 2_LR
Athens 2004 Licensing Program Style Guide 2_LRAthens 2004 Licensing Program Style Guide 2_LR
Athens 2004 Licensing Program Style Guide 2_LRTraining4EU
 
Software testing part
Software testing partSoftware testing part
Software testing partPreeti Mishra
 
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
 
Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)stanbridge
 
Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Henry Muccini
 
Multi Tier Architecture
Multi Tier ArchitectureMulti Tier Architecture
Multi Tier Architecturegatigno
 
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
 
Enterprise Software Architecture styles
Enterprise Software Architecture stylesEnterprise Software Architecture styles
Enterprise Software Architecture stylesAraf Karsh Hamid
 
Virtual machines and their architecture
Virtual machines and their architectureVirtual machines and their architecture
Virtual machines and their architectureMrinmoy Dalal
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11Siddharth Ayer
 
Modern Software Architecture Styles and Patterns
Modern Software Architecture Styles and PatternsModern Software Architecture Styles and Patterns
Modern Software Architecture Styles and PatternsGanesh Samarthyam
 

Viewers also liked (20)

Software Architecture: Styles
Software Architecture: StylesSoftware Architecture: Styles
Software Architecture: Styles
 
ARCHITECTURAL STYLES
ARCHITECTURAL STYLESARCHITECTURAL STYLES
ARCHITECTURAL STYLES
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
Layered architecture style
Layered architecture styleLayered architecture style
Layered architecture style
 
Layered Architecture
Layered ArchitectureLayered Architecture
Layered Architecture
 
Three Software Architecture Styles
Three Software Architecture StylesThree Software Architecture Styles
Three Software Architecture Styles
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing Fundamentals
 
Layered Software Architecture
Layered Software ArchitectureLayered Software Architecture
Layered Software Architecture
 
Athens 2004 Licensing Program Style Guide 2_LR
Athens 2004 Licensing Program Style Guide 2_LRAthens 2004 Licensing Program Style Guide 2_LR
Athens 2004 Licensing Program Style Guide 2_LR
 
Software testing part
Software testing partSoftware testing part
Software testing part
 
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
 
Testing fundamentals
Testing fundamentalsTesting fundamentals
Testing fundamentals
 
Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)
 
Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013
 
Multi Tier Architecture
Multi Tier ArchitectureMulti Tier Architecture
Multi Tier Architecture
 
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
 
Enterprise Software Architecture styles
Enterprise Software Architecture stylesEnterprise Software Architecture styles
Enterprise Software Architecture styles
 
Virtual machines and their architecture
Virtual machines and their architectureVirtual machines and their architecture
Virtual machines and their architecture
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11
 
Modern Software Architecture Styles and Patterns
Modern Software Architecture Styles and PatternsModern Software Architecture Styles and Patterns
Modern Software Architecture Styles and Patterns
 

Similar to Software Architecture Styles

SE2018_Lec 16_ Architectural Design
SE2018_Lec 16_ Architectural DesignSE2018_Lec 16_ Architectural Design
SE2018_Lec 16_ Architectural DesignAmr E. Mohamed
 
Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIvano Malavolta
 
BAPANKAR15800121011 SOFT.pptx
BAPANKAR15800121011 SOFT.pptxBAPANKAR15800121011 SOFT.pptx
BAPANKAR15800121011 SOFT.pptxBapanKar2
 
Nt1310 Unit 3 Data Analysis Essay
Nt1310 Unit 3 Data Analysis EssayNt1310 Unit 3 Data Analysis Essay
Nt1310 Unit 3 Data Analysis EssayAntoinette Williams
 
Technical Training v1.1.pptx
Technical Training v1.1.pptxTechnical Training v1.1.pptx
Technical Training v1.1.pptxAjit877325
 
006 Osi Model
006 Osi Model006 Osi Model
006 Osi ModelBELKA08
 
1.Architecture
1.Architecture1.Architecture
1.Architecturephanleson
 
Ncsweek2 osi model
Ncsweek2 osi modelNcsweek2 osi model
Ncsweek2 osi modeljayvelu
 
BSA 385 Week 3 Individual Assignment Essay
BSA 385 Week 3 Individual Assignment EssayBSA 385 Week 3 Individual Assignment Essay
BSA 385 Week 3 Individual Assignment EssayTara Smith
 
Automotive embedded systems part8 v1
Automotive embedded systems part8 v1Automotive embedded systems part8 v1
Automotive embedded systems part8 v1Keroles karam khalil
 
ECET 380 Success Begins/Newtonhelp.com
ECET 380 Success Begins/Newtonhelp.comECET 380 Success Begins/Newtonhelp.com
ECET 380 Success Begins/Newtonhelp.comledlang2
 
Ictinfraosi7 layers tcpipmodel2016e
Ictinfraosi7 layers tcpipmodel2016eIctinfraosi7 layers tcpipmodel2016e
Ictinfraosi7 layers tcpipmodel2016euncleRhyme
 
CN unit 1 part 2 2023.ppt
CN unit 1 part 2 2023.pptCN unit 1 part 2 2023.ppt
CN unit 1 part 2 2023.pptmohanravi1986
 

Similar to Software Architecture Styles (20)

SE2018_Lec 16_ Architectural Design
SE2018_Lec 16_ Architectural DesignSE2018_Lec 16_ Architectural Design
SE2018_Lec 16_ Architectural Design
 
Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGES
 
Ccna notes
Ccna notesCcna notes
Ccna notes
 
Ccna notes
Ccna notesCcna notes
Ccna notes
 
Osi model
Osi modelOsi model
Osi model
 
BAPANKAR15800121011 SOFT.pptx
BAPANKAR15800121011 SOFT.pptxBAPANKAR15800121011 SOFT.pptx
BAPANKAR15800121011 SOFT.pptx
 
Nt1310 Unit 3 Data Analysis Essay
Nt1310 Unit 3 Data Analysis EssayNt1310 Unit 3 Data Analysis Essay
Nt1310 Unit 3 Data Analysis Essay
 
Technical Training v1.1.pptx
Technical Training v1.1.pptxTechnical Training v1.1.pptx
Technical Training v1.1.pptx
 
006 Osi Model
006 Osi Model006 Osi Model
006 Osi Model
 
Osi model
Osi modelOsi model
Osi model
 
1.Architecture
1.Architecture1.Architecture
1.Architecture
 
Ncsweek2 osi model
Ncsweek2 osi modelNcsweek2 osi model
Ncsweek2 osi model
 
BSA 385 Week 3 Individual Assignment Essay
BSA 385 Week 3 Individual Assignment EssayBSA 385 Week 3 Individual Assignment Essay
BSA 385 Week 3 Individual Assignment Essay
 
Automotive embedded systems part8 v1
Automotive embedded systems part8 v1Automotive embedded systems part8 v1
Automotive embedded systems part8 v1
 
The osi model
The osi modelThe osi model
The osi model
 
ECET 380 Success Begins/Newtonhelp.com
ECET 380 Success Begins/Newtonhelp.comECET 380 Success Begins/Newtonhelp.com
ECET 380 Success Begins/Newtonhelp.com
 
Ictinfraosi7 layers tcpipmodel2016e
Ictinfraosi7 layers tcpipmodel2016eIctinfraosi7 layers tcpipmodel2016e
Ictinfraosi7 layers tcpipmodel2016e
 
CN unit 1 part 2 2023.ppt
CN unit 1 part 2 2023.pptCN unit 1 part 2 2023.ppt
CN unit 1 part 2 2023.ppt
 
Wp simoneau osi_model
Wp simoneau osi_modelWp simoneau osi_model
Wp simoneau osi_model
 
MDA with Executable UML
MDA with Executable UMLMDA with Executable UML
MDA with Executable UML
 

More from Henry Muccini

Human Behaviour Centred Design
Human Behaviour Centred Design Human Behaviour Centred Design
Human Behaviour Centred Design Henry Muccini
 
How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...Henry Muccini
 
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle SegreterieLa gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle SegreterieHenry Muccini
 
Turismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibileTurismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibileHenry Muccini
 
Sustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd managementSustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd managementHenry Muccini
 
Software Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of ThingsSoftware Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of ThingsHenry Muccini
 
The influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design DecisionsThe influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design DecisionsHenry Muccini
 
An IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building ArchitectureAn IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building ArchitectureHenry Muccini
 
Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)Henry Muccini
 
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)Henry Muccini
 
Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)Henry Muccini
 
Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)Henry Muccini
 
Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)Henry Muccini
 
Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)Henry Muccini
 
Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L1: introduction to Web Engineering (1/8)Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L1: introduction to Web Engineering (1/8)Henry Muccini
 
Web Engineering L4: Requirements and Planning in concrete (4/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)Web Engineering L4: Requirements and Planning in concrete (4/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)Henry Muccini
 
Collaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on SustainabilityCollaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on SustainabilityHenry Muccini
 
Engineering Cyber Physical Spaces
Engineering Cyber Physical SpacesEngineering Cyber Physical Spaces
Engineering Cyber Physical SpacesHenry Muccini
 
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPISI progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPISHenry Muccini
 
Exploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software ArchitectureExploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software ArchitectureHenry Muccini
 

More from Henry Muccini (20)

Human Behaviour Centred Design
Human Behaviour Centred Design Human Behaviour Centred Design
Human Behaviour Centred Design
 
How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...
 
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle SegreterieLa gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
 
Turismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibileTurismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibile
 
Sustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd managementSustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd management
 
Software Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of ThingsSoftware Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of Things
 
The influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design DecisionsThe influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design Decisions
 
An IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building ArchitectureAn IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building Architecture
 
Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)
 
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
 
Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)
 
Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)
 
Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)
 
Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)
 
Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L1: introduction to Web Engineering (1/8)Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L1: introduction to Web Engineering (1/8)
 
Web Engineering L4: Requirements and Planning in concrete (4/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)Web Engineering L4: Requirements and Planning in concrete (4/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)
 
Collaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on SustainabilityCollaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on Sustainability
 
Engineering Cyber Physical Spaces
Engineering Cyber Physical SpacesEngineering Cyber Physical Spaces
Engineering Cyber Physical Spaces
 
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPISI progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
 
Exploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software ArchitectureExploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software Architecture
 

Recently uploaded

Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
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
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
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
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
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
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 

Recently uploaded (20)

Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
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
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
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
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
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
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
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
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 

Software Architecture Styles

  • 1. SA Styles, Patterns, and Tactics Henry Muccini DISIM, University of L’Aquila henry.muccini@univaq.it, @muccinihenry DISIM Dep.nt of Information Engineering, Computer Science and Mathematics University of L’Aquila, Italy
  • 2. The material in these slides may be freely reproduced and distributed, partially or totally, as far as an explicit reference or acknowledge to the material author is preserved. SEA Group Henry Muccini
  • 3. SEA Group A brief summary
  • 5. Prescriptive vs descriptive use of an architectural language SEA Group
  • 6. SEA Group “A set of design rules that identify the kinds of components and connectors that may be used to compose a system or subsystem, together with local or global constraints on the way the composition is done” (Shaw & Clements, 1996) A set of constraints you put on your development to elicit desirable properties from your software architecture. Topological Behavioral Communication-oriented etc. etc. IMP
  • 7. Architectural styles typically determine four kinds of properties [AAG93]: IMP SEA Group
  • 8. SEA Group The Classical Style The Californian Style
  • 9. Many similarities between patterns and styles But they have come from different communities Differences SEA Group Architectural Styles Design Patterns Few Many Large-scale system organization Localized, small-scale design solutions
  • 10. 1. The top of a component may be connected to the SEA Group bottom of a single connector. 2. The bottom of a component may be connected to the top of a single connector. 3. There is no bound on the number of components or connectors that may be attached to a single connector. 4. When two connectors are attached to each other, it must be from the bottom of one to the top of the other. 5. Components can communicate only through connectors
  • 11. The communication between components and connectors is achieved solely exchanging messages The communication is based on notifications and requests Both component top domain and bottom domain can notify or request messages SEA Group Comp2 Comp1 Top Bottom Top Requests Notifications Comp2 receives a request Comp2 sends a notification Comp1 sends a request Bottom Comp1 receives a request Comp1 receives a notification Comp1 sends a notification
  • 12. SEA Group ElevatorADT1 ElevatorPanel1 ElevatorSynchronizer ElevatorPanel2 Scheduler ElevatorADT2 BuildingPanel ElevatorADT1 ElevatorPanel1 ElevatorSynchronizer ElevatorPanel2 Scheduler ElevatorADT2 BuildingPanel C2 connector C2 component comm. channel request notification
  • 13. MORE ABOUT THE C2 STYLE SEA Group
  • 14. 1. The top of a component may be connected to the bottom SEA Group of a single connector. Comp1 NOT Permitted Connector Bottom Comp1 Connector Top
  • 15. 2. The bottom of a component may be connected to the top SEA Group of a single connector. Comp1 NOT Permitted Comp1 Connector Bottom Connector Top
  • 16. 3. There is no bound on the number of components or SEA Group connectors that may be attached to a single connector. Comp1 Comp2 Comp3 Permitted
  • 17. 4. When two connectors are attached to each other, it must SEA Group be from the bottom of one to the top of the other. Connector Bottom Connector Top Connector Bottom Connector Top Connector Bottom Connector Top Permitted Connector Bottom Connector Top Connector Bottom Connector Top NOT Permitted
  • 18. 5. Components can communicate only through SEA Group connectors Comp1 Comp2 NOT Permitted Permitted: Following rule 4
  • 19. SEA Group ADL TOOLS DATE SUPPORT FOR ARCHITECTURAL STYLES AADL Osate 2001 Descrizione di proprietà ed interfacce relative a componenti + configurazioni di intercambio XML/XMI ACME Acme Studio+Armani 1995 Interscambio architetturale prevalentemente a livello strutturale ArchiTrio Trident 1990 Unisce lo stile delle notazioni standard UML 2.0 ai formalismi logico-temporali di TRIO ArchJava AcmeArchJava 2002 Supporta uno stile di programmazione flessibile orientato agli oggetti CommUnity CommUnity WorkBench 2002 Linguaggio che si rispecchia negli stili UNITY ed IP DARWIN LTSA-WS + SAA 1991 Architetture di sistemi distribuiti il cui dinamismo è guidato da un supporto severo e formale EAST-ADL AutoFocus2 2001/2004 La descrizione degli elementi del linguaggio è suddivisa in sei parti (domini) Ménage/xAD L ArchStudio+Ménage 2000 Introduce la distinzione tra prescription e description della SA PRISMA PrismaCase 2002 Definizione di elementi architetturali a due diversi livelli di astrazione xArch/xAcm e Acme Studio 2001 Versione recente del linguaggio Acme che ne mantiene le caratteristiche di base, specificate però in XML xArch/xADL ArchStudio+Apigen 2000 Introduce la distinzione tra prescription e description della SA
  • 20. SOME OF THE MOST KNOWN STYLES SEA Group
  • 21. SEA Group C2 Style Pipes and filters Layered systems Blackboard style Implicit Invocation Idealized FT Component Model Peer to peer Hypertext style (!) MVC RUP
  • 22. For each style, we will identify: SEA Group
  • 23. Layered Style SEA Group Java Virtual Machine Java Java Operating Processor System Virtual Machine Application (Virtual Machine Style)
  • 24. The Layered System Style A layered system is organized hierarchically, each layer providing service to the layer above and below Components Connectors SEA Group Procedure calls or system calls Stylistic invariants
  • 25. Application Presentation SEA Group Session Transport Network Data Link Physical Application Presentation Session Transport Network Data Link Physical Network Data Link Physical Network Data Link Physical
  • 28. SEA Group 1..1 1..1 XCONN1 1..1 1..1 1..1 1..1 1..2 1..1 XCONN … GLOBAL SHELF PERIPHE RAL XCONN2 XCONN3 1..1 1..1 XCONN XCONN1 1..1 1..1 1..1 1..1 1..2 1..1 … XCONN2 XCONN3
  • 29. SEA Group Blackboad style 1..* Blackboard KS 1..* Controller
  • 30. The Blackboard Style This style is characterized by a central data structure and a collection of components operating on the central data store The Blackboard is characterized by three main types of components (Corkill, 1991): Connector Property SEA Group
  • 33. Distributed Peer-to-Peer Systems Components Connectors Configurations Computational model SEA Group
  • 34. SEA Group HTTP Browser Clients (asynchronous RPC) www.sitoweb.it www.website.com Netscape Navigator Microsoft IE Web Servers www.laudaweb.it • Load balancing • Cooperative caching • Use of geographic distribution of the server machines.
  • 35. Client/Server Systems Client/Server systems are the most common specialization (restriction) of SEA Group the peer-to-peer style One component is a server offering a service The other components are clients using the service Server implementation is transparent but can be centralized or distributed, single-threaded or multi-threaded
  • 36. SEA Group 3-Tier Client/Server Systems (example)
  • 37. 3-Tier Client/Server Systems 3-Tier Client/Server systems are a common class of distributed business SEA Group systems First tier: Client (user interface) tier Second (middle, “business logic”) tier: Servers acting as “business objects”, encapsulating abstract, integrated models of multiple, disparate data sources Third (back-end, database) tier: Legacy business applications providing data services
  • 38. SEA Group WHAT IS P2P? There are 3 types of P2P System: 1st: Napster
  • 39. SEA Group WHAT IS P2P? 2nd: Gnutella
  • 41. SEA Group WHAT IS P2P? 3rd: SKYPE
  • 42. Advantages Disadvantages SEA Group Distributed state Potential for deadlock, starvation, race conditions, service outages Data marshalling and unmarshalling Proxies and stubs for RPC Legacy wrappers
  • 43. SEA Group image from Google Images
  • 44. SEA Group Program unit (object, process, block, module, method, class, component, etc.) Interface Exception Failure Exception Local Exception Reply Normal Processing Error Processing Return to normal Service Request Service Request Reply Interface Exception Failure Exception
  • 45. •The normal part implements the component’s normal services •The exceptional part implements the responses of the component to exceptional situations, by means of exception-handling SEA Group techniques. •When the normal behavior of a component raises an exception (local exception) its exception handling part is automatically invoked. If the exception is successfully handled the component resumes its normal behavior, otherwise an external exception is signalled. •External exceptions are signalled to the enclosing context when the component realizes that is not able to provide the service.
  • 47. MVC: SEA Group Input --> Processing --> Output Controller --> Model --> View
  • 49. SEA Group Fig 13.7, SA in Practice book 1..* 1 1..*
  • 50. There is some smoke on the first apartment in the 4th floor, on Avenue de Fortune 26. A smoke sensor detects the smoke, potential source of a fire, and informs a local server. The local server posts the information on-line, and this information is accessible from the fire station. The fire station has a view on all the alarms and warnings happening at the all time. The system monitors the status of alarms and informs the fire fighters about the entity of the fire, the time it started, the area covered by it, and other sensitive information. Based on such information, the system decides where to send the fire trucks (in case only a limited set of fires can be managed in parallel). The fire fighters jump into the fire truck, turn in their onboard computing system, and get information about the fastest way to get to destination. During the trip, they get all possible updates about the state of the fire. Based on this information, they may decide that a second truck is needed, or one is closer to Avenue de Fortune, or that their service is not needed anymore. When the fire fighters arrive to Avenue de Fortune 26, the entire 4th floor is on fire. By using other sensors, they may know how many people is trapped inside the building: this information is displayed on their devices. Fortunately, nobody is inside the building at this time. Before starting extinguishing the fire, the system discovers that there are some gas cylinders on the 6th floor. They first start securing those devices, and in parallel extinguishing the fire on the 4th floor. SEA Group
  • 52. Patterns are constructed from different tactics A tactic promotes a specific quality attribute Tactics can be used to enhance existing patterns SEA Group
  • 53. What you shall have learned You shall: SEA Group Layered systems Blackboard style Peer to peer …
  • 54. Software Architecture in Practice, chapter 13 [SC97] A Field Guide to Boxology: Preliminary Classification of Architectural Styles for Software Systems, M. Shaw and P. Clements, In Proc. COMPSAC97, 21st Int'l Computer Software and Applications Conference, August 1997, pp. 6- 13. SEA Group