G.v. Bochmann, revised Jan. 2005 Comm Systems Arch 1 Different system architectures Object-oriented architecture (only objects, no particular structure)

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

1 Communication in Distributed Systems REKs adaptation of Tanenbaums Distributed Systems Chapter 2.
Chapter 17 Networking Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
Giving a formal meaning to “Specialization” In these note we try to give a formal meaning to specifications, implementations, their comparisons. We define.
RPC Robert Grimm New York University Remote Procedure Calls.
OSI Model OSI MODEL.
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 2 – Protocol Architecture, TCP/IP, and Internet-Based.
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 2 – Protocol Architecture, TCP/IP, and Internet-Based.
DISTRIBUTED FILE SYSTEM USING RMI
Socket Programming.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
1. Introducing Java Computing  What is Java Computing?  Why Java Computing?  Enterprise Java Computing  Java and Internet Web Server.
Jacob Boston Josh Pfeifer. Definition of HyperText Transfer Protocol How HTTP works How Websites work GoDaddy.com OSI Model Networking.
CS3771 Today: network programming with sockets  Previous class: network structures, protocols  Next: network programming Sockets (low-level API) TODAY!
Protocols and the TCP/IP Suite
System Architecture  you should list the layered Architecture  Understand the ISO/OSI model used in data communications  Understand the differences.
EE 4272Spring, 2003 Protocols & Architecture A Protocol Architecture is the layered structure of hardware & software that supports the exchange of data.
1 Review of Important Networking Concepts Introductory material. This module uses the example from the previous module to review important networking concepts:
Communication in Distributed Systems –Part 2
William Stallings Data and Computer Communications 7 th Edition Chapter 2 Protocols and Architecture.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
.NET Mobile Application Development Remote Procedure Call.
Distributed Systems Architecture Presentation II Presenters Rose Kit & Turgut Tezir.
 The Open Systems Interconnection model (OSI model) is a product of the Open Systems Interconnection effort at the International Organization for Standardization.
Copyright 2003 CCNA 1 Chapter 7 TCP/IP Protocol Suite and IP Addressing By Your Name.
OIS Model TCP/IP Model.
1 TCP/IP architecture A set of protocols allowing communication across diverse networks Out of ARPANET Emphasize on robustness regarding to failure Emphasize.
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.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 2 – Protocol Architecture, TCP/IP, and Internet-Based.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 12 Communicating over.
SEED Infotech Pvt. Ltd. 1 Networking in Java. SEED Infotech Pvt. Ltd. 2 Objectives of This Session Describe issues related to any type of network using.
Protocols and the TCP/IP Suite
6.1. Transport Control Protocol (TCP) It is the most widely used transport protocol in the world. Provides reliable end to end connection between two hosts.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Network Services Networking for Home and Small Businesses – Chapter 6.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Lecture 15 Introduction to Web Services Web Service Applications.
Data and Computer Communications Chapter 2 – Protocol Architecture, TCP/IP, and Internet-Based Applications.
Chapter 15 – Part 2 Networks The Internal Operating System The Architecture of Computer Hardware and Systems Software: An Information Technology Approach.
CCNA 1 v3.0 Module 9 TCP/IP Protocol Suite and IP Addressing.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RPC Tanenbaum.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Distributed Objects and Remote Invocation Source: George Colouris, Jean Dollimore, Tim Kinderberg & Gordon Blair (2012). Distributed Systems: Concepts.
EGOS LLC CCSDS 14/ Question Question; Why a Service Viewpoint? Short Answer; Because a service viewpoint provides a useful additional level.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Protocols and Architecture Slide 1 Use of Standard Protocols.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Network Architecture Protocol hierarchies Design Issues for the layers
TCP/IP Protocol Suite and IP Addressing Presented By : Dupien AMS.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Copyright 1999 G.v. Bochmann ELG 7186C ch.1 1 Course Notes ELG 7186C Formal Methods for the Development of Real-Time System Applications Gregor v. Bochmann.
Computer Engineering and Networks, College of Engineering, Majmaah University Protocols OSI reference MODEL TCp /ip model Mohammed Saleem Bhat
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Topic 3: Remote Invocation Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
OSI Model OSI MODEL. Communication Architecture Strategy for connecting host computers and other communicating equipment. Defines necessary elements for.
OSI Model OSI MODEL.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Network Architecture Layered Architectures Network Protocols
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Chapter 3 Internet Applications and Network Programming
MCA – 405 Elective –I (A) Java Programming & Technology
Lecturer, Department of Computer Application
Data and Computer Communications by William Stallings Eighth Edition
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
OSI Model OSI MODEL.
Presentation transcript:

G.v. Bochmann, revised Jan Comm Systems Arch 1 Different system architectures Object-oriented architecture (only objects, no particular structure) Layered architecture (e.g. layered functions of an operating system) Embedded systems: We have to model the complete system –“work flow analysis”: to model the whole work process including automated and non-automated parts –process control systems: model of the plant and the control system Communication services and protocols: a distributed and layered architecture (see slides below) –Service specification provides the global view of the service provided by a layer (the distribution aspect is ignored, a single distributed component is considered, but different interfaces are considered for the different service access points) –Protocol specification: the view is local (the behavior of a local protocol entity is specified) and abstract (e.g. abstract layer interfaces, certain functional properties of the specified protocol entities can be left implementation-dependent)

G.v. Bochmann, revised Jan Comm Systems Arch 2 Architecture of communication services and protocols

G.v. Bochmann, revised Jan Comm Systems Arch 3 Architectural structure of a protocol layer protocol entity communication service used by the protocol (offered by the lower layer) service offered by the protocol user of protocol service interface Protocol service interfaces of lower layer message encoding

