220 likes | 367 Views
Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke. References. A. Tanenbaum and M. van Steen (TvS) Distributed Systems: Principles and Paradigms Prentice-Hall 2002 G. Coulouris, J. Dollimore and T. Kindberg (CDK)
E N D
Introduction to Distributed Systemsand CORBA Slides for CSCI 3171 Lectures E. W. Grundke
References • A. Tanenbaum and M. van Steen (TvS) • Distributed Systems: Principles and Paradigms • Prentice-Hall 2002 • G. Coulouris, J. Dollimore and T. Kindberg (CDK) • Distributed System: Concepts and Design • Addison-Wesley 2001
Acknowledgement • Some slides from: • TvS: http://www.prenhall.com/divisions/esm/app/author_tanenbaum/custom/dist_sys_1e/ • CDK: http://www.cdk3.net/ig/beida/index.html
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
Heterogeneity • Applies 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
Transparency in a Distributed System Different forms of transparency in a distributed system. TvS 1.4
Layered Protocols: IP • Layers, interfaces, and protocols in the Internet model.
Layered Protocols: OSI • Layers, interfaces, and protocols in the OSI model. 2-1 TvS 2.2
Middleware Protocols • An adapted reference model for networked communication. 2-5 TvS 2.6
Middleware • A 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
Middleware • General structure of a distributed system as middleware. 1-22 TvS 1.24
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
Middleware Programming Models • Remote 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
References • A. Tanenbaum and M. van Steen (TvS) • Distributed Systems: Principles and Paradigms • Prentice-Hall 2002 • G. Coulouris, J. Dollimore and T. Kindberg (CDK) • Distributed System: Concepts and Design • Addison-Wesley 2001 • Kate Keahey’s Tutorial on CORBA • http://www.cs.indiana.edu/hyplan/kksiazek/tuto.html • OMG (Object Management Group) Documentation • http://www.omg.org/
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.)
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) • ...
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....
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
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!)
CORBA Block Diagram • From http://www.omg.org/gettingstarted/Images/ORBdiagram.gif: