Justin Smith
How do I expose a service broadly? Callbacks on the client, across organizational boundaries, etc. How do I keep from building identity and access control silos? Within a service itself, or within an organization How do I interop in a heterogeneous environment? Multiple vendors and/or REST How do I orchestrate many service calls?
Services hosted by Microsoft for: Firewall friendly messaging Scalable pub/sub engine for the internet Standards-based security HTTP/REST transformations Discoverability Workflow over services (coming soon) Currently in CTP (BizTalk Services) Available at
BizTalk Services Clients … … … Fabrikam Services Northwind Services Contoso Services
1. Go to Click “Create an Account” Enter username / password for BizTalk Services Associate CardSpace cards with account 3. Download and install BizTalk Services SDK WCF binding, helper classes, samples.NET Fx 3.0 and 3.5 compatible
Build a WCF contract One-way, duplex, Request-reply, simple or complex data types, session settings, etc. [ServiceContract(CallbackContract=typeof(ICallbackContract))] interface ISomeContract { [OperationContract(IsOneWay=true)] void SomeOperation(String input); } // assume SomeContract implements ISomeContract interface ICallbackContract { [OperationContract(IsOneWay=true)] void CallbackOperation(String input); } // assume SomeCallbackContract implements ICallbackContract
Connect to BizTalk Services as per WCF model Security options via IEndpointBehavior RelayBinding rb = new RelayBinding(); CardSpaceTokenProvider csp = new CardSpaceTokenProvider(); String rootName = csp.GetUserName(); Uri address = new Uri(“sb://connect.biztalk.net/services/justin/foo”); ServiceHost sh = new ServiceHost(typeof(SomeContract)); ServiceEndpoint ep = sh.AddServiceEndpoint(typeof(ISomeContract), rb, address); ep.Behaviors.Add(csp); sh.Open();
Connect to BizTalk Services as per WCF model Security options via IEndpointBehavior SomeCallbackContract cbo = new SomeCallbackContract(); DuplexChannelFactory factory = new DuplexChannelFactory (cbo); ISomeContract proxy = factory.CreateChannel(); proxy.SomeOperation(“Hello BizTalk Services"); Console.WriteLine("Sent message to bus");
Evolution toward “Software + Services” Integral in Microsoft’s vision Composite applications that span systems Feedback from customers and partners Cross enterprise or non-addressable clients Simplify federating security To open the door for new applications Connectivity currently domain specific Similar work replicated across domains
Messaging ( Applications create public addresses Identity provides simple access control Identity ( Delegate identity and access control Federated identity (CardSpace, ADFS) Username and password Workflow (coming soon) Pre-defined activities, very early stage development
ISB … … … sb://.../foo
ISB … … … sb://.../foo/bar sb://.../foo
ISB … … …
Services can opt-in to discoverable syndication URI-centric design natural for relationships BizTalk Services (Cloud) … … … sb://.../foo sb://.../bar/baz
BizTalk Services embraces WS-Addressing From, To, RelatesTo, FaultTo, ReplyTo, etc. Addresses persisted in the Message In WCF, To often equals the transport address In BizTalk Services, To != transport address Transport Address == net.tcp:// … To == sb://connect.biztalk.net/services/… Enables rich one way messaging patterns
Simple REST definition Embrace the URI, HTTP GET is special, ContentType is the data model WCF in.NET Fx 3.5 has cool REST capabilities RelayBinding is not directly interoperable and uses SOAP BizTalk Services can tunnel HTTP GET over SOAP messages to a running service.NET Fx 3.5 OM compatibility in later version
ISB … … … ClientPicture Store
Delegate identity & access control Claims transformation engine (claims in / out) Interoperable (WS-Trust) Federated HTTP Authentication Manage through web page and/or API Flexible identity provider: CardSpace, LiveID, Username/Password Identity options set by an IEndpointBehavior CardSpaceTokenProviderUsernameTokenProvider
Remote Contractor Contoso Factory Factory Workers Host and Robot Authorization Service (Internet Service Bus)
© 2007 Microsoft Corporation. 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.