Gianpaolo Carraro Architecture Strategy Team [email protected] http://blogs.msdn.com/gianpaolo Context Facts: Software as a Service (SaaS) is getting a lot of attention Lots of buzz but little architectural guidance on the topic Architecture Strategy Team is investing in SaaS Guidance Currently, more an ISV topic than a SI or Enterprise Even though I talked to several enterprises developing SaaS Todays Objectives: Share with you our current thinking Get you thinking / get your thinking (maybe) find ways to collaborate / engage in projects
Agenda Software as a Service (SaaS) Overview Architectural Shift Overview Some Design Patterns Q&A SaaS Actors and Interests What is SaaS: ISV definition Thisput: said, not all SaaS are Simply equal: Degree of customization per Software userdeployed as a hosted service and accessed over the Internet.
Scalability of the service Enterprise / Consumer as opposed to: on premise Monetization model Sales model (direct / indirect) 2 categories of SaaS applications are getting the most attention: (a) Enterprise LOB SaaS Realizing SaaS Business Model Applicati on
Architec ture Softwar e Services Operatio nal Structur e SaaS impacts the entire consumption cycle : In particular in the L.O.B. application space Purchase Deployment From: Customizatio
From: n Long Eval Process CapEx Buyer To: To: Try before you buy Configuratio OpEx n Seller Enable: Try before you buy Enable: Configuratio n (no custom code)
Management From: Reliance on internal IT To: SLAs Enable: SLA monitoring / enforcement Big Deal 1: Importance of Economy of Scale Hardware Cost at Provider People Cost at Provider
Big Deal 2: The Long Tail $ / Customer Dozens of markets of millions or millions of markets of dozens? Your Large Customers What if you lower your cost of sale (i.e. lower barrier to entry) and you also lower cost of operations Your Typical Customers New addressable market >> current market (Currently) non addressable Customers # of Customers Big Deal 3: Monetization Options Subscription (monthly fee per seat) Transaction based pricing (profit sharing) Ad-based revenue (e.g. pay per click)
Big Deal 4: Humans are costly Reduce human intervention No Direct Sales (but referrals and breadth marketing) Self Provisioning Self Customization Delegate Administration Automatic billing 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 Ad-hoc / Custom Application Hosting Model (ASP) Configurable, Multi tenant Configurable (but single tenant) Physical or Virtual Isolation Scalable, Configurable,
Multi tenant Share vs. Isolate SLA per tenant Data Separation Share Isolate Economy of Scale Simpler Management The right balance is determined by: Business model (can I monetize isolation?) Architectural model (can I run on a single logical instance?) Operation model (can I guarantee my SLA without isolating?) Customer demand (I want my data to be separate) High Level Application Architecture
Smart Client Browser Presentation Meta Data Services Security Services Process Services Business Services Meta Data File
System Databases Directory Service Meta Data Service UI/Branding Scope Workflow/Business Rules Data Model Extensions Access Control Domain-specific ext. 0 or more
scopes Customizable: UI/Branding Workflow Data Model Business rules Domain-specific Scope: Nested hierarchy of customization Inheritable E.g. Enterprise, department, user levels Security Services Authentication: Username/password,
X509 Certificates SSO Authentication Authorization: RBAC, Rule-based Audit: Authorization Auditing Security events Policy driven on/off Access Control Scope Users Business
Rules Permission Role Groups Permission Authorization policies can be defined at different scopes (enterprise, dept etc.) Permissions, roles, groups and business rules can be customizable per tenant Data Model Extension Tenant A Catalog Item
Tenant B Catalog Item Product ID Product ID Descriptio n 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 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
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 Tenan Tenan Tenan t1 t2 t3 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 Tenant ID F1 F2 C1 C2 C3 345 Ted 53
Null pai d Null 777 Kay 34 23 Null Null
784 Mar y 45 Null Null Null 345 Ned 21 Null
owe Null 438 Pat 26 Null Null yes Tradeoff: Tendency to results in sparse table
When to use: When data co-mingling is OK Easy to anticipate pre-defined custom fields 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 Tenant ID F1 F2 Record ID 764 Ted $56 893
673 John $32 Null 783 Sal $99 564 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 Record ID Name Value 893
Status Gold 893 Expire 7-29-2008 564 Affiliation Acme 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 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
SLAs SLA Monitoring SLA Enforcing Throttling Early evidence shows SaaS customer are expects more when hosted than in-house 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 CPU-Storage-Bandwidth
Classic Hoster As provider: do you build or buy the hosting? SOA vs. SaaS Questions? [email protected] http://blogs.msdn.com/gianpaolo 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.
Abstract: The widely employed approach to self-assembly of fullerene derivatives on gold can be complicated due to multilayer formations and head-to-tail assemblies resulting from the strong fullerene-fullerene and fullerene-gold interactions.
Methods: A pretest-posttest, one-group, pre-experimental design is used to examine the impact of a telephonic-based EAP alcohol SBIRT pilot program in one call center serving one large client business. The intervention is adapted based on the World Health Organization (WHO,...
The study placement advert as posted on Aston Futures. Create/ View Placement records You now have the following options: Create a new placement by clicking on "Create a new Placement" Amend or delete a placement (if applicable) by selecting the...
Vineland- Self Sufficiency skills (Daily Living, Communication, socialization, motor skills, maladaptive behaviors) Affective Examples. ... Scoring Exercise to be done after we go over this slide. It is in binder, section 2. Case Study Basics.
3a. Medical Treatment: Long-acting Non-selective 1-blockers Dosage is increased in a stepwise fashion at weekly intervals. Does not affect PSA. Acts to relax prostatic/bladder neck smooth muscle (& vascular smooth muscle - non selective)
HLA systém, jeho struktura a funkce HLA (Human Leukocyte Antigens ) = Hlavní histokompatibilní systém člověka 2. molekulárně-genetické metody 80. léta, technika PCR ( polymerace chain reaction ) 90. léta, typizace HLA antigenů II. třídy následně typizace HLA antigenů I....
Overview. Networks are made up of devices and communication links. Devices and links can be physically threatened. Vandalism, lightning, fire, excessive pull force, corrosion, wildlife, wear-down, wiretapping, crosstalk, jamming