G.v. Bochmann, revised Jan Comm Systems Arch 4 Service specification The specification of a communication service has two parts: –specification of an abstract service interface through which the service can be locally obtained (sometimes called service access point) »e.g. in the case of TCP: local interactions for establishing a connection and for closing it; sending a flow of data over an established connection (with flow control, no notion of "end of service unit") »It is an abstract interface, the interaction primitives may be considered a kind of abstract message (initiated by one side, received by the other side of the interface; some interactions are initiated by the user, others are initiated by the service). The specification of an abstract service interface is like the specification of the dynamic behavior of an object class. It includes Static aspects –list of interaction primitives, also called service primitives (like messages exchange; not like method calls that have the initiating party blocked until the method returns) –for each primitive, which sides initiates the message, and its parameters and their type Dynamic aspects –sequencing rules which define in which order the primitives may be executed –rules concerning the allowed parameter values for particular execution sequences –specification of the end-to-end behavior of the (distributed) system component that provides the service »e.g. in the case of TCP: the establishment of a connection involves local exchanges at both end-points of the connection concerning the connection establishment; data received at one end-point must have been sent at the other end-point (with FIFO property without loss nor errors)

G.v. Bochmann, revised Jan Comm Systems Arch 5 Protocol specification Protocol specification = definition of the behavior of a protocol entity as visible at the upper and lower (abstract) service interfaces This includes –reference to the specification of the upper (abstract) service interface (normally defined by the corresponding service specification) –reference to the specification of the lower (abstract) service interface (normally defined by the service specification of the underlying service used by the protocol) –dynamic behavior of the protocol entity, that is, »sequencing rules concerning interactions at the upper and lower interfaces. Note (a): Certain protocols developed by certain groups, e.g. IETF, do not refer to any service specification. In this case only the ordering of interactions at the lower interface are defined. Note (b): In the simplest case (if the protocol does not use any connections, or if it can be assumed that appropriate connections are already established) the interactions at the lower interface only include the sending and receiving of protocol messages (so-called PDU's). »Rules concerning the allowed interaction parameters e.g sequence numbering in TCP, sending acknowledgements, etc. »Encoding rules (a) concerning how interaction parameters received at the upper interface are coded and sent as so-called "user data" in one of the data fields of the primitives at the lower interface (and inversely the decoding of user data to obtain the corresponding value for the upper interaction parameter). –e.g. in the case of the IP protocol: how is the address "local host" coded in the destination address field of an IP packet ? (b) concerning the coding of protocol control information managed by the protocol entity –e.g. in the case of the TCP protocol: where in the "user data" of the lower layer primitive (which in the case of TCP is the data field of an IP packet) is the TCP sequence number placed and how are the integer values coded ?

G.v. Bochmann, revised Jan Comm Systems Arch 6 Properties to be specified (in general) Functional properties –properties of a sequential program: results as a function of the input –properties of a reactive system: »Safeness properties: results (or output(s)) depending on the inputs and the history of all previous interactions (also called “trace”, and which represents the state of the system). »Liveness properties: (1) response time: Different levels of guarantee: (a) guarantee of an eventual response, (b) guarantee of an average response time, (c) guarantee of a maximum response time (hard real-time guarantee) (2) fairness properties : relative “priority” in the case of several “clients” (this can be formalized by Temporal Logic) »behavior in exceptional situations (in addition to the behavior in the “normal” situations)

G.v. Bochmann, revised Jan Comm Systems Arch 7 Different levels of abstraction When is a specification complete ? -- Note: One should leave “implementation details” unspecified ! abstract interfaces (leave the details of "concrete interface" unspecified), based on abstract interaction primitives, such as –message passing (as suggested above for service access points) –abstract operation call, possibly over distance (e.g. remote procedure call), where the caller waits for the results –rendezvous (with reciprocal waiting) examples of concrete (implementation-level) interfaces –a set of procedures to be called at the level of a programming language (typical “application programming interface” (API)) –communication protocol (PPP, bus interface within a workstation, etc.) »Note: In the case of a network access between X.25 protocol interface between computer and network node. Similarly, in the case of an API one distinguishes between the client program and the server side (which may the the operating system)

G.v. Bochmann, revised Jan Comm Systems Arch 8 Different kinds of specifications for distributed systems See next page for explanations Serv.APIProt.the specification -xTCP -xsocket interface of Linux xxOSI Transport protocol trivial xASCI, JPG, MPEG, etc. ? xHTML struct ASN.1 (of OSI), IDL of CORBA (struct) x ASN.1 encoding rules, OSI Remote Operations, GIOB (struct) xx ORB providing Java interface and using IIOP (GIOB over TCP/IP) struct x XML struct xx Java object serialization and RMI

G.v. Bochmann, revised Jan Comm Systems Arch 9 Explanation of previous slide The first three columns indicate whether the Service (or abstract service interface), the detailed API, and/or the Protocol is defined by the specification in question. –"-" means no, and it would be better if this was defined –"struct" means that the specification defines how one can define data types, object classes, etc. –"(struct)" means that the specification makes use of a notation for defining data types, etc. given by another specification (e.g. an ORB uses IDL) The specifications of ASCI, JPEG, MPEG, HTML, XML, Java serialization, and ASN.1 encoding rules include no aspect of sequencing of service primitives, because they are concerned with the question how some data object is coded as a string of bits. Therefore these protocols are also very useful for writing these data objects into data storage. The specifications of the OSI Remote Operations, CORBA ORB and Java RMI and SOAP (using XML) provide a service of invocations of operations on remote objects. In the case of ORB and RMI (which provide an API) the paradigm of a proxy object is used. The proxy object is co-located with the client which calls the remote server; the proxy represents the server at the client's place.