Jini and JavaSpaces: the B2B Dark Horse?by Robert Flenner
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.
Pages: 1, 2