Apple Enterprise - NeXTanswers Support Archive
***** OpenStep and Solaris: A White Paper *****
c. 1994 Sun Microsystems, Inc., NeXT Computer, Inc.
Table of Contents:
Introduction 1
The OpenStep Initiative 1
The Goal: A Standard For Distributed Object Computing 2
What Is OpenStep? 3
OpenStep Features 5
OpenStep Benefits 9
OpenStep and Solaris 11
Summary 15
OpenStep and Solaris
---->Introduction
The SunSoft / NeXT collaboration combines the distributed computing
strengths of Solaris, including the system-wide object services
provided by Project DOE, with NeXT's OpenStep, the industry leader
in object-oriented applications development and end-user computing.
This white paper describes OpenStep's features and benefits and
SunSoft's plans for incorporating OpenStep into Solaris.
---->The OpenStep Initiative
The primary goal of the OpenStep initiative is the creation of an
open, high-volume portable standard for object-oriented computing.
The benefit of this intended standard is to enable the rapid
development of business applications, including distributed
applications which fully exploit the power of client/server
computing through the use of object technology.
Providing a rich object solution for client/server computing requires an open standard. This standard should include:
A robust, scalable and reliable operating system foundation
based on open systems standards;
A common services architecture for distributed computing
based on objects;
Integrated and complete object-oriented development tools
allowing the rapid creation of client/server applications;
An object-oriented framework accessible to all applications
and developers; and
An end-user environment built to exploit the ease of use and
integration provided by an object-oriented foundation.
The NeXT and SunSoft Partnership
NeXT and SunSoft have formed a partnership to make NeXT's OpenStep
Application Programming Interface (API) the industry standard for
object-oriented computing.
By integrating NeXT's OpenStep API, SunSoft's Project DOE
(Distributed Objects Environment) object system, and Solaris,
SunSoft will provide customers with a complete solution that is
compliant with the industry's first open systems standard for
object-oriented computing.
The Goal: A Standard For Distributed Object Computing
The rapid development of distributed applications has been an
elusive goal of corporate computing. Earlier attempts required the
use of low-level networking protocols (such as Remote Procedure Call
mechanisms), leaving the developer with the burden of focusing more
on complex, low-level networking and systems management than on
high-level business functionality. The network programming model
also meant that implementation decisions had to be made at the time
the application was being designed, rendering the application hard
to modify and less able to benefit from the power of client/server
computing.
By allowing programmers to work at a high level of abstraction and
to reuse code with ease, object-oriented programming is being viewed
as the software equivalent of the industrial revolution, replacing
today's costly hand-made business applications with applications
which can be assembled out of reusable components.
The NeXT and SunSoft partnership will accelerate the adoption of object technology in two ways. First, NeXT and SunSoft are extending
the industry's current focus on object-oriented languages to a
broader focus on developing a standard, system-wide object
architecture. This architecture will provide an object framework
which integrates languages into a complete client/server operating
system optimized for object-oriented computing. Much richer than a
narrow object-oriented language layer, this object architecture will
harness the power of networked objects to build distributed,
client/server applications easily.
Second, no standard for object-oriented computing exists today. NeXT and SunSoft are working together to make the OpenStep APIs the first
high-volume, open and portable industry standard. This is the
overall goal of the OpenStep initiative, to provide the industry's
first open systems standard for object computing.
-----> What Is OpenStep?
OpenStep is an Application Programming Interface (API), an interface
to a set of functionality. One implementation of this functionality
is the NEXTSTEP Application Environment. In terms of today's
NEXTSTEP product, the OpenStep API corresponds to the operating
system independent layers of NEXTSTEP. The OpenStep interface is
based on the NEXTSTEP 3.2 APIs. Thus, successful implementations of
the OpenStep API will provide the functionality and user experience
similar to the current version of NEXTSTEP.
SunSoft is adopting the OpenStep API as its sole object standard. By
integrating Solaris and OpenStep, SunSoft is ensuring that the
functionality found today in the NEXTSTEP Application Environment is
part of Solaris.
The formal OpenStep interface specification will be published by
June 30, 1994 and will be available to all interested parties,
enabling others to develop and market alternate implementations of
the OpenStep standard. The OpenStep interfaces will be clearly
documented and evangelized to promote the consistency and broad
availability of the OpenStep standard on multiple platforms.
As an open, public standard, the OpenStep API will be administered
by an independent standards body. Any organization whose
implementation of the OpenStep API passes the OpenStep certification
test suite may freely license the OpenStep name and trademark.
Towards an Open Systems Market for OpenStep Objects
The integration of the OpenStep API into industry-standard operating
systems enables vendors to bridge the gap between operating system
and application functionality.
By adhering to standards such as the Object Management Group's (OMG)
CORBA (Common Object Request Broker Architecture) and extending the
benefits of object orientation to distributed computing, the
commercial customer will realize many benefits. Chief among them
will be the growth of a broad market for objects, a market not
dominated by a single supplier.
The ability to obtain a wide variety of commercially available
software objects and incorporate them into a development environment
dramatically improves the creation of robust enterprise-ready
applications. This is one key promise of the OpenStep initiative.
Achieving this goal will require not only the best technology in the
industry, but also the volume adoption that can be created through
open systems.
NeXT and SunSoft are committed to creating an open environment where market forces greater than any single company can accelerate the availability of technology and solutions. Support for creating OpenStep-compatible objects and assistance in obtaining them will be provided by NeXT and SunSoft.
-----> OpenStep Features
Objects: The Basis of OpenStep
Objects are the foundation of the object-oriented OpenStep API.
Objects are self-contained, reusable software modules containing
data and associated behavior (methods). Objects help developers
manage complexity because developers only need to understand what an
object does (the messages it responds to)-not how the object "works"
internally-to use an object developed by another party.
Object-orientation simplifies application development, makes team
programming easier and maintenance simpler, and gives programmers a
more comprehensive view of an application's architecture. Most
importantly, object orientation encourages code reuse, greatly
reducing the costs associated with the software maintenance
lifecycle.
By integrating a powerful object framework into standard operating
system environments, the commercial customer will realize unique
benefits. These include greater ease of use for all applications,
reusable third-party objects, improved developer productivity, and
greater insurance that applications are portable, scalable and
extensible. Business applications will evolve rapidly and gracefully
reducing development costs.
The Goals of OpenStep
The development of OpenStep was guided by these principles:
The industry needs an open object standard for enterprise
computing, bringing to object-orientation the broad market
forces of the open systems movement;
OpenStep applications should be portable across the full
range of OpenStep and NEXTSTEP platforms;
Developers in the 1990's need an application development
architecture, not a collection of poorly integrated tools
that weren't designed to work together. The OpenStep API
defines a complete architecture ensuring that OpenStep-
compliant programming languages, windowing and graphics
systems, user interface toolkits, class libraries, database
tools, and project management tools will work together in
a tightly-coupled, integrated way;
A development platform must provide a high level of
functionality that all developers can depend on
functionality common across applications. This frees
developers from writing code common to most applications
and requires them to write only the code which is unique
to their business application. The OpenStep API is
implemented using rich object frameworks providing the
core functionality required by most business applications;
Interface creation should be the least labor-intensive part
of development. Experimentation with the human factors
required to make an application easy to use should be
enabled by good GUI development tools. To make this possible
the OpenStep API is supported by a companion product
providing OpenStep application development tools whose
Interface Builder makes interface creation a breeze;
A development environment should employ the same windowing
system and imaging model for screen and hardcopy output, and
all applications should support key multifont text and
graphics standards.
A development environment should encourage programmers to
provide high-quality and consistent graphical user
interfaces that can be easily localized for different
foreign languages. By its separation of user interface files
from business logic, the OpenStep architecture fully
supports easy application localization.
Custom applications should integrate commercial productivity
tools. OpenStep accomplishes this by using a single, uniform
object messaging interface between objects within and among
all applications, easily accessed by end-users through
consistent cross-application services and information
hot-linking.
At a minimum, the object API should support multiple
languages. The OpenStep API will support applications
written in ANSI-C, Objective-C and C++.
The environment should facilitate the development of
distributed applications to promote client/server
architectures and distributed computing. The burden of
networked applications development should be handled
transparently through use of distributed objects conforming
to a common model.
Finally, the system should define a model for creating
objects that will enable independent authorship of a large
number of reusable software objects by third party
developers - in much the same way that today's NEXTSTEP
developers are building reusable ObjectWare.
These are the goals of the OpenStep API, together with SunSoft's
goals in providing NEXTSTEP Application Environment functionality
for Solaris users, and the goals of companion products for Solaris
users, including application development tools for OpenStep
programmers.
OpenStep Functionality
The OpenStep API defines a single uniform, portable object-oriented
environment.
The cohesiveness of the system simplifies application development,
makes cooperation among programmers and applications easier, renders
maintenance simpler, and gives the developer a more comprehensive
view of a program's architecture. A complete environment for
object-oriented end-user computing, the OpenStep API is implemented
using a number of object frameworks, including the NEXTSTEP
Application Framework, frameworks providing access to relational
databases and frameworks providing support for distributed computing
using objects. The OpenStep API is supported by companion products,
including application development tools for OpenStep. Each of these
is described below.
NEXTSTEP Application Framework
The NEXTSTEP Application Framework is a set of approximately 150
core objects which have been developed and refined over eight years
and which have been shipping for more than five years. These objects
provide the framework required by any application, and a powerful
set of interface and supporting objects that provide advanced
functionality well beyond the windowing toolkits found in other
environments. In addition to standard interface elements such as
scrollers, cursors, buttons, sliders, windows, and panels, the
Application Framework includes high-level objects for such functions
as:
- Managing events
- Cross-application services
- Information hot-linking across applications
- Imaging
- Displaying TIFF and EPS images
- Manipulating, editing and spell-checking multifont text
- Selecting colors
- Opening and saving files
- Creating hierarchical information browsers
- Device-independent printing and faxing (Group III and IV
formats)
Nearly every object in the Application Framework is extensible.
Developers can create subclasses of OpenStep's object classes, and
even those not designed to allow subclassing often provide hooks for
dynamically adding new components at run-time.
Frameworks for Accessing Relational Databases
Because of integrated support for relational databases, every
OpenStep application can access and incorporate relational
databases. Unlike traditional fourth-generation languages, using
OpenStep there is no distinction between database applications and
other OpenStep applications. All applications use the same
development tools and access the same underlying facilities. Every
OpenStep application can be a database application and every
database application can exploit the other rich facilities of
OpenStep such as cross-application services.
These frameworks radically shorten the time required to design and
implement database applications that have graphical user interfaces
(GUIs) and simplify management and control of database transactions
within an application. These frameworks allow developers to design
applications independently of the databases they will be used with.
The resulting applications can be migrated to a different database
without modification, that is, without recoding the user interface
or applications logic. These frameworks enable a single application
to integrate information from multiple database vendors' products.
Distributed Object Framework
The OpenStep API is designed to support distributed object
applications. The OpenStep object model is the same within
applications, between applications residing on the same computer,
and between processes running across enterprise networks. OpenStep's
reliance on a distributed object model simplifies the development of
client/server applications by enabling OpenStep objects to reside
anywhere on a network of clients or servers. NeXT and SunSoft both
endorse the OMG CORBA standard for distributed object computing and
will use CORBA to ensure interoperability across different OpenStep
implementations. OpenStep's object distribution capabilities ensures
that objects can interoperate across all OpenStep clients and
servers.
Available today for distributed computing is NeXT's Distributed
Object Framework, a component of the OpenStep API. Distributed
applications based on this distributed object framework, including
applications based on NeXT's PDO (Portable Distributed Objects)
product for servers, will easily migrate to OpenStep
implementations.
Application Development Tools for OpenStep
An integrated set of application development tools will be available
as a companion product for building OpenStep-compliant applications.
These tools will include language support for applications written
in Objective-C, ANSI-C and C++. In addition, they will include
visual programming tools such as Project Builder, for managing all
of the files and resources in a given application; and Interface
Builder, for managing all of the objects in an application.
Interface Builder is the primary tool for graphical interface
development and management of an application's objects. Interface
Builder improves programmer productivity with its complete
environment for laying out, constructing, and testing user
interfaces. It also provides powerful software engineering tools to
incorporate, access, edit, and manage live objects, including
off-the-shelf as well as customer developed objects. Interface
Builder is:
A complete object-oriented user interface development,
layout, prototyping, and testing tool;
An object editor that manages the interactions between the
objects in a program. Using Interface Builder, programmers
define the messages objects may send each other, whether
they are user interface objects or any other kinds of
objects;
A tool that encourages modularity because of the ease with
which a program can be split into separate modules;
A class hierarchy manager for supplied classes and classes
of objects added by developers, and a tool for creating
subclasses of existing classes; and
An object and palette manager, allowing palettes of custom
objects to be displayed and manipulated in the same way as
OpenStep supplied objects.
-----> OpenStep Benefits
Leverage Reusable Third-Party Objects
OpenStep's standard object interfaces combined with multi-vendor
support for the base object framework will ensure that a wide
variety of industry-specific and general purpose objects are
developed, of the sort described in NeXT's ObjectWare Catalog.
Developers will be able to rely on in-house objects as well as
commercial objects to provide much of the functionality required,
concentrating their efforts on deploying applications constructed
of reusable, tested objects, resulting in higher overall software
quality and faster time to completion.
Greater Functionality For Every Application
OpenStep's object frameworks provide the common functionality needed
by most business applications-as much as 85% of common business
functionality according to a study by Booz, Allen & Hamilton of
the related NEXTSTEP product. OpenStep will raise the lowest common denominator, providing all programs with a greater level of
consistency in behavior and basic functionality such as the ability
to message other applications or fax information from within any
application. OpenStep's rich application framework allows developers
to focus the majority of their development energy on the unique,
high value aspects of the application, leveraging the core
functionality already provided by OpenStep.
Portability
Applications written to OpenStep will be portable across the entire
range of platforms supporting the OpenStep API, resulting in an open
competitive space for platform vendors. Platforms supporting
OpenStep applications will include native NEXTSTEP for Intel, SPARC
and PA-RISC; and OpenStep-compliant Solaris running on SPARC, Intel
and PowerPC processors; and other OpenStep-compliant products from
other vendors.
A Volume Standard
A key benefit of the NeXT and SunSoft collaboration will be to make
OpenStep a standard, evangelizing the industry-proven OpenStep APIs
to as large an installed base as possible through volume shipment,
attractive licensing, and open publication of the specifications by
independent standards bodies. This will create a larger market for
third party software solutions of all kinds.
Extensibility and Graceful Evolution
Because the public interfaces of objects are separate from their
implementation, existing applications can extend their functionality
by replacing older objects with newer versions, greatly reducing the
maintenance and testing requirements which prove to be so expensive
in non-object-based systems. In this way, applications can be
extended easily and evolve to meet new business needs.
Scalability and Transportability
Given the OpenStep distributed object framework, objects can reside
anywhere on the network, and a network object model ensures that
objects hide the details of client/server and network-based
computing.
Underlying OpenStep will be SunSoft's OMG-standard DOE architecture
which supports the full range of granularity, from fine to coarse
grained objects. This scalability, combined with the distributed
object capability to build networked applications easily and
transparently supports the widest set of distributed architectures.
Complex network programming is no longer required, due to the
powerful location transparent mechanisms which manage global naming,
location, and communication among objects.
Reduced Development Costs
Assembling new applications out of an inventory of in-house or
third-party components greatly reduces the cost of new development.
Moreover, once an object is developed and tested, it will not need
to be tested again, since objects are fully independent modules
which are not affected by changes to other objects. NEXTSTEP, the
basis of OpenStep, is recognized for its ability to reduce
development costs through rapid prototyping and object reuse, and
enabling developers to work with real, live dynamic objects.
-----> OpenStep and Solaris
SunSoft and NeXT are bringing the best of object-oriented and
distributed computing technology to Solaris. SunSoft's technology
leadership has led to the adoption of core DOE technology in the
Object Management Group's standards including CORBA (Common Object
Request Broker Architecture) and COSS (Common Object Services
Specification), of which SunSoft was the primary author.
OpenStep complements these system-wide services. NeXT has led the
industry in developing object-oriented environments and developer
tools. Users of NEXTSTEP have achieved dramatic productivity gains
in developing high quality applications, shortening from years to
months the time required to create sophisticated and easily
maintained business solutions. The incorporation of NeXT's object
technology into Solaris will result in the best distributed object
system in the industry.
OpenStep and CDE
When SunSoft's OpenStep integration is complete, Solaris will
include two application environments, CDE and the NEXTSTEP
Applications Environment implementation of the OpenStep API. The
CDE environment will ensure compatibility across multiple UNIX
platforms. SunSoft is committed to support CDE as one of its
primary standards.
For users and developers desiring to gain the benefits of object-
orientation such as rapid time to market for mission-critical
software, Solaris will support the full NEXTSTEP user environment.
To encourage standardization of object applications, SunSoft has
chosen the NEXTSTEP Applications Environment, accessible via the
OpenStep API as its object standard.
SunSoft will ensure that CDE and OpenStep applications integrate
and interoperate on a common desktop.
Object-oriented applications will be developed by writing to the
OpenStep API. This API will provide consistent and high-level access
to the features of the NEXTSTEP Applications Environment, the
NEXTSTEP user interface and object environment, including NeXT's
core object frameworks.
OpenStep and Project DOE
To further enable client/server applications for enterprise
computing, the OpenStep API will be supported by a powerful
distribution infrastructure, DOE, that allows objects to
collaborate across the network. The DOE Object System includes
a full range of distributed computing services based on the OMG
CORBA specification for heterogeneous computing. The distributed
object system will provide:
Transparent distribution, via OMG CORBA technology, allowing
all objects to message all other objects, regardless of
location. This flexible capability supports client/server
and peer architectures, enabling software right-sizing;
Multilingual interoperability, via OMG standard interface
definition language (IDL) mappings, allowing a client object
written in one language to access a server object written in
another;
Scalability, provided via a distributed object architecture,
allowing systems to be constructed of any size, utilizing
any number of machines, all connected with via standard
mechanisms supported by over 350 companies through the OMG
standardization process; and
Standardization, via adherence to industry standards, as
well as existing agreements with other major computer
vendors such as IBM and HP. Standardization provides
the ability for system level objects to be ported across
multiple platforms, as well as establishing a common object
model for third party developers.
SunSoft will support the OpenStep API as an integral part of
Project DOE's distributed object environment, leveraging Solaris
multithreading and multiprocessing capabilities.
Using OpenStep Within Solaris
Because the OpenStep interface specification is based on NEXTSTEP
3.2, the OpenStep API is designed to ensure maximum portability,
compatibility and consistency with native NEXTSTEP. And OpenStep
will serve as the API for future releases of native NEXTSTEP itself.
Users will find using an application written to the OpenStep API
identical to the experience of using a native NEXTSTEP application.
In a similar fashion, programmers will use the OpenStep developer
tools based on the existing NEXTSTEP Developer family of tools to
build OpenStep applications. Developers will notice only minor
changes from today's NEXTSTEP 3.2 API.
The experience of using or developing for OpenStep-compliant
environments will be very similar to the experience of using or
developing native NEXTSTEP applications. Thus, the best way for
developers to begin developing OpenStep-compliant applications is
to begin using the OpenStep Developer Starter Kit.
----> Summary
Through the OpenStep initiative, NeXT and SunSoft have defined an
open systems standard for objects. OpenStep integrated into Solaris
provides an enterprise-ready framework for distributed object
computing. The solution offers software that has both a low learning
curve and high software development productivity, combining the best
of distributed and object-oriented computing.
OpenStep's integration into Solaris addresses many of the key
problems in developing and using application software today -
reducing the cost of development and ownership, improving software
quality, ensuring that all functionality is easy-to-use, improving
interoperability, and providing a truly scalable, network-
transparent architecture for enterprise computing.
----------------------------
Sunsoft
2550 Garcia Avenue, Mountain View, California 94043-1100 U.S.A.
NeXT Computer, Inc.
900 Chesapeake Drive, Redwood City, California 94063 U.S.A.
NEXTSTEP Release 3 Copyright 1988-1994 NeXT Computer, Inc. All rights reserved. [6453.00]
This product and related documentation are protected by copyright
and distributed under licenses restricting its use, copying,
distribution, and decompilation. No part of this product or related
documentation may be reproduced in any form by any means without
prior written authorization of NeXT, Sun and their licensors, if
any.
Portions of this product may be derived from the UNIX and Berkeley
4.3 BSD systems, licensed from UNIX System Laboratories, Inc.
and the University of California, respectively. Third-party font
software in this product is protected by copyright and licensed from
NeXT's Font Suppliers.
RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by the
United States Government is subject to the restrictions set forth
in DFARS 252.227-7013 (c)(1)(ii) and FAR 52.227-19.
The product described in this publication may be protected by one
or more U.S. patents, foreign patents, or pending applications.
TRADEMARKS
Sun, Sun Microsystems, the Sun logo, SMCC, the SMCC logo, SunSoft,
the SunSoft logo, Solaris, SunOS, OpenWindows, DeskSet, ONC, NFS,
NetISAM, and ToolTalk are trademarks or registered trademarks of
Sun Microsystems, Inc. NeXT, the NeXT logo, NEXTSTEP, the NEXTSTEP
logo, OpenStep, NEXTSTEP Developer, ObjectWare, Portable Distributed
Objects, and PDO are trademarks or registered trademarks of NeXT
Computer, Inc. UNIX and OPEN LOOK are registered trademarks of UNIX
System Laboratories, Inc., a wholly-owned subsidiary of Novell, Inc.
All other product names mentioned herein are the trademarks or
registered trademarks of their respective owners.
All SPARC trademarks, including the SCD Compliant Logo, are
trademarks or registered trademarks of SPARC International, Inc.
SPARCstation, SPARCserver, SPARCengine, SPARCworks, and SPARCompiler
are licensed exclusively to Sun Microsystems, Inc. Products bearing
SPARC trademarks are based upon an architecture developed by Sun
Microsystems, Inc.
The OPEN LOOK and Sun Graphical User Interfaces were developed by
Sun Microsystems, Inc. for its users and licensees. Sun acknowledges
the pioneering efforts of Xerox in researching and developing the
concept of visual or graphical user interfaces for the computer
industry. Sun holds a non-exclusive license from Xerox to the Xerox
Graphical User Interface, which license also covers Sun's licensees
who implement OPEN LOOK GUIs and otherwise comply with Sun's written
license agreements.
X Window System is a trademark and product of the Massachusetts
Institute of Technology.
THIS PUBLICATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, OR NON-INFRINGEMENT.
THIS PUBLICATION COULD INCLUDE TECHNICAL INACCURACIES OR
TYPOGRAPHICAL ERRORS. CHANGES ARE PERIODICALLY ADDED TO THE
INFORMATION HEREIN; THESE CHANGES WILL BE INCORPORATED IN NEW
EDITIONS OF THE PUBLICATION. NEXT COMPUTER, INC. OR SUN
MICROSYSTEMS, INC. MAY MAKE IMPROVEMENTS AND/OR CHANGES IN THE
PRODUCT(S) AND/OR THE PROGRAM(S) DESCRIBED IN THIS PUBLICATION
AT ANY TIME.