home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
opendc12.zip
/
SG244883.ZIP
/
2_7.6
< prev
next >
Wrap
Text File
|
2001-01-27
|
6KB
|
101 lines
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<base href="http://publib.boulder.ibm.com:80/cgi-bin/bookmgr/BOOKS/EZ30OZ00/2.7.6">
<title>
2.7.6 "OS/2 WARP and OpenDoc"
via IBM BookManager BookServer
</title>
</head>
<body background="/bookmgr/backdrop.gif">
<banner><br>
<a href="../../library"><img src="/bookmgr/libicon2.gif" border=0 alt="[Library]"></a>
<a href="CONTENTS#2.7.6"><img src="/bookmgr/contents.gif" border=0 alt="[Contents]"></a>
<img src="/bookmgr/drevs.gif" border=0 alt="[Revisions]">
<a href="2.7.5"><img src="/bookmgr/prev.gif" border=0 alt="[Prev Topic]"></a>
<a href="2.7.7"><img src="/bookmgr/next.gif" border=0 alt="[Next Topic]"></a>
<a href="../../search?book=EZ30OZ00"><img src="/bookmgr/search.gif" border=0 alt="[Search]" ></a>
<img src="/bookmgr/dslist.gif" border=0 alt="[Search Results]">
<img src="/bookmgr/dsprev.gif" border=0 alt="[Prev Topic Match]">
<img src="/bookmgr/dsnext.gif" border=0 alt="[Next Topic Match]">
<img src="/bookmgr/dnotes.gif" border=0 alt="[Notes]">
<img src="/bookmgr/dlnotes.gif" border=0 alt="[List Notes]">
<a href="../../print?book=EZ30OZ00"><img src="/bookmgr/print.gif" border=0 alt="[Print]"></a>
<a href="../../download/EZ30OZ00.boo"><img src="/bookmgr/download.gif" border=0 alt="[Download]" ></a>
<a href="../../help/book"><img src="/bookmgr/help.gif" border=0 alt="[Help]"></a>
<hr>
<a name="HDR4610DMC"><H3> 2.7.6 Differences between SOM and COM</H3></a>
</banner>
<pre width="80">
Beside the CORBA standard, which is an an open standard adopted by more
than 590 members of the OMG there was another <I>de</I> <I>facto</I> standard in the
market OLE, object linking and embedding. OLE is based on Microsoft's
Common Object Model (COM) which is proprietary to Microsoft. OLE is not
CORBA-compliant. The name OLE may seem misleading, because OLE is much
more than linking and embedding technology. Microsoft has announced OLE
as an all embracing base technology strategy, covering transactions,
databases and networking. What makes this technology important is the
fact that Windows is moving very fast to this technology. It is part of
the operating system. Microsoft has announced that Cairo (code name for
the next generation of Windows) will be totally based on OLE.
<p>
The line of what is part of COM and what is part of OLE is not clearly
drawn, but the base services are usually referenced as being COM.
<p>
The similarity between SOM and COM is both are facing similar problems to
solve. Both technologies have to provide an RRBC kind of interface to
components to ensure plug and play of components. Both have some kind of
repositories with metadata about the methods and parameters available to
enable the components to discover their interfaces at run time. They are
called <I>type</I> <I>libraries</I> and are the equivalent to the CORBA interface
repositories. Both have some life cycle management facilities using
factories. COM, like CORBA, separates the interface definition from the
implementation. Microsoft has introduced OCX (OLE custom control
extensions) that have a predefined set of interfaces similar to OpenDoc.
<p>
Whereas CORBA uses one IDL to generate language specific skeletons and
headers(bindings) for different programming languages such as C++ or
COBOL, COM uses the following two proprietary interface languages to
describe objects:
<p>
░ A COM object definition language (ODL)
░ A COM interface definition language IDL.
<p>
The COM IDL can be thought of as a superset of DCEs. The IDLs for Remote
Procedure Calls are used by a preprocessor called the Microsoft Interface
Definition Language (MIDL) compiler which generates C code for proxies and
stubs.
<p>
COM is not language neutral in a sense that there is no concept of how to
generate multiple language bindings from one IDL file.
<p>
Unlike SOM/CORBA, which generates and stores all metadata about components
in the Interface Repository from the IDL files, Microsoft uses a different
language, ODL, to describe this kind of metadata. This ODL used to
describe the COM interfaces and parameters has to run through a tool
called MKTYPLIB to produce a type library which is the equivalent of
CORBA's interface repository and a header file with the function
prototypes needed to access the interfaces.
<p>
On closer examination, Microsoft actually proposes two programming models;
class libraries such as Microsoft Foundation Classes for smaller objects
and the COM/Aggregation model for larger components, not supporting
inheritance at all. The two models are very different and require
flexibility limiting design decisions. COM is a collection of related
interfaces that can be traversed through and allowed other components,
similar to CORBA, to discover their interface during run time. These
interfaces are not bound to an object state. COM has solved the RRBC
problem by not supporting inheritance at all. Updates are made by adding
new interfaces. It is supporting an aggregation model that works for most
of the applications, but there is a trade-off to be paid by a greater
complexity of programming. The complexities that can be hidden by multiple
inheritances must be aggregated by multiple interfaces.
</pre>
</pre>
<hr>
<br><a href="2.7.5"><img src="/bookmgr/prev.gif" border=0 alt="[Prev Topic]"></a>
<a href="2.7.7"><img src="/bookmgr/next.gif" border=0 alt="[Next Topic]"></a>
<cite> ⌐ Copyright IBM Corp. 1996</cite>
<HR><p><h6><a href="/cgi-bin/bookmgr/library">IBM BookManager« BookServer</a> Copyright 1989, 1999<a href="http://www.ibm.com/"> IBM</a> Corporation. All rights reserved.</h6><p>
</BODY></HTML>