Sei sulla pagina 1di 17

9.

Web Services
Objectives

“Web Services are poised to change the future of software


development...”

• WebServices

Microsoft 2
Web services?

“Web services are web apps that return data, not presentation. Since
applications are typically about accessing data, web services are
poised to become the next evolutionary step in distributed
software development...”

• Why?
– cross-platform application development
– legacy system integration

obj obj
XML obj

obj
Web server

Microsoft 3
Overview

• Web services involve many technologies:


– WSDL to learn about web service
– to call: proxy objects, SOAP, XML, HTTP and .ASMX pages

web service

WSDL
client app obj
obj

method obj
method call
call
.asmx
proxy
Web server
SOAP msg
(XML)

HTTP request

Microsoft 4
Example

• Google

• A great search engine


– www.google.com
– but what if I want my own GUI?

Microsoft 5
Google web service

• Google offers a web service that performs searches for you


• Why?
– clients can build custom GUIs
– google.com can make money!

// ask google to search for us...


google = new GoogleSearchService();
result = google.doGoogleSearch("4a8/TvZQFHID0WIWnL1CMmMx0sNqhG8H",
txtSearch.Text, 0, 10, false, "", false, "", "", "");

// display resulting URLs...


foreach (ResultElement re in result.resultElements)
lstURLs.Items.Add(re.URL);

Microsoft 6
Working with web services

• Two steps:
1. build a web service
2. build clients to use it

Microsoft 7
(1) Building a web service

• Start by creating a project of type “ASP.NET Web Service”

Microsoft 8
A web service is…

• One or more objects that respond to web-based method calls


– there is no GUI design to a web service
– only raw classes with methods…

public class Service1 : System.Web.Services.WebService


{
.
.
.
}

Microsoft 9
Example

• Looks like C#, but keep in mind these are web-based


methods
– client could be calling from any platform inheri
t
– parameters passed using XML
public class Service1 : System.Web.Services.WebService
{
attribut [WebMethod]
e public int Add(int x, int y)
{
return x + y;
}

[WebMethod]
public string[] Attendees()
{
<<open DB, read attendees into array, return it>>
}
}

Microsoft 10
(2) Building a client

• Start by creating a client…


– WinForm, WebForm, console-based, anything you want!
– for fun, let's use VB…

Microsoft 11
Reference the component

• As usual, we need to reference component


– this will activate IntelliSense
– this will make sure we call it correctly
– this will enable underlying XML +
SOAP communication

• How?
– project references, right-click, Add web reference…
– type URL for web service, e.g.
• http://localhost/WebService/Service1.asmx

web servic class


e nam
server name e
Microsoft 12
Program against component

• Treat web service like any other class!


– use new to create instances
– make method calls
– pass parameters

Private Sub Button1_Click(...) Handles Button1.Click


Dim i, j, k As Integer

i = CInt(TextBox1.Text)
j = CInt(TextBox2.Text)

Dim obj As localhost.Service1


obj = New localhost.Service1()
k = obj.Add(i, j)

MessageBox.Show("Sum = " + k.ToString())


End Sub

Microsoft 13
Underlying execution…

• Here's what the call to Add() actually looks like:

web service

client app
obj

obj.Add(i, j); obj.Add(10,


20);
.asmx
proxy
Web server
<Add>

<n1>10</n1>

<n2>20</n2>
</Add>
HTTP request: Service1.asmx

Microsoft 14
Summary

• Pretty powerful stuff!

• Lots of technology be used underneath:


– XML for parameter-passing
– SOAP as protocol
– HTTP
– ASP.NET
– IIS

Microsoft 15
References

• Books:
– Y. Shohoud, "Real World XML Web Services: for .NET and VB
.NET Developers"

• Web sites:
– http://msdn.microsoft.com/webservices

Microsoft 16
Lab?

• Work on lab #6, "Web Services"…

Microsoft 17

Potrebbero piacerti anche