The SOAP Story Martin Parry Developer & Platform Group Microsoft Ltd

Slides:



Advertisements
Similar presentations
Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright.
Advertisements

Michael S. Chan xLM Solutions, LLC
Siebel Web Services Siebel Web Services March, From
WCF Intro Scott Reed Owner - Brain Hz Software Instructor – DevelopMentor
SOAP.
Zoiner Tejada Hershey Technologies. About Zoiner Tejada.
.NET Remoting in Delphi and C# Alain “Lino” Tadros President & CEO Falafel Software Inc. ComponentScience Inc. BORCON 2004.
.NET Framework V3.0 Mike Taulty Developer & Platform Group Microsoft Ltd
 Introduction  WCF Definition  WCF Architecture  Implementation  WCF Demo Overview.
Latest techniques and Applications in Interprocess Communication and Coordination Xiaoou Zhang.
Windows Communication Foundation and Web Services.
X.509 support in WCF Exploring support for X.509 Certificates in Microsoft’s Windows Communication Foundation Paul Cormier UCCS CS591 Fall 2009.
Adam Dille CS526 – Spring  Advances in Microsoft’s service offerings  ASMX vs. WCF  Latest WCF Improvements (.NET 4.0)  No in-depth study of.
The Microsoft Technical Roadshow 2006 Windows Communication Foundation Mike Taulty Developer & Platform Group Microsoft Ltd
Web Services (ASMX 2.0 and WSE 3.0) Mike Taulty Developer & Platform Group Microsoft Ltd
Getting Started with Windows Communication Foundation 4.5 Ed Jones, MCT, MCPD, MCTS Consultant RBA Inc.
Getting Started with WCF Windows Communication Foundation 4.0 Development Chapter 1.
Nikola Dudar Program Manager Microsoft Corporation Session Code: DTL 311.
Introduction SOAP History Technical Architecture SOAP in Industry Summary References.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Introduction to Windows Communication Foundation Ruwan Wijesinghe.
[Title of the course] WCF
Agenda What Is the Windows Communication Foundation? How Does It Work? How Do I Use and Deploy It? Bindings Addresses Contracts How to host WCF services.
1 Windows Communication Foundation: Integrating COM+ and MSMQ Applications Andy Milligan COM305 Program Manager Microsoft Corporation.
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
Web Services & WCF ~ Ankit. Web services A web service is a collection of protocols and standards used for exchanging data between applications or systems.
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
Intro to WCF From the beginning and uses Steve AppRochester.
Random Logic l Forum.NET l Web Services Enhancements for Microsoft.NET (WSE) Forum.NET ● October 4th, 2006.
A Deep Dive into Best Practices with the Windows Communication Foundation John Justice COM415 Program Manager Microsoft Corporation.
Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program.
.NET Enterprise Services COM+ 1.5 麥超俊 Bobby Mak 架構技術推廣經理開發工具暨平台推廣處台灣微軟股份有限公司.
Mahesh Krishnan, Senior Consultant, Readify Slide 1.
Telerik Software Academy Web Services & Cloud.
Windows Communication Foundation David Anderson Independent Software Developer DCOM Productions.
Presentation 24: Windows Communication Foundation Introduced Objektorienteret Netværkskommunikation.
Agenda What Is the Windows Communication Foundation? How Does It Work? How Do I Use and Deploy It? Bindings Addresses Contracts How to host WCF services.
Dhananjay Kumar MVP-Connected System 1. WCF  Agenda What is WCF ? Why WCF? Address, Binding, Contract End Points Hosting Message Patterns Programming.
Introduction to.NET FX 3.0 (+ sneak preview of.NET FX 3.5) Martin Parry Developer & Platform Group Microsoft Ltd
The SOAP Story Martin Parry Developer & Platform Group Microsoft Ltd
For Developers Martin Parry Developer and Platform Group Microsoft
1 “Indigo” & Web Services Roadmap David Gristwood.
Windows Communication Foundation António Cruz Freelancer (SAPO/PT.COM)
Shani Raba Team Leader & Software Architect
O VERVIEW OF SOA AND WCF Jinaldesai.net – My Thouths And Learnings.
Windows Communication Foundation. Agenda How We Got Here ASMX vs WCF Throwdown WCF Contracts Service Data Message Bindings Security Reliability Declarative.
Windows Communication Foundation and Web Services
Jim Fawcett CSE681 – SW Modeling & Analysis Spring 2005
Windows Communication Foundation
Segments Introduction: slides 2–7 10 minutes
4/12/2018 2:37 PM Windows Communication Foundation: Migration, interop, upgrade, and integration Risman Adnan ISV Lead, Microsoft Indonesia
Windows Communication Foundation
Windows Communication Foundation
Sabri Kızanlık Ural Emekçi
Window Communication Foundation
A Web Services Journey on the .NET Bus
WCF.
Windows Communication Foundation
ASP.NET Web Forms and Web Services
Windows Communication Foundation (WCF)
Introduction How to combine and use services in different security domains? How to take into account privacy aspects? How to enable single sign on (SSO)
Distribution of functionality Webservice using WCF
Windows Communication Foundation and Web Services
Windows Communication Foundation
Implementing a service-oriented architecture using SOAP
The future of distributed systems architecture
WSE 3.0 的网络服务安全 Security in WSE 3.0 Hongmei Ge Con321
for Developers Martin Parry Developer and Platform Group Microsoft
Windows Communication Foundation (WCF)
Distributed Applications on Windows Vista
Web Services Enhancements 2.0
Presentation transcript:

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

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

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

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

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

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

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

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

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

“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

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

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

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”

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

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

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?

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

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() { }

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

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

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

Windows Communication Foundation

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)

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

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

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

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

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

Security in WCF - Extensibility Roll your own Username validator Token validator Credential types Security Token Service SAML claims Etc...

Federated Security with WCF

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

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

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

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

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

Services with WF

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

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

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