Professional Documents
Culture Documents
Gianpaolo Carraro
Architecture Strategy Team
gianpc@microsoft.com
http://blogs.msdn.com/gianpaolo
DC-13 Developers Strongly Cautioned
Strong Architectural Language
Limited Visual Studio Wizardry
What is SaaS?
Economy
of scale
Enable:
ISVs Economy of Scale
The Long Tail
Dozens of markets of millions or
millions of markets of dozens?
$ / Customer
# of Customers
Monetization Options
Enable:
Multiple Monetization
ISVs Schemes
Humans are costly
Enable:
ISVs
Impact on YOUR architecture
Requires Architectural Shift:
Single instance – multi tenancy
Multi-tenant efficient
Sharing resources (One instance to run them
all)
Customizable
Customization through configuration
Scaleable
Many applications will require Internet scale
“Basic” SaaS Maturity Model
Share vs. Isolate
Browser
Smart
Client
Presentation
Security
Services Directory
Meta Data
Process Services Service
Services
Business Services
Meta Databases
File
Data
System
Meta Data Service
Customizable:
UI/Branding
UI/Branding Workflow
Scope Data Model
Workflow/Business Rules Business rules
Domain-specific
Data Model Extensions Scope:
Nested hierarchy of
customization
Access Control
Inheritable
E.g. Enterprise,
department, user
Domain-specific ext. levels
0 or more
scopes
“Peopleware”:
a multitenant HR
application
Powered by
SuzSoft www.suzsoft.com and
Matias Woloski http://staff.southworks.net/blogs/matiaswoloski
High Level Scenario
Contoso: Uses PeoplewareHR Fabrikam: Uses PeoplewareHR
Advantage
“Unlimited” number/option for custom
fields
Tradeoff
Increase index/query/update complexity
and delay
When to use
OK to co-mingle tenant data
Custom fields are high value features
Difficult to predict custom fields
Shared Database
Fixed Set of Extensions
Approach: Tenant F1 F2 C1 C2 C3
ID
All tenants data in one
345 Ted 53 Null p Null
database. aid
Pre-defined set of custom
fields
777 Kay 34 23 Null Null
Advantages:
Easy to implement
Maximize number of 784 M 45 Null Null Null
tenants per database ary
server
Tradeoff: 345 Ned 21 Null owe Null
Tendency to results in
sparse table
When to use: 438 Pat 26 Null Null yes
When data co-mingling is
OK
Easy to anticipate pre-
defined custom fields
Dedicated Tenant Database
Approach:
Separate database for each
tenant
Database maintains data
dictionary
Advantages:
Tenan t Ten ant Ten ant
Easy to implement 1 2 3
Meta data identifies database
instance for each tenant
Tradeoff:
Number of tenants per
database server is low
Infrastructure cost of providing
service rise quickly
When to use:
When tenant has data isolation
requirements
Able to monetize the data
extension/isolation feature
Scaling Data
Data Partition
Divide subscriber data into smaller partitions to
meet performance goals
Schemes: hashing, temporal, etc.
Dynamic Repartitioning
Automatically repartition when database size
reaches maximum size
http://msdn.microsoft.com/architecture/learnmore/default.aspx?p
http://msdn.microsoft.com/architecture/learnmore/default.aspx?
=/library/en-us/dnbda/html/ScalOutSQL.asp
Act 2: Multi Tenant Workflow
Workflow Customization: Design
Time
Hosted Designer
Loads “current” workflow definition (from .xoml
file)
Manipulates workflow object model
Seriliaze modified object model
Calls Web Service to update .xoml
Customization type
Behavioral (decisions/rules)
Structural (activities)
Workflow Customization: Runtime
XAML Activation
SaaS
Provider
SaaS
Hoster
Shared Services: e.g. Billing, Metering, SLA Monitoring…
a.k.a. SO Infra, Service Delivery Platform, OSS/BSS
Blogs
http://blogs.msdn.com/gianpaolo
http://blogs.msdn.com/fred_chong
Web Sites
http://msdn.microsoft.com/architecture
http://msdn.microsoft.com/isv
http://www.skyscrapr.net
© 2006 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.