Chapter 2 Architectural Models. Keywords Middleware Interface vs. implementation Client-server models OOP.

Slides:



Advertisements
Similar presentations
Chapter 7 LAN Operating Systems LAN Software Software Compatibility Network Operating System (NOP) Architecture NOP Functions NOP Trends.
Advertisements

Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
Some ideas from Chapter 1
Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users as a single coherent system.
Distributed components
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.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization and Design Goals Dr. Michael R. Lyu Computer.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
REK’s adaptation of Prof. Claypool’s adaptation of
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Fall 2007cs4251 Distributed Computing Umar Kalim Dept. of Communication Systems Engineering 31/10/2007.
Edition 3, © Addison-Wesley 2001
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
The Architecture of Transaction Processing Systems
Chapter 10 Classes Continued
CMPT 401 Summer 2007 Dr. Alexandra Fedorova Lecture II: Architectural Models.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
Distributed Systems Architecture Presentation II Presenters Rose Kit & Turgut Tezir.
Client/Server Software Architectures Yonglei Tao.
The Design Discipline.
IS473 Distributed Systems
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
1 System Models. 2 Outline Introduction Architectural models Fundamental models Guideline.
Distributed Computing Class: BIT5 & 6 Instructor: Aatif Kamal Chapter 02: (part 01) Distributed System Models Dated: 7 th Sept 2006.
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bộ môn Mạng và Truyền Thông Máy Tính.
Source: George Colouris, Jean Dollimore, Tim Kinderberg & Gordon Blair (2012). Distributed Systems: Concepts & Design (5 th Ed.). Essex: Addison-Wesley.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Architectures of distributed systems Fundamental Models
Introduction Architecture Models Fundamental Models Summary Chapter 2: System Model.
Distributed System Models (Fundamental Model). Architectural Model Goal Reliability Manageability Adaptability Cost-effectiveness Service Layers Platform.
Chapter 2: System Models. Objectives To provide students with conceptual models to support their study of distributed systems. To motivate the study of.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
IS473 Distributed Systems CHAPTER 5 Distributed Objects & Remote Invocation.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
University of South Asia Course Name: Distributed System
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Prepared By: Md Rezaul Huda Reza
Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users as a single coherent system.
D ISTRIBUTED S YSTEM UNIT-1 Prepared By: G.S.Mishra.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization of Distributed & Mobile Systems Dr. Michael R.
Distributed System Models
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
File Transfer And Access (FTP, TFTP, NFS). Remote File Access, Transfer and Storage Networks For different goals variety of approaches to remote file.
From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, © Addison-Wesley 2012 System Models by Dr. Sarmad Sadik.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Distributed Systems: Concepts and Design Jinghai Rao 13,9,2000.
1 SYSTEM MODEL. 2 Topics  Introduction  Architectural Models  Fundamental Models SYSTEM MODEL.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Definition of Distributed System
Chapter 2: System Model Introduction Architecture Models
#01 Client/Server Computing
Operating Systems Bina Ramamurthy CSE421 11/27/2018 B.Ramamurthy.
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
Architectures of distributed systems Fundamental Models
Architectures of distributed systems Fundamental Models
System Models and Networking Chapter 2,3
Architectures of distributed systems
Architectures of distributed systems Fundamental Models
OBJECT STORAGE AND INTEROPERABILITY
Chapter 2: System models
System Models Bina Ramamurthy 9/7/2019 B.Ramamurthy.
#01 Client/Server Computing
Presentation transcript:

Chapter 2 Architectural Models

Keywords Middleware Interface vs. implementation Client-server models OOP

Process Classification in DS Classified by responsibilities Server processes E.g. SQL server, Web server Client processes Web browser, SQL query analyzer Peer processes chat

Software layers

Platform Lowest-level hardware and software E.g. Intel X86, Sun SPARC E.g. Windows, SunOS Q: which one is better: multiple standards or single standard?

Middleware Mask heterogeneity/implementation Transparency Provide convenient programming model Commonly implemented over internet protocols TCP/IP Examples: JVM, CORBA, DCOM, RMI

Middleware Services Communication facilities Naming Distributed transactions Persistent storage Stores persistent objects (in marshaled form), which live between activations by servers Persistent Java, CORBA persistent object service. Security

Middleware And Openness Protocols used by each middleware layer should be same; Similarly for interfaces they offer to applications.

Middleware Limitations Platform independence  Middleware dependence “Some communication-related functions can be completely and reliably implemented only with the knowledge and help of the application standing at the end points of the communication system” [Saltzer, Reed and Clarke, 1984]

Examples Transferring large files TCP not enough Irrigating farm-land Rule: requiring help from higher-level Q: Can mankind comprehend itself?

Client-Server Model

Relationship Client/server is a process. M-to-M Servers may in turn be clients of other servers. E.g. web server, search engines

Improvements/Variations Multiple servers Partition jobs Maintain replicated copies Caches Peer processes Reduce the delay of access Eliminate the bottleneck Group communication Mobile code, like web applets

Multiple-threads Server Warm-up: threads vs. processes Usually a server (which is a process) has multiple threads for concurrency reason. E.g. web server Same principle applies to client. E.g. web browser

OO Implementation Object-oriented programming class and instance encapsulation (information hiding ), inheritance (with overriding) and polymorphism OO approach Everything is an object Not true in C++ Modular Interaction by messages

OO benefits Encapsulation Protection by controlled access (values and synchronization) Information hiding (internal operations can be modified as long as interface is kept same) Inheritance Overriding (can also add new methods and variables) Efficient software development Polymorphism

Method-overloading Different methods in the same class can have same name, provided number and/or types of arguments are different for each method. Why do we need it? class Example { public static int doubleIt (int x) {return 2*x;} public static String doubleIt (String x) { return x + x;} }

Polymorphism Same method name means different things, depending on object’s position in hierarchy. In Java, objects implementing same interface or extending same superclass can override method to do different things. Separation of interface and implementation

Example: Device Driver Define interface with generic methods, e.g., read and write. Individual device drivers override those abstract methods. Same message sent to variety of objects would then take on different forms.

OO benefits --- Really? Difficult to achieve all the goals Careful design, future prediction, code reuse Design patterns, refactoring techniques Managers tend to overlook them. Does it improve coding efficiency? Said by a survey: not much compared to memory-management-hiding techniques

Fundamental Models of DS Interaction model Failure model Security model

Interaction Model Multiple processes Rate and timing of message passing cannot in general be predicted. Two significant factors Communication channel Latency, bandwidth, jitter Computer clocks and timing events Clock drift

Two Variants Synchronous: There is upper-bound T (sec) on time from sending request till receiving reply On timeout one can conclude there is failure. Asynchronous: No finite upper-bound, but guaranteed to be finite under no failure (e.g., Internet) cannot tell if network is being slow or has failed. Comparisons.

Event Ordering User X sends a message with the subject Meeting Users Y and Z reply with the subject Re: Meeting ItemFromSubject 23ZRe: Meeting 24XMeeting 25YRe: Meeting Seen by user A

Failure Model Omission failures Fail to perform actions Arbitrary failures Timing failures How to mask failures? Re-transmit message Checksum: Hamming code

Security Model Protect objects Access rights Protect processes and their interactions Threats to servers, clients Communication channel Copy of m Process p q m The enemy m’

Defeating Threats Cryptograph and shared secrets Using large numbers as secret keys Authentication User names passwords Secure channels