Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures Software Architecture.

Slides:



Advertisements
Similar presentations
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures Software Architecture Lecture 17.
Advertisements

INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 12 Prof. Crista Lopes.
Applied Architecture & Styles Not all problems can be solved by following a simple, uniform design solution. Most will require some invention or innovation.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture Lecture 19.
Software Architecture Lecture 2
Software Connectors Software Architecture. Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing.
Applied Architecture (or… Architecture In Action) David Woollard University of Southern California Software Architecture Group NASA Jet Propulsion Laboratory.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Software Architecture Lecture 5
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture Lecture 19.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Software Architecture Lecture 5.
Applied Architectures Eunyoung Hwang. Objectives How principles have been used to solve challenging problems How architecture can be used to explain and.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture.
An Introduction to Software Architecture
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures And Styles Software Architecture: Foundations,
Architecting Web Services Unit – II – PART - III.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part I Software Architecture Lecture 5.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures Software Architecture Lecture 13.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part II Software Architecture Lecture 6.
DISTRIBUTED COMPUTING Introduction Dr. Yingwu Zhu.
Acknowledgement: some slides from Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. Software Architecture EECE417 Lecture 2.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures Software Architecture Lecture 9.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures, Part 2 Software Architecture Lecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
REST By: Vishwanath Vineet.
GRID ANATOMY Advanced Computing Concepts – Dr. Emmanuel Pilli.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
09/13/04 CDA 6506 Network Architecture and Client/Server Computing Peer-to-Peer Computing and Content Distribution Networks by Zornitza Genova Prodanoff.
Applied Architecture & Styles. Not all problems can be solved by following a simple, uniform design solution. Most will require some invention or innovation.
Representational State Transfer COMP6017 Topics on Web Services Dr Nicholas Gibbins –
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. The Big Idea Software Architecture Lecture 1.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture Lecture 14.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Software Architecture Lecture 3
Applied Architectures
Software Architecture
Software Connectors.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Representational State Transfer
Software Architecture Lecture 3
Software Architecture Lecture 2
Software Architecture Lecture 3
Applied Architectures, Part 2
Software Architecture Lecture 5
Applied Architectures
Software Architecture Lecture 20
Applied Architectures
Software Architecture Lecture 3
Software Connectors.
Applied Architectures
Software Architecture Lecture 3
Applied Architectures, Part 2
Applied Architectures
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 3
Software Architecture Lecture 7
Software Architecture Lecture 6
Presentation transcript:

Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures Software Architecture

Foundations, Theory, and Practice Software Architecture 2 Objectives Illustrate how principles have been used to solve challenging problems u Usually means combining elements Highlight some critical issues u I.e., ignore them at your peril Show how architecture can be used to explain and analyze common commercial systems

Foundations, Theory, and Practice Software Architecture 3 Outline Distributed and networked architectures u Limitations u REST u Commercial Internet-scale applications Decentralized applications u Peer-to-peer u Web services Some interesting domains u Robotics u Wireless sensors u Flight simulators

Foundations, Theory, and Practice Software 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 Practice Software 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 Practice Software 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 Practice Software 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 Practice Software 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. u E.g., different Web browsers Stylistic constraints of the Web’s architectural style are not apparent in the code u 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 Practice Software 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 Practice Software 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 Practice Software 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 Practice Software Architecture 12 An Instance of REST

Foundations, Theory, and Practice Software Architecture 13 REST — Data Elements Resource u Key information abstraction Resource ID Representation u Data plus metadata Representation metadata Resource metadata Control data u e.g., specifies action as result of message

Foundations, Theory, and Practice Software Architecture 14 REST — Connectors Modern Web Examples clientlibwww, libwww-perl serverlibwww, Apache API, NSAPI cachebrowser cache, Akamai cache network resolverbind (DNS lookup library) tunnelSOCKS, SSL after HTTP CONNECT

Foundations, Theory, and Practice Software Architecture 15 REST — Components User agent u e.g., browser Origin server u e.g., Apache Server, Microsoft IIS Proxy u Selected by client Gateway u Squid, CGI, Reverse proxy u Controlled by server

