SlideShare una empresa de Scribd logo
1 de 50
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
Applied
Architectures
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
2
Objectives
 Illustrate how principles have been used to solve
challenging problems
Usually means combining elements
 Highlight some critical issues
I.e., ignore them at your peril
 Show how architecture can be used to explain and
analyze common commercial systems
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
3
Outline
 Distributed and networked architectures
Limitations
REST
Commercial Internet-scale applications
 Decentralized applications
Peer-to-peer
Web services
 Some interesting domains
Robotics
Wireless sensors
Flight simulators
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
4
Limitations of the Distributed Systems
Viewpoint
 The network is reliable
 Latency is zero
 Bandwidth is infinite
 The network is secure
 Topology doesn’t change
 There is one administrator
 Transport cost is zero
 The network is homogeneous
-- Deutsch & Gosling
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
5
Architecture in Action: WWW
 (From lecture #1) This is the Web
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
6
Architecture in Action: WWW
(cont’d)
 So is this
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
7
Architecture in Action: WWW
 And this
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
8
WWW’s Architecture
 The application is distributed (actually,
decentralized) hypermedia
 Architecture of the Web is wholly separate from the code
 There is no single piece of code that implements the
architecture.
 There are multiple pieces of code that implement the various
components of the architecture.
E.g., different Web browsers
 Stylistic constraints of the Web’s architectural style are not
apparent in the code
The effects of the constraints are evident in the Web
 One of the world’s most successful applications is only
understood adequately from an architectural vantage point.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
9
REST Principles
 [RP1] The key abstraction of information is a resource,
named by an URL. Any information that can be named
can be a resource.
 [RP2] The representation of a resource is a sequence of
bytes, plus representation metadata to describe those
bytes. The particular form of the representation can be
negotiated between REST components.
 [RP3] All interactions are context-free: each interaction
contains all of the information necessary to understand
the request, independent of any requests that may have
preceded it.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
10
REST Principles (cont’d)
 [RP4] Components perform only a small set of well-
defined methods on a resource producing a
representation to capture the current or intended state of
that resource and transfer that representation between
components. These methods are global to the specific
architectural instantiation of REST; for instance, all
resources exposed via HTTP are expected to support
each operation identically.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
11
REST Principles (cont’d)
 [RP5] Idempotent operations and representation
metadata are encouraged in support of caching and
representation reuse.
 [RP6] The presence of intermediaries is promoted.
Filtering or redirection intermediaries may also use both
the metadata and the representations within requests or
responses to augment, restrict, or modify requests and
responses in a manner that is transparent to both the
user agent and the origin server.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
12
An Instance of REST
$ $Client+Cache:Client Connector: Server Connector: Server+Cache:
$ $
Origin Servers
User Agent
$$
DNS
$DNS
Proxy
Proxy Gateway
wais
http
orb
http
http
http http
a
b
c
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
13
REST — Data Elements
 Resource
Key information abstraction
 Resource ID
 Representation
Data plus metadata
 Representation metadata
 Resource metadata
 Control data
e.g., specifies action as result of message
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
14
REST — Connectors
 Modern Web Examples
 client libwww, libwww-perl
 server libwww, Apache API, NSAPI
 cache browser cache, Akamai cache network
 resolver bind (DNS lookup library)
 tunnel SOCKS, SSL after HTTP CONNECT
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
15
REST — Components
 User agent
e.g., browser
 Origin server
e.g., Apache Server, Microsoft IIS
 Proxy
Selected by client
 Gateway
Squid, CGI, Reverse proxy
Controlled by server
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
16
An Instance of REST Revisited
$ $Client+Cache:Client Connector: Server Connector: Server+Cache:
$ $
Origin Servers
User Agent
$$
DNS
$DNS
Proxy
Proxy Gateway
wais
http
orb
http
http
http http
a
b
c
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
17
Derivation of REST
Key choices in this derivation include:
 Layered Separation (a theme in the middle portion of
diagram) is used to increase efficiencies, enable
independent evolution of elements of the system, and
provide robustness;
 Replication (left side of the diagram) is used to address
latency and contention by allowing the reuse of
information;
 Limited commonality (right side) addresses the
competing needs for universally understood operations
with extensibility.
The derivation is driven by the application(!)
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
18
Derivation of REST (cont’d)
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
REST: Final Thoughts
 REpresentational State Transfer
 Style of modern web architecture
Web architecture one of many in style
 Web diverges from style on occasion
e.g., Cookies, frames
Doesn’t explain mashups
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
20
Commercial Internet-Scale
Applications
 Akamai
Caching to the max
 Google
Google distributed file system (GFS)
MapReduce
Data selection and reduction
All parallelization done automatically
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
21
Architectural Lessons from Google
 Abstraction layers abound: GFS hides details of
data distribution and failure, for instance; MapReduce
hides the intricacies of parallelizing operations;
 By designing, from the outset, for living with failure of
processing, storage, and network elements, a highly
robust system can be created;
 Scale is everything: Google’s business demands
that everything be built with scaling issues in mind;
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
22
Architectural Lessons from Google
(cont’d)
 By specializing the design to the problem
domain, rather than taking the generic “industry
standard” approach, high performance and very cost-
effective solutions can be developed;
 By developing a general approach (MapReduce) to
the data extraction/reduction problem, a highly reusable
service was created.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
23
Decentralized Architectures
 Networked applications where there are multiple
authorities
 In other words
Computation is distributed
Parts of the network may behave differently, and vary
over time
It’s just like collaboration in the real
world
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
24
Grid Protocol Architecture
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
 Coordinated resource sharing in a
distributed environment
E.g., Folding-at-home
 GLOBUS
A commonly used infrastructure
 “Standard architecture”
Fabric manages low-level
resources
Connectivity: communication and
authentication
Resource: sharing of a single r.
Collective: coordinating r. usage
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
25
Grid GLOBUS (Recovered)
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
26
Peer-to-Peer Architectures
 Decentralized resource sharing and discovery
Napster
Gnutella
 P2P that works: Skype
And BitTorrent
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
27
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
 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
28
Peer-to-Peer 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
29
Napster (“I am the Napster!”)
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
--Lyle, “The Italian Job” (2003)
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
30
Gnutella (original)
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
31
Skype
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
32
Insights from Skype
 A mixed client-server and peer-to-peer architecture addresses
the discovery problem.
 Replication and distribution of the directories, in the form of
supernodes, addresses the scalability problem and
robustness problem encountered in Napster.
 Promotion of ordinary peers to supernodes based upon
network and processing capabilities addresses another
aspect of system performance: “not just any peer” is relied
upon for important services.
 A proprietary protocol employing encryption provides privacy
for calls that are relayed through supernode intermediaries.
 Restriction of participants to clients issued by Skype, and
making those clients highly resistant to inspection or
modification, prevents malicious clients from entering the
network.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
33
Web Services
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
34
Web Services (cont’d)
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
35
Mobile Robotics
 Manned or partially manned vehicles
 Uses
Space exploration
Hazardous waste disposal
Underwater exploration
 Issues
Interface with external sensors & actuators
Real-time response to stimuli
Response to obstacles
Sensor input fidelity
Power failures
Mechanical limitations
Unpredictable events
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
36
Robotics: Sense-Plan-Act
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
Robotics Subsumption
Architecture
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
Robotics: Three-Layer
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
Wireless Sensor Networks
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
Flight Simulators
40
 Extremely complex systems
 http://www.gillesvidal.com/blogpano/cockpit1.htm
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
41
Flight Simulators: Key
Characteristics
 Real-time performance constraints
Extremely high fidelity demands
Requires distributed computing
Must execute at high fixed frame rates
 Often called harmonic frequencies
 e.g. often 60Hz, 30Hz; some higher (100Hz)
Coordination across simulator components
All portions of simulator run at integral multiple of base
rate
 e.g. if base rate = 60Hz, then 30Hz, 15Hz, 12Hz, etc.
Every task must complete on time
 Delays can cause simulator sickness
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
42
Flight Simulators: Key
Characteristics (cont’d)
 Continuous evolution
 Very large & complex
Millions of SLOC
Exponential growth over lifetime of simulator
 Distributed development
Portions of work sub­contracted to specialists
Long communication paths increase integration complexity
 Expensive verification & validation
Direct by-product of above characteristics
 Mapping of Simulation SW to HW components unclear
Efficiency muddies abstraction
Needed because of historical HW limitations
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
43
Simulation
Models
Air
Vehicle
Cockpit
Displays Cockpit
Controls
Environment
Crew
Instructor/
Operator
Station
Visual
Cueing
System
Motion
Cueing
System
Audio
Cueing
System
Functional Model
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
44
How Is the Complexity Managed?
 New style
“Structural Modeling”
Based on
Object–oriented design to model air vehicle’s
 Sub-systems
 Components
Real-time scheduling to control execution order
 Goals of Style
Maintainability
Integrability
Scalability
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
45
How Is the Complexity Managed?
(cont’d)
 Style principles
Pre-defined partitioning of functionality among SW
elements
Restricted data- & control-flow
Data-flow through export areas only
 Decoupling objects
Small number of element types
Results in replicated subsystems
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
46
How Is the Complexity Managed?
(cont’d)
 Style principles (continued)
Objects fully encapsulate their own internal state
No side-effects of computations
Narrow set of system-wide coordination strategies
Employs pre-defined mechanisms for data &
control passing
Enable component communication &
synchronization
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
47
F-Sim In The Structural Modeling
Style
 Five basic computational elements in two classes
Executive (or infrastructure)
Periodic sequencer
Event handler
Synchronizer
Application
Components
Subsystems
 Each of the five has
Small API
Encapsulated state
Severely limited external data upon which it relies
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
48
Level–0 Architecture
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
49
Level–1 Architecture
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
50
Takeaways
 A great architecture is the ticket to runaway success
 A great architecture reflects deep understanding of the
problem domain
 A great architecture probably combines aspects of
several simpler architectures
 Develop a new architectural style with great care and
caution. Most likely you don’t need a new style.

Más contenido relacionado

La actualidad más candente

The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo Corsaro
 
A survey of peer-to-peer content distribution technologies
A survey of peer-to-peer content distribution technologiesA survey of peer-to-peer content distribution technologies
A survey of peer-to-peer content distribution technologiessharefish
 
High Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and ScalaHigh Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and ScalaAngelo Corsaro
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaAngelo Corsaro
 
NEW SECURE CONCURRECY MANEGMENT APPROACH FOR DISTRIBUTED AND CONCURRENT ACCES...
NEW SECURE CONCURRECY MANEGMENT APPROACH FOR DISTRIBUTED AND CONCURRENT ACCES...NEW SECURE CONCURRECY MANEGMENT APPROACH FOR DISTRIBUTED AND CONCURRENT ACCES...
NEW SECURE CONCURRECY MANEGMENT APPROACH FOR DISTRIBUTED AND CONCURRENT ACCES...ijiert bestjournal
 
Eclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
Eclipse IoT Summit 2016: In The Age of IoT Think Data-CentricEclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
Eclipse IoT Summit 2016: In The Age of IoT Think Data-CentricToby McClean
 
Grid protocol architecture
Grid protocol architectureGrid protocol architecture
Grid protocol architecturePooja Dixit
 
07 software connectors (2)
07 software connectors (2)07 software connectors (2)
07 software connectors (2)Jaya Chavan
 
IRJET- Cost Effective Workflow Scheduling in Bigdata
IRJET-  	  Cost Effective Workflow Scheduling in BigdataIRJET-  	  Cost Effective Workflow Scheduling in Bigdata
IRJET- Cost Effective Workflow Scheduling in BigdataIRJET Journal
 
Using BIG DATA implementations onto Software Defined Networking
Using BIG DATA implementations onto Software Defined NetworkingUsing BIG DATA implementations onto Software Defined Networking
Using BIG DATA implementations onto Software Defined NetworkingIJCSIS Research Publications
 
Quality of Service in Publish/Subscribe Middleware
Quality of Service in Publish/Subscribe MiddlewareQuality of Service in Publish/Subscribe Middleware
Quality of Service in Publish/Subscribe MiddlewareAngelo Corsaro
 
BIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUES
BIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUESBIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUES
BIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUESijwmn
 
BIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUES
BIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUESBIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUES
BIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUESijwmn
 
Reactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveXReactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveXAngelo Corsaro
 
AUTHENTICATION SCHEME FOR DATABASE AS A SERVICE(DBAAS)
AUTHENTICATION SCHEME FOR DATABASE AS A SERVICE(DBAAS) AUTHENTICATION SCHEME FOR DATABASE AS A SERVICE(DBAAS)
AUTHENTICATION SCHEME FOR DATABASE AS A SERVICE(DBAAS) ijccsa
 
A Literature Survey on Resource Management Techniques, Issues and Challenges ...
A Literature Survey on Resource Management Techniques, Issues and Challenges ...A Literature Survey on Resource Management Techniques, Issues and Challenges ...
A Literature Survey on Resource Management Techniques, Issues and Challenges ...TELKOMNIKA JOURNAL
 
Cloud Computing Course
Cloud Computing Course Cloud Computing Course
Cloud Computing Course Arshdeep Bahga
 
Bt9002 grid computing 1
Bt9002 grid computing 1Bt9002 grid computing 1
Bt9002 grid computing 1Techglyphs
 

La actualidad más candente (19)

The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
A survey of peer-to-peer content distribution technologies
A survey of peer-to-peer content distribution technologiesA survey of peer-to-peer content distribution technologies
A survey of peer-to-peer content distribution technologies
 
Cs6703 grid and cloud computing unit 4
Cs6703 grid and cloud computing unit 4Cs6703 grid and cloud computing unit 4
Cs6703 grid and cloud computing unit 4
 
High Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and ScalaHigh Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and Scala
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and Scala
 
NEW SECURE CONCURRECY MANEGMENT APPROACH FOR DISTRIBUTED AND CONCURRENT ACCES...
NEW SECURE CONCURRECY MANEGMENT APPROACH FOR DISTRIBUTED AND CONCURRENT ACCES...NEW SECURE CONCURRECY MANEGMENT APPROACH FOR DISTRIBUTED AND CONCURRENT ACCES...
NEW SECURE CONCURRECY MANEGMENT APPROACH FOR DISTRIBUTED AND CONCURRENT ACCES...
 
Eclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
Eclipse IoT Summit 2016: In The Age of IoT Think Data-CentricEclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
Eclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
 
Grid protocol architecture
Grid protocol architectureGrid protocol architecture
Grid protocol architecture
 
07 software connectors (2)
07 software connectors (2)07 software connectors (2)
07 software connectors (2)
 
IRJET- Cost Effective Workflow Scheduling in Bigdata
IRJET-  	  Cost Effective Workflow Scheduling in BigdataIRJET-  	  Cost Effective Workflow Scheduling in Bigdata
IRJET- Cost Effective Workflow Scheduling in Bigdata
 
Using BIG DATA implementations onto Software Defined Networking
Using BIG DATA implementations onto Software Defined NetworkingUsing BIG DATA implementations onto Software Defined Networking
Using BIG DATA implementations onto Software Defined Networking
 
Quality of Service in Publish/Subscribe Middleware
Quality of Service in Publish/Subscribe MiddlewareQuality of Service in Publish/Subscribe Middleware
Quality of Service in Publish/Subscribe Middleware
 
BIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUES
BIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUESBIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUES
BIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUES
 
BIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUES
BIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUESBIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUES
BIG DATA NETWORKING: REQUIREMENTS, ARCHITECTURE AND ISSUES
 
Reactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveXReactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveX
 
AUTHENTICATION SCHEME FOR DATABASE AS A SERVICE(DBAAS)
AUTHENTICATION SCHEME FOR DATABASE AS A SERVICE(DBAAS) AUTHENTICATION SCHEME FOR DATABASE AS A SERVICE(DBAAS)
AUTHENTICATION SCHEME FOR DATABASE AS A SERVICE(DBAAS)
 
A Literature Survey on Resource Management Techniques, Issues and Challenges ...
A Literature Survey on Resource Management Techniques, Issues and Challenges ...A Literature Survey on Resource Management Techniques, Issues and Challenges ...
A Literature Survey on Resource Management Techniques, Issues and Challenges ...
 
Cloud Computing Course
Cloud Computing Course Cloud Computing Course
Cloud Computing Course
 
Bt9002 grid computing 1
Bt9002 grid computing 1Bt9002 grid computing 1
Bt9002 grid computing 1
 

Similar a Cs 1023 lec 13 web (week 4)

18 applied architectures_part_2
18 applied architectures_part_218 applied architectures_part_2
18 applied architectures_part_2Majong DevJfu
 
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
 
Exploring MERN Stack and Tech Stacks: A Comparative Analysis
Exploring MERN Stack and Tech Stacks: A Comparative AnalysisExploring MERN Stack and Tech Stacks: A Comparative Analysis
Exploring MERN Stack and Tech Stacks: A Comparative AnalysisIRJET Journal
 
Data Services and the Modern Data Ecosystem (ASEAN)
Data Services and the Modern Data Ecosystem (ASEAN)Data Services and the Modern Data Ecosystem (ASEAN)
Data Services and the Modern Data Ecosystem (ASEAN)Denodo
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)stanbridge
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)stanbridge
 
