Distributed Systems Principles and Paradigms

Similar documents
Distributed Object-Based. Systems. Chapter 9

Distributed Middleware. Distributed Objects

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Today: Distributed Objects. Distributed Objects

Today: Distributed Middleware. Middleware

Electronic Payment Systems (1) E-cash

Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS

Limitations of Object-Based Middleware. Components in CORBA. The CORBA Component Model. CORBA Component

Distributed Systems Principles and Paradigms. Distributed Object-Based Systems. Remote distributed objects. Remote distributed objects

Advanced Topics in Operating Systems

DS 2009: middleware. David Evans

Lecture 5: Object Interaction: RMI and RPC

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed Object-based Systems CORBA

Today: More Case Studies DCOM

Distributed Technologies - overview & GIPSY Communication Procedure

Distributed Systems. Chapter 02

CORBA (Common Object Request Broker Architecture)

Distributed Systems Principles and Paradigms

Distributed Objects. Object-Oriented Application Development

Lecture 06: Distributed Object

1.264 Lecture 16. Legacy Middleware

Communication. Distributed Systems Santa Clara University 2016

Advanced Distributed Systems

Verteilte Systeme (Distributed Systems)

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Advanced Lectures on knowledge Engineering

COMMUNICATION IN DISTRIBUTED SYSTEMS

DISTRIBUTED SYSTEMS. Second Edition. Andrew S. Tanenbaum Maarten Van Steen. Vrije Universiteit Amsterdam, 7'he Netherlands PEARSON.

Distributed Systems Principles and Paradigms

Appendix A - Glossary(of OO software term s)

Distributed Systems Principles and Paradigms. Chapter 04: Communication

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms. Chapter 04: Communication

Distributed Systems Principles and Paradigms. Chapter 01: Introduction. Contents. Distributed System: Definition.

Distributed Systems. The main method of distributed object communication is with remote method invocation

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems

Module 1 - Distributed System Architectures & Models

Outline. COM overview. DCOM overview. Comparison DCOM and Corba

Distributed Systems Principles and Paradigms. Chapter 01: Introduction

Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5

CHAPTER - 4 REMOTE COMMUNICATION

DISTRIBUTED SYSTEMS [COMP9243] Distributed Object based: Lecture 7: Middleware. Slide 1. Slide 3. Message-oriented: MIDDLEWARE

Integrating Fragmented Objects into a CORBA Environment

MODELS OF DISTRIBUTED SYSTEMS

Communication. Overview

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK

MODELS OF DISTRIBUTED SYSTEMS

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1

Analysis of Passive CORBA Fault Tolerance Options for Real-Time Applications Robert A. Kukura, Raytheon IDS Paul V. Werme, NSWCDD

Distributed Environments. CORBA, JavaRMI and DCOM

Chapter 4 Communication

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

Verteilte Systeme (Distributed Systems)

Chapter 5: Distributed objects and remote invocation

Mohsin Qasim Syed Abbas Ali

RMI: Design & Implementation

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

Distributed Systems Principles and Paradigms

(D)COM Microsoft s response to CORBA. Alessandro RISSO - PS/CO

Distributed Systems Middleware

RPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call

A Report on RMI and RPC Submitted by Sudharshan Reddy B

Distributed Programming with RMI. Overview CORBA DCOM. Prepared By: Shiba R. Tamrakar

Software Architecture Patterns

CS 403/534 Distributed Systems Midterm April 29, 2004

Distributed Objects. Chapter Distributing Objects Overview

SAI/ST course Distributed Systems

CA464 Distributed Programming

Networks and Operating Systems Chapter 3: Remote Procedure Call (RPC)

Distributed Computing

A NEW DISTRIBUTED COMPOSITE OBJECT MODEL FOR COLLABORATIVE COMPUTING

COMERA: COM Extensible Remoting Architecture

Distributed Systems. Edited by. Ghada Ahmed, PhD. Fall (3rd Edition) Maarten van Steen and Tanenbaum

DISTRIBUTED SYSTEMS [COMP9243] Lecture 7: Middleware MIDDLEWARE. Distributed Object based: Slide 1. Slide 3. Message-oriented: Slide 4

