Presentation is loading. Please wait.

Presentation is loading. Please wait.

The SOAP Story Martin Parry Developer & Platform Group Microsoft Ltd

Similar presentations


Presentation on theme: "The SOAP Story Martin Parry Developer & Platform Group Microsoft Ltd"— Presentation transcript:

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

41


Download ppt "The SOAP Story Martin Parry Developer & Platform Group Microsoft Ltd"

Similar presentations


Ads by Google