Web Services

advertisement
Web Services
Erdogan Dogdu
CSC 4360/6360
Computer Science Department
Georgia State University
(Adapted from Mark Sapossnek (Boston Uni.) presentation)
Learning Objectives
 Understand the coming Web Services revolution
 Fundamentals of Web Services
 Be able to create and debug a Web Service



Using the .NET Framework SDK
Using Visual Studio.NET
Using Sun Microsystem’s Java Web Services
Development Pack (JWSDP)
Agenda







Web Services Overview
Underlying Technologies
Developing a Web Service
Consuming Web Services
Miscellaneous
.NET My Services
Demo using Sun’s JWSDP
Web Services Overview
Business Today
 CEO challenges



Revamp customer service
Overhaul supply chain
Speed up the decision process
 CIO challenges



Reorient IT architecture
Connect with a limitless number of external
constituents
Extend processes to external constituents
Web Services Overview
Internet Business Processes Span Companies
Web Services Overview
Technology Fabric Must Span Companies Too
Web Services Overview
Drivers
 Companies, suppliers, partners, and customers
must be able to work together



Faster than ever before
Over the Internet
Or risk “death by isolation”
 Leverage Internet cost structure
Web Services Overview
Possible Solutions
 Distributed computing
 Web sites (portals)
 Web Services
Web Services Overview
Distributed Computing
 Client/server model


Doesn‘t scale
Not secure
 Distributed object model



Components: packaging and interoperability
Remoting: remote method invocation
COM, CORBA, Java RMI and EJB



Not Internet-friendly
Interoperability issues: poor/non-existent standards
Tightly coupled: still doesn‘t scale
Web Services Overview
Distributed Computing
 3-tier Application Architecture

Great way to build scalable Web applications
 But such applications are silos


Integration is an afterthought
They can be integrated behind the firewall


Even that can be a problem
They do not provide a way to integrate across the
firewall (i.e. over the Internet)
Web Services Overview
Portals
Ads
Mail
Other
Svcs
Calendar
Weather
Finance
News
Web Services Overview
Portal Limitations





No standard way to expose functionality
Integration is expensive and error-prone
Hard to outsource
Not designed to be used outside original scope
The problem?



HTML is designed for presentation to people
Can’t repurpose it in a general, reliable way
Don’t even think about screen scraping
Web Services Overview
What Is a Web Service?
 The solution? Web Services!
 A Web Service exposes functionality to a consumer



Over the Internet or intranet
A programmable URL
Functions you can call over the Internet
 Based on Web standards

HTTP, XML, SOAP, WSDL, UDDI, with more to come
 Can be implemented in any language on any platform
 Black boxes

Component-like, reusable
Web Services Overview
What Is a Web Service?
 A Web Service combines the best features of
distributed computing and portals and eliminates
the worst


Provides a mechanism for invoking methods remotely
Uses Web standards (e.g. HTTP, XML) to do so
Web Services Overview
What Is a Web Service?
 Web Services allow you to interconnect:




Different companies
Many/any devices
Applications
Different clients

Not just browsers
 Distribution and integration of application logic
 Enable the programmable Web

Not just the purely interactive Web
 Web Services are loosely coupled
Web Services Overview
What is a Web Service?





New paradigm for Internet development
Deliver applications as services
Richer, customer-driven experience
Continuous delivery of value/bits
Third-generation Internet
Web Services Overview
Evolution of the Web
HTML, XML
HTML
HTML
HTML, XML
Generation 1
Generation 2
Generation 3
Static HTML
Web Applications
Web Services
Web Services Overview
Benefits
 Everyone



Leverage existing infrastructure
“Build or buy” development decisions
Minimize development time/costs
 Enterprises


Integration imperative
Dynamic, easy B2B relationships
 New Web-based businesses



Greater personalization
New services/new revenue streams
Be “everywhere” vs. single destination
Web Services Overview
Possibilities
 Scenario: Planning a trip



Go to Expedia site (or Travelocity, or …)
Log in.
Find the flights you want






Don’t have to reenter seat/meal/airline/frequent flyer/… info
System can find lowest price fare by looking at your calendar(s)
Purchase tickets w/o entering credit card #
Flight info automatically added to your calendar and your
spouse’s calendar
Book rental car/hotel w/your preferences; added to calendar
On day of trip get notified of flight status via
email/toast/pager/cell phone
Web Services Overview
Application Model
Partner
Web Service
Other Web Services
Internet + XML
End Users
YourCompany.com
Application Business Logic Tier
Data Access and Storage Tier
Other Applications
Partner
Web Service
Web Services Overview
Sample Web Services
 E-commerce: order books, office supplies,
