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

Slides:



Advertisements
Similar presentations
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
Advertisements

System Wide Information Management (SWIM)
Communicating over the Network
Overview Environment for Internet database connectivity
© 2011 TIBCO Software Inc. All Rights Reserved. Confidential and Proprietary. Towards a Model-Based Characterization of Data and Services Integration Paul.
Software Architecture Lecture 5
Software Architecture Lecture 3
© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialBCMSN BCMSN Module 1 Lesson 1 Network Requirements.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures.
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.
Based on last years lecture notes, used by Juha Takkinen.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
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. Applied Architectures And Styles Software Architecture: Foundations,
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.
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.
1 Web Servers (Chapter 21 – Pages( ) Outline 21.1 Introduction 21.2 HTTP Request Types 21.3 System Architecture.
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. The Big Idea Software Architecture Lecture 1.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures, Part 2 Software Architecture Lecture.
REST By: Vishwanath Vineet.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Brief Introduction to Software Connectors Software Architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures Software Architecture.
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
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.
Software Architecture Lecture 3
Applied Architectures
Software Architecture
Software Connectors.
Representational State Transfer
Software Architecture Lecture 19
Software Architecture Lecture 3
Software Architecture Lecture 2
Software Architecture Lecture 3
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
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 Lecture 17

Software Architecture: Foundations, Theory, and Practice 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 2

Software Architecture: Foundations, Theory, and Practice 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 3

Software Architecture: Foundations, Theory, and Practice Limitations of the Distributed Systems Viewpoint The network is reliable Latency is zero Bandwidth is infinite The network is secure Topology doesnt change There is one administrator Transport cost is zero The network is homogeneous -- Deutsch & Gosling 4

Software Architecture: Foundations, Theory, and Practice Architecture in Action: WWW (From lecture #1) This is the Web 5 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Architecture in Action: WWW (contd) So is this 6 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Architecture in Action: WWW And this 7 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice WWWs 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 Webs architectural style are not apparent in the code u The effects of the constraints are evident in the Web One of the worlds most successful applications is only understood adequately from an architectural vantage point. 8

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

Software Architecture: Foundations, Theory, and Practice REST Principles (contd) [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. 10

Software Architecture: Foundations, Theory, and Practice REST Principles (contd) [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. 11

Software Architecture: Foundations, Theory, and Practice An Instance of REST 12

Software Architecture: Foundations, Theory, and Practice 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 13

Software Architecture: Foundations, Theory, and Practice 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 14

Software Architecture: Foundations, Theory, and Practice 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 15

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

Software Architecture: Foundations, Theory, and Practice 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(!) 17

Software Architecture: Foundations, Theory, and Practice Derivation of REST (contd) 18 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice 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 Doesnt explain mashups 19

Software Architecture: Foundations, Theory, and Practice 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 20

Software Architecture: Foundations, Theory, and Practice 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: Googles business demands that everything be built with scaling issues in mind; 21

Software Architecture: Foundations, Theory, and Practice Architectural Lessons from Google (contd) 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. 22