Information technology — Open Systems Interconnection — Remote Procedure Call (RPC)

Facilitates the specification and development of distributed applications based on extending the well-known remote procedure call paradigm to operate between application processes on two separate real open systems in the OSI environment.

Technologies de l'information — Interconnexion de systèmes ouverts (OSI) — Appel de procédures à distance (RPC)

General Information

Status
Published
Publication Date
25-Dec-1996
Current Stage
9093 - International Standard confirmed
Start Date
13-Aug-2001
Completion Date
14-Feb-2026

Overview

ISO/IEC 11578:1996 - "Information technology - Open Systems Interconnection - Remote Procedure Call (RPC)" defines a comprehensive RPC model and API for building distributed applications in the OSI environment. The standard extends the familiar Remote Procedure Call paradigm to work between application processes on separate open systems, specifying programming models, the Interface Definition Language (IDL), stub behavior, runtime protocols, PDU encodings, and conformance requirements to ensure interoperability across implementations.

Key Topics and Requirements

  • RPC programming model: Client/server model, binding, remoteness, and server implementation patterns to support distributed procedure invocation.
  • RPC API and routines: A large taxonomy of API operations (binding, name service, endpoint, security, management, UUID handling, stub memory management) for practical implementation and management of RPC services.
  • Name service and binding: Name syntax, server/group/profile entries, binding searches and caching, and algorithms used to resolve and select remote endpoints.
  • IDL (Interface Definition Language): Full IDL language specification, syntax, attributes, parameter direction, type mappings and semantics used to generate interoperable stubs.
  • Stubs and application/stub interface: Stub memory management, parameter marshaling/unmarshaling, manager entry point vectors, and interoperability constraints for stubs.
  • Protocol definitions and PDUs: Detailed connectionless and connection-oriented RPC protocol machines, PDU structure and encoding conventions, fragmentation/reassembly, and transport service requirements.
  • Execution model and runtime semantics: Context handles, nested RPCs, threading, cancel/timeout behavior, error handling and monitoring liveness.
  • Security and conformance: Security services, authentication hooks, and conformance requirements to ensure compatible implementations across vendors.
  • Statechart semantics: Use of statecharts for protocol machine behavior and message processing logic.

Practical Applications

ISO/IEC 11578:1996 is applicable to:

  • Designing and implementing RPC middleware and runtime libraries that follow OSI conventions.
  • Generating platform-neutral stubs from IDL definitions for cross-platform distributed applications.
  • Implementing name services, endpoint mappers and binding management in enterprise middleware.
  • Building interoperable network services where connectionless and connection-oriented RPC protocols are required.
  • Interoperability testing, certification and conformance validation of RPC stacks.

Who should use this standard

  • Middleware and network protocol engineers
  • Distributed systems architects and developers
  • Implementers of IDL compilers and stub generators
  • Product teams seeking vendor-interoperable RPC implementations
  • Test laboratories and standards compliance teams

Related standards

ISO/IEC 11578:1996 complements other OSI and interface-definition standards, and is relevant when aligning RPC implementations with broader OSI protocol stacks and conformance frameworks.

Keywords: ISO/IEC 11578:1996, Remote Procedure Call, RPC, OSI, distributed applications, RPC API, IDL, stubs, binding, name service, PDUs, connectionless, connection-oriented, security, interoperability.

Buy Documents

Standard

ISO/IEC 11578:1996 - Information technology -- Open Systems Interconnection -- Remote Procedure Call (RPC)

English language (570 pages)
sale 15% off
Preview
sale 15% off
Preview

Get Certified

Connect with accredited certification bodies for this standard

BSI Group

BSI (British Standards Institution) is the business standards company that helps organizations make excellence a habit.

UKAS United Kingdom Verified

NYCE

Mexican standards and certification body.

EMA Mexico Verified

Sponsored listings

Frequently Asked Questions

ISO/IEC 11578:1996 is a standard published by the International Organization for Standardization (ISO). Its full title is "Information technology — Open Systems Interconnection — Remote Procedure Call (RPC)". This standard covers: Facilitates the specification and development of distributed applications based on extending the well-known remote procedure call paradigm to operate between application processes on two separate real open systems in the OSI environment.

Facilitates the specification and development of distributed applications based on extending the well-known remote procedure call paradigm to operate between application processes on two separate real open systems in the OSI environment.

ISO/IEC 11578:1996 is classified under the following ICS (International Classification for Standards) categories: 35.100.70 - Application layer. The ICS classification helps identify the subject area and facilitates finding related standards.

ISO/IEC 11578:1996 is available in PDF format for immediate download after purchase. The document can be added to your cart and obtained through the secure checkout process. Digital delivery ensures instant access to the complete standard document.

Standards Content (Sample)