other products
 Track packages: UPS, FedEx
 Weather
 Maps
 Telephone redirection, customizable rules
and messages
Agenda






Web Services Overview
Underlying Technologies
Developing a Web Service
Consuming Web Services
Miscellaneous
.NET My Services
Underlying Technologies
XML Is the Glue
Connectivity
Connect
the Web
Presentation
Browse
the Web
Connecting
Applications
Program
the Web
Underlying Technologies
Web Services Stack (Standards)
Directory: Publish & Find Services:
UDDI
Description: Formal Service Descriptions:
WSDL
Wire Format: Service Interactions:
SOAP
Universal Data Format:
XML
Ubiquitous Communications:
Internet
Simple, Open, Broad Industry Support
Underlying Technologies
Web Services Stack
 Discovery

Directory allows potential clients to locate relevant
Web Services


UDDI
A Description language defines the format of methods
provided by a Web Service

WSDL
Underlying Technologies
Web Services Stack
UDDI
Description
WSDL
http://www.ibuyspy.com/ibuyspycs/InstantOrder.asmx?wsdl
Request Service Description
Return Service Description (XML)
Wire Format
Request Service
Return Service Response (XML)
SOAP
Web Service
Web Service Client
Link to Discovery Document (XML)
UDDI or
other
directory
service
Directory
http://www.uddi.org
Locate a Service
Underlying Technologies
Web Service Wire Format
 The Web Service Wire Format specifies how
specific messages are exchanged



HTTP-GET
HTTP-POST
SOAP
 HTTP-GET and HTTP-POST use a minimal
HTTP interface to invoke Web Services

Limited support for data types
 SOAP provides a robust HTTP/XML interface

Extensive support for data types
XML Overview
XML Basics
 XML is designed to represent and transfer
structured data

In HTML: <p>Jan 15, 2000 </p>

In XML: <OrderDate>Jan 15, 2000</OrderDate>
 XML does not display or transform data


XML separates data from formatting and transforming
HTML and XML are both derived from SGML

In different ways
XML Overview
XML Syntax
 XML is composed of tags and attributes

Tags can be nested

Representing entities, entity properties, and entity hierarchy
<ROOT>
<Orders OrderID="10643" CustomerID="ALFKI"
EmployeeID="6" OrderDate="1997-08-25T00:00:00"
RequiredDate="1997-09-22T00:00:00"
ShippedDate="1997-09-02T00:00:00" />
</ROOT>
XML Overview
XML Schemas
 XML schemas describe the structure of an XML
document

XML schemas describe the tag and attribute
specifications



Simple and compound data types
XML schemas also describe constraints on the
contained text
XML schemas and the DTD are mutually exclusive
SOAP
Overview
 A lightweight protocol for exchanging information
in a distributed, heterogeneous environment

It enables cross-platform interoperability
 Interoperable



OS, object model, programming language neutral
Hardware independent
Protocol independent
 Works over existing Internet infrastructure
SOAP
Overview
 Guiding principle: “Invent no new technology”
 Builds on key Internet standards



SOAP ≈ HTTP + XML
SOAP 1.2, W3C working draft
Tutorial:
http://www.w3.org/TR/2002/WD-soap12-part0-20020626/
 The SOAP specification defines:




The SOAP message format
How to send messages
How to receive responses
Data encoding
SOAP
SOAP Is Not…
 Objects-by-reference

Message-oriented
 Complicated


Doesn’t try to solve every problem in distributed
computing
Can be easily implemented
SOAP
The HTTP Aspect
 SOAP requests are HTTP POST requests
POST /WebCalculator/Calculator.asmx HTTP/1.1
Content-Type: text/xml
SOAPAction: “http://tempuri.org/Add”
Content-Length: 386
<?xml version=“1.0”?>
<soap:Envelope ...>
...
</soap:Envelope>
SOAP
Message Structure
SOAP Message
The complete SOAP message
Headers
Protocol binding headers
SOAP Envelope
<Envelope> encloses payload
SOAP Header
Headers
SOAP Body
Message Name & Data
<Header> encloses headers
Individual headers
<Body> contains SOAP message name
XML-encoded SOAP message name
& data
SOAP
SOAP Message Format
 An XML document using the SOAP schema:
<?xml version=“1.0”?>
<soap:Envelope ...>
<soap:Header ...>
...
</soap:Header>
<soap:Body>
<Add xmlns=“http://tempuri.org/”>
<n1>12</n1>
<n2>10</n2>
</Add>
</soap:Body>
</soap:Envelope>
SOAP
Server Responses
 Server replies with a “result” message:
HTTP/1.1 200 OK
...
Content-Type:text/xml
Content-Length: 391
<?xml version=“1.0”?>
<soap:Envelope ...>
<soap:Body>
<AddResult xmlns=“http://tempuri.org/”>
<result>28.6</result>
</AddResult>
</soap:Body>
</soap:Envelope>
SOAP
Encoding Complex Data
 Data structures are serialized as XML:
<soap:Envelope ...>
<soap:Body>
<GetStockDataResult xmlns=“http://tempuri.org/”>
<result>
<Description>Plastic Novelties Ltd</Description>
<Price>129</Price>
<Ticker>PLAS</Ticker>
</result>
</GetStockDataRseult>
</soap:Body>
</soap:Envelope>
SOAP
Security and Features
 Builds on HTTP Security

HTTPS
 Developers / IT choose which methods to
expose explicitly
 Does not pass application code
 Firewall-friendly
 Type safe
SOAP
Industry Support









Sun Microsystems
DevelopMentor Inc.
Digital Creations
IONA Technologies PLC
Jetform
ObjectSpace Inc.
Rockwell Software Inc.
SAP
Compaq









Microsoft
Rogue Wave Software Inc.
Scriptics Corp.
Secret Labs AB
UserLand Software Inc.
Zveno Pty. Ltd.
IBM
Hewlett Packard
Intel
SOAP
Example of a SOAP Request
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml;
charset="utf-8"
Content-Length: nnnn
SOAPAction: "Some-URI“
<SOAP-ENV:Envelope xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV: encodingStyle =
"http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m="Some-URI">
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP
Example of a SOAP Response
HTTP/1.1 200 OK
Content-Type: text/xml;
charset="utf-8"
Content-Length: nnnn
<SOAP-ENV:Envelope
xmlns:SOAP-ENV= "http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV: encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/"/>
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse xmlns:m="Some-URI">
<Price>34.5</Price>
</m:GetLastTradePriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP
Example of a SOAP Error
HTTP/1.1 500 Internal Server Error
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode> SOAP-ENV: MustUnderstand </faultcode>
<faultstring>SOAP Must Understand Error
</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
WSDL
Web Services Description Language
 XML schema for describing Web Services
1.
Service interface definition
–
2.
Abstract semantics for Web Service
Service implementation definition
–
Concrete end points and network addresses where Web
Service can be invoked
 Clear delineation between abstract and concrete
messages
WSDL
WSDL Schema
Interface
Implementation
<definitions>
<definitions>
<import>
<import>
<types>
<service>
<message>
<portType>
<binding>
<port>
WSDL
WSDL Schema
Interface
• <definitions> are root node of
WSDL
<definitions>
• <import> allows other entities
for inclusion
<import>
• <types> are data definitions xsd
<types>
• <message> defines parameters
of a Web Service function
<message>
<portType>
• <portType> defines input and
output operations
<binding>
• <binding> specifies how each
message is sent over the wire
WSDL
WSDL Schema
Implementation
• <service> specifies details
about the implementation
• <port> contains the address
itself
<definitions>
<import>
<service>
<port>
WSDL
WSDL Elements
 Open – allows for other namespaces and thus
highly extensible
 Ability to import other schemas & WSDL
 Provides “recipe” for Web Services
 Provides both interface and implementation
details
 Allows for separation of the two
WSDL
Example
 Demo: MyHello service on db.gsu.edu
http://db.gsu.edu:8080/hello-jaxrpc/hello?WSDL
UDDI
Overview
 UDDI = Universal Description, Discovery, and Integration
 Industry Initiative to address discovery

A registration database for Web Services
 Specifications




Schema for service providers and descriptions
API for publishing and searching
Developed on industry standards (XML, HTTP, TCP/IP, SOAP)
Applies to both XML and non-XML services
 Implementation

