Ankara : The Department of Computer Engineering and The Graduate School of Engineering and Science of Bilkent University, 2015.Thesis (Master's) -- Bilkent University, 2015.Includes bibliographical references leaves 104-109.Different from traditional enterprise applications that rely on the infrastructure
and services provided and controlled within an enterprise, cloud computing is
based on services that are hosted on providers over the Internet. Hereby, services
are fully managed by the provider, whereas consumers can acquire the required
amount of services on demand, use applications without installation and access
their personal files through any computer with internet access. Recently, a
growing interest in cloud computing can be observed thanks to the significant
developments in virtualization and distributed computing, as well as improved
access to high-speed Internet and the need for economical optimization of
resources.
An important category of cloud computing is the software as a service domain in
which software applications are provided over the cloud. In general when
describing SaaS, no specific application architecture is prescribed but rather the
general components and structure is defined. Based on the provided reference
SaaS architecture different application SaaS architectures can be derived each of
which will typically perform differently with respect to different quality factors.
An important quality factor in designing SaaS architectures is scalability.
Scalability is the ability of a system to handle a growing amount of work in a
capable manner or its ability to be enlarged to accommodate that growth. In this
thesis we provide a systematic modeling and design approach for designing
scalable SaaS architectures.
To identify the aspects that impact the scalability of SaaS based systems we have
conducted a systematic literature review in which we have identified and analyzed
the relevant primary studies that discuss scalability of SaaS systems. Our study
has yielded the aspects that need to be considered when designing scalable
systems. Our research has continued in two subsequent directions. Firstly, we
have defined a UML profile for supporting the modeling of scalable SaaS
architectures. The profile has been defined in accordance with the existing
practices on defining and documenting profiles. Secondly, we provide the socalled
architecture design perspective for designing scalable SaaS systems.
Architectural Perspectives are a collection of activities, tactics and guidelines to
modify a set of existing views, to document and analyze quality properties.
Architectural perspectives as such are basically guidelines that work on multiple
views together. So far architecture perspectives have been defined for several
quality factors such as for performance, reuse and security. However, an
architecture perspective dedicated for designing scalable SaaS systems has not
been defined explicitly. The architecture perspective that we have defined
considers the scalability aspects derived from the systematic literature review as
well as the architectural design tactics that represent important proved design rules
and practices. Further, the architecture perspective adopts the UML profile for
scalability that we have defined. The scalability perspective is illustrated for the
design of a SaaS architecture for a real industrial case study.Özcan, OnurM.S