Skip to main content

Heterogeneous vs homogeneous; CORBA

Short answer

Homogeneous systems have identical nodes (hardware, OS, language) and simpler management; heterogeneous systems involve different platforms and require middleware for interoperability. CORBA provides an Object Request Broker (ORB) with IDL-defined interfaces, stubs/skeletons, Object Adapter (POA), and GIOP/IIOP for communication. Standard services include Naming, Trading, Event, Transaction, Security, and Lifecycle.

Compare heterogeneous and homogeneous distributed system. Explain the CORBA architecture and its services.

Heterogeneous vs homogeneous distributed systems

PointHomogeneousHeterogeneous
NodesSame hardware and same OSDifferent hardware, OS and networks
SoftwareSame software and languageDifferent languages and platforms
Data formatSame representationDifferent (endianness, encoding), needs conversion
ManagementSimpleComplex, needs middleware
InteroperabilityNot an issueMain challenge
ExampleCluster of identical Linux PCsInternet applications, banks linking Windows, Unix, mainframes

CORBA architecture

CORBA, from the OMG, is middleware that lets heterogeneous objects communicate through an Object Request Broker (ORB).

 Client -> IDL stub / DII -> ORB core ==GIOP/IIOP==> ORB core
                                                        |
 Servant <- skeleton / DSI <- Object Adapter (POA) <----+
 (Interface and Implementation Repositories support the ORB)

Components: ORB core, IDL (language-neutral interface description), client stub and server skeleton, Dynamic Invocation and Skeleton Interfaces, Object Adapter (POA), Interface and Implementation Repositories, and GIOP/IIOP for communication between ORBs of different vendors.

A call flows: client -> stub -> ORB -> object adapter -> skeleton -> servant, and the reply returns on the same path.

CORBA services

Standard IDL-defined services: Naming (name to reference), Trading (find by property), Event/Notification (asynchronous), Life cycle, Persistence, Transaction, Concurrency control, Security, Query, Relationship, Time. They provide the common functions that distributed applications need.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Distributed System chapter 4 questions →