Presentation 4: Principles of Object-Oriented Middleware.

Slides:



Advertisements
Similar presentations
1 Communication in Distributed Systems REKs adaptation of Tanenbaums Distributed Systems Chapter 2.
Advertisements

CSE 486/586 Distributed Systems Remote Procedure Call
RPC Robert Grimm New York University Remote Procedure Calls.
Remote Procedure Call (RPC)
Remote Procedure Call Design issues Implementation RPC programming
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
II. Middleware for Distributed Systems
Remote Procedure CallCS-4513, D-Term Remote Procedure Call CS-4513 Distributed Computing Systems (Slides include materials from Operating System.
Presentation 4: Principles of Object-Oriented Middleware.
Implementing Remote Procedure Calls Andrew Birrell and Bruce Nelson Presented by Kai Cong.
University of British Columbia Software Practices Lab Introduction to Middleware for Software Engineering Eric Wohlstadter 539D.
Distributed components
Middleware Fatemeh Hendijanifard 1 آزمايشگاه سيستم هاي هوشمند (
Tutorials 2 A programmer can use two approaches when designing a distributed application. Describe what are they? Communication-Oriented Design Begin with.
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Introduction to Remote Method Invocation (RMI)
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: Distributed Objects.
Middleware Technologies compiled by: Thomas M. Cosley.
II. Middleware for Distributed Systems
EEC-681/781 Distributed Computing Systems Lecture 4 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 4: RPCs vs. CORBA Dr. Michael R. Lyu Computer Science & Engineering.
Presentation 4: Principles of Object-Oriented Middleware.
1 Remote Procedure Calls (RPC) and Distributed Objects G53ACC Chris Greenhalgh.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Remote Procedure Call Andrew Whitaker CSE451. Remote Procedure Call RPC exposes a programming interface across machines: interface PriceService { Price.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Information Management NTU Interprocess Communication and Middleware.
© 2003 Wolfgang Emmerich 1 Validating Distributed Object & Component Designs Wolfgang Emmerich and Nima Kaveh London Software Systems University College.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
Chapter 4: Interprocess Communication‏ Pages
Presentation 18: RMI introduction. Goals of this lesson After this 35 min. lesson you will be: Introduced to Java RMI Ready to present RMI’s position.
Making Remote Calls Remote procedure calls, remote method invocations and their infrastructure.
1 Lecture 5 (part2) : “Interprocess communication” n reasons for process cooperation n types of message passing n direct and indirect message passing n.
Presentation: RMI introduction. Goals of this lesson After this 35 min. lesson you will be: Introduced to Java RMI Ready to present RMI’s position in.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RPC Tanenbaum.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Objektorienteret Middleware (OOMI)
Presentation 4: Principles of Object-Oriented Middleware.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 3: Communication Dr. Michael R. Lyu Computer Science & Engineering.
Remote Procedure Calls CS587x Lecture Department of Computer Science Iowa State University.
Remote Procedure CallCS-502 Fall Remote Procedure Call (continued) CS-502, Operating Systems Fall 2007 (Slides include materials from Operating System.
Presentation 11: RMI introduction. Ingeniørhøjskolen i Århus Slide 2 af 20 Goals of this lesson After these 2x35 lessons you will be –Introduced to Java.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Objektorienteret Netværkskommunikation (ITONK1) CORBA Introduction.
G.v. Bochmann, revised Jan Comm Systems Arch 1 Different system architectures Object-oriented architecture (only objects, no particular structure)
Presentation 4: Principles of Object-Oriented Middleware.
Presentation: Special Repetition Recap on Distributed Principles.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Distributed Web Systems Distributed Objects and Remote Method Invocation Lecturer Department University.
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Prof. Leonardo Mostarda University of Camerino
CSE 486/586 Distributed Systems Remote Procedure Call
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
DISTRIBUTED COMPUTING
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CS551 Object Oriented Middleware (I) (Chap. 3 of EDO)
Remote invocation (call)
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Lecture 7: RPC (exercises/questions)
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

Presentation 4: Principles of Object-Oriented Middleware

Ingeniørhøjskolen i Århus Slide 2 af 34 Outline Students are assumed to be knowledgeable about Computer Networks – including the OSI model and the TCP, UDP protocols. If not … please read ; ) Types of Middleware –Transaction-Oriented Middleware –Message-Oriented Middleware –Remote Procedure Calls Object-Oriented Middleware Developing with Object-Oriented Middleware

Computer Networks - an ultra short introduction

Ingeniørhøjskolen i Århus Slide 4 af 34 Physical Application Presentation Session Transport Network Data link ISO/OSI Reference Model Middleware Specific Middleware Specific

Ingeniørhøjskolen i Århus Slide 5 af 34 Physical Application Presentation Session Transport Network Data link Transport Layer Level 4 of ISO/OSI reference model. Concerned with the transport of information through a network. Two facets in UNIX/Windows networks: –TCP and –UDP.

Ingeniørhøjskolen i Århus Slide 6 af 34 Transmission Control Protocol (TCP) Provides bi-directional stream of bytes between two distributed components. Reliable but slow protocol. Buffering at both sides de-couples computation speeds. Best at fairly unreliable Networks (as the Internet) Very pratical –As the WWW uses the TCP/IP protocol family –And most Networking Operating Systems as well

Ingeniørhøjskolen i Århus Slide 7 af 34 Application Presentation Session Transport Application Presentation Session Transport Input Stream Output Stream Requests Results ClientServer TCP for Request Implementation

Ingeniørhøjskolen i Århus Slide 8 af 34 User Datagram Protocol (UDP) Enables a component to pass a message containing a sequence of bytes to another component. Other component is identified within message. Unreliable but very fast protocol. Restricted message length. Queuing at receiver Best at highly reliable networks (as a LAN)

Ingeniørhøjskolen i Århus Slide 9 af 34 Result Datagrams Application Presentation Session Transport Application Presentation Session Transport Request Datagrams ClientServer UDP for Request Implementation

Types of Middleware - and why to use …

Ingeniørhøjskolen i Århus Slide 11 af 34 Direct Use of Network Protocols implies Manual mapping of complex request parameters to byte streams – is complex & error prone Manual resolution of data heterogeneity –encoding differs on NT & UNIX (what is the format of an Integer?) Manual identification of components –References must be established manually (host add., port nr. etc.) Manual implementation of component activation No guarantees for type safety Manual synchronization of interaction between distributed components –Developers need to handle TCP/UDP output stream/responses No quality of service guarantees (transactions demand)

Ingeniørhøjskolen i Århus Slide 12 af 34 Middleware Layered between Application and OS/Network Makes distribution transparent Resolves heterogeneity of –Hardware –Operating Systems –Networks –Programming Languages Provides development and run-time environment for distributed systems.

Ingeniørhøjskolen i Århus Slide 13 af 34 Forms of Middleware Transaction-Oriented –Suited for Database Applications –IBM CICS –BEA Tuxedo –Encina Message-Oriented –Suited for Asynchronous (EDI,Batch) –IBM MQSeries –DEC Message Queue –NCR TopEnd –(SOAP) RPC Systems –Suited for Access transparency etc –ANSA –Sun ONC –OSF/DCE –(SOAP) Object-Oriented –OMG/CORBA –DCOM –Java/RMI –(SOAP) First look at RPCs to understand origin of object-oriented middleware

Ingeniørhøjskolen i Århus Slide 14 af 34 Remote Procedure Calls Enable procedure calls across host boundaries Call interfaces are defined using an Interface Definition Language (IDL) RPC compiler generates presentation and session layer implementation from IDL

Ingeniørhøjskolen i Århus Slide 15 af 34 IDL Example (Unix RPCs) const NL=64; struct Player { struct DoB {int day; int month; int year;} string name ; }; program PLAYERPROG { version PLAYERVERSION { void PRINT(Player)=0; int STORE(Player)=1; Player LOAD(int)=2; }= 0; } = ;

Ingeniørhøjskolen i Århus Slide 16 af 34 RPC Marshalling and Unmarshalling Marshalling: Disassemble data structures into transmittable form Unmarshalling: Reassemble the complex data structure char * marshal() { char * msg; msg=new char[4*(sizeof(int)+1) + strlen(name)+1]; sprintf(msg,"%d %d %d %d %s", dob.day,dob.month,dob.year, strlen(name),name); return(msg); }; void unmarshal(char * msg) { int name_len; sscanf(msg,"%d %d %d %d ", &dob.day,&dob.month, &dob.year,&name_len); name = new char[name_len+1]; sscanf(msg,"%d %d %d %d %s", &dob.day,&dob.month, &dob.year,&name_len,name); }; char * marshal() { char * msg; msg=new char[4*(sizeof(int)+1) + strlen(name)+1]; sprintf(msg,"%d %d %d %d %s", dob.day,dob.month,dob.year, strlen(name),name); return(msg); }; void unmarshal(char * msg) { int name_len; sscanf(msg,"%d %d %d %d ", &dob.day,&dob.month, &dob.year,&name_len); name = new char[name_len+1]; sscanf(msg,"%d %d %d %d %s", &dob.day,&dob.month, &dob.year,&name_len,name); };

Ingeniørhøjskolen i Århus Slide 17 af 34 Method Call vs. Object Request CalledCalled Stub CallerCalledCalledCaller Caller Transport Layer (e.g. TCP or UDP)

Ingeniørhøjskolen i Århus Slide 18 af 34 RPC Stubs Creating code for marshalling and unmarshalling is tedious and error-prone. Code can be generated fully automatically from interface definition. Code is embedded (hidden away – de-coupled) in stubs for client and server. Client stub represents server for client, Server stub represents client for server. Stubs achieve type safety. Stubs also perform synchronization.

Ingeniørhøjskolen i Århus Slide 19 af 34 Synchronization Goal: achieve similar synchronization to local method invocation Achieved by stubs: –Client stub sends request and waits until server finishes –Server stub waits for requests and calls server when request arrives

Ingeniørhøjskolen i Århus Slide 20 af 34 Type Safety How can we make sure that –servers are able to perform operations requested by clients? –actual parameters provided by clients match the expected parameters of the server? –results provided by the server match the expectations of client? Middleware acts as mediator between client and server to ensure type safety. Achieved by interface definition in an agreed language.

Ingeniørhøjskolen i Århus Slide 21 af 34 Interface Definition Facilitating Type Safety Server Client Request Reply Client & Server has a contract Client & Server has a contract

Ingeniørhøjskolen i Århus Slide 22 af 34 Session Layer Implements –identification of RPC servers –activation of RPC servers –dispatch of operations Physical Application Presentation Session Transport Network Data link

Object-Oriented Middleware

Ingeniørhøjskolen i Århus Slide 24 af 34 Interface Definition Language Every object-oriented middleware has an interface definition language (IDL) Beyond RPCs, object-oriented IDLs support object types as parameters, failure handling and inheritance Object-oriented middleware provide IDL compilers that create client and server stubs to implement session and presentation layer

Ingeniørhøjskolen i Århus Slide 25 af 34 IDL Example interface Player : Object { typedef struct _Date { short day; short month; short year; } Date; attribute string name; readonly attribute Date DoB; }; interface PlayerStore : Object { exception IDNotFound{}; short save (in Player p); Player load(in short id) raises(IDNotFound); void print(in Player p); };

Ingeniørhøjskolen i Århus Slide 26 af 34 Presentation Layer Implementation Ensuring compatible encoding across platforms In addition to RPC presentation layer implementation, object-oriented middleware needs to –define a transport representation for object references –deal with exceptions –need to marshal inherited attributes

Ingeniørhøjskolen i Århus Slide 27 af 34 Object References HostsProcessesObjects Session Layer Implementation - Mapping of Object references to hosts -Activation & deactivion of objects -Invoctation of requested operation -Synchronization of client & server (state) - Mapping of Object references to hosts -Activation & deactivion of objects -Invoctation of requested operation -Synchronization of client & server (state)

Developing with Object-Oriented Middleware

Ingeniørhøjskolen i Århus Slide 29 af 34 Interface Definition Design Server Stub Generation Client Stub Generation Server Coding Client Coding Server Registration Development Steps SOAP: WSDL Java2WSDL WSDL2JAVA AXIS SOAP

Ingeniørhøjskolen i Århus Slide 30 af 34 Facilitating Access Transparency Client stubs have the same operations as server objects –If implemented … Hence, clients can –make local call to client stub –or local call to server object without changing the call. Middleware can accelerate communication if objects are local by not using the stub –Some Middleware products does this implicitly

Ingeniørhøjskolen i Århus Slide 31 af 34 Facilitating Location Transparency Based on Object identity … and this is Object references Client requests operation from server object identified by object reference No information about physical location of server necessary How to obtain object references? –Need of a registry – an object adapter –Adminstrator uses Middleware tool for registrering COM uses Windows Registry Java RMI daemon CORBA object Adapter SOAP UDDI –RPC’s – daemon “portmap” Client contacts one portmap daemon or broadcasts –Middleware resolves this (in some cases) SOAP UDDI

Ingeniørhøjskolen i Århus Slide 32 af 34 Team.idl included in generates reads IDL-Compiler Teamcl.hh Teamcl.cc Teamsv.cc Teamsv.hh Stub Generation

Ingeniørhøjskolen i Århus Slide 33 af 34 C++ Compiler, Linker Server Client.cc Server.cc C++ Compiler, Linker Client Team.idl included in generates reads IDL-Compiler Teamcl.hh Teamcl.cc Teamsv.cc Teamsv.hh Client and Server Implementation

Ingeniørhøjskolen i Århus Slide 34 af 34 Key Points Middleware builds on the transport layer There are several forms of middleware Object-oriented middleware provide IDLs Object-oriented middleware implements session and presentation layer Presentation layer implementation in client/server stubs is derived from IDL Session layer is implemented in object adapters