1 / 55

...

. Point of Sales. Accounting. Customer Relationship. Document Management. E-Government. Human Resource. Content Management. Software-as-a-sevice (SaaS) is REAL. Microsoft Innovation Center. for EMEA ISV Development. SaaS incubation program. Michel Baladi

shirin
Download Presentation

...

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ...

  2. Point of Sales

  3. Accounting

  4. Customer Relationship

  5. Document Management

  6. E-Government

  7. Human Resource

  8. Content Management

  9. Software-as-a-sevice (SaaS) is REAL

  10. Microsoft Innovation Center for EMEA ISV Development SaaS incubation program

  11. Michel Baladi • Advisor for architects, CTO’s etc • Owner/CTO for SaaS ISV startup michel@baladisoftware.net

  12. Effect on supplier (ISV)

  13. Why bother?

  14. The 3-headed monster

  15. Single instance multi tenant

  16. Architectural Impact (Examples) Very Visible Business Opportunities Business Opportunities Architectural 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 Often Overlooked Architectural Challenges

  17. Multi-tenant efficient Scalable Configurable The SaaS Architecture ShiftSingle Instance – Multi-tenant

  18. share isolate vs Economy of Scale Simpler Management SLA per tenant Data Separation • The right balance is determined by: • Business model (can I monetize?) • Architectural model (can I do it?) • Operational model (can I guarantee SLAs?) • Regulatory constraints (can we share data?)

  19. High Level Application Architecture Browser Security Services Smart Client Presentation Directory Service Meta Data Services Process Services Business Services Meta Data Databases File System

  20. 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. 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 and Configuration Data Farm of deployed application runtime components Scalability

  22. Templatizing Configuration Design Time Runtime Policies Designer Policy Enforcement Engine Runtime Policy Enforcement Engine Security, Fairness and Halting Policies Metadata Standard Customers Runtime Metadata Runtime Metadata Premium Customers Runtime Metadata Application Instance Trusted Partners Templatized Designers

  23. Meta-Data : UI/Branding

  24. 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. Meta-Data: Configure Workflows

  26. Configurable Workflow • Workflow Foundation • Uses Markup • Can be stored, manipulated, executed on a per tenant basis

  27. 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) Workflow Customization: Design Time

  28. XAML Activation Workflow Customization: Runtime • publicWorkflowInstance CreateWorkflow • (XmlReader workflowDefinitionReader);

  29. we want to track customer colour preferences we want to keep track of customer visits online our customers have peculiar address formats we need to track customer history by product Meta Data: Data Model Extension

  30. Configurable Data Tenant B Tenant A • 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 Catalog Item Catalog Item Product ID Description Category ID Product ID Description Classification Code

  31. Database Patterns

  32. 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. 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 2 Tenant 3

  34. 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

  35. 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

  36. 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. Meta-Data: Access Control

  38. 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. Access Control • Some Platform Technologies to consider • ADFS • Windows Role Based Access Control (RBAC) • Authorization Manager (AzMan)

  40. Meta-Data Considerations UI/Branding Workflow and Rules Data model extensions Access Control … other domain specific considerations…

  41. Guidance

  42. Microsoft hasdeveloped 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 Sample Application

  43. Litware HR: A Sample SaaS App Retail Shoe Chain Music School Contoso Customizations: UI:“Contoso Orange” L&F Data:New “Job Level” Field Workflow:Recruitementbased on Job Level Roles and Access:HR Manager, CEO Fabrikam Customizations: UI:Fabrikam L&F Data: New “Audition Required” Field Workflow:based on “audition required” Roles and Access:Audition Judge, Owner Internet Web Interface Web APIs Web Interface Public site Private site Unauthenticated access Search & Apply for jobs Authenticated access Configuration & Post jobs Operational Platform “Internal” SaaS Hosting Platform Provisioning (try before buy) Billing (not implemented) HR App (Recruitment) Single Instance Multi Tenant

  44. 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. 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

  47. From this...

  48. ...to this

  49. Consumption Architecture Application Architecture Delivery Architecture The ecosystem

  50. SaaS Application SaaS Application SaaS Application SaaS Application Call Center Support System SaaS Hosting Platform Runtime Access Control Order Management Management Agent Metering Security Log Management Log Usage Tracking Identity Management CRM SLA Monitoring SaaS Hosting Platform Availability Management Alerts Security Billing Performance Provisioning

More Related