Distributed Object-Based Systems Chapter 9 Overview of CORBA The - - PowerPoint PPT Presentation

distributed object based systems
SMART_READER_LITE
LIVE PREVIEW

Distributed Object-Based Systems Chapter 9 Overview of CORBA The - - PowerPoint PPT Presentation

Distributed Object-Based Systems Chapter 9 Overview of CORBA The global architecture of CORBA. Object Model The general organization of a CORBA system. Corba Services Service Description Collection Facilities for grouping objects into


slide-1
SLIDE 1

Distributed Object-Based Systems

Chapter 9

slide-2
SLIDE 2

Overview of CORBA

The global architecture of CORBA.

slide-3
SLIDE 3

Object Model

The general organization of a CORBA system.

slide-4
SLIDE 4

Corba Services

Overview of CORBA services.

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

slide-5
SLIDE 5

Object Invocation Models

Invocation models supported in CORBA.

Caller continues immediately and can later block until response is delivered At-most-once Deferred synchronous Caller continues immediately without waiting for any response from the server Best effort delivery One-way Caller blocks until a response is returned or an exception is raised At-most-once Synchronous Description Failure semantics Request type

slide-6
SLIDE 6

Event and Notification Services (1)

The logical organization of suppliers and consumers

  • f events, following the push-style model.
slide-7
SLIDE 7

Event and Notification Services (2)

The pull-style model for event delivery in CORBA.

slide-8
SLIDE 8

Messaging (1)

CORBA's callback model for asynchronous method invocation.

slide-9
SLIDE 9

Messaging (2)

CORBA'S polling model for asynchronous method invocation.

slide-10
SLIDE 10

Interoperability

GIOP message types.

Part (fragment) of a larger message Both Fragment Contains information on an error Both MessageError Indication that connection will be closed Both CloseConnection Indicates client no longer expects a reply Client CancelRequest Contains location information on an object Server LocateReply Contains a request on the exact location of an object Client LocateRequest Contains the response to an invocation Server Reply Contains an invocation request Client Request Description Originator Message type

slide-11
SLIDE 11

Clients

Logical placement of interceptors in CORBA.

slide-12
SLIDE 12

Portable Object Adaptor (1)

Mapping of CORBA object identifiers to servants. a) The POA supports multiple servants. b) The POA supports a single servant.

slide-13
SLIDE 13

Portable Object Adaptor (2)

Changing a C++ object into a CORBA object.

My_servant *my_object; // Declare a reference to a C++ object CORBA::Objectid_var oid; // Declare a CORBA identifier my_object = new MyServant; // Create a new C++ object

  • id = poa ->activate_object (my_object);

// Register C++ object as CORBA OBJECT

slide-14
SLIDE 14

Agents

CORBA's overall model of agents, agent systems, and regions.

slide-15
SLIDE 15

Object References (1)

The organization of an IOR with specific information for IIOP.

slide-16
SLIDE 16

Object References (2)

Indirect binding in CORBA.

slide-17
SLIDE 17

Caching and Replication

The (simplified) organization of a DCS.

slide-18
SLIDE 18

Object Groups

A possible organization of an IOGR for an object group having a primary and backups.

slide-19
SLIDE 19

An Example Architecture

An example architecture of a fault-tolerant CORBA system.

slide-20
SLIDE 20

Security (1)

The general organization for secure object invocation in CORBA.

slide-21
SLIDE 21

Security (2)

The role of security interceptors in CORBA.

slide-22
SLIDE 22

Overview of DCOM

The general organization of ActiveX, OLE, and COM.

slide-23
SLIDE 23

Object Model

The difference between language-defined and binary interfaces.

slide-24
SLIDE 24

Tape Library and Registry

The overall architecture of DCOM.

slide-25
SLIDE 25

DCOM Services

Overview of DCOM services in comparison to CORBA services.

None None Time SSL, Kerberos Authorization Security Database access None Relationship Database access Structured storage Persistence Active Directory None Trading Active Directory None Property Active Directory Monikers Naming

  • Special class factories

Licensing

  • Class factories, JIT activation

