In CORBA, an "interface" to an object can expose:
the names and types of attributes
the names, return types, argument types, possible "exceptions", and "context" of methods.
CORBA (or any other distributed object framework) must have knowledge of the desired interface to an object in order to perform requests on the object. The CORBA user must describe the interfaces in OMG's "Interface Definition Language" (IDL). Don't worry; it is not a big new programming language to learn - it is ONLY for describing your interfaces! In CORBA, interfaces can be grouped together in "modules." This is to avoid "namespace pollution" - that is, running out of sensible names for things!
credit to: http://www-cdfonline.fnal.gov/daq/CORBAXXX/tutorial.html