Best Practices for Building Web Services with VS.NET
Download
Report
Transcript Best Practices for Building Web Services with VS.NET
Best Practices for
Building Web Services
with Visual Studio® .NET
Sanguan Thammarojsakul
Microsoft MVP - .NET
Department of Computer Science,
Faculty of Science and Technology
Assumption University of Thailand
What we will cover
ASP .NET Web Services
ACT
SOAP Security
Global XML Web Services Architecture
(GXA)
scalability, interoperability, reliability, and
security
Session Prerequisites
Familiarity with .NET Programming
Know Visual Basic® .NET
Familiar with ASP .NET
Level 300
Agenda
Architecture of Web Services
Testing Web Services
Securing SOAP
Web Services in the Enterprise
Architecture of Web Services
Open Middle Tier Implementation
What is a Web Service?
A website without the user interface
A method for defining interfaces above the
transport protocol
XML Interoperability
Web Services support 4 protocols
Http Get - Interoperable
Http Post - Interoperable
Http SOAP - Interoperable
Import as a DLL for an object interface - .NET
Architecture of Web Services
Implementing XML Services
<WebService(Namespace :=
"http://msdn.microsoft.com/DevT1-46")>
Inherits System.Web.Services.WebService
Declares the interface, indicates that the class
defined is a web service
Parent class for all web services in .NET
<WebMethod()>
Each method which is exposed as part of the
service.
Return values can be supported in any request
format but Output parameters are only
supported in SOAP
Architecture of Web Services
Service Discovery
UDDI: Universal Description, Discovery
and Integration
Design time specification for the discovery of
services and communication of their interface
Does not define the service implementation
and protocol details.
Complemented by WSDL
Managed by an industry-wide consortium; for
details visit http://uddi.org
Agenda
Architecture of Web Services
Testing Web Services
Securing SOAP
Web Services in the Enterprise
Testing Web Services
Default ASMX Pages
Visual Studio creates a default test frame
for each web service
Accessible from the <service>.asmx page
The automated page only supports and
test the http Get protocol
Can act as the starting point for both
functional and performance testing
Testing Web Services
Performance Testing
Application Center Test
Allows for the automated execution of web
based resources using VB Scripts
Two versions
Produces XML based results
Full version in Application Center Server
Developer Version in Visual Studio .NET
Enterprise Architect edition
Supports Side by Side Comparison
Integrated with Performance Counters for
collection of Transaction Cost Analysis
data
Testing Web Services
Transaction Cost Analysis
Transaction Cost Analysis Equation
Cycles = N * S * avg (Pt) / avg(Rps)
Where:
N
= Number of Processors
S
= Speed of Processors
Pt
= System: % Total Processor Time
Rps
= ACT ASP Requests per second
Cycles = Average CPU cycles
Demonstration 1
Transaction Calculator
Service
Run the T_Calc Service
Create a Simple ACT Test
Run a Custom ACT Test
Agenda
Architecture of Web Services
Testing Web Services
Securing SOAP
Web Services in the Enterprise
Securing SOAP
Authentication & SSL
Authentication is supported
Authentication does not protect data
To protect data can use SSL
Selected from Internet Services Manager
NTLM and Basic authentication are available
Use: New Net.NetworkCredential()
From Browser preface call with https://
From Code modify <service>.url property to
include https://
Https is transport specific
Securing SOAP
Encoding & Encryption
UTF-8 Encoding
Can be used for the contents of a SOAP
Message
Allows for the inclusion of binary data
Encryption
.NET supports several forms of encryption
Can be used to protect data without relying
on transport protocol
Requires key synchronization
Demonstration 2
Authentication/Security
Create a service requiring
Authentication
Create a Windows Form Client
Call a Service that Encodes
response Data
Agenda
Architecture of Web Services
Testing Web Services
Securing SOAP
Web Services in the Enterprise
Web Services in the Enterprise
Messaging Infrastructure
Global XML Services Architecture (GXA)
GXA has four key specifications to date
WS-Security
Credential exchange, message integrity, and
message confidentiality
WS-License
Encoding for common license formats
Web Services in the Enterprise
Messaging Infrastructure
WS-Referral
WS-Routing
Partition URL namespaces between nodes
Route messages across intermediate SOAP
nodes
GXA is still under development as an
industry wide standard.
Other specifications may be added as the
standard develops.
Web Services in the Enterprise
SOAP Extensions
SOAP Extensions
Added to the SOAP envelope
Provide a generic means of implementing
additional capabilities.
.NET SoapExtension
System.Web.Services.Protocols.SoapExtension
Will be the core of implementing GXA
Session Summary
Use Web Services as Middleware
Use ACT for lifecycle testing support
Use .NET’s built in mechanisms for
securing web services
SOAP Extensions
For More Information…
MSDN Web site at
WebServices Specifications
http://msdn.microsoft.com/library/default.asp?url=
/library/en-us/dnsrvspec/html/wsspecsover.asp
Reliable XML Web Services
http://msdn.microsoft.com/webservices
http://msdn.microsoft.com/library/default.asp?url=
/library/en-us/dnexxml/html/xml11192001.asp
Using SOAP Extensions for Encryption
http://msdn.microsoft.com/library/default.asp?url=
/library/en-us/dnaspnet/html/asp09272001.asp
For More Information…
Transaction Cost Analysis
Global XML Web Services Architecture
http://www.microsoft.com/applicationcente
r/techinfo/planning/2000/wp_tca.asp
http://www.gotdotnet.com/team/XMLwebse
rvices/gxa_overview.aspx
GotDotNet.com
MS Press
Essential Resources for Developers
To find the latest developer related titles visit
www.microsoft.com/mspress
Training
Training Resources for Developers
Developing XML Web Services Using Visual C#
Building ASP.NET Applications
Course #2524
Course #2063
Programming with Microsoft® Visual Basic .NET
Course #2373
To locate a training provider for this course, please access
mcspreferral.microsoft.com/default.asp
Microsoft Certified Technical Education Centers (CTECs)
are Microsoft’s premier partners for training services
MSDN
Essential Resources for Developers
Subscription
Services
Library, OS, Professional, Enterprise,
Universal Delivered via CD-ROM, DVD, Web
Online
Information
MSDN Online, MSDN Flash
Training &
Events
MSDN Training, Tech-Ed, PDC,
Developer Days, MSDN/Onsite Events
Print
Publications
MSDN Magazine
MSDN News
Membership
Programs
MSDN User Groups
MSDN Subscriptions
THE way to get Visual Studio .NET
Visual Studio .NET
MSDN Subscriptions
MSDN Universal
$2799 new
$2299 renewal/upgrade
Enterprise Developer
• Enterprise lifecycle tools
• Team development support
• Core .NET Enterprise
Servers
MSDN Enterprise
$2199 new
$1599 renewal/upgrade
Professional
• Tools to build applications
and XML Web services for
Windows and the Web
MSDN Professional
$1199 new
$899 renewal/upgrade
NEW
Enterprise Architect
• Software and data modeling
• Enterprise templates
• Architectural guidance
Where Can I Get MSDN?
Visit MSDN Online at
msdn.microsoft.com
Register for the MSDN Flash Email
Newsletter at
msdn.microsoft.com/flash
Become an MSDN CD Subscriber at
msdn.microsoft.com/subscriptions
MSDN online seminars
msdn.mircosoft.com/training/seminars
Attend More MSDN Events