soap toolkit


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

soap toolkit

  1. 1. SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331
  2. 3. Agenda <ul><li>Application development </li></ul><ul><li>What is …? </li></ul><ul><li>Solutions </li></ul><ul><li>SOAP toolkit for Visual Studio 6.0 </li></ul><ul><ul><li>Demos </li></ul></ul><ul><ul><li>How it works </li></ul></ul><ul><ul><li>The source code </li></ul></ul>
  3. 4. 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.
  4. 5. Today’s Problem <ul><li>With current technology, in order to implement web services, both server and client need to understand: </li></ul><ul><ul><li>Implementation details </li></ul></ul><ul><ul><li>Service deployment </li></ul></ul><ul><ul><li>Security types and trusts </li></ul></ul><ul><ul><li>Etc. </li></ul></ul><ul><li>Both must “speak” the same platform, e.g. COM to COM, EJB to EJB, ORB to ORB, HTML 3.2, etc. </li></ul>
  5. 6. App Development Tomorrow OS and Local Services App Code Application Specific Web Services Building Block Web Services Vertical and Portal Services Devices Browsers Internet <ul><li>Web Service Communications </li></ul><ul><li>Message-based (robust and scalable) </li></ul><ul><li>Asynchronous communications model </li></ul><ul><li>XML (easy to specify, modify, & extend) </li></ul><ul><li>Web protocols (universal access) </li></ul>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.
  6. 7. Tomorrow’s Solution: Web Services <ul><li>A common standard that can be used to describe data that is platform and language neutral – XML. </li></ul><ul><li>A common contract language for describing web services – SDL. </li></ul><ul><li>A common wire format protocol that is platform and language neutral – SOAP. </li></ul>
  7. 8. Definitions <ul><li>An object is a self-contained entity that can consist of data and / or procedures to manipulate that data. </li></ul><ul><li>A message is a complete unit of information that is transmitted from a source to a destination. </li></ul><ul><li>A service contract is the means of describing the interactions available between a client and a server. </li></ul>
  8. 9. What Is XML? <ul><li>The Extensible Markup Language (XML) is the universal format for structured documents and data on the Web. (from W3C) </li></ul><ul><ul><li>XML is a method for putting structured data in a text file. </li></ul></ul><ul><ul><li>XML looks a bit like HTML but isn't HTML. </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><ul><li>XML is license-free, platform-independent and well-supported. </li></ul></ul>
  9. 10. What Is SDL? <ul><li>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. </li></ul>
  10. 11. What is SOAP? <ul><li>SOAP is a lightweight protocol for the exchange of information or messages in a decentralized, distributed environment. It is an XML based protocol. </li></ul>
  11. 12. 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
  12. 13. Tomorrow’s Solution Today <ul><li>MSDN’s reference implementation of SOAP: the SOAP Toolkit for Visual Studio 6.0. </li></ul><ul><li>The toolkit brings together all three in order to make it work. </li></ul><ul><ul><li>Standard for data – XML </li></ul></ul><ul><ul><li>Contract language – SDL </li></ul></ul><ul><ul><li>Wire format protocol – SOAP </li></ul></ul>
  13. 14. Bridging the Gap Today Tomorrow Local Area Network Internet Intranet IDL Service Description Language SOAP Toolkit XML Schemas data SOAP COM DCOM CORBA
  14. 15. SOAP Toolkit Benefits <ul><li>No need to master XML, SOAP. </li></ul><ul><li>No need to learn wire protocol. </li></ul><ul><li>Reduces firewall issues. </li></ul><ul><li>Ease of implementation. </li></ul><ul><li>Ease of deployment. </li></ul><ul><li>Use existing skills. </li></ul><ul><li>Use existing tools. </li></ul>
  15. 16. SOAP Toolkit Contents <ul><li>Server side reference listeners </li></ul><ul><li>Remote object proxy engine (ROPE) </li></ul><ul><li>SDL and source code generator (wizard) </li></ul><ul><li>Documentation </li></ul><ul><li>Samples </li></ul><ul><li>Open architecture </li></ul><ul><ul><li>Read that as… </li></ul></ul>Full source code
  16. 17. What Is ROPE? <ul><li>Remote Object Proxy Engine </li></ul><ul><ul><li>Proxy </li></ul></ul><ul><ul><li>Packager </li></ul></ul><ul><ul><li>WireTransfer </li></ul></ul><ul><ul><li>Misc. objects </li></ul></ul><ul><li>ATL COM </li></ul><ul><li>Two models </li></ul><ul><ul><li>Simple – “VB”-like simplicity </li></ul></ul><ul><ul><li>Advanced – “VC”-like control </li></ul></ul>
  17. 18. ROPE – Simple Model <ul><li>Proxy </li></ul><ul><ul><li>Object.Method(Param1, … ParamN) </li></ul></ul><ul><ul><li>Use existing skills </li></ul></ul><ul><ul><li>Minor changes to source base </li></ul></ul><ul><ul><li>High level of abstraction </li></ul></ul>
  18. 19. ROPE – Advanced Model <ul><li>SOAPPackager </li></ul><ul><ul><li>Greater degree of control </li></ul></ul><ul><ul><li>More flexible </li></ul></ul><ul><li>WireTransfer </li></ul><ul><ul><li>Control over headers </li></ul></ul>
  19. 20. Demos <ul><li>New service* </li></ul><ul><ul><li>WIN32 COM object </li></ul></ul><ul><ul><ul><li>Construct </li></ul></ul></ul><ul><ul><ul><li>Install </li></ul></ul></ul><ul><ul><ul><li>Consume </li></ul></ul></ul><ul><li>Existing service** </li></ul><ul><ul><li>VB application </li></ul></ul><ul><ul><ul><li>Consume </li></ul></ul></ul><ul><ul><ul><li>* Using local machine name </li></ul></ul></ul><ul><ul><ul><li>** Using live internet site </li></ul></ul></ul>
  20. 21. IONA: CORBA Interop <ul><li>IONA’s Orbix = 60-70% market share </li></ul><ul><li>Building iPortal Suite for B2B portals </li></ul><ul><li>Demo: Orbix 2000 for Java server </li></ul><ul><li>Same VB client, same SOAP message </li></ul><ul><li>New SOAP bridge to CORBA </li></ul><ul><li>Server objects run in Orbix 2000 for Java </li></ul><ul><li>Further information/demo download: </li></ul><ul><li> </li></ul><ul><li>Email </li></ul>
  21. 22. 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)
  22. 23. Code Walkthrough <ul><li>VB Demo </li></ul><ul><li>ROPE </li></ul><ul><ul><li>Overall structure </li></ul></ul><ul><ul><li>COM impersonation </li></ul></ul><ul><ul><li>SDL Parser </li></ul></ul><ul><li>ASP Listener </li></ul>
  23. 24. Caveats <ul><li>Security. </li></ul><ul><ul><li>Only expose what you want the world to see. </li></ul></ul><ul><li>Changing specs. </li></ul><ul><ul><li>The toolkit will be rev’ed to keep up with the moving targets! </li></ul></ul><ul><li>Open architecture vs. open source. </li></ul>
  24. 25. Infrastructure Support <ul><li>DevelopMentor inc. </li></ul><ul><li>Digital creations. </li></ul><ul><li>IONA technologies PLC. </li></ul><ul><li>Jetform. </li></ul><ul><li>ObjectSpace inc. </li></ul><ul><li>Rockwell software inc. </li></ul><ul><li>Rogue wave software inc. </li></ul><ul><li>Scriptics corp. </li></ul><ul><li>Secret labs AB. </li></ul><ul><li>UserLand software inc. </li></ul><ul><li>Zveno Pty. Ltd. </li></ul><ul><li>Clarity consulting. </li></ul><ul><li>… </li></ul>
  25. 26. Call to Action <ul><li>Web services are the next generation of Web application </li></ul><ul><li>The SOAP Toolkit makes it easy to expose and consume them </li></ul><ul><li>Provide a service </li></ul><ul><li>Review SOAP specification </li></ul><ul><li>Join the newsgroup at microsoft.public.msdn.soaptoolkit </li></ul><ul><li>Implement with SOAP Toolkit </li></ul>
  26. 27. Questions?
  27. 28. Resources <ul><li>The SOAP Toolkit for Visual Studio 6.0 can be downloaded from the XML Dev Center: </li></ul><ul><ul><li> </li></ul></ul><ul><li>Newsgroup </li></ul><ul><ul><li>microsoft.public.msdn.soaptoolkit </li></ul></ul><ul><li>World Wide Web Consortium </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li> </li></ul></ul>