CORBA

Common Object Request Broker Architecture

Management
Introduced in R99
CORBA is an object-oriented middleware standard from the Object Management Group (OMG) that enables distributed software components to interact across different platforms and programming languages. In 3GPP, it was extensively used for management interfaces, particularly in the Network Management (NM), Element Management (EM), and Network Resource Model (NRM) domains. It provided a standardized framework for operations, administration, and maintenance (OAM) functions in 2G, 3G, and early 4G networks.

Description

CORBA (Common Object Request Broker Architecture) is a specification developed by the Object Management Group (OMG) that defines a standardized, object-oriented framework for building distributed applications. Within the 3GPP context, CORBA served as a crucial middleware technology for implementing management interfaces, enabling communication between network management systems (NMS), element management systems (EMS), and the network elements (NEs) themselves. Its architecture is based on the Object Request Broker (ORB), which acts as a communication bus facilitating object requests between clients and servers, abstracting the underlying network details, operating systems, and programming languages.

The core of CORBA's operation in 3GPP management systems revolves around the Interface Definition Language (IDL). 3GPP technical specifications define management interfaces using CORBA IDL, which specifies the operations, parameters, and data types that network elements must support. This IDL definition is then compiled into client and server stubs (proxies and skeletons) in the target programming language (e.g., C++, Java). At runtime, a client (like an EMS) invokes an operation on a remote object (hosted on an NE) through its local stub. The ORB handles the marshalling of the request into a standardized format (using the General Inter-ORB Protocol - GIOP, often transported over TCP/IP as IIOP), transmits it across the network, and delivers it to the server's ORB. The server's ORB unmarshals the request, invokes the corresponding method on the actual object implementation, and returns the response along the same path.

Key components in the 3GPP CORBA ecosystem include the ORB core, the Portable Object Adapter (POA) for managing object lifecycles on the server, and the Interface Repository for runtime type information. The 3GPP specifications, particularly the 32-series (Management and Orchestration), define a comprehensive set of CORBA-based Managed Object (MO) classes that model network resources like base stations, switches, and links. These MOs are organized within a Management Information Tree (MIT), and operations are performed on them through standardized CORBA interfaces like ItfN, ItfG, and ItfC for notification, get, and set operations, respectively. This allowed for a unified, programmatic way to perform fault, configuration, performance, and security management (FCAPS) across multi-vendor networks.

CORBA's role was foundational in achieving interoperability in network management. It allowed equipment from different vendors to be managed by a single management system, as long as they adhered to the same CORBA IDL specifications. This decoupled the management logic in the NMS/EMS from the proprietary implementations within each network element. The architecture supported both synchronous and asynchronous communication, as well as event notification through the CORBA Event Service, which was vital for alarm and performance monitoring. While its use has been largely superseded by newer technologies like NETCONF/YANG and RESTful APIs in later 3GPP releases (5G and beyond), CORBA formed the backbone of OAM systems for GSM, UMTS, and early LTE deployments, enabling the scalable and automated management required for large-scale cellular networks.

Purpose & Motivation

CORBA was adopted by 3GPP to solve the critical problem of multi-vendor interoperability in network management. Early telecommunications networks often used proprietary management protocols, which locked operators into single-vendor solutions or required complex, custom integration work. This increased costs, slowed down network deployment and expansion, and hindered innovation. The primary motivation for specifying CORBA-based interfaces was to create a standardized, vendor-neutral middleware layer that would allow management systems to communicate with network elements from any supplier that implemented the standard.

Historically, before widespread CORBA adoption, management interfaces were often based on TL1 (Transaction Language 1) or simple SNMP, which had limitations in expressing complex, object-oriented management data models and operations. CORBA offered a more powerful and flexible alternative. It provided a programming language-neutral interface definition (IDL), support for complex data types and object relationships, and a robust remote procedure call (RPC) mechanism. This was essential for modeling the sophisticated resources of a 3GPP network (like a NodeB or an MME) as objects with attributes, operations, and inheritance hierarchies.

The creation of the 3GPP CORBA specifications was driven by the need for automated, efficient Operations Support Systems (OSS). As networks grew in size and complexity, manual configuration and fault management became impossible. CORBA enabled the development of automated provisioning, performance data collection, and alarm correlation systems. It addressed the limitations of previous approaches by offering a true distributed object model, strong typing through IDL (which reduced integration errors), and a mature set of supporting services (naming, events, transactions). This allowed 3GPP to define a comprehensive Network Resource Model (NRM) where every manageable entity in the network could be represented and controlled in a consistent, programmatic way, forming the foundation for modern telecom OSS/BSS architectures.

