In a world of increased
connectivity, web services offer solutions for some of the challenges
associated with the dynamic partnering behaviors required by many
of today's distributed systems. Web services allow authorized entities
(including individuals, corporations, and automated agents) to access
systems defined by other parties scattered across the globe. In
support of this powerful model of interaction, we have developed
a layer on the top of the TSpaces architecture to simplify the definition,
discovery, and execution of web services.
Since the services suite
is built on top of the existing TSpaces architecture, it is compatible
with TSpaces and all applications developed using TSpaces. It
enhances TSpaces programming capabilities towards the development of service-based
applications. In our model, a service is a process (or agent) that
has a very specific task. A typical service will read (or take)
zero or more tuples, do some computation, and write zero or more
tuples back to one or more tuplespaces. The TSpaces services suite
assists both the development and use of web services. It is based in standards
for service discovery (UDDI), description (WSDL), and invocation (SOAP).
We have developed a UDDI broker
that conforms with the UDDI specification v 1.0. UDDI is based on XML
and defines an API for retrieving information about business and the
web services they provide.UDDI is composed of two different API's: publisher
and inquiry. The publisher API allows for the registration of business and
web services in a global directory. It provides methods such as "save_bussiness"
and "save_service". Once this information is registred it can be retrieved through
the inquiry API, which provides methods for locating the available services and for
retrieving information about how to invoke them. The UDDI broker allows a client to
dynamically determine if a service it needs is available, discover how it works, and
invoke it. The UDDI broker is a component of the TSpaces services suite
available from alphaworks.
As part of the TSpaces
services suite, we will also provide a set of tools for describing and
developing web services and several sample services.
One of the sample services to be released in the
first version of the TSpaces services suite is the TSpaces printing service. It is a universal
print solution that enables printing from any computer to any printer. The idea is to use TSpaces
to connect all the printers, computers, and file conversion services together, so that users can
discover all the printers in the network and send print jobs to them. If the file to be printed is
in a format that cannot be directly handled by the chosen printer, the printing program will automatically
do the necessary conversion through a file conversion service. Essentially, TSpaces printing will solve the
printing problems caused by the diversity of computers (workstations, PCs, handheld devices), operating systems
(flavors of UNIX and Linux, Windows, OS/2), file formats (PostScript, PDF, HTML, MS Word), and printer languages
TSpaces printing has several advantages over conventional printing
mechanisms on Windows and UNIX systems. On Windows, a user must install the drivers for all the printers he wants
to use, which is troublesome. The benefit of this, though, is that the user can get access to printer specific
features. For the LPD/LPR protocol on UNIX, driver installation is not required on the user machine, but the user
does not get access to printer specific features. TSpaces printing gives the user the best of both worlds. By
maintaining a loose coupling between clients and printers, it is not necessary for clients to load printer drivers.
A user can obtain printer information from an XML file passed through the print space. When new printers are added,
the client software will automatically find it. Moreover, since TSpaces also connects services, powerful transformations
can be achieved in the printing process. In the future, advanced features will also be implemented besides file format
transformation. For example, a service can filter out all the color printers, or find the printer located closest to the user.
All of these make printing much easier and pleasant.