Common Object Request Broker Architecture (CORBA; svensk förkortning Corba) är en standard för samarbete mellan applikationer. Corba har definierats av Object Management Group, och var en av de första öppna standarder på marknaden som gjorde det möjligt att få tillämpningar från olika leverantörer, skrivna i olika programspråk eller utvecklade för olika datorarkitekturer att samarbeta. Således kunde ett Cobolprogram som kördes på stordator utbyta information med ett program skrivet i C, C++ eller Java som kördes på en PC eller ett Unixsystem.

Gränssnitt mellan samarbetande tillämpningar är definierade i beskrivningsspråket IDL (Interface Definition Language). IDL är objektorienterat och kan definiera hur program, komponenter eller objekt anropar varandra.

IDL och CORBA

De grundläggande komponenterna i Corba är:

  • ORB, Object Request Broker, som är infrastruktur i en datornod som möjliggör att programmen i denna nod kan samarbeta med andra program.
  • stubbe, som är en anslutning till Corba-infrastrukturen för ett klientprogram. Stubbe genereras från IDL.
  • skelett, som är en anslutning för serverprogram. Skelett genereras från IDL.
  • objektadapter (visas ej i bild) som stöder server vid samverkan med ORB:en.

OMG har definierat ett antal horisontella Corba-tjänster som skulle lösa generella konstruktionsproblem, till exempel namnkatalog, transaktionshantering, persistens (beständig lagring). Vissa branscher har definierat så kallade vertikala Corba-tjänster, till exempel IATA:s CUSS-standard för självbetjäningskiosker för flyg.

Corba var en av de första industriella teknikerna för tjänsteorienterad arkitektur (SOA). Corba hade en viss framgång under den andra halvan av 1990-talet. Corba stöds numera av bland annat Java, men används mest i mycket specifika områden.