Key Features

  • Standardized Interface Definition Language (IDL) for vendor-neutral API specification
  • Object Request Broker (ORB) enabling communication across heterogeneous platforms and languages
  • Comprehensive Network Resource Model (NRM) for representing network elements as managed objects
  • Support for synchronous operations, asynchronous notifications, and event services
  • Integration with the 3GPP Management Information Tree (MIT) for hierarchical resource organization
  • Foundation for FCAPS (Fault, Configuration, Accounting, Performance, Security) management functions

Evolution Across Releases

Defining Specifications

SpecificationTitle
TS 21.905 3GPP TS 21.905
TS 22.121 3GPP TS 22.121
TS 28.303 3GPP TS 28.303
TS 28.606 3GPP TS 28.606
TS 28.616 3GPP TS 28.616
TS 28.626 3GPP TS 28.626
TS 28.629 3GPP TS 28.629
TS 28.633 3GPP TS 28.633
TS 28.653 3GPP TS 28.653
TS 28.656 3GPP TS 28.656
TS 28.659 3GPP TS 28.659
TS 28.663 3GPP TS 28.663
TS 28.673 3GPP TS 28.673
TS 28.676 3GPP TS 28.676
TS 28.703 3GPP TS 28.703
TS 28.706 3GPP TS 28.706
TS 28.709 3GPP TS 28.709
TS 28.733 3GPP TS 28.733
TS 28.736 3GPP TS 28.736
TS 32.101 3GPP TR 32.101
TS 32.102 3GPP TR 32.102
TS 32.111 3GPP TR 32.111
TS 32.150 3GPP TR 32.150
TS 32.153 3GPP TR 32.153
TS 32.154 3GPP TR 32.154
TS 32.301 3GPP TR 32.301
TS 32.302 3GPP TR 32.302
TS 32.303 3GPP TR 32.303
TS 32.306 3GPP TR 32.306
TS 32.313 3GPP TR 32.313
TS 32.316 3GPP TR 32.316
TS 32.323 3GPP TR 32.323
TS 32.326 3GPP TR 32.326
TS 32.333 3GPP TR 32.333
TS 32.336 3GPP TR 32.336
TS 32.343 3GPP TR 32.343
TS 32.346 3GPP TR 32.346
TS 32.352 3GPP TR 32.352
TS 32.353 3GPP TR 32.353
TS 32.356 3GPP TR 32.356
TS 32.361 3GPP TR 32.361
TS 32.362 3GPP TR 32.362
TS 32.363 3GPP TR 32.363
TS 32.366 3GPP TR 32.366
TS 32.373 3GPP TR 32.373
TS 32.375 3GPP TR 32.375
TS 32.376 3GPP TR 32.376
TS 32.412 3GPP TR 32.412
TS 32.413 3GPP TR 32.413
TS 32.416 3GPP TR 32.416
TS 32.443 3GPP TR 32.443
TS 32.446 3GPP TR 32.446
TS 32.523 3GPP TR 32.523
TS 32.526 3GPP TR 32.526
TS 32.600 3GPP TR 32.600
TS 32.601 3GPP TR 32.601
TS 32.602 3GPP TR 32.602
TS 32.603 3GPP TR 32.603
TS 32.606 3GPP TR 32.606
TS 32.611 3GPP TR 32.611
TS 32.613 3GPP TR 32.613
TS 32.616 3GPP TR 32.616
TS 32.621 3GPP TR 32.621
TS 32.623 3GPP TR 32.623
TS 32.626 3GPP TR 32.626
TS 32.633 3GPP TR 32.633
TS 32.636 3GPP TR 32.636
TS 32.643 3GPP TR 32.643
TS 32.646 3GPP TR 32.646
TS 32.653 3GPP TR 32.653
TS 32.656 3GPP TR 32.656
TS 32.662 3GPP TR 32.662
TS 32.663 3GPP TR 32.663
TS 32.666 3GPP TR 32.666
TS 32.673 3GPP TR 32.673
TS 32.676 3GPP TR 32.676
TS 32.696 3GPP TR 32.696
TS 32.713 3GPP TR 32.713
TS 32.716 3GPP TR 32.716
TS 32.722 3GPP TR 32.722
TS 32.723 3GPP TR 32.723
TS 32.726 3GPP TR 32.726
TS 32.733 3GPP TR 32.733
TS 32.736 3GPP TR 32.736
TS 32.743 3GPP TR 32.743
TS 32.746 3GPP TR 32.746
TS 32.753 3GPP TR 32.753
TS 32.756 3GPP TR 32.756
TS 32.763 3GPP TR 32.763
TS 32.766 3GPP TR 32.766
TS 32.773 3GPP TR 32.773
TS 32.776 3GPP TR 32.776
TS 32.783 3GPP TR 32.783
TS 32.786 3GPP TR 32.786
TS 32.796 3GPP TR 32.796
TS 32.866 3GPP TR 32.866