Distributed Objects Everywhere
| Company type | Initiative / Project |
|---|---|
| Industry | Software, Distributed computing |
| Founded | 1990 |
| Fate | Discontinued in 1996 |
| Successor | Enterprise JavaBeans |
| Owner | Sun Microsystems |
Distributed Objects Everywhere (DOE) was a longstanding initiative by Sun Microsystems aimed at establishing a distributed computing framework utilizing CORBA on the backend combined with OpenStep as the user interface. Launched in 1990, the project remained largely unrealized for several years until its 1995 debut under the name NEO. The product was briefly marketed before being discontinued in 1996 alongside OpenStep, ultimately succeeded by what is currently known as Enterprise JavaBeans.
Background
During the early 1990s, the prevailing trend involved using desktop microcomputers to access and manipulate data stored on mainframes and minicomputers. Existing approaches either required workstations to locally process extensive data sets (SQL) or shifted all computation to servers without graphical interfaces (terminal emulators).
The preferred architecture envisioned collaborative objects: client machines handling user interaction and display, while servers performed centralized processing. However, substantial disparities in operating systems and programming languages across platforms complicated implementation. Solutions tailored to specific workstation-server environments lacked portability.
Even within individual platforms, differences in languages—such as parameter passing methods, file formats, and interoperability—posed challenges. Mainframes and minicomputers often adhered to vendor-specific standards, whereas microcomputers depended on a variety of third-party programming environments without unified standards.
This issue began to be mitigated through the introduction of shared library systems designed to enhance resource efficiency by allowing multiple applications to utilize common code modules, including GUI elements. These libraries established standardized calling conventions via an interface definition language (IDL), facilitating cross-language integration on a single platform.
Building upon shared libraries, extending support for transparent remote procedure calls emerged as a natural progression toward resolving client/server development complexities. Prominent efforts in this domain included IBM's System Object Model (SOM/DSOM), NeXT's Portable Distributed Objects, Microsoft's Component Object Model (COM/DCOM), alongside various implementations of CORBA. Sun Microsystems sought to enter this competitive space, aiming to position itself as a leader in enterprise back-office solutions.
Spring, DOE, OpenStep, NEO
Sun’s approach originated from its Spring OS, which employed intercommunicating objects extensively for programming tasks. To adapt this model for Unix-like Solaris environments, an interface enabling remote access was introduced. DOE integrated an object request broker (ORB) within back-office servers to manage and route incoming requests effectively. During its development phase, CORBA emerged as a dominant industry standard; consequently, DOE’s ORB was redesigned to support CORBA interfaces, allowing interoperability between DOE and SOM components.
Sun lacked a unified desktop object programming environment. Although some platforms began offering C++ libraries, Sun’s own systems—SunOS (later renamed Solaris) and windowing systems (SunView, X)—were primarily based on 'plain C', while their newer environment, NeWS, utilized an object-oriented variant of PostScript.
To establish a complete object-oriented programming ecosystem, Sun collaborated with NeXT to create OpenStep, with the goal that OpenStep applications could invoke DOE objects hosted on Sun servers—thereby integrating front-office and back-office solutions. However, delays in OpenStep’s 1993 release postponed progress.
By the time DOE was rebranded as NEO in 1995, Sun had shifted its strategic emphasis toward the Java platform. Java became the favored client-side GUI technology, leading to the quiet abandonment of OpenStep initiatives (see Lighthouse Design). NEO was repositioned around the "Joe" framework designed to bridge Java with enterprise applications but achieved limited market penetration. Ultimately, components from both NEO and Joe were absorbed into the development of Enterprise JavaBeans.
While distributed objects and CORBA held significant prominence during the early 1990s, their appeal diminished by decade’s end. The rise of web-based applications executing entirely on servers shifted priorities away from sophisticated client-side display architectures toward lightweight GUIs built on HTML and JavaScript, commonly referred to as "Browser User Interfaces".