Bhushan NeneGrzegorz Gogolowicz Principal ArchitectSenior ArchitectMicrosoft Session Code: DEV304.
-
Upload
florence-phillips -
Category
Documents
-
view
218 -
download
0
Transcript of Bhushan NeneGrzegorz Gogolowicz Principal ArchitectSenior ArchitectMicrosoft Session Code: DEV304.
Deep Dive into Developing Line-of-Business Applications running in the Cloud
Bhushan Nene Grzegorz GogolowiczPrincipal Architect Senior ArchitectMicrosoft MicrosoftSession Code: DEV304
Canonical LOB Requirements
•On-demand scalability: Data, Transaction Processing, Batch, Front End
•Targets SMB to Enterprise
•Federation•SSO•Live ID
•User Experience (Full UI customization)
•Business Logic•Data Model
•On Demand Tenant Provisioning
•Data Partitioning for Tenant Isolation
•Metering
Multi-Tenancy Customization & Extensibility
Scalable Architecture
Claims-based Security
ScenarioImagine your favorite coffee chain interested in rewarding their frequent customersISV offers Customer Loyalty program as a service in Windows AzureCoffee chain signs up for the program and customizes user experience, business process, and data modelExisting on-premise Point-of-Sale system integrates with Customer Loyalty serviceCoffee chain customers use self service portal to track points & rewards
Tenant On-boardingdemo
Design: Tenant On-boardingConfig Data
Tenant ConfigApp Config, Tenant Master …
T1, T2
Tenant Data
Azure Tables
SQL Azure DBs
T1, T2T4, T5
Tenant Admin Portal
(ASP.NET Web App)
STS(ASP.NET Web App)
Identity Mgmt Services (WCF)
IdentityT1, T2
SAML
SAML
1
2
3
4
5
67
8
Design Considerations & Best Practices
Data Storage Choice: Azure Table / SQL AzureTenant Data Partitioning
Azure Table: Per Tenant TableSQL Azure: Per Tenant DB
Data Model customizationAzure Table: Entity PropertySQL Azure: Table Column
Claims Aware web application
Point-of-Sale User Experience & Transaction Processing
demo
Design: Point-of-Sale Transaction
Config Data
Tenant ConfigApp Config, Tenant Master …
T1, T2
Riviera Web Services
(WCF)
STS(WCF Web Services)
Identity
T1, T2
SAML
SAML
Tenant Data
Azure Tables SQL Azure DBs
T1, T2
T4, T5
1 2
3
45 6
78
Point-of-Sale(WPF App)
Creds
Azure Queue
Riviera Worker Role
EntLib (Caching, Logging)
Azure Queue
Azure Queue
Design Considerations & Best Practices
Scalable Async Transaction ProcessingScaling on-demand: Management APIEnterprise Library
Caching: Service Bus to sync distributed cache, Velocity in futureLogging
Claims aware web services: WCF & WIFBusiness Process Customization: WF XOMLAzure Table design: table partitioning heterogeneous entities, property indexing
Design Considerations – Table PartitioningPartition Key Row Key Properties1 K1 LastName: Swanson, FirstName: Trent1 K2 Points: 201 K3~{guid} RewardType: Percent, RewardValue:101 K3~{guid} RewardType: Amount, RewardValue:52 K1 LastName: Johnson, FirstName: Mike2 K2 Points: 602 K3~{guid} RewardType: Percent, RewardValue:20
Partition KeyRow Key PropertiesT1 1~K1 LastName: Swanson, FirstName: TrentT1 1~K2 Points: 20T1 1~K3~{guid} RewardType: Percent, RewardValue:10T1 K3~{guid} RewardType: Amount, RewardValue:5T1 2~K1 LastName: Johnson, FirstName: MikeT1 2~K2 Points: 60T1 2~K3~{guid} RewardType: Percent, RewardValue:20
• Get All Data for Trent: PartiionKey=1• Get Trent’s Points: PartitionKey=1 && RowKey=K2• Get Trent’s Rewards: PartitionKey=1 && (RowKey > K3 && RowKey < K4)
Querying Heterogeneous Entities
Self Service Portaldemo
Design: Self Service Portal
Tenant DataAzure Tables & BLOBs
SQL Azure DBs
Config DataT1, T2, T3
T4, T5, T6
Tenant Config
T1, T2, T3Member SelfService
PortalLoyalty
MemberLoyalty
Membership Services (WCF)
ASP.NET Web App
SelfService AppCustom fields
Dynamic data bindingThemes
Custom XAMLCustom XAP
XAP
1
3
4
2
56
7
Design Considerations & Best Practices
Deep UI customization beyond meta-data driven layout
Custom code in the Cloud?Custom code in Silverlight and browser sandbox
Themes, IconsCustom Property BindingLoose XAMLCustom XAP: HTTP handler, Azure Blob storage
Design Considerations & Best Practices
Custom domain nameWeb services securityWindows Live ID
AuthenticationAnd Beyond: Messenger API, Live Mesh (future)
Huron: Data Hub in the CloudE.g. Sync member data to on-premise DB for mass mailing
question & answer
www.microsoft.com/teched
Sessions On-Demand & Community
http://microsoft.com/technet
Resources for IT Professionals
http://microsoft.com/msdn
Resources for Developers
www.microsoft.com/learning
Microsoft Certification & Training Resources
Resources
Related ContentBreakout Sessions
• ARC201 - 11/09/2009 09:00-10:15 [David Chappell]The Windows Azure Platform: When And Why To Use It
• SVR202 - 11/10/2009 09:00-10:15 [Jan Schenk]Windows Azure Flight Tour – Looking At The Clouds From Above
• INT305 - 11/10/2009 13:30-14:45 [Kurt Claeys]Code Walkthrough of a Cloud Application Running on the Windows Azure Platform
• DAT303 - 11/11/2009 13:30-14:45 [David Robinson]Building Applications with Microsoft SQL Azure and Windows Azure
Complete an evaluation on CommNet and enter to win an Xbox 360 Elite!
© 2009 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.