Information technology — Object Management Group — Common Object Request Broker Architecture (CORBA) — Part 2: Interoperability

ISO/IEC 19500-2:2012 specifies a comprehensive, flexible approach to supporting networks of objects that are distributed across and managed by multiple, heterogeneous CORBA-compliant Object Request Brokers (ORBs). The approach to inter-ORB operation is universal, because elements can be combined in many ways to satisfy a very broad range of needs. ISO/IEC 19500-2:2012 specifies ORB interoperability architecture Inter-ORB bridge support General Inter-ORB Protocol (GIOP) for object request broker (ORB) interoperability. GIOP can be mapped onto any connection-oriented transport protocol that meets a minimal set of assumptions defined by this International Standard Internet Inter-ORB Protocol (IIOP), a specific mapping of the GIOP which runs directly over connections that use the Internet Protocol and the Transmission Control Protocol (TCP/IP connections) CORBA Security Attribute Service (SAS) protocol and its use within the CSIv2 architecture to address the requirements of CORBA security for interoperable authentication, delegation, and privileges ISO/IEC 19500-2:2012 provides a widely implemented and used particularization of ITU-T Rec. X.931 | ISO/IEC 14752. It supports interoperability and location transparency in ODP systems.

Technologies de l'information — OMG (Object Management Group) — CORBA (Common Object Request Broker Architecture) — Partie 2: Interopérabilité

General Information

Status
Published
Publication Date
19-Apr-2012
Current Stage
9060 - Close of review
Start Date
03-Mar-2028
Ref Project

Relations

Buy Standard

Standard
ISO/IEC 19500-2:2012 - Information technology -- Object Management Group -- Common Object Request Broker Architecture (CORBA)
English language
226 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)

INTERNATIONAL ISO/IEC
STANDARD 19500-2
Second edition
2012-04-15

Information technology — Object
Management Group — Common Object
Request Broker Architecture (CORBA) —
Part 2:
Interoperability
Technologies de l'information — OMG (Object Management Group) —
CORBA (Common Object Request Broker Architecture) —
Partie 2: Interopérabilité




Reference number
ISO/IEC 19500-2:2012(E)
©
ISO/IEC 2012

---------------------- Page: 1 ----------------------
ISO/IEC 19500-2:2012(E)

COPYRIGHT PROTECTED DOCUMENT


©  ISO/IEC 2012
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Case postale 56  CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland

ii © ISO/IEC 2012 – All rights reserved

---------------------- Page: 2 ----------------------
ISO/IEC 19500-2:2012(E)
Table of Contents
Foreword .ix
Introduction .xi
1 Scope . 1
2 Conformance and Compliance . 1
2.1 Unreliable Multicast . 2
3 Normative References . 2
3.1 Other Specifications . 3
4 Terms and definitions . 3
4.1 Recommendations | International Standards. 4
4.2 Terms Defined in this Part of ISO/IEC 19500. 4
4.3 Keywords for Requirment statements . 5
5 Symbols (and abbreviated terms) . 6
6 Interoperability Overview . 7
6.1 General. 7
6.2 Elements of Interoperability . 7
6.2.1 ORB Interoperability Architecture .7
6.2.2 Inter-ORB Bridge Support .7
6.2.3 General Inter-ORB Protocol (GIOP) .8
6.2.4 Internet Inter-ORB Protocol (IIOP)® .8
6.2.5 Environment-Specific Inter-ORB Protocols (ESIOPs) .9
6.3 Relationship to Previous Versions of CORBA . 9
6.4 Examples of Interoperability Solutions . 10
6.4.1 Example 1 .10
6.4.2 Example 2 .10
© ISO/IEC 2012 - All rights reserved    iii

---------------------- Page: 3 ----------------------
ISO/IEC 19500-2:2012(E)
6.4.3 Example 3 .10
6.4.4 Interoperability Compliance .10
6.5 Motivating Factors . 13
6.5.1 ORB Implementation Diversity .13
6.5.2 ORB Boundaries .13
6.5.3 ORBs Vary in Scope, Distance, and Lifetime .13
6.6 Interoperability Design Goals. 14
6.6.1 Non-Goals .14
7 ORB Interoperability Architecture . 15
7.1 Overview. 15
7.1.1 Domains .15
7.1.2 Bridging Domains .15
7.2 ORBs and ORB Services. 16
7.2.1 The Nature of ORB Services .16
7.2.2 ORB Services and Object Requests .16
7.2.3 Selection of ORB Services .17
7.3 Domains. 17
7.3.1 Definition of a Domain .18
7.3.2 Mapping Between Domains: Bridging .19
7.4 Interoperability Between ORBs. 19
7.4.1 ORB Services and Domains .19
7.4.2 ORBs and Domains .20
7.4.3 Interoperability Approaches .20
7.4.4 Policy-Mediated Bridging .22
7.4.5 Configurations of Bridges in Networks .22
7.5 Object Addressing . 23
7.5.1 Domain-relative Object Referencing .24
7.5.2 Handling of Referencing Between Domains .24
7.6 An Information Model for Object References. 25
7.6.1 What Information Do Bridges Need? .25
7.6.2 Interoperable Object References: IORs .25
7.6.3 IOR Profiles .26
7.6.4 Standard IOR Profiles .28
7.6.5 IOR Components .29
7.6.6 Standard IOR Components .29
7.6.7 Profile and Component Composition in IORs .31
7.6.8 IOR Creation and Scope .32
7.6.9 Stringified Object References .32
iv © ISO/IEC 2012 - All rights reserved

