Table of Contents
Common Object Request Broker Architecture: Core Specification (V3.0.3)
1 The Object Model
1.1 Overview
1.2 Object Semantics
1.2.1 Objects
1.2.2 Requests
1.2.3 Object Creation and Destruction
1.2.4 Types
1.2.5 Interfaces
1.2.6 Value Types
1.2.7 Abstract Interfaces
1.2.8 Operations
1.2.9 Attributes
1.3 Object Implementation
1.3.1 The Execution Model: Performing Services
1.3.2 The Construction Model
2 CORBA Overview
2.1 Structure of an Object Request Broker
2.1.1 Object Request Broker
2.1.2 Clients
2.1.3 Object Implementations
2.1.4 Object References
2.1.5 OMG Interface Definition Language
2.1.6 Mapping of OMG IDL to Programming Languages
2.1.7 Client Stubs
2.1.8 Dynamic Invocation Interface
2.1.9 Implementation Skeleton
2.1.10 Dynamic Skeleton Interface
2.1.11 Object Adapters
2.1.12 ORB Interface
2.1.13 Interface Repository
2.1.14 Implementation Repository
2.2 Example ORBs
2.2.1 Client- and Implementation-resident ORB
2.2.2 Server-based ORB
2.2.3 System-based ORB
2.2.4 Library-based ORB
2.3 Structure of a Client
2.4 Structure of an Object Implementation
2.5 Structure of an Object Adapter
2.6 CORBA Required Object Adapter
2.6.1 Portable Object Adapter
2.7 The Integration of Foreign Object Systems
3 OMG IDL Syntax and Semantics
3.1 Overview
3.2 Lexical Conventions
3.2.1 Tokens
3.2.2 Comments
3.2.3 Identifiers
3.2.4 Keywords
3.2.5 Literals
3.3 Preprocessing
3.4 OMG IDL Grammar
3.5 OMG IDL Specification
3.6 Import Declaration
3.7 Module Declaration
3.8 Interface Declaration
3.8.1 Interface Header
3.8.2 Interface Inheritance Specification
3.8.3 Interface Body
3.8.4 Forward Declaration
3.8.5 Interface Inheritance
3.8.6 Abstract Interface
3.8.7 Local Interface
3.9 Value Declaration
3.9.1 Regular Value Type
3.9.2 Boxed Value Type
3.9.3 Abstract Value Type
3.9.4 Value Forward Declaration
3.9.5 Valuetype Inheritance
3.10 Constant Declaration
3.10.1 Syntax
3.10.2 Semantics
3.11 Type Declaration
3.11.1 Basic Types
3.11.2 Constructed Types
3.11.3 Template Types
3.11.4 Complex Declarator
3.11.5 Native Types
3.11.6 Deprecated Anonymous Types
3.12 Exception Declaration
3.13 Operation Declaration
3.13.1 Operation Attribute
3.13.2 Parameter Declarations
3.13.3 Raises Expressions
3.13.4 Context Expressions
3.14 Attribute Declaration
3.15 Repository Identity Related Declarations
3.15.1 Repository Identity Declaration
3.15.2 Repository Identifier Prefix Declaration
3.16 Event Declaration
3.16.1 Regular Event Type
3.16.2 Abstract Event Type
3.16.3 Event Forward Declaration
3.16.4 Eventtype Inheritance
3.17 Component Declaration
3.17.1 Component
3.17.2 Component Header
3.17.3 Component Body
3.17.4 Event Sources—publishers and emitters
3.17.5 Event Sinks
3.17.6 Basic and Extended Components
3.18 Home Declaration
3.18.1 Home
3.18.2 Home Header
3.18.3 Home Body
3.19 CORBA Module
3.20 Names and Scoping
3.20.1 Qualified Names
3.20.2 Scoping Rules and Name Resolution
3.20.3 Special Scoping Rules for Type Names
4 ORB Interface
4.1 Overview
4.2 The ORB Operations
4.2.1 ORB Identity
4.2.2 Converting Object References to Strings
4.2.3 Getting Service Information
4.2.5 Thread-Related Operations
4.3 Object Reference Operations
4.3.1 Determining the Object Interface
4.3.2 Duplicating and Releasing Copies of Object References
4.3.3 Nil Object References
4.3.4 Equivalence Checking Operation
4.3.5 Probing for Object Non-Existence
4.3.6 Object Reference Identity
4.3.7 Type Coercion Considerations
4.3.8 Getting Policy Associated with the Object
4.3.9 Overriding Associated Policies on an Object Reference
4.3.10 Validating Connection
4.3.11 Getting the Domain Managers Associated with the Object
4.3.12 Getting Component Associated with the Object
4.3.13 Getting the ORB
4.3.14 LocalObject Operations
4.4 ValueBase Operations
4.5 ORB and OA Initialization and Initial References
4.5.1 ORB Initialization
4.5.2 Obtaining Initial Object References
4.6 Context Object
4.7 Current Object
4.8 Policy Object
4.8.1 Definition of Policy Object
4.8.2 Creation of Policy Objects
4.8.3 Usages of Policy Objects
4.8.4 Policy Associated with the Execution Environment
4.8.5 Specification of New Policy Objects
4.8.6 Standard Policies
4.9 Management of Policies
4.9.1 Client Side Policy Management
4.9.2 Server Side Policy Management
4.9.3 Policy Management Interfaces
4.10 Management of Policy Domains
4.10.1 Basic Concepts
4.10.2 Domain Management Operations
4.11 TypeCodes
4.11.1 The TypeCode Interface
4.11.2 TypeCode Constants
4.11.3 Creating TypeCodes
5 Value Type Semantics
5.1 Overview
5.2 Architecture
5.2.1 Abstract Values
5.2.2 Operations
5.2.3 Value Type vs. Interfaces
5.2.4 Parameter Passing
5.2.5 Substitutability Issues
5.2.6 Widening/Narrowing
5.2.7 Value Base Type
5.2.8 Life Cycle issues
5.2.9 Security Considerations
5.3 Standard Value Box Definitions
5.4 Language Mappings
5.4.1 General Requirements
5.4.2 Language Specific Marshaling
5.4.3 Language Specific Value Factory Requirements
5.4.4 Value Method Implementation
5.5 Custom Marshaling
5.5.1 Implementation of Custom Marshaling
5.5.2 Marshaling Streams
5.6 Access to the Sending Context Run Time
6 Abstract Interface Semantics
6.1 Overview
6.2 Semantics of Abstract Interfaces
6.3 Usage Guidelines
6.4 Example
6.5 Security Considerations
6.5.1 Passing Values to Trusted Domains
7 Dynamic Invocation Interface
7.1 Overview
7.1.1 Common Data Structures
7.1.2 Memory Usage
7.1.3 Return Status and Exceptions
7.2 Request Operations
7.2.1 create_request
7.2.2 add_arg
7.2.3 invoke
7.2.4 delete
7.2.5 send
7.2.6 poll_response
7.2.7 get_response
7.2.8 sendp
7.2.9 prepare
7.2.10 sendc
7.3 ORB Operations
7.3.1 send_multiple_requests
7.3.2 get_next_response and poll_next_response
7.4 Polling
7.5 List Operations
7.5.1 create_list
7.5.2 add_item
7.5.3 free
7.5.4 free_memory
7.5.5 get_count
7.5.6 create_operation_list
8 Dynamic Skeleton Interface
8.1 Introduction
8.2 Overview
8.3 ServerRequestPseudo-Object
8.3.1 ExplicitRequest State: ServerRequestPseudo-Object
8.4 DSI: Language Mapping
8.4.1 ServerRequest’s Handling of Operation Parameters
8.4.2 Registering Dynamic Implementation Routines
9 Dynamic Management of Any Values
9.1 Overview
9.2 DynAny AP
9.3 Usage in C++ Language
10 The Interface Repository
10.1 Overview
10.2 Scope of an Interface Repository
10.3 Implementation Dependencies
10.3.1 Managing Interface Repositories
10.4 Basics
10.4.1 Names and Identifiers
10.4.2 Types and TypeCodes
10.4.3 Interface Repository Objects
10.4.4 Structure and Navigation of the Interface Repository
10.5 Interface Repository Interfaces
10.5.1 Supporting Type Definitions
10.5.2 IRObject
10.5.3 Contained
10.5.4 Container
10.5.5 IDLType
10.5.6 Repository
10.5.6.1 Read Interface
10.5.7 ModuleDef
10.5.8 ConstantDef
10.5.9 TypedefDef
10.5.10 StructDef
10.5.11 UnionDef
10.5.12 EnumDef
10.5.13 AliasDef
10.5.14 PrimitiveDef
10.5.15 StringDef
10.5.16 WstringDef
10.5.17 FixedDef
10.5.18 SequenceDef
10.5.19 ArrayDef
10.5.20 ExceptionDef
10.5.21 AttributeDef
10.5.23 OperationDef
10.5.26 AbstractInterfaceDef
10.5.28 LocalInterfaceDef
10.5.30 ValueMemberDef
10.5.31 ValueDef
10.5.33 ValueBoxDef
10.5.34 NativeDef
10.7 RepositoryId
10.7.1 OMG IDL Format
10.7.2 RMI Hashed Format
10.7.3 DCE UUID Format
10.7.4 LOCAL Format
10.7.5 Pragma Directives for RepositoryId
10.7.6 For More Information
10.7.7 RepositoryIDs for OMG-Specified Types
10.8 OMG IDL for Interface Repository
11 The Portable Object Adapter
11.1 Overvie
11.2 Abstract Model Description
11.2.1 Model Components
11.2.2 Model Architecture
11.2.3 POA Creation
11.2.4 Reference Creation
11.2.5 Object Activation States
11.2.6 Request Processing
11.2.7 Implicit Activation
11.2.9 Dynamic Skeleton Interface
11.3 Interfaces
11.3.1 The Servant IDL Type
11.3.2 POAManager Interface
11.3.4 AdapterActivator Interface
11.3.5 ServantManager Interface
11.3.6 ServantActivator Interface
11.3.7 ServantLocator Interface
11.3.8 POA Policy Objects
11.3.9 POA Interface
11.4 IDL for PortableServer Module
11.5 UML Description of PortableServer
11.6 Usage Scenarios
11.6.1 Getting the Root POA
11.6.2 Creating a POA
11.6.3 Explicit Activation with POA-assigned Object Ids
11.6.4 Explicit Activation with User-assigned Object Ids
11.6.5 Creating References before Activation
11.6.6 Servant Manager Definition and Creation
11.6.7 Object Activation on Demand
11.6.8 Persistent Objects with POA-assigned Ids
11.6.9 Multiple Object Ids Mapping to a Single Servant
11.6.10 One Servant for All Objects
12 Interoperability Overview
12.1 Elements of Interoperability
12.1.1 ORB Interoperability Architecture
12.1.2 Inter-ORB Bridge Support
12.1.3 General Inter-ORB Protocol
12.1.4 Internet Inter-ORB Protocol
12.1.5 Environment-Specific Inter-ORB Protocols
12.2 Relationship to Previous Versions of CORBA
12.3 Examples of Interoperability Solutions
12.3.1 Example 1
12.3.2 Example 2
12.3.3 Example 3
12.3.4 Interoperability Compliance
12.4 Motivating Factors
12.4.1 ORB Implementation Diversity
12.4.2 ORB Boundaries
12.4.3 ORBs Vary in Scope, Distance, and Lifetime
12.5 Interoperability Design Goals
12.5.1 Non-Goals
13 ORB Interoperability Architecture
13.1 Overview
13.1.1 Domains
13.1.2 Bridging Domains
13.2 ORBs and ORB Services
13.2.1 The Nature of ORB Services
13.2.2 ORB Services and Object Requests
13.2.3 Selection of ORB Services
13.3 Domains
13.3.1 Definition of a Domain
13.3.2 Mapping Between Domains: Bridging
13.4 Interoperability Between ORBs
13.4.1 ORB Services and Domains
13.4.2 ORBs and Domains
13.4.3 Interoperability Approaches
13.4.4 Policy-Mediated Bridging
13.4.5 Configurations of Bridges in Networks
13.5 Object Addressing
13.5.1 Domain-relative Object Referencing
13.5.2 Handling of Referencing Between Domains
13.6 An Information Model for Object References
13.6.1 What Information Do Bridges Need?
13.6.2 Interoperable Object References: IORs
13.6.3 IOR Profiles
13.6.4 Standard IOR Profiles
13.6.5 IOR Components
13.6.6 Standard IOR Components
13.6.7 Profile and Component Composition in IORs
13.6.8 IOR Creation and Scope
13.6.9 Stringified Object References
13.7 Service Context
13.7.1 Standard Service Contexts
13.7.2 Service Context Processing Rules
13.8 Coder/Decoder Interfaces
13.8.1 Codec Interface
13.8.2 Codec Factory
13.9 Feature Support and GIOP Versions
13.10 Code Set Conversion
13.10.1 Character Processing Terminology
13.10.2 Code Set Conversion Framework
13.10.3 Mapping to Generic Character Environments
13.10.4 Example of Generic Environment Mapping
13.10.5 Relevant OSFM Registry Interfaces
14 Building Inter-ORB Bridges
14.1 Introduction
14.2 In-Line and Request-Level Bridging
14.2.1 In-line Bridging
14.2.2 Request-level Bridging
14.2.3 Collocated ORBs
14.3 Proxy Creation and Management
14.4 Interface-specific Bridges and Generic Bridges
14.5 Building Generic Request-Level Bridges
14.6 Bridging Non-Referencing Domains
14.7 Bootstrapping Bridges
15 General Inter-ORB Protocol
15.1 Goals of the General Inter-ORB Protocol
15.2 GIOP Overview
15.2.1 Common Data Representation
15.2.2 GIOP Message Overview
15.2.3 GIOP Message Transfer
15.3 CDR Transfer Syntax
15.3.1 Primitive Types
15.3.2 OMG IDL Constructed Types
15.3.3 Encapsulation
15.3.4 Value Types
15.3.5 Pseudo-Object Types
15.3.6 Object References
15.3.7 Abstract Interfaces
15.4 GIOP Message Formats
15.4.1 GIOP Message Header
15.4.2 Request Message
15.4.3 Reply Message
15.4.4 CancelRequest Message
15.4.5 LocateRequest Message
15.4.6 LocateReply Message
15.4.7 CloseConnection Message
15.4.8 MessageError Message
15.4.9 Fragment Message
15.5.1 Connection Management
15.5.2 Message Ordering
15.6 Object Location
15.7 Internet Inter-ORB Protocol
15.7.1 TCP/IP Connection Usage
15.7.2 IIOP IOR Profiles
15.7.3 IIOP IOR Profile Components
15.8 Bi-Directional GIOP
15.8.1 Bi-Directional IIOP
15.9 Bi-directional GIOP policy
15.10 OMG IDL
15.10.1 GIOP Module
15.10.2 IIOP Module
15.10.3 BiDirPolicy Module
16 The DCE ESIOP
16.1 Goals of the DCE Common Inter-ORB Protocol
16.2 DCE Common Inter-ORB Protocol Overview
16.2.1 DCE-CIOP RPC
16.2.2 DCE-CIOP Data Representation
16.2.3 DCE-CIOP Messages
16.2.4 Interoperable Object Reference
16.3 DCE-CIOP Message Transport
16.3.1 Pipe-based Interface
16.3.2 Array-based Interface
16.4 DCE-CIOP Message Formats
16.4.1 DCE_CIOP Invoke Request Message
16.4.2 DCE-CIOP Invoke Response Message
16.4.3 DCE-CIOP Locate Request Message
16.4.4 DCE-CIOP Locate Response Message
16.5 DCE-CIOP Object References
16.5.1 DCE-CIOP String Binding Component
16.5.2 DCE-CIOP Binding Name Component
16.5.3 DCE-CIOP No Pipes Component
16.5.4 Complete Object Key Component
16.5.5 Endpoint ID Position Component
16.5.6 Location Policy Component
16.6 DCE-CIOP Object Location
16.6.1 Location Mechanism Overview
16.6.2 Activation
16.6.3 Basic Location Algorithm
16.6.4 Use of the Location Policy and the Endpoint ID
16.7 OMG IDL for the DCE CIOP Module
16.8 References for this Chapter
17 Interworking Architecture
17.1 Purpose of the Interworking Architecture
17.1.1 Comparing COM Objects to CORBA Objects
17.2 Interworking Object Model
17.2.1 Relationship to CORBA Object Model
17.2.2 Relationship to the OLE/COM Model
17.2.3 Basic Description of the Interworking Model
17.3 Interworking Mapping Issues
17.4 Interface Mapping
17.4.1 CORBA/COM
17.4.2 CORBA/Automation
17.4.3 COM/CORBA
17.4.4 Automation/CORBA
17.5 Interface Composition Mappings
17.5.1 CORBA/COM
17.5.2 Detailed Mapping Rules
17.5.3 Example of Applying Ordering Rules
17.5.4 Mapping Interface Identity
17.6 Object Identity, Binding, and Life Cycle
17.6.1 Object Identity Issues
17.7 Interworking Interfaces
17.7.1 SimpleFactory Interface
17.7.2 IMonikerProvider Interface and Moniker Use
17.7.3 ICORBAFactory Interface
17.7.4 IForeignObject Interface
17.7.5 ICORBAObject Interface
17.7.6 ICORBAObject2
17.7.8 Naming Conventions for View Components
17.8 Distribution
17.8.1 Bridge Locality
17.8.2 Distribution Architecture
17.10 Compliance to COM/CORBA Interworking
17.10.1 Products Subject to Compliance
17.10.2 Compliance Points
18 Mapping: COM and CORBA
18.1 Data Type Mapping
18.2 CORBA to COM Data Type Mapping
18.2.1 Mapping for Basic Data Types
18.2.2 Mapping for Constants
18.2.3 Mapping for Enumerators
18.2.4 Mapping for String Types
18.2.5 Mapping for Struct Types
18.2.6 Mapping for Union Types
18.2.7 Mapping for Sequence Types
18.2.8 Mapping for Array Types
18.2.9 Mapping for the any Type
18.2.10 Interface Mapping
18.2.11 Inheritance Mapping
18.2.12 Mapping for Pseudo-Objects
18.2.13 Interface Repository Mapping
18.3 COM to CORBA Data Type Mapping
18.3.1 Mapping for Basic Data Types
18.3.2 Mapping for Constants
18.3.3 Mapping for Enumerators
18.3.4 Mapping for String Types
18.3.5 Mapping for Structure Types
18.3.6 Mapping for Union Types
18.3.7 Mapping for Array Types
18.3.8 Mapping for VARIANT
18.3.9 Mapping for Pointers
18.3.10 Interface Mapping
18.3.11 Mapping for Read-Only Attributes
18.3.12 Mapping for Read-Write Attributes
19 Mapping: Automation and CORBA
19.1 Mapping CORBA Objects to Automation
19.1.1 Architectural Overview
19.1.2 Main Features of the Mapping
19.2 Mapping for Interfaces
19.2.1 Mapping for Attributes and Operations
19.2.2 Mapping for OMG IDL Single Inheritance
19.2.3 Mapping of OMG IDL Multiple Inheritance
19.3 Mapping for Basic Data Types
19.3.1 Basic Automation Types
19.3.2 Special Cases of Basic Data Type Mapping
19.3.3 Mapping for Strings
19.4 IDL to ODL Mapping
19.4.1 A Complete IDL to ODL Mapping for the Basic Data Types
19.5 Mapping for Object References
19.5.1 Type Mapping
19.5.2 Object Reference Parameters and IForeignObject
19.6 Mapping for Enumerated Types
19.7 Mapping for Arrays and Sequences
19.8 Mapping for CORBA Complex Types
19.8.1 Mapping for Structure Types
19.8.2 Mapping for Union Types
19.8.3 Mapping for TypeCodes
19.8.4 Mapping for anys
19.8.6 Mapping for Constants
19.8.7 Getting Initial CORBA Object References
19.8.8 Creating Initial in Parameters for Complex Types
19.8.9 Mapping CORBA Exceptions to Automation Exceptions
19.8.10 Conventions for Naming Components of the Automation View
19.8.11 Naming Conventions for Pseudo-Structs, Pseudo-Unions, and Pseudo-Exceptions
19.8.12 Automation View Interface as a Dispatch Interface
19.8.13 Aggregation of Automation Views
19.8.14 DII and DSI
19.9 Mapping Automation Objects as CORBA Objects
19.9.2 Main Features of the Mapping
19.9.3 Getting Initial Object References
19.9.4 Mapping for Interfaces
19.9.5 Mapping for Inheritance
19.9.6 Mapping for ODL Properties and Methods
19.9.7 Mapping for Automation Basic Data Types
19.9.8 Conversion Errors
19.9.9 Special Cases of Data Type Conversion
19.9.10 A Complete OMG IDL to ODL Mapping for the Basic Data Types
19.9.12 Mapping for Enumerated Types
19.9.13 Mapping for SafeArrays
19.9.14 Mapping for Typedefs
19.9.15 Mapping for VARIANTs
19.9.16 Mapping Automation Exceptions to CORBA
19.10 Older Automation Controllers
19.10.1 Mapping for OMG IDL Arrays and Sequences to Collections
19.11 Example Mappings
19.11.1 Mapping the OMG Naming Service to Automation
19.11.2 Mapping a COM Service to OMG IDL
19.11.3 Mapping an OMG Object Service to Automation
20 Interoperability with non-CORBA Systems
20.1 Introduction
20.1.1 COM/CORBA Part A
20.2 Conformance Issues
20.2.1 Performance Issues
20.2.2 Scalability Issues
20.2.3 CORBA Clients for DCOM Servers
20.3 Locality of the Bridge
20.4 Extent Definition
20.4.1 Marshaling Constraints
20.4.2 Marshaling Key
20.4.3 Extent Format
20.5 Request/Reply Extent Semantics
20.6 Consistenc
20.6.1 IValueObject
20.6.2 ISynchronize and DISynchronize
20.7 DCOM Value Objects
20.7.1 Passing Automation Compound Types as DCOM Value Objects
20.7.2 Passing CORBA-Defined Pseudo-Objects as DCOM Value Objects
20.7.3 IForeignObject
20.7.4 DIForeignComplexType
20.7.5 DIForeignException
20.7.6 DISystemException
20.7.7 DICORBAUserException
20.7.8 DICORBAStruct
20.7.9 DICORBAUnion
20.7.10 DICORBATypeCode and ICORBATypeCode
20.7.11 DICORBAAny
20.7.12 ICORBAAny
20.7.13 User Exceptions In COM
20.8 Chain Avoidance
20.8.1 CORBA Chain Avoidance
20.8.2 COM Chain Avoidance
20.9 Chain Bypass
20.9.1 CORBA Chain Bypass
20.9.2 COM Chain Bypass
20.10 Thread Identification
21 Portable Interceptors
21.1 Introduction
21.1.1 Object Creation
21.1.2 Client Sends Request
21.1.3 Server Receives Request
21.1.4 Server Sends Reply
21.1.5 Client Receives Reply
21.2 Interceptor Interface
21.3 Request Interceptors
21.3.1 Design Principles
21.3.2 General Flow Rules
21.3.3 The Flow Stack Visual Model
21.3.4 The Request Interceptor Points
21.3.5 Client-Side Interceptor
21.3.6 Client-Side Interception Points
21.3.7 Client-Side Interception Point Flow
21.3.8 Server-Side Interceptor
21.3.9 Server-Side Interception Points
21.3.10 Server-Side Interception Point Flow
21.3.11 Request Information
21.3.12 RequestInfo Interface
21.3.13 ClientRequestInfo Interface
21.3.14 ServerRequestInfo Interface
21.3.15 ForwardRequest Exception
21.4 Portable Interceptor Current
21.4.1 Overview
21.4.2 Obtaining the Portable Interceptor Current
21.4.3 Portable Interceptor Current Interface
21.4.4 Use of Portable Interceptor Current
21.5 IOR Interceptor
21.5.1 Overview
21.5.4 IORInterceptor Interface
21.5.5 IORInfo Interface
21.6 PolicyFactory
21.6.1 PolicyFactory Interface
21.7 Registering Interceptors
21.7.1 ORBInitializer Interface
21.7.2 ORBInitInfo Interface
21.7.3 register_orb_initializer Operation
21.7.4 Notes about Registering Interceptors
21.8 Dynamic Initial References
21.8.1 register_initial_reference
21.9 Module Dynamic
21.9.1 NVList PIDL Represented by ParameterList IDL
21.9.2 ContextList PIDL Represented by ContextList IDL
21.9.3 ExceptionList PIDL Represented by ExceptionList IDL
21.9.4 Context PIDL Represented by RequestContext IDL
21.10 Consolidated IDL
21.10.1 Dynamic
21.10.2 Portions of IOP Relevant to Portable Interceptor
21.10.3 PortableInterceptor
22 CORBA Messaging
22.1 Section I - Introduction
22.2 Messaging Quality of Service
22.2.1 Rebind Support
22.2.2 Synchronization Scope
22.2.3 Request and Reply Priority
22.2.4 Request and Reply Timeout
22.2.5 Routing
22.2.6 Queue Ordering
22.3 Propagation of Messaging QoS
22.3.1 Structures
22.3.2 Messaging QoS Profile Component
22.3.3 Messaging QoS Service Context
22.4 Section II - Introduction
22.5 Running Example
22.6 Async Operation Mapping
22.6.1 Callback Model Signatures
22.6.2 Polling Model Signatures
22.7 Exception Delivery in the Callback Model
22.7.1 Messaging::ExceptionHolder valuetype
22.8 Type-Specific ReplyHandler Mapping
22.8.1 ReplyHandler Operations for NO_EXCEPTION Replies
22.8.2 ReplyHandler Operations for Exceptional Replies
22.8.3 Example
22.9 Generic Poller Value
22.9.1 operation_target
22.9.2 operation_name
22.9.3 associated_handler
22.9.4 is_from_poller
22.10 Type-Specific Poller Mapping
22.10.1 Basic Type-Specific Poller
22.10.2 Persistent Type-Specific Poller
22.10.3 Example
22.11 Example Programmer Usage
22.11.1 Example Programmer Usage
22.11.2 Client-Side C++ Example for the Asynchronous Method Signatures
22.11.3 Client-Side C++ Example of the Callback Model
22.11.4 Client-Side C++ Example of the Polling Model
22.11.5 Server Side
22.12 Section III - Introduction
22.13 Routing Object References
22.14 Message Routing
22.14.1 Structures
22.14.2 Interfaces
22.14.3 Routing Protocol
22.15 Router Administration
22.15.1 Constants
22.15.2 Exceptions
22.15.3 Valuetypes
22.15.4 Interfaces
22.16 CORBA Messaging IDL
22.16.1 Messaging Module
22.16.2 MessageRouting Module
23 Fault TolerantCORBA
23.1 Fault Tolerant CORBA
23.1.1 Fault Tolerance for Diverse Applications
23.1.2 Objectives
23.1.3 Basic Concepts
23.1.4 Architectural Overview
23.1.5 Requirements
23.1.6 Limitations
23.2 Basic Fault Tolerance Mechanisms
23.2.1 Overview
23.2.2 Interoperable Object Group References
23.2.3 Interoperable Object Group Reference Operations
23.2.4 Modes of Profile Addressing
23.2.5 Accessing Server Object Groups
23.2.6 Extensions to CORBA Failover Semantics
23.2.7 Most Recent Object Group Reference
23.2.8 Transparent Reinvocation
23.2.9 Transport Heartbeats
23.3 Replication Management
23.3.1 Overview
23.3.2 Fault Tolerance Properties
23.3.3 FaultMonitoringIntervalAndTimeout
23.3.4 CheckpointInterval
23.3.5 Common Types
23.3.6 Replication Manager
23.3.7 PropertyManager
23.3.8 ObjectGroupManager
23.3.9 GenericFactory
23.3.10 Obtaining the Reference for the Replication Manager
23.3.11 Use Cases
23.4 Fault Management
23.4.1 Overview
23.4.3 Connecting Fault Detectors to Applications
23.4.4 Pull-Based Monitoring
23.4.5 Fault Event Types
23.4.6 Fault Notifier
23.4.7 Use Cases
23.5 Logging & Recovery Management
23.5.1 Overview
23.5.2 Logging Mechanism
23.5.3 Recovery Mechanism
23.5.4 Checkpointable and Updateable Interfaces
23.5.5 Use Case
23.6 Consolidated IDL
23.6.1 OMG IDL
24 Secure Interoperability
24.1 Overview
24.1.1 Assumptions
24.2 Protocol Message Definitions
24.2.1 The Security Attribute Service Context Element
24.2.2 SAS context_data Message Body Types
24.2.3 Authorization Token Format
24.2.4 Client Authentication Token Format
24.2.5 Identity Token Format
24.2.6 Principal Names and Distinguished Names
24.3 Security Attribute Service Protocol
24.3.1 Compound Mechanisms
24.3.2 Session Semantics
24.3.3 TSS State Machine
24.3.4 CSS State Machine
24.3.5 ContextError Values and Exceptions
24.4 Transport Security Mechanisms
24.4.1 Transport Layer Interoperability
24.4.2 Transport Mechanism Configuration
24.5 Interoperable Object References
24.5.1 Target Security Configuration
24.5.2 Client-side Mechanism Selection
24.5.3 Client-Side Requirements and Location Binding
24.6 Conformance Levels
24.6.1 Conformance Level 0
24.6.2 Conformance Level 1
24.6.3 Conformance Level 2
24.6.4 Stateful Conformance
24.7 Sample Message Flows and Scenarios
24.7.1 Confidentiality, Trust in Server, and Trust in Client Established in the Connection
24.7.2 Confidentiality and Trust in Server Established in the Connection - Stateless Trust in Client Established in Service Context
24.7.3 Confidentiality, Trust in Server, and Trust in Client Established in the Connection - Stateless Trust Association Established in Service Context
24.7.4 Confidentiality, Trust in Server, and Trust in Client Established in the Connection - Stateless Forward Trust Association Established in Service Context
24.8 References for this Chapter
24.9 IDL
24.9.1 Module GSSUP - Username/Password GSSAPI Token Formats
24.9.2 Module CSI - Common Secure Interoperability
24.9.3 Module CSIIOP - CSIv2 IOR Component Tag Definitions
Mehrdad Nojoumian and Timothy Lethbridge, University of Ottawa,
2007-05-16-04:00