---
title: "Bridging WS-* and REST: Get up on your soap-pox. The case for dummy SOAP envelopes"
date: 2006-03-31T15:24:00Z
modified: 2006-03-31T15:24:00Z
permalink: "https://redmonk.com/jgovernor/bridging-ws-and-rest-get-up-on-your-soap-pox-the-case-for-dummy-soap-envelopes/"
type: post
status: publish
excerpt: ""
wpid: 565
categories:
  - Uncategorized
timestamp: 2006-03-31T15:24:00Z
tags:
  - Uncategorized
---

The idea is to support both SOAP and REST in a single programming model and runtime. That is what the folks over at [WSO2](http://wso2.com/) are building in the shape of [Tungsten](http://www.wso2.com/products/tungsten "Link outside of this blog").

Sanjiva [spells it SOAPOX](http://www.bloglines.com/blog/sanjiva?id=116), but I spelled it out differently above to make the derivation clear: "Soap box" of course. Ironically most people on a soapbox are trying to argue for one style or the other, but SOAP-POX is about allowing for both. The term also works a joke – its a [crate for packing SOAP](http://dictionary.reference.com/search?q=soapbox), right?

Developers are going to need to support multiple API styles, as Sanjiva admits in yet another WS-\* [mea culpa](http://www.redmonk.com/jgovernor/archives/001376.html). The tundra is definitely breaking up.

> So, REST vs. WS-\*? Nahh. That’s old .. now its SOAPOX .. REST \*and\* WS-\* all in one. And its definitely better than Smallpox.
> 
> So why do we have all this debate? Its because WS-\* implementors (including myself until we did [WSO2 Tungsten](http://www.wso2.com/products/tungsten "Link outside of this blog") and [Apache Axis2](http://ws.apache.org/axis2 "Link outside of this blog")), took the view that REST is not important and ignored it. Duh. We were wrong. Sorry. A thousand apologies. So now, we have a solution: both can be done using one middleware, one programming model and one set of tools.

Hear that? "Duh".

The synthesis is to use a kind of a SOAP POX "router" or SOAP-POX for short.

How does the Tungsten implemention work? If the application expects SOAP and the message is POX, the "router" creates a dummy SOAP Infoset to carry the message as a payload. If its not XML then it serialised through XML binary optimisation (XOP). If the the app just calls for a GET, then a dummy SOAP envelope is forwarded through the system to allow the URL to be dropped into the app as expected.

The Sri Lankan team at WS02 has also built a c version of Tungsten that can be embedded in Firefox. They are also looking at PHP bindings, and even an IE version.

Its pretty interesting work but then the proof will be in developer adoption. There is a new spirit of pragmatism at work in the industry and we’re going to see more mashups of API and development styles. This is just one example.

Neither WS-\* nor REST are going away anytime soon: we’re just at the start of a SOAP-POX Derby.

.