---------------------- Page: 4 ----------------------
ISO/IEC 19500-2:2012(E)
7.6.10 Object URLs .33
7.7 Service Context . 37
7.7.1 Standard Service Contexts .38
7.7.2 Service Context Processing Rules .40
7.8 Coder/Decoder Interfaces . 40
7.8.1 Codec Interface .40
7.8.2 Codec Factory .42
7.9 Feature Support and GIOP Versions. 43
7.10 Code Set Conversion . 45
7.10.1 Character Processing Terminology .45
7.10.2 Code Set Conversion Framework .48
7.10.3 Mapping to Generic Character Environments .54
7.10.4 Example of Generic Environment Mapping .56
7.10.5 Relevant OSFM Registry Interfaces .56
8 Building Inter-ORB Bridges . 63
8.1 Introduction. 63
8.2 In-Line and Request-Level Bridging . 63
8.2.1 In-line Bridging .64
8.2.2 Request-level Bridging .64
8.2.3 Collocated ORBs .65
8.3 Proxy Creation and Management. 66
8.4 Interface-specific Bridges and Generic Bridges . 66
8.5 Building Generic Request-Level Bridges. 66
8.6 Bridging Non-Referencing Domains . 67
8.7 Bootstrapping Bridges . 68
9 General Inter-ORB Protocol . 69
9.1 Overview. 69
9.2 Goals of the General Inter-ORB Protocol . 69
9.3 GIOP Overview. 69
9.3.1 Common Data Representation (CDR) .70
9.3.2 GIOP Message Overview .70
9.3.3 GIOP Message Transfer .71
9.4 CDR Transfer Syntax . 71
© ISO/IEC 2012 - All rights reserved    v

---------------------- Page: 5 ----------------------
ISO/IEC 19500-2:2012(E)
9.4.1 Primitive Types .72
9.4.2 OMG IDL Constructed Types .77
9.4.3 Encapsulation .79
9.4.4 Value Types .80
9.4.5 Pseudo-Object Types .87
9.4.6 Object References .93
9.4.7 Abstract Interfaces .93
9.5 GIOP Message Formats. 93
9.5.1 GIOP Message Header .94
9.5.2 Request Message .96
9.5.3 Reply Message .99
9.5.4 CancelRequest Message .102
9.5.5 LocateRequest Message .103
9.5.6 LocateReply Message .104
9.5.7 CloseConnection Message .106
9.5.8 MessageError Message .106
9.5.9 Fragment Message .106
9.6 GIOP Message Transport. 107
9.6.1 Connection Management .108
9.6.2 Message Ordering .109
9.7 Object Location. 110
9.8 Internet Inter-ORB Protocol (IIOP). 111
9.8.1 TCP/IP Connection Usage .111
9.8.2 IIOP IOR Profiles .112
9.8.3 IIOP IOR Profile Components .114
9.9 Bi-Directional GIOP . 115
9.9.1 Bi-directional IIOP .117
9.10 Bi-directional GIOP policy. 118
9.11 OMG IDL. 118
9.11.1 GIOP Module .118
9.11.2 IIOP Module .123
9.11.3 BiDirPolicy Module .124
10 Secure Interoperability . 125
10.1 Overview. 125
10.1.1 Assumptions .126
10.2 Protocol Message Definitions . 127
10.2.1 The Security Attribute Service Context Element .127
vi © ISO/IEC 2012 - All rights reserved