A Location Service for Worldwide Distributed Objects

CHAPTER 7 COM and.net

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform.

Introduction to Distributed Systems (DS)

DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK. UNIT I PART A (2 marks)

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 22: Remote Procedure Call (RPC)

6 Distributed Object-Based Systems

Multiprocessors 2007/2008

Implementation of GDMO to IDL Translator and CORBA/CMIP Gateway for TMN/CORBA Integration

Distributed Systems Question Bank UNIT 1 Chapter 1 1. Define distributed systems. What are the significant issues of the distributed systems?

Java RMI Middleware Project

CORBA vs. DCOM. Master s Thesis in Computer Science

IIOP: Internet Inter-ORB Protocol Make your code accessible even in future, with the next universal protocol

DISTRIBUTED COMPUTER SYSTEMS

Outline. Definition of a Distributed System Goals of a Distributed System Types of Distributed Systems

Lecture 15: Network File Systems

UNIT 4 CORBA 4/2/2013 Middleware 59

Chapter 15: Distributed Communication. Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration

Distribution Transparencies For Integrated Systems*

Object Interaction. Object Interaction. Introduction. Object Interaction vs. RPCs (2)

Chapter 4 Communication

Distributed Object-based Systems CORBA

Transcription:

Distributed Systems Principles and Paradigms Chapter 09 (version 27th November 2001) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20. Tel: (020) 444 7784 E-mail:steen@cs.vu.nl, URL: www.cs.vu.nl/ steen/ 01 Introduction 02 Communication 03 Processes 04 Naming 05 Synchronization 06 Consistency and Replication 07 Fault Tolerance 08 Security 09 Distributed Object-Based Systems 10 Distributed File Systems 11 Distributed Document-Based Systems 12 Distributed Coordination-Based Systems 00 1 /

Distributed Object-Based Systems CORBA DCOM Globe 09 1 Distributed Object-Based Systems/

CORBA CORBA: Common Object Request Broker Architecture Background: Developed by the Object Management Group (OMG) in response to industrial demands for objectbased middleware Currently in version #2.4 with #3 (almost) done CORBA is a specification: different implementations of CORBA exist Very much the work of a committee: there are over 800 members of the OMG and many of them have a say in what CORBA should look like Essence: CORBA provides a simple distributed-object model, with specifications for many supporting services it may be here to stay (for a couple of years) 09 2 Distributed Object-Based Systems/9.1 CORBA

CORBA Overview (1/2) Client machine Client application Server machine Object implementation Static IDL proxy Dynamic Invocation Interface ORB interface Object adapter Skeleton Dynamic Skeleton Interface ORB interface Client ORB Local OS Server ORB Local OS Network Object Request Broker (ORB): CORBA s object broker that connects clients, objects, and services Proxy/Skeleton: Precompiled code that takes care of (un)marshaling invocations and results Dynamic Invocation/Skeleton Interface (DII/DSI): To allow clients to construct invocation requests at runtime instead of calling methods at a proxy, and having the server-side reconstruct those request into regular method invocations Object adapter: Server-side code that handles incoming invocation requests. 09 3 Distributed Object-Based Systems/9.1 CORBA

CORBA Overview (2/2) Interface repository: Database containing interface definitions and which can be queried at runtime Implementation repository: Database containing the implementation (code, and possibly also state) of objects. Effectively: a server that can launch object servers. 09 4 Distributed Object-Based Systems/9.1 CORBA

