Presentation 4: Principles of Object-Oriented Middleware.

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

1 Communication in Distributed Systems REKs adaptation of Tanenbaums Distributed Systems Chapter 2.
Local vs. distributed Objects Differences between local and distributed objects in: –References (to objects) –Activation/Deactivation –Migration –Persistence.
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.
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
Software Engineering and Middleware A Roadmap Author: Wolfgang Emmerich Presented by: Sam Malek.
Netprog RPC Overview1 Distributed Program Design n Communication-Oriented Design –Design protocol first. –Build programs that adhere to the protocol.
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.
.NET Mobile Application Development Remote Procedure Call.
Presentation 4: Principles of Object-Oriented Middleware.
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.
CSE 486/586 CSE 486/586 Distributed Systems Remote Procedure Call Steve Ko Computer Sciences and Engineering University at Buffalo.
Remote Procedure Call Andrew Whitaker CSE451. Remote Procedure Call RPC exposes a programming interface across machines: interface PriceService { Price.
Presentation 4: Principles of Object-Oriented Middleware.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
© 2003 Wolfgang Emmerich 1 Validating Distributed Object & Component Designs Wolfgang Emmerich and Nima Kaveh London Software Systems University College.
11 September 2008CIS 340 # 1 Topics To examine the variety of approaches to handle the middle- interaction (continued) 1.RPC-based systems 2.TP monitors.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
Chapter 4: Interprocess Communication‏ Pages
Distributed Systems Concepts and Design Chapter 4.
1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott.
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.
SEMINOR. INTRODUCTION 1. Middleware is connectivity software that provides a mechanism for processes to interact with other processes running on multiple.
Making Remote Calls Remote procedure calls, remote method invocations and their infrastructure.
PolyORB Versatile Middleware for Interoperable Critical Systems PolyORB Versatile Middleware for Interoperable Critical Systems Presentation cover page.
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.
Page 1 Remote Procedure Calls Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
1 Developing Application in Distributed Computing Environment (DCE)
Objektorienteret Middleware (OOMI)
Presentation 4: Principles of Object-Oriented Middleware.
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.
Presentation 4: Principles of Object-Oriented Middleware.
DISTRIBUTED OBJECTS AND REMOTE INVOCATION 1. 2 Topics  Middleware  Remote Method Invocation  Remote Procedure Call.
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.
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Prof. Leonardo Mostarda University of Camerino
CSE 486/586 Distributed Systems Remote Procedure Call
CMSC621: Advanced Operating Systems Advanced Operating Systems
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
Inventory of Distributed Computing Concepts
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
Remote Procedure Call Hank Levy 1.
CS551 Object Oriented Middleware (I) (Chap. 3 of EDO)
Remote Procedure Call Hank Levy 1.
Remote Procedure Call Hank Levy 1.
Presentation transcript:

Presentation 4: Principles of Object-Oriented Middleware

Types of Middleware - and why to use …

Ingeniørhøjskolen i Århus Slide 3 af 23 Rolling your own distributed object We may build directly on the TCP or UDP protocols to build a distributed system In Java: quite easy – thanks to the java.net package – which contains a complete network API incl. socket support for TCP/UDP BUT: if we want to ensure OO – more complex Let us take a look at how this may be done

Ingeniørhøjskolen i Århus Slide 4 af 23 The Basic Class to OO Class public class HelloWorldBasic { public static void main(String[] args) { System.out.println("HelloWorld!"); } HelloWorld – can it be more simple? public class HelloWorldOO { public HelloWorldOO() { } public void sayHelloWorld() { return “HelloWorld"; } public static void main(String[] args) { HelloWorldOO helloWorldOO = new HelloWorldOO(); System.out.println(helloWorldOO.sayHelloWorld()); } To OO:

Ingeniørhøjskolen i Århus Slide 5 af 23 First Issue: Making the Object Distributed - Method Call vs. Object RequestCalledCalled Stub CallerCalledCalledCaller Caller Transport Layer (e.g. TCP or UDP)

Ingeniørhøjskolen i Århus Slide 6 af 23 Repetition Group Work You already know how to do this from Dist 10 Minutes group work – followed by discussion –On paper – using pseudo code – describe what to code in order to make HelloWorldOO distributed depending solely on the datagram API (UDP) technology –Optimize the code for access transparency –Consider introducing location transparency –Consider introducing scalability transparency –Change the interface to allow for returning a HelloWorldData object with: Name Greetings Text java.util.Data object –Consider how to allow a C++ client to access the code –Consider the problems of your design – what might fail?

Ingeniørhøjskolen i Århus Slide 7 af 23 Direct Use of Network Protocols implies Manual mapping of complex request parameters to byte streams or datagrams – 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, Security, Concurrency, Scalability, Reliability

Ingeniørhøjskolen i Århus Slide 8 af 23 = Reason for Using 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 “Gets you of the hook” – concerning the nasty stuff in network programming

Ingeniørhøjskolen i Århus Slide 9 af 23 Types 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/EJB –.NET Remoting –(SOAP) First look at RPCs to understand origin of object-oriented middleware

Ingeniørhøjskolen i Århus Slide 10 af 23 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 RPC is the “legacy” of oo middleware

Ingeniørhøjskolen i Århus Slide 11 af 23 Type Safety and Heterogenity 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 a mutually agreed upon language Supports Heterogenity

Ingeniørhøjskolen i Århus Slide 12 af 23 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 13 af 23 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 14 af 23 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. NOT object-oriented, no support for exceptions or advanced error handling

Object-Oriented Middleware

Ingeniørhøjskolen i Århus Slide 16 af 23 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 (exceptions) 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 17 af 23 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 18 af 23 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 19 af 23 Object References HostsProcessesObjects Session Layer Implementation - Mapping of Object references to hosts -Activation & deactivion of objects -Invocation of requested operation -Synchronization of client & server (state) - Mapping of Object references to hosts -Activation & deactivion of objects -Invocation of requested operation -Synchronization of client & server (state)

Developing with Object-Oriented Middleware

Ingeniørhøjskolen i Århus Slide 21 af 23 Interface Definition Design Server Stub Generation Client Stub Generation Server Coding Client Coding Server Registration Development Steps

Ingeniørhøjskolen i Århus Slide 22 af 23 Team.idl included in generates reads IDL-Compiler Teamcl.hh Teamcl.cc Teamsv.cc Teamsv.hh Stub Generation Team.wsdl Team.java Team.midl

Ingeniørhøjskolen i Århus Slide 23 af 23 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