Refer to "Architecture Strategies for Catching the Long Tail"
Everyone knows what it is, roughly, and everyone knows it's going to be big. Yet few people would say they can really define it, and even fewer know how to build it.
Even today, the exact definition of SaaS is open to debate, and asking five people would probably result in five different definitions.
Expressed most simply, software as a service can be characterized as follows:
"Software deployed as a hosted service and accessed over the internet"
Take a moment to consider the implications of this definition. It doesn’t prescribe anyspecific application architecture; it doesn’t say anything about specific technologies or protocols; it doesn’t draw a distinction between business- and consumer-oriented services or require specific business models. According to this definition, the key distinguishing features of software as a service are where the application code resides and how they are deployed and accessed.
By this definition, SaaS includes a number of services and applications you may not expect to find in this category. For example, consider Web-based e-mail services, such as Microsoft® Hotmail®. Although Hotmail might not be the first example that comes to mind when you think about SaaS, it meets all of the basic criteria: a vendor hosts all of the program logic and data, and provides end users with access to this data over the public Internet through a Web-based user interface.
Moving from the general to specific, we can identify two major categories of software as a service:
· Line-of-business services, offered to enterprises and organizations of all sizes. Line-of-business services are often large, customizable business solutions aimed at facilitating business processes such as finances, supply chain management, and customer relations. These services are typically sold to customers on a subscription basis.
· Consumer-oriented services, offered to the general public. Consumer-oriented services are sometimes sold on a subscription basis, but are often provided to consumers at no cost and are supported by advertising.
Thinking about Software as a Service
1. Changing the business model
i) Who owns the Software?
ii) Transfering IT responsibilities
iii) Leveraging Economy of Scale
iV) Selling to the Long Tail
2. Application Architecture
i) The three attributes of Single Instance Multi-tenant Architecture
ii) The Software as a Service Maturity Model
- Level1: Ad-hoc / Custom
- Level2: Configurable
- Level3: Configurable, Multi-tenant efficient
- Level4: Scalable, Configurable, Multi-tenant efficient
iii) High-Level Architecture
- Similar to other applications build using service oriented design principles
iv) Metadata Services
- User interface & branding
- Workflows and business rules
- Extension to the data models
- Access Control
v) Security Services
- Scaling the Application
- Scaling the Data
3) Operational Structure
i) Shared Services
- Billing, Metering, SLA, etc
- Monitoring for Availability
- Monitoring for Performance