The SOAP Story Martin Parry Developer & Platform Group Microsoft Ltd

Slides:



Advertisements
Similar presentations
Background REST (Representational State Transfer) What does it mean to be RESTful? Why REST? WCF How does WCF support REST? What are the pieces we need.
Advertisements

Windows 8 (1) (2) (3) Windows 8 (1) (2) (3)
 Jan Alexander Program Manager Microsoft Corporation BB43.
Zoiner Tejada Hershey Technologies. About Zoiner Tejada.
Web RoleWorker Role At runtime each Role will execute on one or more instances A role instance is a set of code, configuration, and local data, deployed.
MIX 09 4/15/ :14 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
.NET Framework V3.0 Mike Taulty Developer & Platform Group Microsoft Ltd
Latest techniques and Applications in Interprocess Communication and Coordination Xiaoou Zhang.
Windows Communication Foundation and Web Services.
.NET Framework V3.5+ & RESTful web services Mike Taulty Developer & Platform Group Microsoft Ltd
dev311 matt winkler – technical evangelist wf
IIS v7.0 Martin Parry Developer & Platform Group Microsoft Limited
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
Jon Flanders INT303. About Me  Jon Flanders –  Independent consultant/trainer  BizTalk MVP.
Module 13: WCF Receive Adapters. Overview Lesson 1: Introduction to WCF Receive Adapters Lesson 2: Configuring a WCF Receive Adapter Lesson 3: Using the.
Getting Started with Windows Communication Foundation 4.5 Ed Jones, MCT, MCPD, MCTS Consultant RBA Inc.
Configuring PHP on IIS7 Making your application rock on IIS7 Taking advantage of the Windows platform Q&A at Open Space.
Getting Started with WCF Windows Communication Foundation 4.0 Development Chapter 1.
Christian Weyer thinktecture.
Nikola Dudar Program Manager Microsoft Corporation Session Code: DTL 311.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Introduction to Windows Communication Foundation Ruwan Wijesinghe.
Session 1.
Built by Developers for Developers…. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
CON 307 Developing Manageable WCF Services Chris Peiris | Avanade Rory Primrose | Avanade
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.
Christopher Chapman | MCT Content PM, Microsoft Learning, PDG Planning, Microsoft.
Visual Studio 2008 and.NET 3.5 provide seamless support for all of the protocols and techniques popular in Web 2.0-style applications. Visual Studio.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Identity & Access Control in the Cloud Name Title Organization.
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.
Mahesh Krishnan, Senior Consultant, Readify Slide 1.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
demo Instance AInstance B Read “7” Write “8”

customer.
2 Productive Windows Communication Foundation Jeremy Boyd Mindscape MSDN Regional Director – New Zealand SOA315.
06 | HTTP Services with Web API Bruno Terkaly | Technical Evangelist Bret Stateham | Technical Evangelist.
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.
 Justin Smith Sr. Program Manager Microsoft Corporation BB28.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks.
Dhananjay Kumar MVP-Connected System 1. WCF  Agenda What is WCF ? Why WCF? Address, Binding, Contract End Points Hosting Message Patterns Programming.
Christian Weyer thinktecture.
Introduction to.NET FX 3.0 (+ sneak preview of.NET FX 3.5) Martin Parry Developer & Platform Group Microsoft Ltd
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
Language Integrated Query Mike Taulty Developer & Platform Group Microsoft Ltd
For Developers Martin Parry Developer and Platform Group Microsoft
ADatum Assets ADatum REST Web Svc ADatum REST Web Svc.
Windows Communication Foundation António Cruz Freelancer (SAPO/PT.COM)

07 | Advanced WCF Topics Bruno Terkaly | Technical Evangelist Bret Stateham | Technical Evangelist.
Justin Smith Technical Evangelist Microsoft Corporation CON301.
Shani Raba Team Leader & Software Architect
Microsoft Confidential Risman Adnan ISV Lead, Microsoft Indonesia
Windows Communication Foundation and Web Services
Windows Communication Foundation
Windows Communication Foundation
Introduction to Windows Azure AppFabric
Windows Communication Foundation (WCF)
Windows Communication Foundation and Web Services
Driving Experiences via Services Using the Microsoft .NET Framework
Виктор Хаджийски Катедра “Металургия на желязото и металолеене”
Distributed Applications on Windows Vista
The SOAP Story Martin Parry Developer & Platform Group Microsoft Ltd
Web Services Enhancements 2.0
利用IIS部署與維護 SOA應用程式的技巧
Presentation transcript:

The SOAP Story Martin Parry Developer & Platform Group Microsoft Ltd

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 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=

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 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”

Interop with other platforms ASMX Attribute-BasedProgramming Enterprise Services WS-*ProtocolSupport WSE Message-OrientedProgramming System.Messaging Extensibility Location transparency.NET Remoting

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

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?

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

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)

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

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

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

Windows Communication Foundation

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

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

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

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

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

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

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

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 “Standards” SOA WCF WF

MSDN in the UK Visit Newsletter Events Screencasts Blogs

© 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.