i saw that in asp.net .asmx file, we create webservices
[webmethod]
//method definition here
now for soap webservice
[webmethod]
[SoapHeader(some parameters here)]
//method defination here
my question is what's the difference between both webservices type and how to choose which service type to choose
There really isn't. A standard webmethod is still transported using soap. The second one just has a custom SoapHeader attached to it. This is commonly used when using authorization to perform access control to the webservice or to post special header information along with the standard service request.
Try this as an example: http://www.codeproject.com/KB/cpp/authforwebservices.aspx
You could be confusing what you've heard about WCF and ASMX web services. Microsoft considers ASMX services to be "legacy technology", anad say that all new web service development should be done using WCF.
Related
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.
As title, in Linux System,how can I call web service method in C++?
Use open source libraries like gsoap or Apache Axis.
Note that this has nothing to do with the underlying platform, Web services need the data to be encapsulated in a SOAP object(in case of SOAP web service) and these libraries just provide you the framework to do so.
The above libraries use the wsdl of the web service as an input parameter and generate the necessary stubs for communication with the web service.They abstract the nitty gritty's of communication with the web service from the end user and provide simple interfaces to get and set the data to be sent or received over the web service.
is there some library out there that will accept the url of the soap wsdl file, and then generate me the proxy classes and what not at runtime? Web references are getting to be somewhat inconvenient for my particular situation.
Thanks.
Web Services Description Language Tool (Wsdl.exe) is what you want.
The following command creates a client proxy class in the C# language for an XML Web service located at the specified URL. The tool saves the client proxy class in the file myProxyClass.cs.
wsdl /out:myProxyClass.cs http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL
Working on a docuSign integration with Coldfusion and need assistance in making the SOAP request using WS security.
Your question is a little short on detail, but I presume you mean the Web Services SOAP security extension.
We had to do this a few years back when communicating with a .NET web service. The basic idea is that you provide a set of extra SOAP headers that contains security info such as:
Timestamp
Username
Password
Etc
To do this you need to create a new XML document as per the standard defined here. Next you will need to write code to create the SOAP headers. This means:
Create your remote web service object, e.g.
var objWebSvc = createObject("webservice", "http://remoteURL?WSDL");
Creating an XML document to represent the new headers
Populating it with the required info (such as username and timestamp etc.)
Adding the XML document to the web service object, using addSOAPRequestHeader()
Call your remote web service
Then of course if and when they call your web service you'll need to parse out those headers from their SOAP request and validate them. That can be done by grabbing the XML using getSOAPRequestHeader() and parsing out the info.
I found this to be an error prone task and (basically) a royal pain. The web service we integrated with eventually dropped the requirement, apparently becuase the any web services trying to connect that were not native .NET were having a hard time implementing the specification.
Good luck!
I blogged this a while back. See if this helps:
http://onlineanthony.blogspot.com/2010/05/using-ws-security-for-soap-in.html
Following reference indicates ASP.NET automatically creates a WSDL and SOAP request. Where or through what I can see the nuts and bolts?
http://www.w3schools.com/webservices/ws_example.asp
ASP.net generates the WSDL according to the method(WebMethod) signature along with other web service specific attributes.
For example, the method name is web service operation, serialized parameter of the method is part of SOAP request and serialized return object of the method is part of SOAP response.
Search Related topics for details,
Building XML Web Services Using
ASP.NET XML serialization
Your reference is out of date. You should not use ASMX web services for new web service development. Microsoft now considers them to be "legacy technology". You should use WCF for all new web service development.