Your SlideShare is downloading. ×
Building SaaS Solutions
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Building SaaS Solutions

1,096
views

Published on


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,096
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
41
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Building SaaS Solutions EMEA Jürgen Pfeifer Architect, MCA Microsoft EMEA HQ http://blogs.msdn.com/juergenp
  • 2. Consuming SaaS EMEA
  • 3. The Enterprise enterprise Purchase EMEA
  • 4. From Evaluation... EMEA
  • 5. To „Try before you buy“... EMEA
  • 6. The Enterprise enterprise Purchase Deploy long eval process try before you buy EMEA
  • 7. From Customization... EMEA
  • 8. To Configuration... EMEA
  • 9. The Enterprise enterprise Purchase Deploy Manage long eval process customisation try before you buy configuration EMEA
  • 10. From reliance on internal IT... EMEA
  • 11. To SLAs... EMEA
  • 12. The Enterprise enterprise Purchase Deploy Manage long eval process customisation reliance on internal IT try before you buy configuration SLAs EMEA
  • 13. SaaS ISV considerations EMEA
  • 14. SaaS Vendors enterprise Purchase Deploy Manage long eval process customisation reliance on internal IT try before you buy configuration SLAs independent software vendors (ISVs) enable try before you buy EMEA
  • 15. SaaS Vendors enterprise Purchase Deploy Manage long eval process customisation reliance on internal IT try before you buy configuration SLAs independent software vendors (ISVs) enable enable try before you buy no-code config EMEA
  • 16. SaaS Vendors enterprise Purchase Deploy Manage long eval process customisation reliance on internal IT try before you buy configuration SLAs independent software vendors (ISVs) enable enable enable try before you buy no-code config SLA infrastructure EMEA
  • 17. SaaS Vendors enterprise Purchase Deploy Manage long eval process customisation reliance on internal IT try before you buy configuration SLAs independent software vendors (ISVs) enable enable enable try before you buy no-code config SLA infrastructure enable economies of scale EMEA
  • 18. Monetisation EMEA
  • 19. Monetization Scheme matters For the Enterprise  No upfront perpetual license cost  Finance people like predictable recurring cost For the ISV  Subscription model provides better predicability of revenue streams EMEA
  • 20. SaaS Vendors enterprise Purchase Deploy Manage long eval process customisation reliance on internal IT try before you buy configuration SLAs independent software vendors (ISVs) enable enable enable try before you buy no-code config SLA infrastructure enable enable economies of scale monetisation schemes EMEA
  • 21. EMEA
  • 22. EMEA
  • 23. Minimize human intervention referrals & breadth marketing self provisioning self-customisation automatic billing delegated administration EMEA
  • 24. SaaS Vendors enterprise Purchase Deploy Manage long eval process customisation reliance on internal IT try before you buy configuration SLAs independent software vendors (ISVs) enable enable enable try before you buy no-code config SLA infrastructure enable enable enable economies of scale monetisation schemes minimal intervention EMEA
  • 25. User Experience counts EMEA
  • 26. Architectural Impact Very Visible Business (Examples) Opportunities Business Opportunities Architectural Challenges •Serving the “long tail” •Multi-tenancy / Scale •“try before you buy” •Self service / Automatic provisioning •Subscription model •Metering / Billing Often Overlooked •Business SLAs •SLA Monitoring/Enforcement Architectural Challenges EMEA
  • 27. share isolate vs Economy of Scale SLA per tenant Simpler Management Data Separation The right balance is determined by: • Business model (can I monetise?) • Architectural model (can I do it?) • Operational model (can I guarantee SLAs?) • Regulatory constraints (can we share data?) EMEA
  • 28. High Level Application Architecture Browser Smart Client Presentation Security Services Directory Meta Data Process Services Service Services Business Services Meta Databases File Data EMEA System
  • 29. Metadata Driven Instances Application Configuration and Designer Tools Virtual application instance User Interface Workflow and Rules Entity Model Configurability Meta Data Service Multi-tenant efficiency Application Runtime (same code image) Tenant Profile Farm of deployed application runtime components and Configuration Data Scaleability EMEA
  • 30. Meta-Data : UI/Branding EMEA
  • 31. Meta-Data: Configure Workflows EMEA
  • 32. Meta Data: Data Model Extension we want to track customer colour preferences we want to keep track of customer visits online we need to track customer history by product our customers have peculiar address formats EMEA
  • 33. Meta-Data: Access Control EMEA
  • 34. Meta-Data Considerations UI/Branding Workflow and Rules Data model extensions Access Control … other domain specific considerations… EMEA
  • 35. GUIDANCE EMEA
  • 36. Sample Application Microsoft is developing a sample application  Addressing all the major architectural challenges of a SaaS application for the „Long Tail“  Will be available for download on MSDN  Planned for Q1 2007 EMEA
  • 37. 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) EMEA
  • 38. Configurable Workflow Workflow Foundation  Uses Markup  Can be stored, manipulated, executed on a per tenant basis EMEA
  • 39. 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) EMEA
  • 40. Workflow Customization: Runtime XAML Activation public WorkflowInstance CreateWorkflow (XmlReader workflowDefinitionReader); EMEA
  • 41. Configurable Data Tenant A Tenant B Catalog Item Catalog Item Product ID Product ID Description Description Category ID Classification Code 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 EMEA
  • 42. Database Patterns Approach Security Patterns Extensibility Patterns Scalability Patterns Separate Databases Trusted Database Custom Columns Single Tenant Scaleout Connections Secure Database Tables Tenant Data Encryption Shared Database, Trusted Database Custom Columns Tenant-Based Horizontal Separate Schemas Connections Partitioning Secure Database Tables Tenant Data Encryption Shared Database, Shared Trusted Database Preallocated Fields Tenant-Based Horizontal Schema Connections Partitioning Tenant View Filter Name-Value Pairs Tenant Data Encryption EMEA
  • 43. 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 EMEA
  • 44. Dedicated Tenant Database  Approach:  Separate database for each tenant  Database maintains data dictionary  Advantages:  Easy to implement Tenant Tenant Tenant  Meta data identifies database 1 2 3 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 EMEA
  • 45. Shared Database, fixed set of extensions  Approach: Tenant F1 F2 C1 C2 C3  All tenants data in one database. ID  Pre-defined set of custom fields 345 Ted 53 Null paid Null  Advantages:  Easy to implement 777 Kay 34 23 Null Null  Maximize number of tenants per database server  Tradeoff: 784 Mary 45 Null Null Null  Tendency to results in sparse table 345 Ned 21 Null owe Null  When to use:  When data co-mingling is OK  Easy to anticipate pre-defined 438 Pat 26 Null Null yes custom fields EMEA
  • 46. Same database, variable custom extensions  Approach  All tenants in one database Tenant ID F1 F2 Record ID  Variable number of custom fields 764 Ted $56 893  Name-value pair in separate tables 673 John $32 Null  Advantage  “Unlimited” number/option 783 Sal $99 564 for custom fields  Tradeoff  Increase index/search/query/update Record ID Name Value complexity  When to use 893 Status Gold  OK to co-mingle tenant data  Custom fields are high value 893 Expire 7-29-2008 features  Difficult to predict custom 564 Affiliation Acme fields EMEA
  • 47. 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 EMEA
  • 48. 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 EMEA
  • 49. 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 EMEA
  • 50. 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 EMEA
  • 51. Access Control Some Platform Technologies to consider  ADFS  Windows Role Based Access Control (RBAC)  Authorization Manager (AzMan) EMEA
  • 52. Access Control SCOPE Users Business Rules Permission … Groups Role Permission  Authorization policies can be defined at different scopes (enterprise, dept etc.)  Permissions, roles, groups and business rules can be customizable per tenant EMEA
  • 53. 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 EMEA
  • 54. Composition & Integration Provide clean and well defined Service Interfaces  Follow SOA best practices  For Enterprise: support SOAP style and WS-* if necessary. Windows Communication Foundation (WCF) is your friend  For Consumer SaaS: support REST style (again, WCF is your friend) EMEA
  • 55. Shared Services SaaS Provider SaaS Hoster Shared Services: e.g. Billing, Metering, SLA Monitoring… a.k.a. SO Infra, Service Delivery Platform, OSS/BSS “Classic” Hosting “Classic” CPU-Storage-Bandwidth Hoster As provider: do you build or buy the hosting? EMEA
  • 56. SaaS Hosting Platform: Operational SaaS SaaS SaaS SaaS Application Application Application Application SaaS Hosting Platform Runtime Access Order Management Metering Control Management Agent Security Provisio Management Usage Log Identity ning Log Tracking Management Provisioning SLA Monitoring CRM Billing Availability Management Security Alerts Call Center Performance Support System EMEA
  • 57. © 2006,2007 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.