Post Job Free
Sign in

Service Services

Location:
Palo Alto, CA
Posted:
January 27, 2013

Contact this candidate

Resume:

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

******.*****@**.***

+1-408-***-****

********@*******.***.***

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).



Contact this candidate