Advanced Dynamic ORB for Objective-C
with native Objective-C bindings
About ADORB Framework
ADORB provides a CORBA/IIOP implementation for Objective-C on Mac OS X and on iPhone OS.
It contains the ADORB framework for Mac OS X and the equivalent static library libadorb for iPhone OS.
ADORB implements a dynamic IDL parsing at run-time and a native IDL to Objective-C mapping - IDL types can be mapped to arbitrary Objective-C classes.
Key Features
- Dynamic IDL parsing with dynamic bindings. No stub or skeleton files and no IDL compiler required.
Normally, creating a CORBA application includes generating the stub or skeleton files from the IDL files and then compiling and linking those files with the application.
ADORB interprets the CORBA IDL files at run-time and dynamically creates the method invocations for the remote operations - there are no stub or skeleton files to be generated and compiled with the CORBA application. ADORB separates the CORBA application from the IDL definitions creating some level of independency of the application from the CORBA IDL definitions. In many cases the minor changes in the IDL files do not affect the application - the IDL files can be just replaced and the application restarted.
- Dynamic creating of the remote method invocations.
The method signatures for remote operations are created dynamicaly at run-time.
- Native Objective-C bindings.
The IDL types can be mapped to arbitrary Objective-C classes. The framework uses Key Value Coding for marshaling and un-marshaling data. This allows to map complex IDL types into fully functional enterprise objects.
The framework does not generate or enforce to use any predefined class hierarchy. The IDL definitions can be mapped to an Objective-C class hierarchy that is suitable for the application.
- Support of IDL valuetypes and abstract interfaces
IDL valuetypes can be mapped to arbitrary Objective-C classes.
- Allows callbacks from within a remote call.
ADORB listens for incoming messages asynchronously and dispatch them to the waiting invocations in the case of a Reply message, or to a Request handler in the case of a Request message.
- Full IIOP interoperability with other CORBA ORBS, supports GIOP 1.0, 1.1, 1.2.
- Support of CORBA Interceptors.
- Support of RMI-IIOP. The typeID can have prefix either IDL: or RMI:
-
The framework's IDL parser implements the IDL grammar as defined in OMG CORBA specification 2.6.
About IDLBrowser
IDLBrowser is a CORBA client application that uses ADORB framework to communicate to the CORBA servers. IDLBrowser allows browsing CORBA IDL definitions, connecting to a CORBA server and executing arbitrary remote operations. It also allows accessing and viewing the CORBA Naming Service hierarchy graphically, fetching the remote object references from the Naming Service and using those references in the remote calls, as a target or as an argument. It also can be used to generate the Objective-C header files for the IDL interfaces.
IDLBrowser may be helpful as a quick reference tool while developing CORBA applications as well as in testing the CORBA server API.
System Requirements for version 1.6
Mac OS X 10.5 or higher or iPhone OS 3.1 or higher
What's in the package
The package contains the directories:
Documentation
- contains the AdORB documentation and ReadMe.html. Documentation is not full, some information is in the header files or in the examples.
macos
- contains the ADORB.framework for Mac OS X and the IDLBrowser application.
The framework should be copied into /Library/Frameworks
or into ~/Library/Frameworks
.
IDLBrowser is compiled with the embedded ADORB framework, so it can work without ADORB framework installed.
iphoneos
- contains the static library libadorb.a
for iPhone OS,
the AdORB header files in the ADORB
directory and the IDL files in the idls
directory.
AdORB loads idl files when initializes at the runtime, so a copy files build phase should be added that copies these files into the application bundle (into the Resources).
iphonesimulator
- contains the static library libadorb.a
for the iPhone Simulator.
source
- contains the source code with examples
License
The ADORB framework and the library libadorb are licensed under GNU LGPL.
IDLBrowser application is licensed under GNU GPL.
Release Notes
ADORB Framework 1.6
- ORB: added static library for iPhone OS and iPhone Simulator
- ORB: Simple type octet is treated now as unsigned char and uses NSNumber as object wrapper (was mapped as NSData)
Argument type and return value should be 'unsigned char'.
The types octet[] and sequence continue to be mapped to NSData
For backwards compatibily the type octet can be mapped to NSData by calling method [ORB setMapsOctetToNSData:YES]
idl2h: Fixed generating header for types octet, octet[] and sequence<octet>
- ORB: Skips protocol specifiers
(in, out, const ..)
for an invocation argument when set or get value.
Specifying in, out, inout, const, ...
for an argument in a method on server resulted in the exception BAD_PARAM passed back to client.
- ORB:
BOOL
type was missing (_C_BOOL, server side). Added.
- ORB: allow to set default CodeSets context that is sent to the server in the case no CODE_SETS component is set in IOR.
ORB now does not set CODE_SETS tagged component for the remote IOR created for naming service and those created from CORBA URLs.
By default, a default CodeSets context is not sent to the server.
- ORB: Added preprocessor command
#pragma selector idl-method objc-selector
For example, #pragma selector bind_name bindWithName:inContext:
- ORB: fixed incorrect string encoding in encapsulations.
- ORB: removed alternate selectors
- ORB: removed any Cocoa calls from ORB
- ORB: memory leak in IPMonitor method (CORBAObject). This method monitors if the IP address has changed after computer is awaken from sleep.
- idl2h: fixed generating class names for
struct
and unions
. Before NSDictionary*
was always used, now a class name defined by #pragma class
is used, if set.
- Examples: Added example for iPhone OS
ADORB Framework 1.5
- Added support for dynamic IP addresses.
- Fixed error in implementation of BI_DIR_IIOP
- Changed input/output to non-blocking one
- Added connection timeout
- Fixed memory leaks
- Added support for CORBA interceptors
- Improved error reporting
ADORB Framework 1.4.1
- Fixed errors in marshaling valuetypes and other minor bugs.
IDLBrowser 3.2
IDLBrowser 3.1.1
- Updated to work with the framework version 1.5
IDLBrowser 3.1
- Fixed issue when Naming Service panel did not work with some ORBs.
Copyright © 2003-2007 Victor Ananiev. All rights reserved.