WASP gives Web services development some sting

WASP Server and Developer tools handle real-world Web services management

Although most of the Web services examples in tutorials and books are green-field developments -- that is, started from scratch with little or no concern for legacy systems -- that is not a likely scenario in most enterprises. When large organizations contemplate Web services, they are seeking more efficient interactions with customers or trading partners with whom they already have relationships.

Such relationships are often already cemented into place with some collection of IT resources. As a consequence, real-world Web service deployments can get messy and require a serious development effort. Getting the job done requires development tools, a cluster of run-time servers, and management tools to configure and operate the services once they’re deployed. WASP Server and WASP Developer from Systinet do a nice job of providing these professional-grade tools for creating and deploying Web services in both Java and C++.

WASP Server

WASP Server is a full-featured Web services run-time environment. I tested WASP Server 4.5.1 for Java (the C++ server has the same feature set but differs in how it is deployed). Because both Java and C++ versions are available, it is fairly easy to expose any Java or C++ program as a Web services. 

A Web services run-time server has two primary parts. First, a SOAP message processor parses SOAP messages, including the serializing and deserializing of parameters. And second, a Web service container wraps the business logic for the Web service and provides services such as security, life-cycle management, and resource management.

This architecture enables the WASP Server to completely divorce security issues from the business logic, freeing Web services developers from having to write arcane security code and creating an environment where security is configured through an easily managed administrative console. 

A big selling point for the WASP Server is performance. The server provides load balancing and clustering, and the container architecture allows the server to manage resources such as threads. Systinet also lays claim to a proprietary XML-processing system that manages XML operations as streams rather than batch jobs. This can reduce system resource demand when processing large blocks of XML. 

One of the things that impressed me was the ease with which I could serialize complex data elements for use as parameters in SOAP calls. I’ve struggled with this on some other products and had to do quite a bit of work myself, but WASP Server handled Java-to-SOAP-to-Java typing issues handily.

The WASP serialization subsystem also contains the XML Schema for a large assortment of complex data types including arrays, hashes, and lists. The ability to transmit complex data extends to .NET applications as well, since the precompiled schema is designed with this in mind.

The server should run on any platform with Java 1.3 or 1.4, and although the server isn’t specifically supported on OS X, I did get it working with only a few modifications to some shell scripts that assumed a different layout for the Java installation than OS X provides. I was also able to easily get it working on Windows XP. Nevertheless, remember that performance is directly dependent on the quality of the Java VM available on a particular platform.

The buzz on WASP Server and Developer

Deploying and running Web services is only part of the story. They must also be managed. WASP Server’s HTTP-based administrative console provides four main areas of functionality.

First, the Domains and Servers panel allows multiple servers to be managed from the same console and creates logical groupings of servers called “security domains.” Second, the Web Services panel allows new Web services to be deployed and already-deployed packages to be enabled, disabled, migrated to another server, cloned to a different server, or undeployed. Plus a debugging console helps to see behind the scenes of server interactions.

Third, the Preferences panel allows the administrator to control transport and security. Various transport parameters can be changed for any transport mechanisms installed on the server and new transport mechanisms can be added. There is also a section for managing security properties. Finally, a fourth panel manages several utility services for UDDI publishing and WSDL-to-Java conversion. 

The management console is comprehensive and easy to use, and users can extend the console to provide custom functionality. Plus system administrators responsible for managing a cluster of run-time servers will appreciate that multiple servers can be managed from a single console. 

The WASP Server contains everything you need to build and deploy Web services if you like using the command line. On the IDE side, Systinet provides a set of plug-ins, called WASP Developer, for Eclipse, JBuilder, and Sun ONE Studio to aid in the development and deployment of Web services.

I tested the plug-in that runs in the popular, open-source Eclipse IDE. It’s a full-featured IDE, and the addition of the WASP Developer plug-in makes it a great platform for developing Web services. What’s more, Eclipse and the WASP Developer plug-in are both free, so you can’t beat the price. I installed and used Eclipse and WASP Developer on both Windows XP and Apple OS X under Java 1.4.1 with no problems.  

Using WASP Developer was fairly simple. When you create a new project, you identify it as a Web Services Project. That adds certain menu items that allow you to deploy Java classes as Web services, generate client-side stubs, and create WSDL documents from the Java class. WASP Developer also includes a fully functional version of WASP Server that runs inside the IDE and provides a convenient testing environment.

Both WASP Server and WASP Developer come with a tool called SOAPSpy which intercepts and displays SOAP message traffic. This is handy as a teaching tool to understand what’s going on on the wire and is also useful for debugging. The tools work by creating a generic proxy for SOAP messages; when the client routes the call through the proxy, SOAPSpy intercepts it and records it for inspection.

Good tools make the difference

Good tools speed the adoption of complex technologies. Integration of the server and development tools into the IDE in WASP Developer is especially important as it creates a credible counterpoint in the Java world to Microsoft’s Visual Studio .Net.

There are numerous Web service run-time environments available from various sources. What sets WASP Server and Developer apart is their polished tone and comprehensive feature set. The pricing model for Systinet’s products makes it clear that they are willing to bet that their tools will make Web services accessible and widely used.

InfoWorld Scorecard
Interoperability (20.0%)
Value (10.0%)
Documentation (15.0%)
Ease of use (20.0%)
Support (20.0%)
Scalability (15.0%)
Overall Score (100%)
Systinet WASP 4.5.1 9.0 9.0 7.0 7.0 7.0 8.0 7.8