I was trying to figure out REST VS SOAP where some folks says
REST is an architecture, SOAP is a protocol.
But i did not get (any where on net) what makes Rest an architecture but SOAP as protocol ?
Related
I have a requirement where a web service has to be exposed both as SOAP over HTTP and JMS. How would be the bindings for both in a WSDL at the same time ?
Also what all extra care(compared to a simple web service SOAP over HTTP) need to be taken for generating and deploying webservice in this scenario?
If possible, please give an example of a WSDL where both bindings are mentioned.
I've started learning about webservices recently. Have few question about that:
For webservice, is it always necessary that source should provide wsdl or any other way possible to consume it without needing wsdl?
Till a while ago, I was doing server side XMLhttp post in classic ASP to do modifications in external application & to push data in my application from external application. I'm confused - is that very different from webservice or can be called a sort of webservice(ofcourse without based on SOAP). Any major difference or it is just protocol difference bw webservice and server side XMLhttp post?
Web services can be made asynchronous?(Something like AJAX call through javascript)
Are there any different types of webservices ? (for e.g is there difference bw, webservice providing stock quotes and webservice provided by google)
1.For webservice, is it always necessary that source should provide wsdl or any other way possible to consume it without needing wsdl?
WSDL is a document that publishes an interface. As long as a client complies to the inteface, it is guaranteed to be able to "talk" to the web service. Having said that WSDL is a formal way for a specification when there are many stakeholders. You can proceed without one, as long as you somehow know what the web service expects. Just wrap the application data in a SOAP envelope and send it to the web service. As long as you send what the web service expects (in the SOAP envelope or the application data) and in the way they are expected e.g. transport HTTP etc. it does not matter for the WS if you have used a WSDL or not.
2.Till a while ago, I was doing server side XMLhttp post in classic ASP to do modifications in external application & to push data in my
application from external application. I'm confused - is that very
different from webservice or can be called a sort of
webservice(ofcourse without based on SOAP). Any major difference or it
is just protocol difference bw webservice and server side XMLhttp
post?
In very simple terms web service is XML over some application protocol (usually HTTP). Could be SOAP based or REST. To understand more on this you should read about Service Oriented Applications
3.Web services can be made asynchronous?(Something like AJAX call through javascript)
They could but it is more complicated than that.
4.Are there any different types of webservices ? (for e.g is there difference bw, webservice providing stock quotes and webservice
provided by google)
Not sure what you ask here. Each web service offers something.
I will try to be very simple here:
The W3C defines a "Web service" as "a software system designed to
support interoperable machine-to-machine interaction over a network".
That means first requisite for any software to be web-service is that it should not depend upon platform or software i.e a web service made on java stack can be consumed by client in .net stack on windows or java stack on android.
If your server side implementation XMLhttp post suffice this ,its a
web service.
Types of Web services
Actually, there is no overall and clear categorization on types of web services. But two most popular are :
SOAP based web services. :It use XML messages that follow the Simple Object Access Protocol (SOAP) standard, an XML language defining a message architecture and message formats(WSDL).
REST based web services. With evolution of WEb 2.0 emphasis has been moving away from SOAP based services towards representational state transfer (REST) based communications.[3] REST services do not require XML, SOAP, or WSDL service-API definitions.Read here to get a easy explanation of REST
Need of WSDL to consume SOAP web services?
To consume a SOAP service we only require SOAP endpoint and XML message format. WSDL is a pre-requisite for automatic client side code generation through Java and .NET SOAP frameworks.
Asynchronous web services
Making web services asynchronous is possible.But complexity depends upon frameworks used, for example AXIS2 in JAVA has easy implementation of this.
I am new to services. I am sorry for my question being a little theoretical. On a site I was reading about SOAP, they said it works over internet.
Can we use SOAP based services in intranet environment ?
Can we use HTTP over intranet or it is just a internet protocol ?
Please guide.
You can use SOAP over any TCP network. This could be internet or intranet. SOAP is an interoperable protocol over HTTP. And HTTP works over TCP. So everywhere you have HTTP you can have SOAP. Basically SOAP is a protocol which allows for heterogeneous systems to communicate using an industry defined standards.
And note that SOAP is getting less attention lately compared to REST which is starting to gain lots of momentum.
SOAP is a service supported by a server/web service. You can even use SOAP to translate data between two services on the same server box that have no other form of API.
Context:
I'd like to use ServiceStack to build a SOAP client in order to consume an existing Java CXF WebService, exposed over SOAP with defined WSDL (I have no control over the WS itself). I may need to add a couple of extra headers the SOAP envelope for authorization purposes.
Question:
Would all of the above be possible, and if so, what are the gotchas? If there are any specific examples, links would be welcome.
Actually the other way round of having other clients consuming ServiceStack web services would make more sense.
Using ServiceStack to consume other clients is not an ideal strategy. ServiceStack server and client supports a coarse-grained, DTO-first approach, it wouldn't handle variations in this theme that other frameworks spit out.
This question already has answers here:
Difference between SOAP and HTTP protocol?
(3 answers)
Closed 4 years ago.
I have read that web services are transmitted through SOAP over HTTP. Then what is the difference between SOAP and HTTP, if they are both communication protocols?
Is there any difference or is HTTP simply a binding used by SOAP?
There are two main protocols related to web services.
1st, transport protocols - e.g.
HTTP(commonly used), TCP, UDP
2nd, messaging protocols - e.g. SOAP,
XML, JSON or binary encoded messages
Generally speaking,
Messaging protocols are responsible for exchanging the messages in a commonly agreed format.
Transport protocols are responsible for delivering the messages and how
it should communicate.
A real world example:
HTTP is like telephone communication, SOAP is like English.
You call the web service over HTTP in SOAP messages such as you call your friend by mobile phone and talking in English.
It's not web services are transmitted. Rather, messages are transmitted in SOAP format.
SOAP being a protocol specification for exchanging structured information can use pretty much any transport protocol (HTTP being the most widely used, RPC and SMTP can be used as well).
Long story short, you cannot compare HTTP and SOAP since these are two orthogonal things. See Wikipedia for introduction.
Web services do not need to be implemented using SOAP, and SOAP does not actually need to be transmitted over HTTP (although this is pretty rare). HTTP is the underlying protocol of the web, while SOAP is one way of using XML as an envelope for RPC calls.
Http or Https is the protocol over witch SOAP runs.
SOAP (Simple Object Access Protocol) is meant for data exchange between servers.
client systems of soap are just other servers that connect to get data from the master server.
the oter option of soap is RPC (remote procedure call)
http://en.wikipedia.org/wiki/SOAP