soap toolkit - a soap implementation robert coleridge / chris dengler dev leads msdn architecture...
TRANSCRIPT
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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
Bridging the GapBridging the Gap
IDLService
DescriptionLanguage
XMLSchemas
data
SOAPCOM
DCOMCORBA
Today Tomorrow
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.
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
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
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
ROPE – Advanced ModelROPE – Advanced Model
SOAPPackagerSOAPPackager Greater degree of controlGreater degree of control More flexibleMore flexible
WireTransferWireTransfer Control over headersControl over headers
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
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]
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
Code WalkthroughCode Walkthrough
VB DemoVB Demo ROPEROPE
Overall structureOverall structure COM impersonationCOM impersonation SDL ParserSDL Parser
ASP ListenerASP Listener
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.
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. ……
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
Questions?Questions?
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