BS ISO/IEC 19500-1:2012
$215.11
Information technology. Object Management Group. Common Object Request Broker Architecture (CORBA) – Interfaces
Published By | Publication Date | Number of Pages |
BSI | 2012 | 534 |
PDF Catalog
PDF Pages | PDF Title |
---|---|
19 | Foreword |
21 | Introduction Context of CORBA |
23 | 1 Scope 2 Conformance and Compliance 3 Normative References |
24 | 4 Additional Information 4.1 Outline of Contents |
25 | 4.2 Keywords for Requirement Statements |
27 | 5 The Object Model 5.1 General 5.2 Overview |
28 | 5.3 Object Semantics 5.3.1 Objects 5.3.2 Requests |
29 | 5.3.3 Object Creation and Destruction 5.3.4 Types |
30 | 5.3.5 Interfaces |
31 | 5.3.6 Value Types 5.3.7 Abstract Interfaces 5.3.8 Operations |
33 | 5.3.9 Attributes 5.4 Object Implementation 5.4.1 The Execution Model: Performing Services |
34 | 5.4.2 The Construction Model |
35 | 6 CORBA Overview 6.1 General 6.2 Structure of an Object Request Broker |
39 | 6.2.1 Object Request Broker |
40 | 6.2.2 Clients 6.2.3 Object Implementations 6.2.4 Object References |
41 | 6.2.5 OMG Interface Definition Language 6.2.6 Mapping of IDL to Programming Languages 6.2.7 Client Stubs 6.2.8 Dynamic Invocation Interface |
42 | 6.2.9 Implementation Skeleton 6.2.10 Dynamic Skeleton Interface 6.2.11 Object Adapters 6.2.12 ORB Interface |
43 | 6.2.13 Interface Repository 6.2.14 Implementation Repository 6.3 Example ORBs 6.3.1 Client- and Implementation-resident ORB 6.3.2 Server-based ORB |
44 | 6.3.3 System-based ORB 6.3.4 Library-based ORB 6.4 Structure of a Client |
45 | 6.5 Structure of an Object Implementation |
47 | 6.6 Structure of an Object Adapter |
48 | 6.7 CORBA Required Object Adapter 6.7.1 Portable Object Adapter 6.8 The Integration of Foreign Object Systems |
51 | 7 IDL Syntax and Semantics 7.1 Overview |
52 | 7.2 Lexical Conventions |
55 | 7.2.1 Tokens 7.2.2 Comments 7.2.3 Identifiers |
57 | 7.2.4 Keywords |
58 | 7.2.5 Literals |
60 | 7.3 Preprocessing 7.4 IDL Grammar |
67 | 7.5 IDL Specification 7.6 Import Declaration |
68 | 7.7 Module Declaration |
69 | 7.8 Interface Declaration 7.8.1 Interface Header 7.8.2 Interface Inheritance Specification |
70 | 7.8.3 Interface Body 7.8.4 Forward Declaration |
71 | 7.8.5 Interface Inheritance |
73 | 7.8.6 Abstract Interface 7.8.7 Local Interface |
74 | 7.9 Value Declaration 7.9.1 Regular Value Type |
76 | 7.9.2 Boxed Value Type |
77 | 7.9.3 Abstract Value Type 7.9.4 Value Forward Declaration 7.9.5 Valuetype Inheritance |
79 | 7.10 Constant Declaration 7.10.1 Syntax |
80 | 7.10.2 Semantics |
83 | 7.11 Type Declaration |
84 | 7.11.1 Basic Types |
86 | 7.11.2 Constructed Types |
90 | 7.11.3 Template Types |
91 | 7.11.4 Complex Declarator 7.11.5 Native Types |
92 | 7.11.6 Deprecated Anonymous Types |
95 | 7.12 Exception Declaration 7.13 Operation Declaration |
96 | 7.13.1 Operation Attribute 7.13.2 Parameter Declarations 7.13.3 Raises Expressions |
97 | 7.13.4 Context Expressions |
98 | 7.14 Attribute Declaration |
99 | 7.15 Repository Identity Related Declarations 7.15.1 Repository Identity Declaration |
100 | 7.15.2 Repository Identifier Prefix Declaration |
101 | 7.15.3 Repository Id Conflict 7.16 Event Declaration 7.16.1 Regular Event Type |
102 | 7.16.2 Abstract Event Type 7.16.3 Event Forward Declaration 7.16.4 Eventtype Inheritance 7.17 Component Declaration 7.17.1 Component |
103 | 7.17.2 Component Header |
104 | 7.17.3 Component Body |
106 | 7.17.4 Event Sources—publishers and emitters 7.17.5 Event Sinks |
107 | 7.17.6 Basic and Extended Components 7.18 Home Declaration 7.18.1 Home |
108 | 7.18.2 Home Header |
109 | 7.18.3 Home Body |
110 | 7.19 CORBA Module |
111 | 7.20 Names and Scoping 7.20.1 Qualified Names |
112 | 7.20.2 Scoping Rules and Name Resolution |
115 | 7.20.3 Special Scoping Rules for Type Names |
117 | 8 ORB Interface 8.1 Overview 8.2 The ORB Operations |
123 | 8.2.1 ORB Identity 8.2.2 Converting Object References to Strings |
124 | 8.2.3 Getting Service Information 8.2.4 Creating a New Context 8.2.5 Thread-Related Operations |
127 | 8.3 Object Reference Operations |
129 | 8.3.1 Determining the Object Interface 8.3.2 Duplicating and Releasing Copies of Object References 8.3.3 Nil Object References |
130 | 8.3.4 Equivalence Checking Operation 8.3.5 Probing for Object Non-Existence 8.3.6 Object Reference Identity |
132 | 8.3.7 Type Coercion Considerations 8.3.8 Getting Policy Associated with the Object |
133 | 8.3.9 Overriding Associated Policies on an Object Reference |
134 | 8.3.10 Validating Connection 8.3.11 Getting the Domain Managers Associated with the Object |
135 | 8.3.12 Getting Component Associated with the Object 8.3.13 Getting the ORB 8.3.14 LocalObject Operations |
136 | 8.4 ValueBase Operations |
137 | 8.5 ORB and OA Initialization and Initial References 8.5.1 ORB Initialization |
139 | 8.5.2 Obtaining Initial Object References |
142 | 8.5.3 Configuring Initial Service References |
144 | 8.6 Context Object 8.6.1 Introduction 8.6.2 Context Object Operations |
147 | 8.7 Current Object |
148 | 8.8 Policy Object 8.8.1 Definition of Policy Object |
149 | 8.8.2 Creation of Policy Objects |
151 | 8.8.3 Usages of Policy Objects 8.8.4 Policy Associated with the Execution Environment |
152 | 8.8.5 Specification of New Policy Objects |
153 | 8.8.6 Standard Policies 8.9 Management of Policies 8.9.1 Client Side Policy Management |
154 | 8.9.2 Server Side Policy Management 8.9.3 Policy Management Interfaces |
156 | 8.10 Management of Policy Domains 8.10.1 Basic Concepts |
158 | 8.10.2 Domain Management Operations |
160 | 8.11 TypeCodes 8.11.1 The TypeCode Interface |
164 | 8.11.2 TypeCode Constants |
165 | 8.11.3 Creating TypeCodes |
170 | 8.12 Exceptions 8.12.1 Definition of Terms 8.12.2 System Exceptions |
172 | 8.12.3 Standard System Exception Definitions |
178 | 8.12.4 Standard Minor Exception Codes |
179 | 9 Value Type Semantics 9.1 Overview 9.2 Architecture |
180 | 9.2.1 Abstract Values 9.2.2 Operations |
181 | 9.2.3 Value Type vs. Interfaces 9.2.4 Parameter Passing |
182 | 9.2.5 Substitutability Issues |
183 | 9.2.6 Widening/Narrowing 9.2.7 Value Base Type 9.2.8 Life Cycle issues |
184 | 9.2.9 Security Considerations 9.3 Standard Value Box Definitions |
185 | 9.4 Language Mappings 9.4.1 General Requirements 9.4.2 Language Specific Marshaling 9.4.3 Language Specific Value Factory Requirements |
186 | 9.4.4 Value Method Implementation 9.5 Custom Marshaling 9.5.1 Implementation of Custom Marshaling |
187 | 9.5.2 Marshaling Streams |
193 | 9.6 Access to the Sending Context Run Time |
195 | 10 Abstract Interface Semantics 10.1 Overview 10.2 Semantics of Abstract Interfaces |
196 | 10.3 Usage Guidelines 10.4 Example |
197 | 10.5 Security Considerations 10.5.1 Passing Values to Trusted Domains |
199 | 11 Dynamic Invocation Interface 11.1 Overview 11.1.1 Common Data Structures |
201 | 11.1.2 Memory Usage 11.1.3 Return Status and Exceptions 11.2 Request Operations |
202 | 11.2.1 create_request |
204 | 11.2.2 add_arg 11.2.3 invoke |
205 | 11.2.4 delete 11.2.5 send 11.2.6 poll_response 11.2.7 get_response |
206 | 11.2.8 sendp 11.2.9 prepare 11.2.10 sendc |
207 | 11.3 ORB Operations 11.3.1 send_multiple_requests 11.3.2 get_next_response and poll_next_response |
208 | 11.4 Polling |
209 | 11.4.1 Abstract Valuetype Pollable |
210 | 11.4.2 Abstract Valuetype DIIPollable 11.4.3 interface PollableSet |
211 | 11.5 List Operations |
212 | 11.5.1 create_list 11.5.2 add_item |
213 | 11.5.3 free 11.5.4 free_memory 11.5.5 get_count 11.5.6 create_operation_list |
215 | 12 Dynamic Skeleton Interface 12.1 Introduction 12.2 Overview |
216 | 12.3 ServerRequestPseudo-Object 12.3.1 ExplicitRequest State: ServerRequestPseudo-Object |
217 | 12.4 DSI: Language Mapping 12.4.1 ServerRequest’s Handling of Operation Parameters 12.4.2 Registering Dynamic Implementation Routines |
219 | 13 Dynamic Management of Any Values 13.1 General 13.2 Overview |
220 | 13.3 DynAny API |
226 | 13.3.1 Creating a DynAny Object |
228 | 13.3.2 The DynAny Interface |
232 | 13.3.3 The DynFixed Interface 13.3.4 The DynEnum Interface |
233 | 13.3.5 The DynStruct Interface |
234 | 13.3.6 The DynUnion Interface |
236 | 13.3.7 The DynSequence Interface |
237 | 13.3.8 The DynArray Interface |
238 | 13.3.9 The DynValueCommon Interface 13.3.10 The DynValue Interface |
239 | 13.3.11 The DynValueBox Interface |
240 | 13.4 Usage in C++ Language 13.4.1 Dynamic Creation of CORBA::Any values |
241 | 13.4.2 Dynamic Interpretation of CORBA::Any values |
243 | 14 The Interface Repository 14.1 Overview 14.2 Scope of an Interface Repository |
245 | 14.3 Implementation Dependencies 14.3.1 Managing Interface Repositories |
246 | 14.4 Basics 14.4.1 Names and Identifiers |
247 | 14.4.2 Types and TypeCodes 14.4.3 Interface Repository Objects |
248 | 14.4.4 Structure and Navigation of the Interface Repository |
250 | 14.5 Interface Repository Interfaces |
251 | 14.5.1 Supporting Type Definitions |
252 | 14.5.2 IRObject |
253 | 14.5.3 Contained |
255 | 14.5.4 Container |
260 | 14.5.5 IDLType 14.5.6 Repository |
262 | 14.5.7 ModuleDef 14.5.8 ConstantDef |
263 | 14.5.9 TypedefDef 14.5.10 StructDef |
264 | 14.5.11 UnionDef |
265 | 14.5.12 EnumDef 14.5.13 AliasDef |
266 | 14.5.14 PrimitiveDef 14.5.15 StringDef 14.5.16 WstringDef |
267 | 14.5.17 FixedDef 14.5.18 SequenceDef 14.5.19 ArrayDef |
268 | 14.5.20 ExceptionDef |
269 | 14.5.21 AttributeDef 14.5.22 ExtAttributeDef |
270 | 14.5.23 OperationDef |
272 | 14.5.24 InterfaceDef |
274 | 14.5.25 ExtInterfaceDef |
275 | 14.5.26 AbstractInterfaceDef |
276 | 14.5.27 ExtAbstractInterfaceDef |
277 | 14.5.28 LocalInterfaceDef |
278 | 14.5.29 ExtLocalInterfaceDef 14.5.30 ValueMemberDef |
279 | 14.5.31 ValueDef |
282 | 14.5.32 ExtValueDef |
284 | 14.5.33 ValueBoxDef 14.5.34 NativeDef 14.6 Component Interface Repository Interfaces 14.6.1 ComponentIR::Container |
286 | 14.6.2 ComponentIR::Repository |
287 | 14.6.3 ComponentIR::ProvidesDef 14.6.4 ComponentIR::UsesDef |
288 | 14.6.5 ComponentIR::EventDef 14.6.6 ComponentIR::EventPortDef |
289 | 14.6.7 ComponentIR::EmitsDef |
290 | 14.6.8 ComponentIR::PublishesDef 14.6.9 ComponentIR::ConsumesDef 14.6.10 ComponentIR::ComponentDef |
293 | 14.6.11 ComponentIR::FactoryDef |
294 | 14.6.12 ComponentIR::FinderDef 14.6.13 ComponentIR::HomeDef |
296 | 14.7 RepositoryIds |
297 | 14.7.1 IDL Format 14.7.2 RMI Hashed Format |
299 | 14.7.3 DCE UUID Format 14.7.4 LOCAL Format 14.7.5 Pragma Directives for RepositoryId |
304 | 14.7.6 For More Information 14.7.7 RepositoryIDs for OMG-Specified Types |
305 | 14.7.8 Uniqueness Constraints on Repository IDs |
306 | 14.8 IDL for Interface Repository |
325 | 15 The Portable Object Adapter 15.1 Overview 15.2 Abstract Model Description 15.2.1 Model Components |
327 | 15.2.2 Model Architecture |
328 | 15.2.3 POA Creation |
329 | 15.2.4 Reference Creation |
330 | 15.2.5 Object Activation States 15.2.6 Request Processing |
331 | 15.2.7 Implicit Activation |
332 | 15.2.8 Multi-threading |
333 | 15.2.9 Dynamic Skeleton Interface |
334 | 15.2.10 Location Transparency 15.3 Interfaces |
335 | 15.3.1 The Servant IDL Type |
336 | 15.3.2 POAManager Interface |
340 | 15.3.3 POAManagerFactory Interface |
341 | 15.3.4 AdapterActivator Interface |
342 | 15.3.5 ServantManager Interface |
343 | 15.3.6 ServantActivator Interface |
345 | 15.3.7 ServantLocator Interface |
347 | 15.3.8 POA Policy Objects |
350 | 15.3.9 POA Interface |
359 | 15.3.10 Current Operations |
360 | 15.4 IDL for PortableServer Module |
366 | 15.5 UML Description of PortableServer |
368 | 15.6 Usage Scenarios 15.6.1 Getting the Root POA |
369 | 15.6.2 Creating a POA 15.6.3 Explicit Activation with POA-assigned Object Ids |
370 | 15.6.4 Explicit Activation with User-assigned Object Ids |
371 | 15.6.5 Creating References before Activation 15.6.6 Servant Manager Definition and Creation |
373 | 15.6.7 Object Activation on Demand |
374 | 15.6.8 Persistent Objects with POA-assigned Ids 15.6.9 Multiple Object Ids Mapping to a Single Servant 15.6.10 One Servant for All Objects |
377 | 15.6.11 Single Servant, Many Objects and Types, Using DSI |
381 | 16 Portable Interceptors 16.1 Introduction 16.1.1 Object Creation |
382 | 16.1.2 Client Sends Request |
383 | 16.1.3 Server Receives Request 16.1.4 Server Sends Reply |
384 | 16.1.5 Client Receives Reply 16.2 General Behavior of Local Objects 16.3 Interceptor Interface |
385 | 16.4 Request Interceptors 16.4.1 Design Principles |
386 | 16.4.2 General Flow Rules 16.4.3 The Flow Stack Visual Model |
387 | 16.4.4 The Request Interceptor Points 16.4.5 Client-Side Interceptor 16.4.6 Client-Side Interception Points |
389 | 16.4.7 Client-Side Interception Point Flow |
392 | 16.4.8 Server-Side Interceptor 16.4.9 Server-Side Interception Points |
394 | 16.4.10 Server-Side Interception Point Flow |
397 | 16.4.11 Request Information 16.4.12 RequestInfo Interface |
401 | 16.4.13 ClientRequestInfo Interface |
404 | 16.4.14 ServerRequestInfo Interface |
408 | 16.4.15 ForwardRequest Exception 16.5 Portable Interceptor Current 16.5.1 Overview 16.5.2 Obtaining the Portable Interceptor Current |
409 | 16.5.3 Portable Interceptor Current Interface |
410 | 16.5.4 Use of Portable Interceptor Current |
414 | 16.6 IOR Interceptor 16.6.1 Overview 16.6.2 An Abstract Model for Object Adapters |
416 | 16.6.3 Object Reference Template |
418 | 16.6.4 IORInterceptor Interface |
419 | 16.6.5 IORInfo Interface |
422 | 16.7 Interceptor Policy Objects 16.7.1 ProcessingMode Policy |
423 | 16.8 PolicyFactory 16.8.1 PolicyFactory Interface 16.9 Registering Interceptors 16.9.1 ORBInitializer Interface |
424 | 16.9.2 ORBInitInfo Interface |
428 | 16.9.3 register_orb_initializer Operation |
430 | 16.9.4 Notes about Registering Interceptors |
431 | 16.10 Dynamic Initial References 16.10.1 register_initial_reference |
432 | 16.11 Module Dynamic 16.11.1 NVList PIDL Represented by ParameterList IDL 16.11.2 ContextList PIDL Represented by ContextList IDL 16.11.3 ExceptionList PIDL Represented by ExceptionList IDL 16.11.4 Context PIDL Represented by RequestContext IDL 16.12 Consolidated IDL 16.12.1 Dynamic |
433 | 16.12.2 Portions of IOP Relevant to Portable Interceptor |
434 | 16.12.3 PortableInterceptor |
439 | 17 CORBA Messaging 17.1 General 17.2 Quality of Service 17.3 Messaging Quality of Service |
441 | 17.3.1 Rebind Support |
442 | 17.3.2 Synchronization Scope |
443 | 17.3.3 Request and Reply Priority |
444 | 17.3.4 Request and Reply Timeout |
446 | 17.3.5 Routing |
447 | 17.3.6 Queue Ordering |
448 | 17.4 Propagation of Messaging QoS 17.4.1 Structures 17.4.2 Messaging QoS Profile Component 17.4.3 Messaging QoS Service Context |
449 | 17.5 Messaging Programming Model |
450 | 17.6 Running Example 17.7 Async Operation Mapping |
451 | 17.7.1 Callback Model Signatures (sendc) |
453 | 17.7.2 Polling Model Signatures (sendp) |
455 | 17.8 Exception Delivery in the Callback Model 17.8.1 Messaging::ExceptionHolder valuetype 17.9 Type-Specific ReplyHandler Mapping |
456 | 17.9.1 ReplyHandler Operations for NO_EXCEPTION Replies |
457 | 17.9.2 ReplyHandler Operations for Exceptional Replies 17.9.3 Example |
458 | 17.10 Generic Poller Value |
459 | 17.10.1 operation_target 17.10.2 operation_name 17.10.3 associated_handler 17.10.4 is_from_poller 17.11 Type-Specific Poller Mapping |
460 | 17.11.1 Basic Type-Specific Poller |
462 | 17.11.2 Persistent Type-Specific Poller 17.11.3 Example |
463 | 17.12 Example Programmer Usage 17.12.1 Example Programmer Usage (Examples Mapped to C++) 17.12.2 Client-Side C++ Example for the Asynchronous Method Signatures |
464 | 17.12.3 Client-Side C++ Example of the Callback Model |
471 | 17.12.4 Client-Side C++ Example of the Polling Model |
476 | 17.12.5 Server Side |
477 | 17.13 Message Routing Interoperability |
478 | 17.14 Routing Object References |
479 | 17.15 Message Routing |
481 | 17.15.1 Structures |
482 | 17.15.2 Interfaces |
484 | 17.15.3 Routing Protocol |
489 | 17.16 Router Administration |
492 | 17.16.1 Constants 17.16.2 Exceptions |
493 | 17.16.3 Valuetypes 17.16.4 Interfaces |
494 | 17.17 CORBA Messaging IDL 17.17.1 Messaging Module |
497 | 17.17.2 MessageRouting Module |
502 | Annex A for Clause 17 |
513 | Annex B for Clause 17 |
515 | Annex A – IDL Tags and Exceptions |
529 | Annex B – Legal Information |