Está en la página 1de 13

• Changing the Business Model

• Changing the business model could involve one or more of the


following:
• Shifting the "ownership" of the software from the customer to an
external provider.
• Reallocating responsibility for the technology infrastructure and
management—that is, hardware and professional services—from
the customer to the provider.
• Reducing the cost of providing software services, through
specialization and economy of scale.
• Targeting the "long tail" of smaller businesses, by reducing the
minimum cost at which software can be sold.
• From an application architect's point of
view, there are three key differentiators
that separate a well-designed SaaS
application from a poorly designed one. A
well-designed SaaS application is
scalable, multi-tenant-efficient, and
configurable.
1
• traditional client–server applications can
be moved to a SaaS model at the first
level of maturity, with relatively little
development effort, and without re-
architecting the entire system from the
ground up. Although this level offers few of
the benefits of a fully mature SaaS
solution, it does allow vendors to reduce
costs by consolidating server hardware
and administration.
2
• repositioning a traditional application as
SaaS at the second maturity level can
require significantly more re-architecting
than at the first level, if the application has
been designed for individual customization
rather than configuration metadata.
3
• This approach eliminates the need to provide server
space for as many instances as the vendor has
customers, allowing for much more efficient use of
computing resources than the second level, which
translates directly to lower costs. A significant
disadvantage of this approach is that the scalability of
the application is limited. Unless partitioning is used to
manage database performance, the application can be
scaled only by moving it to a more powerful server
(scaling up), until diminishing returns make it impossible
to add more power cost-effectively.
4
• At the fourth and final level of maturity, the vendor hosts
multiple customers on a load-balanced farm of identical
instances, with each customer's data kept separate, and
with configurable metadata providing a unique user
experience and feature set for each customer. A SaaS
system is scalable to an arbitrarily large number of
customers, because the number of servers and
instances on the back end can be increased or
decreased as necessary to match demand, without
requiring additional re-architecting of the application, and
changes or fixes can be rolled out to thousands of
tenants as easily as a single tenant.
Choosing a Maturity Level

• What maturity level should you target for your application? One might
expect the fourth level to be the ultimate goal for any SaaS application, but
this isn't always the case. It may be more helpful to think of SaaS maturity
as a continuum between isolated data and code on one end, and shared
data and code on the other
High-Level Architecture

• Architecturally, SaaS applications are largely


similar to other applications built using service-
oriented design principles
• The most significant difference is the addition of
metadata services, which are responsible for
managing application configuration for individual
tenants. Services and smart clients interact with
the metadata services in order to retrieve
information that describes configurations and
extensions that are specific to each tenant.
Metadata Services
In a mature SaaS application, the metadata service provides customers with the primary means
ofcustomizing and configuring the application to meet their needs. Typically, customers can make
configuration changes in four broad areas:
• User interface and branding—Customers often appreciate the ability to modify the user
interface to reflect their corporate branding, and therefore SaaS applications typically offer
features that allow customers to change things such as graphics, colors, fonts, and so on.
• Workflow and business rules—To be of use to a wide range of potential customers, a
business-critical SaaS application has to be able to accommodate differences in workflow. For
example, one customer of an invoice tracking application may require each invoice to be
approved by a manager; a second customer may require each invoice to be approved by two
managers in sequence; a third may require two managers to approve each invoice, but allow
them to work in parallel. When appropriate, customers should be able to configure the way in
which the application's workflow aligns with their business processes.
• Extensions to the data model—For many data-driven SaaS applications, one size definitely
doesn't fit all. Even with relatively simple, task-specific applications, customers may chafe under
the restrictions imposed by a static, unchanging set of data fields and tables. An extensible data
model gives customers the freedom to make an application work their way, instead of forcing
them to work its way. Later in this paper, you'll learn a bit more about how a customer-extensible
data model is architected.
• Access control—Typically, each customer is responsible for creating individual accounts for end
users, and for determining which resources and functions each user should be allowed to access.
Access rights and restrictions for each user are tracked by using security policies, which should
be configurable by each tenant.

También podría gustarte