The personal area network that radiates from the mobile
devices we each carry will allow us to reach out to network nodes located in
shopping malls, hotels, and airports, and connect us to data bases and
information sources that we encounter while on the go. Devices based on PalmOSE/span>,
Windows CEEPocketPCE/span>, JavaE/span>
and other platforms will require communication with devices built on dissimilar
operating platforms. They will need to communicate with network servers based on
Unix, Linux®, Windows®
and other operating environments.
Service discovery is needed to make all this happen automatically. Service discovery enables disparate devices to communicate their functional capabilities to each other, while also providing the requester and the located service a means for entering into a relationship.
There are a myriad of service discovery protocols available today, but a successful service discovery technology must contain certain design and functionality attributes in the following areas:
·
Capability
Description
·
Discovery
Protocol
·
Discovery
Technique
·
Utilization
Capability Description provides a common way of
describing the functions provided by devices, applications, and services. For
best results, the capability description must be extensible in two ways. First,
the description must provide a means for a product manufacturer to add new
attributes that are specific to the manufacturer’s implementation. The
capability description must also include a mechanism that allows descriptions of
new functions that have not yet been thought of to be supported.
Rather than developing unique capability descriptions,
Salutation adopts the capability semantics already standardized by the industry.
For example, Salutation adopted the description of printing from the Printer MIB.
Salutation will continue this approach to capability definition. In fact, as the
Universal Plug and PlayE/span> (UPnPE/span>)
Forum releases the common capability semantics derived in XML syntax, Salutation
will incorporate these into its platform and protocol-independent approach.
Another common trait of service discovery is the
discovery protocol itself, which consists of the messages sent between the
requester and other components on the network. The most important aspect of this
trait is independence from the transmission protocol. In a complex network,
multiple transmission protocols may be operating simultaneously. In such
configurations, a discovery protocol that can ride on top of all of these
different transmission protocols will provide better overall service than a
discovery protocol that is tightly integrated with a specific transmission
protocol.
Salutation is designed for pervasive, dynamic and
heterogeneous networking, where the discovery solution must be separate from
network protocols. Unlike UPnP, which relies on HTTP and TCP/IP, and Jini, which
relies on Remote Method Invocation and a Java Virtual Machine, the unique
Salutation design sits above the protocol layer, binding to it through a
transport manager.
Salutation has been designed such that it can easily
leverage virtually any network protocol. Many vendors in the office automation
space currently ship Salutation enabled products that utilize TCP/IP. Salutation
software has also been implemented using IrDA. The Bluetooth SIG has
incorporated Salutation has part of their service discovery and others in
Salutation’s developer community plan on leveraging other transmission
protocols in conjunction with Salutation.
Capability description and discovery protocol combine to
provide the tools for discovery. Basic discovery techniques consist of the needs
of the requester being compared against the attributes of other network
resources. A match results in discovery. As simple as this appears, the
discovery technique may be implemented in several ways from having the requester
review returned results for matching attributes, to having the service itself
search for a match, or using an intermediary such as directory that collects and
registers capability information about its different network resources. The best
solution is to provide a service discovery technique that supports all of these
approaches, giving the component designer the flexibility to join any type of
discovery network.
Jini, with its look-up table, is primarily a
directory-centric approach. UPnP uses its Simple Service Discovery Protocol (SSDP),
which to some degree also depends on a directory service. Salutation can support
the full range of network configurations from peer-to-peer to directory-centric.
The innovative design allows the requester to structure the discovery protocol
to be as chatty or bit-conservative as required. Therefore, Salutation enables
you to leverage a directory to gather the characteristics of network resources,
or rely on the client to locate a resource that meets a specific set of
capabilities.
Once the above techniques have been used to find
required services, the next step is to utilize those services that have been
found. As before, a technique independent of transmission protocol is needed to bind
to discovered services. The simplest approach is to provide a means of opening a
virtual data pipe between the requester and the discovered service. This assumes
that the requester knows how to talk to the service. Typically, this
“knowledgeEis provided via a device driver that runs on the requester and
generates the necessary form and format for interactions with the service.
In the dynamic network environment containing a mixture
of operating system platforms, it cannot be assumed that the requester will have
the necessary device driver. A complete service discovery solution must provide
a technique to locate and load desired device drivers. This can be done in the
same manner as the search for other network resources. That is, a requester can
search the network to find a device driver for a previously discovered printer
that is designed for the requester’s operating platform.
Another approach is to provide a standard control
language between resources. The common control language may be used to start and
stop jobs, and check job status. For simple devices, a simple control structure
may be provided which can eliminate the need for specific device drivers. For
example, a common control language can be established to turn volume on, off,
up, down and mute. As before, a common semantic definition is a necessity with a
common syntax being less important
Salutation provides a technique both for establishing a
session between requester and discovered component, and for locating and loading
device drivers. Jini supports the device driver concept by locating Java-based
proxy objects thorough its look up table directory. Salutation has no dependence
on operating environment. It can locate Java proxy objects as well as device
drivers designed for other platforms. And, as the UPnP Forum releases XML-based
control definitions, Salutation is ready to adopt them.
Salutation’s independence of operating system and transmission protocol allows a single service discovery protocol to run in multiple environments over diverse protocols. The ability to locate and load any type of device driver breaks the dependence on a specific device driver or object scheme. With Salutation, Jini proxy objects can coexist with objects and device drivers written in other code-bases.
While service discovery protocols abound, most have not
been designed to operate in a pervasive manner such that they can span the many
complex and different computing environments that exist at the workplace, on the
road, at the mall, and at home. Some service discovery protocols are too tightly
defined for a specific usage, many are limited to certain network or computing
environments, and others do not provide the needed flexibility in their
discovery approach. As a result, the products that utilize these service
discovery protocols can only operate in their own isolated technology space.
However, Salutation bridges the gap between these technology islands. The Salutation Architecture provides a royalty-free open-source service discovery solution that is independent of processor, operating system, and communication protocol. Salutation utilizes standard capability semantics and provides a means for easily introducing and recognizing new capability definitions. Salutation provides developers and users the flexibility needed to implement the best discovery method for their particular circumstance. Salutation provides the means for devices and services to easily interact and leverage the vast opportunities that exist in today’s dynamically global networks.