SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331
What is …?
SOAP toolkit for Visual Studio 6.0
How it works
The source code
App Development Today Local Services and Data App Code Web app developers took advantage of these local services and used HTML to “project” the UI to lots of clients. Browsers Browsers Internet Historically, most development efforts have been directed toward building apps using rich local services.
With current technology, in order to implement web services, both server and client need to understand:
Security types and trusts
Both must “speak” the same platform, e.g. COM to COM, EJB to EJB, ORB to ORB, HTML 3.2, etc.
App Development Tomorrow OS and Local Services App Code Application Specific Web Services Building Block Web Services Vertical and Portal Services Devices Browsers Internet
Web Service Communications
Message-based (robust and scalable)
Asynchronous communications model
XML (easy to specify, modify, & extend)
Web protocols (universal access)
Web Services are building blocks that enable developers to build and aggregate applications and services from local and remote resources for a range of clients.
Tomorrow’s Solution: Web Services
A common standard that can be used to describe data that is platform and language neutral – XML.
A common contract language for describing web services – SDL.
A common wire format protocol that is platform and language neutral – SOAP.
An object is a self-contained entity that can consist of data and / or procedures to manipulate that data.
A message is a complete unit of information that is transmitted from a source to a destination.
A service contract is the means of describing the interactions available between a client and a server.
What Is XML?
The Extensible Markup Language (XML) is the universal format for structured documents and data on the Web. (from W3C)
XML is a method for putting structured data in a text file.
XML looks a bit like HTML but isn't HTML.
XML is license-free, platform-independent and well-supported.
What Is SDL?
The Service Description Language (SDL) provides an XML-based grammar for describing the capabilities of Web Services. SDL is designed to be extensible, and consequently places few requirements on what must be in a service description document.
What is SOAP?
SOAP is a lightweight protocol for the exchange of information or messages in a decentralized, distributed environment. It is an XML based protocol.
What is a SOAP Message? Message Name & Data Headers HTTP Headers SOAP Message SOAP Envelope SOAP Header SOAP Body XML Encoded SOAP Message Name & Data <Body> contains SOAP Message Name & Data Individual headers <Header> encloses headers <Envelope> encloses payload Standard HTTP and SOAP HTTP Headers The complete SOAP Message
Tomorrow’s Solution Today
MSDN’s reference implementation of SOAP: the SOAP Toolkit for Visual Studio 6.0.
The toolkit brings together all three in order to make it work.
Standard for data – XML
Contract language – SDL
Wire format protocol – SOAP
Bridging the Gap Today Tomorrow Local Area Network Internet Intranet IDL Service Description Language SOAP Toolkit XML Schemas data SOAP COM DCOM CORBA
SOAP Toolkit Benefits
No need to master XML, SOAP.
No need to learn wire protocol.
Reduces firewall issues.
Ease of implementation.
Ease of deployment.
Use existing skills.
Use existing tools.
SOAP Toolkit Contents
Server side reference listeners
Remote object proxy engine (ROPE)
SDL and source code generator (wizard)
Read that as…
Full source code
What Is ROPE?
Remote Object Proxy Engine
Simple – “VB”-like simplicity
Advanced – “VC”-like control
ROPE – Simple Model
Object.Method(Param1, … ParamN)
Use existing skills
Minor changes to source base
High level of abstraction
ROPE – Advanced Model
Greater degree of control
Control over headers
WIN32 COM object
* Using local machine name
** Using live internet site
IONA: CORBA Interop
IONA’s Orbix = 60-70% market share
Building iPortal Suite for B2B portals
Demo: Orbix 2000 for Java server
Same VB client, same SOAP message
New SOAP bridge to CORBA
Server objects run in Orbix 2000 for Java
Further information/demo download:
What Just Happened? 2 – Receive and parse SDL 3 – Client invokes method. 4 – SOAP request sent. 5 – WS invokes business logic. 6 – SOAP response received. 7 – Client receives data. 1 – Request SDL Application Or browser ROPE (1) Web Service SDL (2) (3) Web Service SOAP (4) DATA (5) (6) (7) Web Page HTML (5) ROPE SOAP Web Service SDL (5)
Only expose what you want the world to see.
The toolkit will be rev’ed to keep up with the moving targets!
Open architecture vs. open source.
IONA technologies PLC.
Rockwell software inc.
Rogue wave software inc.
Secret labs AB.
UserLand software inc.
Zveno Pty. Ltd.
Call to Action
Web services are the next generation of Web application
The SOAP Toolkit makes it easy to expose and consume them
Provide a service
Review SOAP specification
Join the newsgroup at microsoft.public.msdn.soaptoolkit
Implement with SOAP Toolkit
The SOAP Toolkit for Visual Studio 6.0 can be downloaded from the XML Dev Center: