Feature

Component object model: successful communication

Component object model got a head start from its distribution with Windows operating systems, giving it an instant edge over the competition, and it will be in demand for a while yet.

What is it?
Component object model was Microsoft's riposte to the Corba object request broker, a framework for developing and deploying software components, and getting them to work together. It's part of a family of object technologies including OLE (object linking and embedding, ActiveX, DCom (distributed Com), and Com+.

Where did it originate?
Microsoft built its component strategy by bringing together technologies originally developed for cutting and pasting between Windows applications, and managing documents. OLE was introduced in 1990, and Com followed with OLE2 in 1994. ActiveX arrived late in 1995, DCom in 1996, and Com+ in 1997.

What is it for?
Com provides the interfaces and services that enable objects to be linked, called in response to events involving other objects, and managed from their creation to eventual disposal. Any Com-compliant application should be able to access any Com object, and while Microsoft does not support integration with other object architectures, the Object Management Group and its members have provided bridges enabling Corba objects and Java Beans to interact with Com.

What makes it special?
Com had one major advantage over Corba: like much else that comes from Microsoft, it was distributed "free" along with Windows operating systems. A ready-made, worldwide community of component developers existed almost immediately, while Corba had to fight on its merits. Like Corba, Com is pretty much language-independent, although Microsoft's own languages, including C#, have native support for Com. But while Com has been implemented for some other platforms, it doesn't have the true platform-independence of Corba.

How difficult is it to master?
Microsoft's object development strategy has been full of false starts, and new initiatives which turn out to be the same old thing with a new name. Working with Com has been a lot harder than it should. More recently. Microsoft has been working to hide a lot of the complexities, so developers can concentrate on what they are trying to do, rather than how to do it. With .Net and C#, Microsoft has an opportunity to build a coherent development strategy from the outset, rather than struggling to impose one on existing products.

Where is it used?
Wherever Windows is the corporate standard.

Not to be compared with...
a dedicated e-mail system for gardeners, ComPost.

What systems does it run on?
On Windows; it's also been ported to mainframes by Software AG.

Not many people know that
Some elements of Com are licensed from IBM. OLE evolved out of work Microsoft did on IBM's OS/2.

What's coming up?
.Net will ultimately supplant the entire Com family. As Microsoft's distinguished engineer and chief architect of C#, Anders Hejlsberg, puts it, "Unfortunately, current distributed application methodologies, such as DCom, Corba, or RMI, do not scale to the Web." But since much of the .Net strategy remains in the realm of Powerpoint-ware, Com skills should be in demand for at least the next two years.

Training
You can use Microsoft's authorised training partners, or look for tutorials on the Internet. The Microsoft Developer Network's Dr Gui is sound, if rather out of date. Try also iDevResource.com, and plus.about.com/cs/com. There are useful white papers on www.componentsource.com

Rates of pay
Com developers can look for £20,000-£40,000 depending on seniority. Technical architects with Com may get up to £50,000.

Email Alerts

Register now to receive ComputerWeekly.com IT-related news, guides and more, delivered to your inbox.
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

This was first published in November 2001

 

COMMENTS powered by Disqus  //  Commenting policy