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