The Object Model@The Object Model
Overview@Overview
Object Semantics@Object Semantics
Objects@Objects
Requests@Requests
Object Creation and Destruction@Object Creation and Destruction
Types@Types
Interfaces@Interfaces
Value Types@Value Types
Abstract Interfaces@Abstract Interfaces
Operations@Operations
Attributes@Attributes
Object Implementation@Object Implementation
The Execution Model: Performing Services@The Execution Model: Performing Services
The Construction Model@The Construction Model
CORBA Overview@CORBA Overview
Structure of an Object Request Broker@Structure of an Object Request Broker
Object Request Broker@Object Request Broker
Clients@Clients
Object Implementations@Object Implementations
Object References@Object References
OMG Interface Definition Language@OMG Interface Definition Language
Mapping of OMG IDL to Programming Languages@Mapping of OMG IDL to Programming Languages
Client Stubs@Client Stubs
Dynamic Invocation Interface@Dynamic Invocation Interface
Implementation Skeleton@Implementation Skeleton
Dynamic Skeleton Interface@Dynamic Skeleton Interface
Object Adapters@Object Adapters
ORB Interface@ORB Interface
Interface Repository@Interface Repository
Implementation Repository@Implementation Repository
Example ORBs@Example ORBs
Client- and Implementation-resident ORB@Client- and Implementation-resident ORB
Server-based ORB@Server-based ORB
System-based ORB@System-based ORB
Library-based ORB@Library-based ORB
Structure of a Client@Structure of a Client
Structure of an Object Implementation@Structure of an Object Implementation
Structure of an Object Adapter@Structure of an Object Adapter
CORBA Required Object Adapter@CORBA Required Object Adapter
Portable Object Adapter@Portable Object Adapter
The Integration of Foreign Object Systems@The Integration of Foreign Object Systems
OMG IDL Syntax and Semantics@OMG IDL Syntax and Semantics
Overview@Overview
Lexical Conventions@Lexical Conventions
Tokens@Tokens
Comments@Comments
Identifiers@Identifiers
Keywords@Keywords
Literals@Literals
Preprocessing@Preprocessing
OMG IDL Grammar@OMG IDL Grammar
OMG IDL Specification@OMG IDL Specification
Import Declaration@Import Declaration
Module Declaration@Module Declaration
Interface Declaration@Interface Declaration
Interface Header@Interface Header
Interface Inheritance Specification@Interface Inheritance Specification
Interface Body@Interface Body
Forward Declaration@Forward Declaration
Interface Inheritance@Interface Inheritance
Abstract Interface@Abstract Interface
Local Interface@Local Interface
Value Declaration@Value Declaration
Regular Value Type@Regular Value Type
Boxed Value Type@Boxed Value Type
Abstract Value Type@Abstract Value Type
Value Forward Declaration@Value Forward Declaration
Valuetype Inheritance@Valuetype Inheritance
Constant Declaration@Constant Declaration
Syntax@Syntax
Semantics@Semantics
Type Declaration@Type Declaration
Basic Types@Basic Types
Constructed Types@Constructed Types
Template Types@Template Types
Complex Declarator@Complex Declarator
Native Types@Native Types
Deprecated Anonymous Types@Deprecated Anonymous Types
Exception Declaration@Exception Declaration
Operation Declaration@Operation Declaration
Operation Attribute@Operation Attribute
Parameter Declarations@Parameter Declarations
Raises Expressions@Raises Expressions
Context Expressions@Context Expressions
Attribute Declaration@Attribute Declaration
Repository Identity Related Declarations@Repository Identity Related Declarations
Repository Identity Declaration@Repository Identity Declaration
Repository Identifier Prefix Declaration@Repository Identifier Prefix Declaration
Event Declaration@Event Declaration
Regular Event Type@Regular Event Type
Abstract Event Type@Abstract Event Type
Event Forward Declaration@Event Forward Declaration
Eventtype Inheritance@Eventtype Inheritance
Component Declaration@Component Declaration
Component@Component
Component Header@Component Header
Component Body@Component Body
Event Sources—publishers and emitters@Event Sources—publishers and emitters
Event Sinks@Event Sinks
Basic and Extended Components@Basic and Extended Components
Home Declaration@Home Declaration
Home@Home
Home Header@Home Header
Home Body@Home Body
CORBA Module@CORBA Module
Names and Scoping@Names and Scoping
Qualified Names@Qualified Names
Scoping Rules and Name Resolution@Scoping Rules and Name Resolution
Special Scoping Rules for Type Names@Special Scoping Rules for Type Names
ORB Interface@ORB Interface
Overview@Overview
The ORB Operations@The ORB Operations
ORB Identity@ORB Identity
Converting Object References to Strings@Converting Object References to Strings
Getting Service Information@Getting Service Information
Thread-Related Operations@Thread-Related Operations
Object Reference Operations@Object Reference Operations
Determining the Object Interface@Determining the Object Interface
Duplicating and Releasing Copies of Object References@Duplicating and Releasing Copies of Object References
Nil Object References@Nil Object References
Equivalence Checking Operation@Equivalence Checking Operation
Probing for Object Non-Existence@Probing for Object Non-Existence
Object Reference Identity@Object Reference Identity
Type Coercion Considerations@Type Coercion Considerations
Getting Policy Associated with the Object@Getting Policy Associated with the Object
Overriding Associated Policies on an Object Reference@Overriding Associated Policies on an Object Reference
Validating Connection@Validating Connection
Getting the Domain Managers Associated with the Object@Getting the Domain Managers Associated with the Object
Getting Component Associated with the Object@Getting Component Associated with the Object
Getting the ORB@Getting the ORB
LocalObject Operations@LocalObject Operations
ValueBase Operations@ValueBase Operations
ORB and OA Initialization and Initial References@ORB and OA Initialization and Initial References
ORB Initialization@ORB Initialization
Obtaining Initial Object References@Obtaining Initial Object References
Context Object@Context Object
Current Object@Current Object
Policy Object@Policy Object
Definition of Policy Object@Definition of Policy Object
Creation of Policy Objects@Creation of Policy Objects
Usages of Policy Objects@Usages of Policy Objects
Policy Associated with the Execution Environment@Policy Associated with the Execution Environment
Specification of New Policy Objects@Specification of New Policy Objects
Standard Policies@Standard Policies
Management of Policies@Management of Policies
Client Side Policy Management@Client Side Policy Management
Server Side Policy Management@Server Side Policy Management
Policy Management Interfaces@Policy Management Interfaces
Management of Policy Domains@Management of Policy Domains
Basic Concepts@Basic Concepts
Domain Management Operations@Domain Management Operations
TypeCodes@TypeCodes
The TypeCode Interface@The TypeCode Interface
TypeCode Constants@TypeCode Constants
Creating TypeCodes@Creating TypeCodes
Value Type Semantics@Value Type Semantics
Overview@Overview
Architecture@Architecture
Abstract Values@Abstract Values
Operations@Operations
Value Type vs. Interfaces@Value Type vs. Interfaces
Parameter Passing@Parameter Passing
Substitutability Issues@Substitutability Issues
Widening/Narrowing@Widening/Narrowing
Value Base Type@Value Base Type
Life Cycle issues@Life Cycle issues
Security Considerations@Security Considerations
Standard Value Box Definitions@Standard Value Box Definitions
Language Mappings@Language Mappings
General Requirements@General Requirements
Language Specific Marshaling@Language Specific Marshaling
Language Specific Value Factory Requirements@Language Specific Value Factory Requirements
Value Method Implementation@Value Method Implementation
Custom Marshaling@Custom Marshaling
Implementation of Custom Marshaling@Implementation of Custom Marshaling
Marshaling Streams@Marshaling Streams
Access to the Sending Context Run Time@Access to the Sending Context Run Time
Abstract Interface Semantics@Abstract Interface Semantics
Overview@Overview
Semantics of Abstract Interfaces@Semantics of Abstract Interfaces
Usage Guidelines@Usage Guidelines
Example@Example
Security Considerations@Security Considerations
Passing Values to Trusted Domains@Passing Values to Trusted Domains
Dynamic Invocation Interface@Dynamic Invocation Interface
Overview@Overview
Common Data Structures@Common Data Structures
Memory Usage@Memory Usage
Return Status and Exceptions@Return Status and Exceptions
Request Operations@Request Operations
create_request@create_request
add_arg@add_arg
invoke@invoke
delete@delete
send@send
poll_response@poll_response
get_response@get_response
sendp@sendp
prepare@prepare
sendc@sendc
ORB Operations@ORB Operations
send_multiple_requests@send_multiple_requests
get_next_response and poll_next_response@get_next_response and poll_next_response
Polling@Polling
List Operations@List Operations
create_list@create_list
add_item@add_item
free@free
free_memory@free_memory
get_count@get_count
create_operation_list@create_operation_list
Dynamic Skeleton Interface@Dynamic Skeleton Interface
Introduction@Introduction
Overview@Overview
ServerRequestPseudo-Object@ServerRequestPseudo-Object
ExplicitRequest State: ServerRequestPseudo-Object@ExplicitRequest State: ServerRequestPseudo-Object
DSI: Language Mapping@DSI: Language Mapping
ServerRequest’s Handling of Operation Parameters@ServerRequest’s Handling of Operation Parameters
Registering Dynamic Implementation Routines@Registering Dynamic Implementation Routines
Dynamic Management of Any Values@Dynamic Management of Any Values
Overview@Overview
DynAny AP@DynAny AP
Usage in C++ Language@Usage in C++ Language
The Interface Repository@The Interface Repository
Overview@Overview
Scope of an Interface Repository@Scope of an Interface Repository
Implementation Dependencies@Implementation Dependencies
Managing Interface Repositories@Managing Interface Repositories
Basics@Basics
Names and Identifiers@Names and Identifiers
Types and TypeCodes@Types and TypeCodes
Interface Repository Objects@Interface Repository Objects
Structure and Navigation of the Interface Repository@Structure and Navigation of the Interface Repository
Interface Repository Interfaces@Interface Repository Interfaces
Supporting Type Definitions@Supporting Type Definitions
IRObject@IRObject
Contained@Contained
Container@Container
IDLType@IDLType
Repository@Repository
Read Interface@Read Interface
ModuleDef@ModuleDef
ConstantDef@ConstantDef
TypedefDef@TypedefDef
StructDef@StructDef
UnionDef@UnionDef
EnumDef@EnumDef
AliasDef@AliasDef
PrimitiveDef@PrimitiveDef
StringDef@StringDef
WstringDef@WstringDef
FixedDef@FixedDef
SequenceDef@SequenceDef
ArrayDef@ArrayDef
ExceptionDef@ExceptionDef
AttributeDef@AttributeDef
OperationDef@OperationDef
AbstractInterfaceDef@AbstractInterfaceDef
LocalInterfaceDef@LocalInterfaceDef
ValueMemberDef@ValueMemberDef
ValueDef@ValueDef
ValueBoxDef@ValueBoxDef
NativeDef@NativeDef
RepositoryId@RepositoryId
OMG IDL Format@OMG IDL Format
RMI Hashed Format@RMI Hashed Format
DCE UUID Format@DCE UUID Format
LOCAL Format@LOCAL Format
Pragma Directives for RepositoryId@Pragma Directives for RepositoryId
For More Information@For More Information
RepositoryIDs for OMG-Specified Types@RepositoryIDs for OMG-Specified Types
OMG IDL for Interface Repository@OMG IDL for Interface Repository
The Portable Object Adapter@The Portable Object Adapter
Overvie@Overvie
Abstract Model Description@Abstract Model Description
Model Components@Model Components
Model Architecture@Model Architecture
POA Creation@POA Creation
Reference Creation@Reference Creation
Object Activation States@Object Activation States
Request Processing@Request Processing
Implicit Activation@Implicit Activation
Dynamic Skeleton Interface@Dynamic Skeleton Interface
Interfaces@Interfaces
The Servant IDL Type@The Servant IDL Type
POAManager Interface@POAManager Interface
AdapterActivator Interface@AdapterActivator Interface
ServantManager Interface@ServantManager Interface
ServantActivator Interface@ServantActivator Interface
ServantLocator Interface@ServantLocator Interface
POA Policy Objects@POA Policy Objects
POA Interface@POA Interface
IDL for PortableServer Module@IDL for PortableServer Module
UML Description of PortableServer@UML Description of PortableServer
Usage Scenarios@Usage Scenarios
Getting the Root POA@Getting the Root POA
Creating a POA@Creating a POA
Explicit Activation with POA-assigned Object Ids@Explicit Activation with POA-assigned Object Ids
Explicit Activation with User-assigned Object Ids@Explicit Activation with User-assigned Object Ids
Creating References before Activation@Creating References before Activation
Servant Manager Definition and Creation@Servant Manager Definition and Creation
Object Activation on Demand@Object Activation on Demand
Persistent Objects with POA-assigned Ids@Persistent Objects with POA-assigned Ids
Multiple Object Ids Mapping to a Single Servant@Multiple Object Ids Mapping to a Single Servant
One Servant for All Objects@One Servant for All Objects
Interoperability Overview@Interoperability Overview
Elements of Interoperability@Elements of Interoperability
ORB Interoperability Architecture@ORB Interoperability Architecture
Inter-ORB Bridge Support@Inter-ORB Bridge Support
General Inter-ORB Protocol@General Inter-ORB Protocol
Internet Inter-ORB Protocol@Internet Inter-ORB Protocol
Environment-Specific Inter-ORB Protocols@Environment-Specific Inter-ORB Protocols
Relationship to Previous Versions of CORBA@Relationship to Previous Versions of CORBA
Examples of Interoperability Solutions@Examples of Interoperability Solutions
Example 1@Example 1
Example 2@Example 2
Example 3@Example 3
Interoperability Compliance@Interoperability Compliance
Motivating Factors@Motivating Factors
ORB Implementation Diversity@ORB Implementation Diversity
ORB Boundaries@ORB Boundaries
ORBs Vary in Scope, Distance, and Lifetime@ORBs Vary in Scope, Distance, and Lifetime
Interoperability Design Goals@Interoperability Design Goals
Non-Goals@Non-Goals
ORB Interoperability Architecture@ORB Interoperability Architecture
Overview@Overview
Domains@Domains
Bridging Domains@Bridging Domains
ORBs and ORB Services@ORBs and ORB Services
The Nature of ORB Services@The Nature of ORB Services
ORB Services and Object Requests@ORB Services and Object Requests
Selection of ORB Services@Selection of ORB Services
Domains@Domains
Definition of a Domain@Definition of a Domain
Mapping Between Domains: Bridging@Mapping Between Domains: Bridging
Interoperability Between ORBs@Interoperability Between ORBs
ORB Services and Domains@ORB Services and Domains
ORBs and Domains@ORBs and Domains
Interoperability Approaches@Interoperability Approaches
Policy-Mediated Bridging@Policy-Mediated Bridging
Configurations of Bridges in Networks@Configurations of Bridges in Networks
Object Addressing@Object Addressing
Domain-relative Object Referencing@Domain-relative Object Referencing
Handling of Referencing Between Domains@Handling of Referencing Between Domains
An Information Model for Object References@An Information Model for Object References
What Information Do Bridges Need?@What Information Do Bridges Need?
Interoperable Object References: IORs@Interoperable Object References: IORs
IOR Profiles@IOR Profiles
Standard IOR Profiles@Standard IOR Profiles
IOR Components@IOR Components
Standard IOR Components@Standard IOR Components
Profile and Component Composition in IORs@Profile and Component Composition in IORs
IOR Creation and Scope@IOR Creation and Scope
Stringified Object References@Stringified Object References
Service Context@Service Context
Standard Service Contexts@Standard Service Contexts
Service Context Processing Rules@Service Context Processing Rules
Coder/Decoder Interfaces@Coder/Decoder Interfaces
Codec Interface@Codec Interface
Codec Factory@Codec Factory
Feature Support and GIOP Versions@Feature Support and GIOP Versions
Code Set Conversion@Code Set Conversion
Character Processing Terminology@Character Processing Terminology
Code Set Conversion Framework@Code Set Conversion Framework
Mapping to Generic Character Environments@Mapping to Generic Character Environments
Example of Generic Environment Mapping@Example of Generic Environment Mapping
Relevant OSFM Registry Interfaces@Relevant OSFM Registry Interfaces
Building Inter-ORB Bridges@Building Inter-ORB Bridges
Introduction@Introduction
In-Line and Request-Level Bridging@In-Line and Request-Level Bridging
In-line Bridging@In-line Bridging
Request-level Bridging@Request-level Bridging
Collocated ORBs@Collocated ORBs
Proxy Creation and Management@Proxy Creation and Management
Interface-specific Bridges and Generic Bridges@Interface-specific Bridges and Generic Bridges
Building Generic Request-Level Bridges@Building Generic Request-Level Bridges
Bridging Non-Referencing Domains@Bridging Non-Referencing Domains
Bootstrapping Bridges@Bootstrapping Bridges
General Inter-ORB Protocol@General Inter-ORB Protocol
Goals of the General Inter-ORB Protocol@Goals of the General Inter-ORB Protocol
GIOP Overview@GIOP Overview
Common Data Representation@Common Data Representation
GIOP Message Overview@GIOP Message Overview
GIOP Message Transfer@GIOP Message Transfer
CDR Transfer Syntax@CDR Transfer Syntax
Primitive Types@Primitive Types
OMG IDL Constructed Types@OMG IDL Constructed Types
Encapsulation@Encapsulation
Value Types@Value Types
Pseudo-Object Types@Pseudo-Object Types
Object References@Object References
Abstract Interfaces@Abstract Interfaces
GIOP Message Formats@GIOP Message Formats
GIOP Message Header@GIOP Message Header
Request Message@Request Message
Reply Message@Reply Message
CancelRequest Message@CancelRequest Message
LocateRequest Message@LocateRequest Message
LocateReply Message@LocateReply Message
CloseConnection Message@CloseConnection Message
MessageError Message@MessageError Message
Fragment Message@Fragment Message
Connection Management@Connection Management
Message Ordering@Message Ordering
Object Location@Object Location
Internet Inter-ORB Protocol@Internet Inter-ORB Protocol
TCP/IP Connection Usage@TCP/IP Connection Usage
IIOP IOR Profiles@IIOP IOR Profiles
IIOP IOR Profile Components@IIOP IOR Profile Components
Bi-Directional GIOP@Bi-Directional GIOP
Bi-Directional IIOP@Bi-Directional IIOP
Bi-directional GIOP policy@Bi-directional GIOP policy
OMG IDL@OMG IDL
GIOP Module@GIOP Module
IIOP Module@IIOP Module
BiDirPolicy Module@BiDirPolicy Module
The DCE ESIOP@The DCE ESIOP
Goals of the DCE Common Inter-ORB Protocol@Goals of the DCE Common Inter-ORB Protocol
DCE Common Inter-ORB Protocol Overview@DCE Common Inter-ORB Protocol Overview
DCE-CIOP RPC@DCE-CIOP RPC
DCE-CIOP Data Representation@DCE-CIOP Data Representation
DCE-CIOP Messages@DCE-CIOP Messages
Interoperable Object Reference@Interoperable Object Reference
DCE-CIOP Message Transport@DCE-CIOP Message Transport
Pipe-based Interface@Pipe-based Interface
Array-based Interface@Array-based Interface
DCE-CIOP Message Formats@DCE-CIOP Message Formats
DCE_CIOP Invoke Request Message@DCE_CIOP Invoke Request Message
DCE-CIOP Invoke Response Message@DCE-CIOP Invoke Response Message
DCE-CIOP Locate Request Message@DCE-CIOP Locate Request Message
DCE-CIOP Locate Response Message@DCE-CIOP Locate Response Message
DCE-CIOP Object References@DCE-CIOP Object References
DCE-CIOP String Binding Component@DCE-CIOP String Binding Component
DCE-CIOP Binding Name Component@DCE-CIOP Binding Name Component
DCE-CIOP No Pipes Component@DCE-CIOP No Pipes Component
Complete Object Key Component@Complete Object Key Component
Endpoint ID Position Component@Endpoint ID Position Component
Location Policy Component@Location Policy Component
DCE-CIOP Object Location@DCE-CIOP Object Location
Location Mechanism Overview@Location Mechanism Overview
Activation@Activation
Basic Location Algorithm@Basic Location Algorithm
Use of the Location Policy and the Endpoint ID@Use of the Location Policy and the Endpoint ID
OMG IDL for the DCE CIOP Module@OMG IDL for the DCE CIOP Module
References for this Chapter@References for this Chapter
Interworking Architecture@Interworking Architecture
Purpose of the Interworking Architecture@Purpose of the Interworking Architecture
Comparing COM Objects to CORBA Objects@Comparing COM Objects to CORBA Objects
Interworking Object Model@Interworking Object Model
Relationship to CORBA Object Model@Relationship to CORBA Object Model
Relationship to the OLE/COM Model@Relationship to the OLE/COM Model
Basic Description of the Interworking Model@Basic Description of the Interworking Model
Interworking Mapping Issues@Interworking Mapping Issues
Interface Mapping@Interface Mapping
CORBA/COM@CORBA/COM
CORBA/Automation@CORBA/Automation
COM/CORBA@COM/CORBA
Automation/CORBA@Automation/CORBA
Interface Composition Mappings@Interface Composition Mappings
CORBA/COM@CORBA/COM
Detailed Mapping Rules@Detailed Mapping Rules
Example of Applying Ordering Rules@Example of Applying Ordering Rules
Mapping Interface Identity@Mapping Interface Identity
Object Identity, Binding, and Life Cycle@Object Identity, Binding, and Life Cycle
Object Identity Issues@Object Identity Issues
Interworking Interfaces@Interworking Interfaces
SimpleFactory Interface@SimpleFactory Interface
IMonikerProvider Interface and Moniker Use@IMonikerProvider Interface and Moniker Use
ICORBAFactory Interface@ICORBAFactory Interface
IForeignObject Interface@IForeignObject Interface
ICORBAObject Interface@ICORBAObject Interface
ICORBAObject2@ICORBAObject2
Naming Conventions for View Components@Naming Conventions for View Components
Distribution@Distribution
Bridge Locality@Bridge Locality
Distribution Architecture@Distribution Architecture
Compliance to COM/CORBA Interworking@Compliance to COM/CORBA Interworking
Products Subject to Compliance@Products Subject to Compliance
Compliance Points@Compliance Points
Mapping: COM and CORBA@Mapping: COM and CORBA
Data Type Mapping@Data Type Mapping
CORBA to COM Data Type Mapping@CORBA to COM Data Type Mapping
Mapping for Basic Data Types@Mapping for Basic Data Types
Mapping for Constants@Mapping for Constants
Mapping for Enumerators@Mapping for Enumerators
Mapping for String Types@Mapping for String Types
Mapping for Struct Types@Mapping for Struct Types
Mapping for Union Types@Mapping for Union Types
Mapping for Sequence Types@Mapping for Sequence Types
Mapping for Array Types@Mapping for Array Types
Mapping for the any Type@Mapping for the any Type
Interface Mapping@Interface Mapping
Inheritance Mapping@Inheritance Mapping
Mapping for Pseudo-Objects@Mapping for Pseudo-Objects
Interface Repository Mapping@Interface Repository Mapping
COM to CORBA Data Type Mapping@COM to CORBA Data Type Mapping
Mapping for Basic Data Types@Mapping for Basic Data Types
Mapping for Constants@Mapping for Constants
Mapping for Enumerators@Mapping for Enumerators
Mapping for String Types@Mapping for String Types
Mapping for Structure Types@Mapping for Structure Types
Mapping for Union Types@Mapping for Union Types
Mapping for Array Types@Mapping for Array Types
Mapping for VARIANT@Mapping for VARIANT
Mapping for Pointers@Mapping for Pointers
Interface Mapping@Interface Mapping
Mapping for Read-Only Attributes@Mapping for Read-Only Attributes
Mapping for Read-Write Attributes@Mapping for Read-Write Attributes
Mapping: Automation and CORBA@Mapping: Automation and CORBA
Mapping CORBA Objects to Automation@Mapping CORBA Objects to Automation
Architectural Overview@Architectural Overview
Main Features of the Mapping@Main Features of the Mapping
Mapping for Interfaces@Mapping for Interfaces
Mapping for Attributes and Operations@Mapping for Attributes and Operations
Mapping for OMG IDL Single Inheritance@Mapping for OMG IDL Single Inheritance
Mapping of OMG IDL Multiple Inheritance@Mapping of OMG IDL Multiple Inheritance
Mapping for Basic Data Types@Mapping for Basic Data Types
Basic Automation Types@Basic Automation Types
Special Cases of Basic Data Type Mapping@Special Cases of Basic Data Type Mapping
Mapping for Strings@Mapping for Strings
IDL to ODL Mapping@IDL to ODL Mapping
A Complete IDL to ODL Mapping for the Basic Data Types@A Complete IDL to ODL Mapping for the Basic Data Types
Mapping for Object References@Mapping for Object References
Type Mapping@Type Mapping
Object Reference Parameters and IForeignObject@Object Reference Parameters and IForeignObject
Mapping for Enumerated Types@Mapping for Enumerated Types
Mapping for Arrays and Sequences@Mapping for Arrays and Sequences
Mapping for CORBA Complex Types@Mapping for CORBA Complex Types
Mapping for Structure Types@Mapping for Structure Types
Mapping for Union Types@Mapping for Union Types
Mapping for TypeCodes@Mapping for TypeCodes
Mapping for anys@Mapping for anys
Mapping for Constants@Mapping for Constants
Getting Initial CORBA Object References@Getting Initial CORBA Object References
Creating Initial in Parameters for Complex Types@Creating Initial in Parameters for Complex Types
Mapping CORBA Exceptions to Automation Exceptions@Mapping CORBA Exceptions to Automation Exceptions
Conventions for Naming Components of the Automation View@Conventions for Naming Components of the Automation View
Naming Conventions for Pseudo-Structs, Pseudo-Unions, and Pseudo-Exceptions@Naming Conventions for Pseudo-Structs, Pseudo-Unions, and Pseudo-Exceptions
Automation View Interface as a Dispatch Interface@Automation View Interface as a Dispatch Interface
Aggregation of Automation Views@Aggregation of Automation Views
DII and DSI@DII and DSI
Mapping Automation Objects as CORBA Objects@Mapping Automation Objects as CORBA Objects
Main Features of the Mapping@Main Features of the Mapping
Getting Initial Object References@Getting Initial Object References
Mapping for Interfaces@Mapping for Interfaces
Mapping for Inheritance@Mapping for Inheritance
Mapping for ODL Properties and Methods@Mapping for ODL Properties and Methods
Mapping for Automation Basic Data Types@Mapping for Automation Basic Data Types
Conversion Errors@Conversion Errors
Special Cases of Data Type Conversion@Special Cases of Data Type Conversion
A Complete OMG IDL to ODL Mapping for the Basic Data Types@A Complete OMG IDL to ODL Mapping for the Basic Data Types
Mapping for Enumerated Types@Mapping for Enumerated Types
Mapping for SafeArrays@Mapping for SafeArrays
Mapping for Typedefs@Mapping for Typedefs
Mapping for VARIANTs@Mapping for VARIANTs
Mapping Automation Exceptions to CORBA@Mapping Automation Exceptions to CORBA
Older Automation Controllers@Older Automation Controllers
Mapping for OMG IDL Arrays and Sequences to Collections@Mapping for OMG IDL Arrays and Sequences to Collections
Example Mappings@Example Mappings
Mapping the OMG Naming Service to Automation@Mapping the OMG Naming Service to Automation
Mapping a COM Service to OMG IDL@Mapping a COM Service to OMG IDL
Mapping an OMG Object Service to Automation@Mapping an OMG Object Service to Automation
Interoperability with non-CORBA Systems@Interoperability with non-CORBA Systems
Introduction@Introduction
COM/CORBA Part A@COM/CORBA Part A
Conformance Issues@Conformance Issues
Performance Issues@Performance Issues
Scalability Issues@Scalability Issues
CORBA Clients for DCOM Servers@CORBA Clients for DCOM Servers
Locality of the Bridge@Locality of the Bridge
Extent Definition@Extent Definition
Marshaling Constraints@Marshaling Constraints
Marshaling Key@Marshaling Key
Extent Format@Extent Format
Request/Reply Extent Semantics@Request/Reply Extent Semantics
Consistenc@Consistenc
IValueObject@IValueObject
ISynchronize and DISynchronize@ISynchronize and DISynchronize
DCOM Value Objects@DCOM Value Objects
Passing Automation Compound Types as DCOM Value Objects@Passing Automation Compound Types as DCOM Value Objects
Passing CORBA-Defined Pseudo-Objects as DCOM Value Objects@Passing CORBA-Defined Pseudo-Objects as DCOM Value Objects
IForeignObject@IForeignObject
DIForeignComplexType@DIForeignComplexType
DIForeignException@DIForeignException
DISystemException@DISystemException
DICORBAUserException@DICORBAUserException
DICORBAStruct@DICORBAStruct
DICORBAUnion@DICORBAUnion
DICORBATypeCode and ICORBATypeCode@DICORBATypeCode and ICORBATypeCode
DICORBAAny@DICORBAAny
ICORBAAny@ICORBAAny
User Exceptions In COM@User Exceptions In COM
Chain Avoidance@Chain Avoidance
CORBA Chain Avoidance@CORBA Chain Avoidance
COM Chain Avoidance@COM Chain Avoidance
Chain Bypass@Chain Bypass
CORBA Chain Bypass@CORBA Chain Bypass
COM Chain Bypass@COM Chain Bypass
Thread Identification@Thread Identification
Portable Interceptors@Portable Interceptors
Introduction@Introduction
Object Creation@Object Creation
Client Sends Request@Client Sends Request
Server Receives Request@Server Receives Request
Server Sends Reply@Server Sends Reply
Client Receives Reply@Client Receives Reply
Interceptor Interface@Interceptor Interface
Request Interceptors@Request Interceptors
Design Principles@Design Principles
General Flow Rules@General Flow Rules
The Flow Stack Visual Model@The Flow Stack Visual Model
The Request Interceptor Points@The Request Interceptor Points
Client-Side Interceptor@Client-Side Interceptor
Client-Side Interception Points@Client-Side Interception Points
Client-Side Interception Point Flow@Client-Side Interception Point Flow
Server-Side Interceptor@Server-Side Interceptor
Server-Side Interception Points@Server-Side Interception Points
Server-Side Interception Point Flow@Server-Side Interception Point Flow
Request Information@Request Information
RequestInfo Interface@RequestInfo Interface
ClientRequestInfo Interface@ClientRequestInfo Interface
ServerRequestInfo Interface@ServerRequestInfo Interface
ForwardRequest Exception@ForwardRequest Exception
Portable Interceptor Current@Portable Interceptor Current
Overview@Overview
Obtaining the Portable Interceptor Current@Obtaining the Portable Interceptor Current
Portable Interceptor Current Interface@Portable Interceptor Current Interface
Use of Portable Interceptor Current@Use of Portable Interceptor Current
IOR Interceptor@IOR Interceptor
Overview@Overview
IORInterceptor Interface@IORInterceptor Interface
IORInfo Interface@IORInfo Interface
PolicyFactory@PolicyFactory
PolicyFactory Interface@PolicyFactory Interface
Registering Interceptors@Registering Interceptors
ORBInitializer Interface@ORBInitializer Interface
ORBInitInfo Interface@ORBInitInfo Interface
register_orb_initializer Operation@register_orb_initializer Operation
Notes about Registering Interceptors@Notes about Registering Interceptors
Dynamic Initial References@Dynamic Initial References
register_initial_reference@register_initial_reference
Module Dynamic@Module Dynamic
NVList PIDL Represented by ParameterList IDL@NVList PIDL Represented by ParameterList IDL
ContextList PIDL Represented by ContextList IDL@ContextList PIDL Represented by ContextList IDL
ExceptionList PIDL Represented by ExceptionList IDL@ExceptionList PIDL Represented by ExceptionList IDL
Context PIDL Represented by RequestContext IDL@Context PIDL Represented by RequestContext IDL
Consolidated IDL@Consolidated IDL
Dynamic@Dynamic
Portions of IOP Relevant to Portable Interceptor@Portions of IOP Relevant to Portable Interceptor
PortableInterceptor@PortableInterceptor
CORBA Messaging@CORBA Messaging
Section I - Introduction@Section I - Introduction
Messaging Quality of Service@Messaging Quality of Service
Rebind Support@Rebind Support
Synchronization Scope@Synchronization Scope
Request and Reply Priority@Request and Reply Priority
Request and Reply Timeout@Request and Reply Timeout
Routing@Routing
Queue Ordering@Queue Ordering
Propagation of Messaging QoS@Propagation of Messaging QoS
Structures@Structures
Messaging QoS Profile Component@Messaging QoS Profile Component
Messaging QoS Service Context@Messaging QoS Service Context
Section II - Introduction@Section II - Introduction
Running Example@Running Example
Async Operation Mapping@Async Operation Mapping
Callback Model Signatures@Callback Model Signatures
Polling Model Signatures@Polling Model Signatures
Exception Delivery in the Callback Model@Exception Delivery in the Callback Model
Messaging::ExceptionHolder valuetype@Messaging::ExceptionHolder valuetype
Type-Specific ReplyHandler Mapping@Type-Specific ReplyHandler Mapping
ReplyHandler Operations for NO_EXCEPTION Replies@ReplyHandler Operations for NO_EXCEPTION Replies
ReplyHandler Operations for Exceptional Replies@ReplyHandler Operations for Exceptional Replies
Example@Example
Generic Poller Value@Generic Poller Value
operation_target@operation_target
operation_name@operation_name
associated_handler@associated_handler
is_from_poller@is_from_poller
Type-Specific Poller Mapping@Type-Specific Poller Mapping
Basic Type-Specific Poller@Basic Type-Specific Poller
Persistent Type-Specific Poller@Persistent Type-Specific Poller
Example@Example
Example Programmer Usage@Example Programmer Usage
Example Programmer Usage@Example Programmer Usage
Client-Side C++ Example for the Asynchronous Method Signatures@Client-Side C++ Example for the Asynchronous Method Signatures
Client-Side C++ Example of the Callback Model@Client-Side C++ Example of the Callback Model
Client-Side C++ Example of the Polling Model@Client-Side C++ Example of the Polling Model
Server Side@Server Side
Section III - Introduction@Section III - Introduction
Routing Object References@Routing Object References
Message Routing@Message Routing
Structures@Structures
Interfaces@Interfaces
Routing Protocol@Routing Protocol
Router Administration@Router Administration
Constants@Constants
Exceptions@Exceptions
Valuetypes@Valuetypes
Interfaces@Interfaces
CORBA Messaging IDL@CORBA Messaging IDL
Messaging Module@Messaging Module
MessageRouting Module@MessageRouting Module
Fault TolerantCORBA@Fault TolerantCORBA
Fault Tolerant CORBA@Fault Tolerant CORBA
Fault Tolerance for Diverse Applications@Fault Tolerance for Diverse Applications
Objectives@Objectives
Basic Concepts@Basic Concepts
Architectural Overview@Architectural Overview
Requirements@Requirements
Limitations@Limitations
Basic Fault Tolerance Mechanisms@Basic Fault Tolerance Mechanisms
Overview@Overview
Interoperable Object Group References@Interoperable Object Group References
Interoperable Object Group Reference Operations@Interoperable Object Group Reference Operations
Modes of Profile Addressing@Modes of Profile Addressing
Accessing Server Object Groups@Accessing Server Object Groups
Extensions to CORBA Failover Semantics@Extensions to CORBA Failover Semantics
Most Recent Object Group Reference@Most Recent Object Group Reference
Transparent Reinvocation@Transparent Reinvocation
Transport Heartbeats@Transport Heartbeats
Replication Management@Replication Management
Overview@Overview
Fault Tolerance Properties@Fault Tolerance Properties
FaultMonitoringIntervalAndTimeout@FaultMonitoringIntervalAndTimeout
CheckpointInterval@CheckpointInterval
Common Types@Common Types
Replication Manager@Replication Manager
PropertyManager@PropertyManager
ObjectGroupManager@ObjectGroupManager
GenericFactory@GenericFactory
Obtaining the Reference for the Replication Manager@Obtaining the Reference for the Replication Manager
Use Cases@Use Cases
Fault Management@Fault Management
Overview@Overview
Connecting Fault Detectors to Applications@Connecting Fault Detectors to Applications
Pull-Based Monitoring@Pull-Based Monitoring
Fault Event Types@Fault Event Types
Fault Notifier@Fault Notifier
Use Cases@Use Cases
Logging & Recovery Management@Logging & Recovery Management
Overview@Overview
Logging Mechanism@Logging Mechanism
Recovery Mechanism@Recovery Mechanism
Checkpointable and Updateable Interfaces@Checkpointable and Updateable Interfaces
Use Case@Use Case
Consolidated IDL@Consolidated IDL
OMG IDL@OMG IDL
Secure Interoperability@Secure Interoperability
Overview@Overview
Assumptions@Assumptions
Protocol Message Definitions@Protocol Message Definitions
The Security Attribute Service Context Element@The Security Attribute Service Context Element
SAS context_data Message Body Types@SAS context_data Message Body Types
Authorization Token Format@Authorization Token Format
Client Authentication Token Format@Client Authentication Token Format
Identity Token Format@Identity Token Format
Principal Names and Distinguished Names@Principal Names and Distinguished Names
Security Attribute Service Protocol@Security Attribute Service Protocol
Compound Mechanisms@Compound Mechanisms
Session Semantics@Session Semantics
TSS State Machine@TSS State Machine
CSS State Machine@CSS State Machine
ContextError Values and Exceptions@ContextError Values and Exceptions
Transport Security Mechanisms@Transport Security Mechanisms
Transport Layer Interoperability@Transport Layer Interoperability
Transport Mechanism Configuration@Transport Mechanism Configuration
Interoperable Object References@Interoperable Object References
Target Security Configuration@Target Security Configuration
Client-side Mechanism Selection@Client-side Mechanism Selection
Client-Side Requirements and Location Binding@Client-Side Requirements and Location Binding
Conformance Levels@Conformance Levels
Conformance Level 0@Conformance Level 0
Conformance Level 1@Conformance Level 1
Conformance Level 2@Conformance Level 2
Stateful Conformance@Stateful Conformance
Sample Message Flows and Scenarios@Sample Message Flows and Scenarios
Confidentiality, Trust in Server, and Trust in Client Established in the Connection@Confidentiality, Trust in Server, and Trust in Client Established in the Connection
Confidentiality and Trust in Server Established in the Connection - Stateless Trust in Client Established in Service Context@Confidentiality and Trust in Server Established in the Connection - Stateless Trust in Client Established in Service Context
Confidentiality, Trust in Server, and Trust in Client Established in the Connection - Stateless Trust Association Established in Service Context@Confidentiality, Trust in Server, and Trust in Client Established in the Connection - Stateless Trust Association Established in Service Context
Confidentiality, Trust in Server, and Trust in Client Established in the Connection - Stateless Forward Trust Association Established in Service Context@Confidentiality, Trust in Server, and Trust in Client Established in the Connection - Stateless Forward Trust Association Established in Service Context
References for this Chapter@References for this Chapter
IDL@IDL
Module GSSUP - Username/Password GSSAPI Token Formats@Module GSSUP - Username/Password GSSAPI Token Formats
Module CSI - Common Secure Interoperability@Module CSI - Common Secure Interoperability
Module CSIIOP - CSIv2 IOR Component Tag Definitions@Module CSIIOP - CSIv2 IOR Component Tag Definitions