Questions tagged [corba]

CORBA is an object-oriented middleware standard, defined by the OMG. It enables software components written in different languages to communicate with each other. Server components implement interfaces defined in IDL and register them with an Object Adapter, and clients can access those services using an ORB (Object Request Broker).

CORBA is a middleware standard that makes server-side objects accessible to remote clients. A server (where the object resides) exports the implementing instance. A client receives a stub that implements the same interface, allowing them to invoke remote methods. CORBA also supports remote exception handling.

CORBA messages use General Inter ORB protocol (GIOP) as binary protocol to transfer data between client and server.

Version 1.0 was released in October 1991, the latest version is 3.3 which was released November 2012. CORBA uses an interface definition language (IDL) to specify the interfaces which objects present to the outer world. CORBA then specifies a mapping from IDL to a specific implementation language like C++ or Java. Standard mappings exist for Ada, C, C++, C++11, Lisp, Ruby, Smalltalk, Java, COBOL, PL/I and Python. There are also non-standard mappings for Perl, Visual Basic, Erlang, and Tcl implemented by object request brokers (ORBs) written for those languages.

CORBA is useful because it enables separate pieces of software written in different languages and running on different computers to work with each other like a single application or set of services.

The CORBA specification dictates there shall be an ORB through which an application would interact with other objects. In practice, the application simply initializes the ORB, and accesses an internal Object Adapter, which maintains things like reference counting, object (and reference) instantiation policies, and object lifetime policies. The Object Adapter is used to register instances of the generated code classes. Generated code classes are the result of compiling the user IDL code, which translates the high-level interface definition into an OS- and language-specific class base for use by the user application. This step is necessary in order to enforce CORBA semantics and provide a clean user process for interfacing with the CORBA infrastructure.

Some IDL language mappings are more difficult to use than others. For example, due to the nature of Java, the IDL-Java mapping is rather straightforward and makes usage of CORBA very simple in a Java application. This is also true of the IDL to Python mapping. The C++ mapping is notoriously difficult; the mapping requires the programmer to learn complex and confusing datatypes that predate the C++ Standard Template Library (STL). The C++11 mapping uses the C++ Standard Template Library (STL) heavily and is simple to use. Since the C language is not object-oriented, the IDL to C mapping requires a C programmer to manually emulate object-oriented features.

A language mapping requires the developer to define its interfaces and type system using IDL . Typically, a CORBA implementation comes with a tool called an IDL compiler which converts the user's IDL into some language-specific generated code. A traditional compiler then compiles the generated code to create the linkable-object files for the application.

As (unlike XML, for instance) GIOP messages are not user readable, an IDL compiler is responsible for creating all code that writes and reads the data structures during the remote operation.

684 questions
79
votes
7 answers

Is CORBA legacy?

For a distributed computing project starting today, with 0 legacy components, are there any good reasons to look into CORBA?
flybywire
  • 232,954
  • 184
  • 384
  • 491
67
votes
2 answers

Why has CORBA lost popularity?

I've never heard anyone speak of CORBA in anything but derisive terms which is odd considering that 10+ years ago it was the bee's knees. Why did CORBA fall from grace? Was it purely that the implementations were bad or was there something more…
MrEvil
  • 6,605
  • 6
  • 33
  • 34
44
votes
4 answers

Is there a replacement library for CORBA in JDK 11

JDK-11 will remove a lot of older parts of the JDK (JEP-320). For some of them (e.g. JAXB) functionality will be provided as regular library. You simply add another dependency and everything works fine again. But not so for CORBA, because There is…
rli
  • 1,426
  • 1
  • 11
  • 24
22
votes
4 answers

CORBA from .NET - (dis)recommended libraries?

I am working on a .NET-based server component that talks to a set of destinations (equity options exchanges, to be specific) using a variety of destination-specific protocols. The next destination we plan to add uses CORBA, so I am researching .NET…
McKenzieG1
  • 12,956
  • 7
  • 32
  • 40
19
votes
2 answers

What is the difference between gRPC and CORBA?

I have a reasonable experience in developing both SOAP and REST web services (in java platform). I am trying to understand the difference between the gRPC and CORBA in every aspect apart from the fact that both enables platform-neutral way of…
Praveen
  • 372
  • 4
  • 14
12
votes
3 answers

What is an IOR file, what does it do, and how does it work?

I believe it is related to CORBA in some way (I'm not sure). I'm curious as to its function and how it works. Google isn't helping me when I search for "IOR file", and I'm not sure what else I could search for. Thanks to anyone who can at least…
Thomas Owens
  • 107,741
  • 94
  • 299
  • 427
11
votes
2 answers

What is the difference between RMI and Corba?

Possible Duplicate: RMI and CORBA Differences? What is the difference between RMI and Corba?
Dominic
  • 111
  • 1
  • 1
  • 3
10
votes
1 answer

How to connect to Corba server via ssh tunnel using Omniorb on Python

I've got some Python code that uses Omniorb to connect to a corba server, and it all works fine. Now I'd like to be able to connect to a server behind a firewall by creating an ssh tunnel, but it's not working. As far as I can tell from wireshark…
xorsyst
  • 6,152
  • 5
  • 32
  • 53
10
votes
2 answers

How can I compile omniORB for 64-Bit Windows?

I need to call the omniORB's DLLs from a 64-Bit-process and as I get it I need to compile those DLLs as 64-Bit. omniORB seems to support 64-Bit in general, but there are no configuration files included for the make-process (*.mk)... so I guess I…
Pantonaut
  • 151
  • 1
  • 6
10
votes
7 answers

Is Corba the same as SOA?

I have been looking a lot at SOA recently. Isn't CORBA exactly the same thing as SOA?
yazz.com
  • 52,748
  • 62
  • 227
  • 363
10
votes
1 answer

java.lang.NoClassDefFoundError: org/omg/CORBA/InterfaceDef

I am seeing java.lang.NoClassDefFoundError: org/omg/CORBA/InterfaceDef when I am calling the method getMethod of the java.lang.Class. I am trying to get the getEmsSession method in EmsSeeionFactory_I of TMF specific jars using reflection. But when I…
sakthisundar
  • 3,142
  • 3
  • 14
  • 28
9
votes
9 answers

Cross-platform alternative to COM

I've been enamoured with component based programming (be it with COM, another system, or just using the paradigm in plain C++). It requires a bit of getting used to, if one is usually used to the "traditional" OOP model, but it's definetely worth…
arke
  • 1,316
  • 7
  • 12
9
votes
2 answers

Java IDL : servertool does not register and hangs

I am running CORBA Persistent Object implementation in Java IDL as in Java IDL: The "Hello World" Example I followed exact procedure in above article I used servertool for registering Persistent server as shown in example . but when i tried to…
ajduke
  • 4,781
  • 7
  • 32
  • 55
9
votes
2 answers

How to access CORBA interface without IDL or late-bound invoke remoting methods

We have been using an SAP "COM License Bridge" to access their license server and query the hardware key of a system programatically (to reuse with out own licensing). This worked fine on SAP Business one Versions 2007A, 2007B and 8.8, but in 8.81…
BlueMonkMN
  • 23,447
  • 8
  • 73
  • 134
9
votes
2 answers

CORBA/ RMI and (D) COM are any still relevant today?

Are CORBA (language agnostic) / RMI (Java) and (D) COM (MS) still relevant today, or is there a technology that has surpassed them? Cheers, J
JHarley1
  • 1,836
  • 6
  • 21
  • 32
1
2 3
45 46