Yii Framework in the RAD context + Mashup demo built on YII
Yii Framework in the RAD context + Mashup demo built on YIIYii Framework in the RAD context + Mashup demo built on YII
Yii Framework in the RAD context + Mashup demo built on YIIGeorge-Leonard Chetreanu
 
What Is Openstack And Its Importance
What Is Openstack And Its ImportanceWhat Is Openstack And Its Importance
What Is Openstack And Its ImportanceLorie Harris
 
Information management
Information managementInformation management
Information managementDavid Champeau
 
Overview of cloud computing
Overview of cloud computingOverview of cloud computing
Overview of cloud computingTarek Nader
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Araf Karsh Hamid
 
Leveraging IoT as part of your digital transformation
Leveraging IoT as part of your digital transformationLeveraging IoT as part of your digital transformation
Leveraging IoT as part of your digital transformationJohn Archer
 
Res tful web services oracle
Res tful web services oracleRes tful web services oracle
Res tful web services oracleknoxxs
 
13 analysis of_software_architectures
13 analysis of_software_architectures13 analysis of_software_architectures
13 analysis of_software_architecturesMajong DevJfu
 
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersBasics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersDan Douglas
 
Isas _Q3 _Soft_Topic3_enterprise_application_architecture
Isas _Q3 _Soft_Topic3_enterprise_application_architectureIsas _Q3 _Soft_Topic3_enterprise_application_architecture
Isas _Q3 _Soft_Topic3_enterprise_application_architectureTuấn Anh Nguyễn
 
