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