Patterns & Practices for Composing Cloud Services

29

description

Patterns & Practices for Composing Cloud Services. Haishi Bai Technical Evangelist, Windows Azure 3-526. Agenda. The Starting Point Sprint 1: Relay Sprint 2: Claim-based Identity Sprint 3: Loose-coupling Sprint 4 : Integration Looking ahead. The Starting Point. Server. Client. - PowerPoint PPT Presentation

Transcript of Patterns & Practices for Composing Cloud Services

Page 1: Patterns & Practices  for Composing Cloud Services
Page 2: Patterns & Practices  for Composing Cloud Services

Patterns & Practices for Composing Cloud ServicesHaishi BaiTechnical Evangelist, Windows Azure3-526

Page 3: Patterns & Practices  for Composing Cloud Services

The Starting PointSprint 1: RelaySprint 2: Claim-based IdentitySprint 3: Loose-couplingSprint 4: IntegrationLooking ahead

Agenda

Page 4: Patterns & Practices  for Composing Cloud Services

• Local SQL Server Database (mocked)

• WCF Server• WPF Client• Windows Authentication• MVVM

The Starting PointClient

Views

Proxy

Server

Service

Repositories Public

EntitiesPrivateEntities

DataRecords View

Model

PublicEntitiesTCP

Page 5: Patterns & Practices  for Composing Cloud Services

Sprint 1 ChallengesClient

Views

Proxy

Server

Service

Repositories Public

EntitiesPrivateEntities

DataRecords View

Model

PublicEntities

Web Client

API

Proxy

HTML ViewsView Model

PublicEntities

PublicEntities

PublicEntities?

TCP

Page 6: Patterns & Practices  for Composing Cloud Services

Integration Strategies• Data

• Shared data source• Import/export• Data sync

• Connectivity• Expose public endpoints• Windows Azure Virtual Network• Windows Azure Service Bus Relay

• Brokered• Middleware• Message-based Integration

Page 7: Patterns & Practices  for Composing Cloud Services

Service Bus Relay• Securely expose on-premises WCF services to

public• No firewall or network infrastructure changes

Page 8: Patterns & Practices  for Composing Cloud Services

DEMO: Service Bus Relay

Page 9: Patterns & Practices  for Composing Cloud Services

Sprint 1 ArchitectureClient

Views

Proxy

Server

Service

Repositories Public

EntitiesPrivateEntities

DataRecords View

Model

PublicEntities

Web Client

API

Proxy

HTML ViewsView Model

PublicEntities

PublicEntities

PublicEntities

TCPRelay

Relay Endpoint

PublicEntities

Page 10: Patterns & Practices  for Composing Cloud Services

Sprint 2 ChallengesClient

Views

Proxy

Server

Service

Repositories Public

EntitiesPrivateEntities

DataRecords View

Model

PublicEntities

Web Client

API

Proxy

HTML ViewsView Model

PublicEntities

PublicEntities

?

TCP

PublicEntities

Relay

Relay Endpoint

PublicEntities

Page 11: Patterns & Practices  for Composing Cloud Services

Windows Azure Active Directory• Provide access control for your applications• Single sign-on across your applications• Social connections across the enterprise• Integrate with you on-premises AD

1

WAADTenant

ApplicationWIF

App

Login Page

2 3

4

ADApplicationWIF

App

Page 12: Patterns & Practices  for Composing Cloud Services

DEMO: Windows Azure Active Directory

Page 13: Patterns & Practices  for Composing Cloud Services

Sprint 2 ArchitectureClient

Views

Proxy

Server

Service

Repositories Public

EntitiesPrivateEntities

DataRecords View

Model

PublicEntities

Web Client

API

Proxy

HTML ViewsView Model

PublicEntities

PublicEntities

PublicEntities

TCPRelay

Relay Endpoint

PublicEntities

WAAD

Directory Sync

Page 14: Patterns & Practices  for Composing Cloud Services

Sprint 3 ChallengeClient

Views

Proxy

Server

Service

Repositories Public

EntitiesPrivateEntities

DataRecords View

Model

PublicEntities

Web Client

API

Proxy

HTML ViewsView Model

PublicEntities

PublicEntities

PublicEntities

TCP

WAAD

Relay

Relay Endpoint

PublicEntities

Directory Sync

Page 15: Patterns & Practices  for Composing Cloud Services

Loose Coupling Pattern with Service Bus• Brokered message communication• Loose-coupling among systems• Asynchronous pattern• Workload leveling

Page 16: Patterns & Practices  for Composing Cloud Services

DEMO: Service Bus Queue

Page 17: Patterns & Practices  for Composing Cloud Services

Sprint 3 ArchitectureClient

Views

Proxy

Server

Service

Repositories Public

EntitiesPrivateEntities

DataRecords View

Model

