Understanding Networked Applications: A First Course Goal • Appreciate the importance of complexity management in networked computing • Understand better the role of architecture in Chapter 6 complexity management • Examine infrastructure layering in more depth by David G. Messerschmitt 2 Complexity Some sources of complexity • A system that cannot be understood in all • Problem domain is complex its detail by a single person or small group • Top-down design (as opposed to of people is complex independent actors in the economy) • The intricacy of the logic embodied in • Software is not adaptable like people software • Large team efforts required – suffers no physical limitations • Integration of heterogeneous suppliers – complexity is a primary limitation – advances allow us to extend that complexity 3 4 Caution Some solutions to complexity • The applications considered in this course • Modularity properties are relatively simple – separation of concerns • We have addressed – reuse • Interoperability through interfaces – only the top of the hierarchy – ignored details – abstraction – but this is the essence of hierarchical design: – encapsulation make that which is complex appear simple 5 6
Hierarchy Modularity Software: • A system is modular when it is divided into Allows a system to be understood subsystems (called modules) with good at different properties granularity – Modules have distinct functional groupings – Hierarchy supports views at different Organization: granularity and scale Allows a manager to focus on high-level – Separation of concerns among modules objectives, delegating – Reusability of some modules low-level detail 7 8 Hierarchy in hardware Separation of concerns architecture • The assignment of functionality to different modules should allow them to be designed and Computer subsystem implemented as independently as possible • The level of interaction – may be internally high – should be externally low Board subsystem • They can then be assigned to different groups or companies for design Integrated circuit subsystem – minimum coordination costs 9 10 Physical-world example Infrastructure example Level of Credit checking Customer service interaction high Network Poor Host Customer service Credit checking modularity Janitorial Floor polishing Poor Application End-to-end network modularity Switch-to-switch Physical plant Loan department Network Host Better Customer service Janitorial modularity Credit checking Floor polishing Better Application Switch-to-switch modularity End-to-end network 11 12
Parts of a module Interfaces • Focus of module interaction and interoperability = + • Two purposes: – Informs other modules how to interact Implementation Module Interface – Informs implementer about what has been What only the What other promised to other modules implementer modules see sees 13 14 Hardware interface Possible software interface • Physical connection action-1 Menu of • Electrical properties action-2 actions • Formats of data passing through the action-3 interface (structure and interpretation) ... What are some other examples of types of interaction at interfaces? 15 16 Module interaction through Data types interfaces Data customizing an action • Data passing an interface is often specified in and disclosing its results terms of a limited number of standard data types action, parameters • Data type = range of values and allowable manipulation returns • Data type does not presume a specific representation, to allow heterogeneous platforms Both subsystems are affected by the interaction – Representation must be known when data passes a sepecific module interface Server Client 17 18
Example data types More data types • Integer • Character – “natural number between -32,767 and +32,768” – “values assuming a-z and A-Z plus space and – Could be represented (in many ways) by 16 bits punctuation marks” • since 2 n = 65,536 • could be represented by 7 or 8 bits • Float • Character string – “number of the form m *10 n /32768, where m is in the – “collection of n characters, where n is range -32,767 to +32,768 and n is in the range -255 to customizable” +256” – Could be represented by 16+8 = 24 bits • could be represented by 7* n bits 19 20 Compound data types Protocols • Programmer-defined composition of basic • A defined sequence of actions data types between/among two or more subsystems required to achieve some higher-level • Example: functionality Employee { • Interface specification focuses on actions String name; (including formats of parameters and String address; Integer year_of birth; returns) and protocols etc. } 21 22 Example protocol: deposit Anatomy of an action invocation ① Decides it needs get_balance ② Invokes the to invoke an action action by name of a server module ④ Processes ③ Passes parameter add parameters in data to the server Bank deposit accordance with the account amount specified action; generates return set_balance values ⑥ Process the return ⑤ Passes the values to complete return values back the interaction to the client Server module Client module 23 24
Understanding Networked Applications: A First Course Goals • Understand better – how layering is used in the infrastructure More on layering – how it contains complexity – how it coordinates suppliers – how it allows new capabilities to be added incrementally by David G. Messerschmitt 26 Interaction of layers Host A Host B Layer above is a client of the Application module Application module layer below Middleware Middleware Each layer provides services to the layer above…. Operating system Operating system ….by utilizing the services of the layer below and adding capability Network Layer below as as a server to the layer above 27 28 Layering Three types of software Elaboration or specialization Application ➴ ➴ ➴ Existing layers •Components and frameworks: What is in common among applications •Infrastructure: Layering builds capability Basic services (communication, storage, incrementally by adding to what concurrency, presentation, etc.) exists 29 30
Part of Microsoft vs. DOJ dispute Major layers Microsoft DOJ position position Applications Application Application frameworks and components Middleware Components and frameworks Operating system Infrastructure Network 31 32 Open layer interfaces Data and information Application Applications Deals with information Application components Open interfaces Assumes structure and interpretation Middleware Ignores structure and interpretation Operating system Infrastructure Deals with data Network 33 34 Data and information in layers Package = file, message • The infrastructure should deal with data, or • In the simplest case, the infrastructure deals with a package of data (non-standard terminology) at most minimal structure and interpretation of data suitable for a wide range of – collection of bits – specified number and ordering applications • The objective of the infrastructure is to store and • The application adds additional structure communicate packages while maintaining data and interpretation integrity • This yields a separation of concerns • File for storage, message for communication 35 36
Data integrity Example Screen • Retain the Web server Web browser – values HTML Application – order – number File Message Message Operating system of bits in a package File system Collection of Network Fragmentation Assembly packets 37 38 Information in the infrastructure Data and information • Sometimes it is appropriate for the Application infrastructure to assume structure and Deals with information interpretation for data Assumes structure and interpretation – to add capabilities widely useful to applications – to help applications deal with heterogeneous Assumes standard data types platforms, where representations differ Infrastructure • At most, data types Deals with data types 39 40 Storage Communication Application Application Deals with information Deals with information Assumes standard data types Assumes standard data types and SQL = structured query language and performs conversions The Database management system (DBMS) Distributed object management infrastructure can The infrastructure File system Network transparently can provide data convert management representations functions across platforms 41 42
Recommend
More recommend