Distributed Computing: Distributed Objects/Services Manish Parashar - - PowerPoint PPT Presentation

distributed computing distributed objects services
SMART_READER_LITE
LIVE PREVIEW

Distributed Computing: Distributed Objects/Services Manish Parashar - - PowerPoint PPT Presentation

ECE 451/566- Introduction to Parallel and Distributed Programming Distributed Computing: Distributed Objects/Services Manish Parashar parashar@ece.rutgers.edu Department of Electrical & Computer Engineering Rutgers University


slide-1
SLIDE 1

ECE 451/566- Introduction to Parallel and Distributed Programming

Distributed Computing: Distributed Objects/Services

Manish Parashar parashar@ece.rutgers.edu Department of Electrical & Computer Engineering Rutgers University

slide-2
SLIDE 2

2

Distributed Object Computing

Enable any “agent” in the local system to

directly interact with an object that resides on a remote host. – CORBA – RMI (Java)

Distributed Objects versus Message Passing

– Simplicity – Robustness – Manageability – Extensibility

slide-3
SLIDE 3

3

Distributed Objects: Goals

Let any object reside anywhere in the

network, and allow an application to interact with these objects exactly in the same way as they do with a local objects

Provide the ability to construct an object on

  • ne host and transmit it to another host

Enable an agent on one host to create a new

  • bject on another host.
slide-4
SLIDE 4

4

Remote and local method invocations

invocation invocation remote invocation remote local local local invocation invocation A B C D E F

slide-5
SLIDE 5

5

A remote object and its remote interface

interface remote m1 m2 m3 m4 m5 m6 Data implementation remote

  • bject

{

  • f methods
slide-6
SLIDE 6

6

Distributed Objects: Issues

Creating remote objects Remote method calls

– get class reference – call constructor with arguments – get reference to new object – get method reference – call method with arguments

slide-7
SLIDE 7

7

Distributed Objects: Issues

Data marshalling Arguments by value/by reference Consistency across multiple clients/servers Balancing work-load

slide-8
SLIDE 8

8

Middleware layers

Applications Middleware layers Request reply protocol External data representation Operating System RMI, RPC and events

slide-9
SLIDE 9

9

Middleware: Transparency

Location Communication protocol Computer hardware Operating system Programming language …

slide-10
SLIDE 10

10

Object Interface Specification

Platform/language independent means for

specifying object interfaces

Compiled to server skeletons and client stubs

– Interface definition language (IDL) – Inter-language Unification (LU) – Component Object Model Language (COM)

slide-11
SLIDE 11

11

Example – Interface Definition

// In file Person.idl struct Person { string name; string place; long year; } ; interface PersonList { readonly attribute string listname; void addPerson(in Person p) ; void getPerson(in string name, out Person p); long number(); };

slide-12
SLIDE 12

12

Object Manager

Heart of the distributed object system

– manage object skeletons and object references on the

  • bject server

» CORBA ORB, RMI Registry

– on remote object creation request

» locate skeleton, create new object, store new object, return reference

– on remote method call

» route request to object, return result

– on remote object destruction request

» remove object from store

slide-13
SLIDE 13

13

Object Manager

Special services

– dynamic object activation

» invoke active/deactivate methods provided by the

  • bject based on remote request

– object persistence

» store and restore object state

Object manager may reside on server, both

client and server, or on a separate host

slide-14
SLIDE 14

14

Registration/Naming Service

Acts as an intermediary between object client

and manager – object interface is registered with the service – client queries service by name/type/… – naming service routes request to the appropriate object server – service can also be used for routing method invocations

slide-15
SLIDE 15

15

Other Issues

Object Communication Protocol Development Tools Security

slide-16
SLIDE 16

16

The role of proxy and skeleton in remote method invocation

  • bject A
  • bject B

skeleton Request proxy for B Reply Communication Remote Remote reference Communication module module reference module module for B’s class & dispatcher remote client server

slide-17
SLIDE 17

17

Role of client and server stub procedures in RPC

client Request Reply Communication Communication module module dispatcher service client stub server stub procedure procedure client process server process procedure program

slide-18
SLIDE 18

18

CORBA

Common Object Request Broker Architecture

– Developed by OMG (Object Management Group) (1989, 1991) – Generic framework for developing distributed

  • bject systems

– Platform independent/language independent

slide-19
SLIDE 19

19

CORBA

Object Request Broker (ORB)

– enable clients and server objects to interact – provide servers

» naming services, security services, …

Interface Definition Language (IDL) Dynamic Invocation Interface Internet Inter-Orb Protocol (IIOP)

slide-20
SLIDE 20

20

CORBA overall architecture

CORBA Architecture

slide-21
SLIDE 21

21

CORBA components

Client Idl stubs Interface definition language Dynamic invocation interface Static Idl skeletons dynamic skeletons Interface repository Object request broker

slide-22
SLIDE 22

22

Some CORBA services(i)

Life-cycle service Persistence service Event service Naming service Concurrency control service Relationship service

slide-23
SLIDE 23

23

Some CORBA services(ii)

Externalisation service Query service Licensing service Properties service Time service Security service Trader service

slide-24
SLIDE 24

24

An example of the CORBA Idl

module Tester{ interface Single{ attribute string exname; readonly attribute string location; string returnsVals(in string point); } }

slide-25
SLIDE 25

25

A CORBA application

Server code Skeleton code Client code Stub code ORB Transport mechanism

slide-26
SLIDE 26

26

Developing a CORBA application

Write the IDL descriptions Process IDL Develop the remote object classes Develop server code Develop client code Deploy

slide-27
SLIDE 27

27

The main components of the CORBA architecture

client server proxy

  • r dynamic invocation

implementation repository

  • bject

adapter ORB ORB skeleton

  • r dynamic skeleton

client program interface repository

Request Reply

core core for A Servant A

slide-28
SLIDE 28

28

Java RMI

Remote Object Interfaces Server Implementations RMI Registry Client Stubs and Server Skeleton Serializing Objects

slide-29
SLIDE 29

29

RMI V/s CORBA

Language barrier Virtual Machine Efficiency Elegance Ease-of-use Communication model Support