Foundations, Theory, and Practice Software Architecture 16 An Instance of REST Revisited

Foundations, Theory, and Practice Software 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 Practice Software 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 Practice Software Architecture 19 REST: Final Thoughts REpresentational State Transfer Style of modern web architecture u Web architecture one of many in style Web diverges from style on occasion u e.g., Cookies, frames u Doesn’t explain mashups

Foundations, Theory, and Practice Software Architecture 20 Commercial Internet-Scale Applications Akamai u Caching to the max Google u Google distributed file system (GFS) u MapReduce Data selection and reduction All parallelization done automatically

Foundations, Theory, and Practice Software 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 Practice Software 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 Practice Software Architecture 23 Decentralized Architectures Networked applications where there are multiple authorities In other words u Computation is distributed u Parts of the network may behave differently, and vary over time It’s just like collaboration in the real world

Foundations, Theory, and Practice Software 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 u E.g., Folding-at-home GLOBUS u A commonly used infrastructure “Standard architecture” u Fabric manages low-level resources u Connectivity: communication and authentication u Resource: sharing of a single r. u Collective: coordinating r. usage

Foundations, Theory, and Practice Software 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 Practice Software Architecture 26 Peer-to-Peer Architectures Decentralized resource sharing and discovery u Napster u Gnutella P2P that works: Skype u And BitTorrent

Foundations, Theory, and Practice Software 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 Practice Software 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 Practice Software 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 Practice Software 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 Practice Software 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 Practice Software 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 Practice Software 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 Practice Software 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 Practice Software Architecture 35 Mobile Robotics Manned or partially manned vehicles Uses u Space exploration u Hazardous waste disposal u Underwater exploration Issues u Interface with external sensors & actuators u Real-time response to stimuli u Response to obstacles u Sensor input fidelity u Power failures u Mechanical limitations u Unpredictable events

Foundations, Theory, and Practice Software 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 Practice Software 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 Practice Software 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 Practice Software 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 Practice Software Architecture 40 Flight Simulators: Key Characteristics Real-time performance constraints u 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) u 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 Practice Software Architecture 41 Flight Simulators: Key Characteristics (cont’d) Continuous evolution Very large & complex u Millions of SLOC u Exponential growth over lifetime of simulator Distributed development u Portions of work sub­contracted to specialists u Long communication paths increase integration complexity Expensive verification & validation u Direct by-product of above characteristics Mapping of Simulation SW to HW components unclear u Efficiency muddies abstraction u Needed because of historical HW limitations

Foundations, Theory, and Practice Software Architecture 42 Functional Model

Foundations, Theory, and Practice Software Architecture 43 How Is the Complexity Managed? New style u “Structural Modeling” u Based on Object–oriented design to model air vehicle’s  Sub-systems  Components Real-time scheduling to control execution order Goals of Style u Maintainability u Integrability u Scalability

Foundations, Theory, and Practice Software Architecture 44 How Is the Complexity Managed? (cont’d) Style principles u Pre-defined partitioning of functionality among SW elements u Restricted data- & control-flow Data-flow through export areas only  Decoupling objects u Small number of element types Results in replicated subsystems

Foundations, Theory, and Practice Software Architecture 45 How Is the Complexity Managed? (cont’d) Style principles (continued) u Objects fully encapsulate their own internal state u No side-effects of computations u Narrow set of system-wide coordination strategies Employs pre-defined mechanisms for data & control passing Enable component communication & synchronization

Foundations, Theory, and Practice Software Architecture 46 F-Sim In The Structural Modeling Style Five basic computational elements in two classes u Executive (or infrastructure) Periodic sequencer Event handler Synchronizer u Application Components Subsystems Each of the five has u Small API u Encapsulated state u Severely limited external data upon which it relies

Foundations, Theory, and Practice Software Architecture 47 Level–0 Architecture

Foundations, Theory, and Practice Software Architecture 48 Level–1 Architecture

Foundations, Theory, and Practice Software Architecture 49 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.