The Common Object Request Broker: Architecture and Specification

The Common Object Request Broker: Architecture and Specification

The Common Object Request Broker: Architecture and Specification Digital Equipment Corporation Hewlett-Packard Company HyperDesk Corporation NCR Corporation Object Design, Inc. SunSoft, Inc. OMG Document Number 93.xx.yy Revision 1.2 Draft 29 December 1993 Copyright 1991, 1992 by Digital Equipment Corporation Copyright 1989, 1990, 1991, 1992 by Hewlett-Packard Corporation Copyright 1991, 1992 by HyperDesk Corporation Copyright 1991, 1992 by NCR Corporation Copyright 1991,1992 by Object Design, Inc. Copyright 1991, 1992 by Sun Microsystems, Inc. Sun Microsystems, Inc., Hewlett-Packard Company, HyperDesk Corporation, NCR Corporation, Digital Equipment Corporation, and Object Design, Inc. hereby grant to the Object Management Group, Inc. a non-exclusive, royalty- free, paid up, worldwide license to copy and distribute this document and to modify this document and distribute cop- ies of the modified version. Each of the copyright holders listed above agrees that not person shall be deemed to have infringed any copyright, patent or any other proprietary right of any such copyright holder by reason of having used the specification set forth herein or having conformed any computer software to the specification. NOTICE The information contained in this document is subject to change without notice. The material in this document details an Object Management Group specification in accordance with the license and notices set forth on this page. This document does not represent a commitment to implement any portion of this spec- ification in any companies' products. WHILE THE INFORMATION IN THIS PUBLICATION IS BELIEVED TO BE ACCURATE, THE OBJECT MANAGEMENT GROUP, DIGITAL EQUIPMENT CORPORATION, HEWLETT-PACKARD COMPANY, HYPERDESK CORPORATION, NCR CORPORATION, OBJECT DESIGN, INC., SUN MICROSYSTEMS, INC., AND X/OPEN CO. LTD., MAKE NO WARRANTY OF ANY KIND WITH REGARDS TO THIS MATERIAL INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. The Object Management Group, Inc., Digital Equipment Corporation, Hewlett-Packard Company, HyperDesk Corporation, NCR Corporation, Object Design, Inc., Sun Microsystems, Inc., and X/Open Co. Ltd. shall not be liable for errors contained herein or for inci- dental or consequential damages in connection with the furnishing, performance or use of this material. The copyright holders listed above acknowledge that the Object Management Group (acting itself or through its des- ignees) is and shall tat all times be the sole entity that may authorize developers, suppliers and sellers of computer software to use certification marks, trademarks or other special designations to indicate compliance with these mate- rials. This document contains information which is protected by copyright. All Rights Reserved. No part of this work cov- ered by copyright hereon may be reproduced or used in any form or by any means--graphic, electronic or mechanical, including photocopying, recording, taping, or information storage and retrieval systems--without permission of the copyright owner. RESTRICTED RIGHTS LEGEND. Use, duplication, or disclosure by government is subject to restrictions as set forth in subdivision (c) (1) (ii) of the Right in Technical Data and Computer Software Clause at DFARS 252.227.7013. Hewlett-Packard Company is a trademark of Hewlett-Packard Company HyperDesk is a trademark of HyperDesk Corporation SunSoft is a trademark of Sun Microsystems, Inc., licensed to SunSoft, Inc. X/Open and the "X" symbol are trademarks of X/Open Company Limited. Preface on X/Open X/Open is an independent, worldwide, open systems organization supported by most of the world's largest information system suppliers, user organizations and software companies. Its mission is to bring to users greater value from computing, through the practical implementation of open systems. X/Open's strategy for achieving this goal is to combine existing and emerging standards into a com- prehensive, integrated, high value and usable systems environment called the Common Applications Environment (CAE). The components of the CAE are defined in X/Open CAE specifications. These contain, among other things, an evolving portfolio of practical application programming interfaces (API's), which signifi- cantly enhance portability of application programs at the source code level, and definitions of, and references to, protocols and protocol profiles, which significantly enhance the interoperability of applications. The X/Open CAE Specifications are supported further by an extensive set of conformance tests and a distinct X/Open trademark - the XPG Brand - that is licensed by X/Open and may be carried only on products that comply with the CAE specifications. This Document This document is a joint publication of X/Open and the Object Management Group and is endorsed by both organizations. In terms of the X/Open family of publications, it has the stand- ing as an X/Open Preliminary Specification of the Object Request Broker component of responses. The Object Request Broker provides interoperability between applications on differ- ent machines in distributed environments. "X/Open" and the "X" symbol are Trademarks of X/Open Company Limited. Table of Contents 1 Overview 15 1.1 Overview 15 1.2 Typographical Conventions 17 2 The Object Model 19 2.1 Overview 19 2.2 Object Semantics 20 2.2.1 Objects 21 2.2.2 Requests 21 2.2.3 Object Creation and Destruction 22 2.2.4 Types 22 2.2.5 Interfaces 24 2.2.6 Operations 24 2.2.7 Attributes 26 2.3 Object Implementation 26 2.3.1 The Execution Model: Performing Services 26 2.3.2 The Construction Model 27 3 The Common Object Request Broker Architecture 29 3.1 The Structure of an Object Request Broker 30 3.1.1 Object Request Broker 34 3.1.2 Clients 35 3.1.3 Object Implementations 35 THE COMMON OBJECT REQUEST BROKER: ARCHITECTURE AND SPECIFICATION v Contents 3.1.4 Object References 36 3.1.5 IDL Interface Definition Language 36 3.1.6 Programming Language Mapping 36 3.1.7 Client Stubs 37 3.1.8 Dynamic Invocation Interface 37 3.1.9 Implementation Skeleton 37 3.1.10 Object Adapters 38 3.1.11 ORB Interface 38 3.1.12 Interface Repository 38 3.1.13 Implementation Repository 39 3.2 Some Example ORBs 39 3.2.1 Client- and Implementation-resident ORB 39 3.2.2 Server-based ORB 39 3.2.3 System-based ORB 39 3.2.4 Library-based ORB 40 3.3 The Structure of a Client 40 3.4 The Structure of an Object Implementation 42 3.5 The Structure of an Object Adapter 43 3.6 Some Example Object Adapters 45 3.6.1 Basic Object Adapter 45 3.6.2 Library Object Adapter 45 3.6.3 Object-Oriented Database Adapter 45 3.7 The Integration of Foreign Object Systems 46 4 IDL Syntax and Semantics 47 4.1 Lexical Conventions 49 4.1.1 Tokens 52 4.1.2 Comments 52 4.1.3 Identifiers 52 4.1.4 Keywords 53 4.1.5 Literals 54 4.2 Preprocessing 56 4.3 IDL Grammar 56 4.4 IDL Specification 60 4.4.1 Module Declaration 61 4.4.2 Interface Declaration 61 4.5 Inheritance 63 4.6 Constant Declaration 65 4.6.1 Syntax 65 4.6.2 Semantics 66 4.7 Type Declaration 68 4.7.1 Basic Types 69 4.7.2 Constructed Types 70 4.7.3 Template Types 73 4.7.4 Complex Declarator 74 4.8 Exception Declaration 75 4.9 Operation Declaration 75 4.9.1 Operation Attribute 76 vi THE COMMON OBJECT REQUEST BROKER: ARCHITECTURE AND SPECIFICATION Contents 4.9.2 Parameter Declarations 76 4.9.3 Raises Expressions 77 4.9.4 Context Expressions 77 4.10 Attribute Declaration 78 4.11 CORBA Module 79 4.12 Names and Scoping 79 4.13 Differences from C++ 82 4.14 Standard Exceptions 82 5 C Language Stub Mapping 85 5.1 Requirements for a Language Mapping 85 5.1.1 Basic Data Types 86 5.1.2 Constructed Data Types 86 5.1.3 Constants 86 5.1.4 Objects 86 5.1.5 Invocation of Operations 87 5.1.6 Exceptions 87 5.1.7 Attributes 88 5.1.8 ORB Interfaces 88 5.1.9 Language Stub Mapping 89 5.2 Scoped Names 89 5.3 Mapping for Interfaces 90 5.4 Inheritance and Operation Names 91 5.5 Mapping for Attributes 92 5.6 Mapping for Constants 93 5.7 Mapping for Basic Data Types 93 5.8 Mapping for Structure Types 94 5.9 Mapping for Union Types 94 5.10 Mapping for Sequence Types 95 5.11 Mapping for Strings 97 5.12 Mapping for Arrays 99 5.13 Mapping for Exception Types 99 5.14 Implicit Arguments to Operations 99 5.15 Interpretation of Functions with Empty Argument Lists 100 5.16 Argument Passing Considerations 100 5.17 Return Result Passing Considerations 101 5.18 Summary of Argument/Result Passing 102 5.19 Handling Exceptions 104 5.20 Method Routine Signatures 107 5.21 Include Files 107 5.22 Pseudo-objects 107 THE COMMON OBJECT REQUEST BROKER: ARCHITECTURE AND SPECIFICATION vii Contents 6 Dynamic Invocation Interface 109 6.1 Overview 109 6.1.1 Common Data Structures 110 6.1.2 Memory Usage 112 6.1.3 Return Statuses and Exceptions 112 6.2 Request Routines 112 6.2.1 create_request 113 6.2.2 add_arg 115 6.2.3 invoke 115 6.2.4 delete 116 6.3 Deferred Synchronous Routines 116 6.3.1 send 116 6.3.2 send_multiple_requests 117 6.3.3 get_response 117 6.3.4 get_next_response 118 6.4 List Routines 118 6.4.1 create_list 119 6.4.2 add_item 119 6.4.3 free 120 6.4.4 free_memory 120 6.4.5 get_count 120 6.4.6 create_operation_list 120 6.5 Context Objects 121 6.6 Context Object Routines 122 6.6.1 get_default_context 123 6.6.2 set_one_value 124 6.6.3 set_values 124 6.6.4 get_values 124 6.6.5 delete_values 125 6.6.6 create_child 125 6.6.7 delete 125 6.7 Native Data Manipulation 126 7 The Interface Repository 127 7.1 Overview 127 7.2 Scope of an Interface Repository 128 7.3 Implementation Dependencies 129 7.4 Basics of the Interface Repository

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    182 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us