Presentation is loading. Please wait.

Presentation is loading. Please wait.

.... Point of Sales Accounting Customer Relationship.

Similar presentations


Presentation on theme: ".... Point of Sales Accounting Customer Relationship."— 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

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


Download ppt ".... Point of Sales Accounting Customer Relationship."

Similar presentations


Ads by Google