Cyber forensics in cloud computing
Cyber forensics in cloud computingCyber forensics in cloud computing
Cyber forensics in cloud computingAlexander Decker
 

Similar a Cs 1023 lec 13 web (week 4) (20)

18 applied architectures_part_2
18 applied architectures_part_218 applied architectures_part_2
18 applied architectures_part_2
 
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)
 
Exploring MERN Stack and Tech Stacks: A Comparative Analysis
Exploring MERN Stack and Tech Stacks: A Comparative AnalysisExploring MERN Stack and Tech Stacks: A Comparative Analysis
Exploring MERN Stack and Tech Stacks: A Comparative Analysis
 
Data Services and the Modern Data Ecosystem (ASEAN)
Data Services and the Modern Data Ecosystem (ASEAN)Data Services and the Modern Data Ecosystem (ASEAN)
Data Services and the Modern Data Ecosystem (ASEAN)
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
 
Yii Framework in the RAD context + Mashup demo built on YII
Yii Framework in the RAD context + Mashup demo built on YIIYii Framework in the RAD context + Mashup demo built on YII
Yii Framework in the RAD context + Mashup demo built on YII
 
Www2008 Restws Pautasso Zimmermann Leymann
Www2008 Restws Pautasso Zimmermann LeymannWww2008 Restws Pautasso Zimmermann Leymann
Www2008 Restws Pautasso Zimmermann Leymann
 
