Real-world Interoperability With WCF - DDD South West

fortnecessityusefulSoftware and s/w Development

Dec 14, 2013 (3 years and 4 months ago)

84 views

Jimmy
Skowronski


Technical Architect



SaaS

Group


GL.
NET

user group leader


Follow me @_
jimmys


Interoperability


Challenges of interoperability


Basic Standards


How WCF supports interoperability


Considerations


Future



ISO/IEC 2382
-
01


Technology


System integration


Exchange of information


Business


Process automation


Business integration


Order Processing
Service

WCF

Customer

Sales

WCF

Intranet

SharePoint

Front
-
End

ASP.NET

Payment
Processing Service

CRM

Siebel

Sales

Order
Management

Package
Tracking

Front
-
End

ASP.NET

Sales

WCF

Intranet

SharePoint

CRM

Siebel

Order Processing
Service

WCF

Payment
Processing Service

Sales

Customer

Order
Management

Package
Tracking

WCF

Service

ASMX (WSE2/3)

Service

WCF

Client

WSE2/3

Client

WSDL

SOAP

?

Service

Client


It’s XML


Version 1.1 is widely implemented


Version 2.0 is a W3C recommendation


Supports HTTP request methods for REST


Not supported by WCF


And most of other frameworks



It’s XML too


Application layer protocol


Designed for exchanging structured information


Flexible


Platform and language independent




Dropped
in v.1.2

METADATA

DATA

<
env:Envelope

xmlns:env
="http://www.w3.org/2003/05/soap
-
envelope">


<
env:Header
>



<n:alertcontrol
xmlns:n
="http://example.org/alertcontrol">




<n:priority>1</n:priority>




<n:expires>2001
-
06
-
22T14:00:00
-
05:00</n:expires>



</n:alertcontrol>


</
env:Header
>


<
env:Body
>




<m:alert
xmlns:m
="http://example.org/alert">




<m:msg>Pick up Mary at school at 2pm</m:msg>



</m:alert>


</
env:Body
>

</
env:Envelope
>

WCF

Service

ASMX (WSE2/3)

Service

WCF

Client

WSE2/3

Client

Service

Client

WSDL

WSDL

SOAP

SOAP


Set of guidelines for web services interoperability


Minimum bar


Discovery


WSDL to allow discovery


Messaging


Use SOAP for messages


Use HTTP(S) as a transport


Version 1.0 released in early 2004



basicHttpBinding


WSDL 1.1


SOAP 1.1


MTOM


Basic security options


wsHttpBinding
, ws2007HttpBinding,
wsDualHttpBinding


SOAP 1.2


WS
-
Addressing


Transactions and reliable messaging


Advanced security options including WS
-
Trust


WS
-
* standards



http://msdn.microsoft.com/en
-
us/library/ms734776.aspx


Use
basicHttpBinding


Unless a specific WS
-
* standards are needed


Use HTTP(S)


Enable metadata exchange


Don’t hide the WSDL


Test using non
-
.NET client


Performance


Security


Governance


Deployment and maintenance


Documentation



Custom security solutions


eBay, Live Search


UserName

Token


WSS SOAP Message Security
UsernameToken

Profile 1.0


Certificates


WSS SOAP Message Security X.509 Certificate Token Profile 1.0


Custom tokens


Amazon, eBay


Other


WS
-
Trust and federated security



Interoperability with the Azure Services Platform


Java/Ruby SDK for .NET Services

http://download.microsoft.com/download/F/F/F/FFF43284
-
5127
-
41DB
-
BD21
-
FB18180EEF96/NETServicesInteroperability.pdf


Interoperability is easy


If you follow standards


Interoperability is fun


It’s future


WYSWYG in the SOAP world


Great tool for testing and troubleshooting


It’s free!!


http://www.soapui.org


SOAP

REST

Language & platform independent

Simpler to develop

Harder to develop

Build
-
in error handling

Transport independent

Tied to HTTP

Extensibility

Heavy
-
weight

Light
-
weight

Tools

Tools

Standards

Verbose

Interoperability

Web

SOAP

REST

PROTOCOL

APPROACH