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 martin.parry@microsoft.com http://martinparry.com

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 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=http://....”)

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 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 Interop with other platforms ASMX Attribute-BasedProgramming Enterprise Services WS-*ProtocolSupport WSE Message-OrientedProgramming System.Messaging Extensibility Location transparency.NET Remoting

16 Distributed Applications Services pass messages described by a contract Service may provide metadata, describing: - The contract The policy applied to communication “Client” Message “Service” Metadata Message (SOAP) Headers: Addressing, Security, etc. Body: Payload

17 What do I send? Where do I send it? How should I send it? Contract Address Binding Mechanics of Communication “Service” “Client” Transport? Encoding? Security?

18 Mechanics of Communication “Service” “Client” Endpoint Contract Binding Address Endpoint Contract Binding Address Endpoint Contract Binding Address

19 Contracts [ServiceContract] public interface INuggetAccess { [OperationContract] string[] GetTopics(); }.NET Interface … … WSDL svcutil.exe “Service”“Client” [ServiceContract] public interface INuggetAccess { [OperationContract] string[] GetTopics(); } public class NuggetAccessService : INuggetAccess { string[] GetTopics() { } } Implements Consumes request metadata (WSDL)

20 Richness of metadata 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 Service Contracts Endpoints

21 Contract Details 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 [ServiceContract] public interface INuggetAccess { [OperationContract] List GetTopics(); } Service [DataContract(Namespace=…)] public class TopicInfo { [DataMember] public int Id } Data [MessageContract] public class TypedMessage { [MessageBody] [MessageHeader] } Message

22 Hosting Services public class Service : INuggetAccess { string[] GetTopics() { } } IIS NuggetAccessService.svc MyApp.exe ServiceHost host = new ServiceHost(); host.Open(); References 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 Client WCF – sketched architecture Binding (ordered list of channel types & config) Binding (ordered list of channel types & config) channel type N channel type 2 channel type 1 config Your code Service Your code Metadata objects XML formatting channel Transport Channel (HTTP, TCP, MSMQ, Pipes, Peer) channel decoding encoding behaviours

25 Standard Framework Bindings 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 Binding Transactions Reliability Security channels Configuration Transport Configuration

26 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 Client Service Singleton Message B Message C Message A

27 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 Client Service Single Call Message B Message C Message A

28 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 Client Service Per Session Message B Message A session Per Session Message C

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 client Host (e.g. IIS) implementation state response + token initial call serialize and store state token

35 Durable Services Provider-based framework for easily adding long-running abilities to WCF services client Host (e.g. IIS) implementation state second call + token load and deserialize state token

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 http://msdn2.microsoft.com/en-gb/webservices/default.aspx “Standards” http://www.w3.org http://www.ws-i.org http://www.oasis-open.org SOA http://www.opengroup.org/projects/soa http://wiki.oasis-open.org/soa-rm WCF http://netfx3.com/content/WCFHome.aspx WF http://netfx3.com/content/WFHome.aspx

40 MSDN in the UK Visit http://msdn.co.ukhttp://msdn.co.uk Newsletter Events Screencasts Blogs

41 © 2007 Microsoft Ltd. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


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

Similar presentations


Ads by Google