Notes
Slide Show
Outline
1
SOAP
  • (not the lathery kind)
2
Sharing Functionality on the Net
  • How do I utilize functionality on the web
    • Amazon.com sells books
    • Many websites provide stock quotes
    • Measurisk.com provides complex risk analysis
3
Current Situation
  • Web Sites and Web Applications have no good way to share functionality
  • Can show a little Amazon functionality in a frame in your website
    • Limited to HTML/XML
    • Branding is an issue
  • Another alternative is tricks like “Screen Scraping”
4
Where is the Functionality
  • Application Business rules implemented in Business Abstraction Layers
  • Objects expose business functionality
  • Objects usually use one of the major object technologies
    • COM
    • CORBA
    • Java
  • Each Object technology uses a defined protocol to communicate with the object
5
Define Protocol
  • From MSDN – A set of semantic and syntactic rules that determine the behavior of functional units in achieving communication.
  • From IMDB - A mediocre movie with Goldie Hawn
6
Problem
  • Most object technologies use binary protocols that are complex
    • COM
    • Corba
    • Java
    • C++ classes in DLL’s
7
Another Problem
  • Security
    • Objects usually run behind the firewall
    • Exposing them directly to the outside world is completely unacceptable
8
Our Dream
  • A beautiful world where Web Applications peacefully share functionality of business abstraction layers
  • A loving protocol where all object technologies can easily communicate in harmony
  • Some way to make a buck off of all that peace and love
9
Attributes of a Good Solution
  • Simple
  • Object
  • Access
  • Protocol
10
Hmmmmm…
  • HTTP is pretty much everywhere
  • Maybe we can come up with some sort of system where someone can call our object using HTTP
11
Demo
  • Ad Hoc HTTP Object Sharing
12
Calculator Object
  • CalculatorLib.Calculator
    • Add
    • Subtract
    • Multiply
    • Divide
13
Now we have
  • Object exposed through HTTP
  • Incoming requests can be checked using any security system currently in place for the web system
  • We’ve defined Biff’s Ultimately Reasonable Protocol
14
Drawbacks
  • We have to write a separate ASP page for each object
  • Potential clients must know about our object and paste together the correct HTTP request
  • It’s not a very marketable acronym
15
 
16
Let’s standardize
  • This will allow the development of tools that will handle mechanics of the client and server side
  • We need a flexible way to send structured data in a textual format to the server
17
SOAP is just like what we did
  • SOAP’s XML schema are a solution to the problem – not the solution to the problem
  • The SOAP guys did about what I did
    • They spent a lot more time on it
    • They are a lot smarter than me
18
Highlights of the SOAP schema - Call
19
Highlights of the SOAP schema - Call
20
Highlights of the SOAP schema - Call
  • <SOAP-ENV:Envelope>
  • <SOAP-ENV:Header>
  • </SOAP-ENV:Header>


  • <SOAP-ENV:Body xmlns:pmtcalc=“urn:schemas-gautw1-com:Calc”>
  • <Calc:Add>
  • <Op1>6</Op1>
  • <Op2>4</Op2>
  • </Calc:Add>
  • </SOAP-ENV:Body>
  • </SOAP-ENV:Envelope
21
Higlights of the SOAP schema - Response
  • <SOAP-ENV:Envelope>
  • <SOAP-ENV:Header>
  • </SOAP-ENV:Header>


  • <SOAP-ENV:Body xmlns:pmtcalc=“urn:schemas-gautw1-com:Calc”>
  • <Calc:AddResponse>
  • <return>10</return>
  • </Calc:AddRsponse>
  • </SOAP-ENV:Body>
  • </SOAP-ENV:Envelope>
22
Other Issues
  • How do I tell the world what I can do and what I expect (a la COM Type Libraries)
  • Security
23
WSDL
  • “Type Libraries” for Web Services
  • XML definition of available functionality
  • Note – no longer SDL
24
WSDL Details
25
WSDL Details
26
Security
  • Authentication
    • Anonymous
    • Basic
    • Challenge
    • Certificates
  • Authorization
    • ACL
    • Directories
  • Encryption
    • SSL
    • Certificates
27
.NET Demo
28
SOAP Toolkit 2.0
  • Works with VS 6.0
  • Contents
    • Client Side COM Object for assembling XML
      • SOAPSerializer
    • Server Side COM Object for processing XML
      • SOAPClient
    • WSDL Generator  (w/WSML)
    • Additional COM Objects
29
Performance
  • Warning – Values not scientific
  • DCOM Calculator calls – 75 / sec
  • SOAP Calculator calls – 5 / sec
30
SOAP Toolkit – When and Where
  • Beta 1 - Now
    • msdn.microsoft.com/downloads
    • Under Software Development Kits
  • Beta 2 - 2/28/01
  • RTM - 3/30/01
31
Resources
  • www.w3c.org  (SOAP Spec)
  • Understanding SOAP, SAMS Press
  • SOAP Toolkit 2.0
  • .NET Documentation
32
Questions
33
SOAP
34