542 546
542 546542 546
542 546
 
What Is Openstack And Its Importance
What Is Openstack And Its ImportanceWhat Is Openstack And Its Importance
What Is Openstack And Its Importance
 
Cloud & Data Center Networking
Cloud & Data Center NetworkingCloud & Data Center Networking
Cloud & Data Center Networking
 
Information management
Information managementInformation management
Information management
 
Overview of cloud computing
Overview of cloud computingOverview of cloud computing
Overview of cloud computing
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018
 
Leveraging IoT as part of your digital transformation
Leveraging IoT as part of your digital transformationLeveraging IoT as part of your digital transformation
Leveraging IoT as part of your digital transformation
 
Res tful web services oracle
Res tful web services oracleRes tful web services oracle
Res tful web services oracle
 
13 analysis of_software_architectures
13 analysis of_software_architectures13 analysis of_software_architectures
13 analysis of_software_architectures
 
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersBasics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET Developers
 
Isas _Q3 _Soft_Topic3_enterprise_application_architecture
Isas _Q3 _Soft_Topic3_enterprise_application_architectureIsas _Q3 _Soft_Topic3_enterprise_application_architecture
Isas _Q3 _Soft_Topic3_enterprise_application_architecture
 
Cyber forensics in cloud computing
Cyber forensics in cloud computingCyber forensics in cloud computing
Cyber forensics in cloud computing
 

