litwarehr overview eric nelson microsoft. sample application microsoft has developed a sample...
TRANSCRIPT
LitwareHR Overview
Eric Nelson
Microsoft
Sample Application
• Microsoft has developed a sample application - LitwareHR
• Addressing all the major architectural challenges of a SaaS application for the „Long Tail“
• Available for download on MSDN• http://msdn.microsoft.com/architecture/saas/sampleApp
Contoso Customizations:UI: “Contoso Orange” L&F Data: New “Job Level” FieldWorkflow: Recruitement based on Job Level
HR App (Recruitment)Single Instance Multi Tenant
Authenticated accessConfiguration & Post jobs
Private site
Web Interface
Unauthenticated accessSearch & Apply for jobs
Web APIs
Public site
Web Interface
Internet
Internet
Music SchoolRetail Shoe Chain
Operational Platform
“Internal” SaaS Hosting PlatformProvisioning (try before buy)
Billing (not implemented)
LitwareHR
• Act 1: Tenant Sign Up and Provisioning
TenantProvisioning
Service
TenantProvisioning
Service
ADAMADAM
SQL Database
SQL Database IISIIS
Provisioning Process Workflow
LitwareHR
• Act 2: Configuring Application
Tenant Profile Tenant Profile and and
Configuration DataConfiguration Data
Meta Data ServiceMeta Data Service
Entity ModelEntity Model
Workflow and RulesWorkflow and Rules
User InterfaceUser Interface
Application Configuration and Designer Tools
Runtime
Technical Considerations:Security
Buffer overruns, insertion attacks, elevation of privileges, cross site scripting etc.
FairnessMemory and CPU usage
HaltInfinite or long processing loops, bounded end states
One Size Fits All Fully Configurable
High Fidelity User Experience
Simpler Implementation and Application Management
Templatized Designers
Trusted Partners
Premium Customers
Standard Customers Runtime
Metadata
Runtime Metadata
Runtime Metadata
Policies
Security, Fairness
and Halting Policies
Runtime Policy Enforcement
Engine
Design Time Runtime
Application Instance
Metadata
Designer Policy
Enforcement Engine
View
Entity 1
Entity 2
Extension
Tenant ID … Row ID
123 … …
456 … …
Extension ID
Name Data Type
999 Location Short Text
888 JobLevel Number
3. Multi-tenant Data Store
Extension name-value pair
Extension
Row ID Value Extension ID
ABC … 999
DEF … 888
2. Extensible Data Model
1. Tenant Configurable
Data View
Extension meta data
Technical Considerations:Security and privacy
Need mechanism to prevent unauthorized access of data in a shared environment.
Fairness and reasonable resource allocationNo starving tenant
Side effects of shared on configurability and scalability:
Harder to scale business logic embedded in data tier
IsolatedIsolated SharedShared
Lower Long Term Operation Cost
Simpler Implementation
Summary
• LitwareHR is a good starting point
• But... plenty “left to the reader”