John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application Strategist SESSION CODE: ASI202
The SOA ROI Crisis… “The Dark Side of SOA” InformationWeek, September 4, 2006 “The Truth About SOA” CIO Magazine, June 15, 2006
Loose Coupling Re-useScale
ChallengeDetails Loose coupling Messaging Autonomy Interoperability Service virtualization Scale Horizontal Elastic State management Long running processes Re-use Composition / Mash-ups Economics Integration
ChallengeDetails Loose coupling Messaging Autonomy Interoperability Service virtualization Scale Horizontal Elastic State management Long running processes Re-use Composition / Mash-ups Economics Integration
ChallengeDetails Loose coupling Scale Global Distribution And Deployment AuthN / AuthZ Across Boundaries Re-use Bridging On-Premise and Cloud Robust Connections Across NAT, Protocol and Fireball Boundaries
Loose Coupling Re-useScale
Loose Coupling Re-useScale
StatefulState Repository State Repository + State Messaging
… Services Tier (ASP.Net / WCF) Services Tier (ASP.Net / WCF) UsersUsers DatabaseDatabase CloudCloud Data Tier Application Caching Access Layer Caching Service Cache Tier
Windows Azure Service Instances
Loose Coupling Re-useScale
Web Role Worker Role Autonomous Instances Azure Queues or Service Bus (REST / HTTP Interface) Interoperable Service Protocols: SOAP, REST, JSON Division of Roles into Loosely Coupled Roles 3 rd Party Consumer 3 rd Party Consumer
AppFabric Service Bus Connectivity Application #1Application #2 Direct Connection facilitated by Service Bus if that is best connection mechanism. Text XML Graphics Binary Data Streaming Firewall Send Receive Exchange messages between loosely coupled, composite applications. Send Receive
Europe Region Global Collection Pattern #1 Asia Pacific RegionNorth America Region Multiple distributed endpoints publish a message up to their closest Azure DC Messages are collected and relayed to a central collection Azure DC Messages are used at the central DC, or relayed down to on-premises Messages are received by an on-premise application Messages are received by an on-premise application Messages from remote endpoints “call home” to a single Windows Azure collection point
South East Asia Sub-region Europe Region Global Collection Pattern #2 Asia Pacific RegionNorth America Region North Europe Sub-region US South Central Sub-region US North Central Sub-region Multiple distributed endpoints publish a message up to a single Azure region Messages are used at the central DC, or relayed down to on-premises Messages from the other Azure data centers “roll up” to a central collection point data center Messages are received by an on-premise application Messages are received by an on-premise application Multiple distributed end-point applications “report up” to the single Azure data center
Traditional Point-to-point Point-to-point with cloud CRM On-Premise ESB with cloud
Loose Coupling Re-useScale
Patterns: Orchestration Composite UI Requires: Composition Runtime Message Brokers (Routing / Transformation) Support for Compensation (WF/Biztalk) Development Tools (Visual Studio) Ownership Model Order Svc Mfg Svc Billing Svc Inven tory Svc Acctin g Svc
Supervising Presenter ModelModel ViewView PresentationModelPresentationModelModelModelViewView
Finding & Loading Modules Module Loader
Building the Experience Region MyView view = …; IRegion buySellRegion = regionManager.Regions[ “BuySellRegion" ]; buySellRegion.Add( view ); MyView view = …; IRegion buySellRegion = regionManager.Regions[ “BuySellRegion" ]; buySellRegion.Add( view );
Building the Experience Region regionManager.RegisterViewType( “BuySellRegion", typeof( BuySellView ) ); regionManager.RegisterViewType( “BuySellRegion", typeof( BuySellView ) );
On-PremiseCloud Loose couplingWindows Server AppFabric BizTalk Windows Azure Platform Windows Azure AppFabric Re-useBizTalk, BizTalk ESB, Mash-ups (Prism, Silverlight, WPF, SharePoint) Windows Azure Platform AppFabric Service Bus ScaleWindows Server AppFabric BizTalk Windows Azure Platform