Download presentation
Presentation is loading. Please wait.
Published bySpencer Hunt Modified over 9 years ago
1
...
2
Point of Sales
3
Accounting
4
Customer Relationship
5
Document Management
6
E-Government
7
Human Resource
8
Content Management
10
Microsoft Innovation Center for EMEA ISV Development SaaS incubation program
11
michel@baladisoftware.net Michel Baladi Advisor for architects, CTO’s etc Owner/CTO for SaaS ISV startup
12
Effect on supplier (ISV) Business model Operational structure Solutions architecture
13
Why bother? Operational structure Solutions architecture
14
The 3-headed monster Business model Operational structure
15
Single instance multi tenant
16
EMEA Architectural Impact Very Visible Business Opportunities Often Overlooked Architectural Challenges Business OpportunitiesArchitectural Challenges Serving the “long tail” “try before you buy” Subscription model Business SLAs Multi-tenancy / Scale Self service / Automatic provisioning Metering / Billing SLA Monitoring/Enforcement (Examples)
17
The SaaS Architecture Shift Single Instance – Multi-tenant Multi-tenant efficient Configurable Scalable
18
EMEA shareisolate vs The right balance is determined by: Business model (can I monetize?) Business model (can I monetize?) Architectural model (can I do it?) Architectural model (can I do it?) Operational model (can I guarantee SLAs?) Operational model (can I guarantee SLAs?) Regulatory constraints (can we share data?) Regulatory constraints (can we share data?) SLA per tenant Data Separation Economy of Scale Simpler Management
19
EMEA Browser Smart Client Presentation Process Services Business Services Meta Data Services Security Services Directory Service Databases File System Meta Data High Level Application Architecture
20
EMEA Customization trade-off Market may want ◦ UI/Branding ◦ Workflow ◦ Data Model ◦ Business rules ◦ Domain-specific ◦ Multi-tier (ISV, reseller, customer) Operations prefer zero customization ◦ Only configuration
21
EMEA Application Runtime (same code image) Tenant Profile and Configuration Data Meta Data Service Farm of deployed application runtime components Entity Model Workflow and Rules User Interface Application Configuration and Designer Tools Virtual application instance Configurability Scalability Multi-tenant efficiency Metadata Driven Instances
22
EMEA Templatizing Configuration Templatized Designers Trusted Partners Premium Customers Standard Customers Runtime Metadata Policies Security, Fairness and Halting Policies Runtime Policy Enforcement Engine Design TimeRuntime Application Instance Metadata Designer Policy Enforcement Engine
23
EMEA Meta-Data : UI/Branding
24
EMEA Configurable UI Well understood topic on Microsoft Platform For Web Apps: ASP.NET 2.0, AJAX: CSS, Masterpages, Themes etc. For Windows Apps: Use „Windows Presentation Foundation“ (WPF)
25
EMEA Meta-Data: Configure Workflows
26
EMEA Configurable Workflow Workflow Foundation Uses Markup Can be stored, manipulated, executed on a per tenant basis
27
EMEA Workflow Customization: Design Time Hosted Designer Loads “current” workflow definition (from.xoml file) Manipulates workflow object model Serialize modified object model Calls Web Service to update.xoml Customization type Behavioral (decisions/rules) Structural (activities)
28
EMEA public WorkflowInstance CreateWorkflow (XmlReader workflowDefinitionReader); Workflow Customization: Runtime XAML Activation
29
EMEA we want to track customer colour preferences our customers have peculiar address formats we need to track customer history by product we want to keep track of customer visits online Meta Data: Data Model Extension
30
EMEA Configurable Data Challenges: Defining custom fields and storing custom data for each tenant. Business logic that can handle custom fields Presentation logic that can handle custom fields Tenant A Product ID Description Category ID Catalog Item Tenant B Product ID Description Classification Code Catalog Item
31
EMEA ApproachSecurity PatternsExtensibility PatternsScalability Patterns Separate DatabasesTrusted Database Connections Custom ColumnsSingle Tenant Scaleout Secure Database Tables Tenant Data Encryption Shared Database, Separate Schemas Trusted Database Connections Custom ColumnsTenant-Based Horizontal Partitioning Secure Database Tables Tenant Data Encryption Shared Database, Shared Schema Trusted Database Connections Preallocated FieldsTenant-Based Horizontal Partitioning Tenant View FilterName-Value Pairs Tenant Data Encryption Database Patterns
32
EMEA Custom Fields Data and Definition Meta-data/data dictionary required 3 general approaches: Separate database for each tenant Shared database, a canned set of extended fields Shared database, any number of extended fields Tradeoff between each approach
33
EMEA Dedicated Tenant Database Approach: Separate database for each tenant Database maintains data dictionary Advantages: Easy to implement 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 Tenant 1 Tenant 3 Tenant 2
34
EMEA Shared Database, fixed set of extensions Approach: All tenants data in one database. Pre-defined set of custom fields Advantages: Easy to implement Maximize number of tenants per database server Tradeoff: Tendency to results in sparse table When to use: When data co-mingling is OK Easy to anticipate pre-defined custom fields Tenant ID F1F2C1C2C3 345Ted53NullpaidNull 777Kay3423NullNull 784Mary45NullNullNull 345Ned21NulloweNull 438Pat26NullNullyes
35
EMEA Same database, variable custom extensions Approach All tenants in one database Variable number of custom fields Name-value pair in separate tables Advantage “Unlimited” number/option for custom fields Tradeoff Increase index/search/query/update complexity When to use OK to co-mingle tenant data Custom fields are high value features Difficult to predict custom fields Tenant ID F1F2 Record ID 764Ted$56893 673John$32Null 783Sal$99564 NameValue893StatusGold 893Expire7-29-2008 564AffiliationAcme
36
EMEA Data: a practical advice Consider design for the most general case, the single shared database If a customer wants isolation, just deploy him on a single instance Pro: This approach gives you the greatest flexibility. Con: More complex queries, may affect performance
37
EMEA Meta-Data: Access Control
38
EMEA Implication on Identity Architecture Use identity federation to achieve SSO How to manage trust – PKI Standard-based products (WS-Federation, SAML etc) Use claims-centric architecture to communicate access policies Signed attributes and assertions to rely on roles and access rules information: E.g. authorized to purchase if amount < 50
39
EMEA Access Control Some Platform Technologies to consider ADFS Windows Role Based Access Control (RBAC) Authorization Manager (AzMan)
40
EMEA UI/Branding Workflow and Rules Data model extensions Access Control … other domain specific considerations… Meta-Data Considerations
41
EMEA GUIDANCE
42
Sample Application Microsoft has developed a sample application („Litware HR“) Addressing all the major architectural challenges of a SaaS application for the „Long Tail“ Is available for download on MSDN http://msdn.microsoft.com/architecture/saas/sampleApp http://msdn.microsoft.com/architecture/saas/sampleApp
43
Contoso Customizations: UI: “Contoso Orange” L&F Data: New “Job Level” Field Workflow: Recruitement based on Job Level Roles and Access: HR Manager, CEO Litware HR: A Sample SaaS App HR App (Recruitment) Single Instance Multi Tenant Authenticated access Configuration & Post jobs Private site Web Interface Fabrikam Customizations: UI: Fabrikam L&F Data: New “Audition Required” Field Workflow: based on “audition required” Roles and Access: Audition Judge, Owner Unauthenticated access Search & Apply for jobs Web APIs Public site Web Interface Internet Music SchoolRetail Shoe Chain Operational Platform “Internal” SaaS Hosting Platform Provisioning (try before buy) Billing (not implemented)
44
EMEA Scaling Application Stateless Improve service memory footprint Improve ability to load balance Asynchronous I/O Do useful work while waiting for I/O to complete Resource Pooling Threads, network and database connections Maximize concurrency Minimize exclusive locking
45
EMEA Scaling Data Data Partition (horizontal) Divide subscriber data into smaller partitions to meet performance goals Schemes: hashing, temporal, etc. Dynamic Repartitioning Automatically repartition when database size reaches maximum size
46
80.000*2 vs. 1*160.000 Business model Solutions architecture
47
From this...
48
...to this
49
The ecosystem Delivery Architecture Consumption Architecture Application Architecture
50
SaaS Hosting Platform Security Log SaaS Application Identity Management Usage Tracking CRM Call Center Support System Management Log SaaS Application Performance Availability Security SLA Monitoring Provisioning Management Agent Access Control Metering Order Management SaaS Hosting Platform Runtime Billing Management Alerts
51
N-tiered multi-tenancy ”Nortwind” SaaS hosting platform and services HighAvail platform run-time instance EntryLevel platform run-time instance Shared platform services Application tenants ”Fabrikam” Consumer and application tenant ”Contoso” Consumer and application tenant Platform tenants ”Litware” ISV and platform tenant ”AdventureWorks” ISV and platform tenant Storefront(s) at ISV, hoster and/or aggregator ”Litware” store-front”Nortwind” store-front
52
EMEA #1 Prepare
53
EMEA #2 Publish
54
EMEA #3 Subscribe
55
EMEA SLAs SLA Monitoring Availability Performance SLA Enforcing Rules, notification and alerts Automated Resource Allocation Automated provisioning Early evidence shows SaaS customer are expecting more when hosted than in-house
56
EMEA Additional Information Software as Services consulting www.baladisoftware.net michel@baladisoftware.net Software as Services Architectural Guidance http://msdn.microsoft.com/architecture/saas http://msdn.microsoft.com/architecture/saas Blogs about Architecture : http://blogs.msdn.com/fred_chong http://blogs.msdn.com/fred_chong http://blogs.msdn.com/gianpaolo http://blogs.msdn.com/gianpaolo SaaS sample application (for the long tail) http://msdn.microsoft.com/architecture/saas/sampleApp http://msdn.microsoft.com/architecture/saas/sampleApp Service Provider License Agreement http://www.microsoft.com/serviceproviders/licensing http://www.microsoft.com/serviceproviders/licensing
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.