PublicEntities

Web Client

API

Proxy

HTML ViewsView Model

PublicEntities

PublicEntities

PublicEntities

TCP

WAAD

Relay

Relay Endpoint

PublicEntities

Directory Sync

Order Taker

Order Queue

Page 18: Patterns & Practices  for Composing Cloud Services

Sprint 4 ChallengeClient

Views

Proxy

Server

Service

Repositories Public

EntitiesPrivateEntities

DataRecords View

Model

PublicEntities

Web Client

API

Proxy

HTML ViewsView Model

PublicEntities

PublicEntities

PublicEntities

TCP

WAAD

Relay

Relay Endpoint

PublicEntities

Directory Sync

Order Taker

Order Queue

Page 19: Patterns & Practices  for Composing Cloud Services

DEMO: AMQP

Page 20: Patterns & Practices  for Composing Cloud Services

Sprint 4 ArchitectureClient

Views

Proxy

Server

Service

Repositories Public

EntitiesPrivateEntities

DataRecords View

Model

PublicEntities

Web Client

API

Proxy

HTML ViewsView Model

PublicEntities

PublicEntities

PublicEntities

TCP

WAAD

Relay

Relay Endpoint

PublicEntities

Directory Sync

Order Taker

Order Queue

AMQP

Page 21: Patterns & Practices  for Composing Cloud Services

Message-based Integration PatternsPipes and filtersMessage routerMessage translatorMessage endpointPoint-to-point channelPublish-subscribe channelData type channelInvalid message channelDead letter channelGuaranteed deliveryChannel adapterMessaging bridgeMessage busCommand messageDocument messageEvent message

Request-replyReturn addressCorrelationSequenceExpirationFormat indicatorContent based routerMessage filterDynamic routerRecipient listSplitterAggregatorSequencerComposed message processorScatter-gather

Routing slipProcess managerMessage brokerEnvelop wrapperContent enricherContent filterClaim checkNormalizerCanonical data modelMessage gatewayMessaging mapperTransactional clientPolling consumerEvent-driven consumerCompeting consumersMessage dispatcher

Selective consumerDurable subscriberIdempotent receiverService ActivatorControl busDetourWire tapMessage historyMessage storeSmart proxyTest messageChannel purger

Page 22: Patterns & Practices  for Composing Cloud Services

Sprint 5 ArchitectureClient

Views

Proxy

Server

Service

Repositories Public

EntitiesPrivateEntities

DataRecords View

Model

PublicEntities

Web Client

API

Proxy

HTML ViewsView Model

PublicEntities

PublicEntities

PublicEntities

TCP

WAAD

Relay

Relay Endpoint

PublicEntities

Cache

Directory Sync

BLOB

CDN

Order Taker

Order Queue

Page 23: Patterns & Practices  for Composing Cloud Services

Sprint 6 ArchitectureClient

Views

Proxy

Server

Service

Repositories Public

EntitiesPrivateEntities

DataRecords View

Model

PublicEntities

Web Client

API

Proxy

HTML ViewsView Model

PublicEntities

PublicEntities

PublicEntities

TCP

WAAD

Relay

Relay Endpoint

PublicEntities

Cache

Directory Sync

BLOB

CDN

Order Taker

Order Queue

Server

Service

Repositories

Order Taker

Data Sync

Page 24: Patterns & Practices  for Composing Cloud Services

ServerSprint 7 ArchitectureClient

Views

Proxy

PublicEntities

View Model

Web Client

API

Proxy

HTML ViewsView Model

PublicEntities

PublicEntities

WAAD

Cache

BLOB

CDN

Order Queue

Server

Service

Repositories

Order Taker

TCP

LB

Mobile

Mobile

Page 25: Patterns & Practices  for Composing Cloud Services

Web Client ServerSprint 8 ArchitectureClient

Views

Proxy

PublicEntities

View Model

Web Client

API

Proxy

HTML ViewsView Model

PublicEntities

PublicEntities

WAAD

Cache

BLOB

CDN

Order Queue

Server

Service

Repositories

Order Taker

TCP

LB

Mobile

Mobile

Accounting BizTalk

Office

Page 26: Patterns & Practices  for Composing Cloud Services

Epilogue: Recipe-VVM• R – Repository• E – Entity• C – Claim-based architecture• I – Action API and Query API• PE – Public Entity• V – View• VM – View Model

Page 27: Patterns & Practices  for Composing Cloud Services

Resourceswww.bing.comwww.windowsazure.commsdn.microsoft.com

@HaishiBai2010

@trontron

blog.haishibai.com

Page 28: Patterns & Practices  for Composing Cloud Services

Evaluate this session

Scan this QR code to evaluate this session and be automatically entered in a drawing to win a prize!

Page 29: Patterns & Practices  for Composing Cloud Services

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