INTERNATIONAL ISO/IEC
STANDARD
First edition
1996-12-15
Information technology - Open Systems
Interconnection - Remote Procedure Cal1
(RW
Interconnexjon de systemes ouverts
Technologies de I ‘in forma tion -
(OS/) - Appel de procedures 2 distance (RPC)
Reference number
ISO/IEC 11!578:1996(E)
Contents
Section 1 General
11 Scope
1:2 Normative references
1.3 Informative References
1.4 Definitions
1.4.1 Reference model definitions
1.4.2 Application Layer Structure definitions
1.4.3 Service conventions definitions
1.5 Abbreviations
Portability
1.6
Services and Protocols 9
1.7
Conformance Requirements IO
1.8
Introduction to the RPC API 13
Section 2
21 RPC Programming Model Overview
2:1.1 CIienVServer Model
2.1.1.1 Interfaces
2.1.1.2 Remoteness
2.1.1.3 Binding
2.1.1.4 Name Services
2.1.1.5 Resource Models
2.1.1.6 Security Services
2.1.1.7 Server lmplementation
Application/Stub/Run-time System
2.1.2
RPC Run Time
2.1.2.1
2.1.2.2 Stubs
2.1.2.3 Application Code
2.2 API Operations
2.2.1 Binding-related Operations
2.2.2 Name Service Operations
2.2.3 Endpoint Operations
2.2.4 Security Operations
Stub Memory Management Operations 19
2.2.5
2.2.6 Management Operations
2.2.7 UUID Operations
2.3 Binding
2.3.1 Binding Handles
2.3.1.1 Client and Server Binding Handles
2.3.1.2 Obtaining Binding Handles
2.3.2 String Bindings
2.3.3 Binding Steps
2.3.3.1 Server Binding Steps
2.3.3.2 Client Binding Steps
2.3.3.3 Cal1 Routing Algorithms
2.3.4 Binding Methods
0 ISO/IEC 1996
All rights reserved. Unless otherwise specified, no part of thrs publication may be repro-
duced or utilized in any form or by any means, electronrc or mechanrcal, rncluding photo-
copying and microfilm, without permtssron In wntlng from the publisher.
ISO/IEC Copyright Office l Case postale 56 l CH-1 211 Geneve 20 l Swrtzerland
Printed in Switzerland
0 ISO/IEC
2.4 Name Service Interface 30
2.4.1 Name Service Model 30
Name Syntax Tags 30
2.4.2
Name Service Attributes 31
2.4.3
Server Entries 31
2.4.3.1
2.4.3.2 Group Entries
2.4.3.3 Profiles
2.4.4 Binding Searches
2.4.5 Search Algorithm
2.4.6 Name Service Caching
2.5 Server Model
2.5.1 Server Concurrency and Request Buffering
2.5.2 Management Interface 35
2.6 Server Resource Models 36
2.6.1 The Server-Oriented Model 36
2.6.2 The Service-Oriented Model 36
2.6.3 The Object-Oriented Model 36
2.7 Secu rity 37
2.8 Error Handling 37
2.9 Cancel Notification 37
2.10 Stubs 39
2.10.1 IDL to Stub Data Type Mappings 39
2.10.2 Manager EPVs 39
2.10.3 Interface Handles 39
2.10.4 Stub Memory Management 39
2.11 RPC API Routine Taxonomy 40
2.11.1 Binding Operations 40
2.11.2 Interface Operations 40
2.11.3 Protocol Sequence Operations 41
2.11.4 Local Endpoint Operations 41
Object Operations 41
2.11.5
Name Service Interface Operations 42
2.11.6
NSI Binding Operations 42
2.11.6.1
NSI Entry Operations 42
2.11.6.2
2.11.6.3 NSI Group Operations
NSI Profile Operations 43
2.11.6.4
2.11.7 Authentication Operations
2.11.8 The Server Listen Operation
2.11.9 The String Free Operation
2.11 .lO UUID Operations
2.11 .ll Stub Memory Management
2.11.12 Endpoint Management Operations
2.11.13 Name Service Management Operations
2.11.14 Local Management Services 45
2.11.15 Local/Remote Management Services 45
2.11.16 Error Messages 45
RPC API Manual Pages 47
Section 3
3.1 RPC Data Types 47
3.1 .l Unsigned Integer Types 47
3.1.2 Signed Integer Type 47
3.1.3 Unsigned Character String 47
3.1.4 Binding Handle 48
3.1.5 Binding Vector 49
Boolean Type 49
3.1.6
3.1.7 Endpoint Mag Inquiry Handle 49
Interface Handle 50
3.1.8
3.1.9 Interface tidentifier 50
3.1.10 Interface Identifier Vector 51
3.1.11 Manager Entry Point Vector 51

ISCMEC 11578:1996(E)
0 ISOAEC
3.1.12 Name Service Handle
3.1.13 Protocol Sequence String
3.1.14 Protocol Sequence Vector
3.1.15 Statistics Vector
3.1.16 String Binding
3.1.17 String UUID
3.1.18 UUIDs
3.1.19 UUID Vector
rpc-binding-copy()
rpc-binding-free()
rpc-binding-from-string-binding ( )
rpc-binding-inqauth-client ( )
rpc-binding-inq-auth-info()
rpc-binding-inq-Object ( )
rpc-binding-reset ( ) 64
rpc-binding-serverfrom-client ( ) 65
rpc-binding-set-auth-info ( ) 66
rpc-binding-Set-Object ( ) 68
rpc-binding-to-string-binding ( ) 69
rpc-binding-vector-free ( ) 70
rpc-ep-register ( ) 71
rpc-ep-register-no-replace ( ) 74
rpc-ep-resolve-binding ( ) 76
rpc-ep-Unregister ( )
rpc-if-id-vector-free ( )
rpc-if-inq-id ( )
rpc~mgmt~ep~elt~inq~begin ( )
rpc~mgmt~ep~elt~inq~done ( )
rpc~mgmt~ep~elt~inq~next ( )
rpc-mgmt-ep-Unregister ( )
rpc~mgmt~inq~com~timeout ()
rpc~mgmt~inq~dfIt~protect~level( )
rpc-mgmt-inq-if-ids ( )
rpc~mgmt~inq~server~princ_name ( )
rpc-mgmt-inq-stats ( )
rpc~mgmt~is~server~listening ( ) 97
rpc-mgmt-set-authorizationfn () 99
rpc~mgmt~set~cancel~timeout ( ) 101
rpc-mgmt-set-comfimeout ( ) 102
rpc-mgmt-set-server-Stack-size ( ) 104
rpc-mgmt-stats-vector-free ( ) 105
rpc-mgmt-stop-server-listening ( ) 106
rpc-network-inq-protseqs ( ) 107
rpc-network-is-protseq-valid ( )
rpc-ns-binding-export ( )
rpc-ns-binding-import-begin ()
rpc-ns-binding-import-done ( )
rpc-ns-binding-import-next ()
rpc-ns-binding-inq-entry-name ( )
rpc-ns-binding-lookup-begin ( )
rpc-ns-binding-lookup-done()
rpc-ns-binding-lookup-next ( )
rpc-ns-binding-select ( )
rpc-ns-binding-unexport ( )
rpc-ns-entry-expand-name ( )
rpc-nsentry-inq-resojution ( )
rpc-ns-entry-Object-inq-begin ( )
rpc-nsentry-Object-inq-done ( )
rpc-ns-entry-Object-inq-next ( )
0 ISO/IE@ ISWIEC 11578:1996(E)
rpc-ns-group-delete ( )
rpc-ns-group-mbr-add ( )
rpc-ns-group-mbr-inq-begin ( )
rpc-ns-group-mbr-inq-done ( )
rpc---ns-group-mbr-inq-next ( ) 142
rpc-ns-group-mbr-remove() 144
rpc-ns-mgmt-binding-unexport ( ) 146
rpc-ns-mgmt-entry-create ( ) 149
rpc-ns-mgmtentry-delete ( ) 150
rpc-ns-mgmtentry-inq-if-ids ( ) 151
rpc-ns-mgmt-handle-setexp_age() 153
rpc~ns~mgmt~inq~exp~age() 154
rpc-ns-mgmt-set-exp-age( ) 156
rpc-ns-Profile-delete() 158
rpc-ns-Profile-elt-add ( ) 159
rpc-ns-Profile-elt-inq-begin ( ) 161
rpc-ns-Profile-elt-inq-done ( ) 164
rpc~ns~profile~elt~inq~next ( ) 165
rpc~ns~profile~elt~remove ( ) 167
rpc-Object-inqfype ( ) 169
rpc-Object-set-inq-fn ( ) 171
rpc-Object-setfype ( ) 172
rpc-protseq-vectorfree ( ) 174
rpc-server-inq-bindings ( )
rpc-server-inq-if ( ) 177
rpc-server-listen ( )
rpc-server-register-auth-info ( )
rpc-server-register-if ( ) 182
rpc-server-unregister-if () 185
rpc-server-use-all-protseqs ( ) 187
rpc-server-use-all-protseqs-if ( ) 189
rpc-server-use-protseq ( ) 191
rpc-server-use-protseq-ep ( ) 193
rpc-server-use-protseq-if ( ) 195
rpc-sm-allocate ( ) 197
rpc-sm-client-free ( ) 198
rpc-sm-destroy-client-context ( ) 199
rpc-sm-enable-allocate ( ) 200
rpc-sm-free ( ) 201
rpc-sm-getfhread-handle ( ) 202
rpc~sm~set~client~alloc~free() 203
rpc-sm-set-thread-handle ( ) 204
rpc~sm~swap~client~alloc~free() 205
rpc-string-binding-compose ( ) 206
rpc-string-binding-parse ( ) 207
rpc-stringfree() 209
uuid-compare() 211
uuid-create() 212
uuid-create-nil() 213
uuid-equal( )
uuidfrom-string ( ) 215
uuid-is-nil() 216
uuidfo-string ()
Interface Definition Language
Section 4 219
4.1 Notation
IDL Language Specification
4.2 220
IDL Lexemes
4.2.1 220
Keywords and Reserved Words
4.2.1.1 220
Identifiers 220
4.2.1.2
0 ISO/IEC
ISOAEC 11578:1996(E)
IDL Punctuation
4.2.1.3
Alternate Representation of Braces
4.2.1.4
4.2.1.5 White Spate
4.2.2 Comments
4.2.3 Interface Definition Structure
4.2.4 Interface Header
4.2.4.1 The uuid Attribute
4.2.4.2 The version Attribute
The endpoint Attribute
4.2.4.3
The local Attribute
4.2.4.4
The pointer default Attribute
4.2.4.5
Interface Body
4.2.5
Import Declaration
4.2.6
Constant Declaration
4.2.7
Syntax
4.2.7.1
Semantics and Restrittions
4.2.7.2
Type Declarations and Tagged Declarations
4.2.8
Base Types
4.2.9
Syntax
4.2.9.1
Integer Types
4.2.9.2
The char Types
4.2.9.3
The boolean Type
4.2.9.4
The byte Type
4.2.9.5
The void Type
4.2.9.6
4.2.9.7 The handle-t Type
4.2.10 Constructed Types
4.2.11 Structures
4.2.12 Unions
4.2.12.1 Syntax
4.2.12.2 Semantics and Restrittions
4.2.13 Enumerated Types
4.2.14 Pipes
4.2.14.1 Syntax
4.2.14.2 Semantics and Restrittions
4.2.15 Arrays
4.2.15.1 Syntax
4.2.15.2 Semantics and Restrittions
4.2.15.3 Arrays of Arrays
4.2.16 Type Attributes
4.2.16.1 Syntax
4.2.16.2 Semantics and Restrittions
4.2.16.3 The transmit as Attribute
4.2.16.4 The handle Attribute
4.2.16.5 The string Attribute
4.2.16.6 The context handle Attribute
4.2.17 Field Attributes
4.2.17.1 Syntax
4.2.17.2 Semantics and Restrittions
4.2.17.3 The ignore Attribute
4.2.18 Field Attributes in Array Declarations
4.2.18.1 Conformant Arrays
4.2.18.2 Varying and Conformant Varying Arrays
4.2.18.3 Relationships Between Attributes
4.2.18.4 Negative Size and Length Specifications 233
4.2.19 Field Attributes in String Declarations 233
4.2.19.1 The first is, last is and iength is Attributes
4.2.19.2 The max is Attribute -
4.2.19.3 The size -is Attribute
4.2.20 Pointers -
vi
0 ISO/IEC
4.2.20.1 Syntax 234
4.2.20.2 Semantics and Restrittions 234
4.2.20.3 Attributes Applicable to Pointers 235
4.2.20.4 Varying Arrays of Pointers 235
4.2.20.5 Restrittions on Pointers 236
Pointers as Arrays 237
4.2.21
Pointers with the string Attribute 237
4.2.21.1
Possible Ambiguity Resolved 237
4.2.21.2
4.2.22 Operations
The idempotent Attribute 238
4.2.22.1
4.2.22.2 The broadcast Attribute
4.2.22.3 The maybe Attribute
4.2.23 Parameter Declarations
4.2.23.1 Syntax
4.2.23.2 Semantics and Restrittions
4.2.23.3 Directional Attributes
4.2.23.4 Aliasing in Parameter Lists 239
4.2.24 Predefined Types 239
4.2.25 The error-Status-t Type 239
4.2.26 International Character Types 239
4.2.27 Anonymous Types 240
4.3 The Attribute Configuration Source 241
4.3.1 Comments 241
4.3.2 Identifiers 241
4.3.3 Syntax 241
4.3.4 Include Declaration 242
4.3.5 Specifying Binding Handles 243
4.3.5.1 The explicit handle Attribute 243
4.3.5.2 The implicit-handle Attribute 243
4.3.5.3 The auto handle Attribute 243
The represent as Attribute 244
4.3.6
4.3.7 The code andiocode Attributes 244
4.3.8 The in line and out of line Attributes 244
Returrktatuses - - 245
4.3.9
The comm Status Attribute 245
4.3.9.1
The fault Status Attribute 245
4.3.9.2
Interactioi of the comm Status and fault Status Attributes 246
4.3.9.3 -
4.3.10 The heap Attribute -
4.3.11 The enable allocate Attribute
4.4 IDL Grammakynopsis
4.4.1 Grammar Synopsis
4.4.2 Alphabetic Listing of Productions
4.5 IDL Constructed Identifiers 253
4.6 IDL and ACS Reserved Words
Section 5 Stubs 255
5.1 The Application/Stub Interface 255
5.1.1 Parameters 255
5.1.1.1 Parameter Memory Management 255
5.1.1.2 Client-side Allocation 256
5.1.1.3 Server-side Allocation 256
5.1.1.4 Aliasing 257
5.1.2 Default Manager EPVs 257
5.1.3 Interface Handle 257
5.1.4 Pipes 257
5.1.4.1 Processing of in Pipes 259
5.1.4.2 Processing of out Pipes 260
5.1.4.3 Processing of in,out Pipes 261
5.1.5 IDL and ACS Type Attributes 261
5.1.5.1 The IDL transmit as Attribute 261
-
vii
0 ISO/IEC
ISO/lEC 11578:1996(E)
The IDL handle Attribute
5.1.5.2
Interaction of IDL transmit as and IDL handle Attributes
5.1.5.3
The ACS represent as Attribute
5.1.5.4
Interaction of the ACS represent as Attribute and the
5.1.5.5 -
IDL handle Attribute
Interaction of the ACS represent as Attribute with the 264
5.1.5.6
-
IDL transmit as Attribute
5.1.6 Context Hand6 Rundown
5.2 Interoperability Requirements on Stubs
5.2.1 Operation Numbers
Error Handling During Floating-Point Unmarshalling 266
5.2.2
Section 6 Remote Procedure Call Model
6.1 CIientKerver Execution Model
6.1.1 RPC Interface and RPC Object
6.1.1.1 RPC Interfaces
6.1.1.2 RPC Objects
6.1.2 Interface Version Numbering
6.1.2.1 Rules for Changing Version Numbers
6.1.2.2 Definition of an Upwardly Compatible Change
6.1.2.3 Non-upwardly Compatible Changes
Remote Procedure Calls
6.1.3
6.1.4 Nested RPCs
6.1.5 Execution Semantics
Context Handles
6.1.6
6.1.7 Threads
Cancels
6.1.8
Binding, Addressing and Name Services
6:2.1 Binding
6.2.2 Endpoints and the Endpoint Mapper
6.2.2.1 Client Operation
6.2.2.2 Server Operation
NSI Interface
6.2.3
Common Declarations
6.2.3.1
Protocol Towers
6.2.3.2
The server name Object Attributes
6.2.3.3
The group Object Attributes
6.2.3.4
The Profile Object Attributes
6.2.3.5
Encoding
6.2.3.6
6.2.3.7 Name Service Class Values
Error Handling Model
Section 7 RPC Service Definition
7.1 Call Representation Data Structure
7.2 Service Primitives
Invoke 286
7.2.1
7.2.2 Result
7.2.3 Cancel
7.2.4 Error
7.2.5 Reject
Section 8 Statechart Specification Language Semantics
8.1 The Elements of Statecharts
82 . State Hierarchies
83 . Concurrency
84 Graphical Expressions
8'4 1 Default Entrances
81412 Conditional Connectors
8.4.3 Terminal Connectors
85 Semantics that Require Special Consideration
8:5.1 Implicit Exits and Entrances (Scope of Transitions)
8.5.2 Conflicting Transitions
0 lSO/IEC
8.5.3 Execution Steps and Time 295
Synchronisation and Rate Conditions 296
8.5.4
Summary of Language Elements 297
8:6.1 Event Expressions 297
Condition Expressions
8.6.2 298
Action Expressions
8.6.3 298
8.6.4 Data Item Expressions 300
Atomic Numeric Expressions
8.6.4.1 300
8.6.4.2 Compound Numeric Expressions 300
8.6.4.3 String Expressions 300
Section 9 RPC Protocol Definitions 301
91 . Conformance 301
92 RPC Stub to Run-time Protocol Machine Interactions 302
9 ’2 . 1 Client Protocol Machines 302
9'2 . . 2 Server Protocol Machines 303
93 Connection-oriented Protocol 304
9 ’3 . 1 CIient/Server 304
9'3 . 2 Association Group 304
9'3 3 Association 304
9:3:3.1 Association Management Policy 305
9.3.3.2 Primary and Secondary Endpoint Addresses 305
9.3.4 Call 305
9.3.5 Transport Service Requirements 305
9.4 Connection-oriented Protocol Machines 306
9.4.1 CO CLIENT ALLOC 306
9.4.2 CO-CLIENT-GROUP 306
9.4.3 CO-CLIENT- 306
9.4.3.1 ASSOCIATION 307
9.4.3.2 CONTROL 307
9.4.3.3 CANCEL 307
9.4.3.4 CALL 307
CO SERVER GROUP 307
9.4.4
CO-SERVER- 307
9.4.5
9.4.5.1 ASSOCIATION
9.4.5.2 CONTROL
9.4.5.3 CANCEL
9.4.5.4 WORKING 308
9.5 Connectionless Protocol 309
9.5.1 Clientkerver 309
9.5.2 Activity 309
9.5.3 Call 309
9.5.4 Maintaining Execution Context and Monitoring Liveness 309
9.5.5 Serial Numbers 310
9.5.6 Transport Service Requirements 310
96 Connectionless Protocol Machines 311
9'6 . 1 RPC Stub to Run Time Protocol Machine Interactions 311
9'6 2 CL CLIENT 311
9:6:2.1 CÖNTROL 311
9.6.2.2 AUTHENTICATION 311
9.6.2.3 CALLBACK 311
9.6.2.4 PING 311
9.6.2.5 CANCEL 311
9.6.2.6 DATA 312
9.6.3 CL SERVER 312
9.6.3.1 CÖNTROL 312
9.6.3.2 AUTHENTICATION 312
9.6.3.3 CANCEL 312
9.6.3.4 WORKING 312
9.7 Naming Conventions 313
iX
Connectionless RPC Protocol Machines 315
Section 10
CL CLIENT Machine 316
10.1
cl CLIENT Activities 316
10.1.1
10.1.2 CL-CLIENT States
10.1.3 CL-CLIENT Events 323
10.1.4 CL-CLIENT Conditions 326
10.1.5 CL-CLIENT Actions 331
10.1.6 CL-CLIENT Data-ltems 335
10.2 CL SERVER Machine 344
10.2.1 C?L SERVER Activities 344
10.2.2 CL-SERVER States 348
10.2.3 CL-SERVER Events 354
10.2.4 CL-SERVER Actions 358
10.2.5 CL-SERVER Conditions 364
10.2.6 CL-SERVER Data-ltems 369
Section 11 Connktion-oriented RPC Protocol Machines 381
11.1 CO CLIENT Machine 382
11.1.1 CÖ CLIENT Activities 382
11.1.2 CO-CLIENT States 384
11.1.3 CO-CLIENT Events 390
11.1.4 CO-CL1 ENT Actions 396
11.1.5 CO-CLIENT Conditions 400
11.1.6 CO-CLIENT Data-Items 404
11.2 CO CLIENT ALLOC Machine 413
11.2.1 CÖ CLIENT ALLOC Activities 414
11.2.2 CO-CL1 ENT-ALLOC States 415
11.2.3 CO-CLIENT-ALLOC Events 417
11.2.4 CO-CLIENT-ALLOC Actions 420
CO-CLIENT-ALLOC Conditions 421
11.2.5
CO-CLIENT-ALLOC Data-ltems 422
11.2.6
CO CL~ENT GROUP Machine 423
11.3
11.3.1 CÖ CLIEN? GROUP States
11.3.2 425
CO-CLIENT-GROUP Events
11.3.3 CO-CLIENT-GROUP Data-ltems 426
11.4 CO SERVER Machine
11.4.1
CÖ SERVER Activities 428
11.4.2
CO-SERVER States 430
11.4.3 CO-SERVER Events 435
11.4.4
CO-SERVER Actions 441
11.4.5
CO-SERVER Conditions 446
11.4.6 CO-SERVER Data-ltems 450
11.5
CO SERVER GROUP Machine 459
11.5.1 CÖ SERVER GROUP States 460
11.5.2 CO-SERVER-GROUP Events 461
11.5.3 CO-SERVER-GROUP Actions 463
11.5.4 CO-SERVER-GROUP Data-ltems 463
Section 12 RPC PDU EncÖdings 465
12.1 Generic PDU Structure 465
12.2 Encoding Conventions 466
12.3 Alignment 466
12.4 Common Fields 467
12.4.1 PDU Types 467
12.4.2 Protocol Version Numbers 467
12.4.3 Data Representation Format Labels 467
12.4.4 Reject Status Codes 467
12.5 Connectionless RPC PDUs 468
12.5.1 Connectionless PDU Structure 468
12.5.2 Header Encoding 468
12.5.2.1 Protocol Version Number 469
X
ISO/lEC 11578:1996(E)
0 ISOhEC
12.5.2.2 PDU Type
12.5.2.3 Flags Fields
12.5.2.4 Data Representation Format Label
12.5.2.5 Serial Number
12.5.2.6 Object Identifier
12.5.2.7 Interface Identifier
12.5.2.8 Activity Identifier
12.5.2.9 Server Boot Time
12.5.2.10 Interface Version
12.5.2.11 Sequence Number
12.5.2.12 Operation Number
12.5.2.13 Interface Hint
12.5.2.14 Activity Hint
12.5.2.15 PDU Body Length
12.5.2.16 Fragment Number
12.5.2.17 Authentication Protocol Identifier
12.5.3 Connectionless PDU Definitions
12.5.3.1 The ack PDU
12.5.3.2 The cancel ack PDU
The cancel>DU
12.5.3.3
The fack PDU
12.5.3.4
The fault PDU
12.5.3.5
The nocall PDU
12.5.3.6
12.5.3.7 The ping PDU
12.5.3.8 The reject PDU
12.5.3.9 The request PDU
12.5.3.10 The response PDU
12.5.3.11 The working PDU
12.6 Connection-oriented RPC PDUs
12.6.1 Connection-oriented PDU Structure
12.6.2 Fragmentation and Reassembly
12.6.3 Connection-oriented PDU Data Types
12.6.3.1 Declarations
12.6.3.2 Connection-Oriented Protocol Versions
12.6.3.3 The frag length Field
12.6.3.4 Context identifiers
12.6.3.5 The call id Field
12.6.3.6 The assoc group id Field
12.6.3.7 The alloc hint Field
12.6.3.8 Authentication Data
12.6.3.9 Optional Connect Reject and Disconnect Data
12.6.4 Connection-oriented PDU Definitions
12.6.4.1 The alter context PDU
12.6.4.2 The alter-context resp PDU
12.6.4.3 The bindPDU -
12.6.4.4 The bind ack PDU
12.6.4.5 The bind-nak PDU
12.6.4.6 The cancel PDU
12.6.4.7 The fault PDU
12.6.4.8 The orphaned PDU
12.6.4.9 The request PDU
The response PDU
12.6.4.10
The shutdown PDU
12.6.4.11
Section 13 Security 495
The Generic RPC Security Model 496
13.1
Generic Operation 496
13.1 .l
13.1.2 Generic Encodings
13.1.2.1 Protection Levels
13.1.2.2 Authentication Services
xi
0 lSO/IEC
13.1.2.3 Authorisation Services 498
13.1.3 Underlying Security Services Required 498
13.2 Security Services for Connection-oriented Protocol 499
13.2.1 Client Association State Machine 499
13.2.2 Server Association State Machine 499
13.2.3 Sequence Numbers 499
13.2.4 The auth context id Field 500
13.2.5 Integrity Protectioi 500
13.2.6 Connection-oriented Encodings 501
13.2.6.1 Common Authentication Verifier Encodings 501
13.2.6.2 Encoding for Per-PDU Services 501
13.2.6.3 Credentials Encoding
Security Services for Connectionless Protocol
13.3 505
Server Receive Processing
13.3.1 505
Client Receive Processing
13.3.2 505
Conversation Manager Encodings
13.3.3 505
Challenge Request Data Encoding
13.3.3.1 505
13.3.3.2 Response Data Encoding 506
Authentication Verifier Encodings
13.3.4 506
13.3.4.1 dce c authn level none 506
13.3.4.2 dce-c-authn-level-connect 506
13.3.4.3 dce-c-authn-level-cal1 506
13.3.4.4 dce-c-authn-IevelIpkt 507
13.3.4.5 dce~c~authnIleveI_integrity 507
13.3.4.6 dce-c-authn-level-privacy 507
Section 14 Transfer Syntax NDR 509
14.1 Data Representation Format Label 510
14.2 NDR Primitive Types 511
14.2.1 Representation Conventions 511
14.2.2 Alignment of Primitive Types 511
14.2.3 Booleans 512
14.2.4 Characters 512
14.2.5 Integers and Enumerated Types 512
14.2.5.1 Enumerated Types 513
14.2.6 Floating-Point Numbers 513
14.2.6.1 IEEE Format 514
14.2.6.2 VAX Format 515
14.2.6.3 Cray Format 516
14.2.6.4 IBM Format 517
14.2.7 Uninterpreted Octets 518
14.3 NDR Constructed Types 519
14.3.1 Representation Conventions
14.3.2 Arrays 519
14.3.2.1 Uni-dimensional Fixed Arrays
14.3.2.2 Uni-dimensional Conformant Arrays
14.3.2.3 Uni-dimensional Varying Arrays
14.3.2.4 Uni-dimensional Conformant-varying Arrays
14.3.2.5 Ordering of Elements in Multi-dimensional Arrays
14.3.2.6 Multi-dimensional Fixed Arrays
14.3.2.7 Multi-dimensional Conformant Arrays
14.3.2.8 Multi-dimensional Varying Arrays
14.3.2.9 Multi-dimensional Conformant and Varying Arrays
14.3.3 Strings
14.3.3.1 Varying Strings
14.3.3.2
Conformant and Varying Strings 524
14.3.4 Arrays of Strings
14.3.5 Structures
14.3.5.1 Alignment of Constructed Types
14.3.6 Structures Containing Arrays
xii
0 ISO/IEC
Structures Containing a Conformant Array 526
14.3.6.1
Structures Containing a Conformant and Varying Array 527
14.3.6.2
14.3.7 Unions
14.3.8 Pipes
14.3.9 Pointers
14.3.10 Top-level Pointers
14.3.10.1 Top-level Full Pointers
14.3.10.2 Top-level Reference Pointers
14.3.11 Embedded Pointers
14.3.11 .l Embedded Full Pointers
14.3.11.2 Embedded Reference Pointers
14.3.11.3 Algorithm for Deferral of Referents
14.4 NDR Input and Output Streams
A Universal Unique Identifier
Annex
Al Format
A:2 Algorithms for Creating a UUID
A.2.1 Glock Sequence
A.2.2 System Reboot
A.2.3 Glock Adjustment
A.2.4 Glock Overrun
A.2.5 UUID Generation
String Representation of UUIDs
A3
Comparing UUIDs
A ’. 4
Protocol Sequence Strings
Annex B
Name Syntax Constants
Annex C
Authentication, Authorisation and Protection-level 545
Annex D
Arguments
The authn svc Argument
Dl .
The authzsvc Argument
D2 .
The prote; level Argument
D3 .
D4 . The privs Argument
The server princ name Argument
05 .
D6 . The auth identityArgument
D7 . Key Func%ons
Annex E Reject Status Codes and Parameters
El . Reject Status Codes
E2 Possible Failures
E-2 . 1 comm-Status Parameter
E-2 . . 2 fault Status Parameter
F IDL to%-language Mappings
Annex
Fl . Data Type Bindings
F2 . Syntax Mappings
G Portable Character Set
Annex
H Endpoint Mapper Weil-known Ports
Annex
I Protocol Identifiers
Annex
DCE CDS Attribute Names
Annex J
K Architected and Default Values for Protocol
Annex
Machines
L Protocol Tower Encoding
Annex
Ll . Protocol Tower Contents
M The dce error inq text Manual Page
Annex
dce-errorinqtet ( ) -
IDL Data Type Declarations
Annex N
Basic Type Declarations
NI .
Status Codes
N2 .
RP@-specific Data Types
N3 .
Endpoint Mapper Interface Definition
Annex Q
Conversation Manager Interface Definition
Annex P
Server Interface
PI .
0 ISO/IEC
82 Client Interface 585
Remote Management Interface 587
Annex 6
Annex R Mapping of RPC Protocol to an OSI Infrastructure 589
Rl . Abstract Syntax name 589
. Transfer Syntax name 589
R2
Simple RPC application context 590
R3
. Application context name 590
R ’3 1
R ’32 . Component ASEs
Mapping to supporting Services 590
R ’. 3 . 3
List of Figures
2-l Information Required to Complete an RPC
2-2 Server Binding Relationships
2-3 Decisions in Looking Up an Endpoint
2-4 Decisions for Selecting a Manager
6-l Execution Phases of an RPC Thread
6-2 Concurrent Call Threads Executing in Shared Execution Context
IO-1 CL CLIENT Statechart
1 o-2 CL-SERVER Statechart
11-1 CÖ CLIENT Statechart
11-2 CO-CLIENT ALLOC Statechart 413
11-3 CO-CLIENT-GROUP Statechart 423
11-4 CO-SERVER Statechart
11-5 CO-SERVER GROUP Statechart 459
14-1 NDR Format Label 510
14-2 The Boolean Data Type
14-3 Character Data Type 512
14-4 NDR Integer Formats 513
14-5 IEEE Single-precision Floating-Point Format 514
14-6 IEEE Double-precision Floating-Point Format 515
14-7 VAX Single-precision (F) Floating-Point Format 515
14-8 VAX Double-precision (G) Floating-Point Format 516
14-9 Cray Floating-Point Formats 517
14-10 IBM Floating-Point Formats 517
14-11 Uninterpreted Octet Representation 518
14-12 Uni-dimensional Fixed Array Representation 520
14-13 Uni-dimensional Conformant Array Representation 520
14-14 Uni-dimensional Varying Array Representation 520
14-15 Uni-dimensional Conformant and Varying Array Representation 521
14-16 Multi-dimensional Fixed Array Representation 521
14-17 Multi-dimensional Conformant Array Representation 522
14-18 Multi-dimensional Varying Array Representation 522
14-19 Multi-dimensional Conformant and Varying Array Representation 523
14-20 Varying String Representation 523
14-21 Conformant and Varying String Representation 524
14-22 Multi-dimensional Conformant and Varying Array of Strings 525
14-23 Structure Representation 525
14-24 526
Representation of a Structure Containing a Conformant Array
14-25
Representation of a Structure Containing a Conformant and Varying Array 527
14-26
Union Representation 527
14-27
Pipe Representation 528
14-28
Top-level Full Pointer Representation 529
14-29
Top-level Reference Pointer Representation 530
14-30 Embedded Full Pointer Representations 531
14-31 Embedded Reference Pointer Representation 531
14-32 NDR Input Stream 532
14-33 NDR Output Stream 532
xiv
lSO/lEC 11578:1996(E)
0 ISO/IEC
List of Tables
3-I Client and Server Binding Handles
3-2 Rules for Returning an Object ’s Type
4-l Integer Base Types
4-2 IDL Directional Attributes 238
Alphabetic Listing of Productions 250
4-3
Constructed Identifier Classes 253
4-4
Transmitted Type Routines 262
5-I
Transferred Type Routines 263
5-2
Floating Point Error Handling 266
5-3
Execution Semantics 270
6-l
6-2 Protocol Tower Structure
6-3 The server name Object Attributes
6-4 RPC-specific Protocol Tower Layers
6-5 Example Protocol Tower
6-6 Service Group Object Attributes
6-7 Configuration Profile Object Attributes
7-l Invoke Parameters
7-2 Result Parameters
7-3 Cancel Parameters
7-4 Error Parameters
7-5 Reject Parameters
8-l Events Related to Other Elements
8-2 Compound Events
8-3 Conditions Related to Other Elements
8-4 Compound Conditions
8-5 Actions Related to Other Elements
8-6 Compound Actions
12-1 RPC Protocol Data Units
12-2 The First Set of PDU Flags 469
12-3 Second Set of PDU Flags
12-4 Authentication Protocol Identifiers
14-1 NDR Format Label Values 510
14-2 NDR Floating Point Types 513
A-l UUID Format 534
A-2 UUID version Field 534
A-3 UUID variant Field 534
A-4 The 4 Msb of clock seq hi and reserved 537
A-5 Field Order and Type - - - 539
B-l RPC Protocol Sequence Strings 541
RPC Name Syntax Defined Constants 543
C-l
Casts for Authorisation Information 547
D-l
RPC Key Acquisition for Authentication Services 547
D-2
Reject Status Codes 549
E-l
Failures Returned in a comm Status Parameter 551
E-2
Failures Returned in a fault Status Parameter 551
E-3
IDL/NDR/C Type Mappings- 553
F-l
Recommended Boolean Constant Values 554
F-2
Portable Character Set NDR Encodings 559
G-l
Endpoint Mapper Weil-known Ports 561
H-l
NDR Transfer Syntax Identifier 563
l-l
Registered Single Octet Protocol Identifiers 563
l-2
DCE CDS Attribute Names 565
J-l
Default Protocol Machine Values 567
K-l
L-l Floors l to 3 lnclusive
Floors 4 and 5 for TCP/IP Protocols 570
L-2
Floors 4, 5 and 6 for DECnet ProtocoP 570
L-3
xv
Foreword
ISO (the International Organization for Standardization) and IEC (the Inter-
national Electrotechnical Commission) form the specialized System for
worldwide standardization. National bodies that are members of ISO or
IEC participate in the development of International Standards through tech-
nical committees established by the respective organization to deal with
particular fields of technical activity. ISO and IEC technical committees
collaborate in fields of mutual interest. Other international organizations,
governmental and non-governmental, in liaison with ISO and IEC, also take
part in the work.
In the field of information technology, ISO and IEC have established a joint
technical committee, lSO/IEC JTC 1. Draft International Standards adopted
by the joint technical committee are circulated to national bodies for
voting. Publication as an International Standard requires approval by at
least 75 % of the national bodies casting a vote.
International Standard lSO/IEC 11578 was prepared by Joint Technical
Committee lSO/IEC JTC 1, Information technology, Subcommittee SC 21,
Open Systems interconnection, data management and open distributed
processing.
Annexes A to R form an integral part of this International Standard.
xvi
INTERNATIONAL STANDARD @ ISO/IEC
ISWEC 11578:1996(E)
Information technology - Open Systems Interconnection -
Remote Procedure Cal1 (RPC)
Section 1. General
Using RPC to develop distributed applications is growing in popularity and importante. This International
Standard for OSI RPC will meet the growing demand for standardization in this area to ensure future interop-
erability of distributed applications making use of RPC.
This International Standard facilitates the specification and development of distributed applications based on
extending the weil-known remote procedure call paradigm to operate between application processes on two
separate real open Systems in the OSI environment.
The RPC issues addressed by this International Standard reflect the fact that RPC is related both to applica-
tion programming environments and to communication Systems. The modeling of RPC divides naturally into
two complementary areas:
a) describing the RPC paradigm and how it relates to the application programming environments in
which it is used, and
b)
defining the communication Service used to support RPC in an OSI environment.
This International Standard specifies both portability and interoperability for the Remote Procedure Call
(RPC) mechanism. The specification contains material directed at two audiences:
l lt provides a portability guide for application programmers.
lt provides both portability and interoperability specifications for those who are implementing or
porting RPC or who are testing an RPC implementation.
This International Standard may be thought of as an implementation specification, covering both portability
and interoperability, that contains within it an application portability guide. The application portability guide
consists of Part 2, RPC Application Programmer ’s Interface and Part 3, Interface Definition Language and
Stubs.
Although the portability specification is part of the broader implementation specification, it has been designed
to stand alone so that it may be used by application programmers without reference to the other Parts of the
implementation specification.
Note: In Order to make the portability specification independent, some material is repeated, especially between Section 2 and Sec-
tion 6.
0 ISO/IEC
1.1
Scope
This International Standard
a) defines the RPC Interaction Model for applications; it describes the styles of interactions supported by
the OSI RPC Standard as perceived by application programmers;
b) defines the RPC Communication Model which describes the RPC components and characteristics
within the framework of OSI Application Layer Structure;
defines the requirements met by the Standard; and
C)
d) defines the requirements to be met by other Standards for use by RPC and defines the necessary
components for the use of these Standards.
specifies conformance requirements;
e)
f) specifies the infrastructure of support environments for RPC such as naming, security and manage-
ment;
specifies programming language bindings or specific programming language interfaces;
9)
This International Standard
does not specify individual implernentations or products;
a)
b) does not specify local customizations and configurations;
c) does not specify the interface to local resources or access facilities that are provided within the local
System; and
d) does not provide formal description tools to describe the algorithmic aspects of a distributed applica-
tion or application semantics.

