1 / 41

The SOAP Story

The SOAP Story. Martin Parry Developer & Platform Group Microsoft Ltd martin.parry@microsoft.com http://martinparry.com. Agenda. Definitions SOAP through the ages SOAP and “standards” Approaches to building and using services SOAP Services with WCF Services and the Workflow Foundation.

clarke
Download Presentation

The SOAP Story

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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. .NET Remoting ASMX Interop with other platforms Extensibility Location transparency Attribute- Based Programming Message- Oriented Programming WS-* Protocol Support Enterprise Services System.Messaging WSE

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

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

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

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

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

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

  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 Configuration Reliability Configuration channels Security 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 Service Message A Singleton Message B Message C Client

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

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

  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) initial call client implementation state token state serialize and store response + token

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

  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.uk • Newsletter • Events • Screencasts • Blogs

More Related