WebServices - June 2023

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 42

Web Services

References

Programming Microsoft .Net,


Jeff Prosise, Microsoft Press, 2002
Web Services, Mark Sapossnek, Power-
point presentation available from
www.gotdotnet.com
Web Service Definition
A web service is a set of methods exposed
through a web interface.
 Accessible through HTTP
 Provides internet access to RPC-like calls that de-
fine the service
 Web service messages are encoded in an XML di-
alect called Simple Object Access Protocol (SOAP)
Service model assumes services are always
available
Benefits of the Web Service Model

Web services use this special architec-


ture because it:
 Can be used from any platform.
 Uses a standard, well-know channel.
 Is routable and will pass through most
firewalls.
 Uses the same security mechanisms as any
web site.
Service Oriented Architecture
Framework provides a set of fundamental operations
via web services
 May also provide local services using Windows services
All applications based on that framework share the
common services
 Don’t have to recreate the same functionality for each new
application
Can provide those same services to Partner busi-
nesses, suppliers, and customers
Longhorn’s Indigo model is a service oriented archi-
tecture
Comparing MicroSoft
Web Service with ASP.Net

ASP.NET Web Service


 Uses ASP pipeline  Uses ASP pipeline
 Applic.aspx  Applic.asmx
 Applic.aspx.cs  Applic.asmx.cs
 Uses Session, …  Uses Session, …
 Visual Interface in-  RPC Interface in-
voked from browser voked by ASP or
Winform app
through proxy
Web Service Protocols
Web services are based on four protocols:
 Extensible Markup Language (XML)
 defines complex data structures
 Web Service Description Lanaguage (WSDL)
 Specifies the interface of the web service
 Discovery Protocol (DISCO)
 Pointer to all web services on a particular web site
 Universal Description, Discovery, and Integration
(UDDI)
 Central repository of web service descriptions
Web Service Structure
Underlying Technologies
Web Services Stack

Directory UDDI

directory
http://www.uddi.org

UDDI or
service

other
Locate a Service

Link to Discovery Document (XML)


Inspection
DISCO
Web Service Client

http://www.ibuyspy.com/ibuyspy.disco
Request Discovery Document

Return Discovery Document (XML)

Description WSDL

Web Service
http://www.ibuyspy.com/ibuyspycs/InstantOrder.asmx?wsdl
Request Service Description

Return Service Description (XML)


Wire Format SOAP
Request Service

Return Service Response (XML)


SOAP Messages
A SOAP Message can be one of three
types:
 Method call
 Contains name of method and parameters
 Method Response
 Return values
 Fault Message
 SOAP fault message if service throws an excep-
tion
 Will get standard HTTP message if transport
fails.
SOAP
Message Structure

SOAP Message The complete SOAP message

Headers Protocol binding headers

SOAP Envelope <Envelope> encloses payload

SOAP Header <Header> encloses headers

Headers Individual headers

SOAP Body <Body> contains SOAP message name

Message Name & Data XML-encoded SOAP message name


& data
WSDL
WSDL Schema
• <definitions> are root node of
Interface WSDL
• <import> allows other entities
<definitions> for inclusion
<import> • <types> are data definitions -
xsd
<types> • <message> defines parameters
of a Web Service function
<message>
• <portType> defines input and
output operations
<portType>
• <binding> specifies how each
<binding> message is sent over the wire
UDDI
UDDI Information Model

Provider: Information about the


entity who offers a service tModel: Descriptions of
specifications for services.
1…n
Service: Descriptive informa-
0…n tion about a particular family of
technical offerings
Bindings contain references
to tModels. These refer-
ences designate the inter-
Binding: Technical information face specifications for a
about a service entry point and service.
0…n
construction specs
Structure of a Microsoft WebService

MyService.asmx, MyService.asmx.cs
 Page Directive:
<%@ Webservice Language=“C#”
Class=“myService” %>
 Class [derived from System.Web.Ser-
vices.WebService]
 Methods decorated with [WebMethod]
Virtual Directory hosting this Application
Consuming Web Services

Web Service Web Application


Create with
Developer WSDL.exe Developer

Web Server S

.asmx Service App Web Server C

Proxy Web Form


.cs .aspx
Service Application
Structure of WebService Client

myService Proxy code


 Generated using disco.exe and wsdl.exe
(see CalcClient.cs code comments)
myServiceClient code
 Ordinary ASP or Winform application
 myService Proxy = new myService();
 Result = Proxy.myMethod(args);
DemoWebService Running

Web service
description

Public web
method
Client of DemoWebService

Instantiating
web service
proxy Adding web
reference
creates
proxy
SOAP Request and Response
HTTP GET and POST exchanges
demo1.wsdl
demo1.disco
Web Service Application Structure
WebService Properties
HttpApplicationState
 Share state among all users of an application.

HttpSessionState
 Share state from page to page for one user.

HttpContext
 Provides access to the server Request and Response objects.

HttpServerUtility
 Provides CreateObject, Execute, and MapPath methods.

User
 Supports authentication of user.
WebMethods
WebMethod methods can pass many of the C# and
CLR types
User defined objects can also be passed if they are se-
rializable:
 .Net XML serializer will not serialize non-public members
 Due to limitations of WSDL language
 User defined types can only be passed with SOAP. GET and
POST won’t work.
 The WSDL contract contains a schema description of any user
defined objects passed by a WebMethod
Web Service Clients

Web Service Clients use Web Service


proxies to communicate with the re-
mote service:
// create proxy instance
demo1WebService.demo1 proxy = new demo1WebService.demo1();

// use proxy
string result = proxy.demoMethod("string from client");
AutoGenerated Proxy

Created when you


set a reference to
web service
Web Services versus Remoting
Web Services:
 Can be used by any platform that understands
XML, SOAP, and WSDL.
 Metadata (types) provided by WSDL
 Hosted by IIS and inherits ASP’s security model.
 Uses HTTP protocol so accessible by web pages
and can pass through most firewalls.
 Can only pass a limited set of user-defined ob-
jects:
 Can’t serialize an object graph or all .Net containers.
Web Services versus Remoting
Remoting:
 Requires .Net platform on client as well as
server.
 Requires custom security (notoriously hard
to get right).
 Metadata provided by assembly.
 Can pass any .Net type, including object graphs
and all .Net containers.
 Rich, but none portable types.
An Example

FileXferService
 Public Interface:
 string[] RequestFileNames();
 Byte[] RequestFile(string FileName);
Browser
View
Client Application View
Creating a Web Service Project
Resulting “Generic” Web Service
Resulting “Generic” Test
Sample Soap Request
Sample “Generic” HTTP GET and POST
Create Console Client
You have to locate the
folder and asmx file, us-

Adding a Web Reference ing explorer, then type in


path here.
Client Accessing Web Service Note:
You also need a
reference to
project so client
knows about web
service type.
Create Proxy Source Code with WDSL.exe
- alternative to adding web reference

Just compile proxy code


along with client to create
working application.
Web Services

Thank you

You might also like