home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
opendc12.zip
/
SG244883.ZIP
/
2_7.3
< prev
next >
Wrap
Text File
|
2001-01-27
|
6KB
|
103 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.3">
<title>
2.7.3 "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.3"><img src="/bookmgr/contents.gif" border=0 alt="[Contents]"></a>
<img src="/bookmgr/drevs.gif" border=0 alt="[Revisions]">
<a href="2.7.2"><img src="/bookmgr/prev.gif" border=0 alt="[Prev Topic]"></a>
<a href="2.7.4"><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="HDR4610DS9"><H3> 2.7.3 SOM</H3></a>
</banner>
<pre width="80">
<p>
OpenDoc uses the System Object Model (SOM) initially released in OS/2 2.0
in April 1992. SOM is a proven, multi-platform, and language-neutral
object model. It is compliant with the CORBA 1.2 specification.
<p>
SOM was originally introduced as part of OS/2 to provide a stable object
model for the Workplace Shell. The problem by introducing an
object-oriented user interface into an operating system platform was the
release-to-release binary compatibility (RRBC). That means that parts
could be replaced without having side effects to applications using these
parts. The Workplace Shell was implemented as a class library that could
be used by many other application developers inheriting the functionality
provided by the Workplace Shell. What would happen if the Workplace Shell
would be upgraded? Using pure C++ would mean that none of these
applications would run without recompilation and redistribution. The
Workplace Shell has solved this problem by using SOM. If the Workplace
Shell classes change all Workplace Shell derived classes and applications
are inheriting the new functions on the fly. It is due to the magic of SOM
providing release-to-release binary compatibility (RRBC).
<p>
A component technology such as OpenDoc is facing exactly the same
problems. The reason is that there is no binary consistence of changed
objects and classes. That means, if a C++ class is updated, all classes
using the changed class or being derived from it must be recompiled.
Because of the different object layouts produced by different compilers,
it is also not possible to link object codes produced with a compiler A
with object codes produced by a compiler B. A C++ programmer, for
example, cannot easily use classes developed in Smalltalk, nor can a
Smalltalk programmer make effective use of C++ classes. Object-oriented
language and toolkit boundaries become barriers to interoperability. A
component model has to solve this problem, which it can do this in
different ways. One way to avoid this problem is to not allow inheritance
at all. That is the way COM (Common Object Model), the underlaying object
model of OLE2, is working.
<p>
SOM as the underlying object model of OpenDoc is the IBM solution to that
problem. SOM provides a strong state-of-the art object behavior by using
the object model of CORBA. SOM is supporting multiple inheritance, offers
strong encapsulation for objects and polymorphism. One way to solve the
RRBC problem for SOM was to make classes itself to living objects, similar
to what Smalltalk is doing. This provides a great flexibility. Classes
can be created, changed, and updated dynamically at run time. The same
implementation of classes can behave in different ways by using
metaclasses, that are classes the class objects are derived from.
<p>
This binary compatibility enables SOM objects to be implemented and used
in a language-independent way. Classes are defined in this
CORBA-compliant IDL. SOM has added some implementation specific
constructs such as metafiles. The SOM Compiler then generates from this
IDL definition header files and skeletons for the language the developer
prefers to implement the functions in. This may be C, C++, COBOL, or REXX
for example. Because SOM provides the object behavior as inheritance,
classes can be implemented with non object-oriented languages producing
fully fledged class libraries.
<p>
In addition to that, SOM can produce usage bindings for other languages.
That means a class implemented in REXX can be derived from a class
implemented in C and can be used from a COBOL or Smalltalk program.
<p>
SOM scales very gracefully from local to distributed objects, utilizing
the distributed SOM (DSOM) framework included in the SOMObjects()
Developers Toolkit. With the SOM/DSOM model, the same object model can be
used across the entire spectrum of small and large operating systems
covering DOS/Windows, OS/2, AIX, OS/400 and MVS. Other platform support
for HP-UX, Apple-Mac and SUN is planned for the near future.
</pre>
</pre>
<hr>
<br><a href="2.7.2"><img src="/bookmgr/prev.gif" border=0 alt="[Prev Topic]"></a>
<a href="2.7.4"><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>