Spray and Splash Introduction

Splash is a lightweight Soap-client, based on Spray. This sentence alone gives enough feed for a page-long article. What is Soap, what is Spray, what can I do with it, what does it mean and why would I want a lightweight version of it?

Let's start with a short description of Soap. Note, we're not going to give a definition of Soap, we're giving a description of it. If you want definitions, start with W3C and from there have a look at MSDN.

In short, Soap is an agreed way to let computers use each others services. For example, you have an application that does market predictions based on the daily quantity of shares traded. Your application has all kinds of complicated calculations, but requires the base data. Of course you could just enter that data or 'scrape' it off web sites. Alternatively you could get expensive subscriptions which would send you the data daily in a format defined by the publisher. This is one of the areas where Soap offers an alternative. Instead of sending subscribers large amounts of data, the publisher makes services available where the subscribers can collect exactly that amount of data that they want.

To extend their service, the publisher could add a service where they calculate your theoretical profit if you'd bought a certain quantity of shares on a certain date.

Nothing shocking so far, these kinds of services have been around for quite a while as well. However, so far every supplier of these kinds of services offered them in their own way, each had their own API. Some required dial-in facilities, others used different means. With SOAP this whole area is standardised through a W3C 'note' (see W3C for the difference between notes, recommendations and the like). All Soap communications use XML Information Sets and takes place in 'envelopes'.

Having a basic understanding of what SOAP is about, we can move on to Spray. Spray is a toolbox that allows you to develop SOAP clients and servers in Dolphin Smalltalk. Following the example above, with Spray you could develop the interface that requests the share trade information and then build your Dolphin Smalltalk application that uses that information.

However, as Spray is a toolbox with which you can develop the client and the server, you could also develop the application that provides these services with Spray. This is where the difference lie between Spray and Splash. Splash only provides support for the SOAP service request side, it doesn't support the development of SOAP services themselves.

As both Spray and Splash are toolboxes for Dolphin Smalltalk, their main task is to convert between Soap envelopes and Smalltalk, so that the developer can think and write Smalltalk; basically sending messages to objects. In this case the objects are the SOAP requests or SOAP responses. But they look like and work like Smalltalk objects!

Ted Bracht

12 January 2001


Soap used to stand for Simple Object Access Protocol, however, starting with the SOAP1.2 spec, SOAP is no longer defined as an acronym. The "S" is no longer true, and the "O" is also not true. Soap is "service" based, (using SOAP1.2 terminology) soap messages are sent from one soap node to another. These soap nodes are more like singletons (or even class factories) than objects.