---------------------- Page: 6 ----------------------
ISO/IEC 19500-2:2012(E)
10.2.2 SAS context_data Message Body Types .127
10.2.3 Authorization Token Format .132
10.2.4 Client Authentication Token Format .133
10.2.5 Identity Token Format .135
10.2.6 Principal Names and Distinguished Names .136
10.3 Security Attribute Service Protocol . 137
10.3.1 Compound Mechanisms .137
10.3.2 Session Semantics .141
10.3.3 TSS State Machine .143
10.3.4 CSS State Machine .146
10.3.5 ContextError Values and Exceptions .149
10.4 Transport Security Mechanisms . 150
10.4.1 Transport Layer Interoperability .150
10.4.2 Transport Mechanism Configuration .150
10.5 Interoperable Object References. 151
10.5.1 Target Security Configuration .151
10.5.2 Client-side Mechanism Selection .160
10.5.3 Client-Side Requirements and Location Binding .161
10.5.4 Server Side Consideration .162
10.6 Conformance Levels. 162
10.6.1 Conformance Level 0 .162
10.6.2 Conformance Level 1 .163
10.6.3 Conformance Level 2 .163
10.6.4 Stateful Conformance .164
10.7 Sample Message Flows and Scenarios . 164
10.7.1 Confidentiality, Trust in Server, and Trust in Client Established
      in the Connection .165
10.7.2 Confidentiality and Trust in Server Established in the Connection -
      Stateless Trust in Client Established in Service Context .167
10.7.3 Confidentiality, Trust in Server, and Trust in Client Established in
      the Connection Stateless Trust Association Established in Service
      Context .169
10.7.4 Confidentiality, Trust in Server, and Trust in Client Established in the
      Connection - Stateless Forward Trust Association Established in
      Service Context .172
10.8 References . 173
10.9 IDL . 174
10.9.1 Module GSSUP - Username/Password GSSAPI Token Formats .174
10.9.2 Module CSI - Common Secure Interoperability .175
10.9.3 Module CSIIOP - CSIv2 IOR Component Tag Definitions .179
© ISO/IEC 2012 - All rights reserved    vii

---------------------- Page: 7 ----------------------
ISO/IEC 19500-2:2012(E)
11 Unreliable Multicast Inter-ORB Protocol .183
11.1 Introduction. 183
11.1.1 Purpose .183
11.1.2 MIOP Packet .183
11.1.3 Packet Collection .183
11.1.4 PacketHeader .184
11.1.5 Joining an IP/Multicast Group .185
11.1.6 Quality Of Service .186
11.1.7 Delivery Requirements .186
11.2 MIOP Object Model . 186
11.2.1 Definition .186
11.2.2 Unreliable IP/Multicast Profile Body (UIPMC_ProfileBody) .187
11.2.3 Group IOR .188
11.2.4 Extending PortableServer::POA to include Group Operations .190
11.2.5 MIOP Gateway .194
11.2.6 Multicast Group Manager .194
11.2.7 MIOP URL .210
11.3 Request Issues. 211
11.3.1 GIOP Request Message Compatibility .211
11.3.2 MIOP Request Efficiency .211
11.3.3 Client Use Cases .212
11.3.4 Server Use Cases .213
11.4 Consolidated IDL . 213
11.4.1 OMG IDL .213
Annex A - Legal Information. 221
Annex B - Acknowledgements . 225
viii © ISO/IEC 2012 - All rights reserved

---------------------- Page: 8 ----------------------
ISO/IEC 19500-2:2012(E)
Foreword
ISO (the International Organization for Standardization) is a worldwide federation of national standards bodies (ISO
member bodies). The work of preparing International Standards is normally carried out through ISO technical
committees. Each member body interested in a subject for which a technical committee has been established has the right
to be represented on that committee. International organizations, governmental and non-governmental, in liaison with
ISO, also take part in the work. ISO collaborates closely with the International Electrotechnical Commission (IEC) on all
matters of electrotechnical standardization.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of technical committees is to prepare International Standards. Draft International Standards adopted by the
technical committees are circulated to the member bodies for voting. Publication as an International Standard requires
approval by at least 75 % of the member bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO
shall not be held responsible for identifying any or all such patent rights.
ISO/IEC 19500-2 was prepared by Technical Committee ISO/IEC JTC1, Information technology, in collaboration with the
Object Management Group (OMG), following the submission and processing as a Publicly Available Specification (PAS)
of the OMG Common Object Request Broker Architecture (CORBA) specification Part 2 Version 3.1 CORBA
Interoperability.
ISO/IEC 19500-2 is related to:
• ITU-T Recommendation X.902 (1995) | ISO/IEC 10746-2:1996, Information Technology - Open Distributed
Processing - Reference Model: Foundations
• ITU-T Recommendation X.903 (1995) | ISO/IEC 10746-3:1996, Information Technology - Open Distributed
Processing - Reference Model: Architecture
• ITU-T Recommendation X.920 (1997) | ISO/IEC 14750:1997, Information Technology - Open Distributed
Processing - Interface Definition Language
• ISO/IEC 19500-2, Information Technology - Open Distributed Processing - CORBA Specification Part 1:
CORBA Interfaces
• ISO/IEC 19500-3, Information Technology - Open Distributed Processing - CORBA Specification Part 3:
CORBA Components
ISO/IEC 19500 consists of the following parts, under the general title Information technology - Open distributed
processing - CORBA specification:
• Part 1: CORBA Interfaces
• Part 2: CORBA Interoperability
• Part 3: CORBA Components
© ISO/IEC 2012 - All rights reserved    ix

