Sanjiva says
Oh yeah we support both WS-* and RESTful services. However, they won’t meet the RESTafarian fanatics like Tim Bray’s coolaid drunkenness level of REST .. but if you want to do pragmatic work with services and support either or both of WS-* and REST then take a look at Apache Axis2 (Java & C), WSO2 WSAS, WSO2 Mashup Server, WSO2 WSF/{C,C++,PHP,Perl} etc…
Is supporting a uniform interface (REST) and a non-uniform interface (WS-*) at the same time in a given server possible without violating some or all the constraints of REST? Or, is this approach, which was expressed by several others (sorry – don’t have references handy), based on the POX interpretation of REST (i.e. transport some XML over HTTP treating HTTP as though it is just wire-level protocol)?

{ 6 comments… read them below or add one }
i started asking the same question recently. i am an early tester for MSFT’s SQL Server Data Services (SSDS) – their cloud db offering. Their current plan is to support both REST and SOAP. it’s early, and some things are a bit muddled, but i will say that, so far they seem to be making strides at being REST-ful.
but problems will arise. there will be some compromises. it should prove interesting.
Well Axis2 does support REST as well as POX. And so does WSO2 WSAS, WSO2 Mashup Server, WSO2 WSF/{C,C++,PHP,Perl} etc… And when I say axis2 supports REST I really mean it. I will explain this in detail in a article.
Nice. Look forward to reading it.
Subbu, let me give you an example. REST community considers JSR-311 annotations RESTful right? OK, so suppose I take a simple Java class and put both JSR-311 annotations and JAX-WS annotations to make that class into a WS-* service too.
Effectively that class is offering (presumably) a “good” RESTful service and a WS-* one.
I actually do not think this is the right way to write services at all (taking any old class and flipping switches) but I’m not sure the tools we have for handling XML, MIME etc., especially in Java, really encourage developers to get their hands dirty yet.
Sanjiva:
my primary issue w/ REST/POX hybrids is that they are usually only a ’shallow’ copy of what REST really means. REST is not uniform interface (only). REST is not URL construction (only). REST also focuses on the importance of metadata (as HTTP Headers); the role of intermediaries (caching/authentication proxies); handling code-on-demand properly; and other base-line issues.
i don’t see this level of REST support in JSR-311 or others that try to support both (MSFT’s WCF comes to mind).
Subbu / Mike,
I’ve put up a blog POST that shows how WSDL 2.0 cab be used to describe a RESTfull Service.. This service is publicly available and you can try it out your selves. The service can be accessed using WS-* as well as REST. Wuld like to know your thoughts on this.
{ 1 trackback }