CORBA on Mobile Devices

Since its introduction in 1991, the Common Object Request Broker Architecture (CORBA) standard, defined by the Object Management Group (OMG, 2004b), has undergone several major revisions and has spread far throughout the domain of object-oriented and distributed systems. It not only brings about independence of computer architectures, operating systems, and programming languages, but also ensures freedom of choice with respect to Object Request Broker (ORB) product vendors. The latter benefit was the result of the introduction of a globally unique object reference, the Interoperable Object Reference (IOR), and a standard transmission protocol, the Internet Inter-ORB Protocol (IIOP), in CORBA 2.0. CORBA uses an Interface Definition Language (IDL) to specify the interfaces that objects present to clients in order to offer their services. IDL is a purely declarative language—that is, it is used to describe the data types and interfaces in terms of their attributes, operations, and exceptions, but not to define implementation algorithms for their operations. IDL forms the foundation of CORBA’s programming language independence, and language-specific IDL compilers must be used to translate IDL interface definitions into concrete programming languages. Besides the language mappings defined in the OMG standard (i.e., mappings from IDL to Ada, C, C++, COBOL, Java, Lisp, PL/1, Python, and Smalltalk), there are also non-standard language mappings to programming languages like Eiffel, Objective C, and Perl, which are exclusively implemented in certain ORB products. While CORBA has been very successful in the domain of enterprise computing, its adoption for mobile devices is obstructed by a central problem: the limited resources of such devices. If standard-compliant CORBA-based applications are to be executed on mobile devices, storage requirements, for example, represent a major bottleneck. But for all that, several research groups have made an effort over the past few years to establish the CORBA standard in the domain of mobile devices. The existing approaches can be divided into three categories: