Understanding Networked Applications: A First Course Chapter 6 by David G. Messerschmitt.

Slides:



Advertisements
Similar presentations
Chapter 10: Designing Databases
Advertisements

ICS 434 Advanced Database Systems
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Chapter 13 Review Questions
8.
Technical Architectures
Chapter 17: Client/Server Computing Business Data Communications, 4e.
Software Architecture Design Instructor: Dr. Jerry Gao.
Understanding Networked Applications: A First Course Midterm one review by David G. Messerschmitt.
Lecture 23: Software Architectures
SWE Introduction to Software Engineering
Understanding Networked Applications: A First Course Midterm two review by David G. Messerschmitt.
©Silberschatz, Korth and Sudarshan1.1Database System Concepts Chapter 1: Introduction Purpose of Database Systems View of Data Data Models Data Definition.
Introduction to Databases Transparencies
Distributed Information Systems - The Client server model
12 Chapter 12 Client/Server Systems Hachim Haddouti.
12 Chapter 12 Client/Server Systems Database Systems: Design, Implementation, and Management, Fifth Edition, Rob and Coronel.
The Architecture of Transaction Processing Systems
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
System Architecture: Desing alternatives and methodologies.
Course Instructor: Aisha Azeem
Client-Server Processing and Distributed Databases
Lecture slides prepared for “Business Data Communications”, 7/e, by William Stallings and Tom Case, Chapter 8 “TCP/IP”.
Enterprise Resource Planning
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
N-Tier Architecture.
Protocols and the TCP/IP Suite Chapter 4. Multilayer communication. A series of layers, each built upon the one below it. The purpose of each layer is.
The Design Discipline.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
An Introduction to Software Architecture
CST203-2 Database Management Systems Lecture 2. One Tier Architecture Eg: In this scenario, a workgroup database is stored in a shared location on a single.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
Database System Concepts and Architecture
Fundamentals of Database Chapter 7 Database Technologies.
M1G Introduction to Database Development 6. Building Applications.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Network Services Networking for Home and Small Businesses – Chapter 6.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
SOFTWARE DESIGN.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Lecture # 3 & 4 Chapter # 2 Database System Concepts and Architecture Muhammad Emran Database Systems 1.
Chapter 17: Client/Server Computing Business Data Communications, 4e.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Chapter 2 Database System Concepts and Architecture Dr. Bernard Chen Ph.D. University of Central Arkansas.
1 Chapter 1 Introduction to Databases Transparencies.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Client/Server Computing
CS223: Software Engineering Lecture 14: Architectural Patterns.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
N-Tier Architecture.
Software Design and Architecture
Distribution and components
#01 Client/Server Computing
An Introduction to Software Architecture
Chapter 17: Client/Server Computing
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
#01 Client/Server Computing
Presentation transcript:

Understanding Networked Applications: A First Course Chapter 6 by David G. Messerschmitt

Understanding Networked Applications A First Course 2 Goal Appreciate the importance of complexity management in networked computing Understand better the role of architecture in complexity management Examine infrastructure layering in more depth

Understanding Networked Applications A First Course 3 Complexity A system that cannot be understood in all its detail by a single person or small group of people is complex The intricacy of the logic embodied in software –suffers no physical limitations –complexity is a primary limitation –advances allow us to extend that complexity

Understanding Networked Applications A First Course 4 Some sources of complexity Problem domain is complex Top-down design (as opposed to independent actors in the economy) Software is not adaptable like people Large team efforts required Integration of heterogeneous suppliers

Understanding Networked Applications A First Course 5 Caution The applications considered in this course are relatively simple We have addressed –only the top of the hierarchy –ignored details –but this is the essence of hierarchical design: make that which is complex appear simple

Understanding Networked Applications A First Course 6 Some solutions to complexity Modularity properties –separation of concerns –reuse Interoperability through interfaces –abstraction –encapsulation

Understanding Networked Applications A First Course 7 Modularity A system is modular when it is divided into subsystems (called modules) with good properties –Modules have distinct functional groupings –Hierarchy supports views at different granularity and scale –Separation of concerns among modules –Reusability of some modules

