|
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.
|
 |
| BUSINESS
CONTACT |
Mark Grandcolas
Director of Business Development, Computing Science Laboratory
650-812-4429 |
 |
|