Public and private instances of specification
UDDI
The Vision
Advanced Discovery via
Portals and Marketplaces
Marketplace
UDDI Registries and Protocol
Marketplace
Marketplace
Search Portal
Search Portal
Business Users
Technical Users
UDDI
UDDI Information Model
Provider: Information about the
entity who offers a service
tModel: Descriptions of
specifications for services.
1…n
0…n
Service: Descriptive
information about a particular
family of technical offerings
0…n
Binding: Technical information
about a service entry point and
construction specs
Bindings contain references
to tModels. These
references designate the
interface specifications for
a service.
UDDI
UDDI Schema
Interface
Implementation
<businessEntity>
<businessService>
<tModel>
<bindingTemplate>
<businessService>
<tModel>
<bindingTemplate>
UDDI
How UDDI Works: tModel
 tModel = Technology Model
 Generic meta-data structure to uniquely
represent any concept or construct
 Also includes interface protocol definitions
 Powerful abstraction modeling system
 Examples: WSDL files, XML schema,
namespaces, categorization schemes
UDDI
<tModel>
 <tModel> represents meta-data and interfaces
<tModel xmlns="urn:uddi-org:api" tModelKey="UUID:AAAAAAAA-AAAAAAAA-AAAA-AAAAAAAAAAAA">
<name>microsoft-com:creditcheck</name>
<description xml:lang="en">Check credit limits</description>
<overviewDoc>
<overviewURL>http://schema.com/creditcheck.wsdl
</overviewURL>
</overviewDoc>
<categoryBag>
<keyedReference
tModelKey="UUID:CD153257-086A-4237-B336-6BDCBDCC6634"
keyName="Consumer credit gathering or reporting services"
keyValue="84.14.16.01.00"/>
<keyedReference
tModelKey="UUID:C1ACF26D-9672-4404-9D70-39B756E62AB4"
keyName="types" keyValue="wsdlSpec"/>
</categoryBag>
</tModel>
UDDI
Providers, Services And Bindings
 Providers



Examples: Accounting Department, Corporate Application Server
Name, Description, Contact Information
Categorization and Identification Information
 Services



Examples: Purchase Order services, Payroll services
Name, Description(s)
Categorization Information
 Bindings


