AM and SOM:
Client/Server Development in the Object-Oriented Environment
-----------------------------------------------------------------
Backgrounder Report from Intelligent Environments
2 Highwood Dr, Tewksbury, MA 01876
508-640-1080,  fax 508-640-1090
-----------------------------------------------------------------

Over the next few years, object-oriented technology will permeate many
aspects of the computing environment - including user interfaces,
languages, and operating systems themselves. Intelligent Environments has
positioned its AM (Applications Manager) client/server development tool to
exploit the object-oriented environment as it emerges. This document
focuses on how AM will deliver the benefits of object-oriented programming
techniques and how IBM s System Object Model (SOM) plays a key role in the
AM strategy.

For IS organizations, the single greatest advantage offered by
object-oriented programming techniques is the dramatic improvement in
productivity through code reuse. To achieve this benefit, applications
must be designed as a collection of separate components that provide a
clean interface to other components.

Intelligent Environments' AM is a powerful development tool for production,
high-volume client/server applications. AM lets programmers build, share,
and reuse standard and custom objects. Each object has a set of procedures
(sometimes called "methods") that can be accessed from a point-and-click
dictionary during development. AM binds objects together dynamically at
run-time so that one object can be modified independently of the others.

AM combines objects into components that are groups of objects represented
on the desktop as an icon. A component has a primary window, a menu bar,
modeless and modal secondary windows, local methods and data, public
methods, and support for the dynamic linking of objects. AM components can
be created dynamically by the user or by other components.

AM supports the three key features of object-oriented programming
languages: encapsulation, polymorphism, and inheritance. Encapsulation is
provided automatically for all objects developed using AM. If the
developer wants to make a method available to other objects, it is marked
as "public." The developer specifies the list of objects used by each
object being developed, and all the public methods available then appear
in the dictionary for that object.

AM components support polymorphism, the ability to ask an object to do
something without knowing anything about the object. For example, a
"print" message can be sent to a group of AM components and each will
print in the way appropriate to itself.

AM components also support the concept of inheritance, wherein a developer
can use existing objects to create new objects. If the existing object is
modified, the changes propagate to the new object with no recompilation
required.

Language-Independent Objects

Currently, programming languages such as C++ and Smalltalk create their own
run-time environment. Modifying an object or adding a new object requires
the source code of the original object. This makes it impossible to build
a set of libraries that can be supplied in binary format and extended
later.

The ideal situation, however, is for programmers to be able to develop
object libraries in any language, and extend them without needing to be
aware of the language used. This is IBM's objective in developing SOM.
Intelligent Environments is enhancing AM to enable developers to exploit
the power of SOM.

Distributed Objects

In order to standardize communications between objects across networks, IBM
has created Distributed SOM (DSOM). DSOM uses the Common Object Request
Broker Architecture (CORBA) developed by a group of vendors known as the
Object Management Group (OMG). DSOM will be compatible with systems being
developed by Apple, Hewlett-Packard, Digital, Sun, and many others. IBM
has built DSOM on another industry standard known as the Distributed
Computing Environment (DCE). DCE is supported by a wide range of primarily
UNIX operating systems, and is likely to become the standard for
heterogeneous computing.

Therefore, an important question regarding any development tool or
programming language is: will my applications be able to plug into DSOM in
the future? Intelligent Environments is committed to AM support for DSOM,
and sees this technology as providing a transparent, language-independent
connection layer between program components running across a wide-area
network.

AM will utilize the same interface definition language used to define DSOM
and SOM objects. This will allow AM to define new SOM and DSOM object
class DLLs in the future. As a result, AM developers will be able to
deliver SOM and DSOM objects that transparently resolve into clear,
highly-maintainable AM procedures; likewise, class DLLs will maintain
object data that is easily read and written to by the AM developer.

AM's object-oriented programming approach addresses the multi-language,
multi-vendor development requirements of IS organizations. As such, it
delivers the benefits of object-oriented programming in an evolutionary,
not revolutionary fashion -- and provides a migration path for commercial
programming teams to exploit these new techniques with minimal training.

Solving the Reuse Dilemma

The capabilities discussed above make code reuse much easier. But AM goes
beyond other development tools in getting to the heart of the problem of
code reuse.

Unless a developer can fully understand the properties of an existing
object, it is often easier to write a new object than to reuse one. This
is a problem of system documentation. How can an object be so well
documented that a developer can understand the object's behavior well
enough to want to reuse it? AM addresses this problem in a unique way. AM
objects are "reverse-engineered" into a repository that stores the
underlying structure of the objects. From here, AM creates complete,
up-to-date on-line documentation -- with easy-to-use hypertext links that
present all of the dependencies and structural connections. All of which
makes the promise of reusable code far more attainable.

Object-Oriented Operating Systems

Over the next five years, all the major PC operating systems will become
object-oriented in their user interface, their programming environment,
and their filing system. For example, IBM will add frameworks from the
research work being carried out jointly with Apple at Taligent to its SOM
and DSOM strategy. AM will be at the forefront of support and exploitation
of these advanced operating systems and their object-oriented
capabilities.

 ============================================================
 From the  'New Product Information'  Electronic News Service
 ============================================================
 This information was processed from data provided by the
 above mentioned company. For additional details, contact 
 the company at the address or telephone number indicated.
 OmniPage Pro is now used for converting all printed input! 
 ============================================================
 All submissions for this service should be addressed to:
 BAKER ENTERPRISES,  20 Ferro Dr,  Sewell, NJ  08080  U.S.A.
 Email: RBakerPC (AOL/Delphi), rbakerpc@delphi.com (Internet)
 ============================================================
