views:

24

answers:

2

SOAP is supposedly an interoperable standard for webservice so when is WSIT really needed ?

Playing the Devil's advocate:

Also as far as I can see WCF is much more than SOAP and they rather seem to target REST. Isn't rather that Microsoft and SUN are hiding the fact that they made a mistake about the huge SOAP complexity and now adopts REST without admitting it too openly and build another wall of complexity above it with WSIT and WCF for selling new tools :)

A: 

If you are referring to this WSIT it is an implementation of a range of web services technologies just a Apache Axis. BTW I think WSIT has been integrated into Glassfish.

Chuk Lee
That doens't explain to me why it is necessary since soap is supposedly interoperable ?
This is just like saying that TCP/IP is suppose to be interoperable. Its what is packaged in SOAP and how it is packaged that makes it interoperable. Eg you can encode an invocation either as RPC or doc in SOAP. How these are interpreted is what makes them interoperable.
Chuk Lee
A: 

SOAP is a specification defining the protocol for exchanging web services messages. It tells you what to read and write but doesn't actually do the reading and writing - it is not software, just the specification for how software should behave.

WSIT, WCF both provide webservice implementations that adhere to the SOAP specification - they are implemnetations of the SOAP specification. You don't have to use these frameworks - you could code the XML yourself, but it's of course a lot easier to start from an existing implementation, so you can focus on the logic of your webservice rather than the plumnbing.

You need SOAP - it's the common ground that two independent implementations agree upon, and is the key factor that makes WSIT/Axis<>WCF interop possible. It may help if you think less about the implementation technology and focus more the external interface (i.e. SOAP) that your service exposes.

There are many similarities with the Interface/Implementation Class separation in OO programming. Once you have an instance implementing an interface, you don't really care about the actual implementation details - just that the implemnetation adheres to the interface specified. With web services, you don't (usually) care that the service or client is implemented in WSIT, Axis, WCF, asmx, or any other programming language - you just care that it exposes/consumes a SOAP interface.

mdma
As far as I know WSDL defines a contract Interface so why would another kind of contract needed ? Also as far as I can see WCF is much more than SOAP and they rather seem to target REST. Isn't rather that Microsoft and SUN are hiding the fact that they made a mistake about the huge SOAP complexity and now adopts REST without admitting it too openly and build another wall of complexity above it with WSIT and WCF :)
You don't need another contract - WSDL is your contract defining end points and messages to send/recieve, but if the messages you send are homegrown proprietary content, then you are not going to find a client that can communicate out of the box. If you choose SOAP as your message format, then you have a pubic contract for clients to follow, usually with out of the box support. WSIT/WCF is your implementation of that contract, and takes care of most of the implemnetation details.
mdma