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 >
Text File  |  2001-01-27  |  6KB  |  103 lines

  1. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
  2. <HTML>
  3. <HEAD>
  4. <base href="http://publib.boulder.ibm.com:80/cgi-bin/bookmgr/BOOKS/EZ30OZ00/2.7.3">
  5. <title>
  6. 2.7.3 "OS/2 WARP and OpenDoc" 
  7.   via IBM BookManager BookServer
  8. </title>
  9. </head>
  10. <body background="/bookmgr/backdrop.gif">
  11. <banner><br>
  12. <a href="../../library"><img src="/bookmgr/libicon2.gif" border=0 alt="[Library]"></a>
  13. <a  href="CONTENTS#2.7.3"><img src="/bookmgr/contents.gif" border=0 alt="[Contents]"></a>
  14. <img src="/bookmgr/drevs.gif" border=0 alt="[Revisions]">
  15. <a href="2.7.2"><img src="/bookmgr/prev.gif" border=0 alt="[Prev Topic]"></a>
  16. <a href="2.7.4"><img src="/bookmgr/next.gif" border=0 alt="[Next Topic]"></a>
  17. <a href="../../search?book=EZ30OZ00"><img src="/bookmgr/search.gif" border=0 alt="[Search]" ></a>
  18. <img src="/bookmgr/dslist.gif" border=0 alt="[Search Results]">
  19. <img src="/bookmgr/dsprev.gif" border=0 alt="[Prev Topic Match]">
  20. <img src="/bookmgr/dsnext.gif" border=0 alt="[Next Topic Match]">
  21. <img src="/bookmgr/dnotes.gif" border=0 alt="[Notes]">
  22. <img src="/bookmgr/dlnotes.gif" border=0 alt="[List Notes]">
  23. <a  href="../../print?book=EZ30OZ00"><img src="/bookmgr/print.gif" border=0 alt="[Print]"></a>
  24. <a href="../../download/EZ30OZ00.boo"><img src="/bookmgr/download.gif" border=0 alt="[Download]" ></a>
  25. <a  href="../../help/book"><img src="/bookmgr/help.gif" border=0 alt="[Help]"></a>
  26. <hr>
  27. <a name="HDR4610DS9"><H3> 2.7.3   SOM</H3></a>
  28. </banner>
  29. <pre width="80">
  30. <p>
  31.    OpenDoc uses the System Object Model (SOM) initially released in OS/2 2.0 
  32.    in April 1992.  SOM is a proven, multi-platform, and language-neutral 
  33.    object model.  It is compliant with the CORBA 1.2 specification. 
  34. <p>
  35.    SOM was originally introduced as part of OS/2 to provide a stable object 
  36.    model for the Workplace Shell.  The problem by introducing an 
  37.    object-oriented user interface into an operating system platform was the 
  38.    release-to-release binary compatibility (RRBC).  That means that parts 
  39.    could be replaced without having side effects to applications using these 
  40.    parts.  The Workplace Shell was implemented as a class library that could 
  41.    be used by many other application developers inheriting the functionality 
  42.    provided by the Workplace Shell.  What would happen if the Workplace Shell 
  43.    would be upgraded?  Using pure C++ would mean that none of these 
  44.    applications would run without recompilation and redistribution.  The 
  45.    Workplace Shell has solved this problem by using SOM. If the Workplace 
  46.    Shell classes change all Workplace Shell derived classes and applications 
  47.    are inheriting the new functions on the fly. It is due to the magic of SOM 
  48.    providing release-to-release binary compatibility (RRBC). 
  49. <p>
  50.    A component technology such as OpenDoc is facing exactly the same 
  51.    problems.  The reason is that there is no binary consistence of changed 
  52.    objects and classes.  That means, if a C++ class is updated, all classes 
  53.    using the changed class or being derived from it must be recompiled. 
  54.    Because of the different object layouts produced by different compilers, 
  55.    it is also not possible to link object codes produced with a compiler A 
  56.    with object codes produced by a compiler B.  A C++ programmer, for 
  57.    example, cannot easily use classes developed in Smalltalk, nor can a 
  58.    Smalltalk programmer make effective use of C++ classes.  Object-oriented 
  59.    language and toolkit boundaries become barriers to interoperability.  A 
  60.    component model has to solve this problem, which it can do this in 
  61.    different ways.  One way to avoid this problem is to not allow inheritance 
  62.    at all.  That is the way COM (Common Object Model), the underlaying object 
  63.    model of OLE2, is working. 
  64. <p>
  65.    SOM as the underlying object model of OpenDoc is the IBM solution to that 
  66.    problem.  SOM provides a strong state-of-the art object behavior by using 
  67.    the object model of CORBA.  SOM is supporting multiple inheritance, offers 
  68.    strong encapsulation for objects and polymorphism.  One way to solve the 
  69.    RRBC problem for SOM was to make classes itself to living objects, similar 
  70.    to what Smalltalk is doing.  This provides a great flexibility.  Classes 
  71.    can be created, changed, and updated dynamically at run time.  The same 
  72.    implementation of classes can behave in different ways by using 
  73.    metaclasses, that are classes the class objects are derived from. 
  74. <p>
  75.    This binary compatibility enables SOM objects to be implemented and used 
  76.    in a language-independent way.  Classes are defined in this 
  77.    CORBA-compliant IDL.  SOM has added some implementation specific 
  78.    constructs such as metafiles.  The SOM Compiler then generates from this 
  79.    IDL definition header files and skeletons for the language the developer 
  80.    prefers to implement the functions in.  This may be C, C++, COBOL, or REXX 
  81.    for example.  Because SOM provides the object behavior as inheritance, 
  82.    classes can be implemented with non object-oriented languages producing 
  83.    fully fledged class libraries. 
  84. <p>
  85.    In addition to that, SOM can produce usage bindings for other languages. 
  86.    That means a class implemented in REXX can be derived from a class 
  87.    implemented in C and can be used from a COBOL or Smalltalk program. 
  88. <p>
  89.    SOM scales very gracefully from local to distributed objects, utilizing 
  90.    the distributed SOM (DSOM) framework included in the SOMObjects() 
  91.    Developers Toolkit.  With the SOM/DSOM model, the same object model can be 
  92.    used across the entire spectrum of small and large operating systems 
  93.    covering DOS/Windows, OS/2, AIX, OS/400 and MVS. Other platform support 
  94.    for HP-UX, Apple-Mac and SUN is planned for the near future. 
  95. </pre>
  96. </pre>
  97. <hr>
  98. <br><a href="2.7.2"><img src="/bookmgr/prev.gif" border=0 alt="[Prev Topic]"></a>
  99. <a href="2.7.4"><img src="/bookmgr/next.gif" border=0 alt="[Next Topic]"></a>
  100. <cite>  ⌐ Copyright IBM Corp. 1996</cite>
  101. <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>
  102. </BODY></HTML>
  103.