Nearly all implementations of CORBA include the Naming Service, which allows one to associate symbolic names with objects, and have a register that "publishes" those names, and the Trading Service, which allows one to build a registry providing lists of objects and their properties.
The OMG has also defined a variety of other "basic services" to allow interoperable implementations of further functionality commonly needed for applications. This is called the CORBAServices.
How's Elvin different from message queueing?
Message queueing, as implemented by Microsoft, IBM and BEA (amongst others), is a middleware technology that fits somewhere between RPC/RMI and notification services.
Message queues implement virtual mailboxes (or queues) where producers can send mail, and consumers can later pick it up. This asynchronous style of communication is superfically similar to notification.
Unlike notification however, message queues are named, and the sending application must explicitly direct messages to a queue which it knows that receiver is going to check.
Notification uses a different mechanism, relying on the service to decide where to send notifications. Producer applications do not need to know what happens to their notifications once they are sent.
Message queueing and notification are two different styles of communication, and while initially they can seem similar, a closer analysis will determine which one you need.
This explores creating a standard way to represent XML documents using OMG IDL data types -- primitive data types, constructed data types (structs, sequence, unions), and value types.