CORBA Object Model Essence: CORBA has a traditional remote-object model in which an object residing at an object server is remote accessible through proxies Observation: All CORBA specifications are given by means of interface descriptions, expressed in an IDL. CORBA follows an interface-based approach to objects: Not the objects, but interfaces are the really important entities An object may implement one or more interfaces Interface descriptions can be stored in an interface repository, and looked up at runtime Mappings from IDL to specific programming are part of the CORBA specification (languages include C, C++, Smalltalk, Cobol, Ada, and Java. 09 5 Distributed Object-Based Systems/9.1 CORBA

CORBA Services Service Collection Query Concurrency Transaction Description Facilities for grouping objects into lists, queue, sets, etc. Facilities for querying collections of objects in a declarative manner Facilities to allow concurrent access to shared objects Flat and nested transactions on method calls over multiple objects Event Facilities for asynchronous communication through events Notification Externalization Life cycle Licensing Naming Property Trading Persistence Relationship Security Time Advanced facilities for event-based asynchronous communication Facilities for marshaling and unmarshaling of objects Facilities for creation, deletion, copying, and moving of objects Facilities for attaching a license to an object Facilities for systemwide naming of objects Facilities for associating (attribute, value) pairs with objects Facilities to publish and find the services an object has to offer Facilities for persistently storing objects Facilities for expressing relationships between objects Mechanisms for secure channels, authorization, and auditing Provides the current time within specified error margins 09 6 Distributed Object-Based Systems/9.1 CORBA

Communication Models (1/2) Object invocations: CORBA distinguishes three different forms of direct invocations: Request type Failure sem. Description Synchronous At-most-once Caller blocks One-way Unreliable Nonblocking call syn- Deferred chronous At-most-once Nonblocking, but can pickup results later Event communication: There are also additional facilities by means of event channels: Push event to consumers Consumer Consumer Consumer Consumer Event channel Ask suppliers for new event Event channel Supplier Supplier Supplier Supplier Supplier Supplier 09 7 Distributed Object-Based Systems/9.1 CORBA

Communication Models (2/2) Messaging facilities: reliable asynchronous and persistent method invocations: 1. Call by the application Client proxy Client ORB Client application Callback interface 4. Call by the ORB 3. Response from server 2. Request to server 1. Call by the application Client proxy Client ORB Client application Polling interface 4. Call by the application 3. Response from server 2. Request to server 09 8 Distributed Object-Based Systems/9.1 CORBA

Processes Most aspects of processes for in CORBA have been discussed in previous classes. What remains is the concept of interceptors: Client application Client proxy Invocation request Request-level interceptor Message-level interceptor Client ORB Local OS To server Request-level: Allows you to modify invocation semantics (e.g., multicasting) Message-level: Allows you to control message-passing between client and server (e.g., handle reliability and fragmentation) 09 9 Distributed Object-Based Systems/9.1 CORBA

Naming Important: In CORBA, it is essential to distinguish specification-level and implementation-level object references Specification level: An object reference is considered to be the same as a proxy for the referenced object having an object reference means you can directly invoke methods; there is no separate clientto-object binding phase Implementation level: When a client gets an object reference, the implementation ensures that, one way or the other, a proxy for the referenced object is placed in the client s address space: "!$#%&('*),+ -.0/21 35476-8(9-8;:=<$/?>'"6@/BADCE Conclusion: Object references in CORBA used to be highly implementation dependent: different implementations of CORBA could normally not exchange their references. 09 10 Distributed Object-Based Systems/9.1 CORBA

Interoperable Object References (1/2) Observation: Recognizing that object references are implementation dependent, we need a separate referencing mechanism to cross ORB boundaries Solution: Object references passed from one ORB to another are transformed by the bridge through which they pass (different transformation schemes can be implemented) Observation: Passing an object reference from ORB A to ORB B circumventing the A-to-B bridge may be useless if ORB B doesn t understand 09 11 Distributed Object-Based Systems/9.1 CORBA

Interoperable Object References (2/2) Observation: To allow all kinds of different systems to communicate, we standardize the reference that is passed between bridges: Tagged Profile Interoperable Object Reference (IOR) Repository identifier Profile ID Profile IIOP version Host Port Object key Components POA identifier Object identifier Other serverspecific information 09 12 Distributed Object-Based Systems/9.1 CORBA

Naming Service Essence: CORBA s naming service allows servers to associate a name to an object reference, and have clients subsequently bind to that object by resolving its name Observation: In most CORBA implementations, object references denote servers at specific hosts; naming makes it easier to relocate objects Observation: In the naming graph all nodes are objects; there are no restrictions to binding names to objects CORBA allows arbitrary naming graphs Question: How do you imagine cyclic name resolution stops? Observation: There is no single root; an initial context node is returned through a special call to the ORB. Also: the naming service can operate across different ORBs interoperable naming service 09 13 Distributed Object-Based Systems/9.1 CORBA

Fault Tolerance Essence: Mask failures through replication, by putting objects into object groups. Object groups are transparent to clients: they appear as normal objects. This approach requires a separate type of object reference: Interoperable Object Group Reference: Interoperable Object Group Reference (IOGR) Repository identifier Profile ID Profile-1 Profile ID Profile-N IIOP ver. Host-1 Port-1 Object key-1 Components IIOP ver. Host-N Port-N Object key-n Components TAG PRIMARY Other groupspecific information TAG BACKUP Other groupspecific information Note: IOGRs have the same structure as IORs; the main difference is that they are used differently. In IORs an additional profile is used as an alternative; in IOGR, it denotes another replica. 09 14 Distributed Object-Based Systems/9.1 CORBA

Security Essence: Allow the client and object to be mostly unaware of all the security policies, except perhaps at binding time; the ORB does the rest. Specific policies are passed to the ORB as (local) objects and are invoked when necessary: Client application Security service Security service Policy object Policy object Set of client-specific policy objects Set of object-specific policy objects Object implementation Policy object Policy object Security service Security service Client ORB Local OS Set of relevant ORB security services Server ORB Local OS Invocation Network Examples: Type of message protection, lists of trusted parties. 09 15 Distributed Object-Based Systems/9.1 CORBA

Distributed COM DCOM: Distributed Component Object Model Microsoft s solution to establishing inter-process communication, possibly across machine boundaries. Supports a primitive notion of distributed objects Evolved from early Windows versions to current NT-based systems (including Windows 2000) Comparable to CORBA s object request broker 09 16 Distributed Object-Based Systems/9.2 Distributed COM

DCOM Overview (1/2) Somewhat confused? DCOM is related to many things that have been introduced by Microsoft in the past couple of years: ActiveX OLE COM Embedding Interprocess data transfer Persistent storage Documents Persistent references Document linking Grouping (Controls) Object activation Core COM library In-place editing Drag and drop Scripting DCOM: Adds facilities to communicate across process and machine boundaries. 09 17 Distributed Object-Based Systems/9.2 Distributed COM

DCOM Overview (2/2) Client machine Object server SCM Client application Class object Object SCM Proxy marshaler Client proxy COM Proxy marshaler Object stub COM Registry Local OS Local OS Registry Microsoft RPC Network SCM: Service Control Manager, responsible for activating objects (cf., to CORBA s implementation repository). Proxy marshaler: handles the way that object references are passed between different machines 09 18 Distributed Object-Based Systems/9.2 Distributed COM

COM Object Model An interface is a collection of semantically related operations Each interface is typed, and therefore has a globally unique interface identifier A client always requests an implementation of an interface: Locate a class that implements the interface Instantiate that class, i.e., create an object Throw the object away when the client is done 09 19 Distributed Object-Based Systems/9.2 Distributed COM

DCOM Services CORBA DCOM/COM+ Windows 2000 Collection ActiveX Data Objects Query None Concurrency Thread concurrency Transaction COM+ Automatic Distributed Transaction Transactions Coordinator Event COM+ Events Notification COM+ Events Externalization Marshaling utilities Life cycle Class factories, JIT activation Licensing Special class factories Naming Monikers Active Directory Property None Active Directory Trading None Active Directory Persistence Structured storage Database access Relationship None Database access Security Authorization SSL, Kerberos Time None None Note: COM+ is effectively COM plus services that were previously available in an ad-hoc fashion 09 20 Distributed Object-Based Systems/9.2 Distributed COM

Communication Models Object invocations: Synchronous remote-method calls with at-most-once semantics. Asynchronous invocations are supported through a polling model, as in CORBA. Event communication: Similar to CORBA s pushstyle model: Supplier Event class object Consumer m_event Interface containing m_event Event object Consumer m_event Invocation is stored Event store Invocation is passed to consumer Object implementing m_event Messaging: Completely analogous to CORBA messaging. 09 21 Distributed Object-Based Systems/9.2 Distributed COM

Processes: Passing Object References Observation: Objects are referenced by means of a local interface pointer. The question is how such pointers can be passed between different machines: Process A Client application Marshaled client proxy Process B Client application Client proxy Proxy (un)marshaler Proxy (un)marshaler Client proxy Binding information Same binding information Object stub Object Object server Question: Where does the proxy marshaler come from? Do we always need it? 09 22 Distributed Object-Based Systems/9.2 Distributed COM

Naming: Monikers Observation: DCOM can handle only objects as temporary instances of a class. To accommodate objects that can outlive their client, something else is needed. Moniker: A hack to support real objects A moniker associates data (e.g., a file), with an application or program Monikers can be stored A moniker can contain a binding protocol, specifying how the associated program should be launched with respect to the data. 1 Client Calls BindMoniker at moniker 2 Moniker Lookup CLSID and tell SCM to create object 3 SCM Loads class object 4 Class object Creates object, returns int. pointer 5 Moniker Instructs object to load previously stored state 6 Object Loads its state from file 7 Moniker Returns interface pointer of object to client 09 23 Distributed Object-Based Systems/9.2 Distributed COM

Active Directory Essence: a worldwide distributed directory service, but one that does not provide location transparency. Basics: Associate a directory service (called domain controller) with each domain; look up the controller using a normal DNS query: DNS 1. Ask for host address of domain controller in a given domain Client 2. Requested address 3. LDAP query 4. LDAP reply Domain controller Note: Controller is implemented as an LDAP server 09 24 Distributed Object-Based Systems/9.2 Distributed COM

Fault Tolerance Automatic transactions: Each class object (from which objects are created), has a transaction attribute that determines how its objects behave as part of a transaction: Attr. value REQUIRES NEW REQUIRED SUPPORTED NOT SUPPORTED DISABLED Description A new transaction is always started at each invocation A new transaction is started if not already done so Join a transaction only if caller is already part of one Never join a transaction (no transaction support) Never join a transaction, even if told to do so Note: Transactions are essentially executed at the level of a method invocation. 09 25 Distributed Object-Based Systems/9.2 Distributed COM

Security (1/2) Declarative security: Register per object what the system should enforce with respect to authentication. Authentication is associated with users and user groups. There are different authentication levels: Auth. level Description NONE No authentication is required CONNECT Authenticate client when first connected to server CALL Authenticate client at each invocation PACKET Authenticate all data packets PACKET INTEGRITY Authenticate data packets and do integrity check PACKET PRIVACY Authenticate, integrity-check, and encrypt data packets 09 26 Distributed Object-Based Systems/9.2 Distributed COM

Security (2/2) Delegation: A server can impersonate a client depending on a level: Impersonation ANONYMOUS IDENTIFY IMPERSONATE DELEGATE Description The client is completely anonymous to the server The server knows the client and can do access control checks The server can invoke local objects on behalf of the client The server can invoke remote objects on behalf of the client Note: There is also support for programmatic security by which security levels can be set by an application, as well as the required security services (see book). 09 27 Distributed Object-Based Systems/9.2 Distributed COM

Globe Experimental wide-area system currently being developed at Vrije Universiteit Unique for its focus on scalability by means of truly distributed objects Prototype version up and running across multiple machines distributed in NL and across Europe and the US. 09 28 Distributed Object-Based Systems/Globe

Object Model (1/3) Essence: A Globe object is a physically distributed shared object: the object s state may be physically distributed across several machines Distributed shared object Local object Network Process Interface Local object: A nondistributed object residing a single address space, often representing a distributed shared object Contact point: A point where clients can contact the distributed object; each contact point is described through a contact address 09 29 Distributed Object-Based Systems/Globe

Object Model (2/3) Observation: Globe attempts to separate functionality from distribution by distinguishing different local subobjects: Same interface as implemented by semantics subobject Control subobject Replication subobject Semantics subobject Communication subobject Communication with other local objects Semantics subobject: Contains the methods that implement the functionality of the distributed shared object Communication subobject: Provides a (relatively simple), network-independent interface for communication between local objects 09 30 Distributed Object-Based Systems/Globe

Object Model (3/3) Same interface as implemented by semantics subobject Control subobject Replication subobject Semantics subobject Communication subobject Communication with other local objects Replication subobject: Contains the implementation of an object-specific consistency protocol that controls exactly when a method on the semantics subobject may be invoked Control subobject: Connects the user-defined interfaces of the semantics subobject to the generic, predefined interfaces of the replication subobject 09 31 Distributed Object-Based Systems/Globe

Client-to-Object Binding Client 3. Select address Class object Local object 1. Name Object handle 2. Object handle Addresses & protocols Naming service Location service Register contact address 5. Make contact 4. Load & instantiate class(es) (Trusted) class repository Distributed shared object Observation: Globe s contact addresses correspond to CORBA s object references 09 32 Distributed Object-Based Systems/Globe

Globe Services Service Possible implementation Av? Collection Separate object that holds references No to other objects Concurrency Each object implements its own concurrency control strategy No Transaction Separate object representing a No transaction manager Event/Notif. Separate object per group of No events (as in DCOM) Externalization Each object implements its own Yes marshaling routines Life cycle Separate class objects combined Yes with per-object implementations Licensing Implemented by each object separately No Naming Separate service, implemented by Yes a collection of naming objects Property Separate service, implemented by No a collection of directory objects Persistence Implemented on a per-object basis Yes Security Implemented per object, combined Yes with (local) security services Replication Implemented on a per-object basis Yes Fault tolerance Implemented per object combined with fault-tolerant servers Yes 09 33 Distributed Object-Based Systems/Globe

Object References Essence: Globe uses location-independent object handles which are to be resolved to contact addresses (which describes where and how an object can be contacted): Associated with a contact point of the distributed object Specifies (for example) a transport-level network address to which the object will listen Contains an implementation handle, specifying exactly what the client should implement if it wants to communicate through the contact point:! " # $% &'' ''(*),+- +/0)21 #+-3)!,4) 4& #+56)21 879) '. slave/master-slave/tcp/ip Observation: Objects in Globe have their own objectspecific implementations; there is no standard proxy that is implemented for all clients 09 34 Distributed Object-Based Systems/Globe

Naming Objects Observation: Globe separates naming from locating objects (as described in Chapter 04). The current naming service is based on DNS, using TXT records for storing object handles Observation: The location service is implemented as a generic, hierarchical tree, similar to the approach explained in Chapter 04. 09 35 Distributed Object-Based Systems/Globe

Caching and Replication Observation: Here s where Globe differs from many other systems: The organization of a local object is such that replication is inherently part of each distributed shared object All replication subobjects have the same interface: Method 0! E! Description Called to synchronize replicas of the semantics subobjects, obtain locks if necessary, etc. Provide marshaled arguments of a specific method, and pass invocation to local objects in other address spaces Called after the control subobject has invoked a specific method at the semantics subobject This approach allows to implement any objectspecific caching/replication strategy 09 36 Distributed Object-Based Systems/Globe

Security Essence: Additional security subobject checks for authorized communication, invocation, and parameter values. Globe can be integrated with existing security services: Security domain of B Process B Principal object of process B Local object B 7 6 Distributed shared object 5 Security domain of A Local object A 4 1 2 3 Kerberos Process A Principal object of process A 09 37 Distributed Object-Based Systems/Globe

Comparison 09 38 Distributed Object-Based Systems/Globe

Issue CORBA DCOM Globe Design goals Interoperability Functionality Scalability Object model Remote objects Remote objects Distributed objects Services Many of its own From environment Few Interfaces IDL based Binary Binary Sync. communication Yes Yes Yes Async. communication Yes Yes No Callbacks Yes Yes No Events Yes Yes No Messaging Yes Yes No Object server Flexible (POA) Hard-coded Object dependent Directory service Yes Yes No Trading service Yes No No Naming service Yes Yes Yes Location service No No Yes Object reference Object s location Interface pointer True identifier Synchronization Transactions Transactions Only intra-object Replication support Separate server None Separate subobject Transactions Yes Yes No Fault tolerance By replication By transactions By replication Recovery support Yes By transactions No