Learning CORBA

As part of my Distributed Client Server Systems class, this term I am learning about using CORBA, a widely used middleware object broker. They are used in object oriented client-server systems and allow an object on one machine to call a method of an object found on another machine (client-server).

So far, in the first 4 weeks of the term, we tackled IDL (Interface Definition Language), IORs, interoperability examples of the architecture, as well as naming services for IORs.

CORBA is currently widely used in industry. Its characteristics include the fact that it is language independent, allows server transparency, it easily handles servers that are accessed by numerous clients concurrently and it’s an open standard, managed by the Object Management Group.

The first version of CORBA appeared in 1991 and included a single language mapping for the C language. During the 90s it started supporting multiple languages from Smalltalk, COBOL and Ada to Java and C++. Omniorb is an independent CORBA object request broker (ORB) that supports Python and is used by enterprises such as AT&T or Adobe.

So far, I’ve really enjoyed writing and compiling my first IDL file and seeing how they are used in writing the client and server code. We are using only Java so far, but I guess we’ll look into some C++ code in the upcoming weeks. This term’s assignment involves developing a CORBA-based client-server system. It will be a security monitoring system that has a cameras, sensors, a local and a regional server, as well as clients such as the police stations or residents.

Covering CORBA in our course really offers me a hands-on approach to distributed client-server systems, as I feel I’ll get a much better understanding of how all the communication happens, how performance can be optimised and applications debugged. As I plan to be the best than I can be at JavaScript, I realise how useful this knowledge is, now that JS is interacting so much more with servers and moved away from being just a tool for DOM manipulation on the client side. I look forward to sharing with you my progress on the project!