Top Banner
SOAP Toolkit - SOAP Toolkit - A A SOAP Implementation SOAP Implementation Robert Coleridge / Chris Robert Coleridge / Chris Dengler Dengler Dev Leads Dev Leads MSDN Architecture Team MSDN Architecture Team Microsoft Corporation Microsoft Corporation 9-331 9-331
29

SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

Mar 31, 2015

Download

Documents

Adrien Teal
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

SOAP Toolkit - SOAP Toolkit - A SOAP A SOAP ImplementationImplementation

Robert Coleridge / Chris DenglerRobert Coleridge / Chris DenglerDev LeadsDev LeadsMSDN Architecture TeamMSDN Architecture TeamMicrosoft CorporationMicrosoft Corporation

9-3319-331

Page 2: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.
Page 3: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

AgendaAgenda

Application developmentApplication development What is …?What is …? SolutionsSolutions SOAP toolkit for Visual Studio 6.0SOAP toolkit for Visual Studio 6.0

DemosDemos How it worksHow it works The source codeThe source code

Page 4: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

App Development TodayApp Development Today

Local Servicesand Data

App Code

Web app developers took advantage of these local services and used HTML to “project” the UI to lots of clients.

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.

Historically, most development efforts have been directed toward building apps using rich local services.

Page 5: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

Today’s ProblemToday’s Problem With current technology, in order to With current technology, in order to

implement web services, both server implement web services, both server and client need to understand:and client need to understand: Implementation detailsImplementation details Service deploymentService deployment Security types and trustsSecurity types and trusts Etc.Etc.

Both must “speak” the same platform, Both must “speak” the same platform, e.g. COM to COM, EJB to EJB, ORB to e.g. COM to COM, EJB to EJB, ORB to ORB, HTML 3.2, etc.ORB, HTML 3.2, etc.

Page 6: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

App Development TomorrowApp Development Tomorrow

OS andLocal

Services

App Code

Application SpecificWeb Services

Building BlockWeb Services

Vertical and PortalServices

DevicesBrowsers

Internet

Web Service Communications1.Message-based (robust and scalable)2.Asynchronous communications model3.XML (easy to specify, modify, &

extend)4.Web protocols (universal access)

Web Service Communications1.Message-based (robust and scalable)2.Asynchronous communications model3.XML (easy to specify, modify, &

extend)4.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.

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.

Page 7: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

Tomorrow’s Solution: Web Tomorrow’s Solution: Web ServicesServices A common standard that can be used A common standard that can be used

to describe data that is platform and to describe data that is platform and language neutral – XML.language neutral – XML.

A common contract language for A common contract language for describing web services – SDL.describing web services – SDL.

A common wire format protocol that is A common wire format protocol that is platform and language neutral – SOAP.platform and language neutral – SOAP.

Page 8: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

DefinitionsDefinitions

An object is a self-contained entity An object is a self-contained entity that can consist of data and / or that can consist of data and / or procedures to manipulate that data.procedures to manipulate that data.

A message is a complete unit of A message is a complete unit of information that is transmitted from information that is transmitted from a source to a destination.a source to a destination.

A service contract is the means of A service contract is the means of describing the interactions available describing the interactions available between a client and a server.between a client and a server.

Page 9: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

What Is XML?What Is XML?

The Extensible Markup Language The Extensible Markup Language (XML) is the universal format for (XML) is the universal format for structured documents and data on structured documents and data on the Web. (from W3C)the Web. (from W3C) XML is a method for putting structured XML is a method for putting structured

data in a text file.data in a text file. XML looks a bit like HTML but isn't XML looks a bit like HTML but isn't

HTML.HTML. …… XML is license-free, platform-XML is license-free, platform-

independent and well-supported.independent and well-supported.

Page 10: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

What Is SDL?What Is SDL?

