Distributed Objects Everywhere
   HOME

TheInfoList



OR:

Distributed Objects Everywhere (DOE) was a long-running
Sun Microsystems Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the ...
project to build a
distributed computing A distributed system is a system whose components are located on different computer network, networked computers, which communicate and coordinate their actions by message passing, passing messages to one another from any system. Distributed com ...
environment based on the
CORBA The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sys ...
system in the 'back end' and
OpenStep OpenStep is a defunct object-oriented application programming interface (API) specification for a legacy object-oriented operating system, with the basic goal of offering a NeXTSTEP-like environment on non-NeXTSTEP operating systems. OpenStep was ...
as the user interface. First started in 1990 and announced soon thereafter, it remained
vaporware In the computer industry, vaporware (or vapourware) is a product, typically computer hardware or software, that is announced to the general public but is late or never actually manufactured nor officially cancelled. Use of the word has broade ...
for many years before it was finally released as NEO in 1995. It was sold for only a short period before being dropped (along with OpenStep) in 1996. In its place is what is today known as
Enterprise JavaBeans Jakarta Enterprise Beans (EJB; formerly Enterprise JavaBeans) is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web co ...
.


Background

In the early 1990s the 'next big thing' in computing was to use desktop
microcomputer A microcomputer is a small, relatively inexpensive computer having a central processing unit (CPU) made out of a microprocessor. The computer also includes memory and input/output (I/O) circuitry together mounted on a printed circuit board (PC ...
s to display and edit data being provided by
mainframes A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterprise ...
and
minicomputer A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold at a much lower price than mainframe and mid-size computers from IBM and its direct competitors. In a 1970 survey, ...
s. Although a number of methods for this sort of access already existed, the division of labor was not at all even. For instance, SQL required the workstation to download huge data sets and then process them locally, whereas use of
terminal emulator A terminal emulator, or terminal application, is a computer program that emulates a video terminal within some other display architecture. Though typically synonymous with a shell or text terminal, the term ''terminal'' covers all remote termin ...
s left all of the work to the server and provided no
GUI The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
. It seemed that the proper split of duties would be to have a cooperative set of objects, the workstation being responsible for display and user interaction, with processing on the server. Standing in the way of this sort of solution was the massive differences in
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
s and
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
s between platforms. While it might be possible to build such a system that would work on any one combination of workstation and server, the same solution would not work on any other system. Oddly, the differences between any two
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
s on a single platform was almost as great. Each language had its own format for passing parameters into
procedure call In computer programming, a function or subroutine is a sequence of program instructions that performs a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed. Functions may ...
s, the file formats that they generated were often quite different. In general terms, it was not always possible to write different portions of a program in different languages, although doing so often has real utility. The problem was not so acute on
minicomputer A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold at a much lower price than mainframe and mid-size computers from IBM and its direct competitors. In a 1970 survey, ...
s and mainframes where the vendor often specified standards for their libraries, but on microcomputers the programming systems were generally delivered by a variety of 3rd party companies with no interest in standardization. Nevertheless, this problem was being addressed in the early 1990s through the introduction of various
shared library In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and subr ...
systems. These were actually intended to ease resource use on smaller platforms, by allowing a number of programs using a common resource, like the GUI, to share a single copy of code instead of each loading a separate copy into memory. As a side effect of being able to be called from many programs, these systems also defined a standard way to call them, using an
interface definition language interface description language or interface definition language (IDL), is a generic term for a language that lets a program or object written in one language communicate with another program written in an unknown language. IDLs describe an inter ...
, or IDL, to allow any language on the platform to understand the code inside the library. Extending these systems to support
remote procedure call In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared network), which is coded as if it were a normal (l ...
s behind the scenes was seen as a natural evolution, providing a solution to the client/server programming problem. At the time there were a number of major projects to deliver such a system, including IBM's
System Object Model In computing, the System Object Model (SOM) is an Object-oriented programming, object-oriented shared library system developed by IBM. DSOM, a distributed version based on CORBA, allowed objects on different computers to communicate. SOM defin ...
(SOM/DSOM),
NeXT Next may refer to: Arts and entertainment Film * ''Next'' (1990 film), an animated short about William Shakespeare * ''Next'' (2007 film), a sci-fi film starring Nicolas Cage * '' Next: A Primer on Urban Painting'', a 2005 documentary film Lit ...
's
Portable Distributed Objects Portable Distributed Objects (PDO) is an application programming interface (API) for creating object-oriented code that can be executed remotely on a computer network, network of computers. It was created by NeXT Computer, Inc. using their OpenStep ...
,
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
's Component Object Model (COM/DCOM) and many
CORBA The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sys ...
flavors. Sun, attempting to position itself as the future IBM in terms of backoffice support, felt they had to attack this market as well.


Spring, DOE, OpenStep, NEO

Sun's solution was based on work in their
Spring Spring(s) may refer to: Common uses * Spring (season), a season of the year * Spring (device), a mechanical device that stores energy * Spring (hydrology), a natural source of water * Spring (mathematics), a geometric surface in the shape of a ...
operating system, which used intercommunicating objects for almost all programming tasks. Modifying this to work under a 'traditional' Unix like Solaris was not all that difficult, although Unix makes the assumption that all programs run locally, and an interface for remote access had to be added. For this, DOE added an
object request broker In distributed computing, an object request broker (ORB) is a middleware which allows program calls to be made from one computer to another via a computer network, providing location transparency through remote procedure calls. ORBs promote interop ...
(ORB) that ran on the backoffice servers, listening for DOE requests and handing them off to the proper program to be handled. During development, CORBA became a key
buzzword A buzzword is a word or phrase, new or already existing, that becomes popular for a period of time. Buzzwords often derive from technical terms yet often have much of the original technical meaning removed through fashionable use, being simply used ...
in the industry. This prompted a delay while the ORB was re-engineered for CORBA support. Under the CORBA model, different objects, like those from DOE or SOM, would be able to interact by sharing a common interface. A bigger problem for Sun is that they had no integrated desktop object programming solution. Although
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
object libraries were becoming common on some platforms, their own
SunOS SunOS is a Unix-branded operating system developed by Sun Microsystems for their workstation and server computer systems. The ''SunOS'' name is usually only used to refer to versions 1.0 to 4.1.4, which were based on BSD, while versions 5.0 and l ...
(later known as
Solaris Solaris may refer to: Arts and entertainment Literature, television and film * ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem ** ''Solaris'' (1968 film), directed by Boris Nirenburg ** ''Solaris'' (1972 film), directed by ...
) operating system and associated
SunView SunView (Sun Visual Integrated Environment for Workstations, originally SunTools) is a discontinued windowing system from Sun Microsystems developed in the early 1980s. It was included as part of SunOS, Sun's UNIX implementation; unlike later U ...
and X window systems were 'plain C' based, while their newer
NeWS News is information about current events. This may be provided through many different Media (communication), media: word of mouth, printing, Mail, postal systems, broadcasting, Telecommunications, electronic communication, or through the tes ...
windowing environment was based on a network-extensible object oriented dialect of
PostScript PostScript (PS) is a page description language in the electronic publishing and desktop publishing realm. It is a dynamically typed, concatenative programming language. It was created at Adobe Systems by John Warnock, Charles Geschke, Doug Br ...
. In order to supply a comprehensive and flexible object programming solution, Sun turned to NeXT and the two developed
OpenStep OpenStep is a defunct object-oriented application programming interface (API) specification for a legacy object-oriented operating system, with the basic goal of offering a NeXTSTEP-like environment on non-NeXTSTEP operating systems. OpenStep was ...
. The idea was to have OpenStep programs calling DOE objects on Sun servers, providing a backoffice-to-frontoffice solution on Sun machines. OpenStep was not released until 1993, further delaying the project. By the time DOE, now known as NEO, was released in 1995, Sun had already moved on to
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
as their next big thing. Java was now the GUI of choice for client-side applications, and Sun's OpenStep plans were quietly dropped (see
Lighthouse Design Lighthouse Design Ltd. was an American software company that operated from 1989 to 1996. Lighthouse developed software for NeXT computers running the NeXTSTEP operating system. The company was founded in 1989 by Alan Chung, Roger Rosner, Jonatha ...
). NEO was re-positioned as a Java system with the introduction of the "Joe" framework, but it saw little use. Components of NEO and Joe were eventually subsumed into
Enterprise JavaBeans Jakarta Enterprise Beans (EJB; formerly Enterprise JavaBeans) is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web co ...
. Although distributed objects, and CORBA in particular, were the "next big thing" in the early 1990s, by the second half of the decade interest in them had essentially disappeared. Web-based applications running entirely on the server became the new "next big thing", and the need for a powerful display system on the client side faded, largely replaced by lightweight GUIs based on
HTML The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
and
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
("
Browser User Interface A browser user interface (or BUI) is a method of interacting with an application, typically hosted on a remote device, via controls presented within a web browser. This is an alternative to providing controls via a separate application with a dedic ...
s").


References


External links

* {{cite journal , last1=Shah , first1=Rawn , date=1996-06-01 , df=mdy , url=https://www.infoworld.com/article/2077168/distributed-object-computing-with-joe-and-neo.html , title=Distributed Object Computing with Joe and NEO , journal=
JavaWorld ''InfoWorld'' (abbreviated IW) is an information technology media business. Founded in 1978, it began as a monthly magazine. In 2007, it transitioned to a web-only publication. Its parent company today is International Data Group, and its siste ...
, accessdate=2020-07-15 Common Object Request Broker Architecture Object-oriented programming Application programming interfaces Sun Microsystems software Vaporware