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
9
votes
1 answer

IIOP Client Authentication and ProgrammaticLogin in Glassfish v3

In Glassfish v2 I secure my JNDI lookups by enabling the "IIOP Client Authentication" checkbox in the admin console under the ORB node. In my standalone client I then perform a "ProgrammaticLogin", which then allows me to do JNDI lookups. In…
rschamm
  • 91
  • 3
9
votes
1 answer

How to use Corba with Python

I'm wondering if anyone have a good resource for working with Corba in Python? I've googled around and saw that fnorb was recommended by some, but that it doesn't support some new features in Corba. Omniorb seemed like a good alternative, but I have…
monoceres
  • 4,356
  • 4
  • 28
  • 55
9
votes
2 answers

Cannot recover from org.omg.CORBA.TRANSIENT (becomes permanent)

I want to ensure my CORBA client is resilient to outages, I have the client working and am testing resilience by disabling by network adapter in Windows. The CORBA connection obviously fails, and the functionality is unavailable, but then it does…
Simon Gibbs
  • 4,588
  • 6
  • 48
  • 76
9
votes
1 answer

RMI and CORBA Differences?

I am studying for a final and have a few questions about RMI and CORBA. These are discussion questions taken from a study guide so there is no real application context around them. Why are RMI and CORBA based on TCP? The question states to answer…
Brad
  • 5,140
  • 1
  • 28
  • 54
9
votes
2 answers

Looking for the timeout properties of native java CORBA on the client-side

I am using CORBA (ORB) which natively comes with Java, no third party libraries are used. I'm in need of the CORBA client Properties for timeouts, in order set a timeout on the client's side and limit the amount of time which the connection stays…
abdelrahman-sinno
  • 1,097
  • 1
  • 12
  • 29
9
votes
3 answers

Returning an entity via remote EJB results in - java.lang.NullPointerException at com.sun.corba.ee.impl.orbutil.ClassInfoCache$ClassInfo.

I'm trying to create an enterprise web application in the following environment. NetBeans 7.2.1 Glassfish Server 3.1.2 (containing the Servlet 3.0 API) EJB 3.1 JPA 2.0 JSF 2.1 jdk 1.7 Oracle 10g I have created a Class Library (New Project -> Java…
Tiny
  • 24,933
  • 92
  • 299
  • 571
8
votes
4 answers

CORBA VS Webservices

Why WebServices took advantage over CORBA ?
Dead Programmer
  • 11,879
  • 20
  • 75
  • 110
8
votes
4 answers

Wait for a detached thread to finish in C++

How can I wait for a detached thread to finish in C++? I don't care about an exit status, I just want to know whether or not the thread has finished. I'm trying to provide a synchronous wrapper around an asynchronous thirdarty tool. The problem is…
Tim
  • 8,474
  • 3
  • 37
  • 54
7
votes
4 answers

What is the best ORB for Java/C++ interoperation using CORBA?

I have a client-server application written in Java using CORBA for the communication. The ORB used is orbd, the one provided by the Java6 platform. I have to replace the Java server implementation with another one written in C++. So the question is,…
tonicebrian
  • 4,555
  • 5
  • 37
  • 59
7
votes
1 answer

Insert variables into SAS using JAVA (IOM Bridge). Should i use CORBA stubs and JDBC or is there any other alternative?

This is part of my code snippet WorkspaceConnector connector = null; WorkspaceFactory workspaceFactory = null; String variableListString = null; Properties sasServerProperties = new Properties(); sasServerProperties.put("host",…
Tejus Prasad
  • 5,871
  • 6
  • 41
  • 70
7
votes
1 answer

Generating java from IDL (avoiding default package)

I'm working with a LARGE legacy C++ code base with numerous IDL files that have all the types and constants declared outside of any module. For C++, this results in code being generated to the global namespace -- ugly, but acceptable. Now I'm trying…
Kerry
  • 287
  • 1
  • 8
6
votes
5 answers

Ada/C/++ distributed applications

I am trying to evaluate some technologies for implementing a communication process between some Ada modules with some C++/OpenGL modules. There is an (Windows XP) Ada application which communicates with a C++ application using COM, but I intend to…
Rego
  • 1,104
  • 1
  • 16
  • 39
6
votes
3 answers

What is a real life example of CORBA?

What is an example of a situation where CORBA would be used? Is it just a matter of using an interface language (e.g. Java) to 'talk' to all applications?
anon
6
votes
1 answer

Migrating CORBA Application to Modern Java technologies (Rest/SOAP/EJB)

I have a requirement to migrate a legacy CORBA system to any latest java technology. The main problem I am facing is to provide long lived transaction(db) in the proposed system. Currently the client(Swing App) retain the CORBA service object and…
Satheesh Cheveri
  • 3,331
  • 3
  • 22
  • 43
6
votes
4 answers

Should I use CORBA, MessagePack RPC or Thrift, or something else entirely?

I'm writing software for a new hardware device which I want any kind of new third-party application to be able to access if they want to. The software will be a native process (C++) that should be pollable by 3rd party games and applications that…
Navigateur
  • 1,368
  • 2
  • 17
  • 34
1
2
3
45 46