[[Explain CORBA.]] Acronym for ''Common Object Request Broker Architecture''. Links to the OMG's CORBA FAQ [http://www.omg.org/gettingstarted/corbafaq.htm] and to some more technical information [http://www.fpx.de/fp/Uni/Diplom/node9.html]. The basic idea of CORBA is that you have ''objects'' whose interfaces are described in IDL, the Interface Definition Language. This looks similar to a C++, Java or even [incr Tcl] class declaration, e.g. interface Toaster { exception Fire {}; readonly attribute long crumbs; void toast (in long nslices) raises (Fire); void clean (); }; Objects are addressed by ''object references'', which encapsulate information like host name and port number. Once you have an object reference, you can invoke methods on the object; in Tcl, using Combat, this looks like set toaster [corba::string_to_object $reference] $toaster toast 10 $toaster clean The ''ORB'' (Object Request Broker) interprets these object references, locates the implementation, packages the parameters, and does all the communication. Remote invocations happen very transparently this way. Because of standard protocols ([IIOP]), all CORBA-based programs can interoperate smoothly, no matter the vendor or language. There are official language mappings for C, C++, [Java], [Ada], Smalltalk, [Lisp], COBOL, [Python] and IDLScript. Unofficial mappings exist for Tcl, [Perl], PHP and many others. ---- Many projects binding Tcl to CORBA have been done [http://starbase.neosoft.com/~claird/comp.lang.tcl/tcl_distributed.html#CORBA]. Much the most polished of these is [Frank Pilhofer]'s [Combat]. Frank's thinking of writing his own [IDL] parser. ---- Although Tcl has a modest standing in the CORBA community, despite Frank's valiant efforts, it's a key technology for market leader [IONA Technologies], especially in [CGT]. ---- [HD]: My project connects Tcl to CORBA indirectly using [TclBlend]. There are various pros and cons to doing this. More info at the [Ninth Annual Tcl/Tk Conference]. Simplifying drastically, you need to do: package require java set props [java::call System getProperties] # This assumes you are using inprise orb $props put "org.omg.CORBA.ORBClass" "com.inprise.vbroker.orb.ORB" $props put "org.omg.CORBA.ORBSingletonClass" \ "com.inprise.vbroker.orb.ORB" set orb [java::call org.omg.CORBA.ORB init \ [java::new {String[]} 0] $props] # Create an object reference set ref [$orb string_to_object $IOR] # Cast the reference to the desired type. set objRef [java::call $helperClass narrow $ref] You can now invoke operations on $objRef. ---- [[ TclDII, Torb [http://www.pythontech.co.uk/torb/], TclIop ]] [[ http://www.primaryinterface.com/ ? ]] ---- [Category Acronym]