Understanding Networked Applications A First Course 8 Software: Allows a system to be understood at different granularity Hierarchy Organization: Allows a manager to focus on high-level objectives, delegating low-level detail

Understanding Networked Applications A First Course 9 Hierarchy in hardware architecture Integrated circuit subsystem Board subsystem Computer subsystem

Understanding Networked Applications A First Course 10 Separation of concerns The assignment of functionality to different modules should allow them to be designed and implemented as independently as possible The level of interaction –may be internally high –should be externally low They can then be assigned to different groups or companies for design –minimum coordination costs

Understanding Networked Applications A First Course 11 Physical-world example Loan department Customer service Credit checking Physical plant Janitorial Floor polishing Customer service Janitorial Credit checking Floor polishing Poor modularity Better modularity

Understanding Networked Applications A First Course 12 Infrastructure example Host Application End-to-end network Network Switch-to-switch Host Application Network End-to-end network Switch-to-switch Poor modularity Better modularity Level of interaction high

Understanding Networked Applications A First Course 13 Parts of a module =+ ModuleInterface Implementation What other modules see What only the implementer sees

Understanding Networked Applications A First Course 14 Interfaces Focus of module interaction and interoperability Two purposes: –Informs other modules how to interact –Informs implementer about what has been promised to other modules

Understanding Networked Applications A First Course 15 Hardware interface Physical connection Electrical properties Formats of data passing through the interface (structure and interpretation)

Understanding Networked Applications A First Course 16 Possible software interface action-1 action-2 action-3... Menu of actions What are some other examples of types of interaction at interfaces?

Understanding Networked Applications A First Course 17 Module interaction through interfaces Client Server action, parameters returns Both subsystems are affected by the interaction Data customizing an action and disclosing its results

Understanding Networked Applications A First Course 18 Data types Data passing an interface is often specified in terms of a limited number of standard data types Data type = range of values and allowable manipulation Data type does not presume a specific representation, to allow heterogeneous platforms –Representation must be known when data passes a sepecific module interface

Understanding Networked Applications A First Course 19 Example data types Integer –“natural number between -32,767 and +32,768” –Could be represented (in many ways) by 16 bits since 2 n = 65,536 Float –“number of the form m*10 n /32768, where m is in the range -32,767 to +32,768 and n is in the range -255 to +256” –Could be represented by 16+8 = 24 bits

Understanding Networked Applications A First Course 20 More data types Character –“values assuming a-z and A-Z plus space and punctuation marks” could be represented by 7 or 8 bits Character string –“collection of n characters, where n is customizable” could be represented by 7*n bits

Understanding Networked Applications A First Course 21 Compound data types Programmer-defined composition of basic data types Example: Employee { String name; String address; Integer year_of birth; etc. }

Understanding Networked Applications A First Course 22 Protocols A defined sequence of actions between/among two or more subsystems required to achieve some higher-level functionality Interface specification focuses on actions (including formats of parameters and returns) and protocols

Understanding Networked Applications A First Course 23 Example protocol: deposit Bank account get_balance set_balance add deposit amount

Understanding Networked Applications A First Course 24  Decides it needs to invoke an action of a server module  Invokes the action by name  Passes parameter data to the server  Processes parameters in accordance with the specified action; generates return values  Passes the return values back to the client  Process the return values to complete the interaction Client module Server module Anatomy of an action invocation

Understanding Networked Applications: A First Course More on layering by David G. Messerschmitt

Understanding Networked Applications A First Course 26 Goals Understand better –how layering is used in the infrastructure –how it contains complexity –how it coordinates suppliers –how it allows new capabilities to be added incrementally

Understanding Networked Applications A First Course 27 Layer above is a client of the layer below Layer below as as a server to the layer above ….by utilizing the services of the layer below and adding capability Each layer provides services to the layer above…. Interaction of layers

Understanding Networked Applications A First Course 28 Application module Host AHost B Middleware Operating system Network Middleware

Understanding Networked Applications A First Course 29 Layering Existing layers Elaboration or specialization   Layering builds capability incrementally by adding to what exists

Understanding Networked Applications A First Course 30 Three types of software Application Infrastructure: Basic services (communication, storage, concurrency, presentation, etc.) Components and frameworks: What is in common among applications

Understanding Networked Applications A First Course 31 Part of Microsoft vs. DOJ dispute Application Infrastructure Components and frameworks Microsoft position DOJ position

Understanding Networked Applications A First Course 32 Network Operating system Middleware Application frameworks and components Applications Major layers

Understanding Networked Applications A First Course 33 Network Operating system Middleware Application components Applications Open interfaces Open layer interfaces

Understanding Networked Applications A First Course 34 Data and information Application Deals with information Infrastructure Deals with data Assumes structure and interpretation Ignores structure and interpretation

Understanding Networked Applications A First Course 35 Data and information in layers The infrastructure should deal with data, or at most minimal structure and interpretation of data suitable for a wide range of applications The application adds additional structure and interpretation This yields a separation of concerns

Understanding Networked Applications A First Course 36 Package = file, message In the simplest case, the infrastructure deals with a package of data (non-standard terminology) –collection of bits –specified number and ordering The objective of the infrastructure is to store and communicate packages while maintaining data integrity File for storage, message for communication

Understanding Networked Applications A First Course 37 Data integrity Retain the –values –order –number of bits in a package

Understanding Networked Applications A First Course 38 Web browser File system Operating system File Network Message Collection of packets FragmentationAssembly Message HTML Screen Application Web server Example

Understanding Networked Applications A First Course 39 Information in the infrastructure Sometimes it is appropriate for the infrastructure to assume structure and interpretation for data –to add capabilities widely useful to applications –to help applications deal with heterogeneous platforms, where representations differ At most, data types

Understanding Networked Applications A First Course 40 Data and information Application Deals with information Infrastructure Deals with data types Assumes structure and interpretation Assumes standard data types

Understanding Networked Applications A First Course 41 Storage Application Deals with information Database management system (DBMS) File system Assumes standard data types and SQL = structured query language The infrastructure can provide data management functions

Understanding Networked Applications A First Course 42 Communication Application Deals with information Distributed object management Network Assumes standard data types and performs conversions The infrastructure can transparently convert representations across platforms

Understanding Networked Applications A First Course 43 ClientServer invoke_action action action_name, parameters returns Middleware layer Idea behind remote action invocation

Understanding Networked Applications A First Course 44 MacOS Windows UNIX Mainframe MacOS Windows UNIX Mainframe MacOS Windows UNIX Mainframe MacOS Windows UNIX Mainframe Perform all conversions Convert to/from common representation Using a common intermediate form

Understanding Networked Applications A First Course 45 Data Information Data Information Structure and interpretation Representation Data processing

Understanding Networked Applications A First Course 46 Representation is a coding of information by data in a form that can be manipulated by a lower layer; the results remain meaningful at the higher layer Information is data with known and consistent structure and interpretation in the context of the current layer Information Representation as data Layer above Layer below

Understanding Networked Applications A First Course 47 Network Operating system Middleware Application Information appliances IA

Understanding Networked Applications A First Course 48 Question What advantages and disadvantages do you see for the information appliance?

Understanding Networked Applications A First Course 49 Network 1Network 2 TCPUDP Windows NT TCPUDP UNIX TCPUDP Mac OS Internet protocol Application Horizontal structure in layers

Understanding Networked Applications A First Course 50 Distributed object management A spanning layer is ubiquitous and hides the layers below Network 1Network 2 TCPUDP Windows NT TCPUDP UNIX Application TCPUDP Mac OS Internet protocol Spanning layer

Understanding Networked Applications A First Course 51 Abstraction A property of well-designed interfaces to modules Hide detail, displaying only what is necessary Simplify, displaying only what is meaningful to the outside Important for complexity management

Understanding Networked Applications A First Course 52 Encapsulation Module implementation details (anything not explicit at interface) should be inaccessible from the outside –So other modules cannot become inadvertently dependent on implementation –In the case of components, for proprietary or security reasons

Understanding Networked Applications A First Course 53 Summary of modularity Divide and conquer: decomposition of the system into modules with well-defined functional groupings Separation of concerns: great dependency internally, little dependency externally Abstraction: hide detail and simplify Encapsulation: make internal implementation inaccessible Reusability: meet generalized needs, configurable