Más de stanbridge

Micro Lab 3 Lecture
Micro Lab 3 LectureMicro Lab 3 Lecture
Micro Lab 3 Lecturestanbridge
 
Creating a poster v2
Creating a poster v2Creating a poster v2
Creating a poster v2stanbridge
 
Creating a poster
Creating a posterCreating a poster
Creating a posterstanbridge
 
OT 5018 Thesis Dissemination
OT 5018 Thesis DisseminationOT 5018 Thesis Dissemination
OT 5018 Thesis Disseminationstanbridge
 
Ot5101 005 week 5
Ot5101 005 week 5Ot5101 005 week 5
Ot5101 005 week 5stanbridge
 
Ot5101 005 week4
Ot5101 005 week4Ot5101 005 week4
Ot5101 005 week4stanbridge
 
Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors stanbridge
 
Ch 5 developmental stages of the learner
Ch 5   developmental stages of the learnerCh 5   developmental stages of the learner
Ch 5 developmental stages of the learnerstanbridge
 
OT 5101 week2 theory policy
OT 5101 week2 theory policyOT 5101 week2 theory policy
OT 5101 week2 theory policystanbridge
 
OT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessmentOT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessmentstanbridge
 
NUR 304 Chapter005
NUR 304 Chapter005NUR 304 Chapter005
NUR 304 Chapter005stanbridge
 
NUR 3043 Chapter007
NUR 3043 Chapter007NUR 3043 Chapter007
NUR 3043 Chapter007stanbridge
 
NUR 3043 Chapter006
NUR 3043 Chapter006NUR 3043 Chapter006
NUR 3043 Chapter006stanbridge
 
NUR 3043 Chapter004
NUR 3043 Chapter004NUR 3043 Chapter004
NUR 3043 Chapter004stanbridge
 
3043 Chapter009
3043 Chapter0093043 Chapter009
3043 Chapter009stanbridge
 
3043 Chapter008
 3043 Chapter008 3043 Chapter008
3043 Chapter008stanbridge
 
Melnyk ppt chapter_21
Melnyk ppt chapter_21Melnyk ppt chapter_21
Melnyk ppt chapter_21stanbridge
 
Melnyk ppt chapter_22
Melnyk ppt chapter_22Melnyk ppt chapter_22
Melnyk ppt chapter_22stanbridge
 

Más de stanbridge (20)

Micro Lab 3 Lecture
Micro Lab 3 LectureMicro Lab 3 Lecture
Micro Lab 3 Lecture
 
Creating a poster v2
Creating a poster v2Creating a poster v2
Creating a poster v2
 
Creating a poster
Creating a posterCreating a poster
Creating a poster
 
Sample poster
Sample posterSample poster
Sample poster
 
OT 5018 Thesis Dissemination
OT 5018 Thesis DisseminationOT 5018 Thesis Dissemination
OT 5018 Thesis Dissemination
 
Ot5101 005 week 5
Ot5101 005 week 5Ot5101 005 week 5
Ot5101 005 week 5
 
Ot5101 005 week4
Ot5101 005 week4Ot5101 005 week4
Ot5101 005 week4
 
Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors
 
Ch 5 developmental stages of the learner
Ch 5   developmental stages of the learnerCh 5   developmental stages of the learner
Ch 5 developmental stages of the learner
 
OT 5101 week2 theory policy
OT 5101 week2 theory policyOT 5101 week2 theory policy
OT 5101 week2 theory policy
 
OT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessmentOT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessment
 
Ot5101 week1
Ot5101 week1Ot5101 week1
Ot5101 week1
 
NUR 304 Chapter005
NUR 304 Chapter005NUR 304 Chapter005
NUR 304 Chapter005
 
NUR 3043 Chapter007
NUR 3043 Chapter007NUR 3043 Chapter007
NUR 3043 Chapter007
 
NUR 3043 Chapter006
NUR 3043 Chapter006NUR 3043 Chapter006
NUR 3043 Chapter006
 
NUR 3043 Chapter004
NUR 3043 Chapter004NUR 3043 Chapter004
NUR 3043 Chapter004
 
3043 Chapter009
3043 Chapter0093043 Chapter009
3043 Chapter009
 
3043 Chapter008
 3043 Chapter008 3043 Chapter008
3043 Chapter008
 
