SOMobjects for OS/400

By IBM

IBM SOMobjects for OS/400 lets you create and use objects across multiple programming languages and multiple platforms. It also supports persistent, securable, concurrently shareable objects across sessions.

IBM SOMobjects for OS/400 is the AS/400 implementation of IBM's System Object Model (SOM), an object-oriented programming (OOP) client/server technology.

Language Neutrality
SOMobjects for OS/400 enables object-oriented programmers to create, subclass, and use binary components that are language neutral. Language neutrality means that applications written in different programming languages can use a common class library. It also means that an application developer can use any supported language to access and use objects and object definitions, regardless of which language created them, without having to recompile the application.

With SOMobjects for OS/400, class implementers describe the interface for a class of objects in a standard language called the Interface Definition Language (IDL). The IDL is compiled, producing C or C++ language bindings both for clients of the class and for the implementer. The clients and the implementer do not need to use the same programming language.

Support for Multiple Platforms
Language neutrality also enables a greater degree of openness than ever before in the development and use of OOP facilities across multiple platforms. As a result, SOMobjects for OS/400 helps realize the promise of OO technology-that objects will become standard, off-the-shelf parts that programmers can incorporate into a system as easily as engineers incorporate off-the-shelf semiconductor chips into a circuit board.

The means by which SOMobjects for OS/400 supports multiple platforms is called Distributed SOM (DSOM). DSOM enables application programs to access objects in other processes and in other systems. Both the location and the implementation of an object are transparent to the client, and the client accesses the object (via method calls) in a single manner, regardless of its location.

Support for Protected Objects
SOMobjects for OS/400 introduces support for protected SOM objects. Protected objects are an extension beyond what is supported in SOM for other platforms. Protected SOM objects are:
 * Persistent. Their data is maintained across processes and across system IPLs. Methods operate on the object's data in place. There is no need to write the data to a file to achieve persistence.
 * Securable. Users must be authorized to operate on the object.
 * Encapsulated. The system and the class implementer enforce encapsulation so that all access to the object is through the object's methods.
 * Concurrently shareable by multiple users.
 * Integrated with OS/400. They have standard system support such as access control and save/restore.

Upward Binary Compatibility
SOMobjects for OS/400 lets developers make the typical kinds of changes to an implementation and its interfaces that evolving software systems experience. If changes to a class do not require changes to the source code for client applications, those client programs do not have to be recompiled. Thus, classes can undergo structural changes such as the following, yet retain full upward binary compatibility:
 * Adding new methods
 * Changing the size of an object by adding or deleting instance variables
 * Inserting new base classes above a class in the inheritance hierarchy
 * Relocating methods upward in the class hierarchy

Components
SOMobjects for OS/400 includes the following: SOMobjects for OS/400 frameworks include the following:
 * SOMobjects for OS/400 run-time environment (included with OS/400)
 * SOMobjects Developer Toolkit for OS/400
 * SOM Compiler
 * IDL files for frameworks
 * Distributed SOM (DSOM)
 * Interface Repository (IR)
 * Metaclasses
 * Collection Classes
 * Event Management (EMan)

Standards Compliance
SOMobjects for OS/400 conforms to the Common Object Request Broker Architecture (CORBA) standard of the Object Management Group (OMG).

Platforms
SOMobjects for OS/400 applications run in a client/server environment:
 * SOMobjects for OS/400 run-time environment is part of OS/400.
 * SOMobjects Developer Toolkit for OS/400 runs on OS/2.

System Requirements
AS/400: OS/2 (workstation):
 * 64-bit PowerPC AS microprocessor
 * 10 MB of available disk storage
 * Operating System/400 (OS/400), Version 3, Release 6 or greater
 * Client Access for OS/400
 * PC with 386 microprocessor or greater
 * 8 MB of main memory, minimum
 * 10 MB of available disk storage
 * OS/2 Release 2.11 or greater
 * The REXX option of OS/2
 * The SOMobjects for OS/2 run-time environment
 * Client Access Optimized OS/2 Client for OS/400

Related Products

 * SOMobjects Developer Toolkit, which runs on OS/2, AIX, and Windows
 * VisualAge C++ for OS/400
 * VisualAge C++ for OS/2

Information
The following are key SOMobjects for OS/400 publications:
 * SOMobjects for OS/400 User Guide
 * SOMobjects for OS/400 Reference

International Business Machines Corporation 1995

References in this publication to IBM products or services do not imply that IBM intends to make them available in every country.

AIX, AS/400, IBM, MVS, OS/2, and OS/400 are registered trademarks of International Business Machines Corporation.

VisualAge C++ and SOMobjects are trademarks of International Business Machines Corporation.

Windows is a registered trademark of Microsoft Corporation.