Introduction
We can now use ASP.NET to create Web Services based on industrial standards including XML, SOAP and WSDL.
A Web Service is a software program that uses XML
to exchange information with other software via common internet protocols.
In a simple sense, Web Services are a way for interacting with objects over the
Internet.
A web service is
- Language Independent.
- Protocol Independent.
- Platform Independent.
- It assumes a stateless service architecture.
- Scalable (e.g. multiplying two numbers together to an entire customer-relationship management system).
- Programmable (encapsulates a task).
- Based on XML (open, text-based standard).
- Self-describing (metadata for access and use).
- Discoverable (search and locate in registries)- ability of applications and developers to search for and locate desired Web services through registries. This is based on UDDI.
Web Service History
- Microsoft coined the term "Web services" in June 2000, when the company introduced Web services as a key component of its .Net initiative, a broad new vision for embracing the Internet in the development, engineering and use of software.
- As others began to investigate Web services, it became clear that the technology could revolutionize (be the next stage in) distributed computing.
- Web services encompass a set of related standards that can enable any two computers to communicate and exchange data via a network, such as the Internet.
- The primary standard used in Web services is the Extensible Markup Language (XML) developed by the World Wide Web Consortium (W3C).
- Developers use XML tags to describe individual pieces of data, forming XML documents, which are text-based and can be processed on any platform.
- XML provides the foundation for many core Web services standards (SOAP, WSDL, and UDDI) and vocabularies (XML-based markup for a specific industry or purpose).
- Almost every type of business can benefit from Web services such as expediting software development, integrating applications and databases, and automating transactions with suppliers, partners, and clients.
Key Web Service Technologies
- XML- Describes only data. So, any application that understands XML-regardless of the application's programming language or platform-has the ability to format XML in a variety of ways (well-formed or valid).
- SOAP- Provides a communication mechanism between services and applications.
- WSDL- Offers a uniform method of describing web services to other programs.
- UDDI- Enables the creation of searchable Web services registries.
When these technologies are deployed together, they
allow developers to package applications as services and publish those services
on a network.
Web services advantages
- Use open, text-based standards, which enable components written in various languages and for different platforms to communicate.
- Promote a modular approach to programming, so multiple organizations can communicate with the same Web service.
- Comparatively easy and inexpensive to implement, because they employ an existing infrastructure and because most applications can be repackaged as Web services.
- Significantly reduce the costs of enterprise application (EAI) integration and B2B communications.
- Implemented incrementally, rather than all at once which lessens the cost and reduces the organizational disruption from an abrupt switch in technologies.
- The Web Services Interoperability Organization (WS-I) consisting of over 100 vendors promotes interoperability.
Web Services Limitations
- SOAP, WSDL, UDDI- require further development.
- Interoperability.
- Royalty fees.
- Too slow for use in high-performance situations.
- Increase traffic on networks.
- The lack of security standards for Web services.
- The standard procedure for describing the quality (i.e. levels of performance, reliability, security etc.) of particular Web services – management of Web services.
- The standards that drive Web services are still in draft form (always will be in refinement).
- Some vendors want to retain their intellectual property rights to certain Web services standards.
Web Service Example
A web service can perform almost any kind of
task.
- Web Portal- A web portal might obtain top news headlines from an Associated press web service.
- Weather Reporting- You can use Weather Reporting web service to display weather information in your personal website.
- Stock Quote- You can display latest update of Share market with Stock Quote on your web site.
- News Headline: You can display latest news update by using News Headline Web Service in your website.
- You can make your own web service and let others use it. For example you can make Free SMS Sending Service with footer with your companies advertisement, so whosoever uses this service indirectly advertises your company. You can apply your ideas in N no. of ways to take advantage of it.
Example of Creating Web Service in .Net
Here are samples codes which I use to create
and consume ASP.NET Web Service:
- Step 1- Create the ASP.NET Web Service Source File
Open Visual Studio 2010 and create a new web
site.->Select .Net Framework 3.5. ->Select ASP.NET Web Service page -> Then, you
have to give the name of your service. In this example I am giving it's name "mywebservice".
Then Click the ok Button. A screen-shot of these activity is given below.

- Step 2- click on the "ok" button; you will see the following window.

Here (in the above figure), you will note that
there is predefined method "HelloWorld" which returns the string "Hello
World". You can use your own method and can perform various operations.
Here I made a simple method which returns the multiplication of two numbers
using the code.
Service.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using System.Web;
using
System.Web.Services;
[WebService(Namespace =
"http://tempuri.org/")]
[WebServiceBinding(ConformsTo =
WsiProfiles.BasicProfile1_1)]
//
To allow this Web Service to be called from script, using ASP.NET AJAX,
uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Service
: System.Web.Services.WebService
{
[WebMethod]
public int
Multiplication(int a,int
b)
{
return (a*b);
}
}
Before
Debugging the above Web Service see some important term
using
System.Web.Services;
This directive allows you to refer to objects in
the System.Web.Services namespace without having to fully qualify the request.
This statement is optional, but if it is not included, every reference to an
object in this namespace must be fully qualified. An example is the next line,
which is our class declaration. With the using statement, it looks as follows in
C#:
The [WebMethod] attribute
The Service
class exposes a single method, the public method
Multiplication, which takes two
integer arguments and returns the multiplication of two number as integer. To expose
a method as a part of a web service, you must decorate it with the WebMethod
attribute, which tells the compiler to treat it as such. Any method marked with
the WebMethod attribute must be defined as public. Class methods exposed as web
services follow the same object-oriented rules as any other class, and therefore
methods marked private, protected, or internal are not accessible and will
return an error if you attempt to expose them using the WebMethod attribute.
In the Solution Explorer you will see

Service.asmx-
which contains the following code:
<%@ WebService Language="C#" CodeBehind="~/App_Code/Service.cs" Class="Service" %>
The page directive WebService
is required and the class is the name of the .NET Class to expose the
Web Service, each method exposes as
Web Service Class Method need to have a
declarative attribute statement.
The WebService directive is similar to the Page
directive that begins most .aspx pages. For the Multiplication web service to work, you must assign values
to two WebService directive attributes: Language and Class.
The required Language attribute lets .NET know
which programming language the class has been written in. As you might guess,
the acceptable values for the language attribute are currently C#, VB, and JS
for JScript.NET.
The Class attribute, also required, tells ASP.NET
the name of the class to expose as a web service. Because a web service
application can comprise multiple classes, some of which may not be web
services, you must tell .NET which class to expose, a step analogous to
declaring a Main() method to indicate the entry point of a .NET console
application or component. Note that even if your web service contains only one
class, setting this attribute is required.
Now back to the our web service.

Copy the url of this web service for further use.
Click on the Mutiplication button to test the web
service.

Enter the value of a and b.

By pressing the "Invoke" button a XML
file is generated.

Now our web service is ready to use; we just need
to create a new web site to consume the web service.
Example of Testing Web Service in .Net.

Name the web site, for example here I have
choosen the name "Test".




protected void Button1_Click(object
sender, EventArgs e)
{
localhost.Service mys =
new localhost.Service();
// you
need to create the object of the web service
int a =
Convert.ToInt32(TextBox1.Text);
int b =
Convert.ToInt32(TextBox2.Text);
int c = mys.Multiplication(a, b);
TextBox3.Text = c.ToString();
}

Enter the number.

Press the show button.

Resources