Portable Distributed Objects

Portable Distributed Objects

Portable Distributed Objects, or PDO, is a programming API for creating object-oriented code that can be executed remotely on a network of computers. It was created by NeXT Computer, Inc. using their OpenStep system, whose use of Objective-C made the package very easy to write. It was characterized by its very light weight and high speed in comparison to similar systems such as CORBA.

Versions of PDO were available for Solaris, HP-UX and all versions of the OPENSTEP system. A version that worked with Microsoft OLE was also available called "D'OLE", [cite web
url = http://findarticles.com/p/articles/mi_m0EIN/is_1996_Jan_15/ai_17811753
title = NeXT Ships D'OLE Release 3.5 and Enterprise Objects Framework 1.1 for Windows NT
accessdate = 2008-02-08
author =
date = January 15, 1996
work = Business Wire
publisher = Business Wire
] allowing distributed code written using PDO on any platform to be presented on Microsoft systems as if they were local OLE objects.

PDO was one of a number of distributed object systems created in the early 1990s, a design model where "front end" applications on GUI-based microcomputers would call code running on mainframe and minicomputers for their processing and data storage. Microsoft was evolving OLE into the Component Object Model (COM) and a similar distributed version called DCOM,Fact|date=February 2007 IBM had their System Object Model (SOM/DSOM), Sun Microsystems was promoting their Distributed Objects Everywhere, and there were a host of smaller players as well. With the exception of the limited functionality in COM,Fact|date=February 2007 most of these systems were extremely heavyweight, tended to be very large and slow, and often were very difficult to use.

PDO, on the other hand, relied on a small number of features in the Objective C runtime to handle both portability as well as distribution. The key feature was the language's support for a "second chance" method in all classes; if a method call on an object failed because the object didn't support it (normally not allowed in most languages due to strong typing), the runtime would then bundle the message into a compact format and pass it back into the object's forwardInvocation method.

The normal behavior for forwardInvocation was to return an error, including details taken from the message (the "invocation").Clarifyme|date=March 2008 PDO instead supplied a number of new objects with forwardInvocation methods that passed the invocation object to another machine on the network, with various versions to support different networks and platforms. Calling methods on remote objects was almost invisible; after some network setup (a few lines typically) PDO objects were instantiated locally and called the same way as any other object on the system. The PDO object then forwarded the invocation to the remote computer for processing and unbundled the results when they were returned.

In comparison with CORBA, PDO programs were typically 1/10th or less in size; it was common for NeXT staffers to write into magazines showing how to re-implement a multi-page CORBA article in perhaps 15 lines of code. [cite web
url = http://www.ddj.com/architect/184409611
title = Implementing Distributed Objects
accessdate = 2008-02-08
author = Ernest N. Prabhakar
date = August 01, 1995
work = Dr. Dobb's Journal
publisher = CMP Technology
] From a programming standpoint, there was nearly nothing as easy to use as PDO.

However, PDO was also reliant entirely on Objective C to function. This was a price most were unwilling to pay, as at the time C++ was more widely used and the effort to shift codebases to an entirely new language and paradigm was considered too onerous.Fact|date=February 2007 PDO never saw much use, and NeXT's emphasis shifted to its new WebObjects framework in 1995.

PDO continues to be used by Mac OS X programmers as a method for interprocess and interapplication communication, and for communication between networked applications that only need compatibility with other Mac OS X applications.

In addition to the OS X platform, there is GNUstep, which has its own implementation of Distributed Objects. [cite web
url = http://www.gnustep.org/resources/documentation/Developer/Base/ProgrammingManual/manual_7.html
title = Distributed Objects
accessdate = 2007-08-09
author = Adam Fedor
date = May 26, 2007
work = Objective-C GNUstep Base Programming Manual
publisher = GNUstep project
]

See also

* Cocoa (API)

References

External links

* [http://www.stepwise.com/Articles/Technical/TalkToMe.html PDO History]
* [http://developer.apple.com/documentation/Cocoa/Conceptual/DistrObjects/index.html Distributed Objects] — a guide by Apple


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • Distributed Objects Everywhere — (DOE) was a long running Sun Microsystems project to build a distributed computing environment based on the CORBA system in the back end and OpenStep as the user interface. First started in 1990 and announced soon thereafter, it remained… …   Wikipedia

  • Distributed shared memory — (DSM), in Computer Architecture is a form of memory architecture where the (physically separate) memories can be addressed as one (logically shared) address space. Here, the term shared does not mean that there is a single centralized memory but… …   Wikipedia

  • Portable Document Format — PDF redirects here. For other uses, see PDF (disambiguation). Portable Document Format Adobe Reader icon Filename extension .pdf Internet media type application/pdf application/x pdf application/x bzpdf application/x gzpdf …   Wikipedia

  • Portable, Extensible Toolkit for Scientific Computation — infobox software name = PETSc latest release version = 2.3.3 latest release date = 23 May 2007 operating system = Linux, Unix, Mac OS X, Windows license = own compatible with [GNU General Public Licenc [e|GPL (version 2)] language = C (main… …   Wikipedia

  • Portable object (computing) — In distributed programming, a portable object is an object which can be accessed through a normal method call while possibly residing in memory on another computer. It is portable in the sense that it moves from machine to machine, irrespective… …   Wikipedia

  • Library (computing) — This article is about the programming concept. For Windows 7 Libraries, see Features new to Windows 7#Libraries. Illustration of an application which uses libvorbisfile to play an Ogg Vorbis file In computer science, a library is a collection of… …   Wikipedia

  • OpenStep — s desktop and Workspace Manager OpenStep was an object oriented application programming interface (API) specification for an object oriented operating system that used a non NeXTSTEP operating system as its core, principally developed by NeXT… …   Wikipedia

  • 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, Jonathan Schwartz, Kevin… …   Wikipedia

  • IBM System Object Model — For the similarly named executable file format in the HP UX operating system, see System Object Model (file format) In computing, the System Object Model (SOM) is an object oriented shared library system developed by IBM. A distributed version… …   Wikipedia

  • PDO — abbr. Portable Distributed Objects (NeXT) comp. abbr. Portable Distributed Objects (Next) …   United dictionary of abbreviations and acronyms

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”