41
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 SESSION CODE: ASI202

John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Embed Size (px)

Citation preview

Page 1: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Real-World SOA with Microsoft .NET and Windows Azure

John deVadoss, Microsoft, Director, Patterns & Practices

Brian Loesgen, MicrosoftPrincipal SOA Architect

Christoph Schittko, MicrosoftGlobal Application Strategist

SESSION CODE: ASI202

Page 2: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Who is this session for?Roles

Solutions ArchitectsDevelopers

SOA experience“tried and failed*”“do I still care? I thought it was over”“finally, beginning to really start implementing”

Page 3: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Session GoalsWhat you will see and learn:

The current state of SOA, where have we been, where are we nowThe cloud makes SOA more important than everFocus 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 platformCode. This level 200 session is about design patterns and architecture, and how they can be applied to create business valueA “silver bullet” solution

Page 4: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Where we were

The SOA ROI Crisis…

24% say projects fell short of expectations55% say project introduced more complexity41% say project cost more than expected but failed to generate promised returnOnly 7% say results exceeded expectations

“The Dark Side of SOA”InformationWeek, September 4, 2006

“The Truth About SOA”CIO Magazine, June 15, 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.”

Page 5: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Why do you still care

“Prepare for the cloud by developing SOA skills.”“Cloud Computing will cement the mainstream

role of SOA”Gartner, 2009

Page 6: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Real World Patterns that Address the Challenges….

LooseCoupling

Re-use

Scale

Page 7: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Challenge Details

Loose coupling • Messaging• Autonomy• Interoperability• Service virtualization

Scale • Horizontal• Elastic • State management• Long running processes

Re-use • Composition / Mash-ups• Economics• Integration

Distributed Computing Challenges we always struggle with…

Page 8: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Challenge DetailsLoose coupling • Messaging

• Autonomy• Interoperability• Service virtualization

Scale • Horizontal• Elastic • State management• Long running processes

Re-use • Composition / Mash-ups• Economics• Integration

The cloud helps with some of our challenges

Page 9: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Challenge DetailsLoose 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

Cloud Architectures Amplify Other Challenges

Page 10: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Real World Patterns that Address the Challenges….

LooseCoupling

Re-use

Scale

Page 11: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Real World Patterns that Address the Challenges….

LooseCoupling

Re-use

Scale

Page 12: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

From Stateful to StatelessStateful

Stateless Service

Stateful Service

State Repository

State Repository + State

Messaging

Page 13: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

AppFabricWave 1 Windows Sever AppFabric (formerly “Dublin” & “Velocity”)

Manage services and workflowsInfrastructure for enhanced workflow and service hosting, configuration, and controlIntegration with IIS Manager and PowerShell to manage and monitor workflows and services

Monitor services and workflowsInfrastructure for storing workflow and service monitoring informationDashboard for service and workflow instance health

Distributed in-memory application cacheCaches any serializable CLR object and provides access through simple cache APIsSupports enterprise scale: tens to hundreds of computersProvides seamless integration with ASP.NET

Server/Service SymmetrySymmetric service developmentEarly adopter of common scale-out and availability fabric

Server Services

Applications

Programming Model and Tools

AppFabric

Windows Azure AppFabric (formerly .NET Services)

Server/Service ConnectivityServiceBus for connectivityClaims based access control

Page 15: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Challenge: Elastic Scale

Windows AzureService Instances

Page 16: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Challenge:

LooseCoupling

Re-use

Scale

Page 17: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Challenge: Loose Coupling

Patterns:Async MessagingInteroperable Message Format and ProtocolsService BusResource Autonomy

StorageInfrastructure (Processing, Storage, …)

RequiresQueues (Azure Queues, ServiceBus Buffers)WCF: SOAP, REST, JSONAzure Service Applications and Storage Instances

Page 18: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Web Role Worker Role

Loose Coupling With Windows Azure

Autonomous Instances

Azure Queues or Service Bus(REST / HTTP Interface)

Interoperable Service Protocols: SOAP, REST,

JSON

Division of Roles into Loosely Coupled Roles

3rd Party Consumer

Page 19: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Infrastructure Approaches to loose coupling

We have new choices today:Pure CloudOn PremiseHybridDistributed

Question everything. Don’t default to the same architectures just done in the cloud, consider the optionsOn-premise or in the cloud: we offer you choice

