XML Web Services are .Net components , which reply to Http requests  using the SOAP protocol (Simple Object Access Protocol). XML is one of  the principal cornerstones of .Net technology which enables a high  degree of interoperability between applications using the Internet. XML  Web services are ASP.Net applications which handle requests for .asmx  files.
The .asmx extension signals to ASL.Net that it contains  non-visual components which are using the XML protocol. These files have  a WebService header line which declares it as an XML WebService class.  And each method has a WebMethod attribute to make the procedure  accessible through the Internet.
When ASP.Net receives an .asmx  page, it processes the directives and interprets the query buried within  the calling string and produces an .aspx page which derives from the
DefaultWsdlHelpGenerator.aspx  stored in the appropriate .Net directory on the server. You can  customize that page, but it affects all the applications o f the server.  Alternatively, you can change the web.config file to point to a local  file to achieve control over the appearance of the page for a specific  application.
On the client side, you need to create a Web  Service Client which can be either be a Windows form, a Web form, or  another Web services application. Don’t forget that the whole process is  designed to make the services accessible from any computer running on  any platform. This is possible because the actual services are running  on the server, which must be running a .Net platform.
XML Web  services support 3 protocols: Http GET, Http POST, and SOAP. GET and  POST are old technology because they support passing only simple  variables – no structures or objects. SOAP protocols support XML objects  passed into and back from the server. These SOAP messages are actually  XML structures which are passed in an XML envelope with specific  requirements, chief among then being the tags methodResponse and  methodResult. The grammar and bundling of these messages are handled  transparently by .Net XML Services.
We reproduce the structure  of the SOAPHttpClientProtocolClass below.
Public Constructors
SoapHttpClientProtocol  Constructor
Supported by the .NET Compact Framework. Initializes a  new instance of the SoapHttpClientProtocol class.
Public  Properties
AllowAutoRedirect (inherited from HttpWebClientProtocol)
Supported  by the .NET Compact Framework. Gets or sets whether the client  automatically follows server redirects.
ClientCertificates  (inherited from HttpWebClientProtocol) Gets the collection of client  certificates.
ConnectionGroupName (inherited from WebClientProtocol)  Gets or sets the name of the connection group for the request.
Container  (inherited from Component) Gets the IContainer that contains the  Component.
CookieContainer (inherited from HttpWebClientProtocol)  Gets or sets the collection of cookies.
Credentials (inherited from  WebClientProtocol)
Supported by the .NET Compact Framework. Gets  or sets security credentials for XML Web service client authentication. 
PreAuthenticate (inherited from WebClientProtocol)
Supported  by the .NET Compact Framework. Gets or sets whether pre-authentication  is enabled.
Proxy (inherited from HttpWebClientProtocol)
Supported  by the .NET Compact Framework. Gets or sets proxy information for  making an XML Web service request through a firewall.
RequestEncoding  (inherited from WebClientProtocol)
Supported by the .NET Compact  Framework. The Encoding used to make the client request to the XML Web  service.
Site (inherited from Component) Gets or sets the ISite  of the Component.
Timeout (inherited from WebClientProtocol)
Supported  by the .NET Compact Framework. Indicates the time an XML Web service  client waits for a synchronous XML Web service request to complete (in  milliseconds).
UnsafeAuthenticatedConnectionSharing (inherited  from HttpWebClientProtocol) Gets or sets a value indicating whether  connection sharing is enabled when the client uses NTLM authentication  to connect to the Web server hosting the XML Web service.
Url  (inherited from WebClientProtocol)
Supported by the .NET Compact  Framework. Gets or sets the base URL of the XML Web service the client  is requesting.
UserAgent (inherited from HttpWebClientProtocol)
Supported  by the .NET Compact Framework. Gets or sets the value for the user  agent header that is sent with each request.
Public Methods
Abort  (inherited from WebClientProtocol)
Supported by the .NET Compact  Framework. Cancels a request to an XML Web service method.
CreateObjRef  (inherited from MarshalByRefObject) Creates an object that contains all  the relevant information required to generate a proxy used to  communicate with a remote object.
Discover Dynamically binds to  an XML Web service described in the discovery document at Url.
Dispose  (inherited from Component) Overloaded. Releases the resources used by  the Component.
Equals (inherited from Object)
Supported by  the .NET Compact Framework. Overloaded. Determines whether two Object  instances are equal.
GetHashCode (inherited from Object)
Supported  by the .NET Compact Framework. Serves as a hash function for a  particular type, suitable for use in hashing algorithms and data  structures like a hash table.
GetLifetimeService (inherited from  MarshalByRefObject) Retrieves the current lifetime service object that  controls the lifetime policy for this instance.
GetType  (inherited from Object)
Supported by the .NET Compact Framework.  Gets the type of the current instance.
InitializeLifetimeService  (inherited from MarshalByRefObject) Obtains a lifetime service object to  control the lifetime policy for this instance.
ToString  (inherited from Object)
Supported by the .NET Compact Framework.  Returns a String that represents the current Object.
Public Events
Disposed  (inherited from Component) Adds an event handler to listen to the  Disposed event on the component.
Protected Properties
DesignMode  (inherited from Component) Gets a value that indicates whether the  object is currently in design mode.
Events (inherited from  Component) Gets the list of event handlers that are attached to this  Component.
Protected Methods
BeginInvoke
Supported by  the .NET Compact Framework. Starts an asynchronous invocation of an XML  Web service method using SOAP.
Dispose (inherited from  Component)
Supported by the .NET Compact Framework. Overloaded.  Releases the resources used by the Component.
EndInvoke
Supported  by the .NET Compact Framework. Ends an asynchronous invocation of an  XML Web service method using SOAP.
Finalize (inherited from  Component)
Supported by the .NET Compact Framework. Overridden.  Releases unmanaged resources and performs other cleanup operations  before the memoryis reclaimed by garbage collection.
In C# and C++,  finalizers are expressed using destructor syntax.
GetService  (inherited from Component) Returns an object that represents a service  provided by the Component or by its Container.
GetWebRequest
Supported  by the .NET Compact Framework. Overridden. Creates a WebRequest  instance for the specified url.
GetWebResponse (inherited from  HttpWebClientProtocol)
Supported by the .NET Compact Framework.  Overloaded. Overridden. Returns a response from a request to an XML Web  service method.
Invoke
Supported by the .NET Compact  Framework. Invokes an XML Web service method synchronously using SOAP.
MemberwiseClone  (inherited from Object)
Supported by the .NET Compact Framework.  Creates a shallow copy of the current Object.
Resources
•  Information on XML Web Services
This is useful resource that  discusses the evolving architecture, standards and tools for web  services.
• Insightful information on XML Web Services and Security
This  resource discusses XML Web Services and Security in detail.