Snapshot of the PSP LAN Systems API Strategy
by Kim Wilkens
Treating the network as a system means that you can now extend your computing environment beyond your own personal system. How? By using distributed computing environment. To address the challenges of the distributed computing environment, IBM has developed the Open Blueprint. The Open Blueprint enables the development, execution, and management of distributed, client/server applications that work together in an integrated fashion in today's heterogeneous, multi-vendor environment. Two key components of Open Blueprint for distributed computing is are the Distributed Computing Environment (DCE) and the System Object Model (SOM).
An Overview of DCE
Open Software Foundation (OSF) DCE is a set of open, integrated, and distributed network services that form a platform for distributed computing in a heterogeneous network. The following services are provided by the DCE:
- Directory Services that provide location transparency for resources in a network by allowing them to be accessed by logical names, rather than by specifying the particular machine on which they reside.
- Security Services that provide a secure and distributed service for management of security information within a network. This includes supporting a single-user definition and logon with the network. A single-user definition lets users authenticate with the network as an entity, rather than having to 'logon' to each individual server.
- Time Services that ensure all the participants within the DCE environment have a consistent view of time. This is important for ordering events and alerts within the network, as well as ensuring that cached information times out appropriately and consistently throughout the network.
- Remote Procedure Calls that provide support for distributed application development through the RPC paradigm. This paradigm brings with it two major advances in the arena of distributed application development:
- Simplified distributed application development using the familiar 'call' paradigm. This shields programmers from the complexities of communications programming by allowing them to define protocols between clients and servers in terms of familiar C language calls.
- Tight integration of the distributed application development model with the other distributed network services. This lets the application developer focus on providing the functions of the distributed application, rather than building the network services to support it.
DCE provides an essential platform for building robust enterprise-wide, distributed applications. It does this by simplifying the process of building distributed applications and providing the ability to integrate multiple applications and resource managers with an open, industry standard set of distributed services. To fully leverage these benefits, IBM intends to integrate key resource managers with DCE services to let customers using DCE services provide a single system image of the network to the user, administrator, and application developer. CICS is the first product from IBM integrated with DCE. Other resource managers, such as IBM LAN Server also will be integrated.
An Overview of SOM
SOM has been extended to deal with the transparent distribution of objects. That is, application programs can access objects in other processes, and across networks. SOM provides this transparent access to remote objects through its Object Request Broker (ORB): the location and implementation of the object are hidden from the client, and the client accesses the object as if it were local. The Object Management Group (OMG) consortium defines the notion of an ORB that supports access to remote objects in a distributed environment. SOM complies with the OMG's specification of CORBA. The CORBA specification defines the components and interfaces that must be present in an ORB, including:
- Interface Definition Language (IDL) for defining classes
- C usage bindings (procedure-call formats) for invoking methods on objects
- Dynamic Invocation Interface and an Interface Repository, which support the construction of requests (method calls) at run time
- Object Request Broker run-time programming interfaces.
SOM also will integrate with the directory and security services of DCE providing a single system image to users, administrators, and application developers, so that SOM will scale across the complete range of networks.
An Overview of Frameworks
IBM's goal is to make the underlying services of the distributed application environment transparent to end users, administrators, and application developers. Today's developer has to support a variety of languages and operating environments. Much of what is created is either thrown away or rewritten several times over. As development organizations look at their limited resources, it becomes apparent that they can no longer afford to continue building and maintaining code on multiple platforms that each require different APIs and development tools.
Our answer is to develop frameworks on multiple platforms. From an application development perspective, that means the same programming interfaces are available from anywhere in the network to enable application portability across heterogeneous environments. The collection of frameworks provides a runtime environment that solves all the hard problems of building distributed, collaborative applications for a heterogeneous network.
Types of Frameworks
A procedural framework lets different implementations of a service support a common application programming interface (API). Applications simply call the common set of APIs without regard to the underlying implementation. This enables applications to be independent of any particular vendors subsystem implementations.
An example of a procedural framework is the OS/2 Installable File System Architecture. When an application needs to open a file, it calls the DosOpen() API. The application is not concerned about whether the file is on a FAT, HPFS, CD-ROM or LAN Requester file system. Instead, IFS simply routes the call to the appropriate file system.
An object framework is a class library encompassing the function of a particular subsystem. It solves all the hard design problems related to that subsystem, and in the case of networking frameworks, lets different service providers support the framework using subclassing and implementing abstract classes. Networking frameworks include: security, directory, transaction management, transport, and so forth.
An example of an object framework is the compound document framework (OpenDoc). OpenDoc provides the basic programming model for collaborative application. It lets applications be written as object parts that get called by the framework. These parts do not all have to reside on the same system, but through the use of SOM, can be distributed in the network. The OpenDoc framework also lets you write parts to the OLE interfaces and will evolve to the Taligent Document framework.
Today and the Future
Today, we have published APIs that allow an application developer to manage every facet of the LAN Systems family of products, including LAN Server, LAN Server for Macintosh, LAN Server Ultimedia, LAN Distance, Network Transport Services/2, DCE, and Encina. Some of these APIs already are implemented as procedural frameworks (for example, Encina APIs), and some will be mapped to new procedural frameworks (for example, the OSF/DCE XFN framework). Over time, they will all be implemented as object frameworks based on IBM Taligent and industry technology supporting OMG interfaces, where applicable.
Your development environment can be a combination of procedural and object technologies as applications evolve from procedural to object. And, as an application developer, you will need to determine where your current skill set lies (procedural or object) and how to evolve your skills towards object-oriented technology.
Check It Out!
See the LAN Systems API Roadmap documentation available on The Developer Connection for LAN Systems CD-ROM for more specific information on what key APIs and frameworks are available from IBM today!
Reprint Courtesy of International Business Machines Corporation, © International Business Machines Corporation