What's in a name ?
In this chapter the names and acronyms like OLE, ActiveX, COM and automation
will be given a place in perspective to each other.
Where did it start ?
In the pre-windows days applications were all monolithic. After the compiler
had translated the sources to a binary format the linker glued the whole thing
together into an executable which stood on itself. In Windows it became possible
to move the linking process to runtime. A dynamic link library (DLL) is loaded
in the process of the executable as the latter is executed. The reuse of code,
more executables using the same DLL, became a reality. Windows also introduced a
Dynamic Data Exchange (DDE) protocol which gave Windows software a standard way
to communicate with one another.
Then Microsoft started integrating their Word processing and spreadsheet
application into the Office suite. Instead of application centered, Office was
going tobe document centered. Imagine a report consisting of large bulks of text and
containing tabulated data and graphs. The user will use a word processor to edit
the text and a spreadsheet program to edit the data and resulting graphs. The
user concentrates on the report document, not on the applications used to work
with this document.
To work with these ideas the Object Linking and Embedding protocol was
designed. The first version O.L.E. 1.0 was implemented using DDE. The main
problem was that it did not work to well, it let to a situation which was
described as a "virtual standstill" of the PC it was running on.
OLE 2 and COM
So the problem was that the specs for a great protocol had been set but that
it did not work too well. The protocol had many more possibilities than just the
Office suite. So the dots in O.L.E. were dropped, OLE just stood for the
protocol. On the implementation side DDE was dropped and the Component Object
Model (COM) was introduced as a good way to implement OLE functionality. COM is
a well defined way to separate the specification of the
interface from the implementing object.
All off this was described in the second edition of Inside
OLE. This book and the implementation of OLE in 32 bits windows (there was a
16 bits implementation in Windows 3, but this is known to be buggy and unstable)
made OLE into a success. COM was also used for other API's in windows like the
DirectX gaming API. As time got by the name COM became more popular than OLE.
ActiveX
In the 16 bits days of Windows there was VBX, a not to well defined standard
which allowed 3d parties to create visual controls which could be used in Visual
Basic. These were a huge success, support for VBX was added by other vendors as
well, for instance Borlands C++ could work with VBX'es.
This VBX protocol was replaced by a better defined version based on COM
and OLE. At first the name OLE-controls was coined but in 32 bit windows the
name soon changed to ActiveX-controls. The name ActiveX, which is trade-marked
by Microsoft, had a large input from the marketing division. The ActiveX
framework was supposed to mean something like "active on platform X",
where X could be Windows, Unix or anything else.
ActiveX as a name only really survived for ActiveX controls. Some people use
it when they mean an automation object. Nobody ever uses it when talking about
distributed processing. In that case the COM acronym serves as a base to form
DCOM.
(OLE-) Automation
The most used feature of the whole ActiveX framework is an application
calling methods and properties of another object which follow the ActiveX
specification. This is always done using the Idispatch interface. The nice thing
about this interface is that it can be called by an enormous variety of clients.
It can be flexible and it can be fast.
Automation is the technique of using objects through the Idispatch interface.
Orginally is was named OLE automation. But after O.L.E. lost its dots,
automation lost its OLE.
What's next ?
The Delphi pages on this site are mainly dedicated to automation and I prefer
to use this term. But as we have seen the other terms stand for the same thing.
It mainly depends on the age of the document or the likes of the author.
Happy reading.
|