410 likes | 535 Views
SESSION CODE: ASI202. Real-World SOA with Microsoft .NET and Windows Azure . John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application Strategist . Who is this session for?. Roles
E N D
SESSION CODE: ASI202 Real-World SOA with Microsoft .NET and Windows Azure John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application Strategist
Who is this session for? • Roles • Solutions Architects • Developers • SOA experience • “tried and failed*” • “do I still care? I thought it was over” • “finally, beginning to really start implementing”
Session Goals • What you will see and learn: • The current state of SOA, where have we been, where are we now • The cloud makes SOA more important than ever • Focus on three key hotspots (customer challenges) and their solutions on the Microsoft platform • What you WILL NOT see: • End-to-end coverage of the Microsoft platform • Code. This level 200 session is about design patterns and architecture, and how they can be applied to create business value • A “silver bullet” solution
Where we were The SOA ROI Crisis… “The Truth About SOA”CIO Magazine, June 15, 2006 “The Dark Side of SOA”InformationWeek, September 4, 2006 • “Services built in isolation, without taking into account the architectural and business goals of the company… may fail outright. Grand architectural planning exercises may drag on endlessly, without providing any real business benefit.” • 24% say projects fell short of expectations • 55% say project introduced more complexity • 41% say project cost more than expected but failed to generate promised return • Only 7% say results exceeded expectations
Why do you still care “Prepare for the cloud by developing SOA skills.” “Cloud Computing will cement the mainstream role of SOA” Gartner, 2009
From Stateful to Stateless Stateful State Repository State Repository + State Messaging • Stateless Service • Stateful Service
AppFabricWave 1 Windows Sever AppFabric (formerly “Dublin” & “Velocity”) • Manage services and workflows • Infrastructure for enhanced workflow and service hosting, configuration, and control • Integration with IIS Manager and PowerShellto manage and monitor workflows and services • Monitor services and workflows • Infrastructure for storing workflow and service monitoring information • Dashboard for service and workflow instance health • Distributed in-memory application cache • Caches any serializable CLR object and provides access through simple cache APIs • Supports enterprise scale: tens to hundreds of computers • Provides seamless integration with ASP.NET • Server/Service Symmetry • Symmetric service development • Early adopter of common scale-out and availability fabric Server Services Applications Programming Model and Tools AppFabric Windows Azure AppFabric(formerly .NET Services) • Server/Service Connectivity • ServiceBus for connectivity • Claims based access control
AppFabric Cache Users … Services Tier (ASP.Net/ WCF) Application Application Application Caching Access Layer Caching Access Layer Caching Access Layer Caching Service Caching Service Caching Service Cache Tier Data Tier Database Cloud
Challenge: Elastic Scale Windows Azure Service Instances
Challenge: Loose Coupling • Patterns: • Async Messaging • Interoperable Message Format and Protocols • Service Bus • Resource Autonomy • Storage • Infrastructure (Processing, Storage, …) • Requires • Queues (Azure Queues, ServiceBus Buffers) • WCF: SOAP, REST, JSON • Azure Service Applications and Storage Instances
Loose Coupling With Windows Azure 3rd Party Consumer Azure Queues or Service Bus (REST / HTTP Interface) Division of Roles into Loosely Coupled Roles Web Role Worker Role Interoperable Service Protocols: SOAP, REST, JSON Autonomous Instances
Infrastructure Approaches to loose coupling • We have new choices today: • Pure Cloud • On Premise • Hybrid • Distributed • Question everything. Don’t default to the same architectures just done in the cloud, consider the options • On-premise or in the cloud: we offer you choice
AppFabric Service Bus Connectivity Text XML Graphics Binary Data Streaming Receive Receive Firewall Send Send Exchange messages between loosely coupled, composite applications. Direct Connection facilitated by Service Bus if that is best connection mechanism. Application #1 Application #2
Global Collection Pattern #1 • 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 Europe Region Asia Pacific Region North America Region Messages are received by an on-premise application Messages from remote endpoints “call home” to a single Windows Azure collection point
Global Collection Pattern #2 • 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 Europe Region Asia Pacific Region North America Region Multiple distributed end-point applications “report up” to the single Azure data center Messages are received by an on-premise application US North Central Sub-region North Europe Sub-region US South Central Sub-region Messages from the other Azure data centers “roll up” to a central collection point data center South East Asia Sub-region
HR HR HR CRM CRM Messaging & Integration Traditional Point-to-point Point-to-point with cloud On-Premise ESB with cloud CLOUD SERVICES ERP CLOUD SERVICES ERP E-COMMERCE ERP CRM E-COMMERCE BUSINESS PARTNER E-COMMERCE
Enterprise Service Bus (ESB) • An ESB is the on-premise loosely-coupled messaging backbone for your business solutions • An ESB can serve as an operating environment for services • ESBs bring manageability and structure to point-to-point spaghetti integrations • An on-premise ESB is an ideal bridge to your off-premise services and messaging exchanges
Applied Solution (Video walkthrough at BrianLoesgen.com)
Challenge: Re-use Inventory Svc • 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 Accting Svc
Separated Presentation • Common UI Patterns • Supervising Presenter • Presentation Model (“Model-View-ViewModel”) • Views: • Encapsulate UI & UI Logic • Minimal Code Behind • UI Designer Friendly • Presenters: • Presentation Logic& State • Unit Testable • View Independent View SupervisingPresenter Model View Presentation Model Model
Modules • Unit Of Application Assembly • Collection of Related Components • Feature, Services, Views, Data Access • Slice & Dice: Mandatory, Optional, Role Specific • Unit Of Development • Independent Development • Independent Testing • Unit Of Deployment • Up-Front, Background or On-Demand
Finding & Loading Modules • Module Discovery • Pluggable Module Catalogs • Module Loading • Background or On-Demand Module Loader
Building the Experience • Shell – Application Host Window • Regions – Named Areas For View Placement • Views – Module UI & Presentation Logic • Using Code to Show Views: <ItemsControlRegionManager.RegionName= “DataRegion"> MyViewview = …; IRegionbuySellRegion =regionManager.Regions[ “BuySellRegion"]; buySellRegion.Add( view ); Region <ContentControlRegionManager.RegionName= “BuySellRegion” /> Region Region
Building the Experience • Automatically Showing Views: • Less Complex • Black Box ‘App Assembly’ Composition • Select Views & Pull into Region regionManager.RegisterViewType( “BuySellRegion", typeof( BuySellView ) ); <ContentControlRegionManager.RegionName= “BuySellRegion” /> Region Region Region
Where do I start? Real-world business drivers Middle-out Partition your business capabilities Demonstrate value in rapid iterations – not waterfall Successful customers ‘snowball’
Required Slide Speakers, please list the Breakout Sessions, Interactive Sessions, Labs and Demo Stations that are related to your session. Related Content • Breakout Sessions (session codes and titles) • Interactive Sessions (session codes and titles) • Hands-on Labs (session codes and titles) • Product Demo Stations (demo station title and location)
Required Slide Complete an evaluation on CommNet and enter to win!
© 2010 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.