Abstract:
In the era of cloud computing, Software as a Service (SaaS) has been coined as the next
generation of web application software solutions. In this model software needs to allow
multiple users organizations (tenants) to use the same application instance in a highly reliable
and secure manner. Users will be given access to the application on a subscription
basis and the application is customized according to their needs by changing user interfaces,
work-flow and business processes. SaaS gives end user organizations an opportunity
to engage in business without making a significant investment on buying expensive hardware
or software. The end users’ customized solution is hosted over the Internet giving
them the opportunity to access the application as a utility service, on-demand basis.
From a functional perspective SaaS web applications require the capabilities of customization
and configurability to support the evolution of the product. Since multiple end
user organizations make use of the application, high attention towards security, scalability,
performance and availability is mandatory from an architectural perspective. This makes
SaaS application development, deployment, migration and maintenance extremely challenging
and sometimes considered as an engineering nightmare. The research community
has come up with different frameworks and modeling approaches to develop SaaS applications.
Yet there are very few architectural tools to model SaaS solutions to help architects
develop practically feasible SaaS solutions.
Our intention from the project was to identify the challenges in SaaS application development,
maintenance and migration. We propose a modeling based SaaS framework with
a set of tools and an effective methodology to develop the SaaS solutions efficiently while
meeting the critical SaaS architectural requirements. The authors have come up with a
framework to develop SaaS applications using third party web application frameworks and
UML 2.0 based Profile named SaaSML. Using the proposed modeling based SaaS framework
approach, Software Architects will be able to easily build SaaS web applications and
address the challenges of SaaS application development life cycle.