Melnyk ppt chapter_21
Melnyk ppt chapter_21Melnyk ppt chapter_21
Melnyk ppt chapter_21
 
Melnyk ppt chapter_22
Melnyk ppt chapter_22Melnyk ppt chapter_22
Melnyk ppt chapter_22
 

Último

Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
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
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
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
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
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
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
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
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
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
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 

Último (20)

Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
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
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
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
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
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
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
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
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
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
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 

Cs 1023 lec 13 web (week 4)

  • 1. Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures
  • 2. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 2 Objectives  Illustrate how principles have been used to solve challenging problems Usually means combining elements  Highlight some critical issues I.e., ignore them at your peril  Show how architecture can be used to explain and analyze common commercial systems
  • 3. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 3 Outline  Distributed and networked architectures Limitations REST Commercial Internet-scale applications  Decentralized applications Peer-to-peer Web services  Some interesting domains Robotics Wireless sensors Flight simulators
  • 4. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 4 Limitations of the Distributed Systems Viewpoint  The network is reliable  Latency is zero  Bandwidth is infinite  The network is secure  Topology doesn’t change  There is one administrator  Transport cost is zero  The network is homogeneous -- Deutsch & Gosling
  • 5. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 5 Architecture in Action: WWW  (From lecture #1) This is the Web Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 6. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 6 Architecture in Action: WWW (cont’d)  So is this Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 7. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 7 Architecture in Action: WWW  And this Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 8. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 8 WWW’s Architecture  The application is distributed (actually, decentralized) hypermedia  Architecture of the Web is wholly separate from the code  There is no single piece of code that implements the architecture.  There are multiple pieces of code that implement the various components of the architecture. E.g., different Web browsers  Stylistic constraints of the Web’s architectural style are not apparent in the code The effects of the constraints are evident in the Web  One of the world’s most successful applications is only understood adequately from an architectural vantage point.
  • 9. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 9 REST Principles  [RP1] The key abstraction of information is a resource, named by an URL. Any information that can be named can be a resource.  [RP2] The representation of a resource is a sequence of bytes, plus representation metadata to describe those bytes. The particular form of the representation can be negotiated between REST components.  [RP3] All interactions are context-free: each interaction contains all of the information necessary to understand the request, independent of any requests that may have preceded it.
  • 10. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 10 REST Principles (cont’d)  [RP4] Components perform only a small set of well- defined methods on a resource producing a representation to capture the current or intended state of that resource and transfer that representation between components. These methods are global to the specific architectural instantiation of REST; for instance, all resources exposed via HTTP are expected to support each operation identically.
  • 11. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 11 REST Principles (cont’d)  [RP5] Idempotent operations and representation metadata are encouraged in support of caching and representation reuse.  [RP6] The presence of intermediaries is promoted. Filtering or redirection intermediaries may also use both the metadata and the representations within requests or responses to augment, restrict, or modify requests and responses in a manner that is transparent to both the user agent and the origin server.
  • 12. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 12 An Instance of REST $ $Client+Cache:Client Connector: Server Connector: Server+Cache: $ $ Origin Servers User Agent $$ DNS $DNS Proxy Proxy Gateway wais http orb http http http http a b c
  • 13. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 13 REST — Data Elements  Resource Key information abstraction  Resource ID  Representation Data plus metadata  Representation metadata  Resource metadata  Control data e.g., specifies action as result of message
  • 14. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 14 REST — Connectors  Modern Web Examples  client libwww, libwww-perl  server libwww, Apache API, NSAPI  cache browser cache, Akamai cache network  resolver bind (DNS lookup library)  tunnel SOCKS, SSL after HTTP CONNECT
  • 15. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 15 REST — Components  User agent e.g., browser  Origin server e.g., Apache Server, Microsoft IIS  Proxy Selected by client  Gateway Squid, CGI, Reverse proxy Controlled by server
  • 16. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 16 An Instance of REST Revisited $ $Client+Cache:Client Connector: Server Connector: Server+Cache: $ $ Origin Servers User Agent $$ DNS $DNS Proxy Proxy Gateway wais http orb http http http http a b c
  • 17. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 17 Derivation of REST Key choices in this derivation include:  Layered Separation (a theme in the middle portion of diagram) is used to increase efficiencies, enable independent evolution of elements of the system, and provide robustness;  Replication (left side of the diagram) is used to address latency and contention by allowing the reuse of information;  Limited commonality (right side) addresses the competing needs for universally understood operations with extensibility. The derivation is driven by the application(!)
  • 18. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 18 Derivation of REST (cont’d) 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 REST: Final Thoughts  REpresentational State Transfer  Style of modern web architecture Web architecture one of many in style  Web diverges from style on occasion e.g., Cookies, frames Doesn’t explain mashups
  • 20. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 20 Commercial Internet-Scale Applications  Akamai Caching to the max  Google Google distributed file system (GFS) MapReduce Data selection and reduction All parallelization done automatically
  • 21. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 21 Architectural Lessons from Google  Abstraction layers abound: GFS hides details of data distribution and failure, for instance; MapReduce hides the intricacies of parallelizing operations;  By designing, from the outset, for living with failure of processing, storage, and network elements, a highly robust system can be created;  Scale is everything: Google’s business demands that everything be built with scaling issues in mind;
  • 22. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 22 Architectural Lessons from Google (cont’d)  By specializing the design to the problem domain, rather than taking the generic “industry standard” approach, high performance and very cost- effective solutions can be developed;  By developing a general approach (MapReduce) to the data extraction/reduction problem, a highly reusable service was created.
  • 23. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 23 Decentralized Architectures  Networked applications where there are multiple authorities  In other words Computation is distributed Parts of the network may behave differently, and vary over time It’s just like collaboration in the real world
  • 24. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 24 Grid Protocol Architecture Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.  Coordinated resource sharing in a distributed environment E.g., Folding-at-home  GLOBUS A commonly used infrastructure  “Standard architecture” Fabric manages low-level resources Connectivity: communication and authentication Resource: sharing of a single r. Collective: coordinating r. usage
  • 25. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 25 Grid GLOBUS (Recovered) Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 26. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 26 Peer-to-Peer Architectures  Decentralized resource sharing and discovery Napster Gnutella  P2P that works: Skype And BitTorrent
  • 27. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 27 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  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!
  • 28. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 28 Peer-to-Peer LL Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 29. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 29 Napster (“I am the Napster!”) Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission. --Lyle, “The Italian Job” (2003)
  • 30. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 30 Gnutella (original) Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 31. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 31 Skype Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 32. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 32 Insights from Skype  A mixed client-server and peer-to-peer architecture addresses the discovery problem.  Replication and distribution of the directories, in the form of supernodes, addresses the scalability problem and robustness problem encountered in Napster.  Promotion of ordinary peers to supernodes based upon network and processing capabilities addresses another aspect of system performance: “not just any peer” is relied upon for important services.  A proprietary protocol employing encryption provides privacy for calls that are relayed through supernode intermediaries.  Restriction of participants to clients issued by Skype, and making those clients highly resistant to inspection or modification, prevents malicious clients from entering the network.
  • 33. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 33 Web Services Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 34. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 34 Web Services (cont’d) Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 35. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 35 Mobile Robotics  Manned or partially manned vehicles  Uses Space exploration Hazardous waste disposal Underwater exploration  Issues Interface with external sensors & actuators Real-time response to stimuli Response to obstacles Sensor input fidelity Power failures Mechanical limitations Unpredictable events
  • 36. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 36 Robotics: Sense-Plan-Act 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 Robotics Subsumption Architecture 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 Robotics: Three-Layer 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 Wireless Sensor Networks Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 40. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture Flight Simulators 40  Extremely complex systems  http://www.gillesvidal.com/blogpano/cockpit1.htm
  • 41. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 41 Flight Simulators: Key Characteristics  Real-time performance constraints Extremely high fidelity demands Requires distributed computing Must execute at high fixed frame rates  Often called harmonic frequencies  e.g. often 60Hz, 30Hz; some higher (100Hz) Coordination across simulator components All portions of simulator run at integral multiple of base rate  e.g. if base rate = 60Hz, then 30Hz, 15Hz, 12Hz, etc. Every task must complete on time  Delays can cause simulator sickness
  • 42. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 42 Flight Simulators: Key Characteristics (cont’d)  Continuous evolution  Very large & complex Millions of SLOC Exponential growth over lifetime of simulator  Distributed development Portions of work sub­contracted to specialists Long communication paths increase integration complexity  Expensive verification & validation Direct by-product of above characteristics  Mapping of Simulation SW to HW components unclear Efficiency muddies abstraction Needed because of historical HW limitations
  • 43. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 43 Simulation Models Air Vehicle Cockpit Displays Cockpit Controls Environment Crew Instructor/ Operator Station Visual Cueing System Motion Cueing System Audio Cueing System Functional Model
  • 44. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 44 How Is the Complexity Managed?  New style “Structural Modeling” Based on Object–oriented design to model air vehicle’s  Sub-systems  Components Real-time scheduling to control execution order  Goals of Style Maintainability Integrability Scalability
  • 45. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 45 How Is the Complexity Managed? (cont’d)  Style principles Pre-defined partitioning of functionality among SW elements Restricted data- & control-flow Data-flow through export areas only  Decoupling objects Small number of element types Results in replicated subsystems
  • 46. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 46 How Is the Complexity Managed? (cont’d)  Style principles (continued) Objects fully encapsulate their own internal state No side-effects of computations Narrow set of system-wide coordination strategies Employs pre-defined mechanisms for data & control passing Enable component communication & synchronization
  • 47. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 47 F-Sim In The Structural Modeling Style  Five basic computational elements in two classes Executive (or infrastructure) Periodic sequencer Event handler Synchronizer Application Components Subsystems  Each of the five has Small API Encapsulated state Severely limited external data upon which it relies
  • 48. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 48 Level–0 Architecture
  • 49. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 49 Level–1 Architecture
  • 50. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 50 Takeaways  A great architecture is the ticket to runaway success  A great architecture reflects deep understanding of the problem domain  A great architecture probably combines aspects of several simpler architectures  Develop a new architectural style with great care and caution. Most likely you don’t need a new style.

Notas del editor

  1. Process view of a REST-based architecture at one instance in time. A user agent is portrayed in the midst of three parallel interactions: a, b, and c. The interactions were not satisfied by the user agent’s client connector cache, so each request has been routed to the resource origin according to the properties of each resource identifier and the configuration of the client connector. Request (a) has been sent to a local proxy, which in turn accesses a caching gateway found by DNS lookup, which forwards the request on to be satisfied by an origin server whose internal resources are defined by an encapsulated object request broker architecture. Request (b) is sent directly to an origin server, which is able to satisfy the request from its own cache. Request (c) is sent to a proxy that is capable of directly accessing WAIS, an information service that is separate from the Web architecture, and translating the WAIS response into a format recognized by the generic connector interface. Each component is only aware of the interaction with their own client or server connectors; the overall process topology is an artifact of our view.
  2. Process view of a REST-based architecture at one instance in time. A user agent is portrayed in the midst of three parallel interactions: a, b, and c. The interactions were not satisfied by the user agent’s client connector cache, so each request has been routed to the resource origin according to the properties of each resource identifier and the configuration of the client connector. Request (a) has been sent to a local proxy, which in turn accesses a caching gateway found by DNS lookup, which forwards the request on to be satisfied by an origin server whose internal resources are defined by an encapsulated object request broker architecture. Request (b) is sent directly to an origin server, which is able to satisfy the request from its own cache. Request (c) is sent to a proxy that is capable of directly accessing WAIS, an information service that is separate from the Web architecture, and translating the WAIS response into a format recognized by the generic connector interface. Each component is only aware of the interaction with their own client or server connectors; the overall process topology is an artifact of our view.
  3. A flight simulator must provide a great number and great variety of services to its users. crew being trained: pilot, co-pilot, navigator, and weapons personnel (if this is a military simulator) "instructor-operator". In charge of the pedagogical aspects of flight simulation Decides what mission will be run, and under what conditions Controls the simulation in real time Runs simulation, insert malfunctions (in order to test the flight crew's response to emergency situations), or freezes simulation if some pedagogical point is to be made. Simulator must provide visual, audio and motion cues to the users-the aircrew. In addition, some simulators will have to provide a force-feed­back cues. These sensory cues are generated in order to provide the sights, sounds and feel of a normal air vehicle. The software must also simulate the air vehicle's normal set of instruments. These must all be simulated to a high degree of fidelity, with a high degree of coordination (in order to avoid simulator sickness). The aircrew will be responding to their environment in real-time. Some of these responses are continuous (the pilot's "stick", for example), and some will be events (changing the setting of a switch). These responses will need to be communicated back to the software simulation as they change the state of the simulation. In addi­tion, as the air vehicle is being navigated, the environment through which it is passing changes, which will, in turn, affect both the sensory inputs being fed to the aircrew, and the state of the simulation.
  4. Functionality is partitioned into objects analogous to aircraft components: pumps, actuators, valves, etc. few classes of objects, all objects within a class look the same have the same entry points (or methods). Parts of a simulation for which no real-world analogy (such as data gatherers) modeled in the same way as the real-world entities using the same software structures. Minimizing the number of base types Goal Provide higher-level commonalities among groupings of objects Encapsulate patterns of system behavior at a high level of abstraction. Eases the development of large systems. Every part of the system is composed of the same small set of base types the system is more regular, easier to communicate, learn, review, modify. Fixed control patterns Easier to understand & analyzed temporal depen­dencies to be more Data Flow through export areas Reduces dependencies & coupling Objects don’t need to know identity of other object to communicate Message traffic is channeled so can be easily Controlled Monitored Measured Limited coordination strategies Reduces programmer assumptions about time relations Makes easier to distribute & control
  5. Functionality is partitioned into objects analogous to aircraft components: pumps, actuators, valves, etc. few classes of objects, all objects within a class look the same have the same entry points (or methods). Parts of a simulation for which no real-world analogy (such as data gatherers) modeled in the same way as the real-world entities using the same software structures. Minimizing the number of base types Goal Provide higher-level commonalities among groupings of objects Encapsulate patterns of system behavior at a high level of abstraction. Eases the development of large systems. Every part of the system is composed of the same small set of base types the system is more regular, easier to communicate, learn, review, modify. Fixed control patterns Easier to understand & analyzed temporal depen­dencies to be more Data Flow through export areas Reduces dependencies & coupling Objects don’t need to know identity of other object to communicate Message traffic is channeled so can be easily Controlled Monitored Measured Limited coordination strategies Reduces programmer assumptions about time relations Makes easier to distribute & control
  6. two main sets of con­cerns: executive and application. executive handles coordination issues: real-time scheduling of sub-systems, synchronization between processors, event management from the instructor-opera­tor station, data sharing, and data integrity application handles computation modeling the air vehicle
  7. timeline synchronizer controls data accesses, periodic processing and event processing by scheduling the periodic sequencer and the event handler maintains syn­chronization with other processes periodic sequencer Handles the regular scheduling of sub-systems when it is invoked through its periodic processing operation event handler Handles aperiodic events principally from the instructor-operator station Sub-system Controllers coordinate the activities of the purely computational com­ponents group these components into meaningful collections which represent sub-systems within the air vehicle: hydraulics, air-frame, fuel, braking, engines sub-system invokes each component in turn, passing it the relevant state data Components models of things like reservoirs, valves, turbines, and actuators do the actual simulation computation