events contact us
Search the complete PARC site
 

Obje™ Software Architecture:
Frequently Asked Questions (FAQ)

Q. What is Obje?
A. The Obje interoperability platform enables people and companies to access and deliver information and services from anywhere, on any device, in a completely hassle-free, ad hoc manner, without having to load device drivers, worry about compatibility issues, or fretting over complicated configurations. The Obje software uses mobile code (such as Java) to enable devices to “teach” each other how to interoperate in a user-friendly way.

Q. Who will benefit, and how?
A. The most benefit will accrue to the customers of the Personal Computing (PC), Consumer Electronics (CE), and telecommunication industries. Obje-enabled devices and services will have “out of the box”, seamless interoperability, enabling people to do more with the collection of devices in the environment around them.

Q. How does it work?
A. The Obje framework specifies a few very general agreements in the form of domain-independent programmatic meta-interfaces. These meta-interfaces govern the basic functions that devices need to interoperate, and together, enable devices and services to dynamically extend the capabilities of other devices around them, to make them compatible.

All Obje devices or services, called components, implement and make use of one or more of the meta-interfaces. Together, the Obje meta-interfaces allow components to extend one another to accept new data transfer protocols, media formats, CODECs, content types, discovery protocols, physical network transports, and user interfaces. An Obje component, or client application written against the framework, automatically acquires the above dimensions of extensibility, allowing it to interoperate with new peers on the network without rewriting and without explicit software updates.

Q. What is an Obje “meta-interface”?
A. Each of the Obje meta-interfaces provides support for the most basic functions that, operating together, provide a complete context with which devices can interoperate even if they have no prior knowledge of each other.

An example of an Obje meta-interface is the Data Transfer meta-interface. When an Obje-enabled music jukebox connects to an Obje-enabled music player, the Data Transfer meta-interface establishes a network transport mechanism based on the network’s capabilities, and also establishes a media format based on the device’s capabilities and media requirements. The jukebox then “teaches” the network protocol and media format to the player, by sending a small software bundle to the player that enables it to receive and decode the music. Once the player has been “taught”, the media begins to play.

The “teaching” process is automatic and nearly imperceptible by the end-user. The protocols and media formats can be based on standards (such as FTP and MP3), can be new protocols that were not fully standardized when the player was shipped (such as MPEG4), can be custom-written based on additional requirements and constraints (such as secure streaming of copyrighted content), or can be proprietary (such as Microsoft Windows Media or Sony ATRAC3). In all cases, the Obje framework removes the software barriers that prevent user-friendly interoperation.

Q. What is an Obje “component”?
A. An Obje component is any device or service that understands the Obje meta-interfaces. Just about any digital network device or service can become an Obje component.

Examples of components include: Music players, video displays, storage devices, and digital cameras. Furthermore, some physical devices will contain more than one component; such devices include: PCs, mobile phones, and PDAs, which typically contain displays, storage, and other resources.

Q. What devices, protocols, etc., does the Obje platform support?
A. The Obje framework can be implemented in virtually any digital device, and because the framework can easily “learn” new functionality, it can support virtually any protocol or media format as long as the underlying hardware has enough computing resources to support their execution.

Q. What virtual machines, CPU, memory, or other overhead does the Obje platform require?
A. The Obje framework requires the ability to execute mobile code (such as a Java Virtual Machine if using Java mobile code). Although this capability must reside somewhere on the network, it does not need to be present on every device; in fact, most devices do not need to contain the platform. For example, devices that supply content need not have this capability.

To further minimize the need and associated costs of providing a mobile code execution platform, the Obje architecture allows devices to “proxy” for other, less computing-capable devices. Therefore, in a typical deployment, a desktop computer can provide mobile code execution services for other attached devices, such as speakers, digital cameras, printers, scanners, and so forth. This allows the Obje platform to be deployed easily and inexpensively in networks in which only one device is capable of executing mobile code.

Q. Can Obje-enabled devices talk to non-Obje-enabled devices? How?
A. Yes. The Obje architecture allows Obje-enabled devices to “proxy” non-Obje-enabled devices. For example, in a typical configuration, a desktop computer will “proxy” all attached devices such as printers, scanners, digital cameras, etc., by presenting them as Obje devices on the network, and therefore making them available to other Obje-enabled devices and services.

Q. How is the Obje interoperability platform different from UPnP? Jini?
A. The key difference between the Obje technology and other approaches to interoperability is that Obje does not require prior agreement on domain specific interfaces—the protocols, encodings, and standards used to communicate with specific types of devices. Other technologies, including UPnP, Jini, HAVi and Bluetooth, each define specialized interfaces for each new type of device: Bluetooth defines “profiles” for phones, headsets and printers; Jini defines APIs for printers and cameras; the UPnP consortium defines interfaces for audio/visual devices, scanners and home appliances; HAVi defines APIs for DVD and CD players, printers, cameras and TVs.

The problem with such approaches is that software must be recoded to address each specific type of device that it is expected to work with. For example, an application written to use UPnP media servers will not be able to use UPnP scanners (much less devices implemented under other standards) without re-implementation.

With Obje, devices and applications are written once, against a small, fixed set of meta-interfaces, which allow them to acquire any needed communication capabilities at runtime. These meta-interfaces abstract the protocols and communication standards used by specific devices so that, at runtime, a device can provide its communication specifics to the entity that wants to use it, with no reprogramming of existing services. This allows users and manufacturers to “recombine” devices and services at will, without waiting for slow-moving standards bodies. This ability is unique to Obje.

Q. Can an Obje device work with UPnP devices?
A. Yes. From a UPnP perspective, support for Obje interoperability looks like “just another protocol” that each participating device supports. The extensibility to new protocols and formats occurs after the UPnP portion of connection negotiation and setup has concluded. This seamless coexistence with other approaches to UPnP compatibility means that the Obje technology can be adopted by a single company or a small set of cooperating partners to provide an enhanced experience of interoperability within a family of products while still maintaining UPnP interoperability with products from competing vendors.

Q. What is the relationship between “Speakeasy” and “Obje”?
A. “Speakeasy” was an internal-only project name that was also used on various research publications. The Obje interoperability platform is based on the same research.

Q. How do I pronounce “Obje”?
A. Phonetically, “Obje” is pronounced OHB-JAY’

Q. What does an equipment manufacturer or service provider need to do to Obje-enable a device, service, or product line?
A. Please contact us for co-development and licensing information.

 

Obje is a trademark of Palo Alto Research Center Incorporated

BUSINESS CONTACT
Mark Grandcolas
Director of Business Development, Computing Science Laboratory
650-812-4429
RELATED INFORMATION

Obje Overview

Obje Meta-interfaces

NEWS AND PUBLICATIONS

Obje Interoperability Framework (whitepaper, pdf)

Wireless Networking Everywhere, PC Magazine

The Almanac: Mobile/Wireless, ComputerWorld

Designing for Serendipity: Supporting End-User Configuration of Ubiquitous Computing Environments

The Case for Recombinant Computing

   

  (Logo/Homepage) PARC - Palo Alto Research Center

Copyright © 2002-2007 Palo Alto Research Center Incorporated. All Rights Reserved.
PARC, the PARC Logo, AspectJ, DataGlyph, Obje, Silx, StressedMetal, and ClawConnect
are trademarks or registered trademarks of Palo Alto Research Center Incorporated.