Getting Specifications and Products
- How do I get OMG specifications?
- I didn't find it. What do I do now?
- Why are some specifications so hard to read?
- So what should I read or study instead?
- What's the difference between a specification and a product?
- Where do I get CORBA® and UML® products?
- So many products! How do I pick?
- Search Public Documents
Revised August 2005 by Jon Siegel <siegel AT omg.org>
How do I get OMG specifications?
All of OMG's specifications may be downloaded for free. Go to our Specifications Catalog and pick the page for the category you want. If you're not sure which page contains the specification you're looking for, check the spreadsheet summary listed near the top of the page, and use your browser's search function to find the one you want.
I didn't find it. What do I do now?
If you didn't find what you were looking for, then it's not an OMG specification - all of our specifications appear in the specification catalog. But, we can think of at least two possible reasons why the spec you want might not be there:
- It's not done yet. Check the OMG Work in Progress page to see how it's doing.
- It's been retired. Right now, only two previous OMG specifications fall into this category: the XCMF Management Facility (whose functionality was replaced by the CORBA Component Model, but much more in tune with current programming practices), and the OpenDoc Compound Document Facility.
A third reason, we suppose, could be that you're mistaken about the existence of a spec. If you've completed your search and come up dry, but still feel that you've missed something somewhere, send email to email@example.com telling us the specification you're looking for. We'll look it up and get back to you.
Why are some specifications so hard to read?
Most OMG specifications are written for programmers who implement compliant software products. They are not written for the developers who build applications that use these products, and are especially not written for the users of these applications.
For example, the CORBA specification is written for programmers who build ORBs. Programmers who use ORBs to build CORBA applications are one layer away from this target audience, but will find many parts of the specification understandable and potentially useful even so. End-users of CORBA applications produced by these programmers will find even less of the specification understandable or useful. Some sections will be helpful to just about everyone, but end users (and even application programmers) should approach the specifications with these caveats in mind.
Sections of the UML specification that define the language (and not the facility) are an exception to this: They were written for both users of the language, and implementers of language-based tools. Some sections that define other OMG languages are pretty readable, too.
So what should I read or study instead?
If you're an applications programmer or an end-user who needs to find out about UML or CORBA, and you've looked over the specs and hit the wall (or knew from the start that they weren't what you were looking for), what can you do? Fortunately, many authors have examined OMG's specification suite and written books and tutorials for the application-developer or end-user reader. Use one of the online bookstore's search function to get a list of books on UML or CORBA; most include reader reviews which will help you pick one at or near the level you need.
We've posted a list of UML tutorials, and a list of other sites' lists of UML resources and tutorials, on our UML Resource Page. For a list of CORBA tutorials and other learning aids (many free on-line). Many companies provide training in CORBA, UML, and the other OMG specifications. OMG member companies that provide training are listed on our Training Page.
What's the difference between a specification and a product?
OMG produces specifications - that is, documents that precisely describe what something should do, and how it should act, perhaps in response to various inputs. Some OMG specifications (CORBA, for example) describe software; others (OMG IDL, or UML) describe languages although these languages may be implemented or interpreted by software.
Implementations of the OMG specifications - such as Object Request Brokers, IDL compilers, and UML-based modeling tools - are not produced by OMG. They are, instead, produced by software vendors or suppliers who typically package these implementations as products and sell them, although some sources give them away as freeware and other potential sources (R&D labs or universities) never make their implementations public at all. Software suppliers may be OMG members, but many are not. Judging from the lists of UML Modeling tools and ORBs we've seen on many UML and CORBA links pages, the majority of products available now were produced by companies or groups that have never even bothered to contact OMG.
There are a lot of reasons why OMG doesn't produce implementations now, and plans never to produce them in the future. The most basic is that this division keeps OMG from competing with its members. ORB vendors can join OMG, and work at our meetings to write and maintain the specification suite, without worrying that our organization will siphon market share away from them. (They do, of course, have to worry about their competitors!) Another reason is that implementations, necessarily, favor a single language and platform no matter how hard you try to make them general. By sticking to specifications that get implemented in multiple languages on multiple platforms as they are written, OMG avoids this unintended specialization. You will never see a reference implementation for CORBA produced by OMG!
Where do I get UML and CORBA products?
If not from OMG, then where? There are more sources of UML and CORBA products than we can count! OMG, as a neutral and open consortium, is not allowed to recommend any particular product (although we are allowed to recommend that you use UML and CORBA, and we do!), but we can point you to lists of sources. Here are some places to start:
OMG has collected a lot of good stuff on our UML Resources page, including links to several lists of UML tools, and our own list of UML 2.0 modeling tools. We're revising our pages for MOF, XMI, and the CWM and will post the new versions soon.
From time to time we hear of ORBs that aren't on this list, so don't assume that it or any other list is complete.
So many products! How do I pick?
CORBA is an open, vendor-independent standard. One of the benefits of standardization is that many different vendors can produce implementations. Well, this happened, and now there are lots of CORBA (and UML, and MOF, and XMI...) implementations as you saw on the references we gave in the last section.
But, this means you can't just go out and "buy CORBA". Instead, you have to select a CORBA product and, as you investigate, you'll discover that they're all different. There are ORBs for single machines, load-balanced ORBs for server farms (to run your e-commerce website or travel reservation system), and others specialized for realtime systems (to gather data from the sensors around your refinery, or move airplane control surfaces), or for embedded systems, and more. And, of course, all ORBs that conform to the IIOP protocol will interoperate!
We've already covered a lot of stuff on this page, and we're too far down to start something this big. We'll give it a page of its own when it's done. .