The Service Description Language The Service Description Language (SDL) provides an XML-based (SDL) provides an XML-based grammar for describing the grammar for describing the capabilities of Web Services. SDL is capabilities of Web Services. SDL is designed to be extensible, and designed to be extensible, and consequently places few consequently places few requirements on what must be in a requirements on what must be in a service description document.service description document.

Page 11: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

What is SOAP?What is SOAP?

SOAP is a lightweight protocol for the SOAP is a lightweight protocol for the exchange of information or messagesexchange of information or messagesin a decentralized, distributed in a decentralized, distributed environment. It is an XML based environment. It is an XML based protocol.protocol.

Page 12: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

What is a SOAP Message?What is a SOAP Message?

SOAP Message

SOAP Envelope

SOAP Header

SOAP Body

Message Name & Data

Headers

HTTP Headers

XML Encoded SOAPXML Encoded SOAPMessage Name & DataMessage Name & Data

<Body> contains SOAP<Body> contains SOAPMessage Name & DataMessage Name & Data

Individual headersIndividual headers

<Header> encloses headers<Header> encloses headers

<Envelope> encloses payload<Envelope> encloses payload

Standard HTTP and SOAP HTTP HeadersStandard HTTP and SOAP HTTP Headers

The complete SOAP MessageThe complete SOAP Message

Page 13: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

Tomorrow’s Solution TodayTomorrow’s Solution Today

MSDN’s reference implementation MSDN’s reference implementation of SOAP: the SOAP Toolkit for of SOAP: the SOAP Toolkit for Visual Studio 6.0.Visual Studio 6.0.

The toolkit brings together all three The toolkit brings together all three in order to make it work.in order to make it work. Standard for data – XMLStandard for data – XML Contract language – SDLContract language – SDL Wire format protocol – SOAPWire format protocol – SOAP

Page 14: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

Bridging the GapBridging the Gap

IDLService

DescriptionLanguage

XMLSchemas

data

SOAPCOM

DCOMCORBA

Today Tomorrow

Page 15: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

SOAP Toolkit BenefitsSOAP Toolkit Benefits

No need to master XML, SOAP.No need to master XML, SOAP. No need to learn wire protocol.No need to learn wire protocol. Reduces firewall issues.Reduces firewall issues. Ease of implementation.Ease of implementation. Ease of deployment.Ease of deployment. Use existing skills.Use existing skills. Use existing tools.Use existing tools.

Page 16: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

SOAP Toolkit ContentsSOAP Toolkit Contents

Server side reference listenersServer side reference listeners Remote object proxy engine (ROPE)Remote object proxy engine (ROPE) SDL and source code generator SDL and source code generator

(wizard)(wizard) DocumentationDocumentation SamplesSamples Open architectureOpen architecture

Read that as…Read that as…Full source codeFull source code

Page 17: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

What Is ROPE?What Is ROPE?

Remote Object Proxy EngineRemote Object Proxy Engine ProxyProxy PackagerPackager WireTransferWireTransfer Misc. objectsMisc. objects

ATL COMATL COM Two modelsTwo models

Simple – “VB”-like simplicitySimple – “VB”-like simplicity Advanced – “VC”-like controlAdvanced – “VC”-like control

Page 18: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

ROPE – Simple ModelROPE – Simple Model

ProxyProxy Object.Method(Param1, … ParamN)Object.Method(Param1, … ParamN) Use existing skillsUse existing skills Minor changes to source baseMinor changes to source base High level of abstractionHigh level of abstraction

Page 19: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

ROPE – Advanced ModelROPE – Advanced Model

SOAPPackagerSOAPPackager Greater degree of controlGreater degree of control More flexibleMore flexible

WireTransferWireTransfer Control over headersControl over headers

Page 20: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

DemosDemos

New service*New service* WIN32 COM objectWIN32 COM object

ConstructConstruct InstallInstall ConsumeConsume

Existing service**Existing service** VB applicationVB application

ConsumeConsume

* Using local machine name* Using local machine name** Using live internet site** Using live internet site

