Chapter 26 Other CORBA Resources
26.1 Books and Articles
Most CORBA products are provided with manuals although, as you might expect, the quality of the documentation varies from one product to another. In general, you are likely to obtain less documentation with a freeware CORBA implementation than with a commercial product. Regardless of which CORBA product you choose, you may wish to supplement its documentation with a book. A good way to choose a book is to visit www.amazon.com and use its search engine to help you browse CORBA books. The customer reviews will help you choose a good book. Some of this author’s favorite CORBA books are listed below:
- Pure CORBA [Bol01] is aimed at developers who are new to CORBA. It talks the reader through the concepts of CORBA and provides lots of useful code examples in both C++ and Java. Providing examples in C++ and Java means that the book is certainly of relevance to developers who use one of those languages. However, there is another benefit of this dual-language approach. When people learn CORBA through one specific language, often they are unable to distinguish between what is a general principle of CORBA and what is specific to the particular programming language that they use. The Pure CORBA approach of teaching CORBA through two languages helps readers to distinguish between general CORBA principles and language-specific issues.
- Advanced CORBA Programming with C++ [HV99] is not an introductory book on CORBA, but rather is an excellent book for people who are already familiar with CORBA to improve their skills. Although the book uses C++ in all the code examples, the principles it teaches are relevant to CORBA developers who use other languages.
- IIOP Complete [RHK99] should be avoided unless you have a need to learn about the low-level details of the GIOP and IIOP protocols (Chapter 11). However, if you do have such a need then this book provides a very clear explanation of the concepts. This book is now out of date, because it discusses versions 1.0 and 1.1 of GIOP, while CORBA is now at version 1.3. However, although some of the details have changed between different versions of the protocol, the basic principles are the same. Because of this, if you need to become familiar with GIOP 1.2 or 1.3 then a good way to do so is to read this book and then download the latest GIOP specification (as a PDF file) from the OMG web site.
Douglas Schmidt, who headed the development of TAO, and Steve Vinoski, who headed the development of Orbix, have published many interesting articles on CORBA. You can obtain electronic versions of many of their papers from their web pages:
www.iona.com/hyplan/vinoski/ www.cs.wustl.edu/ schmidt/
26.2 The CORBA Utilities Package
The CORBA Utilities package is a collection of documented software utilities that dramatically simplify CORBA development. The collection is available as a free download from the following URL:
www.iona.com/devcenter/corba/utilities.htm
The utilities are available in both C++ and Java, and are known to work out-of-the-box with Orbix, Orbacus, TAO and omniORB. A lot of attention has been paid to portability of the utilities so it should be quite easy to get the utilities working with other CORBA products. Even if you decide to not use the utilities in your own projects, the documentation provided with the utilities is worth reading for the useful advice that it provides.
26.3 Internet Resources
The OMG web sites (www.omg.org and www.corba.org) provide free access to a lot of information on CORBA. You can download CORBA specification documents in the form of PDF files. The web sites also provides links to other CORBA-related online resources.
The following Internet newsgroups are for discussing CORBA:
comp.object.corba comp.lang.java.corba
Contributors on those newsgroups (which include some employees of several CORBA vendors) are usually happy to answer questions and offer advice.
Some CORBA vendors have their own newsgroups and/or mailing lists dedicated to their own products. You should ask your CORBA vendor for details.
As discussed in Section 2.7, you can find numerous examples of CORBA success stories on the OMG web sites and the web sites of CORBA vendors.
26.4 Consultancy and Training Courses
Some CORBA vendors, and also some independent companies, offer CORBA training courses and consultancy. You can contact an individual company to see what services they offer. Another option is to use an Internet search engine to find companies that offer CORBA training and consultancy.
Consultancy is often perceived as being expensive. Indeed, it can be if your organization hires a consultant for the entire duration of a long-term project. However, there is a much more cost-effective way of using consultancy services:
- When you are starting a CORBA-based project, have a consultant visit you for a few days, to help you define or “sanity check” the project’s architecture. Experienced consultants can often spot architectural flaws that, if not corrected, would have a significant performance or scalability impact later in the project.
- Later, when doing the initial coding for a project, have the same consultant return to mentor developers in the use of good coding idioms and help them avoid common coding mistakes.
- The consultant could then return for a few days every month to “sanity check” progress on the project. In this way, any deviation from good CORBA practice can be spotted and corrected relatively soon, thus saving the project from greater problems (and expense) later on.
Many organizations make the mistake of sending developers on a training course to learn new skills that will not be used until many months later. By the time the skills are finally required, the developers will have forgotten them. If feasible, it is much more productive to have an on-site, CORBA training course at the start of a project. In this way, the developers will be able to practice the new skills in their work straight away. Also, by timing the training course to coincide with the start of the project, the developers will be able to ask the course instructor questions about how to use what they learn from the course in their project.
A training course will be the most effective if the instructor is a consultant who is already familiar with your intended project. In such cases, the instructor is often able to pro-actively point out to developers how specific CORBA concepts and coding idioms can be used effectively in the project.
Much of the information in this book is taken from material in training courses offered by IONA technologies. If this book has provided you with a useful overview of the concepts of CORBA then you might want to consider attending an IONA training course to obtain the skills necessary for development of CORBA applications.