presented by riyadh mahmood 3/2/2010 software architecture styles for network-based applications...

18
Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding.

Upload: elijah-lawson

Post on 04-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

Presented ByRiyadh Mahmood

3/2/2010

Software Architecture Styles for Network-based Applications

Original Paper by: Roy T. Fielding.

Page 2: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

2

Outline

• Architecture and Architecture Styles

• Network-based Application Architectures

• Network Application Architecture Classification Methodology

• Architectural Styles for Network-based Applications Evaluations

• Contributions

• Related Work

• Issues/Discussion

Page 3: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

3

Software Architecture Background

• Set of architectural elements that have a particular form, explicated by set of rationale (Perry and Wolf).

• Architecture defines that system in terms of components and of interactions among those components. Specifies the structure and topology of the system. (Shaw et al).

• More focus should be put on data-centric architectural modeling (Boasson, Jackson).

• Software system will often have multiple operational phases (init, processing, re-init, shutdown). Each may have its own architecture consisting of components, connectors, data, configuration, and properties.

Page 4: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

4

Software Architecture Styles

• Characterizes a family of systems that are related by structural and semantic properties (Monroe).

• Abstraction of element types and formal aspects from various specific architectures, perhaps concentrating on only certain aspect of an architecture (Perry & Wolf).

• Pattern of interactions among typed components. Determines the vocabulary of components and connectors that can be used in instances of that style that adhere to a set of constraints (Garlan, Shaw, Clements).

• These restricted view of architectural styles is a direct result of their definition of software architecture. Thinking of architecture as a formal description, rather than a running system, leads to abstraction based only in the shared patterns of box and line diagrams (Abowd).

Page 5: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

5

Architecture Patterns and Views

• In parallel with software engineering research, object oriented programming community has been exploring the use of patterns and a pattern languages (Gang of Four).

• Primary benefit of patterns is that they describe, relatively complex protocols of interactions between objects as a single abstraction.

• It is possible to view an architecture from many different perspectives. Static view, dynamic view, deployment view are some examples.

Page 6: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

6

Network-based Application Architecture

• System performance is dominated by network communication.

• Nature of data elements will often determine whether or not a given architectural style is appropriate.

• Network based vs. distributed.• Survey focused on application software not networking

software.• Survey attempts to fill gap between software engineering

research with network research.

Page 7: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

7

Classification Methodology

• Performance– Network Performance, User-perceived Performance, Network

Efficiency• Scalability• Simplicity• Modifiability

– Evolvability, Extensibility, Customizability, Configurability, Reusability

• Visibility• Portability• Reliability

Page 8: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

8

Architectural Styles for Network-based ApplicationsPipe and Filter Family

• Pipe and Filter (PF)• Uniform Pipe and Filter (UPF)

InputCircular

Shift Alphabetizer OutputInput

MediumOutputMedium

Page 9: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

9

Architectural Styles for Network-based ApplicationsClient Server Family

• Client Server (CS), Layered System (LS)• Layered-Client-Server (LCS), Client-Stateless Server (CSS)• Client-Cache-Stateless-Server (C$SS)• Layered Client-Cache-Stateless-Server (LC$SS)• Remote Sessions (RS), Remote Data Access (RDS)

L1

L2

L3

L1L2

L3

Page 10: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

10

Architectural Styles for Network-based ApplicationsMobile Code Family

• Virtual Machine (VM)• Remote Evaluation (REV)• Code on Demand (COD)• Layered-Code-on-Demand-Client-Cache-Stateless-Server

(LCODC$SS)• Mobile Agent (MA)

Page 11: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

11

Architectural Styles for Network-based ApplicationsReplication Family

• Replicated Repository (RR)• Cache ($)

Page 12: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

12

Architectural Styles for Network-based ApplicationsEvent-based Integration and Hybrid Family

• Event Based Integration (EBI)• C2• Distributed Objects (DO)• Brokered Distributed Objects (BDO)

Consumer ProducerRequest

Reply

Consumer Producer

Subscribe

Receive

UnsubscribePublish

AnnouncePushInfra-

structure

Page 13: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

13

Architectural Styles for Network-based ApplicationsService Oriented Family*

• Simple Object Access Protocol (SOAP) Web Services– Derivation of client-server

• Representational State Transfer (REST) Web Services– Derivation of client-server

• Social Computing Network (SCN) Services– Hybrid (event based, client server, peer-2-peer)

*Not listed in original paper.

Page 14: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

14

Contributions

• Comprehensive survey of definitions of network based software architecture, styles and properties.

• Restricting the scope reduces the variability of styles to a set that can be reasonably compared to system’s requirements.

Page 15: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

15

Related Work

• Classification of Architectural Styles/Patterns• Reference Models and Domain-specific Architectures• Architectural Description Languages (ADL)• Self Architecture (SASSY) • Social Computing Networks (SCN)• Architectural Middleware (Prism-MW)

Page 16: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

16

Issues

• Paper points out that it has generic use of “network” based.

• Paper suggests to create separate classification for each type of communication problem– Large grain data retrieval– Remote info monitoring– Search– Remote control systems– Distributed processing

Page 17: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

17

Issues/Discussion

• How relevant today?• Evaluations seem subjective. Empirical data not

provided.• Was there sufficient distinction between just architecture

and “network-based” architecture?• The topic may be more relevant today because of

pervasive systems. Network-based software is everywhere.

• Client Server permutations shows how quickly purity of styles is lost. Exhaustive combinations feasible?

Page 18: Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding

18

Issues/Discussion

• Need to go further on the taxonomy of Network-based architectures– Self Architecting Network-based– Self Adapting Network-based– Mobile/Pervasive– Social Computing Network (smart {anything} network)

• When self architecting, does/can the style change?• Where does cloud computing fit in?• Has there been a paradigm shift since paper written?

Computers are increasingly dumb terminals again.