Jini and JavaSpaces: the B2B Dark Horse?
by Robert Flenner
02/01/2001
Much has been written lately of e-markets, auctions, supply chains,
and integrated B2B networks. The ability to do business-to-business
(B2B) e-commerce over public networks is all the rage. Forrester and
other industry analysts frequently project growth rates in excess of
100%, of markets measured in billions of dollars. It's no wonder
vendors and software providers are releasing B2B solutions daily. Most
solutions have focused on application servers, commerce servers,
customer relationship, and content management systems.
In this article we focus on applying Jini technology to B2B
technical challenges by examining:
- dynamic service and trading partner discovery;
- leasing and the need for self-healing networks;
- distributed transactions;
- workflow automation and integration; and
- agents of collaboration.
Dynamic service and trading partner discovery
UDDI and ebXML
Universal Description, Discovery and
Integration is an initiative of IBM, Microsoft, and Ariba to promote
B2B e-commerce by providing a framework for trading partners to
publish and find business service interfaces. The UDDI defines three
primary components.
- Registry for service providers to publish services and products offered
- Service broker to maintain the registry
- Service requester that uses the broker to find products and services
 |
Figure 1. The
UDDI defines three primary components. |
Service requesters can search by industry code, products and
services offered, and geographic location. Web Service Definition
Language (WSDL) is an XML schema that describes service interfaces,
implementation details, access protocols, and contact endpoints
between trading partners. These definitions are published and
exchanged with service brokers. See uddi.org for more information.
The Electronic Business XML (ebXML) initiative is being defined by
the United Nations body for Trade Facilitation and Electronic Business
(UN/CEFACT) and Organization for the Advancement of Structured
Information Standards (OASIS). They've also begun a project to
standardize XML business specifications.
The most important components of the ebXML architecture are the
Registry and the Repository. The Registry provides access services,
information models, and reference implementation information. The
repository provides the physical backend information store. The
repository contains Document Type Definitions (DTD) and schemas that
are retrieved by the registry for conducting e-commerce transactions
using ebXML. The ebXML Messaging Service provides for the exchange of
ebXML messages between trading partners over various transfer
protocols (SMTP, HTTP/S, FTP). See ebxml.org for more information.
 |
Figure 2. Components of the ebXML architecture.
|
Both UDDI and ebXML admit the importance of a "yellow pages"
structure to B2B system integration. Both approaches involve a
registry or broker to answer questions like
- what services are available?
- who can provide the service?
- where is the service located?
- how is the service invoked?
- what are the technology requirements?
Both approaches use XML to define and specify the answers. There's
even a trading partner markup language (tpaML) being defined to
standardize the information exchanged. Each approach requires the
implementation of a well-known interface at a well-known location. In
addition a considerable amount of effort is required to document the
interface and to exchange the necessary information to conduct B2B
e-commerce.
However, what if you want to break out of the yellow pages
paradigm? What if the service you need isn't in the phone book? Do
you call the operator?
Jini discovery and lookup
Like UDDI and ebXML, Jini supports
the service discovery. Jini network technology provides a
network-centric view of services and service delivery. Services are
broadly defined: from applications to mobile appliances and anything
in between that can exist on a network. Clients can request services
without prior knowledge of where or what may ultimately satisfy the
request. Services take on a life of their own in Jini networks. The
goal is to minimize the amount of human intervention and
administration required to keep the Jini network satisfied.
Discovery is the process used to find registries on the Jini
network. The process may use a well-known registry address, like the
approaches above, or it may use a more dynamic discovery process
(a multi-cast protocol).
Lookup is the process used to find a particular service from the
registry and learn how to use that service. You can search the lookup
service for a particular object type. The lookup service understands
Java type semantics, allowing support of interfaces and class
inheritance hierarchies. It also provides the basis for a system to
system or agent to software agent negotiation process.
The lookup service can be conceived as containing any number of
service items. Each service item can have attributes associated with
it. For instance like UDDI, they may include industry codes,
implementation details, access protocols, and geographic
locations. These attributes can be used to refine the search for a
specific service.
 |
Figure 3. The lookup service can be
conceived as containing any number of service items.
|
In addition a proxy for the service is available that knows how to
interface with the service. The code is downloadable to the client
requesting the service. Downloadable service proxies are one of the
key differences between other yellow-page-like services and Jini. In
effect not only have you located a business service, but you've been
transported there, conducted commerce, all while never having left
your place of business.
 |
Figure
4. Downloadable service proxies are one of the key differences between
other yellow-page- like services and Jini. |
So while the other approaches to service definition are being
satisfied through agreed-upon XML schemas, Jini discovery and lookup
provides a dynamic alternative to finding and interacting with B2B
service providers. Jini itself could be used to bootstrap the process
of finding UDDI and ebXML registries.