---------------------- Page: 9 ----------------------
ISO/IEC 19500-2:2012(E)
It is the common core of the CORBA specification. Optional parts of CORBA, such as mappings to particular
programming languages, Real-time CORBA extensions, and the minimum CORBA profile for embedded systems are
documented in the other specifications that together comprise the complete CORBA specification. Please visit the
CORBA download page at http://www.omg.org/technology/documents/corba_spec_catalog.htm to find the complete
CORBA specification set.
Apart from this Foreword, the text of this International Standard is identical with that for the OMG specification for
CORBA, v3.1.1, Part 2.
x © ISO/IEC 2012 - All rights reserved

---------------------- Page: 10 ----------------------
ISO/IEC 19500-2:2012(E)
Introduction
The rapid growth of distributed processing has led to a need for a coordinating framework for this standardization and
ITU-T Recommendations X.901-904 | ISO/IEC 10746, the Reference Model of Open Distributed Processing (RM-ODP)
provides such a framework. It defines an architecture within which support of distribution, interoperability and portability
can be integrated.
RM-ODP Part 2 (ISO/IEC 10746-2) defines the foundational concepts and modeling framework for describing distributed
systems. The scopes and objectives of the RM-ODP Part 2 and the UML, while related, are not the same and, in a number
of cases, the RM-ODP Part 2 and the UML specification use the same term for concepts which are related but not
identical (e.g., interface). Nevertheless, a specification using the Part 2 modeling concepts can be expressed using UML
with appropriate extensions (using stereotypes, tags, and constraints).
RM-ODP Part 3 (ISO/IEC 10746-3) specifies a generic architecture of open distributed systems, expressed using the
foundational concepts and framework defined in Part 2. Given the relation between UML as a modeling language and Part
3 of the RM-ODP standard, it is easy to show that UML is suitable as a notation for the individual viewpoint
specifications defined by the RM-ODP.
This International Standard for CORBA Interfaces is a standard for the technology specification of an ODP system. It
defines a technology to provide the infrastructure required to support functional distribution of an ODP system, specifying
functions required to manage physical distribution, communications, processing and storage, and the roles of different
technology objects in supporting those functions.
Context of CORBA
The key to understanding the structure of the CORBA architecture is the Reference Model, which consists of the
following components:
• Object Request Broker, which enables objects to transparently make and receive requests and responses in a
distributed environment. It is the foundation for building applications from distributed objects and for
interoperability between applications in hetero- and homogeneous environments. The architecture and
specifications of the Object Request Broker are described in this manual.
• Object Services, a collection of services (interfaces and objects) that support basic functions for using and
implementing objects. Services are necessary to construct any distributed application and are always independent
of application domains. For example, the Life Cycle Service defines conventions for creating, deleting, copying,
and moving objects; it does not dictate how the objects are implemented in an application. Specifications for
Object Services are contained in CORBAservices: Common Object Services Specification.
• Common Facilities, a collection of services that many applications may share, but which are not as fundamental
as the Object Services. For instance, a system management or electronic mail facility could be classified as a
common facility. Information about Common Facilities will be contained in CORBAfacilities: Common
Facilities Architecture.
• Application Objects, which are products of a single vendor on in-house development group that controls their
interfaces. Application Objects correspond to the traditional notion of applications, so they are not standardized
by OMG. Instead, Application Objects constitute the uppermost layer of the Reference Model.
© ISO/IEC 2012 - All rights reserved    xi

---------------------- Page: 11 ----------------------
ISO/IEC 19500-2:2012(E)
The Object Request Broker, then, is the core of the Reference Model. It is like a telephone exchange, providing the basic
mechanism for making and receiving calls. Combined with the Object Services, it ensures meaningful communication
between CORBA-compliant applications.
The architecture and specifications described in this standard are aimed at software designers and developers who want to
produce applications that comply with OMG specifications for the Object Request Broker (ORB), or this standard (ISO/
IEC 19500). The benefit of compliance is, in general, to be able to produce interoperable applications that are based on
distributed, interoperating objects. The ORB provides the mechanisms by which objects transparently make requests and
receive responses. Hence, the ORB provides interoperability between applications on different machines in heterogeneous
distributed environments and seamlessly interconnects multiple object systems.
This Part of this International Standard includes a non-normative annex.
xii        © ISO/IEC 2012 - All rights reserved

---------------------- Page: 12 ----------------------
INTERNATIONAL STANDARD
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.