Page 20: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

AppFabric Service Bus Connectivity

Application #1 Application #2Direct Connection facilitated by Service Bus if that is best

connection mechanism.

TextXMLGraphicsBinary DataStreaming

Firewall

Send

Receive

Exchange messages between loosely coupled, composite

applications.

Send

Receive

Page 21: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Europe Region

Global Collection Pattern #1

Asia Pacific Region North 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 from remote endpoints “call home” to a single Windows Azure

collection point

Page 22: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

South East Asia Sub-region

Europe Region

Global Collection Pattern #2

Asia Pacific Region North 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

Multiple distributed end-point applications “report up” to the single Azure data center

Page 23: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Messaging & Integration

E-COMMERCE

CRM

HR

ERP

Traditional Point-to-point

Point-to-point with cloud

E-COMMERCE

CRM

HR

ERP

CLOUD SERVICES

HR ERP

CRM

BUSINESS PARTNER

E-COMMERCE

CLOUD SERVICES

On-Premise ESB with cloud

Page 24: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Enterprise Service Bus (ESB)

An ESB is the on-premise loosely-coupled messaging backbone for your business solutionsAn ESB can serve as an operating environment for servicesESBs bring manageability and structure to point-to-point spaghetti integrationsAn on-premise ESB is an ideal bridge to your off-premise services and messaging exchanges

Page 25: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Applied Solution(Video walkthrough at BrianLoesgen.com)

Page 26: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Challenge:

LooseCoupling

Re-use

Scale

Page 27: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Challenge: Re-use

Patterns:OrchestrationComposite 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

Inventory Svc

Accting Svc

Page 28: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Service Composition Tools

Page 29: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Challenge: Re-use, Composites

Page 30: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Design Patterns

Page 31: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Common UI PatternsSupervising PresenterPresentation Model (“Model-View-ViewModel”)

Views:Encapsulate UI & UI LogicMinimal Code BehindUI Designer Friendly

Presenters:Presentation Logic& StateUnit TestableView Independent

Separated Presentation

SupervisingPresenter

Model

View

PresentationModel ModelView

Page 32: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Modules

Unit Of Application AssemblyCollection of Related ComponentsFeature, Services, Views, Data AccessSlice & Dice: Mandatory, Optional, Role Specific

Unit Of DevelopmentIndependent DevelopmentIndependent Testing

Unit Of DeploymentUp-Front, Background or On-Demand

Page 33: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Finding & Loading ModulesModule Discovery

Pluggable Module CatalogsModule Loading

Background or On-Demand

Module Loader

Page 34: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Building the ExperienceShell – Application Host WindowRegions – Named Areas For View PlacementViews – Module UI & Presentation LogicUsing Code to Show Views:

Region

Region

Region

<ContentControl RegionManager.RegionName= “BuySellRegion” />

MyView view = …;

IRegion buySellRegion = regionManager.Regions[ “BuySellRegion" ];

buySellRegion.Add( view );

<ItemsControl RegionManager.RegionName= “DataRegion">

Page 35: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Building the ExperienceAutomatically Showing Views:

Less ComplexBlack Box ‘App Assembly’ CompositionSelect Views & Pull into Region

Region

Region

Region

<ContentControl RegionManager.RegionName= “BuySellRegion” />

regionManager.RegisterViewType( “BuySellRegion", typeof( BuySellView ) );

Page 36: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Summary: Mapping Challenges to Products…

On-Premise Cloud

Loose coupling Windows Server AppFabricBizTalk

Windows Azure PlatformWindows Azure AppFabric

Re-use BizTalk, BizTalk ESB, Mash-ups (Prism, Silverlight, WPF, SharePoint)

Windows Azure PlatformAppFabric Service Bus

Scale Windows Server AppFabricBizTalk

Windows Azure Platform

Page 37: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Where do I start?

Real-world business driversMiddle-outPartition your business capabilitiesDemonstrate value in rapid iterations – not waterfallSuccessful customers ‘snowball’

Page 38: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

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)

Page 39: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

Complete an evaluation on CommNet and enter to win!

Page 40: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

© 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.

Page 41: John deVadoss, Microsoft, Director, Patterns & Practices Brian Loesgen, Microsoft Principal SOA Architect Christoph Schittko, Microsoft Global Application

JUNE 7-10, 2010 | NEW ORLEANS, LA