...
This presentation is the property of its rightful owner.
Sponsored Links
1 / 55

... PowerPoint PPT Presentation


  • 59 Views
  • Uploaded on
  • Presentation posted in: General

. 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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


1911246

...


Point of sales

Point of Sales


Accounting

Accounting


Customer relationship

Customer Relationship


Document management

Document Management


E government

E-Government


Human resource

Human Resource


Content management

Content Management


1911246

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


1911246

Microsoft Innovation Center

for EMEA ISV Development

SaaS incubation program


Michel@baladisoftware net

Michel Baladi

  • Advisor for architects, CTO’s etc

  • Owner/CTO for SaaS ISV startup

[email protected]


Effect on supplier isv

Effect on supplier (ISV)


Why bother

Why bother?


The 3 headed monster

The 3-headed monster


Single instance multi tenant

Single instance multi tenant


Architectural impact

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


The saas architecture shift single instance multi tenant

Multi-tenant efficient

Scalable

Configurable

The SaaS Architecture ShiftSingle Instance – Multi-tenant


1911246

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?)


High level application architecture

High Level Application Architecture

Browser

Security Services

Smart Client

Presentation

Directory

Service

Meta Data Services

Process Services

Business Services

Meta Data

Databases

File System


Customization trade off

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


Metadata driven instances

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


Templatizing configuration

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


Meta data ui branding

Meta-Data : UI/Branding


Configurable ui

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)


Meta data configure workflows

Meta-Data: Configure Workflows


Configurable workflow

Configurable Workflow

  • Workflow Foundation

    • Uses Markup

    • Can be stored, manipulated, executed on a per tenant basis


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)

Workflow Customization: Design Time


Workflow customization runtime

XAML Activation

Workflow Customization: Runtime

  • publicWorkflowInstance CreateWorkflow

    • (XmlReader workflowDefinitionReader);


Meta data data model extension

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


Configurable data

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


Database patterns

Database Patterns


Custom fields data and definition

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

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


Shared database fixed set of extensions

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


Same database variable custom extensions

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


Data a practical advice

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


Meta data access control

Meta-Data: Access Control


Implication on identity architecture

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


Access control

Access Control

  • Some Platform Technologies to consider

    • ADFS

    • Windows Role Based Access Control (RBAC)

      • Authorization Manager (AzMan)


Meta data considerations

Meta-Data Considerations

UI/Branding

Workflow and Rules

Data model extensions

Access Control

… other domain specific considerations…


Guidance

Guidance


Sample application

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


Litware hr a sample saas app

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


Scaling application

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

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


80 000 2 vs 1 160 000

80.000*2 vs. 1*160.000


From this

From this...


To this

...to this


The ecosystem

Consumption Architecture

Application Architecture

Delivery Architecture

The ecosystem


Saas hosting platform

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


N tiered multi tenancy

Application tenants

”Contoso”

Consumer and application tenant

”Fabrikam”

Consumer and application tenant

Storefront(s) at ISV, hoster and/or aggregator

”Nortwind” store-front

”Litware” store-front

Platform tenants

”AdventureWorks”

ISV and platform tenant

”Litware”

ISV and platform tenant

”Nortwind” SaaS hosting platform and services

HighAvail

platform run-time instance

EntryLevel

platform run-time

instance

Shared platform services

N-tiered multi-tenancy


1 prepare

#1 Prepare


2 publish

#2 Publish


3 subscribe

#3 Subscribe


Additional information

Additional Information

  • Software as Services consulting

    • www.baladisoftware.net

    • [email protected]

  • Software as Services Architectural Guidance

    • http://msdn.microsoft.com/architecture/saas

  • Blogs about Architecture:

    • http://blogs.msdn.com/fred_chong

    • http://blogs.msdn.com/gianpaolo

  • SaaS sample application (for the long tail)

    • http://msdn.microsoft.com/architecture/saas/sampleApp

  • Service Provider License Agreement

    • http://www.microsoft.com/serviceproviders/licensing


  • Login