22
Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

Embed Size (px)

DESCRIPTION

3 Acknowledgement Some slides from : TvS: CDK:

Citation preview

Page 1: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

Introduction to Distributed Systems

and CORBA Slides for CSCI 3171 Lectures

E. W. Grundke

Page 2: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

2

ReferencesA. Tanenbaum and M. van Steen (TvS)Distributed Systems: Principles and ParadigmsPrentice-Hall 2002

G. Coulouris, J. Dollimore and T. Kindberg (CDK)Distributed System: Concepts and DesignAddison-Wesley 2001

Page 4: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

Distributed Systems

Page 5: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

5

What is a Distributed System?

A collection of independent computers that appears to its users as a single coherent system.

Examples: Distributed object-based systems (CORBA, DCOM)Distributed file systems (NFS)etc.

TvS 1.2

Page 6: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

6

HeterogeneityApplies to all of the following:

– networks• Internet protocols mask the differences between networks

– computer hardware• e.g. data types such as integers can be represented

differently– operating systems

• e.g. the API to IP differs from one OS to another– programming languages

• data structures (arrays, records) can be represented differently

– implementations by different developers• they need agreed standards so as to be able to interwork

CDK Ch. 1.4

Page 7: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

7

Transparency in a Distributed System

Different forms of transparency in a distributed system.

Transparency Description

Access Hide differences in data representation and how a resource is accessed

Location Hide where a resource is located

Migration Hide that a resource may move to another location

Relocation Hide that a resource may be moved to another location while in use

Replication Hide that a resource is replicated

Concurrency Hide that a resource may be shared by several competitive users

Failure Hide the failure and recovery of a resource

Persistence Hide whether a (software) resource is in memory or on disk

TvS 1.4

Page 8: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

8

Layered Protocols: IPLayers, interfaces, and protocols in the Internet model.

Page 9: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

9

Layered Protocols: OSILayers, interfaces, and protocols in the OSI model.

2-1

TvS 2.2

Page 10: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

10

Middleware Protocols

An adapted reference model for networked communication.

2-5

TvS 2.6

Page 11: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

11

MiddlewareA software layer that

– masks the heterogeneity of systems– provides a convenient programming abstraction– provides protocols for providing general-purpose services

to more specific applications, eg.• high-level communication protocols

– remote procedure calls (RPC)– remote method invocation (RMI)

• authentication protocols• authorization protocols• distributed commit protocols• distributed locking protocols

Page 12: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

12

MiddlewareGeneral structure of a distributed system as middleware.

1-22

TvS 1.24

Page 13: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

13

Middleware and Openness

In an open middleware-based distributed system, the protocols used by each middleware layer should be the same, as well as the interfaces they offer to applications.

1.23

TvS 1.25

Page 14: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

14

Middleware Programming ModelsRemote Calls

– remote Procedure Calls (RPC) – distributed objects and Remote Method

Invocation (RMI)• eg. Java RMI

Common Object Request Broker Architecture (CORBA) – cross-language RMI

Other programming models– remote event notification– remote SQL access– distributed transaction processing

CDK Ch 1

Page 15: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

CORBA

(Common Object Request Broker Architecture)

Page 16: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

16

ReferencesA. Tanenbaum and M. van Steen (TvS)Distributed Systems: Principles and ParadigmsPrentice-Hall 2002

G. Coulouris, J. Dollimore and T. Kindberg (CDK)Distributed System: Concepts and DesignAddison-Wesley 2001

Kate Keahey’s Tutorial on CORBAhttp://www.cs.indiana.edu/hyplan/kksiazek/tuto.html

OMG (Object Management Group) Documentationhttp://www.omg.org/

Page 17: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

17

CORBA• Common Object Request Broker Architecture• Language/platform-independent RMI and more• Specification of the OMG (Object Management

Group) – non-profit consortium– formed in 1989– now ~800 members (but not Microsoft)– CORBA 1: 1990– CORBA 2: 1996

• (These slides deal with a small subset only.)

Page 18: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

18

CORBA RMI• ORB (Object Request Broker)

– communication infrastructure• IDL (Interface Definition Language):

– language for describing a remote object’s properties– platform-independent, language-independent– looks like C– declarative only; no implementation

(no executable code)

...

Page 19: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

19

CORBA RMI (cont.)• General Inter-ORB Protocol (GIOP)

– request/reply protocol– incl. an xdr named CDR– remote object references– TCP/IP version is Internet Inter-ORB Protocol

(IIOP) (port 900)• CORBA services

– Naming Service (like Java’s RMI Registry)– Event Service– etc.

...

Page 20: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

20

CORBA RMI (cont.)• CORBA Objects

– exist in the server– accessible by remote object references– implement IDL interfaces– have methods that are callable remotely– can be implemented in non-OO languages

Page 21: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

21

CORBA IDL• Entities

– modules, interfaces, types, attributes, method signatures

• Resembles C/C++– but new keywords: interface, in, out, inout, raises etc.

• Supports C++ preprocessing• Supports inheritance

– interfaces can extend other interfaces• Compiles to stubs/skeletons using language-specific tools

(for java: idlj)– mappings into various languages

(not just OO-languages!)

Page 22: Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke

22

CORBA Block DiagramFrom http://www.omg.org/gettingstarted/Images/ORBdiagram.gif: