Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications...
-
Upload
elijah-lawson -
Category
Documents
-
view
212 -
download
0
Transcript of Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications...
Presented ByRiyadh 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
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.
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).
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.
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.
7
Classification Methodology
• Performance– Network Performance, User-perceived Performance, Network
Efficiency• Scalability• Simplicity• Modifiability
– Evolvability, Extensibility, Customizability, Configurability, Reusability
• Visibility• Portability• Reliability
8
Architectural Styles for Network-based ApplicationsPipe and Filter Family
• Pipe and Filter (PF)• Uniform Pipe and Filter (UPF)
InputCircular
Shift Alphabetizer OutputInput
MediumOutputMedium
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
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)
11
Architectural Styles for Network-based ApplicationsReplication Family
• Replicated Repository (RR)• Cache ($)
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
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.
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.
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)
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
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?
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.