System.Net package
The
System.Net namespace provides a simple programming interface for many of the protocols used on networks today
classes
Various
Cookie, CookieException Dns, DnsPermission HttpWebRequest, HttpWebResponse IPAddress, IPEndPoint, IPHostEntry
System.Net.Socket Classes
Socket TcpClient TcpListner UdpClinet Enumeration: ProtocolFamily,AddressFamily, ProtocolType.
Web Services Overview
Objectives
Background
Microsoft® .NET Framework Microsoft ASP.NET
Web Services
Overview
Concepts and Architecture Design and Create Web Services Consume Web Services
Contents
Section
Section
1: Overview
2: Architecture
Microsoft .NET framework and ASP.NET
Section
3: Creating Web Services 4: Using Web Services 5: Advanced Web Services
Section
Invoking and consuming Web Services
Section
State Management, Security, and Transactions
Summary
Section 1: Overview
“Looking
What are
Back ...“
Web Services?
Distributed
Web applications
Looking Back ...
Traditional
distributed computing
Client/server model Distributed object model
Components: packaging and interoperability
Remoting: remote method invocation COM, CORBA, Java RMI and EJB
Microsoft
Windows DNA
DNA (Distributed interNet Application) Architecture DHTML, COM, ASP, Message Queuing
What’s Wrong with That?
Distributed
object models don„t scale to the Internet
Tightly coupling service and consumer
Need for homogeneous infrastructure Versioning problems
Limited
COM support on non-Windows platforms
is a remoting architecture
CORBA
CORBA Component Model Server object implementation not portable
Web Services—Basics
An
XML Web service is a programmable entity that provides a particular element of functionality, such as
application logic, and is accessible to any number of potentially disparate systems
Expose
services to other processes
Internet or intranet
Black
boxes
Component-like, reusable
Based
on the .NET Framework on open standards
ASP.NET Web Services model
Based
HTTP, XML, and SOAP
Interconnect
Web Services—Basics
Applications Different clients (M)any device
Distribution
and integration of application logic are loosely coupled
Web Services Ubiquitous
Universal Valuable
Communication
Data Format
contribution of XML Web services
Fundamental piece of functionality for its clients to use [ Some algorithm ]
To integrate a seemingly disparate group of existing applications [ Isolated island of data and business logic ]
Distributed Web Applications
Devices, Browsers
Access Application
Call Services
Vertical and portal service
Application
Internet
App-specific Web Service
Building block Web Service
OS and local services
Web Services Contract
Section 2: Architecture
The
.NET Framework Architecture
Programming Model
Configuration
The .NET Framework Architecture
Microsoft .NET Framework ASP.NET Web Forms Web Services Windows Forms
Services Framework
Base Data Debug ...
Common Language Runtime System Services
Programming model
Source Code
Compiler CIL & Metadata
Common Language Runtime Execution Engine
Class Loader
Class Lib
JIT Compiler
Execution
Managed native Code
Configuration
Concepts
and architecture
Web.Config file Hierarchical configuration architecture
Influence on the actual directory and all subdirectories
Root Dir
Sub Dir1
Web.Config
Sub Dir2
Configuration
Web.Config file
XML based File is kept within the application directory Default and custom configuration
Customized Web.Config file
WebServicesConfiguration class
Contains configuration information
section in Web.Config
Section 3: Creating Web Services
Basics
of Creating Web Services
Infrastructure
Web Services
Code
and Syntax Namespace
Web Services Publishing
Discovery
Creating Web Services—Basics
.asmx file
Virtual path of ASP.NET Web application Stand-alone or part of an existing solution
Web Services
infrastructure
Discovery, description, and wire format
Directories
– Central location to locate XML Web services UDDI (Universal Description, Discovery, and Integration) registry fulfill this role. - Process of locating, or discovering using the Web Services Description Language (WSDL). DISCO specification - an algorithm for locating service descriptions.
- To understand how to interact with a particular XML Web service, provide a service description To enable universal communication, XML Web services communicate using open wire formats, which are protocols understandable by any system capable of supporting the most common Web standards.
Discovery
Description
Communicate -
HTTP-GET and HTTP-POST or SOAP
Web Services Infrastructure
Request .vsdisco
Discovery Return disco (XML)
Request WSDL
Web Service Client
Description Return WSDL (XML)
Web Service
Request .asmx Protocol Return response (XML)
Code and Syntax
WebService
Directive
Settings for ASP.NET compilers <%@ WebService Language=value Class=value %>
WebMethod Attribute Code
Declaration Syntax
<%@ WebService Class=“MyClass.MyWebService“ %>
Outline Inline (in C#)
<%@ WebService Language=“C#“ Class=“MathService“ %> using System.Web.Services; public class MathService : WebService { [ WebMethod ] ...
Sample .asmx file
<%@ WebService Language=“C#“ Class=“MathService“ %> using System; using System.Web.Services;
public class MathService { [WebMethod] public int Subtract(int a, int b) { return a - b; } public int Subtract_vs(int a, int b) { return b - a; }
}
System.Web.Services Namespace 1/2
WebService
Base class for Web Services Provides base functionality
For example, WebService.Session
WebServiceAttribute
Optional class to add additional information
[ WebMethod ]
WebMethodAttribute
Makes a method a Web Service method
System.Web.Services Namespace 2/2
WebServiceBindingAttribute
Interface in WSDL Set of operations
WebServicesConfiguration
Contains configuration information section in config.web
WebServicesConfigurationSectionHandler
Publishing a Web Service
Expose
Create
Web Service and Web Service methods
a Web Service proxy and an assembly
Generate proxy with WSDL tool Create an assembly Enables developers to program against Web Services
Publish
WSDL contract and HTML description clients
Web Service
Can be Web applications or browsers
Discovery of Web Services
.vsdisco file
XML-based file
containing links to resources for retrieving WSDL
Stored in the server„s root directory Access via URL and dynamic discovery document
Start discovering with the Disco tool Automatically created by Visual Studio.NET
Global
directory of Web Services through UDDI
Universal Discovery, Description, and Integration (http://www.uddi.org)
Disco.exe
Discovering
Web Services
example:
Command-line
disco /out:location /domain:domain /username:username /password:password
http://localhost/WebService1/ WebService1.vsdisco
WSDL.exe
Web Services
Description Tool
Create client proxy class
Input:
URL of a WSDL file, Proxy language, and protocol Username and password
Output:
Single source file in specified language, containing:
Proxy class Code for network invocation and marshalling
wsdl /l:C# /protocol:protocol /out:filename /namespace:MathServiceSpace MathService.sdl
Section 4: Using Web Services
Application
Invoking
Model
Web Services
Consuming
Web Services Description Language (WSDL)
Web Services
Application Model
Web Service Developer
Web Application Developer
Web Server 1 asmx Service App
.aspx
Web Server 2
Proxy
Web Form
Service App
Invoking Web Services
Web Services
are URL addressable
HTTP request
Protocols
HTTP-GET
Method name and arguments in URL
Method name and arguments in POST body
HTTP-POST
HTTP-SOAP
XML grammar for
Addressing the Web Service Returning results
Invoking: HTTP-GET and HTTP-POST
http://server/appl/service.asmx/method?param=value
Standard
HTTP-GET
Method name = PATHINFO Method arguments = URL query string
Query string key = parameter name
Multiple parameters Only primitive .NET runtime data types
Result is an XML document
Any .NET data type
HTTP-POST
Similar to GET, but with arguments in the form body
Invoking: HTTP-SOAP
XML
grammar for
all standard .NET data types and value classes
Web Service method, method parameters, results
Supports
Additionally: classes, structs, datasets
Class
and struct marshalling
Serialization in XML format
Consuming Web Services
Request
without method name and parameters
HTML description of Web Service Service capabilities, methods, protocols
Web Service
can return WSDL
HTTP-GET, HTTP-POST, and HTTP-SOAP
Request
with parameter “?WSDL”
Formal WSDL description of Web Service XML-based grammar Can be used as input for WebServiceUtil.exe
WSDL 1/2
XML
grammar, defining:
Services and ports that communicate via messages Binding
Specify a protocol or a data format for a message or a port
Extensions for SOAP 1.1, HTTP GET/POST, and MIME
Public
description of a Web Service and its content
WSDL contract
Core
Elements of WSDL
service, port, and portType operations and messages
WSDL 2/2
An
abstract illustration of WSDL elements
service_1
port_C
port_B service_2
message port_D port_A message
port type
Sample WSDL file
Section 5: Advanced Web Services
State
Management
Security
Transactions Execution
Model Web Applications
Distributed
State Management
Web Services
Use,
are stateless
for example, ASP.NET session state
Restricted to a logical application Context in which a user communicates to a server
Request identification and classification Store data across multiple requests Session events Release of session data
What is a session?
Functionality
.NET State Server
Security Model
Reasons
for Security
Prevent access to areas of your Web server Record and store secure relevant user data
Security
Configuration Authorization, Impersonation
ASP.NET App .NET
Authentication,
Web Client
IIS
OS
Code
Access Security
Walks the call stack to check authorization
Transactions 1/2
Like
ASP.NET Web Forms
Services
COM+
COM+ automatic transactions Atomic, consistent, isolated, durable (ACID)
SQL Server Application Web Service
COM+ transaction context Message Queuing Server
Transactions 2/2
TransactionOption
Property on WebMethod Attribute:
[WebMethod(TransactionOption= TransactionOption.Required)]
Transaction
Modes
Disabled Supported NotSupported Required RequiresNew
Execution Model
Synchronous
Like any other call to class methods
Asynchronous
.NET Framework design pattern Split the method into two code blocks
BeginMethodName EndMethodName
Client has to call Begin and End
Pass a callback function or WaitHandle class
Using Web Services from UI
Completely
separate layout and processing logic
.aspx .aspx.cs
Two (or more) files: .aspx and .aspx.cs or .aspx.vb
Files
for designers and files for programmers
Easy maintainability of your application
Sample
.aspx
<%@ Import Namespace=“MathServiceSpace“ %> ...
.asmx file implements method “Add” WSDL file, returned by the ASP.NET runtime
Sample
C# proxy class, generated by WSDL.exe
[System.Web.Services.Protocols. SoapDocumentMethodAttribute(“http://tempuri.org/Add“)] public int Add(int a, int b)
{ object[] results = this.Invoke(“Add“, new object[] {a, b});
return (int)(results[0]);
} ... public System.IAsyncResult BeginAdd(...
public int EndAdd(...
Summary
.NET
Architecture Overview
and ASP.NET
Web Services
Create Invoke
and Publish Web Services and Consume Web Services Proxy Classes
WSDL and
Program Against Web Services
Questions
A Simple Web Service
ASP.NET QuickStart Tutorial
ASP.NET QuickStart
What Is
It?
Tutorial, ASP.NET samples Syntax, architecture, features
Installation
Install Microsoft .NET Framework SDK
Visual Studio.NET installation and Components Update
Installation of Visual Studio.NET is not mandatory
.NET
Framework Samples
ASP.NET QuickStart ASP.NET Web Services Writing a Simple Web Service
Building a Simple Web Service
Create
your own MathService
.asmx
Implement class MathService and Web methods Request to MathService.asmx WebServiceUtil.exe C# compiler “csc”
Create WSDL file (MathService.wsdl)
Generate C# proxy class (MathService.cs)
Generate Assembly (MathService.dll)
Consuming a Simple Web Service
Implement MathService
client (MathServiceClient.aspx)
ASP.NET UI
Operands Text box Methods Buttons Result Label OnServerClick
Event Handler
TerraServer. Microsoft.net
Overview
What is
it?
Set of Web methods Programmable interface to online database
Aerial imagery and topographical maps
Assumptions for
this tutorial
Visual Studio.NET Internet connection
Tutorial
Create
Create
a new project
application UI
Add
Web reference
Implement functionality
Legal Notices
Unpublished work. 2001 Microsoft Corporation. All rights reserved. Microsoft, Visual Basic, Visual Studio, and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks of their respective owners.