Riyadh

advertisement
Software Architecture Styles for
Network-based Applications
Presented By
Riyadh Mahmood
3/2/2010
Original Paper by: Roy T. Fielding.
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
2
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.
3
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).
4
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.
5
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.
6
Classification Methodology
• Performance
– Network Performance, User-perceived Performance, Network
Efficiency
• Scalability
• Simplicity
• Modifiability
– Evolvability, Extensibility, Customizability, Configurability,
Reusability
• Visibility
• Portability
• Reliability
7
Architectural Styles for Network-based Applications
Pipe and Filter Family
• Pipe and Filter (PF)
• Uniform Pipe and Filter (UPF)
Input
Medium
Input
Circular
Shift
Alphabetizer
Output
Output
Medium
8
Architectural Styles for Network-based Applications
Client 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
9
Architectural Styles for Network-based Applications
Mobile 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)
10
Architectural Styles for Network-based Applications
Replication Family
• Replicated Repository (RR)
• Cache ($)
11
Architectural Styles for Network-based Applications
Event-based Integration and Hybrid Family
Consumer
•
•
•
•
Event Based Integration (EBI)
C2
Consumer
Distributed Objects (DO)
Brokered Distributed Objects (BDO)
Request
Producer
Reply
Subscribe
Receive
Unsubscribe
Push
Infrastructure
Announce
Producer
Publish
12
Architectural Styles for Network-based Applications
Service 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.
13
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.
14
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)
15
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
16
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?
17
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.
18
Download