UNIVERSITY OF SCIENCE AND TECHNOLOGY COLLEGE OF GRADUATE STUDIES AND ACADEMIC ADVANCEMENT Faculty of Computer Science and Information Technology

A Web-Based Framework for Developing Cloud Multi-tenant

Software as aService Application

by Alsadig Hamad Hamid Ismail

A Thesis

Submitted to the College of Graduate Studies and Academic Advancements in Partial Fulfillment of the Requirement for the Degree of Master of Science in Information Technology

Supervisor Dr. Adil Yousif

Jan 2017

أآلية

قال هللا تعالى :

( ْقق َر أْق ِبا ْقا ِب َر ِبِّب َر لَّل ِب َر َر َر )

او ة لع آلية ْقق )1(

Abstract

Cloud computing portrays a new model for providing IT services over the Internet. In cloud computing, resources and services are accessed from the Internet through web- based tools.

Nowadays, most of the businesses are performed by using the software as a service (SaaS) business model, one of the delivery models of cloud computing by charging the services through subscription.SaaS Multi-tenancy promotes sharing of resources all the way from a single application instance to the database, This allows applications to better fit the cloud computing paradigm. Building cloud saas application from scratch is a very complex task and takes time in developing these applications especially for a university student. There is a need for a framework that makes the creation of cloud saas applications. This research aims to build a new web-based framework for usable saas application development that supports multi-tenancy. This research proposed a new framework to develop SaaS application and supporting multitenancy. The proposed framework provide simple creation of a SaaS multitenancy application without writing a Code, and easy to customize to whom know PHP and web technology.

To evaluate the proposed framework the study conducted an empirical study for students at the university of science and technology.The empirical study result revealed that the proposed framework is usable.

II

المستخلص

اٌذٛسثح اٌسذاتٍح ٚفشخ اٌعذٌذ ِٓ اٌخذِاخ اٌفعاٌح ٚ اصثذد ِطٍة اٌعذٌذ ِٓ اٌُؤسساخ ٌرسٚ ًٍٙ اداسج اعّاٌٙا , ٚرٌه ٔرٍجح ٌرمًٍٍ إٌفماخ ٚسفع االعثاء عٓ اٌّؤسساخ اٌرً ذسرخذَ خذِاخ اٌذٛسثح اٌسذاتٍح.

اٌذٛسثح اٌسذاتٍح ذصٛس ّٛٔرجا جذٌذا ٌرمذٌُ خذِاخ ذىٌٕٛٛجٍا اٌّعٍِٛاخ عثش اإلٔرشٔد ٚ ٌرُ اٌٛصٛي إٌى اٌّٛاسد ٚاٌخذِاخ عثش اإلٔرشٔد ِٓ خالي اٌّرصفخ .

فً اٌٛلد اٌذاضش وً االعّاي ذؤدي عثش االٔرشٍٔد ِٓ خالي ّٛٔرج اٌثشِجٍاخ وخذِح (ٚ (SaaS ٌرُ رٌه عٓ شٌك ٍة اٌخذِح عثش االالرشان فً اٌخذِح تشسَٛ اٚ ِجأا ًا, ٚ االالرشان ٕ٘ا تّثاتح االٌجاس الٔه ذمَٛ تاٌجاس اٌخذِح ٌٚزٌه ظٙشخ ٍِزج ذعذد االٌجاساخ فً ذطثٍماخ اٌثشِجٍاخ وخذِح ٌرمَٛ تاالسرخذاَ االِثً ٌٍّٛاسد ٚرٌه تاٌذصٛي عًٍ اٌّطٍٛب فمط ِٓ اٌّٛاسد ٚذماسُ اٌثمٍح ِع اٌّسراجشٌٓ االخشٌٓ.

تٕاء ذطثٍك اٌثشِجٍاخ وخذِح (SaaS) ِٓ ٔمطح اٌصفش ً٘ ِّٙح ِعمذج ٌٍغاٌح ٌٚسرغشق ٚلرا ٌٛال فً ذطٌٛش ٘زٖ اٌرطثٍماخ ٚخاصح تإٌسثح ٌٍطاٌة اٌجاِعً. ٕٚ٘ان داجح إٌى إ اس ٌزًٌ اٌرعمٍذ ٌٚسشع ٚذٍشج اٌعًّ .

ٌٙذف ٘زا اٌثذث إٌى تٕاء إ اس عًّ جذٌذ ٌرطٌٛش ذطثٍماخ اٌثشِجٍاخ وخذِح (SaaS) تصٛسج سشٌعح ٚ ِثسطح ٚ ذذعُ ذعذد اإلٌجاساخ.

ا اس اٌعًّ اٌّمرشح فً ٘زا اٌثذث ٌمَٛ ترطٌٛش تشِجٍاخ وخذِح (SaaS) دْٚ اٌذٛجح اًٌ وراتح اي سطش تشِجً.

اإل اس اٌّمرشح ٌٛفش ِعّاسٌح ذمَٛ تفصً ِىٛٔاخ اٌرطثٍك ِٓ عشض ٚ اعّاي ٚ ذذىُ ٌٍسًٙ تزٌه عٍٍّح ذخصٍص اٌرطثٍك ٌّٓ ٌذٌٗ اٌّعشفح تٍغاخ اٌٌٛة وـ PHP

ٌرمٍٍُ اإل اس اٌّمرشح أجشخ اٌذساسح دساسح ٍِذأٍح ٌٍطالب فً جاِعح اٌعٚ ٍَٛاٌرمأح. ٚٔرٍجح ذٍه ايدساسح وشفد أْ اإل اس اٌّمرشح لاتً ٌالسرخذاَ.

III

Dedicate

First of all, I would like to thank God for bringing me through this interesting experience. He answered all my prayers and encouraged me when I felt like I wanted to give up. God has been so amazing to me and I want to dedicate not only my life but this thesis to HIM. I would be nothing without HIM.

Second To my dear mother, To my dear father, To all my family, To my university, to my supervisor, To all who supported me, To the people who paved our way of science and knowledge, All our teachers Distinguished I Dedicate this research.

IV

Acknowledgement

Firstly I would like to thank God who helped me and pleased me to finish this research, Secondly, I would like to thank my precious family and all who supported me from the beginning of my study to the end. Honorable Doctors and teacher, who have donated their knowledge. My deepest gratitude is to Dr. Adil Yousif I have been lucky to have an advisor who gave me the freedom to explore on my own and at the same time the guidance to recover when my steps faltered who taught me how to question thoughts and express ideas his patience and support helped me overcome many crisis situations and finish this dissertation.

V

TABLE OF CONTENT

Abstract………………...... …………………………………………………………....……....…..II III………...... ……………………………………………………………...... …اٌّسرخٍص Dedicate………………………………………………………………….……………...... IV Acknowledgment………………………………………………………………………...... V Table of Contents………………………………………………………………...... ……...... VI List of Figures……...... ……………………………………………………………………...... XII List of Tables …………………………………...... ……….....……………….…………….…..XIII

Table of Abbreviations……...... ………...... ……………………….………...... XIV

CHAPTER1: Introduction

1.1 Introduction…………...…………………………………………………………...... …...... 1

1.1 Overview and Summary ...... 1

1.2 Problem background ...... 1

1.3 Problem Statement...... 2

1.4 Research Objectives...... 2

1.5 Thesis Structure...... 2

CHAPTER2: Literature Review

2.1 Introduction...... 4

2.2 Cloud Computing...... 4

2.2.1 Cloud Computing Definition...... 4

2.2.2 Essential Characteristics...... 5

2.2.2.1 On-Demand Self-Service...... 5

2.2.2.2 Broad Network Access...... 5

VI

2.2.2.3 Resource Pooling...... 6

2.2.2.4 Rapid Elasticity...... 6

2.2.2.5 Measured Service...... 6

2.2.3 Extra Characteristics Of Cloud...... 6

2.2.3.1 Pay-Per-Use...... 6

2.2.3.2 Service Level Agreements (SLA)...... 6

2.2.4 Cloud Computing Benefits...... 7

2.3 Cloud Computing Deployment Models...... 8

2.3 1 Private Cloud...... 8

2.3 2 Public Cloud...... 8

2.3 3. Community Cloud...... 9

2.3 4. Hybrid Cloud...... 9

2.4 Cloud Computing Service Models...... 9

2.4.1 Infrastructure as a Service (IaaS)...... 9

2.4.2 Platform as a Service (PaaS)...... 10

2.4.2.1 PaaS Components...... 10

2.4.3 Software as aService (SaaS)...... 11

2.4.3.1 Software-as-a-Service History...... 11

2.4.3.2 Software as aService Definition ...... 12

2.5 Key Features and characteristic of Software-as-aServices...... 13

2.5.1 Reusability...... 13

2.5.2 Data Managed by Provider...... 14

VII

2.5.3 Service Customizability...... 14

2.5.4 Availability...... 14

2.5.5 Quality of service...... 15

2.5.6 Scalability...... 15

2.5.7 Data Security...... 15

2.5.8 Pay per Use...... 15

2.5.9 Configurability...... 15

2.5.10 Multi-tenant...... 16

2.6. Multi-Tenant Database...... 17

2.6.1 Approaches for the implementation of Multi-tenant...... 17

2.6.1.1 Separate Database...... 17

2.6.1.2 Independent Tables and Shared Database Instances (IDII)...... 18

2.6.1.3 Shared Tables and Shared Database Instances(STSI)...... 18

2.7 Software As a Service Frameworks...... 18

2.7.1 Techcello...... 19

2.7.2 Innomatic ...... 19

2.7.3 salesforce...... 20

2.8 Model View Controller (MVC)...... 21

2.8.1 MVC (Model View Controller) Elements...... 21

2.8.1.1 View Element...... 22

2.8.1.2 Controller Element...... 22

2.8.1.3 Model Element...... 22

VIII

2.8.2 Class Diagram for the MVC Pattern...... 22

CHAPTER3: Research Methodology

3.1 Introduction...... 24

3.2 Operational Framework...... 24

3.2.1 Problem Formulation...... 24

3.2.2 Design the Proposed Framework...... 24

3.2.3 Implementation...... 24

3.2.3.1 Application Creation...... 24

3.2.3.2 Schema Building ...... 24

3.2.4Validation phase...... 25

3.2.5 Empirical Study ...... 27

3.3 Tool & technology Used in This Methodology...... 27

3.3.1 PHP...... 27

3.3.2 MySQL...... 27

3.3.3 jQuery ...... 27

3.3.4 Bootstrap ...... 27

3.3.5RedBeanPHP ...... 28

3.3.6 Apache HTTP Server ...... 28

CHAPTER4: Proposed Framework

4.1 Introduction...... 29

4.2 The Proposed Framework...... 29

4.2.1 The Proposed Framework Guideline...... 30

IX

4.2.2 Features Of The Proposed Framework...... 30

4.2.2.1 Zero Effort Database Creation...... 30

4.2.2.2 Create Simple CRUD Application...... 30

4.2.2.3 Template-Based Tenant Creation...... 30

4.3 Proposed Framework Architecture...... 31

4.3.1 Create Application...... 31

4.3.2 Create Database...... 31

4.3.3 Code Generated...... 32

4.3.4 Template provide...... 32

4.3.5 Form Generate...... 32

4.3.6 Tenant Manager...... 32

4.3.7 Model, View, And Control...... 32

4.3.8 Redbean Orm ...... 32

4.4 Multi-Tenant...... 33

4.4.1 Core Table...... 33

4.5 The Implementation Of Proposed Framework...... 34

4.5.1 Application Development...... 34

4.5.2 Database And Entity Generation...... 35

4.5.3 Admin Master Creation...... 36

4.5.4 Deploy And Use Of Application...... 36

4.5.4 Application Useability...... 37

CHAPTER5: The Empirical Study

X

5.1 Introduction ...... 39

5.2 Usability in ISO 9126 Quality Standard Model ...... 39

5.3 Empirical Study ...... 39

5.3.1 The Empirical Study Results...... 40

CHAPTER6: Conclusion and Recommendations

6.1 Conclusions ...... 45

6.2 Recommendations ...... 45

References ………...... 46

XI

List of Figures

Figure No Figures Page No Figure (2.1) Visual Model Of NIST Working Definition Of Cloud Computing 7 Figure (2.2) Cloud Computing Deployment Models 8 Figure (2.3) Cloud Computing Service Models 9 Figure (2.4) Type Of Application Is Typical With SaaS Multi-Tenant 16 Figure (2.5) Multi-Tenant Database Approaches 17 Figure (2.6) MVC Elements 21 Figure (2.7) Diagram Of A Typical MVC Application 23 Figure (3.1) Research Operational Framework 26 Figure (4.1) Proposed Framework Visual overview 29 Figure (4.2) Proposed Framework architecture 31 Figure (4.3) Approaches To Implement Multitenancy 33 Figure (4.4) Creation Of Application 34 Figure (4.5) Add Field And Generate 35 Figure (4.6) Adding Master Data To Define Data Type 35 Figure (4.7) Adding Admin To Application 36 Figure (4.8) Application Deployed 36 Figure (4.9) Create Account 37 Figure (4.10) Insert Information 37 Figure (4.11) View Information 38 Figure (4.12) Admin Tenant Manager 38 Figure (5.1) ISO 9126-1 Usability Standard 39 Figure (5.2) Understandability 40 Figure (5.3) Learnability 41 Figure (5.4) Operability 42 Figure (5.5) Attractiveness 43 Figure (5.6) Usability Compliance 44

XII

List of Tables

Table No Address Page No Table (2.1) Definitions Of Cloud Computing From Various Perspectives 4 Table (2.1) Definitions SaaS from various perspectives 12

Table (2.3) Development Platform For SaaS application 18 Table (2.4) Comparison Between Frameworks and The Proposed 20 Framework Table (5.1) Understandability 40 Table (5.2) Learnability 41 Table (5.3) Operability 42 Table (5.4) Attractiveness 43 Table (5.5) Operability 44

XIII

Table of Abbreviations

Abbreviations Explanation NIST National Institute of Standards and Technology SLA Service Level Agreements Amazon EC2 Amazon Elastic Computer Cloud IaaS Infrastructure as a Service PaaS Platform as a Service SaaS Software as aService IDII Independent Tables and Shared Database Instances STSI Shared Tables and Shared Database Instances MVC Model View Controller ORM Object-relational mapping

XIV

1.1 Introduction

This chapter explains problem background, research objective, problem statement and Thesis Structure.

1.2 Problem Background

Revolutionary advances in hardware, networking, middleware, and virtual machine technologies have led to an emergence of new globally distributed computing platforms namely cloud computing and the core concept is not a new idea , that happened because networking and virtualization possibilities have increased severely and enabling a new and wider use of the concept, the benefits of cloud computing to provide are cost reductions, IT efficiency, and increased agility and flexibility,This has encouraged a move towards cloud computing, which provides on-demand easy network access to a large pool of computing resources that can rapidly be put to use with minimal interactions and upfront costs[1]. contemporary cloud computing solution focused on Software as services become a significant technology trend, and many experts expect it to reshape information technology processes and the IT marketplace, SaaS is often referred to as software- on-demand and utilising it is akin to renting software rather than buying it,saas application delivering over internet and consumers are able to access software applications by thin client (Browser). because applications are hosted in “the cloud” it can be used for a wide range of tasks for both individuals and organizations[2].

Multi-tenancy is an architecture in which a single instance of a software application serves multiple customers. any customer is called a tenant. this architect was created to enable multiple users (tenants) to access the same application logic simultaneously. Each tenant has its own view of the application that it uses, administers, and customizes as a dedicated instance of the software while remaining unaware of other tenants that are using the same application.and Tenants may have the ability to customize some parts of the application, but they cannot customize the application's code. it can be economical because software development and maintenance costs are shared [3].

1 the frameworks aim to facilitate software development by allowing designers and programmers to devote their time to meeting software requirements, thereby reducing overall development time. software frameworks consist of frozen spots and hot spots. Frozen spots define the overall architecture of a software system, that is to say, its basic components and the relationships between them. These remain unchanged (frozen) in any instantiation of the application framework. Hotspots represent those parts where the programmers using the framework add their own code to add the functionality specific to their own project[4].

1.3 Problem Statement

Building cloud saas application from scratch is a very complex task and takes time in developing these applications especially for a university student. There is a need for a framework that makes the creation of cloud saas applications.

1.4 Research Objectives

The objective of this research to build a new web-based framework for usable saas application development that support multi-tenancy.

1.5 Thesis Structure

This document is divided into five different chapters, described as follows:

1. Introduction (Chapter 1) gives a general context about the thesis and describes the structure of the document.

2. Literature review (Chapter 2) presents a brief overview of the literature on the research area and describes the needed concepts that underlie the proposal, which was crucial for our proposal’s coherence. In addition, shows the objectives that our proposal wants to address.

3. Research Methodology (Chapter 3) identifies the objectives of the solution and explains the artifact produced.

4.Proposed Framework (Chapter 4) identifies the proposed framework and architect of component,

2

5.Empirical study (chapter 5)

6.Concluosion & recommendation (chapter 6)

3

2.1 Introduction

This chapter presents the literature review of the thesis. The aim of the literature review is to identify the most important characteristics of a cloud computing and SaaS framework and multi-tenant.

2.2 Cloud Computing

Cloud Computing is a type of computing that provides shared computer processing resources and data to computers and other devices on-demand over the internet.

2.2.1 Cloud Computing Definition

The need for standard definition is always what we want to understand the concept.

Therefore, we find Substantial work has been done to produce a universal definition of cloud computing from the early days. Many definitions co-exist, each highlighting attributes of cloud relevant to a particular scientific discipline. Table (1.1) presents examples of computer science, information systems, and business literature, as cited in corresponding fields.

Table (2.1): Definitions Of Cloud Computing From Various Perspectives

Reference Definition Field [5] Cloud computing is a model for enabling ubiquitous, convenient, General on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. [6] A new computing paradigm that allows users to temporarily Computer utilize computing infrastructure over the network, supplied as a science service by the cloud provider at possibly one or more levels of abstraction [7] Cloud computing embraces cyber-infrastructure and builds on Computer virtualisation, distributed computing, grid computing, utility science computing, networking, and Web and software services. [8] A large-scale distributed computing paradigm that is driven by Computer

4

economies of scale, in which a pool of stracted,virtualized, science dynamically scalable, managed computing power, storage, platforms, and services are delivered on demand to external customers over the Internet. [9] A Cloud is a type of parallel and distributed system consisting of Computer a collection of inter-connected and virtualized computers that are science, dynamically provisioned and presented as one or more unified information computing resource(s) based on service-level agreements systems established through negotiation between the service provider and consumers. [10] The evolution of a service-based perspective on computing Manageme based on innovations in shared computing provision that nt improve simplicity, scalability, and efficiency. [11] Cloud computing refers to the delivery of computing as a service Computer rather than a product, i.e., shared resources, software, and science information are provided to computers and other devices as a utility over the Internet

2.2.2 Essential Characteristics of Cloud Computing

The cloud model is composed of five essential characteristics identified by NIST [5]:-

2.2.2.1 On-Demand Self-Service

A customer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.

2.2.2.2 Broad Network Access

Network access is available over the network and controlled through standard mechanisms that promote access by heterogeneous thin or thick client platforms (e.g., mobile phones, tablets, laptops, and workstations).

5

2.2.2.3 Resource Pooling

The provider's computing resources are pooled to serve multiple customers using a multiple-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to customer demand.

2.2.2.4 Rapid Elasticity

Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the customer, the capabilities available for provisioning often appear to be unlimited and can be requested in any quantity and at any time.

2.2.2.5 Measured Service

Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts).

2.2.3 Extra Characteristics Of Cloud

2.2.3.1 Pay-Per-Use

In a pay-per-use business model, use of a product or service is metered, and customers are charged when they use the service, in cloud pay-per-use monitor measures cloud- based IT resource usage in accordance with predefined pricing parameters and generates usage logs for fee calculations and billing purposes[12].

2.2.3.2 Service Level Agreements (SLA) is a contract must specifically spell out expected service level for both parties and acts as the roadmap for change in the cloud service – both expected changes and surprises needs to be clear about expectations for uptime and downtime, response time when things go awry, latency, infrastructure, and security. Just as any IT project would have a roadmap with clearly defined deliverables, an SLA is equally critical for working with cloud infrastructure[13].

6

Figure (2.1): Visual Model of NIST Working Definition Of Cloud Computing[5]

2.2.4 Cloud Computing Benefits

Potential benefits can be outlined as significantly lower initial costs,One other advantage of cloud computing is that there is minimal requirement for provision of resources and maintenance after the implementation, that the implementing organisation can concentrate more on its core business activities, Cloud computing can minimise the costs of infrastructure and platforms, increased network security and service scalability and improved speed of adoption which are key benefits in relation to e-government services [14].

7

2.3 Cloud Computing Deployment Models

Figure (2.2): Cloud Computing Deployment Models[15]

According to the NIST, there are four different Deployment models regarding the kind of provider of the cloud service, A deployment model defines the way the services are owned and used. Here is the main Cloud Computing deployment as shown in Figure (2-2) for implementing a cloud-based solution.

2.3 1 Private Cloud

The cloud infrastructure is maintained by the organization itself and is used exclusively by a single organization[5].

2.3 2 Public Cloud

The cloud infrastructure is made available to the general public or a large industry group and is owned by an organization selling cloud services[5].

8

2.3 3. Community Cloud

The cloud infrastructure is maintained by one organization for a set of organizations (the community) and used by all of them[5].

2.3 4. Hybrid Cloud

The cloud infrastructure is a composition of two or more distinct cloud infrastructures[5].

2.4 Cloud Computing Service Models

Figure (2.3): Cloud Computing Service Models[16]

Cloud computing has three fundamental models of services shown in Figure(2.3) as NIST definition:-

2.4.1 Infrastructure as a Service (IaaS) allows consumers to use hardware through commonly available interfaces such as Secure Shell (SSH) or a web browser. This service are provided by data centers to allow their tenants to deploy and run their operating systems and other applications on top of virtualized software.

9

The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications, for example, Amazon Elastic Computer Cloud (Amazon EC2) offers computing resources such as computing power and memory on demand in the Amazon Web Services (AWS) cloud[17].

2.4.2 Platform as a Service (PaaS)

provides customers with a platform for executing and deploying services through a specific interface via a web browser. PaaS enables collaboration, so multiple users can work on the same application without any need for install or download the platform that is provided by the vendor, thus increasing productivity and reduces the cost on the tenants.

PaaS provides a development platform with a set of services to assist application design, development, testing, deployment, monitoring, hosting on the cloud. It usually requires no software download or installation and supports geographically distributed teams to work on projects collaboratively[18].

For example, the Microsoft Azure platform provides support for the latest version of the .NET framework. Azure’s team responsible for configuring the platform, updating the operating system, updating the .NET framework, and any other configuration relating to the platform,“This type of service offering means you can focus on deploying your custom applications on the platform and can easily conFigure your applications to scale up or down as demands change”[19].

2.4.2.1 PaaS Components [18] :-

 Design: - the ability to design your application and user interfaces.  Development: -ability to design, develop, and test applications right out of the platform, on demand, using development tools that are delivered on demand.  Deployment: - the ability to test, and deliver the PaaS created applications. This means hosting the applications, typically accessing them visually, through a browser, or as web services.

10

 Integration:- ability to integrate the applications developed on your PaaS provider with SaaS applications or applications that may exist within your enterprise.  Storage:- ability to provide persistence for the application, means an on- demand database or on-demand file storage.  Operations:- ability to run the application over a long period of time, dealing with backup, restore, exception handling, and other things that add value to operations.

2.4.3 Software as aService (SaaS) enables users to access the provider's applications running on a cloud infrastructure through a simple client interface, such as a web browser. SaaS applications are installed on remote machines so that clients do not have to install them on every machine. SaaS allows tenants to subscribe to a paid software service instead of paying for software licenses.

2.4.3.1 Software-as-a-Service History

Software as aService is an old concept from the mainframe era in the 1960s and into the minicomputer era in 1970s. Due to the high prices of acquiring computers at that time, the remote computer model emerged especially after introducing PCs, LANs, and client-server computing in the 1980s and early 1990s. SaaS first came in the 1990s and it was called Application Service Provider (ASP)[20].the SaaS (Software As a Service) business model appeared as ASP's successor, to fix its disadvantages and covet its opportunities. Like the ASP model, SaaS delivers outsourced services to its customer via a network, but in this case, the network is always the Internet. In February 2001 the term Software as a Service or SaaS published for the first time in a white paper called "Software as a Service: Strategic Backgrounder" [21]

11

2.4.3.2 Software as aService Definition with an aim to understand better the nature of SaaS phenomenon. The definitions of SaaS typically include both business and technical perspectives, the former being the dominating viewpoint as showing in below table [22]

Table (2.1): Definitions SaaS from various perspectives

[21] In the software as a service model, the application, or service, is deployed from a centralized data center across a network - Internet, Intranet, LAN, or VPN - providing access and use on a recurring fee basis. Users "rent," "subscribe to," “are assigned”, or "are granted access to" the applications from a central provider. Business models vary according to the level to which the software is streamlined, to lower price and increase efficiency, or value-added through customization to further improve digitized business processes. [23] Software as a Service is time and location independent online access to a remotely managed server application, that permits concurrent utilization of the same application installation by a large number of independent users (customers), offers attractive payment logic compared to the customer value received, and makes a continuous flow of new and innovative software possible [24] In this form of computing, a customer runs software remotely, via the Internet, using the service provider’s programs and computer infrastructure. [25] SaaS is different from traditional software licensing, which involves the buyer’s purchasing a perpetual use license from the software publisher and then making additional investments for hardware, installation, and maintenance. In contrast, in the SaaS model, users buy a ubscription to the software and the software publisher (seller) runs and maintains the software on his own hardware. Users with current subscriptions can obtain access to the software using the Internet.

12

[26] Software as a Service (SaaS) is a software delivery model, which provides customers access to business functionality remotely (usually over the internet) as a service. The customer does not specially purchase a software license. The cost of the infrastructure, the right to use the software, and all hosting, maintenance and support services are all bundled into a single monthly or per-use charging [27] SaaS is defined as a model of software deployment via the Internet whereby the SaaS provider licenses an application to customers as a service based on usage or periodic subscription payments. SaaS software vendors typically host the application on their own web servers or enable customers to download the application to consumer devices via the Internet. [28] Under SaaS, the software publisher (seller) runs and maintains all necessary hardware and software and buyers obtain access using the Internet.

2.5 Key Features and characteristic of Software-as-a-Service[29]:-

2.5.1 Reusability

In software engineering, reusability is the ability of software elements to serve for the construction of many different applications.

The main motivation of cloud computing is to reuse various types of internet based services, In case of SaaS, software itself is a target of reuse and it is delivered to service consumers over the Internet. That means, one-to-many relationships are used when delivering SaaS services. For example, Google map service provides a set of operations to utilize shared information on map and local, which can be used by various customers.

13

2.5.2 Data Managed by Provider

SaaS is a model of software deployment where service providers license applications to consumers for using on-demand services. Thus service providers are responsible for service installation and data management on their own server. may be a third party service provider hosts databases as a service and provides its customers with seamless mechanisms to create, store and access their databases at the host site[30].

So, most of the data which consumers produce is stored on service provider’s data center and managed by them. Thus customers do not perceive two things in detail, where is their data stored and how the data can be managed. So that, the customers however may don’t trust the services and then the service utilization becomes lower, if service providers don’t provide data security and reliability function.

2.5.3 Service Customizability

Service customizability defined by the ability for services to be changed by service consumers based on their requirements. This characteristic allows service providers to meet the different needs of every consumer. According to the characteristics of cloud services, various consumers can become potential users of the cloud services.Because of that, the major disadvantage is, it is not possible that service providers customize their cloud services for all service consumers. So, service consumers need to customize their services for their own purposes. If service providers do not provide customizable SaaS services, the only thing service consumers can is that they simply utilize the services. This will also limit the usage of SaaS services[29].

2.5.4 Availability

In cloud computing, the service consumers are able to access SaaS service from a Web browser via the Internet and they do not have any ownership for the SaaS which is deployed and runs on the provider’s server. Because of these natures, many SaaS vendors try to achieve high availability of services. If a SaaS is not available, service consumers cannot use the functionality of the SaaS[29].

14

2.5.5 Quality of service

Quality of Service is related to the provider’s service level and service capabilities. Provider’s service level includes availability/business continuity, performance, usability and reliability. Provider’s service capabilities are composite by the capabilities to assure data security, the capabilities to manage SaaS service[29].

2.5.6 Scalability

In software engineering, scalability is a property which is necessary for a system, a network, or a process, which means its ability to either handle growing amounts of work or can be larged. Due to the black-box nature of cloud computing services, service consumers cannot control resources which are utilized by the services, such as memory, network, or CPU utilization. That is, a service provider is a responsible for rescaling the resources according to consumer’s requests without notifying the consumers in detail[29].

2.5.7 Data Security

The data security headache are the most important reasons why organizations are un- interested in software as a service. Moreover, solving the organization's security concerns has came up as the largest challenge for adopting Subservice in the cloud[29].

2.5.8 Pay per Use

The expenses for SaaS are estimated by using services such as the number of service invocations or duration which services are utilized. That is, service consumers can connect and use the service each time they want, and then pay for just amount of usage. So, the customer takes an activity for using the service[29].

2.5.9 Configurability

Configurability is the main feature of any SaaS software. This aspect of SaaS software includes organizational structure, user interface, data, access control, workflow, and business logic[29].

15

2.5.10 Multi-tenant

Multi-tenant is referred to the rule in software architecture, where an instance of the software executes on a server, giving services to more than one clients (tenants). In a multitenant environment, near to all organizations or tenants and their customers receives the service from the similar technology, sharing nearly all components in the technique stack including the data model, servers, and database layers. The advantage of the multi-tenant environment includes scalability, performance, service management, and service upgrades.

The main benefit of Multi-tenancy is to reduce the operating costs of running software from the provider’s perspective. Multi-tenancy is the main property of SaaS [31], it allows vendors to provide multiple requests and configurations through a single instance of the application, which a single instance of a software application serves multiple customers. Each customer is called a tenant.

Tenants may be given the ability to customize some parts of the application, such as color of the user interface (UI) or business rules, but they cannot customize the application's code ,.it is the fundamental design approach for Software-as-a-Service service providers that improves and facilitates the manageability of Software-as-a- Service applications [32], and allows each tenant who is using SaaS application to feel as if he is the only tenant using this application, where in fact, many tenants using it [33] .

A multi-tenant application that is being concurrently used by two different tenants has illustrated in Figure 2.4 This type of application is typical with SaaS implementations.

Figure( 2.4): Type of Application Is Typical With SaaS Multi-Tenant[34]

16

Multitenant application architecture is often significantly more complex than that of single-tenant applications. Multitenant applications need to support the sharing of various artifacts by multiple users (including portals, data schemas, middleware, and databases) while maintaining security levels that segregate individual tenant operational environments.

2.6 Multi-Tenant Data Management

Multi-tenant databases is a feature that allows a single instance of an application to handle several end-users at the same time.

Figure(2.5): Multi-Tenant Database Approaches[35]

2.6.1 Approaches for the implementation of Multi-tenant

Approaches for the implementation can be summarized as follows[30] [36] :-

2.6.1.1 Separate Database

In this approach, a separate database is assigned to each tenant for data storage. This is the simplest approach to data isolation Each database contains some metadata used to redirect each tenant to the correct database. This approach is considered expensive in both implementation and maintenance. Multiple customers share the same machine, therefore it called shared machine.

17

2.6.1.2 Independent Tables and Shared Database Instances (IDII)

In this approach, all tenants share the same physical database, however, the schema different for each tenant. This approach is relatively simple to implement.

2.6.1.3 Shared Tables and Shared Database Instances(STSI)

In this approach, all tenants will share both the physical database and the schema. Tables are shared by all tenants. Customers’ information is separated using primary keys which are specified in the database design. This approach is relatively economic because it supports a large number of tenants per database server .

Chosen the appropriate approach depends on different criteria such as the number of tenants for the data storage and the efficiency and the cost considerations of SaaS implementation. For example, the separate database approach is the appropriate solution for large organizations tenants who need to store large amounts of data. The same approach is also suitable if security and legal requirements are of high concern. On the other hand, the shared database – shared schema is the appropriate solution for individual tenants who have low amounts of data to store. Also, the same approach is the optimum solution in case of frequently changed applications.

2.7 Software As a Service Frameworks

Software frameworks aim to facilitate software development by allowing designers and programmers to devote their time to meeting software requirements rather than dealing with the more standard low-level details of providing a working system, thereby reducing overall development time[37] .

There are many Software As a Service development framework & platform for building multi-tenant applications in the following table to explain each:-

Table (2.3): Development Platform For SaaS application

Name Author Address Usage Technology TechCello Aspire http://www.techcello.com/ SaaS .Net Software innomatic Alex Pagnoni http://www.innomatic.io/ saas PHP Salesforce Salesforce http://www.salesforce.com saas java

18

2.7.1 Techcello is multitenant application development platform it can help you to build a multi-tenant application on the rapid manner.

TechCello offers an end to end SaaS Life Cycle Management Solution, which can be used as a SaaS Development Framework to design, develop and manage the operations of your SaaS product. TechCello is a tested and proven SaaS Multi-Tenant Framework built exclusively to meet the typical SaaS needs of your business and product.

TechCello offers more than 30+ modules covering all the basic engineering blocks and operational modules. Using TechCello ISVs can simply focus on building product functionalities, and TechCello can take care of the rest. Apart from saving a significant amount of cost, ISVs precious time can be well spent on differentiating their product from competitors through unique product features.[38]

Techcello offers a wide range of SaaS building blocks that can help in building and managing SaaS multi-tenant applications. Techcello’s framework is designed with multi-tenant best practices and can work in a plug and play model so that integration can be extremely simple. ISVs get the flexibility to determine which modules to consume. Our plug and play architecture allows even existing products (SaaS or non- SaaS) to leverage Cello modules.

2.7.2 Innomatic

Innomatic Platform is based on Symfony since version 7,Innomatic also provides a Business Application Framework for creating multi-tenant custom Enterprise applications with prebuilt features like ACL, roles/permissions, site wide search engine, dashboard widgets, related items, persistency and a multi-tenant Content Management Framework (CMF) for building SaaS and Enterprise Web Content Management Systems and for adding CMS functionality to applications built with the Innomatic Platform.[39]

19

2.7.3 Salesforce

Force.com is a platform as a service (PaaS) that allows developers to create multitenant add-on applications that integrate into the main, Salesforce.com application, Force.com applications are hosted on Salesforce.com's infrastructure,Force.com applications are built using Apex and Visualforce (an XML syntax typically used to generate HTML) [40].

Table (2.4): Comparison Between Frameworks and The Proposed Framework

Name Field Software_license Target Technology Based-on TechCello Industry Paid Developer .Net Framework innomatic Industry Free Developer Symphony Salesforce Industry Paid Developer - Proposed Education Free & Opensource Students PHP Framework

20

2.8 Model View Controller (MVC)

MVC made its first appearance to the public in Smalltalk-80 (Smalltalk is an object- oriented programming language).for the Dynabook Project (a portable personal information management tool) by Alan Kay [41] ,and The objective of MVC is to develop applications in a modular way, support in the development of graphical user interface (GUI), and use object sharing to endorse software reusability, MVC architecture is to split the business logic and application data from the presentation data thus decreasing the complicated architectural design and increasing flexibility and maintainability of code [42]

2.8.1 MVC (Model View Controller) Elements

The Model View Controller architecture consists of three distinct elements, These elements are separated to support maintaining and reusing code. Separation of these elements is used in applications that need to maintain multiple views of the same data, below Figure illustrates the relationships of the distinct elements [43]:-

Figure (2.6): MVC Elements[44]

21

2.8.1.1 View Element

Views control the display of data by displaying all or a fraction of the data and specifying how this data should be presented. Basically, it presents the data to the user.

The view is an illustration of its model and data is received from the model by asking questions. The responsibilities of the view are to manage a section of the display and to keep the display consistent with the state of the model.

2.8.1.2 Controller Element

The events affected by the model or view are handled by the controller. The controllers operates by accepting input from the user, then, based on the input, instructs the model and viewport to perform actions. The user and system is linked together through the controller. Basically, the controller handles user’s input such as keystrokes, mouse clicks, and mouse movements as events.

2.8.1.3 Model Element

The model represents the core functionality by managing the behavior and data of the application, providing requests with information about current state, and replying to instructions to alter the state. The model can be a single object or multiple objects. It is the data and business logic utilized in operating the data in an application in which making it more than just a database. For instance, not only does the model contain data but it also encapsulates methods to accessing and manipulating the data (data access layer).

2.8.2Class Diagram for the MVC Pattern

Usually, the model passes the data to controller then the controller passes that data to views. After receiving the data from the controller, the view will create a specific

22 view to the end user. The controller helps the view to be apart from the model (Web world) [44]. Below is a class diagram of a typical MVC application

Figure (2.7): Diagram of A Typical MVC Application[44]

23

3.1 Introduction

This chapter describes all phases of research methods that have been applied to develop the proposed web-based framework and the tools used in the research work.

3.2 Operational Framework

This section describe the framework used to explain all methodology phases as shown in Figure(3.1)

3.2.1 Problem Formulation

This phase first reviews all current literature from papers about cloud computing and software-as-a-service After that, the problem has been formulated.

3.2.2 Design the Proposed Framework

The design phase focuses on how to build the web-based cloud SaaS framework by describing the steps of this framework that are creating the schema in database, add the fields to the table and adding account manager for tenant.

3.2.3 Implementation

This phase describes the implementation of the proposed framework by using web technology.

3.2.3.1 Application Creation

First, in this step the study creates the application name initializing it to building the a new SaaS Application.

3.2.3.2 Schema Building

The second step starts the real programming for building the new SaaS Application by creating the schema and identify field by adding master data, After that a new schema has been generated and template of saas application and tenant manager.

24

3.2.4Validation phase

In this phase, the study validated the proposed framework to ensure that the framework provides the basic functionality needed by cloud multi-tenancy applications.

25

Problesm formulation

Review current litreatrure

Design proposed framework

Database initialization

Web form Creating

page

Impelementation

Create app name

Database initialization

validation

Empirical Study Final year of information technology student

Summarize result and writing thesis

Figure (3.1): Research Operational Framework

26

3.2.5 Empirical Study

To evaluate the proposed framework an Empirical Study has been conducted, In this study the final year of information technology student have been selected.

The students have been taught how to use proposed framework to build multi-tenancy SaaS application. After that, the study collected their observations about the proposed framework.

3.3 Tools and technologies used in This Methodology

There are many tools use in the proposed framework creation:-

3.3.1 PHP

PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML.

3.3.2 MySQL is an open-source relational database management system (RDBMS), world's most popular With its proven performance, reliability and ease-of-use.

3.3.3 jQuery jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.

3.3.4 Bootstrap

Bootstrap is a free and open-source front-end web framework for designing websites and web applications. It contains HTML- and CSS-based design templates for typography, forms, buttons, navigation and other interface components, as well as optional JavaScript extensions. Unlike many web frameworks, it concerns itself with front-end development only.

27

3.3.5 RedBeanPHP

RedBeanPHP is an independent, free, BSD licensed, open-source object-relational mapping software written by Gabor de Mooij. It is a stand-alone library, not part of any framework.

RedBeanPHP is an on-the-fly object relational mapper, this means there is no upfront configuration. The system relies on conventions entirely and adapts the database schema to fit the needs of the program. This way, it strikes a balance between NoSQL and traditional RDBMS solutions.

3.3.6 Apache HTTP Server

The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.

28

4.1 Introduction This chapter describes the proposed Web-Based SaaS framework and describes the implementation and how the framework works.

4.2 The Proposed Framework The Proposed Framework is a Web-Based framework to create cloud SaaS applications, In the proposed framework the study used object oriented programming concepts and Design pattern solution such as MVC, And Signilton ,and easy to for develop SaaS application as shown in Figure(4.1). Proposed framework is an online toolkit and software-as-a-service (cloud Software) for rapidly creating business software systems on the cloud. Building and deploying core of SaaS applications function, proposed framework delivers complete development functionality with no additional programming needed for multitenant function. However, the developer can add some code to customize the application.

core Framework

Create Database

Create App Core Databse Developer or ISVs

schema 1

Crated SaaS schema 2 Application schema 3

Aplication Database Teanants Databse

Figure (4.1): Proposed Framework Visual overview

29

4.2.1 The Proposed Framework Guideline The proposed framework is simpler than the most framework for the software-as-a- service (SaaS). the proposed framework is only requiring implementing a few number of steps to create an application.The developer can customize the generated application by use PHP and RedBean ORM.

4.2.2 Features of The Proposed Framework

The following subsection describes the feature of the proposed framework:- 4.2.2.1 Zero Effort Database Creation The creation of databases and the connection to databases and create entities is done dynamically without any burden of configuration.

4.2.2.2 Creating Simple CRUD Application Creation CRUD (Create, Read, Update, and Delete) application is the most important, It provides an idea to develop a large project, CRUD is Generated upon entity created by the application developer.

4.2.2.3 Template-Based Tenant Creation Template contains a pre-defined set of pages, components, services etc. that would be automatically created for generated application.

30

4.3 Proposed Framework Architecture

Development

Framework

Create Application Database Generate Code Generate

Apache Template Generate Form Generate Tenant Manager

-

-

view mysql

SaaS Framework Control

Model

Redben ORM

Figure (4.2): Proposed Framework Architecture

The proposed framework architecture as shown in Figure (4.2) contents six components in the upper part and four component in lower part:- 4.3.1 Create Application

In a creating of new application the proposed framework have to make sure that name of the application does not duplicate any name then a new application is created in apps directory.

4.3.2 Create Database

The creation of a database an automatic process where the proposed framework creates a SaaS application a new databses generated.

31

4.3.3 Code Generated

In the process of code generation, some files are generated such as config. which is responsible for database configuration and .htaccess file which is responsible for MVC system.

4.3.4 Template provide

This component provides SaaS application a core template files which contain a reusable component and pages part of the framework.

4.3.5 Form Generate

This component is responsible for creating a form for building entity and generating the main table, and generate an update , delete , show form in SaaS application.

4.3.6 Tenant Manager

The tenant manager provide a panel to manage tenant and show details about the tenant.

4.3.7 Model, View And Control

MVC system component is an organize code business from presentation and control

4.3.8 Redbean Orm

This component deals with database

32

4.4 Multi-Tenant

The proposed framework has built-in support for multitenancy, Multitenancy allows a single instance of the application to serve multiple organizations virtually isolated from one another.

There three distinct approaches to implementing multitenancy:-

A. Separated databases B. Shared schema C. Separated schemas (store tenant data in separate tables of the same database, e.g., Using tab0 and tab1 tables to store data for user 1 and user 2 respectively). this approach selected to use in this framework.

tenant 1 tenant 2

db1 db3

tenant 3 tenant 1 tenant 1

db2 tenant 2 tenant 3

tenant 2 tenant 3

Separated Database Separated Schema Shared Schema

Figure (4.3): Approaches to Implement Multitenancy

4.4.1 Core Table

This table provide multi-tenancy by adding users table, any user created have an assigned table to deal with, and admin table for application manager.

33

4.5 The Implementation of Proposed Framework

4.5.1 Application Development

After the completion of the design, it's time of implementation of proposed framework.

The first step is to open the framework web URL and then web page appear and form to insert application name and developer name and description as shown in Figure(4.4).

The application name is important because generated application will use Sub-URL for multi-sites at one domain.

Figure (4.4): Creation of Application

34

4.5.2 Database And Entity Generation

After creating application its time to define the fields of data object. as shown in Figure(4.5), we define four fields and name generates field and add master data to define field data type in a Figure (4.6).

Figure (4.5): Add Field And Generate

Figure (4.6): Adding Master Data To Define Data Type

35

4.5.3 Admin Master Creation

Creating admin of application to manage tenant as shown in Figure(4.7).

Figure (4.7): Adding Admin To Application 4.5.4 Deploy And use of Application After created the admin application is deployed to the domain name and sub-domain with application name as shown in Figure (4.8) in URL after apps.

Figure (4.8): Application Deployed

36

4.5.4 Application Useability

To use application tenant, login user as shown in Figure(4.8) and register user or account as shown in Figure(4.9).

The tenant can insert, update, delete information as shown in Figure (4.10),( 4.11) and login to tenant manager in Figure (4.12).

Figure (4.9): Create Account

Figure (4.10): Insert Information

37

Figure (4.11): View Information

Figure (4.12): Admin Tenant Manager

38

5.1 Introduction This chapter explains the results of the empirical study conducted to evaluate the proposed framework. For the empirical study, a sample of 49 students has been selected from university of science final year Information Technology Bachelor. The empirical study has used ISO Usability Standard Model.

5.2 Usability in ISO 9126 Quality Standard Model The ISO/IEC 9126-1 represents the Software Engineering (SE) perspective on usability. In SE, usability is defined as being the capability of the software product to be understood, learned, used and attractive to the user, when used under specified conditions (ISO/IEC FDIS 9126-1, 2000)[45]. The Usability subfactors in this standard are understandability, learnability, operability, attractiveness, and usability compliance as shown in Figure (5.1).

Figure (5.1): ISO 9126-1 Usability Standard[45]

5.3 Empirical Study The study have trained final year student of information technology in the faculty of computer science and technology, First we have explained what a framework is and when we call the developing tool framework, Rapid application development.

39

The next step in the empirical study was explaining the proposed framework and trained the students how to use this framework. The last step of the empirical study was to collect the student’s observation about proposed framework, and analysis of the observation has been carried out.

5.3.1 The Empirical Study Results

The first observation collected from students was about the Understandability.

Table (5.1): Understandability

Options Member Answered Rate Easy 23 47% Natural 25 51% Hard 1 2% Total 49 100%

Understandability 30 25 20 15 10 5 0 Hard Natural Easy Understandability 1 25 23

Figure (5.2): Understandability

The result of the empirical study about understandability as shown in Figure (5.2) and table (5.1) the most of students sees proposed framework as natural and easy to understood.

40

The second observation collected from students was about learnability.

Table (5.2): learnability

Options Member Answered Rate Easy 24 49% Natural 23 47% Hard 2 4% Total 49 100%

Learnability 30

25

20

15

10

5

0 Hard Natural Easy Learnability 2 23 24

Figure (5.3): Learnability

The result of the empirical study about learnability as shown in Figure (5.3) and table (5.3) the majorty of students reported that proposed framework is natural and easy to learn.

41

The third observation collected from students was about operability.

Table (5.3): operability

Options Member Answered Rate Easy 27 55% Natural 19 39% Hard 3 6% Total 49 100%

Operability 30

25

20

15

10

5

0 Hard Natural Easy Operability 3 19 27

Figure (5.4): Operability

The result of the empirical study about operability as shown in Figure (5.4) and table (5.4) the most of students see proposed framework is easy to operate and use

42

The fourth observation collected from students was about the Attractiveness.

Table (5.4): Attractiveness

Options Member Answered Rate Very Attractive 27 55% Natural 19 39% Not Attractive 3 6% Total 49 100%

Attractiveness 30

25

20

15

10

5

0 not Attractive Natural very Attractive Attractiveness 3 19 27

Figure (5.5) :Attractiveness

The result of the empirical study about operability as shown in Figure (5.4) and table (5.4 the majorty of students sees proposed framework is very attractive and natural.

43

The fifth observation collected from students was about the Usability Compliance.

Table (5.5): Usability Compliance

Options Member Answered Rate Easy 21 43% Natural 26 53% Hard 2 4% Total 49 100%

Usability compliance 30

25

20

15

10

5

0 Hard Natural Easy Usability compliance 2 26 21

Figure (5.6): Usability Compliance

The result of the questionnaire about usability compliance as shown in Figure (5.6) major student sees proposed framework is less compliance and not hard.

All previous five factor of usability proves the proposed framework is acceptable to use.

44

6.1 Conclusion

This thesis aims to propose a framework to building cloud SaaS application, the proposed framework is a web-based framework to develop application saas multitenancy.

The proposed framework support zero config database creation and reduce the complexity of dealing with the database.

The proposed framework is programming by web technology such as , PHP, ajax and using programming design pattern such as MVC, Signilton. an empirical study was conducted on a student from university of science and technology in the final year of information technology on usability of the framework, The result of study proves the proposed framework is acceptable to use.

The proposed framework provide simple creation of a SaaS multitenancy application without writing a Code.

The proposed framework easy and simple to create saas application.

6.2 Recommendations

The study recommended the following as future work:

i. improve form generation by add new component ii. improve in multitenancy by adding new approaches iii. upgrade framework to platform

45

Refrencese

1. Augustsson, K. and J. Fredriksson, Cloud service analysis-choosing between an on- premise resource and a cloud computing service. 2011. 2. Rao, V. and D.B. Reddy, Implementation of SaaS in a Cloud Computing Environment. 3. Saraswathi, M. and T. Bhuvaneswari. Multitenant SaaS model of cloud computing: issues and solutions. in Communication and Network Technologies (ICCNT), 2014 International Conference on. 2014. IEEE. 4. Pree, W. Meta patterns—A means for capturing the essentials of reusable object- oriented design. in European Conference on Object-Oriented Programming. 1994. Springer. 5. Mell, P. and T. Grance, The NIST definition of cloud computing. Communications of the ACM, 2010. 53(6): p. 50. 6. Youseff, L., M. Butrico, and D. Da Silva. Toward a unified ontology of cloud computing. in 2008 Grid Computing Environments Workshop. 2008. IEEE. 7. A Vouk, M., Cloud computing–issues, research and implementations. CIT. Journal of Computing and Information Technology, 2008. 16(4): p. 235-246. 8. Foster, I., et al. Cloud computing and grid computing 360-degree compared. in 2008 Grid Computing Environments Workshop. 2008. Ieee. 9. Buyya, R., et al., Cloud computing and emerging IT platforms: Vision, hype, and reality for delivering computing as the 5th utility. Future Generation computer systems, 2009. 25(6): p. 599-616. 10. Willcocks, L., W. Venters, and E. Whitley, Moving to the Cloud Corporation: How to face the challenges and harness the potential of cloud computing. 2013: Springer. 11. Wang, N., et al., Cloud computing research in the IS discipline: A citation/co-citation analysis. Decision Support Systems, 2016. 86: p. 35-47. 12. Stefanov, H., How to Charge for the Cloud. Towards a structured view of successful IT charge back models for Cloud services. Utrecht University, 2011. 13. Trappler, T.J., If It's in the Cloud, Get It on Paper: Cloud Computing Contract Issues. Educause Quarterly, 2010. 33(2): p. n2. 14. Ali, O., J. Soar, and J. Yong. Improved media management through cloud computing technology. in Computer Supported Cooperative Work in Design (CSCWD), 2016 IEEE 20th International Conference on. 2016. IEEE. 15. Siddiqui, M.A., H. Kamal, and S.A. Ali, Securing Storage as a Service Model of Cloud Computing using Client Authentication in Virtualized Environment. 16. Zhang, Q., L. Cheng, and R. Boutaba, Cloud computing: state-of-the-art and research challenges. Journal of internet services and applications, 2010. 1(1): p. 7-18. 17. Bhardwaj, S., L. Jain, and S. Jain, Cloud computing: A study of infrastructure as a service (IAAS). International Journal of engineering and information Technology, 2010. 2(1): p. 60-63. 18. Elamir, E. Cloud Software Development Life Cycle (Cloud SDLC) Introduction & Foundation. 2015; Available from: http://nbn-resolving.de/urn:nbn:de:101:1- 201509282216. 19. Rizzo, T., et al., Programming Microsoft's Clouds: Windows Azure and Office 365. 2012: John Wiley & Sons. 20. Yaish, H., M. Goyal, and G. Feuerlicht. An elastic multi-tenant database schema for software as a service. in Dependable, autonomic and secure computing (dasc), 2011 ieee ninth international conference on. 2011. IEEE. 21. Hoch, F., M. Kerr, and A. Griffith, Software as a service: Strategic backgrounder. Software & Information Industry Association (SIIA), 2001.

46

22. Mäkilä, T., et al. How to define software-as-a-service–an empirical study of finnish saas providers. in International Conference of Software Business. 2010. Springer. 23. Sääksjärvi, M., A. Lassila, and H. Nordström. Evaluating the software as a service business model: From CPU time-sharing to online innovation sharing. in IADIS international conference e-society. 2005. Qawra, Malta. 24. Campbell-Kelly, M., Historical reflections The rise, fall, and resurrection of software as a service. Communications of the ACM, 2009. 52(5): p. 28-30. 25. Choudhary, V., Comparison of software quality under perpetual licensing and software as a service. Journal of Management Information Systems, 2007. 24(2): p. 141-165. 26. Sun, W., et al. Software as a service: An integration perspective. in International Conference on Service-Oriented Computing. 2007. Springer. 27. Huang, K.-W. and M. Wang, Firm-level productivity analysis for software as a service companies. 2009. 28. Vidyanand, C. Software as a service: implications for investment in software development. in Proceedings of the 40th Hawaii International Conference on System Sciences (HICSS), Waikoloa, Hawaii. 2007. 29. Banerjee, S. and S. Jain, A survey on Software as a service (SaaS) using quality model in cloud computing. International Journal of Engineering and Computer Science, 2014. 3(1): p. 3598-3602. 30. Hui, M., et al. Supporting database applications as a service. in 2009 IEEE 25th International Conference on Data Engineering. 2009. IEEE. 31. Jacobs, D. and S. Aulbach. Ruminations on Multi-Tenant Databases. in BTW. 2007. 32. Jansen, S., G.-J. Houben, and S. Brinkkemper. Customization realization in multi- tenant web applications: Case studies from the library sector. in International Conference on Web Engineering. 2010. Springer. 33. Bezemer, C.-P. and A. Zaidman. Multi-tenant SaaS applications: maintenance dream or nightmare? in Proceedings of the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution (IWPSE). 2010. ACM. 34. Saksena, N. Liferay : Leverage Multi-tenancy to achieve Economies of Scale. 2015; Available from: https://www.linkedin.com/pulse/liferay-leverage-multi-tenancy- achieve-economies-nitu-saksena-pmp. 35. Imam, M.O.M., A New Software as a Service Framework for Cloud Multi-tenancy, 2015, UNIVERSITY OF SCIENCE AND TECHNOLOGY. 36. Frederick Chong, G.C., and Roger Wolter. Multi-Tenant Data Architecture. June 2006; Available from: https://msdn.microsoft.com/en-us/library/aa479086.aspx. 37. Gifford, K., et al. BioNet middleware and software framework in support of space operations. in Paper presented on the SPACEOPS 2010 conference, hosted by NASA, Huntsville. 2010. 38. Techcello. Simplifying SaaS & Multi-tenant Application Development. Available from: http://www.techcello.com/resources/white-papers. 39. Innomatic. Innomatic Platform Documentation Center. Available from: https://innomatic.atlassian.net/wiki/. 40. Weissman, C.D. and S. Bobrowski. The design of the force. com multitenant internet application development platform. in SIGMOD Conference. 2009. 41. Sasine, J.M. and R.J. Toal. Implementing the model-view-controller paradigm in Ada 95. in Proceedings of the conference on TRI-Ada'95: Ada's role in global markets: solutions for a changing complex world. 1995. ACM.

47

42. Krasner, G.E. and S.T. Pope, A description of the model-view-controller user interface paradigm in the smalltalk-80 system. Journal of object oriented programming, 1988. 1(3): p. 26-49. 43. Pop, D.-P. and A. Altar, Designing an MVC model for rapid web application development. Procedia Engineering, 2014. 69: p. 1172-1179. 44. McGruder, C.A., MVC for content management on the cloud, 2011, DTIC Document. 45. Shawgi, E. and N.A. Noureldien, Usability measurement model (umm): a new model for measuring websites usability. International Journal of Information Science, 2015. 5(1): p. 5-13.

48