Interoperability and
Windows Communication Foundation
Jorgen Thelin
Connected Systems Division
Microsoft Corporation
jthelin@microsoft.com
The Imperative to Connect
MOBILE EMPLOYEES
CUSTOMERS
CUSTOMERS
MOBILE EMPLOYEES
What is Interoperability?
Applications
working together
•
•
•
•
•
Integration =
•
•
Different platforms
Different languages
Different companies
Different versions
•
Combining software or hardware
components or both into an overall
system.
Interoperability =
•
The ability to exchange and use
information (usually in a large
heterogeneous network made up of
several local area networks)
•
The ability of software and hardware
on multiple machines from multiple
vendors to communicate
Source: Dictionary.com
•
http://dictionary.reference.com/search?q=interoperability
•
http://dictionary.reference.com/search?q=integration
It gives customers control
over the data they create
and want to share
Interoperability means connecting
people, data, and diverse systems
Vendors create innovative
solutions that bridge
technologies to address
real customer needs in an
innovative manner
The nature of software
allows for translatability
in lieu of uniformity
Integration via Interoperability
App
App
App
App
App
WCF
Other Other
WCF WSE MSFT Vendor
Stack Stack
Network
Devices
WS-Federation
WS-Management
ProfileInfrastructure
WS-Secure
WS-Business
and Profiles
Conversation
Activity Assurances
WS-Atomic
WS-Trust
WS-Reliable Transaction
WS-Security
WS-Coordination
Messaging
WS-TransferWS-EnumerationWS-Eventing
Messaging
WS-Metadata
Metadata
Exchange
WS-Discovery
UDDI
WS-Policy
WS-* Protocols
SOAP
WS-Addressing
MTOM
XML
Namespaces
MIME
XML Infoset
XML 1.0
WSDL
XML Schema
SOAP / UDPFoundation
SOAP / HTTP
Wire level interoperability achieves
integration in a heterogeneous
environment.
Enabling Interoperability
Data
Formats
Protocols
Metadata
Microsoft’s Commitment to Interoperability
•
Bill Gates’ Executive E-mail –
“Building Software That Is Interoperable By Design”
http://www.microsoft.com/mscorp/execmail/2005/02-03interoperability.asp
•
Plus deep commitment at the execution level
•
Specification development and standardization
•
•
•
•
Adopting XML and WS-* as the universal glue
•
•
eg. Systems Management, Connected Devices, Identity Management
Shipping products:
•
•
•
•
WS-* Spec authorship
Participation in Standards bodies
Participation in WS-I
Early WS-* implementations (WSE)
Strategic WS-* platform (“Indigo” / WCF)
Easy-to-use development environment (Visual Studio)
Community feedback and testing
•
•
WS-* Workshop Process
Plug-fests - Product testing of multi-vendor interop
WS-* Specifications Process
Step 1
Initial
Development
Idea
Specification
Published
Step 2
Broader
Community Participation
Feedback and
Interop
Workshops
Revise spec
Step 3
Standardization
Step 4
Profiling
Standards Org
Such as:
WS-I,
HL7, ACORD,
Devices
Profile
Increasing Industry Participation
Process reconciles conflicting goals
• Quality of engineering
• Time to market
• Breadth of industry support
What Are Interop Profiles?
•
Define a subset of specifications and options that are:
•
•
•
•
Examples:
•
•
•
Composable
Scoped
Work together
Secure RM – WS-ReliableMessaging + WSTrust/SecureConversation/Security
ACORD Messaging Profile – WS-* + ACORD payload schemas
Who defines the profile?
•
•
•
Vertical domain org – eg. ACORD
Horizontal org – eg. WS-I
Customer – singly or in groups
Profile Recipe: Staple, Redline, Glue – Device Profile Example
SOAP 1.2
WSAddressing
WSMetadata
WSDL 1.1
Exchange WSDiscovery
WSEventing
•
“Staple”
•
•
“Redline”
•
•
ThisModel
ThisDevice
Metadata
Metadata
Policy
Policy
Assertions
Assertions
•
Action
Filter
Add constraints on use of
those specs
“Glue”
•
Conformance
Claim
Pull relevant specs into scope
Define missing bits between
specs
Some will migrate back into
specs
Why Do We Need Interop Profiles?
•
Need to constrain (soften) runtime options to achieve out-of-box
interoperability
•
WS-* Architecture is designed for general applicability across a wide
range of industries / scenarios
•
•
Often too much optionality in the base specifications
Tailor to specific domain / environment
•
E.g. Devices Profile only requires SOAP 1.2 not SOAP 1.1 to lower
implementation footprint
•
Guide implementation and deployment choices
•
Achieve a proven composition of protocols and payloads
•
Allows simplification of application deployment
•
e.g. WCF allows selection of interop profile to use
Summary - Interoperability
•
•
•
•
•
•
Interoperability is the best way to achieve system
integration in a heterogeneous IT environment
Wire-level interoperability is the real goal
Web Services WS-* Architecture designed to support
multi-vendor environments
Profiling is an important tool for achieving business
interoperability
Microsoft is deeply committed to delivering products with
proven interoperability that work well in heterogeneous
environments
Other vendors also delivering implementations for WS-*
specs too
What We Heard From You
“How do I build service-oriented
systems?”
“How do I build
dynamic, decoupled
applications?”
“How can I send
messages securely &
reliably?”
“What API should I
use?”
Microsoft .NET Framework
The Managed Code
Programming Model
for Windows
Windows Communication Foundation
INTEROPERABILITY
PRODUCTIVITY
• Broad Support for WS* specifications
• Unifies today’s
distributed technologies
• Compatible with
existing MS distributed
application
technologies
• Attribute-based
development
• Visual Studio 2005
integration
SERVICE-ORIENTED
DEVELOPMENT
• Enables development
of loosely-coupled
services
• Config-based
communication
PRODUCTIVITY
Unified Programming Model
ASMX
.NET
Remoting
Interop
with other
platforms
Extensibility
Location
transparency
AttributeBased
Programming
Enterprise
Services
WS-*
Protocol
Support
WSE
MessageOriented
Programming
System.Messaging
•
•
WCF extends the .NET Framework
Services are built in Visual Studio
2005 using any .NET programming
language
WCF Composable Architecture
CLR Type
Integration
Transaction
Behavior
CLR Type
Integration
Transaction
Behavior
Security
Channel
TCP
Transport
Security
Channel
TCP
Transport
Service
Code
Instancing
Behavior
Service Model Layer
Influences and adds to
the programming
model based on
incoming messages
Messaging Layer
Moves messages back
and forth and adds
transfer semantics
(channels)
WCF Composability in Action
Service Model Layer
Transaction
Behavior
CLR Type
Integration
Instancing
Behavior
Messaging Layer
Security
Channel
Reliable
Messaging
Behaviors
HTTP
Custom
TCP
Transport
Channel
Channels
Metadata
Behavior
Instancing
Behavior
Security
Channel
HTTP
Transport
Error
Handling
Behavior
Transaction
Behavior
Reliable
Messaging
TCP
Transport
Concurrency
Behavior
CLR Type
Integration
MSMQ
Integration
Named
Pipes
Custom
Behavior
Throttling
Behavior
Custom
Channel
Queue
Transport
WCF Runtime Architecture
Binding
Contract
Address
Productivity - DIY
Using Visual Studio .NET 2003
class HelloService {
[WebMethod]
public String Hello(String Greeting) {
X509CertificateCollection collection = new
X509CertificateCollection();
IntPtr blob = Marshal.AllocHGlobal(Marshal.SizeOf(
typeof(CRYPTOAPI_BLOB)));
IntPtr data = (IntPtr)((int)blob +
Marshal.SizeOf(typeof(CRYPTOAPI_BLOB)));
…
SeqAckRange range = new SeqAcknRange(id, low, high );
SeqAckRange[] ranges = { range };
ReliableQueue.ProcessAcks( ranges );
…
hr = pITxDispenser->BeginTransaction (NULL,
ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions,
&pITransaction);
…
return Greeting;
}
}
20,379 lines
security
5,988 lines
reliable messaging
25,507 lines
transactions
4,442 lines
infrastructure
Total lines
56,296
Productivity - WSE
Using Visual Studio .NET 2003 and WSE
class HelloService {
[WebMethod]
public String Hello(String Greeting) {
foreach ( SecurityToken tok in
requestContext.Security.Tokens
{
X509SecurityToken token = tok as X509SecToken
}
…
SeqAckRange range = new SeqAcknRange(id,low,high );
SeqAckRange[] ranges = { range };
ReliableQueue.ProcessAcks( ranges );
…
hr = pITxDispenser->BeginTransaction (NULL,
ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions,
&pITransaction);
…
return Greeting;
}
}
10 lines
security
1,804 lines
reliable messaging
25,507 lines
transactions
Total lines
27,321
Productivity - WCF
Using Visual Studio 2005 and Indigo
1 line
[ServiceContract(SecureChannel, SecurityMode =“Windows")]
[Reliability(Guarantees.ExactlyOnce | Guarantees.InOrder)]
[ServiceContract]
class HelloService
{
[ServiceOperation(TransactionFlowAllowed = true)]
String Hello(String Greeting)
{
return Greeting;
}
}
security
1 line
reliable messaging
1 line
transactions
Total lines 3
INTEROPERABILITY
Investment Protection
SIDE-BY-SIDE
UPGRADE
Interop
Security
Reliable
Messaging
Messaging
XML
Transactions
Metadata
WS-* Protocol Support
SERVICE
ORIENTATION
From Objects to Services
1980s
Object-Oriented
Polymorphism
Encapsulation
Subclassing
1990s
Component-Oriented
Location Transparent
Tight Coupling
Runtime Metadata
2000s
Service-Oriented
Message-based
Schema+Contract+Policy
Broad Interop
Four Tenets of Service Orientation
Boundaries Are Explicit
Services Are Autonomous
Share Schema & Contract, Not Class
Compatibility Based On Policy
SERVICE ORIENTATION
THE BIGGER PICTURE – WCF and .NET 3.0
Next Gen Windows Technology Foundation
Windows CardSpace
Windows Presentation Foundation
• Streamlines user registration and one-click login
• Mitigates common attack vectors (Phishing)
• Seamless integration with WCF
• Vector-based
• Resolution independent
• Rich media
• 3D user interfaces
Windows Workflow Foundation
• Engine built into platform
• System and human workflow
• Composite apps
Windows Communication Foundation
•
•
•
•
Secure Web services
Reliable transacted distributed apps
Interoperability with WS-* protocols
Any transport and any host
Services, Workflow & BizTalk
WCF
WF
API for building
secure, reliable
interoperable services
Tools and engine
for building
workflow-enable apps
Application to application and B2B integration
Connects multiple services built with WCF
Adapters to multiple products like SAP and MQSeries
Business activity monitoring
Vertical solutions and industry accelerators
Message transformation services
Enterprise single sign-on
End-to-end health and activity tracking
And more…
.NET Framework – Take the Next Step
•
Get started with Visual Studio 2005
•
Download Microsoft .NET Framework
•
Give us feedback
Backup Slides
The Four Tenets of Service-Orientation
Boundaries
are Explicit
Developers opt-in to consuming,
exposing, and defining public-facing
service façade.
Services are
autonomous
Services and consumers are
independently versioned, deployed,
operated, and secured.
Share schema &
contract, not class
Data never includes behavior;
Objects with data and behavior are a
local phenomenon.
Compatibility
based on policy
Capabilities and requirements
represented by a unique public name;
Used to establish service suitability.
Benefits of Service Orientation
Facilitates implementation/platform interop
Independent deployment, versioning, mgmt
Promotes technology reuse
WCF Architecture Detail
Application
…
Error
Behavior
Metadata
Behavior
Instance
Behavior
Throttling
Behavior
Transaction
Behavior
Type Integ.
Behavior
Concurrency
Service Model
Messaging
…
Hosting
Environments
Secure
Channel
…
WAS
HTTP
Channel
ASP.NET
Avalon
Behavior
Text/XML
Encoder
Reliable
Channel
TCP
Channel
WinForm
Queue
Channel
NT Service
Binary
Encoder
COM+
WCF Feature Overview
Security, Reliability, Transactions
•
End-to-end Security
•
•
•
End-to-end Reliable messaging
•
•
•
Confidentiality, integrity, authentication, authorization
X509, Username/Password, Kerberos, SAML, custom
In-order guarantees
Exactly once guarantees
Transactions
•
Guaranteed atomic success or failure across services
WCF Feature Overview
Hosting Models
Indigo services can be hosted in any managed application
ASP.NET, COM+, EXE, NT Service, Windows Forms, Avalon
Windows Activation Service – Used by Indigo and IIS7
Windows Activation Service (WAS)
NP Listener
Adapter
HTTP Listener
Adapter (IIS7)
TCP Listener
Adapter
Named Pipes
Transport Listener
HTTP.SYS
TCP Transport
Listener
WCF Runtime Overview
Process
App Domain
Indigo Runtime
Endpoint
Service
Class
WS-* Architecture
WS-Federation
WS-Management
Devices
Profile
WS-Secure
Conversation
WS-Business
Activity
WS-Trust
WS-Atomic
Transaction
WS-Security
WS-Reliable
Messaging
WS-Coordination
WS-Transfer
WS-Enumeration
WS-Eventing
SOAP
WS-Addressing
MTOM
XML Infoset
XML 1.0
Infrastructure
and Profiles
Assurances
MIME
WS-Metadata
Exchange
WS-Discovery
UDDI
WS-Policy
Messaging
WSDL
XML Schema
SOAP / UDP
XML
Namespaces
Metadata
SOAP / HTTP
Foundation
80+ WS-* Workshop Participants
Actional
Fujitsu
Newisys
Sharp Labs
AMD
Grand Central
Nokia
Siebel
American Megatrends
Hewlett-Packard
Oasis Semiconductor
Software AG
ANL
IBM
Oblix
Sonic Software
Apache Project
iDesign
OPC Foundation
Sun
Axalto
Intel
OpenNetwork
Systinet
BEA
Intermec
Oracle
Tibco
Blue Titan
Iona
OSA Technologies
Toshiba
Boeing
IPO Group
Peerless
Tyco Safety Systems
Brother
Jboss
Ping Identity
Univ of Sydney
Canon
JibxSoap
Printronix
VeriSign
Choreology
KnowNow
QuickTree
Veritas
CommerceOne
Layer 7 Tech
Quovadx
Visa
Computer Associates
Lexmark
Reactivity
Vitria
Content Guard
Lockheed Martin
Ricoh
WRQ
Cornell University
Microsoft
Roxio
webMethods
Dell
Motive
RSA Security
WSO2
Epson
NEC
SAP
Xerox
Exceptional Innovation
NEON
Schneider Electric
Zoran
Feature Software
Netegrity
SeeBeyond
Unaffiliated
Step 2 – Workshops & Community Dev
Step 3 – Standardization
WS-* Spec Status
WS-Federation
WS-Management
Step 4 – Approved Standard
Devices
Profile
WS-Secure
Conversation
WS-Business
Activity
WS-Trust
WS-Atomic
Transaction
WS-Security
WS-Reliable
Messaging
WS-Coordination
WS-Transfer
WS-Enumeration
WS-Eventing
SOAP
WS-Addressing
MTOM
XML Infoset
XML 1.0
Infrastructure
and Profiles
Assurances
MIME
WS-Metadata
Exchange
WS-Discovery
UDDI
WS-Policy
Messaging
WSDL
XML Schema
SOAP / UDP
XML
Namespaces
Metadata
SOAP / HTTP
Foundation
WS-* Protocols - Industry Adoption
Devices
Assurances
Messaging
Apache (WSO2)


Amazon

BEA Systems Inc.


Cape Clear
Software Inc.


Canon Inc.


Security
Apache (WSO2)


BEA Systems Inc.
A
BEA Systems Inc.

A
Brother Industries



Canon Inc.


Choreology Ltd
Apache (WSO2)



BEA Systems Inc.



A
BMC (OpenNetwork)
A
A
A

Canon Inc.

Cape Clear Software Inc.

Computer Associates
(Netegrity)

gSOAP

IBM Corp. (DataPower)

IBM Corp.


Epson Corp.


IONA Technologies


Exceptional Innovation



Fuji-Xerox Co.


gSOAP

HP




RedHat (JBoss / Arjuna)
HP / Mercury / Systinet

Microsoft

Oracle

Intel Corp.
SAP

Lexmark International, Inc.
Progress / Sonic Software

eBay Inc.

Epson Corp.


Fuji-Xerox


Google

gSOAP


IONA Technologies

Sun Microsystems Inc.

HP


RedHat (JBoss / Arjuna)

Tibco Software, Inc.

IBM Corp.



Intel Corp.

Layer 7 Technologies
Inc.



HP / Mercury / Systinet



Iona


Microsoft



RedHat (JBoss /
Arjuna)
Nokia

Microsoft

Novell

Oracle

Ricoh Co.

A

A
A





EMC (RSA Security)





Ping Identity Corp.

A

SAP


SAP



Sun
Microsystems,
Inc.


Sonic Software

Sun Microsystems, Inc.

Xerox Corp.

Tibco Software, Inc.

Verisign Inc

Software AG
(WebMethods)

Released Product

Public Interop
A
Co-Author

A


Novell



Metadata
Oracle








Apache (WSO2)


BEA Systems Inc.


Computer Associates
A


A
A


Peerless Systems Corp.


Schneider Electric SA


Toshiba


Software AG
(WebMethods)
A
Xerox Corp.


AMD Inc.

Layer 7 Technologies

HP / Mercury / Systinet


Intel Corp.


HP / Mercury / Systinet
Microsoft


A
Computer Associates
RedHat (JBoss /
Arjuna)
Novell
A
Microsoft
System Mgmt

gSOAP
IBM Corp.

A
Dell Inc.
A



gSOAP




A

Microsoft

Oracle



Oracle

SAP
A


SAP

Sun Microsystems, Inc.


Sonic Software

Sun Microsystems, Inc.


WEBM Solutions, Inc.


Sonic Software
© 2003-2007 Microsoft Corporation. All rights reserved. The information contained in
Software AG
this document represents the current view at the time of publication and is subject to change. (WebMethods)
A
A