Life cycle

  • Marshaling utilities

Externalization

  • COM+ Events

Notification

  • COM+ Events

Event Distributed Transaction Coordinator COM+ Automatic Transactions Transaction

  • Thread concurrency

Concurrency

  • None

Query

  • ActiveX Data Objects

Collection Windows 2000 Service DCOM/COM+ Service CORBA Service

slide-26
SLIDE 26

Events

Event processing in DCOM.

slide-27
SLIDE 27

Clients

Passing an object reference in DCOM with custom marshaling.

slide-28
SLIDE 28

Monikers (1)

Binding to a DCOM object by means of file moniker.

Returns interface pointer of object to client Moniker 7 Loads its state from file Object 6 Instructs object to load previously stored state Moniker 5 Creates object and returns interface pointer to moniker Class object 4 Loads class object SCM 3 Looks up associated CLSID and instructs SCM to create object Moniker 2 Calls BindMoniker at moniker Client 1 Description Performer Step

slide-29
SLIDE 29

Monikers (2)

DCOM-defined moniker types.

Reference to an object in a remote process Pointer moniker Reference to a moniker in a composition Item moniker Reference to a composition of monikers Composite moniker Reference to a class object Class moniker Reference to an object constructed from a URL URL moniker Reference to an object constructed from a file File moniker Description Moniker type

slide-30
SLIDE 30

Active Directory

The general organization of Active Directory.

slide-31
SLIDE 31

Fault Tolerance

Transaction attribute values for DCOM objects.

Never join a transaction, even if told to do so DISABLED Never join a transaction NOT_SUPPORTED Join a transaction only if caller is already part of one SUPPORTED A new transaction is started if not already done so REQUIRED A new transaction is always started at each invocation REQUIRES_NEW Description Attribute value

slide-32
SLIDE 32

Declarative Security (1)

Authentication levels in DCOM.

Authenticate, integrity-check, and encrypt data packets PACKET_PRIVACY Authenticate data packets and do integrity check PACKET_INTEGRITY Authenticate all data packets PACKET Authenticate client at each invocation CALL Authenticate client when first connected to server CONNECT No authentication is required NONE Description Authentication level

slide-33
SLIDE 33

Declarative Security (2)

Impersonation levels in DCOM.

The server can invoke remote objects on behalf of the client DELEGATE The server can invoke local objects on behalf of the client IMPERSONATE The server knows the client and can do access control checks IDENTIFY The client is completely anonymous to the server ANONYMOUS Description Impersonation level

slide-34
SLIDE 34

Programmatic Security

a) Default authentication services supported in DCOM. b) Default authorization services supported in DCOM.

(b) Authorization using DEC Privilege Attribute Certificates (PACs) DCE Authorization based on the client's identity NAME No authorization NONE Description Service (a) Kerberos authentication GSS_KERBEROS Windows NT security WINNT DEC authentication based on public keys DCE_PUBLIC DCE authentication based on shared keys DCE_PRIVATE No authentication NONE Description Service

slide-35
SLIDE 35

Globe Object Model (1)

The organization of a Globe distributed shared object.

slide-36
SLIDE 36

Globe Object Model (2)

The general organization

  • f a local object for

distributed shared

  • bjects in Globe.
slide-37
SLIDE 37

Globe Object Model (3)

Interfaces implemented by the semantics subobject of a GlobeDoc object.

Replace the content of an entire document PutAllContent Replace the content of an element with a given array of bytes PutContent Return the content of an element as an array of bytes GetCotent Description Method Content Interface Return a reference to the root element GetRoot Set the root element SetRoot Return a list of the elements currently in the document AllElements Remove an element from the Web document DeleteElement Add an element to the current set of elements AddElement Description Method Document Interface

slide-38
SLIDE 38

Globe Object Model (4)

Interfaces implemented by the semantics subobject of a GlobeDoc Object.

Get a list of elements that are currently checked out GetCheckedElements Check in a series of modified elements CheckInElements Check out a series of elements that require modification CheckOutElements Description Method Lock Interface Provide a list of (attribute, value)-pairs for an element SetProperties Return the list of (attribute, value)-pairs of an element GetProperties Description Method Property Interface

slide-39
SLIDE 39

Process-to-Object Binding

Binding a process to an object in Globe.

slide-40
SLIDE 40

Globe Services

Overview of possible Globe implementations of typical distributes-systems services.

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

slide-41
SLIDE 41

Communication

Invoking an object in Globe that uses active replication.

slide-42
SLIDE 42

Globe Server

Operations on a Globe object server.

Get the status of a specific local object StatLR Returns a list of all local objects for a given objects ListDSO Returns a list of all local objects ListAll Lets the server remove all local objects of a given object UnbindDSO Lets the server remove a local object of a given object RemoveLR Lets the server create a local object for a new distributed object CreateLR Lets the server bind to an object, even if it is already bound AddBinding Lets the server bind to a given object, unless it is already bound Bind Description Method

slide-43
SLIDE 43

Object References and Contact Addresses (1)

The representation of a protocol layer in a stacked contact address.

Reference to a file in a class repository Implementation handle A protocol-specific address Protocol address A constant representing a (known) protocol Protocol identifier Description Field

slide-44
SLIDE 44

Object References and Contact Addresses (2)

The representation of an instance contact address.

String that is used to initialize an implementation Initialization string Reference to a file in a class repository Implementation handle Description Field

slide-45
SLIDE 45

Globe Naming Service

Iterative DNS-based name resolution in Globe.

slide-46
SLIDE 46

Replication (1)

The interface of the replication subobject as made available to the control subobject.

Indicate that the invocation on the semantics object has completed Invoked Pass the marshaled invocation request to the replication subobject Send Indicate that a new method invocation has been locally requested Start Description Method

slide-47
SLIDE 47

Replication (2)

The behavior of the control subobject as a finite state machine.

slide-48
SLIDE 48

Examples of Replication in Globe (1)

State transitions and actions for active replication.

Next state Method call Action to take State START None Return results to caller RETURN RETURN Invoked invoke local method INVOKE INVOKE Send Pass marshaled invocations SEND SEND Start None START Modify method START None Return results to caller RETURN RETURN Invoked Invoke local method INVOKE INVOKE Start None START Next state Method call Action to take State Read method

slide-49
SLIDE 49

Examples of Replication in Globe (2)

State transitions and actions with primary-backup replication.

START None Return results to caller RETURN RETURN Invoked invoke local method INVOKE Next state Method call Action to take State INVOKE Start none START Modify method at primary replica Next state Method call Action to take State START None Return results to caller RETURN RETURN Send Pass marshaled invocation SEND SEND Start None START Modify method at backup replica START None Return results to caller RETURN RETURN Invoked Invoke local method INVOKE INVOKE Start None START Next state Method call Action to take State Read method

slide-50
SLIDE 50

Security (1)

The position of a security subobject in a Globe local object.

slide-51
SLIDE 51

Security (2)

Using Kerberos to establish secure distributed shared

  • bjects.
slide-52
SLIDE 52

Summary (1)

Comparison of CORBA, DCOM, and Globe.

No No yes Trading service No Yes Yes Directory service Object dependent Hard-coded Flexible (POA) Object server No Yes Yes Messaging No Yes Yes Events No Yes Yes Callbacks No Yes Yes

  • Async. communication

Yes Yes Yes

  • Sync. communication

Binary Binary IDL based Interfaces Few From environment Many of its own Services Distributed objects Remote objects Remote objects Object model Scalability Functionality Interoperability Design goals Globe DCOM CORBA Issue

Continued …

slide-53
SLIDE 53

Summary (2)

Comparison of CORBA, DCOM, and Globe.

Globe DCOM CORBA Issue More work needed Various mechanisms Various mechanisms Security No By transactions Yes Recovery support By replication By transactions By replication Fault tolerance No Yes Yes Transactions Separate subobject None Separate server Replication support Only intra-object Transactions Transactions Synchronization True identifier Interface pointer Object's location Object reference Yes No No Location service Yes Yes Yes Naming service