web services

Download Report

Transcript web services

Web Services
ASP.NET Web Services

Goals of ASP.NET Web services:



To enable cross-platform, crossbusiness computing
Great for “service” based operations
that have few methods: Google
searches, Amazon integration, etc.
ASP.NET Web services are
“method-oriented”, not objectoriented

Everything is passed by value: no
references to server objects
ASP.NET Web Services





Usually uses SOAP over HTTP POST –
platform independent messages
Hosted in IIS
 Can use built-in authentication and
encryption via IIS
Technically stateless, but can use regular
ASP.NET Session variables
Very easy to use, with good support in Visual
Studio.NET
Doesn’t support:
 Events / callbacks
 Object references
Standards-Based

SOAP (Simple Object Access Protocol)


WSDL (Web Service Description Language)


Document describing the message
exchange contract
DISCO (Discovery)


XML-based protocol for messaging
Simple protocol for publishing available services
UDDI (Universal Description Discovery and
Integration)

Yellow pages directory for services
SOAP
Simple Object Access Protocol




XML based protocol to exchange
structured and typed information
Remote Procedure Calls (RPC)
Serialization Rules (XSD)
Extensible
WSDL
Web Service Definition Language




An XML-based grammar for describing
the capabilities of Web Services
Extensible
Jointly developed by Microsoft and IBM
Similar in concept to IDL, but it’s not IDL
 To parse WSDL you need XML parser
UDDI
Universal Description, Discovery and Integration

A project to speed interoperability
and adoption for web services




Standards-based specifications for
service description and discovery
Shared operation of a business registry
on the web
Partnership among industry and
business leaders
Open process with clear roadmap to
a standards body
Overview of XML Web Service
Architectures
UDDI
(XML Web Service Broker)
Internet
Bind
XML Web Service
Consumer
XML Web Service
Provider
Web Services As an Implementation of a
Service-Oriented Architecture
UDDI
IIS
.NET
Web Service
SOAP
Any
Client
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
XML Web Services Mapping
The .NET Framework provides
a bi-directional mapping
Application
Concepts
Web
Framework
Data
XML
Objects
Schema
XSD
Classes
Services
WSDL
Methods
Invocation
SOAP
Calls
Simple Example
<%@ WebService Language="C#" Class="HelloWorld" %>
using System;
using System.Web.Services;
public class HelloWorld : WebService {
[WebMethod]
public String SayHelloWorld() {
return "Hello World";
}
}
SOAP

Simple Object Access Protocol

XML-based standard that defines how
method calls can be made over HTTP,
and how the server’s response should
be formatted
You need to know it because


in certain circumstances where you might
want to use SOAP to exchange special
“meta” information along with each
method call
SOAP Elements



Envelope (mandatory)

Top element of the XML document representing the
message
Header (optional)

Determines how a recipient of a SOAP message
should process the message

Adds features to the SOAP message such as
authentication, transaction management, message
routes, etc…
Body (mandatory)

Exchanges information intended for the recipient of
the message.

Typical use is for RPC calls and error reporting.
POST /HelloWorld/Hello.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/Add"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope …>
<soap:Header>
<AuthHeader xmlns="http://tempuri.org/">
<Username>avi</Username>
<Password>xM76w@</Password>
</AuthHeader>
</soap:Header>
<soap:Body>
<Add xmlns="http://tempuri.org/">
<a>23</a>
<b>44</b>
</Add>
</soap:Body>
</soap:Envelope>
SOAP Fault



Used to carry error and/or status information
within a SOAP message
Appears within the SOAP body
Defines the following:




faultcode (mandatory)
Faultstring (mandatory)
faultactor (optional)
Detail
SOAP Fault Example
<SOAP:Fault>
<faultcode>SOAP:Server</faultcode>
<faultstring>Internal Application Error</faultstring>
<detail xmlns:f=“http://www.a.com/CalculatorFault”>
<f:errorCode>794634</f:errorCode>
<f:errorMsg>Divide by zero</f:errorMsg>
</detail>
</SOAP:Fault>
Soap Extensions
Creating


Create a class derived from
SoapExtension
Create a class derived from
SoapExtensionAttribute
Overload
the constructor if necessary
Define any custom properties
Overload the ‘ExtensionType’ property to
return the type of your derived
SoapExtension class

Apply the attribute to a web method or
web service class
Soap Extensions
Uses




Used for More Advanced Functionality
Intercept Calls to a Web Service
Intercept Calls to a Web Method
Pre and Post Processing
Tracing
Encryption
Compression