ASP+ Web Services

advertisement
Building and Using
Web Services with
ASP.NET
Rob Howard
Program Manager
.NET Framework Team
Microsoft Corp.
Agenda







Overview
Standards Based
Building Web Services
Using Web Services
Beyond the Basics
Web Service Security
Summary
What is a Web Service?

Browser is the most common tool for
accessing information on the Internet



Web browser is not enough…
Devices, etc.
A web service is programmable
application logic accessible via
standard Web protocols

Programmable…


Available to a variety of clients (platform independent)
Standard protocols…

Network level interoperability
Common Questions/Issues


How do you publish the location of a
web service?
How do you describe a web service?



Challenges



What protocols does it support?
What data types does it use?
Programming model
Understanding of protocols, serialization,
discovery, etc.
Solutions today still have complexities:


Microsoft SOAP Toolkit
IBM (SOAP Toolkit)
Standards Based

SOAP (Simple Object Access Protocol)


WSDL (Web Service Description Language)


XML document describing the location and
interfaces a particular service supports – the
client's contract
DISCO (Discovery)


Explicit serialization (HTTP + XML description)
protocol used in service exchanges
XML document describing (URI) of service
UDDI (Universal Description Discovery and
Integration)

Yellow pages directory for services
Web Services (In Practice)
Find a Service
http://www.uddi.org
UDDI
Link to DISCO or WSDL document
Discovery
Web
Service
Consumer
http://yourservice.com
HTML or XML with link to WSDL
How do we talk? (WSDL)
http://yourservice.com/?WSDL
XML with service descriptions
Let me talk to you (SOAP)
http://yourservice.com/svc1
XML/SOAP BODY
Design-Time or Dynamic
Runtime
Web
Service
ASP.NET Web Services

Goal: Make building web services
easy

Compiled on first request or pre-compiled
First class feature of ASP.NET

File extension is .asmx


Write application logic


Use features of .NET to enable SOAP
We’re doing the interop work…
ASP.NET Web Services

Part of the ASP.NET application model



The web service emits no UI



Web Service is represented by an URL
Access to common objects: Request,
Session, Application, etc.
SOAP is for applications
However….
Supports multiple protocols


Including SOAP
Extensible…
Demo: Simple and Complex

Demo 1 – Writing a simple service


Demo 2 – Comparing VB and C#


Add
Fibonacci
Demo 3 – Writing a more complex service

Data Access
.asmx Deconstructed
3 Mandatory additions, 1 optional addition
 <%@ WebService class=“[class]" %>


Imports System.Web.Services


Required namespace
[WebMethod] or <WebMethod()>


Names the class and/or language used
Method is ‘web callable’
WebService base class

Access ASP.NET intrinsic objects
Protocols

Http-Get / Http-Post


Html forms name/value
SOAP (Simple Object Access Protocol)





Simple, lightweight XML protocol for
exchanging structured and typed
information on the Web
W3C note (May 8, 2000)
Supported by Microsoft, IBM, and others
Data is sent via POST (or M-POST)
Extensible XML document (Envelope,
Encoding Rules, RPC)
Using Web Services

Proxy characteristics



Visual Studio.NET


Classes are strongly typed
Supports both async and sync
Add Web Reference to a Project
WebServiceUtil.exe



Classes can be created in any .NET
language
WSDL file from a given .NET class
Defined server .NET class from an WSDL
Demo: Building Proxies

Demo 1 – Building a Proxy with VS.NET


Data Access
Demo 2 – Building a Proxy with Command line
tool

Data Access
Beyond the Basics

Soap Headers




XML Attributes




Great way to send out of band data
Not part of the body
Similar to HTTP Headers
Shape the XML to the format you need
XmlAttribute, XmlElement, XmlArray
SoapAttribute, SoapElement, SoapArray
Screen Scrape

Turn any HTML site into a web service*
Demo: Beyond the Basics

Demo 1 – Working with SOAP Headers


Demo 2 – Shaping an XML document


Simple
Order Details
Demo 3 – Screen Scraping

Barnes and Noble
Built-in Security Features

Data hiding (encryption):




Supports HTTPS
Use .NET Crypto classes ‘roll your own’
Beta 1 does not support certificates
Authentication / Authorization



Supports Forms authentication
Supports Windows authentication
Supports ‘roll your own’
Design Suggestions





Know and understand the supported
data types
Don't send unnecessary data (such as
an image) when you can send a URL
Eliminate latency in the server first
Use caching where possible
Build the service to be asynchronous if
the potential exists to block other work
Design Suggestions




Handle client errors when the server is
unavailable
Cache data from the service where
possible, rather than requesting the
same data 100 times
Be efficient about the number of
requests for dynamic data - collapse
multiple web service methods into one
Read the SOAP, DISCO, and WSDL
specs
Summary

Building and using web services is .NET

Microsoft provides the leading platform for
building web applications and services



Great support for XML, HTTP, HTML
Full extensibility enables developers to support
the latest protocols
ASP.NET technology makes writing web
services simple




Share application logic
Use existing skills and knowledge
Consistent development framework
Tool support is incredible!
Resources

Microsoft ASP.NET Web Site


Books



http://www.asp.net
Wrox - “Preview of ASP+“
Others definitely on the way
Additional Sites





http://msdn.microsoft.com/
http://www.4guysfromrolla.com/
http://www.asptoday.com
http://www.aspfree.com
http://www.aspng.com/
Web Services Adopters
Download