TSpaces Services Suite: Automating the Development and
Management of Web Services
Marcus Fontoura, Toby Lehman, Yuhong Xiong
Hewlett-Packard Laboratories
Dwayne Nelson, Thomas Truong
**** **** **ll Road
IBM Almaden Research Center
Palo Alto, CA 94304
650 Harry Road San Jose, CA, 95120, USA
******.*****@**.***
********@*******.***.***
is an infrastructure and a set of tools for the development and
ABSTRACT
management of Web services. From the infrastructure point of
Web services allow authorized entities (including individuals,
view, TSSuite can be viewed as a new layer over TSpaces [24]
corporations, and automated agents) to employ software
that extends the tuplespace model [6] to handle Web services as
components created by other parties scattered across the globe. In
first class citizens. From the tools viewpoint, TSSuite automates
support of this powerful model of interaction, we have designed
the development and management of Web services based on Java.
and implemented an infrastructure and a set of tools to simplify
TSSuite is based on accepted industry standards for Web services,
the development and management of Web services. This
such as UDDI [14], WSDL [23], and SOAP [21].
infrastructure and these tools form the TSpaces Services Suite
(TSSuite). This paper shows how TSSuite supports the Web The rest of this paper is organized as follows. Section 2 presents
services model, and it describes the design and functionality of the an overview of Web services and the technologies used to
main TSSuite components. implement them. Section 3 describes some related efforts in the
area of middleware and tool support for Web services. Section 4
Categories and Subject Descriptors discusses technical details, including a TSpaces overview and the
D.2.3 [Software Engineering]: Design Tools and Techniques design and functionality of the main TSSuite components. Section
modules and interfaces, object-oriented design methods. 5 shows the TSSuite in action through a small example: a file type
conversion service that converts PDF file to Postscript (PS).
D.2.6 [Software Engineering]: Programming Environments
Finally, Section 6 concludes the paper and points out our future
integrated environments, interactive environments.
research directions.
General Terms 2. BACKGROUND AND TERCHNOLOGY
Design, Standardization, Languages.
OVERVIEW
2.1 Background and terminology
Keywords
The core entities related to Web services are services, service
Web services, Tuplespaces, Service Development, Service
interfaces, service brokers, and clients [11], as shown in Figure 1.
Maintenance, Development Environments.
A service is a software application or hardware device that can be
invoked or used across a network. Each service implements one or
1. INTRODUCTION more service interfaces, which are described through service
The evolution of distributed, Internet-based applications has description languages. A service interface describes the set of
reached another milestone: Web services. Web services represent operations supported by the service. A service broker is a
a new level of inter-program (and inter-component) interaction registry where services can be published and be discovered by the
and behavior, as they provide a way to build large, flexible clients. In fact, a broker is just a special kind of service that
applications dynamically, from a set of standard independent provides operations for registering and discovering services. A
software parts. Recently several standards and protocols for Web client is a software application that uses one or more services. In
services have been proposed [8], [9], [13], [14], [19], [21], [22], general, a client uses a service broker to discover the appropriate
[23] and Web services have gained a lot of attention by both information about the service (e.g. its interface, address that it can
researchers and practitioners. However, there is still the need for be invoked) before it can invoke the service directly or through an
infrastructures and tools that support the Web services paradigm. intermediary. A client can itself be a service. In this case it is a
Infrastructures for the development and management of Web composite service, since it uses one or more services as its
services should be based on widely accepted standards and components.
interfaces, so that the services from different vendors can inter-
From the process perspective, the core activities related to the
operate. Tools should assist service developers and providers in
development and management of Web services are creation,
automating administrative tasks, such as service registration.
deployment, configuration, and monitoring. Service creation
This paper presents the TSpaces Services Suite (TSSuite), which involves the implementation of the service software and the
specification of its interface in a service description language (no
order is implied here, and these activities are usually done
Copyright is held by the author/owner(s).
concurrently). During implementation, the activity of creating a
WWW 2003, May 20-24, 2003, Budapest, Hungary.
client by integrating services together is called service
ACM xxx.
composition. Service deployment includes the task of making the 2.2 Standards and technologies
service available in the Internet, i.e., binding the service to a Numerous standards and technologies are cooperating and
physical address where it can be invoked, and the task of competing in the Web services arena. For example:
registering the service in one or more brokers (service
The services can be implemented directly in a programming
registration). Service configuration is an optional activity in
language, such as Java, C++, or C# [19], or as components in
which service the configuration parameters are specified (e.g. the
a component-based framework, such as COM [20], CORBA
default language in a text processor service). Finally, service
[17], or Java Beans [4];
monitoring is the activity of checking the service availability and
performance. The service interface can be described using the Web Services
Description Language (WSDL) [23], or proprietary interface
Service description languages (IDLs);
The service broker can implement the standard Universal
1. Register Description, Discovery and Integration (UDDI) [14], Jini
Interfaces
discovery [3], LDAP [10], or other proprietary discovery
mechanisms;
3. Invoke
The services can be invoked remotely (the proxy approach) or
2. Discover
Client downloaded to local computer (the applet approach);
Interfaces
The communication infrastructure among the components and
Broker the associated data encoding formats include SOAP [21] and
XML [8], RMI [18] and objects, and proprietary RPC
standards.
Database of
In recent years, Java has emerged as the dominant language for
service interfaces
Web programming. Among the standards for Web services,
Figure 1. Components in Web services UDDI, WSDL, and SOAP have gained strong industry support,
Service discovery and invocation are activities that happen at and are likely to become the standard Web services stack for
runtime. Service discovery is the interaction between the client service brokering, description, and invocation, respectively. The
following section describes several initiatives for implementing
and the broker to discover services and their information. Service
the Web services model and it discusses the standards and
invocation is the interaction between the client and the service for
technologies supported by each of them.
invoking the service operations, once the client has all the
necessary information about the service.
3. RELATED WORK
To illustrate these concepts, let us suppose that a librarian wants
With its huge promise to bring Internet-based software
to buy a large volume of books. Without the support of Web
development to a new level, it is not surprising that Web services
services, she would have to go through the time consuming task of
have drawn significant attention from the major players in
searching several online bookstores for good deals before
industry. This section describes the existing efforts for the
deciding where to buy each book. On the other hand, if several
development and maintenance of Web services, highlighting their
bookstores are deployed as services, and if these services are
core functionality and their limitations.
published in one or more service brokers, the librarian s task
would be greatly simplified. She would develop a client (or use Microsoft .NET [19] is a framework and a set of developer tools
one previously developed) that would query service brokers for in Visual Studio [16] that share the same goals as TSSuite. The
discovering all services that implement a given selling book components in the framework communicate through the SOAP
interface. This service interface would provide operations for protocol. The Rapid Application Development (RAD) tools in
finding book prices and reviews, manipulating shopping carts, and Visual Studio facilitate the deployment and maintenance of
performing the actual buying transaction. During service services. Message passing between components is handled by
discovery, the brokers would return a list of all bookstore services Microsoft Message Queuing (MSMQ). Although this framework
to the client. The client could then invoke the appropriate service and toolkit is feature rich, a large portion of it is based on
operations in each of these services to select the ones that provide proprietary technologies. As of the first beta release, service
the better deals, and to actually perform the buying transactions. description using WSDL and the UDDI broker is not supported.
Instead, Web services are described using SCL (Service Contract
All interactions among the clients, brokers, and services are done
Language) and discovery is handled through a Microsoft s
programmatically, i.e., without human interference. The different
proprietary file-based mechanism called DISCO [15]. In this
systems (service, service broker, and client) are connected through
mechanism, service interface and implementation are not
some form of message passing. This kind of interaction is called
distinguished, which prevents searches for services that
system-to-system integration, which is one of the key technologies
implement a given interface. Although service composition is
supporting business-to-business (B2B) e-commerce. It allows
highlighted as a key feature in the .NET overview document, the
buyers (clients) to search for and interact with a large number of
current framework does not allow users to compose services in a
sellers (services), which would be impossible without such
straightforward way.
integration.
Sun Microsystems Jini [3] was one of the first available toolkits
for services. Jini provides service discovery, remote method
invocation, security, leasing, transactions, and events. It simplifies 4. TSSUITE INFRASTRUCTURE AND
the deployment and invocation of services and Java applications
TOOLS
in a local area network (LAN) environment. Once a Jini service
This section presents the TSSuite design and functionality,
has been discovered, it transmits its interface in the form of a Java
showing how its components work together to assist the
class that functions as a proxy. However, Jini pre-dates the
development and maintenance of Web services. Figure 2 shows
widespread acceptance of current Web service standards and,
the high-level architecture of TSSuite. It includes a UDDI broker,
therefore, is not based in any of them. This limits the benefits of
the TSpaces Service API (TSSAPI), and a set of tools. The UDDI
Jini for the Web services model, in which interoperability is a key
broker and the TSSAPI are developed as an extra layer over
factor.
TSpaces [24], extending its programmatic capabilities towards
SunONE [22] is Sun Microsystems Open Net Environment, a Web services. The other components are tools for service
product portfolio that includes tools that support the development developers and administrators and can be viewed as clients of the
of services compatible with UDDI, XML, WSDL and other TSSuite infrastructure. The following subsections provide an
standards. An example of such a tool is Forte, an integrated overview of TSpaces and each of the TSSuite components.
development environment for Java that assists service creation.
SunONE can be viewed as a peer to Microsoft s .NET or IBM s Service Tools
Visual Age [2] in that its tools are designed to make it simple for
Service Service Notify
developers to construct Web services (or clients to Web services).
However, it does not directly address the problems of service Builder Monitor Service
composition and deployment, two of the major concerns of
TSSuite.
Service Infrastructure
Hewlett Packard s e-Speak [9] is a framework and a set of
components for developing Web services. The framework
UDDI TSSAPI
provides support for service creation, deployment, and discovery.
The components provide low-level support to Web services, such
as message routing and security. E-Speak supports a wide variety
of service standards including SOAP, XML, UDDI, J2EE, .NET,
and their own J-ESI (Java E-Service Interface). However, e-Speak
does not provide an integrated environment for service
development and, like SunOne, it currently provides no support
for service composition.
Figure 2. TSSuite main components
Vinci [1], a project at IBM Research, is an infrastructure for
developing applications as a set of interacting services deployed
4.1 TSpaces overview
over a LAN. It provides support for creating fast and reliable
TSpaces [24] is a network communication buffer with database
distributed applications through service composition. Vinci
capabilities. It enables communication between applications and
prioritizes performance and reliability and, therefore, is not based
devices in a network of heterogeneous computers and operating
on any of the Web services standards. Instead, it uses proprietary
systems using the shared space concept from the Linda
protocols such as Xtalk [1], a binary representation of XML. The
programming model [6].
performance experiments described in [1] have shown that
services developed with Vinci are considerably faster then the
ones based on the standard Web services protocols. An important
point is that applications developed with Vinci can still be
deployed using TSSuite. In this case they are externalized through read
standard Web services protocols while benefiting from the high-
performance features of Vinci internally.
write
take
The Web Services Toolkit (WSTK) by IBM [11] provides a set of
tools for assisting the development of Web services and it is
compatible with the Web services protocols (SOAP, UDDI, and
WSDL). The WSTK tools automate the generation of services
from service interfaces described in WSDL (and vice-versa) and write
allow users to browse and publish information in UDDI.
However, WSTK does not provide an infrastructure for
composing, deploying, and monitoring services, and it is limited
to SOAP-based services. As will be discussed in the following
section, TSSuite and WSTK can be used together, once they
provide complementary tools.
Figure 3. TSpaces basic operations
The basic TSpaces commands are write, read, and take. The
difference between read and take is that after a take the tuple is
removed from the space while read leaves a copy of the tuple in
the space. TSpaces clients communicate asynchronously through message, one output message, or one of each (operations
shared spaces by writing, reading, and taking tuples. Each tuple is containing neither are not allowed). Messages that have no parts
a vector of Java objects. Figure 3 shows the interaction among can be used for invoking parameter-less service routines (in the
three TSpaces clients. case of input messages) or for representing service routines with
no return value (in the case of output messages). A port type is a
Tuples are not directed to any specific client, meaning that any
collection of operations. Each port type corresponds to a service
client can read (or take) any tuple, as long as it has access rights to
interface. Figure 5 shows the relationship between port types,
do so. Tuples reside on the space until someone issues a take
operations and messages, in the context of a PDF to PS
removing them or until they expire. Therefore, a client can read a
conversion service which provides two operations: configure and
tuple even if it, the client, was not alive when the tuple was
convert.
written. Clients can also register for event notifications, such as
let me know when a tuple with the following content is written to
PDF2PS Port Type
the space. When the event occurs (e.g. the specified tuple is
written) the client is notified through a callback method. Figure 4
Input
illustrates this scenario. Configure
message Operation
1. register for the
insert (i.e. write) of
Input Convert Output
message Operation message
Figure 5. TSSAPI port types, operations and messages
A port is an implementation of a port type. Each port is bound to
2. write
some service communication infrastructure. Ports are also bound
3. callback to a specific server location, which will define the access points
for invoking the service. A port is the specification of the service
implementation.
TSSAPI is a flexible architecture that allows additional
communication infrastructures through the creation of new sub-
Figure 4. TSpaces event registration mechanism classes of the Port class. Currently TSSAPI provides
implementations for TSpaces and SOAP ports. Services based on
4.2 TSpaces Service API (TSSAPI) the TSpaces port may take the advantage of asynchronous
The TSpaces Service API (TSSAPI) is a framework that simplifies communication, which may be more appropriate for some
the creation, deployment, configuration, and invocation of services1. On the other hand, SOAP is a widely accepted standard
services. TSSAPI accomplishes this by standardizing the and is independent of programming language clients can be
interfaces between services and by formalizing the types of written in any language as long as they can send XML messages.
interactions that services can support. TSSAPI handles all the The following paragraphs describe the TSpaces and SOAP ports
specifics of the several available communication infrastructures in more detail.
allowing the service developer to concentrate on the service-
3. operation =
specific code. Moreover, it frees the service developer from
4. write
having to deal with administrative tasks, such as service Service
registration. 5. take or
TSSAPI uses the WSDL vocabulary for service description. The callback
Client
core concepts in TSSPAI are operations, messages, port types, 2. callback
and ports.
1. write
An operation is a function that the service can perform, such as
input message
convert in a PDF to PS conversion service (detailed in Section 5).
output message
The operation is bound to some object and method that will do the Service activation
space
processing as required by the operation. In the PDF to PS
example, the convert operation is bound to the method convert Figure 6. Sequence of events for invoking services through
in the PDF2PS class. Operations may be invoked in response to TSpaces ports
some request, or may start in response to some service-internal or
environmental trigger. Operations produce and consume data in
the form of messages. 1
For instance, a synchronous call to a service operation that does
A message is a container used to encapsulate data going to or very long computations would block the client for a long time,
coming from an operation. Messages may contain zero or more while an asynchronous call would free the client to do other
parameters (or parts), each having a label and an object-type tasks and it would call back the client when the computation
(String, for example). An operation may contain one input is done.
Services deployed in TSpaces ports are invoked by writing tuples 4.3 TSpaces UDDI Broker
into a space, called the service activation space. The result of the The TSpaces UDDI broker is an implementation of the UDDI
operation (output message) is also written to the space. Figure 6 specification [14] that uses TSpaces as a global directory for
shows the sequence of events that happen when a service is storing Web services information. UDDI is based on SOAP/XML
invoked through a TSpaces port. TSSAPI handles the entire and defines an API for retrieving information about businesses
interaction among the client, the service, and TSpaces, including and the services they provide. UDDI is composed of two different
the registration for callbacks and the invocation of the appropriate API s: publisher and inquiry. The publisher API allows for the
service operations. registration of businesses and Web services in the global
directory. It provides methods such as save_bussiness and
In the case of the SOAP port, services are invoked through a
save_service. Once this information is registered it can be
SOAP server (TSSuite uses Apache Tomcat [12] as the SOAP
retrieved through the inquiry API, which provides methods for
server). One important point here is that all the ports in which the
locating the available services and for retrieving information
service is deployed share the same service code, as shown in
about how to invoke them. It allows a client to determine
Figure 7. Moreover, the service and the infrastructure code are
dynamically if a service it needs is available, discover how it
totally decoupled. Even when new service communication
works, and invoke it. Figure 9 illustrates the UDDI broker
infrastructures are defined, TSSAPI does not require any changes
architecture. Please note that the UDDI client can be either a
to the service code.
service, during service registration, or a client, during service
SOAP discovery.
Server
SOAP
Service
SOAP call
UDDI UDDI
call write/read
Client publish/ Broker
inquiry
callback
write
Client SOAP
Server
UDDI space
Figure 9. TSpaces UDDI broker architecture
Service activation Since all the information published in UDDI is stored in TSpaces,
space clients can use the TSpaces event registration mechanism to be
notified when certain kinds of services are published. A possible
Figure 7. Sharing the service code among different ports
scenario would be let me know when a new bike store is
TSSAPI supports service invocation through a library of service
available in California. This form of interaction with the UDDI
proxies. Each port defined in TSSAPI has a corresponding service
broker is not part of the UDDI specification and can be viewed as
proxy. Service proxies encapsulate the infrastructure-specific
a value-added service. This is a typical example where the
details necessary to invoke services. This is accomplished by a
TSpaces communication infrastructure is more appropriate than
mapping between the port invocation format (e.g. XML in SOAP,
SOAP.
tuples in TSpaces) and the TSSAPI standard format. Clients can
use the same code to invoke a service in different infrastructures, 4.4 Service Builder
only changing the line that selects the appropriate proxy. Figure 8 The Service Builder automates most of the service development
illustrates this design through UML class diagrams. and maintenance tasks. It acts as the bridge that connects the
service implementation program, the TSSAPI, and the UDDI
AbstractServiceProxy
broker. To deploy a service the user just needs to provide the
invoke implementation program and the service interface description,
which can be retrieved from UDDI. The Service Builder then
extracts the service interface from the WSDL file, finds the Java
methods in the service implementation classes, and deploys the
TSServiceProxy SOAPServiceProxy
service using the TSSAPI service description, deployment, and
invoke invoke configuration classes. Figure 10 illustrates a possible interaction
Client between the Service Builder, UDDI, and TSSAPI. Section 5
write tuple in the active
perform SOAP call
details how this component is used to assist the development of
space
Web services through a case study.
Figure 8. TSSAPI service proxies
4.5 Notify Service
Besides the support to service creation, deployment, and
invocation, TSSAPI also provides classes for handling service The Notify Service (TSSNotify) is a general-purpose mechanism
configuration, as described in detail in Section 5. for associating tuplespace events by defining rules that map
triggering conditions to actions. TSSNotify was designed to be a
low-level component that processes only tuples and tuplespaces.
However, since services can use the TSpaces communication
infrastructure, TSSNotify is capable of manipulating standardized the state of the system remains within the space (assuming the
service messages just as easily as it can create and route other TSpaces persistence option is enabled) so that the operation can
kinds of tuples. Therefore, TSSNotify can be seen as a tool for continue once TSSNotify has been restarted.
integrating (or composing) services based on the TSpaces port. TSSNotify provides a rule editor, which is a GUI that makes it
In this context, the rules specify the control flow among several easy to create and update rules. Figure 12 illustrates the rule editor
interacting services, while TSNotify takes care of performing the interface. On the left side of the panel the user can specify the
appropriate service invocations (by writing the appropriate tuples trigger and action tuples. In the intelligent print example the
in the service activation spaces). One example is the integration of trigger tuple is an event-write tuple, which means that the action
a PDF to PS file conversion service and a printing service to will be fired when a tuple that has the specified format is written
compose an intelligent print service, as shown in Figure 11. The to the space. The trigger tuple has only one field that holds the
name intelligent print is due to the fact that the file conversion file. The action tuple is also an event-write tuple, which means
will only happen if necessary. that when the action is triggered a new tuple will be written. In
this case the action tuple has also only one field, since the files are
...
...
simply copied and no extra information is added. This rule
2: Parse WSDL
specifies the move behavior described above, the file tuple is
description &
register service
copied from one space to another whenever a file is written to the
intelligent print activation space. On the right side of the screen
the user can specify the rule name and the space in which it will
Service
be stored.
Builder ...
...
During step (2), while parsing the
9. callback
WSDL description the Service
1:Search for service
Builder uses the TSSAPI classes to
descriptions Intelligent print
create port types, operations,
activation
Client
messages, etc. PDF &
Report space
1. write printer
UDDI TSSAPI
8. TSNotify rule:
2.1 TSNotify rule: move report
2.2 TSNotify
move file tuples tuples
rule: move
printer tuples
5. TSNotify rule:
Printer
move PS tuples
Figure 10. Service Builder interaction with UDDI and TSSAPI PDF PS Report
PS
A client activates intelligent print by writing a tuple with the
Print activation
PDF2PS activation
file to be printed and the information about the desired printer to space
space 7. write
the intelligent print activation space. Then, TSNotify performs
PDF2PS
two actions in parallel. It moves file information in the tuple
6. callback Service
3. callback Service 4. write
provided by the user to the PDF to PS conversion space and it
moves the printer information to the print space. If the file tuple
moved is a PDF file, as shown in Figure 11, the PDF to PS
service will be automatically invoked and the file will be
Figure 11. TSNotify application scenario: composing the
converted to PS. On the other hand, if the tuple moved is a PS
intelligent print service
file, steps 3 and 4 will not be performed since the conversion
service is invoked only in the presence of PDF tuples. In both
cases TSNotfiy will move the PS tuple to the print space, which
will automatically trigger the printing process and generate a print
report (at that point the printer information is already there, so the
print service knows which printer to use). After the report is
generated, TSNotify moves it to the intelligent print space,
generating the client notification. Note that the fact that
intelligent print is composed of two sub-services is totally
transparent to the client. Another important point is that besides
the three TSNotify rules, no code was necessary to implement this
service. The move rules are easily defined using the TSSNotify
user interface explained below. This example illustrates how
TSSuite allows the creation of arbitrarily complex services from
Figure 12. TSNotify s rule editor
the composition of simple, basic services.
4.6 Service Monitor
TSSNotify rules are stored as tuples. This provides several
benefits. First, rules that are represented as tuples are easy to Service Monitor is a visualization tool that works with TSSAPI.
duplicate and move from space to space. Furthermore, since It provides a view of service messages and it allows the user to
TSSNotify operates on rules, it is possible to create rules that, in monitor or troubleshoot service logic by viewing the service
turn, create additional rules. Finally, rules that are stored as tuples messages and their contents as they occur.
are persistent so even if the host computer crashes or loses power,
The Service Monitor can monitor several services 3. Service configuration. Sometimes a service needs to be
simultaneously. Its user interface allows users to selectively add configured before it is invoked for the first time. In the PDF to
or remove services from the list of services that are being PS conversion service for example, the implementation class
monitored. The user interface also tracks new services and it is has parameters that specify the command used to invoke
aware of services that are no longer present within the system. Ghostscript and a working directory. Parameterization makes
When a service message for a monitored service occurs, the the service implementations reusable - once the parameters are
service monitor displays the message in a table. The table s not hard coded the same service can be used in different
columns represent services and the table s rows represent contexts with different parameters. One possible solution to
messages. Selecting a message from the table displays the facilitate service configuration is to provide a graphical user
message details including the message payload and the time/date interface (GUI) in which administrators would enter values for
the message was received by the server. Figure 13 shows the the configuration parameters. However, requiring the service
Service Monitor in action. developers to build a GUI for each configurable service would
put too much burden on them. In the PDF to PS example, the
GUI code would be much longer, and harder to write, then the
wrapper code that invokes Ghostscript. Because of this, it is
desirable to have the GUI generated automatically by the
service deployment tool.
Ideally, a service developer would need to address only step 1.1,
which is the actual service implementation. The Web services
infrastructure and its surrounding tools should handle all of the
Figure 13. Using the Service Monitor to view a list of input other steps, which can be classified as administrative steps. Once
and output messages the administrative steps have been automated, deploying and
configuring a service should be as easy as installing an application
5. TSSUITE@WORK: THE PDF TO PS on a PC. TSSuite has largely achieved this goal. In the rest of this
section we describe the steps we have used to create, deploy, and
CONVERSION SERVICE
configure the PDF to PS conversion service with TSSuite.
This section describes the role of TSSuite in service creation,
We first wrote a Java class called PDF2PS.java. This class has a
deployment, and configuration through an example scenario: a file
method convert that invokes Ghostscript to do the PDF to PS
conversion service. Let us assume that we want to offer a Web
conversion. To start service deployment, we use the service
service that converts files from PDF to PS. In general, we need to
deployment tool in TSSuite, the Service Builder. Figure 14 shows
go through the following steps to get the service created,
a Service Builder dialog box asking the user to enter the link to
deployed, and configured:
the WSDL service interface and the service implementation class.
1. Service creation. The service creation activity is composed of
the service implementation (step 1.1) and the specification of
the service interface (step 1.2).
1.1 Service implementation. For the PDF to PS conversion, we
can either write a program that does the transformation or use Figure 14. Using Service Builder for deploying the conversion
some an existing application that already provides this feature. service
A well-known application that can do this conversion is
For the service interface, the WSDL file can either be provided by
Ghostscript [7]. To take advantage of this, we could simply
the user or retrieved from an UDDI broker. The first case would
write a wrapper program in Java that invokes Ghostscript.
only be used if the service is new and no interface is available in
This program would have a method convert that takes in a
UDDI. In this situation the Web Services Toolkit (WSTK) can be
PDF file as a parameter and returns a PS file.
used to extract the WSDL interface from its implementation
classes. Often the WSDL file can be found in UDDI. To perform
1.2 Interface definition. If a service is based on an accepted
the search, a partial or full service name, such as pdf or
interface or ontology [5], chances are that its interface
pdf2ps, can be used. Service Builder searches the UDDI broker
definition already exists and can be retrieved from a broker. If
and it lists all the entries that match the name (Figure 15).
not, the service interface must be specified in a service
description language, such as WSDL. In this example, Figure 15 shows that only one service interface
with name pdf was registered in UDDI at the time of the search.
2. Service deployment. The mechanism used to deploy the In a more realistic production environment, the search would
service depends on the chosen communication infrastructure. likely return multiple entries.
For example, if the infrastructure is SOAP, the service
Back in the Service Builder dialog in Figure 14, the Register
interface and the implementation classes must be registered in
button can now be used to start service deployment. The Service
a SOAP server. After the service is deployed, it should also be
Builder will then parse the WSDL description file, find all the
registered with a service broker so that potential clients can
operations that must be implemented for this service, use Java
find it. In general, service deployment is a very mechanical
reflection to find the methods in the implementation class that
process and should be facilitated by a tool.
implements those operations, and deploy those operations through
the TSpaces Service API (TSSAPI). TSSAPI allows the service
developer to deploy a service without having to code for the through a combination of a UML class diagram and a process
specifics of each communication infrastructure. description diagram.
der is implied here, and these activities are usually done
Copyright is held by the author/owner(s).