Page 21: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

IONA: CORBA InteropIONA: CORBA Interop

IONA’s Orbix = 60-70% market shareIONA’s Orbix = 60-70% market share Building iPortal Suite for B2B portalsBuilding iPortal Suite for B2B portals Demo: Orbix 2000 for Java serverDemo: Orbix 2000 for Java server Same VB client, same SOAP messageSame VB client, same SOAP message New SOAP bridge to CORBANew SOAP bridge to CORBA Server objects run in Orbix 2000 for JavaServer objects run in Orbix 2000 for Java Further information/demo download:Further information/demo download: www.iona.com/soapwww.iona.com/soap Email [email protected] [email protected]

Page 22: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

What Just Happened?What Just Happened?

ROPE

(1)

Web ServiceSDL

(2)

(3)

WebService

SOAP(4)

DATA

(5)

(6)

(7)

Web Page

HTML(5)

2 – Receive and parse SDL2 – Receive and parse SDL3 – Client invokes method.3 – Client invokes method.4 – SOAP request sent.4 – SOAP request sent.5 – WS invokes business logic.5 – WS invokes business logic.6 – SOAP response received.6 – SOAP response received.7 – Client receives data.7 – Client receives data.

1 – Request SDL1 – Request SDL

ROPE

SOAPWeb

ServiceSDL

(5)

ApplicationOr

browser

Page 23: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

Code WalkthroughCode Walkthrough

VB DemoVB Demo ROPEROPE

Overall structureOverall structure COM impersonationCOM impersonation SDL ParserSDL Parser

ASP ListenerASP Listener

Page 24: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

CaveatsCaveats

Security.Security. Only expose what you want the world Only expose what you want the world

to see.to see. Changing specs.Changing specs.

The toolkit will be rev’ed to keep up The toolkit will be rev’ed to keep up with the moving targets!with the moving targets!

Open architecture vs. open source.Open architecture vs. open source.

Page 25: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

Infrastructure SupportInfrastructure Support

DevelopMentor DevelopMentor inc.inc.

Digital creations.Digital creations. IONA IONA

technologies technologies PLC.PLC.

Jetform.Jetform. ObjectSpace inc.ObjectSpace inc. Rockwell Rockwell

software inc.software inc.

Rogue wave Rogue wave software inc.software inc.

Scriptics corp.Scriptics corp. Secret labs AB.Secret labs AB. UserLand UserLand

software inc.software inc. Zveno Pty. Ltd.Zveno Pty. Ltd. Clarity Clarity

consulting.consulting. ……

Page 26: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

Call to ActionCall to Action

Web services are the next Web services are the next generation of Web applicationgeneration of Web application

The SOAP Toolkit makes it easy to The SOAP Toolkit makes it easy to expose and consume themexpose and consume them

Provide a serviceProvide a service Review SOAP specificationReview SOAP specification Join the newsgroup at Join the newsgroup at

microsoft.public.msdn.soaptoolkitmicrosoft.public.msdn.soaptoolkit Implement with SOAP ToolkitImplement with SOAP Toolkit

Page 27: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

Questions?Questions?

Page 28: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.

ResourcesResources

The SOAP Toolkit for Visual Studio The SOAP Toolkit for Visual Studio 6.0 can be downloaded from the 6.0 can be downloaded from the XML Dev Center:XML Dev Center: http://msdn.microsoft.com/xml/http://msdn.microsoft.com/xml/

NewsgroupNewsgroup microsoft.public.msdn.soaptoolkitmicrosoft.public.msdn.soaptoolkit

World Wide Web ConsortiumWorld Wide Web Consortium http://www.w3.org/xml/http://www.w3.org/xml/ http://www.w3.org/tr/soaphttp://www.w3.org/tr/soap

Page 29: SOAP Toolkit - A SOAP Implementation Robert Coleridge / Chris Dengler Dev Leads MSDN Architecture Team Microsoft Corporation 9-331.