Description(s), access points, parameters
Examples: Access Point (http://...) for Web Service
UDDI
<bindingTemplate>
 <bindingTemplate> represents data and
implementation details
<bindingTemplate serviceKey="33c3d124-e967-4ab1-8f51d93d95fac91a" bindingKey="48f2bc6b-a6de-4be8-9f2b2342aeafaaac">
<accessPoint URLType="http">
http://localhost/HelloWorld/Service1.asmx
</accessPoint>
<tModelInstanceDetails>
<tModelInstanceInfo tModelKey="uuid:64c756d1-33744e00-ae83-ee12e38fae63“/>
</tModelInstanceDetails>
</bindingTemplate>
UDDI
Important UDDI Features
 Neutral in terms of protocols – as a registry, it
can contain pointers to anything
 Can search by business, service, Web Service
(tModel), binding
 Usage of Globally Unique Identifiers (GUIDs)
 Specification allows public and private nodes
 Delineation between interface and
implementation
Agenda







Web Services Overview
Underlying Technologies
Developing a Web Service
Consuming Web Services
Miscellaneous
.NET My Services
Demo for Sun’s JWSDP
Developing a Web Service
Basics
 Web Service


Implemented in ASP.NET
Similar to Web Forms, but







have a .asmx file extension
contains code, w/o UI
Lives in a virtual directory
Can have a code-behind
ASP.NET provides simple test harness
ASP.NET automagically generates WSDL
Can use .NET Framework classes and
custom assemblies and classes
Developing a Web Service
Code and Syntax
 Codebehind
<%@ WebService Language="c#" Codebehind="MyWebService.cs"
Class="FirstWebService.MathService" %>
 Inline (in C#)
<%@ WebService Language=“C#“ Class=“MathService“ %>
using System.Web.Services;
public class MathService : WebServices {
[WebMethod]
public int Add(int num1, int num2) {
return num1 + num2;
}
}
Developing a Web Service
Demo
 Demo: HelloWorld.asmx
 Demo: MathService.asmx
Developing a Web Service
Tools
 Notepad

Just create a .asmx file
 Visual Studio.NET

Create ASP.NET Web Service project
Agenda






Web Services Overview
Underlying Technologies
Developing a Web Service
Consuming Web Services
Miscellaneous
.NET My Services
Consuming Web Services
Overview
 Locate the desired Web Service


UDDI
DISCO (Microsoft .NET specific)
 Get detailed description of Web Service

WSDL
 Create a proxy that represents the Web Service

Proxy has the same methods/arguments/return
values as the Web Service
 Application instantiates and uses the proxy as if
it were a local object
Consuming Web Services
Overview
Web Service
Developer
Create with
WSDL.exe
Web Application
Developer
Web Server S
.asmx
Service App
Web Server C
Proxy
.cs
Web Form
.aspx
Service Application
Consuming Web Services
Overview
 Web Services are URL addressable

HTTP request/response
 Can request WSDL via URL
 Can invoke via:



HTTP-GET
HTTP-POST
HTTP-SOAP
Consuming Web Services
Invoking via HTTP-GET
 HTTP-GET
http://localhost//MathService.asmx/Multiply?a=11&b=11

Result is an XML document
<?xml version="1.0" encoding="utf-8" ?>
<int xmlns="http://www.microsoft.com/MathService/">121</int>
Consuming Web Services
Invoking via HTTP-POST
 HTTP-POST
POST /MathService.asmx/Multiply HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Content-Length: length
a=11&b=11

Result is an XML document
<?xml version="1.0" encoding="utf-8" ?>
<int xmlns="http://www.microsoft.com/MathService/">121</int>
Consuming Web Services
Invoking: HTTP-SOAP
 XML grammar for

WebMethod, Method parameter, results
 Supports all standard .NET datatypes
and value classes

Additionally: classes, structs, datasets
 Class and struct marshalling

Serialization in XML format
Consuming Web Services
Type Marshalling
 Using HTTP-GET or HTTP-POST

Primitive types




E.g. int, string, float, double, byte, …
Enum types
Arrays of primitives and enums
By-value only
Consuming Web Services
Type Marshalling
 Using SOAP







Primitive types
Enum types
Classes and structs
DataSet
XmlNode
Arrays of all of the above
By-value and by-reference are supported
Consuming Web Services
Trying It Out
 Request without method name or parameters

ASP.NET returns a page listing all methods
http://localhost/MathService.asmx
 Click one of the methods and you can test it out
http://localhost/MathService.asmx?op=Multiply

Specify parameters and Invoke


Only for primitive data types
Sample requests/responses
Consuming Web Services
Trying It Out
 Request with parameter “WSDL”



Formal WSDL description of Web Service
XML-based grammar
Can be used as input for wsdl.exe
http://localhost/MathService.asmx?WSDL
Consuming Web Services
Creating a Proxy
 Use wsdl.exe to generate a proxy
wsdl http://localhost/MathService.asmx?WSDL


Creates MathService.cs
Contains MathService class, derived from
SoapHttpClientProtocol in the
System.Web.Services.Protocols namespace



Or HttpGetClientProtocol or
HttpPostClientProtocol
You can instantiate these classes dynamically
Proxy embeds URL to the Web Service in the
constructor
Consuming Web Services
Using Visual Studio.NET
 Use Add Web Reference to search UDDI or to
discover Web Services given a URL
 This builds a proxy, and you can start using the
Web Service immediately

Visual Studio.NET essentially calls disco.exe and
wsdl.exe for you
Consuming Web Services
Demos
 Demo: TestServices.sln


Consumes: MathService.asmx
Consumes: DataService.asmx
Agenda







Web Services Overview
Underlying Technologies
Developing a Web Service
Consuming Web Services
Miscellaneous
.NET My Services
Demo for Sun’s JWSDP
Miscellaneous
State Management
 Web Services are stateless
 Use ASP.NET session state mechanism

What is a session?



Functionality





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
.NET State Server Process
Miscellaneous
Security Model
 Reasons for security


Prevent access to areas of your Web server
Record and store secure relevant user data
 Security configuration
 Authentication, Authorization, Impersonation
Web
Client
IIS
ASP.NET
App
 Code Access Security

Are you the code you told me you are?
.NET
OS
Miscellaneous
HTTP and Firewalls
Client
U
DCOM
Service
Port 80
Web
Service
U
RMI
Service
Firewall
Miscellaneous
Secure Sockets Layer
Raw HTTP
Client
<soap:Body>
<AddResult xmlns= ...>
<result>28.6</result>
</AddResult>
</soap:Body>
SSL
Client
<soap:Body>
<AddResult xmlns= ...>
<result>28.6</result>
</AddResult>
</soap:Body>
Web
Service
Web
Service
Miscellaneous
Security Model
 Similar to securing a Web site

Clients are computers and businesses
 Possible options with IIS







IPSec
Basic
Basic over SSL
Digest
Integrated
Client certificates
Passport?
Miscellaneous
Transactions
 Like ASP.NET Web Forms
 COM+ services


COM+ automatic transactions
atomic, consistent, isolated, durable (ACID)
SQL Server
Application
Web Service
COM+
transaction context
MSMQ Server
Miscellaneous
Transactions
 [WebMethod(Transaction=
Transaction.Required)]
 Transaction modes




Supported
NotSupported
Required
RequiresNew
Miscellaneous
Execution Model
 Synchronous

Like any other call to class methods
 Asynchronous

Split the method into two code blocks



BeginMethodName
EndMethodName
CLR determines if operation has finished
Miscellaneous
SOAP Toolkit
 An SDK for building Web Services using
Visual Studio 6.0



Components allowing an ASP page to act as a facade
for a COM object
Wizard for generating WSDL descriptions from COM
servers
Client-side engine for dynamically creating an
Automation proxy from WSDL
Miscellaneous
SOAP Toolkit
 Available at
http://msdn.microsoft.com/downloads/defau
lt.asp?URL=/code/sample.asp?url=/msdnfiles/027/001/580/msdncompositedoc.xml
 Easily expose COM components as Web
Services through SOAP and schemas
 Client infrastructure for Visual Studio
 Focused on one way of creating Web Services
Miscellaneous
SOAP Toolkit
 Remote Object Proxy Engine (ROPE)





A set of COM components you can use to build SOAP
messaging into your application
Client-side infrastructure to build Web Services
Server side infrastructure
Greatly simplifies SOAP programming
You can use SOAP without using ROPE
Agenda







Web Services Overview
Underlying Technologies
Developing a Web Service
Consuming Web Services
Miscellaneous
.NET My Services
Demo for Sun’s JWSDP
.NET MyServices
What If You Could…
 Access the entire Internet with one password
 Buy anything instantly
 Be alerted of the things you care about
 Change your address in one place
 Use a single calendar across your work
and family
.NET MyServices
How Would That Change Your Business?





Reach new customers
Provide better service
Create revolutionary new applications
Gain competitive advantage
Differentiate your company
.NET My Services creates the opportunity
to do things that couldn’t be done before
.NET MyServices
Motivation
?
?
?
?
 Users have multiple technology islands
 Inconsistent, impersonal, user not in control
 Islands don’t work well together
.NET MyServices
User-Centric Web Services
.NET Alerts
.NET Inbox
.NET Calendar
.NET Application Settings
.NET Contacts
.NET Documents
.NET Lists
.NET Devices
.NET Categories
.NET FavoriteWebsites
.NET Location
.NET Passport
.NET Presence
.NET Profile
.NET Wallet
.NET MyServices
.NET Alerts Available Now
 Alerts are a better way to touch customers so they can act on
new info quickly



Product shipment
Outbid at an auction
…
 User in control


Routed based on user preferences
Users opt-in and cannot be spammed
 You can reach a huge customer base today




MSN Messenger has more than 40 million users
Many other end-points: Windows XP, cell phones…
Alerts SDK here now; test cloud coming later this year
On the road to .NET My Services
Conclusion






Web Services Overview
Underlying Technologies
Developing a Web Service
Consuming Web Services
Miscellaneous
.NET My Services
Resources
 Web Services Essentials
http://msdn.microsoft.com/library/default.asp?URL=
/library/techart/webservicesessentials.htm
 SOAP
http://msdn.microsoft.com/soap
 SOAP Specification
http://www.w3.org/TR/SOAP/
 Don Box on SOAP
http://msdn.microsoft.com/msdnmag/issues/0300/soap
/soap.asp
 Introduction to SOAP
http://www.w3.org/2000/xp/Group/Admin/minutes-oct1100
/soap-xp-wg_files/frame.htm
Resources
 WSDL Specification
http://www.w3.org/TR/wsdl
 Sun Microsystems: http://java.sun.com/webservices
 IBM: http://www.ibm.com/webservices
 Microsoft: http://www.microsoft.com/webservices
 A Quick Introduction to WSDL
http://msdn.microsoft.com/library/default.asp?url=/library
/enus/soap/htm/soap_overview_72b0.asp?frame=true
 UDDI
http://www.uddi.org
http://uddi.microsoft.com
Resources
 HailStorm
http://www.microsoft.com/net/hailstorm.asp
 Building Web Services with SOAP and ASP.NET
http://msdn.microsoft.com/msdnmag/issues/01/02/WebC
omp/webcomp.asp
 GXA Web Services Specifications
http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnsrvspec/html/wsspecsover.asp?frame=true
Download