ISO/lEC 11578:1996(E)
0 ISO/IEC
1.2 Normative references
The following Standards contain provisions which, through reference in this text, constitute provisions of this
International Standard. At the time of publication, the editions indicated were valid. All Standards are subject
to revision, and Parties to agreements based on this International Standard are encouraged to investigate the
possibility of applying the most recent editions of the Standards indicated below. Members of IEC and ISO
maintain registers of currently valid International Standards.
ISO 7498-1:1994, Information technology - Open Systems Interconnection - Basic Reference Model: The
Basic Model
ISO 7498-2:1989, Information processing Systems - Open Systems Interconnection - Basic ßeference Model
- Part 2: Security Architecture.
ISO 7498-3:1989, Information processing Systems - Open Systems lnterconnection - Basic Reference Model
- Part 3: Naming and addressing.
Service definition for the Associa-
ISO 8649: 1996, Information technology - Open Systems Interconnection -
tion Con trol Service Element.
ISO 8822:1994, Information technology - Open Systems lnterconnection - Presentation Service definition.
- Specification of Abstract Syn-
I SO/I EC 8824: 1990, lnforma tion technology - Open Systems Interconnection
tax Notation One (ASN. 1).
ISOAEC 9545: 1994, Information technology - Open Systems Interconnection - Application Layer Structure.
ISO/IEC 10646-1: 1993, Information technology - Universal Multiple-Octet Coded Character Set (UCS) - Part
1: Architecture and Basic Multilingual Plane.
ISOAEC 10731 :1994, Information technology - Open Systems Interconnection - Basic ßeference Model -
Conventions for the definition of OS1 Services.
0 ISO/IEC
13 m Informative References
X/Open P315: April 1996, WOpen DCE: Authentication and Security Services.
X/Open C312: December 1994, WOpen DCE: Directory Services.
IEEE Pl 003.4a:1995: POSIX Threads.
D. Harel, Science of Computer Programming, 8(3), 231-274, June 1987, Statecharts: a visua/ formalism for
complex Systems.
0 ISOhEC
14 lI Qefinitions
Reference model definitions
1.4.1
This llnternational Standard is based on the concepts developed in ISO/IEC 7498, and makes use of the fol-
lowing terms defined in them:
a) Application Layer;
b) application-process;
c) application-entity;
d) application-service-element;
e) application-protocol-data-unit;
f) presentation-connection;
g) presentation context; and
h) real open System.
1.4.2 Application Layer Structure definitions
This International Standard makes use of the following terms defined in ISO 9545:
application-association;
a)
application-entity-invocation;
W
application-process-invocation;
C>
application-service-element-invocation;
d)
application-service-object;
e)
ASO-association;
f )
ASO-context;
9)
application-service-Object-invocation; and
W
control function.
1.4.3 Service conventions definitions
This International Standard makes use of the following terms defined in ISO 10731:
OSI Service;
service-provider;
service-user;
request;
indication;
response; and
tonfirm.
0 lSO/IEC
Abbreviations
1.5
For the purposes of this International Standard, the following abbreviations apply:
ACL Access Control List
ACS Attribute Configuration Source
ACSE Association Control Service Element
AND Logical And Operation
API Application Programming Interface
American Standard Code for Information Interchange
ASCII
application-service-element
ASE
application-service-object
AS0
Asbtract Syntax Notation 1
ASN.l
Basic Encoding Rules
BER
Backus-Naur Form
BNF
Client Address Spate
CAS
Cell Directory Service
CDS
Connectionless
CL
Connectionless Network Service
CLNS
Connectionless Transport Service
CLTS
Connection-oriented
CO
Connection Oriented Transport Service
COTS
CRC Cyclic Redundancy Check
Domain Directory Service
DDS
Digital Equipment Corporation Network products
DECNet
DNA Digital Network Architecture
DOD US Department of Defense
EBCDIC Extended Binary Coded Decimal Interchange Code
EPV End Point Vector
GUID Global User IDentifier
ID Identifier
IDL Interface Definition Language
IEEE Institution of Electrical and Electronie Engineers
INF Infinity
IP Internet Protocol
IPX Internetwork Packet Exchange
KB Kilobyte
LHS Left hand side
LSB Least significant bit
MSB Most significant bit
NaN Not a number
NDR Network Data Representation
NetBEUI NetBIOS Extended User Interface
NetBIOS Network Basic InpWOutput System
NSAP Network Service Access Point
NSI Network Service Independent
NSP Network Services Protocol
OID Object Identifier
OR Logical OR Operation
OSI Open Systems Interconnection
PAC Privilege Attribute Certificate
PCS Portable Character Set
PDU Protocol Data Unit
POSIX Portable Operating System
PSAP Presentation Service Access Point
RHS Right hand side
ROM Read-onlv memorv
ISOhEC 11578:1996(E)
0 ISO/IEC
RPC Remote Procedure Cal1
RTT Round trip time
SPX Sequenced Packet Exchange
TCP Transmission Control Protocol
TCPA P TCP (q.v.)
TP4 OSI Transport Protocol Class 4
Transport PDU (q.v.)
TPDU
UDP (q.v.)
UDPAP
Coordinated Universal Time
UTC
Unique Universal Identifier
UUID
Logical Exclusive OR Operation
XOR
0 ISOhEC
Portability
1.6
The portability specification describes the concrete Syntax and semantics of the Application Programmer ’s
lnterface (API) to RPC. lt consists of:
l an introduction to the RPC API that describes the RPC programming model and gives general
guidelines for portable usage (see Section 2)
0 a reference subclause for the data types used in the RPC API (see Section 3)’
l
a set of reference pages for the RPC run-time library routines; these specify the calling Syntax
and semantics for the interfaces (see Section 3)
l a reference to the Interface Description Language (IDL) (see Section 4)
e a mapping of IDL data types to ISO C data types (see Annex F)
l
an RPC stub specification that defines stub characteristics required for portability (see Subclause
5.1 on page 255).
The portability specification is narrowly focussed on providing a guide to portable usage of the RPC API. lt
describes behaviour that is common to all implernentations. Whenever implementation-specific behaviour is
referenced, it is clearly marked as such. Similarly, the specification generally avoids examples or tutorial
descriptions. Whenever usage guidelines are provided, they are clearly marked as such.
All behaviour that is not specifically marked as implementation-specific or a usage note, is considered to be
required. All implernentations must conform to the specified behaviour. Programmers tan rely on the speci-
fied behaviour to be portable among conforming implernentations.
1. This International Standard specifies ISO C-Panguage bindings for data types and interfaces.
@ ISO/IEC ISO/IEC 11578:1996(E)
1.7 Services and Protocols
The implementation specification includes a set of Service and protocol specifications. The protocol specifi-
cations describe how implernentations of the RPC client and server run-time Systems communicate. The
Service specifications describe a set of abstract Services that the RPC run-time System must implement.
The Service and protocol specifications include:
l an abstract specification of the RPC model (see Section 6)
l an abstract specification of a set of RPC Service primitives (see Section 7)
l abstract specifications of the RPC connectionless and connection-oriented communications pro-
tocols. These are given as sets of statecharts and associated descriptive materials. This
includes an abstract specification of the underlying transport Services required by the RPC proto-
cols. (The protocol specifications are contained in Section 8, Section 9, Section IO and Section
.
11 >
l byte stream specifications of the formats of RPC Protocol Data Units (PDUs) used by the connec-
tionless and connection-oriented protocols (see Section 12) and common authentication verifier
encodings (see Section 13)
l a specification of the Network Data Representation (NDR); this specifies a set of NDR data types
and the byte stream formats in which they are communicated between client and server run-time
environments (see Section 14)
l a mapping of IDL data types to NDR data types (see Annex F)
e an RPC stub specification that defines the stub characteristics required for interoperation (see
Subclause 5.2 on page 266)
l a specification of information stored in and retrieved from name Services (see Subclause 6.2 on
page 275, Annex I and Annex J)
l a UUID specification (see Annex A)
l IDL data type declarations (see Annex N)
l the endpoint mapper protocol (see Annex 0)
l the conversation manager protocol (see Annex P)
l the remote management interface (see Annex Q).
The aim of the Service and protocol specifications is to pr
...

Questions, Comments and Discussion

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

Loading comments...