Download presentation
Presentation is loading. Please wait.
Published byDustin Carroll Modified over 5 years ago
1
The SOAP Story Martin Parry Developer & Platform Group Microsoft Ltd
2
Agenda Definitions SOAP through the ages SOAP and “standards”
Approaches to building and using services SOAP Services with WCF Services and the Workflow Foundation
3
Definitions SOAP WSDL Initially: Simple Object Access Protocol
It’s about services that exchange messages The messages are formed from XML Each message has headers plus a body WSDL Describes services and their operations Uses XML and schema to describe messages
4
SOAP on the Microsoft Platform
SOAP Toolkit NT4, Windows 2000 IIS4 or IIS5 Based around COM Used ISAPI filter No longer in mainstream support Extended support expires in March 2008
5
SOAP on the Microsoft Platform
SOAP Toolkit NT4, Windows 2000 IIS4 or IIS5 Based around COM Used ISAPI filter No longer in mainstream support Extended support expires in March 2008
6
SOAP on the Microsoft Platform
SOAP Moniker Introduced in Windows XP Professional Scriptable mechanism for invoking web services Example vbscript... Dim proxy Set proxy = GetObject(“soap:wsdl=
7
SOAP on the Microsoft Platform
.NET Remoting Supports TCP and HTTP transports Can use IIS, or not Supports SOAP formatting, or binary Significant difference: - Distributed Object programming paradigm As opposed to message passing
8
SOAP on the Microsoft Platform
ASP.NET .asmx web services “add web reference” Still relies on IIS Support in v2.0 for WS-I Basic Profile No other “standards” support is built-in
9
SOAP on the Microsoft Platform
Web Services Enhancements Now in v3.0 Adds support for some WS-* protocols Allows non-IIS services Allows non-HTTP transport
10
SOAP on the Microsoft Platform
Windows Communication Foundation Introduced in .NET FX 3.0 Entirely new communications API Allows for changes in transports and protocols Very extensible Can use IIS, or not Can use HTTP, or not Ships with named pipes, TCP, MSMQ, P2P
11
“Standards” WS-Security WS-SecureConversation WS-Policy
Message-level security WS-SecureConversation Optimisation for WS-Security WS-Policy Contractual info not contained in WSDL WS-SecurityPolicy Policy rules that are specific to security WS-Trust Defines STS
12
Approaches – Distributed Objects
A long history on the Microsoft platform DCOM, .NET Remoting Difficulty in managing object lifetimes Wisdom of making network transparent? Perhaps the developer needs to know? Simple, OO paradigm – easy to code against
13
Approaches – Message Exchange
Probably still use a proxy class How is message body formed? Serialized object graph, or Application code emits XML content directly SOAP is all about message exchange really Just a question of how this appears to the application developer Different exchange patterns Request/response, one-way, duplex, intermediaries
14
Approaches - SOA There are multiple definitions of SOA
Not necessarily tied to web services A service performs one standalone piece of the business process Participates in message exchange No notion of data + behaviour, as in OO Should use contract + policy so that clients can be built correctly Sometimes see “service brokers”
15
Location transparency
ASMX .NET Remoting Interop with other platforms Extensibility Location transparency Attribute- Based Programming Message- Oriented Programming WS-* Protocol Support Enterprise Services System.Messaging WSE
16
Distributed Applications
“Client” Message (SOAP) Headers: Addressing, Security, etc. Body: Payload “Service” Metadata Message Message Services pass messages described by a contract Service may provide metadata, describing: - The contract The policy applied to communication
17
Mechanics of Communication
“Service” “Client” What do I send? Contract Address Where do I send it? How should I send it? Binding Transport? Encoding? Security?
18
Mechanics of Communication
“Service” “Client” Endpoint Contract Binding Address Endpoint Contract Binding Address Endpoint Contract Binding Address
19
request metadata (WSDL)
Contracts [ServiceContract] public interface INuggetAccess { [OperationContract] string[] GetTopics(); } <definitions> … <portType> <operation name=“GetTopics”> … </portType> </definitions> WSDL svcutil.exe .NET Interface Consumes request metadata (WSDL) Implements “Client” “Service” [ServiceContract] public interface INuggetAccess { [OperationContract] string[] GetTopics(); } public class NuggetAccessService : INuggetAccess { string[] GetTopics() { }
20
Richness of metadata Service
Service can advertise a lot of info to a client WSDL WS-Policy (security etc) Can do so over HTTP WS- MetadataExchange Makes building “clients” a lot simpler Endpoints Contracts
21
Contract Details Message exchange might be: - Service Data Message
[ServiceContract] public interface INuggetAccess { [OperationContract] List<TopicInfo> GetTopics(); } Service [DataContract(Namespace=…)] public class TopicInfo { [DataMember] public int Id } Data [MessageContract] public class TypedMessage { [MessageBody] [MessageHeader] } Message Message exchange might be: - One-way, Request/Response, Two-way (Duplex) WCF also supports serialization models from .NET 2.0 System.Xml.XmlSerialization, System.Runtime.Serialization
22
Hosting Services ServiceHost is the key class for hosting
public class Service : INuggetAccess { string[] GetTopics() { } } IIS MyApp.exe ServiceHost host = new ServiceHost(); host.Open(); ServiceHost Service=“Service" %> References NuggetAccessService.svc ServiceHost is the key class for hosting Needs manual steps in your host application Automatically done by IIS when provided with a .svc file IIS handles additional transports in v7.0
23
Windows Communication Foundation
24
WCF – sketched architecture
Client objects XML Service Your code Metadata Your code behaviours behaviours formatting Binding (ordered list of channel types & config) channel type N channel type 2 channel type 1 config channel decoding encoding channel Transport Channel (HTTP, TCP, MSMQ, Pipes, Peer)
25
Standard Framework Bindings
5/22/2019 Standard Framework Bindings Binding Transactions Reliability Security channels Configuration Transport Pre-built set in the framework WS-I Basic Profile WS-* on HTTP TCP Named Pipes MSMQ Peer Configure/code your own as a "custom" binding 25
26
Instancing, Concurrency, Sessions
5/22/2019 Instancing, Concurrency, Sessions Service classes can be instantiated: - Singleton, Per-Call, Per-Session, Shareable Service code can be either: - Single threaded, Re-entrant or Multi-threaded Service Message A Singleton Message B Message C Client 26
27
Instancing, Concurrency, Sessions
5/22/2019 Instancing, Concurrency, Sessions Service classes can be instantiated: - Singleton, Per-Call, Per-Session, Shareable Service code can be either: - Single threaded, Re-entrant or Multi-threaded Service Message A Single Call Message B Single Call Message C Client Single Call 27
28
Instancing, Concurrency, Sessions
5/22/2019 Instancing, Concurrency, Sessions Service classes can be instantiated: - Singleton, Per-Call, Per-Session, Shareable Service code can be either: - Single threaded, Re-entrant or Multi-threaded Service session Message A Per Session Message B Per Session Message C Client 28
29
Security in WCF – Out of the box
Transport Level HTTPS IIS authentication modes Message Level UserName, X.509 Certificate, Windows IssuedToken – that is, federated security ASP.NET membership and role providers
30
Security in WCF - Extensibility
Roll your own Username validator Token validator Credential types Security Token Service SAML claims Etc...
31
Federated Security with WCF
32
WCF in .NET FX 3.5 Most of the new stuff isn’t SOAP
We’ll see some of that in the next session Client proxies and partial trust environments Durable services Coming together with Workflow
33
Partial Trust Now possible to call through WCF proxies in a partial trust environment Various caveats Transport is HTTP only, Security is HTTPS only Encodings is all except MTOM Bindings are BasicHttpBinding, WsHttpBinding, WebHttpBinding* Other limitations No Reliable Messaging, Transactions, Secure Conversation
34
Durable Services Provider-based framework for easily adding long-running abilities to WCF services Host (e.g. IIS) client initial call serialize and store implementation state response + token token state
35
Durable Services Provider-based framework for easily adding long-running abilities to WCF services Host (e.g. IIS) client second call + token load and deserialize implementation state token state
36
Workflow WF is not strictly about services, or SOAP
In .NET FX 3.5, WF has some WCF integration A workflow can consume services We can implement a service as a workflow
37
Services with WF
38
Summary The Microsoft platform has evolved along with SOAP and its accompanying standards Culminating in WCF The most flexible, extensible communications stack we’ve ever produced
39
Additional Information
MSDN Developer Center for Web Services “Standards” SOA WCF WF
40
MSDN in the UK Visit http://msdn.co.uk Newsletter Events Screencasts
Blogs
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.