SlideShare a Scribd company logo
Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45
www.ijera.com 33 | P a g e
Graph-Based Algorithm for a User-Aware SaaS Approach:
Computing Optimal Distribution
Houda Kriouile*, Bouchra El Asri**
*(IMS Team, SIME Laboratory, ENSIAS, Mohammed V University in Rabat, Morocco)
** (IMS Team, SIME Laboratory, ENSIAS, Mohammed V University in Rabat, Morocco)
ABSTRACT
As a tool to exploit economies of scale, Software as a Service cloud models promote Multi-Tenancy which is
the notion of sharing instances among a large group of tenants. However, Multi-Tenancy only satisfies
requirements that are common to all tenants as well as the fact that tenants themselves hesitate about sharing. In
a try to solve this problem, the present paper propose a User-Aware approach for Software as a Service models
using Rich-Variant Components. The main contribution of this approach is a framework summarized in a graph-
based algorithm enabling deduction of an optimal distribution of instances on application's tenants. To illustrate
and evaluate the framework, the approach is applied on a Software as a Service Application for private school
management.
Keywords: Algorithm, Graph Coloring, Multi-Tenancy, Rich-Variant Component, Software as a Service
Applications
I. INTRODUCTION
Cloud Computing has emerged these last
decade as a new model of computing. It is nowadays
one of the hottest paradigms of how to build and
deliver IT services. Software as a Service (SaaS) is a
form of Cloud computing that refers to software
distribution model in which applications are hosted
by a service provider and made availability to
customers over a network. As a key enabler to
exploit economies of scale, SaaS promotes Multi-
Tenancy (MT), the notion of sharing resources
among a large group of customer organizations,
called tenants. MT brings several advantages to
SaaS, however, it only satisfies requirements that are
common to all tenants as well as the fact that tenants
themselves hesitate about sharing.
To tackle these problems, a plethora of
research work has been performed to facilitate SaaS
applications customization according to the tenant-
specific requirements. Most of these works are based
on exploiting benefits of MT, variability
management, and tenants’ isolation on a single
instance [1,2,3]. Likewise, our approach aims to
create a flexible and reusable environment enabling
greater flexibility and suppleness for customers
while leveraging the economies of scale. The
approach is a user-aware solution integrating a
functional variability at application components
level and deployment variability at multi-tenants
end-users level as well. Moreover, the approach
focuses on satisfying stakeholders, providers and
customers, while maintaining a level of performance
and remaining efficient.
The aim of our work is to provide an
economy of scale for SaaS application providers
while minimizing the cost to its applications tenants.
We seek to achieve our goals using multi-variant
components that give more possibilities of sharing
allowing more instances sharing and over lower cost
and better communication between tenants’
communities.
This paper presents the contribution of our
approach and treats the formalization of its
algorithmic part. The remainder of this paper is
structured as follows. Section II provides the main
notion and concept making the base of knowledge of
our work. Section III identifies the problem of our
work as well as its motivation and its research goal.
Section IV presents the main contribution of our
approach consisting in a graph-based algorithm
computing optimal deployment. Section V treats the
algorithmic part of our approach. Section VI gives a
case study illustrating our work utility. Section VII
presents several approaches studied as related work.
Finally, Section VIII is a conclusion of the paper.
II. BASE OF KNOWLEDGE
2.1. Variability-Aware System
Variability is the capacity of a software
artifact to be adapted for a specific context [4]. It can
be, for example, the capacity to be extended,
configured, customized, or modified. In literature,
the notion of variability is largely related to Software
Product Line (SPL)because it is defined in SPL
context locating the differences between products of
the same family. SPL community approaches focus
more and more on variability resolution, and since,
different definitions of variability appeared in the
context of SPL. We define the variability as the
description of the possible variations of a system by
RESEARCH ARTICLE OPEN ACCESS
Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45
www.ijera.com 34 | P a g e
variation points, while a variation point identifies
and locates the place where occurs the variability. It
identifies possible solutions to solving this
variability.
The variability can be defined at all stages
of the development process. Therefore, a variability
management system or software is required for all
phases of system life cycle. In literature, several
mechanisms are proposed for a system variability
management intervening in the various phases of a
system life cycle. Some examples of these
mechanisms are presented below:
 Specification Phase: Iqbal, Zaidi and Murtaza
propose a model for the prioritization of
requirements using the Analytic Hierarchy
Process [5].
 Conception Phase: Several approaches were
proposed to model SPL using Feature Models,
for example the Feature Oriented Domain
Analysis (FODA) approach [6] that targets to
capture communalities and differences at
requirements level. Other approaches provide
extensions to the FODA approach such as the
Feature-Oriented Reuse Method (FORM) [7]
whose main contribution is the decomposition
of Feature Model layers to describe different
perspectives.
 Testing Phase: Erwing and Walkingshaw
propose the organization of the space of all
variations by dimensions, which provides
scoping and structuring choices [8]. They
consider the “variation programming” concept
for a flexible construction of all types of
variation structures [8].
 Implementation Phase: Trummer proposed a
corresponding data model [9] based on the
Composite Application Framework (Cafe)
model [1]. Applications are composed out of
components that could be provided distinctly.
2.2. Multi-Functional Systems and Separation of
concerns
The Separation of Concerns (SoC) concept
was very early regarded as a key artifact to master
the essential complexity of software development. It
is a pragmatic application of the general strategy of
"divide and rule". The underlying ideas of SoC come
from E. W. Dijkstra [10]. SoC appears in the various
software life cycle stages and thus it takes a variety
of forms. It may be the separation in time regarding
the treatment of from design to realization of the
different software facets, which are then
successively addressed during the development
process.
Designers focus on artifacts in a reduced
spectrum of concerns by using (i) generic languages
(e.g. UML) or Domain Specific Languages (DSLs)
sometimes called Domain Specific Modeling
Languages (DSMLs) and (ii) views - targeted
information encapsulation on user’s business. The
legitimacy of the point of views held by their
intelligibility and their communicability. Indeed, an
illustration of the SoC principle is the separation of
"views" of a system. It can be, for example, a
functional point of view describing the functional
and nominal behavior of system; a fault tolerance
point of view explaining the behavior in case of
failure; or a performance evaluation point of view to
calculate latencies, load flow, and other real-time
features, of robustness models for mechanical,
electromagnetic disturbance, etc. The point of view
are specialized and defined with a semantic
appropriate to the business domain [11].
About the architecture of a software
system, more users and stakeholder, which are
interested in different system aspects and its possible
deployment/usage, clearly appear. Several system
architectural views are defined, for example [12]. A
popular approach of architectural multiviews comes
from the “4+1”views methodology [13] proposed by
Kruchten for the conception with UML. The point of
view management irremediably brings to a
consistency management issues between these
views, source of many research as for example [14].
Functional domain define the main
dimension of any system. They describe system
activities and goals. System decomposition into a set
of functional domains already existed in the field of
database resulting the concept of view [15].
Multifunctional systems have been introduced to
overcome problems of inconsistency and overlap
between different system perspectives. The multi-
functionality notion was introduced under closely
related terms such as role, subject, aspect, and view,
etc.
Our contribution is mainly focused on the
notion of view as a mechanism of functional
separation. More recently, this concept was used in
service-oriented approaches to take into account the
variability of service customers' needs. For example,
Tran-Nguyen considers the view as a representation
of a whole system from the perspective of a related
set of concerns [16]. Dikanski and Abeck propose a
view based approach for the specification of a
service-oriented security architecture model
incorporating different interrelated views in order to
support the development and operation of secure
service oriented applications [17].
In the context of our work, we mix the
multi-functionality notion with the point of view
concept as a mechanism of separation of functional
concerns.
2.3. Cloud Computing and Multi-tenancy
The National Institute of Standards and
Technology (NIST) defines the Cloud Computing as
Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45
www.ijera.com 35 | P a g e
the access through a telecommunication network, by
demand and self-service, to a shared pool of
configurable computing resources [18]. Cloud
Computing is the use of computing resources,
hardware and software, which are provided as a
service on a network, generally the internet. Cloud
Computing loads remote services with user's data,
software and computation [18].
NIST defines three main types of cloud
services: Infrastructure as a Service (IaaS), Platform
as a Service (PaaS), and Software as a Service
(SaaS). Our work focuses on Cloud Computing SaaS
services. In this type of service, applications are
made available to consumers. Applications can be
manipulated using a web browser. As a tool to
exploit economies of scale, SaaS favors Multi-
Tenancy [19].
MT is the concept of sharing resources
within a large group of client organizations, called
tenants. In other words, a single application instance
serves multiple clients. But, although many
customers use the same instance, each one has the
impression that the instance is designated only for
themselves. This is achieved by isolating a tenant's
data from others. Unlike single-tenancy where
personalization is often done by creating branches in
the development tree, in MT configuration options
must be integrated into the product design as in
software engineering product lines. However, MT
has the advantage that the infrastructure can be used
as efficiently as possible to accommodate as many
guests as possible on the same instance. Thus,
maintenance and operating costs of the application
decreases [20].
In Multi-tenant SaaS applications,
variability may have different sources (evolution,
maintenance, tenants requirements, etc.), but it
occurs naturally [3].
III. PROBLEM IDENTIFICATION,
MOTIVATION, AND RESEARCH
GOAL
3.1. Problem Identification: Variability
management need for Cloud environments
Cloud Computing emergence has
necessitated more and more variability in the form of
service types, deployment types, and the different
roles of Cloud stakeholders. Thus, variability
modeling is necessary to manage the complexities of
cloud systems.
SaaS applications are consumed by
different customers. Moreover, customers who use
the same application generally have different
requirements needs. Such requirements usually
requires variant software architectures. In other
words, when application requirements change,
software architectures of these applications must be
adapted to meet them. Consequently, requirements
and architectures have intrinsic variability
characteristics.
Furthermore, other problems are raised by
MT, among other things, the need to ensure the
accuracy of all possible configurations of the
application. It is not enough to guarantee the
accuracy of a unique configuration of an application.
On an other hand, in multi-tenant SaaS
applications consumers don't have to worry about
making updates and upgrades, adding security and
system patches, or ensuring service availability and
performance. In addition, rapid elasticity and
resources pooling are essential characteristics of
cloud [18], which promote the variability for cloud
computing environment, especially for MT
environments.
The different points cited above show the
need of variability management for a cloud
environment what motivated our present work
benefiting from multi-functionality and MT. In this
sense, our model variability will be modeled using
the Multiview components as well as some graph
theory concepts.
3.2. Motivation by running scenario
To illustrate our model through a use case,
we consider a SaaS application for a private school
management accessible through a Web browser. To
simplify, we reduce the application of our example
into six functionalities F1 to F6 mentioned in Fig. 1.
Moreover, we restrict end users of a private school
management application to: administrator, professor,
and student. The EGA (Education Guardianship
Authority) represents the authority of education
ministry and it is a special tenant that must be able to
supervise schools services.
Figure 1. Treated application functionalities
Besides, we consider six private schools tenants of
the application that are listed in Table 1. Schools
which are application tenants can express their
deployment requirements on sharing each
application functionality.
Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45
www.ijera.com 36 | P a g e
Table 1. List of Schools Tenants of The Application
School Name City
Sc1 ABC school Rabat
Sc2 IJK school Rabat
Sc3 LMN school Rabat
Sc4 IJK school Oujda
Sc5 IJK school Agadir
Sc6 QRS school Agadir
3.3. Research Questions and Research Goal
As a key enabler to exploit economies of
scale, SaaS promotes MT which brings several
advantages, however, it only satisfies requirements
that are common to all tenants as well as tenants
themselves hesitate about sharing. So, how can we
enable providers exploiting economies of scale while
avoiding the problem of customers hesitation about
sharing with others and allowing better
communication between client communities. In the
purpose of solving this problem, we need to answer
the following research questions:
 Q1:How can customers' deployment
requirements be captured ?
 Q2:How can deployment information be
formally represented ?
 Q3:How can an optimal distribution be deduced
?
Based on the research questions, our
contribution is a framework from which the
information is exchanged between the provider and
its customers. Our contribution, as shown in Fig. 2,
can be structured into three part C1, C2, and C3 ,
each one dealing with one of research questions Q1,
Q2, and Q3, respectively.
Figure 2. Description of our Framework
IV. OUR CONTRIBUTION: A USER-
AWARE TENANCY APPROACH
BASED ON RICH-VARIANT
COMPONENT
In order to provide a more flexible, more
dynamic, and more reusable environment for SaaS
application providers, our approach offers a users-
aware tenancy based on the use of Rich-Variant
Component (RVC). Through our work, we seek to
exploit economies of scale while avoiding the
problem of customers hesitation about sharing with
others and allowing better communication between
client communities.
Our approach proposes a provider platform
from which the information is exchanged between
the provider and its customers . The provider
presents its offers and clients express their needs and
requirements.
Getting by capturing tenants deployment
requirements, our work aims to calculate application
instances optimal distribution on tenants while
respecting their deployment requirements.
Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45
www.ijera.com 37 | P a g e
In addition to client functional requirements
recovery, the main idea of our work is to recover
deployment-sharing requirements as well. This
allows thereafter considering deployment
requirements of individual tenants when calculating
an application instances optimal distribution on
clients of this application.
Deployment requirements expression
allows tenants to express with which other tenants
they wish or do not wish to share every part of the
application.
A customer who pays to use an application
is a tenant of this application. An application tenant
may be an enterprise, a company, an association or
any other organization wishing to rent the
application.
Each tenant has a number of end users who
are in general its employees and its staff. When
designing an application, we put different roles or
points of view categorizing the different users needs
according to their business and missions.
In our approach, SaaS applications are built
of a number of RVCs, each RVC provides atomic
functionality and dynamically changes behavior
according to the available user point of view. SaaS
applications built based on RVC then behave
differently depending on the available point of view.
The overall vision of our approach
architecture is shown in Fig. 3, where all tenants use
the same execution engine that executes the Rich-
Variant Configurations specific to each tenant.
In the first level, the highest level of
abstraction, we have the provider's catalog, which is
a formal description of all available applications
offered by that provider. The catalog presents
applications functional variability through each
application functionalities description as well as
variability points specification showing thus to
customers how an application can be customized.
Considered as an instantiation of the catalog related
with an application, the Configuration Template
comes in a second level describing the RVCs that
must be linked to create the specified application.
Generated from a given Configuration Template, a
Rich-Variant Configuration describes a specific
application tailored to a specific tenant needs with a
behavior that changes dynamically at runtime
depending on the available end-user's role or point of
view. At this level, values of the parameters or
variability points of each RVC are defined, it is the
description of the practical application that will be
provided to the tenant.
As we have already mentioned, our SaaS
applications are built from RVCs. Each RVC has a
number of variants. And each application
functionality is performed using a number of
variants of RVCs which build the application.
Figure 3. Overall architectural vision
An RVC is a Multiview component which
dynamically change its behavior according to the
enabled point of view. Each RVC has a number of
variants that it can be deployed according of one of
them each time.
From our platform, tenants choose the
functionalities they desire have in the application
and specify their deployment requirements for each
functionality. An example of a deployment
requirement is "I do not want to share the
functionality F with any other tenant," or "I want to
share functionality F with the tenant X" ... When a
tenant doesn't precise any deployment requirement
for a functionality, it means that he has no problem
sharing this functionality. In this case, we consider
the default value which is "Share with anyone". The
next chapter shows how we formalized the
expression of deployment requirements to facilitate
their capture.
On customers or tenants side we talk about
sharing functionalities, while on provider's side we
talk about sharing RVC variants. Therefore, the
initial step of our work is to translate customer
requirements concerning functionalities to
requirements concerning RVC variants. Two tenants
can't share a functionality means that they can't share
the variants involved in achieving this functionality.
Computing the optimal distribution of an
application instances ends up to computing the
optimal distribution of instances of RVCs building
the application. The remainder of our approach is a
treatment that breeds on each RVC. Thereafter, we
will need deployment information of each RVC
resulting from the translation of tenants requirements
about functionalities and which indicate for each two
tenants if they can share or not each specific RVC
variant.
The representation of these deployment
information is in the form of graphs, one graph for
each RVC. We work with an Undirected Edge
Labeled Graph. While vertices represent tenants,
edges represent if two tenants can share variants or
not. Besides, labels on edges indicate the variants
Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45
www.ijera.com 38 | P a g e
involved in sharing relationship represented by the
edge. If an edge has no label, it means that sharing
relationship concerns the RVC with all its variants.
Fig. 4 presents an example of deployment
information represented by a graph.
Figure 4. Example of deployment information graph
To derive an optimal distribution of
application instances on tenants, we were inspired
from well-known problems of graph theory literature
[21]. Our treatment can be seen as finding a
minimal clique cover of our Undirected Edge
Labeled Graph. So the three steps of our treatment
are as follows:
Step 1: Inverse the undirected edge labeled graph
 Keep the same vertices;
 Make each two non-adjacent vertices become
adjacent with an unlabeled edge;
 Make each two adjacent and unlabeled vertices
become non-adjacent;
 Make each two adjacent and labeled vertices
become adjacent with a label containing the
complement of variants in the initial label.
For example, for a RVC with five variants
V1, V2, V3, V4, and V5, if the original label
contains "V2, V5" then the label on the inverse
graph is "V1, V3, V4".
Step 2: Divide vertices by RVC variants number
The second step is to divide the vertices by
the number of RVC variants. If the number of
variants is n, there will be n parts on each vertex
each referring to a RVC variants.
Step 3: Color the Inverse Graph
The third step is to color the inverse graph.
Our coloring function assigns a color to each section
of each vertex so that two adjacent vertices
according to a variant have different colors in the
sections referring to that variant.
 Give a color to all sections of a first vertex;
 For each next vertex, for each section referring
to a variant, for each color:
o if the vertex is not adjacent to vertices of that
color according to that variant, then we give it
the same color;
o if the vertex is adjacent to at least one vertex of
that color, we go to next color.
 At the last color, if we didn't give any color to
that section of that vertex, then we assign a new
color.
This coloring part returns a set of used
colors C={C1, ..., Cd}. Each used color is a set of
sections of vertices colored by this color.
Lemma 1: When instantiating a RVC
according to a variant, we can use the same instance
according to the other variants.
Taking Lemma 1 into account, we deduce
that the number of instances required to complete the
deployment is the number of used colors, what
means that it is the cardinality of the set C.
Moreover, we can also deduce the optimal
distribution of these instances on the different
tenants, and that from the same return of the coloring
function. Indeed, each color Ck designates a specific
instance of the RVC and the elements of this color
Ck refer to tenants who will use this instance and
according to which variant they will use it.
In conclusion, our treatment seeking to
compute valid and optimal deployment for a RVCs,
can be simplified and concluded in Algorithm 0
which takes as input an Undirected Edge Labeled
Graph representing deployment information about
the RVC, and returns as output the set of used
colors.
V. OUR CONTRIBUTION
ALGORITHMIC PART
In this chapter, we will present our work in
a more formal way using formulas, algorithms and
mathematical concepts.
5.1. Deployment requirements Capture: C1
In the aim of facilitating the capture of
deployment requirements expressed by tenants, we
defined four possible cases. Tenants can express
their requirements for each application functionality
using the following expressions:
 SWAny: Share with anyone (default value)
 SWJ(X): Share with just X ;
 DSW(X): Don't share with X ;
 DSWAny: Don't share with anyone.
Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45
www.ijera.com 39 | P a g e
Where X can take the values: "P" (as
Partners), "Cp" (as Competitors), "Ti" (for a specific
Tenant), or a list of the previous values.
Requirements are ordered in a table where
we store the requirements of each tenant for each
application functionality. We have a such table for
each application. As a result of the translation of
requirements concerning functionalities to
requirements concerning variants, we obtain a table
by RVC containing each tenant requirements for
each RVC variant. However, there may be several
expressions in one table cell, to settle this problem
we apply the following transition rules:
 SWAny and Z give Z
 DSWAny and Z give DSWAny
 DSW(X) and DSW(Y) give DSW(X,Y)
 SWJ(X) and SWJ(Y) give DSWAny
 DSW(X) and SWJ(Y) give SWJ(Y)
 DSW(X) and SWJ(X) give DSWAny
Where Z can take any of the four possible
expressions (i.e. Whatever Z).
5.2. From requirements to the graph: C2
From this step the work is the same for
each RVC, so for the remainder of the paper we
keep working on a single RVC. Then, let's have a
RVC with n variants. And let m be the number of
tenants. We formalize the table of m tenants
Requirements about the n RVC variants by R a two
dimensions (m x n) table in which each element rik is
the requirement of tenant i about variant k, as shown
by (1):
R = (rik), (i=1,...,m, k=1,...,n) (1)
The deployment information Graph is
formalized by a Boolean three-dimensional matrix G
(m x m x n) where the gijk value indicates if tenant i
and tenant j may share the variant k, as shown by
(2):
G = (gijk), (i, j= 1,...,m, k=1,...,n) (2)
If the gijk value is 1 then both tenants i and j
can share variant k, and if the gijk value is 0 then they
cannot share. By default, all tenants can share all
variants unless they declare the opposite. Therefore,
we initiate the gijk values of the matrix G by 1.
Thereafter, we traverse cells of requirements table R
and decides whether to change the gijk value
according to the expression of rik.
 If rik = DSWAny then gijk = gjik = 0 where i and j
are different.
 If rik = SWJ(tenants' LIST) then gijk = gjik = 0
where tenant j does not belong to the LIST and
where i and j are different.
 If rik = DSW(tenants' LIST) then gijk = gjik = 0
where tenant j belongs to the LIST.
 If rik = SWAny then we change nothing.
This step is formalized by Algorithm 1
thereafter. The end of this step makes the transition
from tenant requirements to deployment information
graph.
5.3. From the graph G to its inverse: Algo.2
Thereafter, we pass from the graph G to the
inverse graph formalized by a Boolean three-
dimensional matrix G(m x m x n) where the g'ijk
value takes the opposite of gijk, as shown in (3):
Algorithm 2 formalize the transition from graph G to
Graph G':
5.4. Towards the optimal distribution: Algo.3
The optimal distribution of RVC instances
is formalized by a two-dimensional matrix D (m x n)
where the dik value takes an integer indicating the
color assigned to the part referring to the variant k
from the graph vertex referring to the tenant i, as
shown by (4):
D = (dik), (i=1,...,m, k=1,...,n) (4)
As we had already explained in the
previous chapter, to color the inverse graph we first
give a first color to all parts of a first vertex. So as an
initialization, we give the value 1 to all elements of
the first line of the matrix D, as shown in (5):
d1k = 1 , (k=1,...,n ) (5)
Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45
www.ijera.com 40 | P a g e
Let h be the number of used colors, we
initiate h at the value 1. And let w and u be
indicators initiated to 0. Coloring of the inverse
graph is completely formalized by the Algorithm 3
which takes as input the graph G' and gives as output
the matrix D. The number of instances required to
complete the deployment is the number of used
colors, it means that it is the number h. Moreover,
we can also derive the optimal distribution of these
instances on the various tenants, and that from the
matrix D returned by the algorithm. Indeed, each
color refers to a specific instance of the RVC and the
elements of the matrix D with the same value -
referring to the color- show tenants who will use this
instance and according to which variant they will use
it.
The following chapter includes an
illustrative example to better understand and
visualize the result of our approach. Moreover, in
order to verify the expected results we had think
about the implementation of our algorithm.
VI. ILLUSTRATING EXAMPLE
Let us reconsider the SaaS application for a
private school management initiated above. We
reduced the application of our example in six
functionalities F1 to F6 as mentioned in Fig. 1. In
addition, we have limited the end-users in:
administrator, teacher, student and EGA. The
various RVCs used to make our functionalities are
presented in Fig. 5. The figure illustrates the usage
variants of each RVC according to the needs of end-
users. The "Schedules" component has four variants
A, B, C, and D, it can be used for the organization of
timetables per class or per teacher, as well as for
accounting hourly volume per subject or per teacher.
The "Absences Monitoring" component includes two
variants E and F, it can be used to account students
absence or to record the current session for a teacher.
The "Online Payment" component also includes two
variants G and H, it can be used to make students
payment or to pay part-time teachers. Finally, the
"Absences Statistics" component has two variants J
and K, it can be used to make absence statistics per
student or per subject.
Figure 5. The used RVCs
Using these RVCs, we developed the
Configuration Template presented in the top of Fig.
6. This template links the various RVCs needed to
achieve the six functionalities of our application.
Each application functionality uses a number of
various RVCs variants that build the application.
The figure shows the paths to achieve these
functionalities as well as the users who need to
perform each functionality. For example, the
achievement of "F1: Online Payment For
Professors" starts from the component RVC1,
specifically from the second variant B of RVC1
which involves the organization of timetables by
Professor and that to view timetable of teacher to
pay. Then we move to the second variant F of the
component RVC2 for accounting class sessions
conducted by the teacher. And finally, it ends at the
component RVC3, by its second variant H to make
the payment of the teacher. This functionality F1 is
only performed by an administrator.
As shown in Fig. 6, the functionality "F3:
Absence statistics per subject " is performed by the
teacher in order to assess the presence in its own
subjects, as it is performed by an administrator to
monitor the progress of the various school subjects.
Similarly, the functionality "F4: Absence statistics
per student" is performed by the administrator and
the student each for its own purpose. The
functionality "F2: Student Online Payment" is done
exclusively by the student. Both functionalities "F5:
Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45
www.ijera.com 41 | P a g e
Accounting hourly volume per subject" and "F6:
Accounting hourly volume per professor" are
performed by the administrator or by the EGA users
to control school services. Both of these
functionalities are realized by the third (C) and the
fourth (D) variants of RVC1.
In general, a school does not wish to share
with its competitors that it may specify or can be
defined as the schools of same type (primary school,
middle school, high school, vocational training
school, college ...) from the same town.
Figure 6. Configuration Template achieving functionalities
Table 2. Deployment Requirements Expressed By The Six Tenants Concerning The Six Application
Functionalities
Feature Variant Sc1 Sc2 Sc3 Sc4 Sc5 Sc6
F1 B, F, H DSWAny DSW(Sc3) DSW(Cp, Sc6) DSW(P) DSW(Sc3) SWAny
F2 G DSWAny SWJ(P) ---------- ---------- ---------- SWAny
F3 A, E, K DSWAny ---------- DSW(Cp) SWJ(P) ---------- SWAny
F4 A, E, J DSWAny ---------- DSW(Sc4) SWJ(P) DSW(Sc2) SWAny
F5 C DSWAny ---------- ---------- ---------- ---------- SWAny
F6 D DSWAny DSW(Cp) DSW(Sc6) SWJ(P) DSW(Cp) SWAny
Also a school may wish to share instances
with its partners to collaborate in their work. The
partners of a school are, in general, schools of the
same group of schools located in other cities, in
addition to schools in partnership mentioned by the
school tenant of the application. The schools of the
same group may, for example, wish to share the
instance of the component "Absences Statistics" to
compare and analyze the results. On the other hand,
schools have to share instances of the component
"Schedules" with the EGA to enable it to monitor
schools through both F5 and F6 functionalities
accounting the hourly volumes. The application used
by the EGA may be different from those used by
schools (less functionalities), but it must at least
contain the component "Schedules".
Application tenants schools express their
deployment requirements on sharing a specific
application functionality. Tenants expression of
deployment requirements concerning application
functionalities is technically translated in
deployment requirements concerning variants of
application RVCs.
According to Competitors and Partners
definitions mentioned previously, the relationships
between the six private schools tenants of the
application listed in Table 1 are: Sc1, Sc2, and Sc3
are competitors; Sc2, Sc4, and Sc5 are partners; Sc5
and Sc6 are competitors. Tenants deployment
requirements concerning the illustrating example are
presented in Table 2. Each tenant expresses its
requirements for each functionality, otherwise it
means that the tenant has no problems to share with
other tenants. Thus, the empty cells of the table take
the default value, which is SWAny.
The initial step is to translate requirements
about functionalities to requirements about RVCs
variants. Using the transition rules cited in the
previous chapter and detailing lists of tenants
partners and competitors, we pass from Table 2 to
Table 3 which includes four tables each for a RVC.
Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45
www.ijera.com 42 | P a g e
Table 3. Deployment Requirements Concerning Application Rvcs Variants
RVC Variant Sc1 Sc2 Sc3 Sc4 Sc5 Sc6
1 A DSWAny SWAny DSW(T1,T2,T4) DSW(T2,T5) DSW(T2) SWAny
B DSWAny DSW(T3) DSW(T1,T2,T6) DSW(T2,T5) DSW(T3) SWAny
C DSWAny SWAny SWAny SWAny SWAny SWAny
D DSWAny DSW(T1,T3) DSW(T6) SWJ(T2,T5) DSW(T6) SWAny
2 E DSWAny SWAny DSW(T1,T2,T4) DSW(T2,T5) DSW(T2) SWAny
F DSWAny DSW(T3) DSW(T1,T2,T6) DSW(T2,T5) DSW(T3) SWAny
3 G DSWAny SWJ(P) SWAny SWAny SWAny SWAny
H DSWAny DSW(T3) DSW(T1,T2,T6) DSW(T2,T5) DSW(T3) SWAny
4 J DSWAny SWAny DSW(T4) SWJ(T2,T5) DSW(T2) SWAny
K DSWAny SWAny DSW(T1,T2) SWJ(T2,T5) SWAny SWAny
Figure 7. Deployment information graph concerning
the RVC1 resulting from the use of our algorithm
To simplify the illustration of our
algorithms, we focus on a single RVC - the same
work is done for the other RVCs - and we will just
give the results for the other RVCs. So, for the
illustration of the different remaining steps of the
algorithm, we consider the first component of Fig. 5,
the RVC1 named "Schedules". This component has
four variants. The framed portion of Table 3 shows
requirements concerning variants of RVC1. We take
this portion as input of our algorithm, it is the Table
R. The algorithm deduces the matrix G. Fig. 7 shows
the numerical values of G elements as well as its
graphical representation.
Figure 8. Inverse graph of deployment information
graph concerning the RVC1
The next step is to inverse the graph G to
obtain the graph G '. The resulting inverse graph is
shown in Fig. 8 in the form of a numerical matrix
and in the form of an Undirected Edge Labeled
Graph.
The final step is to apply Algorithm 3 to
color the inverse graph. The algorithm takes as input
the matrix G' presented in Fig.8 and gives as output
the matrix D de dimension (6 x 4). The result
obtained by the application of the Algorithm 3is
presented in Fig. 9. We have the information for
each tenant which RVC instance should get
according to each variant.
Figure 9. Output of Algorithm 3 application
From Algorithm 3 output we deduce the
optimal distribution of RVC1 instances exposed in
Table 4. Each number from Fig. 9 refers to an
instance, for example, instance number 1of RVC1
must be given to tenant Sc1 only and according to all
variant.
Table 4. RVC1 instances distribution resulting from
the algorithm
Instance I1 I2 I3 I4
Variant
A Sc1 Sc2, Sc4 Sc3,
Sc5, Sc6
----
B Sc1 Sc2, Sc5, Sc6 Sc3, Sc4 ----
C Sc1 Sc2, Sc3, Sc4,
Sc5, Sc6
---- ----
D Sc1 Sc2, Sc4, Sc5 Sc3 Sc6
Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45
www.ijera.com 43 | P a g e
As regards the other RVCs, instances
distribution resulting from the application of our
algorithms is presented in Table 5. Only three
instances are needed for RVC2 and RVC4. And a
more instance is necessary for the RVC3 but only
according to variant H. So, for the six tenants, we
only need four instances to respect all tenants
requirements about deployment and sharing
functionalities.
Table 5. RVCs instances distribution resulting from algorithms application
RVC Variant Instance I1 I2 I3 I4
RVC1 A T1 T2, T4 T3, T5, T6 ----
B T1 T2, T5, T6 T3, T4 ----
C T1 T2, T3, T4, T5, T6 ---- ----
D T1 T2, T4, T5 T3 T6
RVC2 E T1 T2, T4 T3, T5, T6 ----
F T1 T2, T5, T6 T3, T4 ----
RVC3 G T1 T2, T5 T3, T4, T6 ----
H T1 T2, T4, T6 T3 T5
RVC4 J T1 T2, T3, T6 T4, T5 ----
K T1 T2, T4, T5 T3, T6 ----
VII. RELATED WORK
Several works have been performed to
address the realization and variability of Multi-
tenancy systems in general and Multi-tenancy SaaS
applications in particular. In [22], the authors
propose a SaaS customization policy as well as a
supporting framework that is realized through a
design-time tooling and a run-time environment.
However, this work mainly focuses on the unique
issues in service customization for a given set of
requirements. Reference [23] is an example of
several works that addresses the challenge of
introducing flexibility into Multi-Tenancy
applications. Its authors discus the configuration
issues and challenges related to it, and propose a
competency model and a methodology framework
that both aim to support SaaS providers in planning
and evaluating their configuration and customizing
strategies. In [24], the authors use a directed
hypergraph based service model to represent
hierarchical services and Multi-Tenancy
applications. Based on these graphs, it is possible to
represent dependencies between services and
application structures from which Multi-Tenancy
applications can be constructed fulfilling customer
requirements.
Several research works have been
performed in the context of architectural patterns for
developing and deploying customizable multi-tenant
applications for Cloud environment. Several
approaches from those - cited below - was studied
and compared in Table 6. The comparison is based
on common characteristics shared by the studied
approaches.
Approach A: (Composite as a Service
(CaaS) [1][25]) show how applications built of
components, using different Cloud service models,
can be composed to form new applications that can
be offered as a new service.
Approach B: (Matchmaking of IaaS Offers
Leveraging Linked Data [2][26]) present models of
Expressive Search Requests and Service Offer
Descriptions allowing matchmaking of highly
configurable services that are dynamic and depend
on request.
Approach C: (Service line engineering [3])
present an integrated service engineering method,
that supports co-existing tenant-specific
configurations and that facilitates the development
and management of customizable, multi-tenant SaaS
applications.
Approach D: (Mixed-tenancy Systems
[19]) addresses the deployment variability based on
the SaaS tenants requirements about sharing
infrastructure, application codes or data with other
tenants. It proposes a hybrid solution between multi-
tenancy and simple tenancy.
The new notion brought by our approach
and that is not proposed by the others approaches is
the roles accessibility based on the concept of
Multiview. All cited approaches aim to improve
flexibility and reusability in their ways. To exploit
economies of scale some approaches rely on the
multi-tenancy, we do the same in our approach but
in addition we benefit from the use of Multiview
notion to exploit more and more economies of scale.
Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45
www.ijera.com 44 | P a g e
Table 6. A Comparative Study On Customizable Approaches For Cloud Environment
Approaches Composite as a
Service Approach
Matchmaking of IaaS
Offers Leveraging
Linked Data
Approach
Service line
engineering
Approach
Mixed-
tenancy
Systems
Approach
Our
Approach
Cloud
application area
SaaS IaaS, Service
Computing
SaaS SaaS SaaS
Variability -Functional
-Deployment
Deployment Functional -Deployment
-Functional
-Functional
-Deployment
Accessibility by
roles
Not proposed Not proposed Not
proposed
Not proposed Use of
Multiview
concept
Flexibility Dynamically scale
based on customer
demand
Service consumer
might specify a flexible
search request using
enumerations
and ranges
Use of
Service line
and
Workflows
Flexibility to
use depending
to the tenant
using the
application
Flexibility
according to
tenants, and
flexibility
according to
enabled view
Reusability Use of component-
based
software
Service Variant
Hierarchy promotes
reuse
Modular
middleware
layer
Use of
application
component
Use of RVCs
Economies of
scale
Use of highly
flexible templates
enabling
increasing
customers base
Not proposed Application-
level multi-
tenancy
Mixed tenancy
(hybrid
solution
between multi-
tenancy and
simple tenancy)
- Multi-
tenancy
- Multiview
notion
VIII. CONCLUSION
Flexibility and reusability are challenging
issues for multi-tenancy SaaS applications. In this
regard, our user-aware SaaS approach consists in
integrating two types of variability to create a more
flexible and reusable SaaS environment while
exploiting economies of scale and avoiding the
problem of tenants hesitation about sharing with
others. In this context, this paper addresses the
algorithmic part formalization, which aims to
compute a valid and optimal RVC instances
distribution on tenants while respecting their
deployment requirements. For this purpose, we first
presented the context and motivations of the
problem. Then, we presented our User-Aware SaaS
Approach. Then, we treated the formalization of our
approach using some mathematics concepts. Finally,
to illustrate our model we applied our algorithm to a
case study. As future work, we think about
projecting our approach in the domain of Model-
driven engineering for a more modern and more
general vision.
REFERENCES
[1]. R. Mietzner, A method and implementation
to Define and Provision Variable
Composite Applications, and its Usage in
Cloud Computing, doctoral diss., Stuttgart
University, 2010.
[2]. M. Zaremba, T. Vitvar, S. Bhiri, W.
Derguech, and F. Gao, Service Offer
Descriptions and Expressive Search
Requests - Key Enablers of Late Service
Binding, Proc. 13th International
Conference on E-Commerce and Web
Technologies (EC-Web), Vienna, Austria,
2012, 50-62.
[3]. S. Walraven, D. V. Landuyt, E. Truyen, K.
Handekyn, and W. Joosen, Efficient
customization of multi-tenant Software-as-
a-Service applications with service lines,
Journal of Systems and Software, vol. 91,
2014, 48-62.
[4]. M. Aiello, P. Bulanov, and H. Groefsema,
Requirements and tools for variability
management, Proc. the 2010 IEEE 34th
Annual Computer Software and
Applications Conference Workshops
(COMPSACW '10), Washington, DC, USA,
2010, 245-250.
[5]. M. A. Iqbal, A. M. Zaidi, and S. Murtaza,
A new requirement prioritization model for
market driven products using analytical
hierarchical process, Proc. DSDE’10,
IEEE, Feb. 2010, 142-149.
[6]. K. C. Kang, S. G. Cohen, J. A. Hess, W. E.
Novak, and A. S. Peterson, Feature-
oriented domain analysis (FODA)
feasibility study, Technical report,
CMU/SEI TR-21, USA, Nov. 1990.
[7]. K. C. Kang, S. Kim, J. Lee, K. Kim, G. J.
Kim, and E. Shin, FORM: A feature-
oriented reuse method with domain-specific
Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45
www.ijera.com 45 | P a g e
reference architectures, Annals of Software
Engineering, vol. 5, 1998, 143-168.
[8]. M. Erwig, and E. Walkingshaw, Variation
programming with the choice calculus,
Generative and Transformational
Techniques in Software Engineering,
Springer-Verlag Berlin Heidelberg, 2012,
55-100.
[9]. I. Trummer, Cost-Optimal Provisioning of
Cloud Applications, doctoral diss.,
University of Stuttgart, Faculty of computer
science, Feb. 2010.
[10]. Edsger W. Dijkstra, Springer-Verlag New
York (Ed.), Selected Writings on
Computing: A Personal Perspective,
chapter EWD 447: On the role of scientific
thought (1974), New York, USA, 1982, 60-
66.
[11]. S. Creff, Une modélisation de la variabilité
multidimensionnelle pour une évolution
incrémentale des lignes de produits,
doctoral diss., University of RENNES 1,
Decembre 2013.
[12]. IEEE, Ieee recommended practice for
architectural description of software
intensive systems. IEEE Std 1471-2000,
pages i-23, 2000.
[13]. P. Kruchten, The 4+1 view model of
architecture. IEEE Software, vol. 12,
November 1995, 42-50.
[14]. C. Nentwich, W. Emmerich, A. Finkelstein,
and E. Ellmer, Flexible consistency
checking, ACM Trans. Softw. Eng.
Methodol., 12(1), January 2003, 28-63.
[15]. L. Debrauwer, Des vues aux contextes pour
la structuration fonctionnelle de bases de
données à objets en CROME, doctoral
diss., Laboratoire d'Informatique
Fondamentale de Lille I, Lille, décembre
1998.
[16]. H. Tran-Nguyen, View-Based and Model-
Driven Approach for Process-Driven,
Service-Oriented Architectures, doctoral
diss., Vienna University of Technology,
2009.
[17]. E. Dikanski, and S. Abeck, A View-based
Approach for Service Oriented Security
Architecture Specification, Proc. the 6th
International Conference on Internet and
Web Applications and Services, 2011.
[18]. NIST, Definiton of Cloud Computing -
National Institute of Standards and
Technology, Gaithersburg, MD, 2009.
[19]. S. T. Ruehl, Mixed-Tenancy Systems A
hybrid Approach between Single and Multi-
Tenancy, doctoral diss., Department of
Informatics, Clausthal University of
Technology, June 2014.
[20]. C. P. Bezemer, and A. Zaidman, Multi-
tenant SaaS applications: maintenance
dream or nightmare?, Proc. the 4th
International Joint ERCIM/IWPSE
Symposium on Software Evolution (IWPSE-
EVOL), Antwerp, Belgium, 20-21
September 2010, 88-92.
[21]. R. M. Karp, Reducibility among
combinatorial problems, Tech. rep.
Springer, 1972, 85-103.
[22]. K. Zhang, X. Zhang, W. Sun, H. Liang, Y.
Huang, L. Zeng, and X. Liu, A Policy-
Driven Approach for Software-as-Services
Customization, Proc. the 9th IEEE
International Conference on ECommerce
Technology and the 4th IEEE International
Conference on Enterprise Computing, E-
Commerce, and E-Services, 2007, 123-130.
[23]. W. Sun, X. Zhang, C. J. Guo, P. Sun, and
H. Su, Software as a Service: Configuration
and Customization Perspectives, Proc.
Congress on Services Part II, IEEE,
Beijing, China, 2008, 18-25.
[24]. R. Wang, Y. Zhang, S. Liu, L. Wu, and X.
Meng, A Dependency-Aware Hierarchical
Service Model for SaaS and Cloud
Services, Proc. IEEE International
Conference on Services Computing (SCC),
July 2011, 480-487.
[25]. C. Fehling, and R. Mietzner, Composite as
a Service: Cloud Application Structures,
Provisioning, and Management, It -
Information Technology Special Issue:
Cloud Computing, April 2011, 188-194.
[26]. M. Zaremba, S. Bhiri, T. Vitvar, and M.
Hauswirth, Matchmaking of IaaS cloud
computing offers leveraging linked data,
Proc. the 28th Annual ACM Symposium on
Applied Computing (SAC), New York,
USA, 2013, 383-388.

More Related Content

Graph-Based Algorithm for a User-Aware SaaS Approach: Computing Optimal Distribution

  • 1. Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45 www.ijera.com 33 | P a g e Graph-Based Algorithm for a User-Aware SaaS Approach: Computing Optimal Distribution Houda Kriouile*, Bouchra El Asri** *(IMS Team, SIME Laboratory, ENSIAS, Mohammed V University in Rabat, Morocco) ** (IMS Team, SIME Laboratory, ENSIAS, Mohammed V University in Rabat, Morocco) ABSTRACT As a tool to exploit economies of scale, Software as a Service cloud models promote Multi-Tenancy which is the notion of sharing instances among a large group of tenants. However, Multi-Tenancy only satisfies requirements that are common to all tenants as well as the fact that tenants themselves hesitate about sharing. In a try to solve this problem, the present paper propose a User-Aware approach for Software as a Service models using Rich-Variant Components. The main contribution of this approach is a framework summarized in a graph- based algorithm enabling deduction of an optimal distribution of instances on application's tenants. To illustrate and evaluate the framework, the approach is applied on a Software as a Service Application for private school management. Keywords: Algorithm, Graph Coloring, Multi-Tenancy, Rich-Variant Component, Software as a Service Applications I. INTRODUCTION Cloud Computing has emerged these last decade as a new model of computing. It is nowadays one of the hottest paradigms of how to build and deliver IT services. Software as a Service (SaaS) is a form of Cloud computing that refers to software distribution model in which applications are hosted by a service provider and made availability to customers over a network. As a key enabler to exploit economies of scale, SaaS promotes Multi- Tenancy (MT), the notion of sharing resources among a large group of customer organizations, called tenants. MT brings several advantages to SaaS, however, it only satisfies requirements that are common to all tenants as well as the fact that tenants themselves hesitate about sharing. To tackle these problems, a plethora of research work has been performed to facilitate SaaS applications customization according to the tenant- specific requirements. Most of these works are based on exploiting benefits of MT, variability management, and tenants’ isolation on a single instance [1,2,3]. Likewise, our approach aims to create a flexible and reusable environment enabling greater flexibility and suppleness for customers while leveraging the economies of scale. The approach is a user-aware solution integrating a functional variability at application components level and deployment variability at multi-tenants end-users level as well. Moreover, the approach focuses on satisfying stakeholders, providers and customers, while maintaining a level of performance and remaining efficient. The aim of our work is to provide an economy of scale for SaaS application providers while minimizing the cost to its applications tenants. We seek to achieve our goals using multi-variant components that give more possibilities of sharing allowing more instances sharing and over lower cost and better communication between tenants’ communities. This paper presents the contribution of our approach and treats the formalization of its algorithmic part. The remainder of this paper is structured as follows. Section II provides the main notion and concept making the base of knowledge of our work. Section III identifies the problem of our work as well as its motivation and its research goal. Section IV presents the main contribution of our approach consisting in a graph-based algorithm computing optimal deployment. Section V treats the algorithmic part of our approach. Section VI gives a case study illustrating our work utility. Section VII presents several approaches studied as related work. Finally, Section VIII is a conclusion of the paper. II. BASE OF KNOWLEDGE 2.1. Variability-Aware System Variability is the capacity of a software artifact to be adapted for a specific context [4]. It can be, for example, the capacity to be extended, configured, customized, or modified. In literature, the notion of variability is largely related to Software Product Line (SPL)because it is defined in SPL context locating the differences between products of the same family. SPL community approaches focus more and more on variability resolution, and since, different definitions of variability appeared in the context of SPL. We define the variability as the description of the possible variations of a system by RESEARCH ARTICLE OPEN ACCESS
  • 2. Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45 www.ijera.com 34 | P a g e variation points, while a variation point identifies and locates the place where occurs the variability. It identifies possible solutions to solving this variability. The variability can be defined at all stages of the development process. Therefore, a variability management system or software is required for all phases of system life cycle. In literature, several mechanisms are proposed for a system variability management intervening in the various phases of a system life cycle. Some examples of these mechanisms are presented below:  Specification Phase: Iqbal, Zaidi and Murtaza propose a model for the prioritization of requirements using the Analytic Hierarchy Process [5].  Conception Phase: Several approaches were proposed to model SPL using Feature Models, for example the Feature Oriented Domain Analysis (FODA) approach [6] that targets to capture communalities and differences at requirements level. Other approaches provide extensions to the FODA approach such as the Feature-Oriented Reuse Method (FORM) [7] whose main contribution is the decomposition of Feature Model layers to describe different perspectives.  Testing Phase: Erwing and Walkingshaw propose the organization of the space of all variations by dimensions, which provides scoping and structuring choices [8]. They consider the “variation programming” concept for a flexible construction of all types of variation structures [8].  Implementation Phase: Trummer proposed a corresponding data model [9] based on the Composite Application Framework (Cafe) model [1]. Applications are composed out of components that could be provided distinctly. 2.2. Multi-Functional Systems and Separation of concerns The Separation of Concerns (SoC) concept was very early regarded as a key artifact to master the essential complexity of software development. It is a pragmatic application of the general strategy of "divide and rule". The underlying ideas of SoC come from E. W. Dijkstra [10]. SoC appears in the various software life cycle stages and thus it takes a variety of forms. It may be the separation in time regarding the treatment of from design to realization of the different software facets, which are then successively addressed during the development process. Designers focus on artifacts in a reduced spectrum of concerns by using (i) generic languages (e.g. UML) or Domain Specific Languages (DSLs) sometimes called Domain Specific Modeling Languages (DSMLs) and (ii) views - targeted information encapsulation on user’s business. The legitimacy of the point of views held by their intelligibility and their communicability. Indeed, an illustration of the SoC principle is the separation of "views" of a system. It can be, for example, a functional point of view describing the functional and nominal behavior of system; a fault tolerance point of view explaining the behavior in case of failure; or a performance evaluation point of view to calculate latencies, load flow, and other real-time features, of robustness models for mechanical, electromagnetic disturbance, etc. The point of view are specialized and defined with a semantic appropriate to the business domain [11]. About the architecture of a software system, more users and stakeholder, which are interested in different system aspects and its possible deployment/usage, clearly appear. Several system architectural views are defined, for example [12]. A popular approach of architectural multiviews comes from the “4+1”views methodology [13] proposed by Kruchten for the conception with UML. The point of view management irremediably brings to a consistency management issues between these views, source of many research as for example [14]. Functional domain define the main dimension of any system. They describe system activities and goals. System decomposition into a set of functional domains already existed in the field of database resulting the concept of view [15]. Multifunctional systems have been introduced to overcome problems of inconsistency and overlap between different system perspectives. The multi- functionality notion was introduced under closely related terms such as role, subject, aspect, and view, etc. Our contribution is mainly focused on the notion of view as a mechanism of functional separation. More recently, this concept was used in service-oriented approaches to take into account the variability of service customers' needs. For example, Tran-Nguyen considers the view as a representation of a whole system from the perspective of a related set of concerns [16]. Dikanski and Abeck propose a view based approach for the specification of a service-oriented security architecture model incorporating different interrelated views in order to support the development and operation of secure service oriented applications [17]. In the context of our work, we mix the multi-functionality notion with the point of view concept as a mechanism of separation of functional concerns. 2.3. Cloud Computing and Multi-tenancy The National Institute of Standards and Technology (NIST) defines the Cloud Computing as
  • 3. Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45 www.ijera.com 35 | P a g e the access through a telecommunication network, by demand and self-service, to a shared pool of configurable computing resources [18]. Cloud Computing is the use of computing resources, hardware and software, which are provided as a service on a network, generally the internet. Cloud Computing loads remote services with user's data, software and computation [18]. NIST defines three main types of cloud services: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Our work focuses on Cloud Computing SaaS services. In this type of service, applications are made available to consumers. Applications can be manipulated using a web browser. As a tool to exploit economies of scale, SaaS favors Multi- Tenancy [19]. MT is the concept of sharing resources within a large group of client organizations, called tenants. In other words, a single application instance serves multiple clients. But, although many customers use the same instance, each one has the impression that the instance is designated only for themselves. This is achieved by isolating a tenant's data from others. Unlike single-tenancy where personalization is often done by creating branches in the development tree, in MT configuration options must be integrated into the product design as in software engineering product lines. However, MT has the advantage that the infrastructure can be used as efficiently as possible to accommodate as many guests as possible on the same instance. Thus, maintenance and operating costs of the application decreases [20]. In Multi-tenant SaaS applications, variability may have different sources (evolution, maintenance, tenants requirements, etc.), but it occurs naturally [3]. III. PROBLEM IDENTIFICATION, MOTIVATION, AND RESEARCH GOAL 3.1. Problem Identification: Variability management need for Cloud environments Cloud Computing emergence has necessitated more and more variability in the form of service types, deployment types, and the different roles of Cloud stakeholders. Thus, variability modeling is necessary to manage the complexities of cloud systems. SaaS applications are consumed by different customers. Moreover, customers who use the same application generally have different requirements needs. Such requirements usually requires variant software architectures. In other words, when application requirements change, software architectures of these applications must be adapted to meet them. Consequently, requirements and architectures have intrinsic variability characteristics. Furthermore, other problems are raised by MT, among other things, the need to ensure the accuracy of all possible configurations of the application. It is not enough to guarantee the accuracy of a unique configuration of an application. On an other hand, in multi-tenant SaaS applications consumers don't have to worry about making updates and upgrades, adding security and system patches, or ensuring service availability and performance. In addition, rapid elasticity and resources pooling are essential characteristics of cloud [18], which promote the variability for cloud computing environment, especially for MT environments. The different points cited above show the need of variability management for a cloud environment what motivated our present work benefiting from multi-functionality and MT. In this sense, our model variability will be modeled using the Multiview components as well as some graph theory concepts. 3.2. Motivation by running scenario To illustrate our model through a use case, we consider a SaaS application for a private school management accessible through a Web browser. To simplify, we reduce the application of our example into six functionalities F1 to F6 mentioned in Fig. 1. Moreover, we restrict end users of a private school management application to: administrator, professor, and student. The EGA (Education Guardianship Authority) represents the authority of education ministry and it is a special tenant that must be able to supervise schools services. Figure 1. Treated application functionalities Besides, we consider six private schools tenants of the application that are listed in Table 1. Schools which are application tenants can express their deployment requirements on sharing each application functionality.
  • 4. Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45 www.ijera.com 36 | P a g e Table 1. List of Schools Tenants of The Application School Name City Sc1 ABC school Rabat Sc2 IJK school Rabat Sc3 LMN school Rabat Sc4 IJK school Oujda Sc5 IJK school Agadir Sc6 QRS school Agadir 3.3. Research Questions and Research Goal As a key enabler to exploit economies of scale, SaaS promotes MT which brings several advantages, however, it only satisfies requirements that are common to all tenants as well as tenants themselves hesitate about sharing. So, how can we enable providers exploiting economies of scale while avoiding the problem of customers hesitation about sharing with others and allowing better communication between client communities. In the purpose of solving this problem, we need to answer the following research questions:  Q1:How can customers' deployment requirements be captured ?  Q2:How can deployment information be formally represented ?  Q3:How can an optimal distribution be deduced ? Based on the research questions, our contribution is a framework from which the information is exchanged between the provider and its customers. Our contribution, as shown in Fig. 2, can be structured into three part C1, C2, and C3 , each one dealing with one of research questions Q1, Q2, and Q3, respectively. Figure 2. Description of our Framework IV. OUR CONTRIBUTION: A USER- AWARE TENANCY APPROACH BASED ON RICH-VARIANT COMPONENT In order to provide a more flexible, more dynamic, and more reusable environment for SaaS application providers, our approach offers a users- aware tenancy based on the use of Rich-Variant Component (RVC). Through our work, we seek to exploit economies of scale while avoiding the problem of customers hesitation about sharing with others and allowing better communication between client communities. Our approach proposes a provider platform from which the information is exchanged between the provider and its customers . The provider presents its offers and clients express their needs and requirements. Getting by capturing tenants deployment requirements, our work aims to calculate application instances optimal distribution on tenants while respecting their deployment requirements.
  • 5. Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45 www.ijera.com 37 | P a g e In addition to client functional requirements recovery, the main idea of our work is to recover deployment-sharing requirements as well. This allows thereafter considering deployment requirements of individual tenants when calculating an application instances optimal distribution on clients of this application. Deployment requirements expression allows tenants to express with which other tenants they wish or do not wish to share every part of the application. A customer who pays to use an application is a tenant of this application. An application tenant may be an enterprise, a company, an association or any other organization wishing to rent the application. Each tenant has a number of end users who are in general its employees and its staff. When designing an application, we put different roles or points of view categorizing the different users needs according to their business and missions. In our approach, SaaS applications are built of a number of RVCs, each RVC provides atomic functionality and dynamically changes behavior according to the available user point of view. SaaS applications built based on RVC then behave differently depending on the available point of view. The overall vision of our approach architecture is shown in Fig. 3, where all tenants use the same execution engine that executes the Rich- Variant Configurations specific to each tenant. In the first level, the highest level of abstraction, we have the provider's catalog, which is a formal description of all available applications offered by that provider. The catalog presents applications functional variability through each application functionalities description as well as variability points specification showing thus to customers how an application can be customized. Considered as an instantiation of the catalog related with an application, the Configuration Template comes in a second level describing the RVCs that must be linked to create the specified application. Generated from a given Configuration Template, a Rich-Variant Configuration describes a specific application tailored to a specific tenant needs with a behavior that changes dynamically at runtime depending on the available end-user's role or point of view. At this level, values of the parameters or variability points of each RVC are defined, it is the description of the practical application that will be provided to the tenant. As we have already mentioned, our SaaS applications are built from RVCs. Each RVC has a number of variants. And each application functionality is performed using a number of variants of RVCs which build the application. Figure 3. Overall architectural vision An RVC is a Multiview component which dynamically change its behavior according to the enabled point of view. Each RVC has a number of variants that it can be deployed according of one of them each time. From our platform, tenants choose the functionalities they desire have in the application and specify their deployment requirements for each functionality. An example of a deployment requirement is "I do not want to share the functionality F with any other tenant," or "I want to share functionality F with the tenant X" ... When a tenant doesn't precise any deployment requirement for a functionality, it means that he has no problem sharing this functionality. In this case, we consider the default value which is "Share with anyone". The next chapter shows how we formalized the expression of deployment requirements to facilitate their capture. On customers or tenants side we talk about sharing functionalities, while on provider's side we talk about sharing RVC variants. Therefore, the initial step of our work is to translate customer requirements concerning functionalities to requirements concerning RVC variants. Two tenants can't share a functionality means that they can't share the variants involved in achieving this functionality. Computing the optimal distribution of an application instances ends up to computing the optimal distribution of instances of RVCs building the application. The remainder of our approach is a treatment that breeds on each RVC. Thereafter, we will need deployment information of each RVC resulting from the translation of tenants requirements about functionalities and which indicate for each two tenants if they can share or not each specific RVC variant. The representation of these deployment information is in the form of graphs, one graph for each RVC. We work with an Undirected Edge Labeled Graph. While vertices represent tenants, edges represent if two tenants can share variants or not. Besides, labels on edges indicate the variants
  • 6. Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45 www.ijera.com 38 | P a g e involved in sharing relationship represented by the edge. If an edge has no label, it means that sharing relationship concerns the RVC with all its variants. Fig. 4 presents an example of deployment information represented by a graph. Figure 4. Example of deployment information graph To derive an optimal distribution of application instances on tenants, we were inspired from well-known problems of graph theory literature [21]. Our treatment can be seen as finding a minimal clique cover of our Undirected Edge Labeled Graph. So the three steps of our treatment are as follows: Step 1: Inverse the undirected edge labeled graph  Keep the same vertices;  Make each two non-adjacent vertices become adjacent with an unlabeled edge;  Make each two adjacent and unlabeled vertices become non-adjacent;  Make each two adjacent and labeled vertices become adjacent with a label containing the complement of variants in the initial label. For example, for a RVC with five variants V1, V2, V3, V4, and V5, if the original label contains "V2, V5" then the label on the inverse graph is "V1, V3, V4". Step 2: Divide vertices by RVC variants number The second step is to divide the vertices by the number of RVC variants. If the number of variants is n, there will be n parts on each vertex each referring to a RVC variants. Step 3: Color the Inverse Graph The third step is to color the inverse graph. Our coloring function assigns a color to each section of each vertex so that two adjacent vertices according to a variant have different colors in the sections referring to that variant.  Give a color to all sections of a first vertex;  For each next vertex, for each section referring to a variant, for each color: o if the vertex is not adjacent to vertices of that color according to that variant, then we give it the same color; o if the vertex is adjacent to at least one vertex of that color, we go to next color.  At the last color, if we didn't give any color to that section of that vertex, then we assign a new color. This coloring part returns a set of used colors C={C1, ..., Cd}. Each used color is a set of sections of vertices colored by this color. Lemma 1: When instantiating a RVC according to a variant, we can use the same instance according to the other variants. Taking Lemma 1 into account, we deduce that the number of instances required to complete the deployment is the number of used colors, what means that it is the cardinality of the set C. Moreover, we can also deduce the optimal distribution of these instances on the different tenants, and that from the same return of the coloring function. Indeed, each color Ck designates a specific instance of the RVC and the elements of this color Ck refer to tenants who will use this instance and according to which variant they will use it. In conclusion, our treatment seeking to compute valid and optimal deployment for a RVCs, can be simplified and concluded in Algorithm 0 which takes as input an Undirected Edge Labeled Graph representing deployment information about the RVC, and returns as output the set of used colors. V. OUR CONTRIBUTION ALGORITHMIC PART In this chapter, we will present our work in a more formal way using formulas, algorithms and mathematical concepts. 5.1. Deployment requirements Capture: C1 In the aim of facilitating the capture of deployment requirements expressed by tenants, we defined four possible cases. Tenants can express their requirements for each application functionality using the following expressions:  SWAny: Share with anyone (default value)  SWJ(X): Share with just X ;  DSW(X): Don't share with X ;  DSWAny: Don't share with anyone.
  • 7. Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45 www.ijera.com 39 | P a g e Where X can take the values: "P" (as Partners), "Cp" (as Competitors), "Ti" (for a specific Tenant), or a list of the previous values. Requirements are ordered in a table where we store the requirements of each tenant for each application functionality. We have a such table for each application. As a result of the translation of requirements concerning functionalities to requirements concerning variants, we obtain a table by RVC containing each tenant requirements for each RVC variant. However, there may be several expressions in one table cell, to settle this problem we apply the following transition rules:  SWAny and Z give Z  DSWAny and Z give DSWAny  DSW(X) and DSW(Y) give DSW(X,Y)  SWJ(X) and SWJ(Y) give DSWAny  DSW(X) and SWJ(Y) give SWJ(Y)  DSW(X) and SWJ(X) give DSWAny Where Z can take any of the four possible expressions (i.e. Whatever Z). 5.2. From requirements to the graph: C2 From this step the work is the same for each RVC, so for the remainder of the paper we keep working on a single RVC. Then, let's have a RVC with n variants. And let m be the number of tenants. We formalize the table of m tenants Requirements about the n RVC variants by R a two dimensions (m x n) table in which each element rik is the requirement of tenant i about variant k, as shown by (1): R = (rik), (i=1,...,m, k=1,...,n) (1) The deployment information Graph is formalized by a Boolean three-dimensional matrix G (m x m x n) where the gijk value indicates if tenant i and tenant j may share the variant k, as shown by (2): G = (gijk), (i, j= 1,...,m, k=1,...,n) (2) If the gijk value is 1 then both tenants i and j can share variant k, and if the gijk value is 0 then they cannot share. By default, all tenants can share all variants unless they declare the opposite. Therefore, we initiate the gijk values of the matrix G by 1. Thereafter, we traverse cells of requirements table R and decides whether to change the gijk value according to the expression of rik.  If rik = DSWAny then gijk = gjik = 0 where i and j are different.  If rik = SWJ(tenants' LIST) then gijk = gjik = 0 where tenant j does not belong to the LIST and where i and j are different.  If rik = DSW(tenants' LIST) then gijk = gjik = 0 where tenant j belongs to the LIST.  If rik = SWAny then we change nothing. This step is formalized by Algorithm 1 thereafter. The end of this step makes the transition from tenant requirements to deployment information graph. 5.3. From the graph G to its inverse: Algo.2 Thereafter, we pass from the graph G to the inverse graph formalized by a Boolean three- dimensional matrix G(m x m x n) where the g'ijk value takes the opposite of gijk, as shown in (3): Algorithm 2 formalize the transition from graph G to Graph G': 5.4. Towards the optimal distribution: Algo.3 The optimal distribution of RVC instances is formalized by a two-dimensional matrix D (m x n) where the dik value takes an integer indicating the color assigned to the part referring to the variant k from the graph vertex referring to the tenant i, as shown by (4): D = (dik), (i=1,...,m, k=1,...,n) (4) As we had already explained in the previous chapter, to color the inverse graph we first give a first color to all parts of a first vertex. So as an initialization, we give the value 1 to all elements of the first line of the matrix D, as shown in (5): d1k = 1 , (k=1,...,n ) (5)
  • 8. Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45 www.ijera.com 40 | P a g e Let h be the number of used colors, we initiate h at the value 1. And let w and u be indicators initiated to 0. Coloring of the inverse graph is completely formalized by the Algorithm 3 which takes as input the graph G' and gives as output the matrix D. The number of instances required to complete the deployment is the number of used colors, it means that it is the number h. Moreover, we can also derive the optimal distribution of these instances on the various tenants, and that from the matrix D returned by the algorithm. Indeed, each color refers to a specific instance of the RVC and the elements of the matrix D with the same value - referring to the color- show tenants who will use this instance and according to which variant they will use it. The following chapter includes an illustrative example to better understand and visualize the result of our approach. Moreover, in order to verify the expected results we had think about the implementation of our algorithm. VI. ILLUSTRATING EXAMPLE Let us reconsider the SaaS application for a private school management initiated above. We reduced the application of our example in six functionalities F1 to F6 as mentioned in Fig. 1. In addition, we have limited the end-users in: administrator, teacher, student and EGA. The various RVCs used to make our functionalities are presented in Fig. 5. The figure illustrates the usage variants of each RVC according to the needs of end- users. The "Schedules" component has four variants A, B, C, and D, it can be used for the organization of timetables per class or per teacher, as well as for accounting hourly volume per subject or per teacher. The "Absences Monitoring" component includes two variants E and F, it can be used to account students absence or to record the current session for a teacher. The "Online Payment" component also includes two variants G and H, it can be used to make students payment or to pay part-time teachers. Finally, the "Absences Statistics" component has two variants J and K, it can be used to make absence statistics per student or per subject. Figure 5. The used RVCs Using these RVCs, we developed the Configuration Template presented in the top of Fig. 6. This template links the various RVCs needed to achieve the six functionalities of our application. Each application functionality uses a number of various RVCs variants that build the application. The figure shows the paths to achieve these functionalities as well as the users who need to perform each functionality. For example, the achievement of "F1: Online Payment For Professors" starts from the component RVC1, specifically from the second variant B of RVC1 which involves the organization of timetables by Professor and that to view timetable of teacher to pay. Then we move to the second variant F of the component RVC2 for accounting class sessions conducted by the teacher. And finally, it ends at the component RVC3, by its second variant H to make the payment of the teacher. This functionality F1 is only performed by an administrator. As shown in Fig. 6, the functionality "F3: Absence statistics per subject " is performed by the teacher in order to assess the presence in its own subjects, as it is performed by an administrator to monitor the progress of the various school subjects. Similarly, the functionality "F4: Absence statistics per student" is performed by the administrator and the student each for its own purpose. The functionality "F2: Student Online Payment" is done exclusively by the student. Both functionalities "F5:
  • 9. Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45 www.ijera.com 41 | P a g e Accounting hourly volume per subject" and "F6: Accounting hourly volume per professor" are performed by the administrator or by the EGA users to control school services. Both of these functionalities are realized by the third (C) and the fourth (D) variants of RVC1. In general, a school does not wish to share with its competitors that it may specify or can be defined as the schools of same type (primary school, middle school, high school, vocational training school, college ...) from the same town. Figure 6. Configuration Template achieving functionalities Table 2. Deployment Requirements Expressed By The Six Tenants Concerning The Six Application Functionalities Feature Variant Sc1 Sc2 Sc3 Sc4 Sc5 Sc6 F1 B, F, H DSWAny DSW(Sc3) DSW(Cp, Sc6) DSW(P) DSW(Sc3) SWAny F2 G DSWAny SWJ(P) ---------- ---------- ---------- SWAny F3 A, E, K DSWAny ---------- DSW(Cp) SWJ(P) ---------- SWAny F4 A, E, J DSWAny ---------- DSW(Sc4) SWJ(P) DSW(Sc2) SWAny F5 C DSWAny ---------- ---------- ---------- ---------- SWAny F6 D DSWAny DSW(Cp) DSW(Sc6) SWJ(P) DSW(Cp) SWAny Also a school may wish to share instances with its partners to collaborate in their work. The partners of a school are, in general, schools of the same group of schools located in other cities, in addition to schools in partnership mentioned by the school tenant of the application. The schools of the same group may, for example, wish to share the instance of the component "Absences Statistics" to compare and analyze the results. On the other hand, schools have to share instances of the component "Schedules" with the EGA to enable it to monitor schools through both F5 and F6 functionalities accounting the hourly volumes. The application used by the EGA may be different from those used by schools (less functionalities), but it must at least contain the component "Schedules". Application tenants schools express their deployment requirements on sharing a specific application functionality. Tenants expression of deployment requirements concerning application functionalities is technically translated in deployment requirements concerning variants of application RVCs. According to Competitors and Partners definitions mentioned previously, the relationships between the six private schools tenants of the application listed in Table 1 are: Sc1, Sc2, and Sc3 are competitors; Sc2, Sc4, and Sc5 are partners; Sc5 and Sc6 are competitors. Tenants deployment requirements concerning the illustrating example are presented in Table 2. Each tenant expresses its requirements for each functionality, otherwise it means that the tenant has no problems to share with other tenants. Thus, the empty cells of the table take the default value, which is SWAny. The initial step is to translate requirements about functionalities to requirements about RVCs variants. Using the transition rules cited in the previous chapter and detailing lists of tenants partners and competitors, we pass from Table 2 to Table 3 which includes four tables each for a RVC.
  • 10. Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45 www.ijera.com 42 | P a g e Table 3. Deployment Requirements Concerning Application Rvcs Variants RVC Variant Sc1 Sc2 Sc3 Sc4 Sc5 Sc6 1 A DSWAny SWAny DSW(T1,T2,T4) DSW(T2,T5) DSW(T2) SWAny B DSWAny DSW(T3) DSW(T1,T2,T6) DSW(T2,T5) DSW(T3) SWAny C DSWAny SWAny SWAny SWAny SWAny SWAny D DSWAny DSW(T1,T3) DSW(T6) SWJ(T2,T5) DSW(T6) SWAny 2 E DSWAny SWAny DSW(T1,T2,T4) DSW(T2,T5) DSW(T2) SWAny F DSWAny DSW(T3) DSW(T1,T2,T6) DSW(T2,T5) DSW(T3) SWAny 3 G DSWAny SWJ(P) SWAny SWAny SWAny SWAny H DSWAny DSW(T3) DSW(T1,T2,T6) DSW(T2,T5) DSW(T3) SWAny 4 J DSWAny SWAny DSW(T4) SWJ(T2,T5) DSW(T2) SWAny K DSWAny SWAny DSW(T1,T2) SWJ(T2,T5) SWAny SWAny Figure 7. Deployment information graph concerning the RVC1 resulting from the use of our algorithm To simplify the illustration of our algorithms, we focus on a single RVC - the same work is done for the other RVCs - and we will just give the results for the other RVCs. So, for the illustration of the different remaining steps of the algorithm, we consider the first component of Fig. 5, the RVC1 named "Schedules". This component has four variants. The framed portion of Table 3 shows requirements concerning variants of RVC1. We take this portion as input of our algorithm, it is the Table R. The algorithm deduces the matrix G. Fig. 7 shows the numerical values of G elements as well as its graphical representation. Figure 8. Inverse graph of deployment information graph concerning the RVC1 The next step is to inverse the graph G to obtain the graph G '. The resulting inverse graph is shown in Fig. 8 in the form of a numerical matrix and in the form of an Undirected Edge Labeled Graph. The final step is to apply Algorithm 3 to color the inverse graph. The algorithm takes as input the matrix G' presented in Fig.8 and gives as output the matrix D de dimension (6 x 4). The result obtained by the application of the Algorithm 3is presented in Fig. 9. We have the information for each tenant which RVC instance should get according to each variant. Figure 9. Output of Algorithm 3 application From Algorithm 3 output we deduce the optimal distribution of RVC1 instances exposed in Table 4. Each number from Fig. 9 refers to an instance, for example, instance number 1of RVC1 must be given to tenant Sc1 only and according to all variant. Table 4. RVC1 instances distribution resulting from the algorithm Instance I1 I2 I3 I4 Variant A Sc1 Sc2, Sc4 Sc3, Sc5, Sc6 ---- B Sc1 Sc2, Sc5, Sc6 Sc3, Sc4 ---- C Sc1 Sc2, Sc3, Sc4, Sc5, Sc6 ---- ---- D Sc1 Sc2, Sc4, Sc5 Sc3 Sc6
  • 11. Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45 www.ijera.com 43 | P a g e As regards the other RVCs, instances distribution resulting from the application of our algorithms is presented in Table 5. Only three instances are needed for RVC2 and RVC4. And a more instance is necessary for the RVC3 but only according to variant H. So, for the six tenants, we only need four instances to respect all tenants requirements about deployment and sharing functionalities. Table 5. RVCs instances distribution resulting from algorithms application RVC Variant Instance I1 I2 I3 I4 RVC1 A T1 T2, T4 T3, T5, T6 ---- B T1 T2, T5, T6 T3, T4 ---- C T1 T2, T3, T4, T5, T6 ---- ---- D T1 T2, T4, T5 T3 T6 RVC2 E T1 T2, T4 T3, T5, T6 ---- F T1 T2, T5, T6 T3, T4 ---- RVC3 G T1 T2, T5 T3, T4, T6 ---- H T1 T2, T4, T6 T3 T5 RVC4 J T1 T2, T3, T6 T4, T5 ---- K T1 T2, T4, T5 T3, T6 ---- VII. RELATED WORK Several works have been performed to address the realization and variability of Multi- tenancy systems in general and Multi-tenancy SaaS applications in particular. In [22], the authors propose a SaaS customization policy as well as a supporting framework that is realized through a design-time tooling and a run-time environment. However, this work mainly focuses on the unique issues in service customization for a given set of requirements. Reference [23] is an example of several works that addresses the challenge of introducing flexibility into Multi-Tenancy applications. Its authors discus the configuration issues and challenges related to it, and propose a competency model and a methodology framework that both aim to support SaaS providers in planning and evaluating their configuration and customizing strategies. In [24], the authors use a directed hypergraph based service model to represent hierarchical services and Multi-Tenancy applications. Based on these graphs, it is possible to represent dependencies between services and application structures from which Multi-Tenancy applications can be constructed fulfilling customer requirements. Several research works have been performed in the context of architectural patterns for developing and deploying customizable multi-tenant applications for Cloud environment. Several approaches from those - cited below - was studied and compared in Table 6. The comparison is based on common characteristics shared by the studied approaches. Approach A: (Composite as a Service (CaaS) [1][25]) show how applications built of components, using different Cloud service models, can be composed to form new applications that can be offered as a new service. Approach B: (Matchmaking of IaaS Offers Leveraging Linked Data [2][26]) present models of Expressive Search Requests and Service Offer Descriptions allowing matchmaking of highly configurable services that are dynamic and depend on request. Approach C: (Service line engineering [3]) present an integrated service engineering method, that supports co-existing tenant-specific configurations and that facilitates the development and management of customizable, multi-tenant SaaS applications. Approach D: (Mixed-tenancy Systems [19]) addresses the deployment variability based on the SaaS tenants requirements about sharing infrastructure, application codes or data with other tenants. It proposes a hybrid solution between multi- tenancy and simple tenancy. The new notion brought by our approach and that is not proposed by the others approaches is the roles accessibility based on the concept of Multiview. All cited approaches aim to improve flexibility and reusability in their ways. To exploit economies of scale some approaches rely on the multi-tenancy, we do the same in our approach but in addition we benefit from the use of Multiview notion to exploit more and more economies of scale.
  • 12. Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45 www.ijera.com 44 | P a g e Table 6. A Comparative Study On Customizable Approaches For Cloud Environment Approaches Composite as a Service Approach Matchmaking of IaaS Offers Leveraging Linked Data Approach Service line engineering Approach Mixed- tenancy Systems Approach Our Approach Cloud application area SaaS IaaS, Service Computing SaaS SaaS SaaS Variability -Functional -Deployment Deployment Functional -Deployment -Functional -Functional -Deployment Accessibility by roles Not proposed Not proposed Not proposed Not proposed Use of Multiview concept Flexibility Dynamically scale based on customer demand Service consumer might specify a flexible search request using enumerations and ranges Use of Service line and Workflows Flexibility to use depending to the tenant using the application Flexibility according to tenants, and flexibility according to enabled view Reusability Use of component- based software Service Variant Hierarchy promotes reuse Modular middleware layer Use of application component Use of RVCs Economies of scale Use of highly flexible templates enabling increasing customers base Not proposed Application- level multi- tenancy Mixed tenancy (hybrid solution between multi- tenancy and simple tenancy) - Multi- tenancy - Multiview notion VIII. CONCLUSION Flexibility and reusability are challenging issues for multi-tenancy SaaS applications. In this regard, our user-aware SaaS approach consists in integrating two types of variability to create a more flexible and reusable SaaS environment while exploiting economies of scale and avoiding the problem of tenants hesitation about sharing with others. In this context, this paper addresses the algorithmic part formalization, which aims to compute a valid and optimal RVC instances distribution on tenants while respecting their deployment requirements. For this purpose, we first presented the context and motivations of the problem. Then, we presented our User-Aware SaaS Approach. Then, we treated the formalization of our approach using some mathematics concepts. Finally, to illustrate our model we applied our algorithm to a case study. As future work, we think about projecting our approach in the domain of Model- driven engineering for a more modern and more general vision. REFERENCES [1]. R. Mietzner, A method and implementation to Define and Provision Variable Composite Applications, and its Usage in Cloud Computing, doctoral diss., Stuttgart University, 2010. [2]. M. Zaremba, T. Vitvar, S. Bhiri, W. Derguech, and F. Gao, Service Offer Descriptions and Expressive Search Requests - Key Enablers of Late Service Binding, Proc. 13th International Conference on E-Commerce and Web Technologies (EC-Web), Vienna, Austria, 2012, 50-62. [3]. S. Walraven, D. V. Landuyt, E. Truyen, K. Handekyn, and W. Joosen, Efficient customization of multi-tenant Software-as- a-Service applications with service lines, Journal of Systems and Software, vol. 91, 2014, 48-62. [4]. M. Aiello, P. Bulanov, and H. Groefsema, Requirements and tools for variability management, Proc. the 2010 IEEE 34th Annual Computer Software and Applications Conference Workshops (COMPSACW '10), Washington, DC, USA, 2010, 245-250. [5]. M. A. Iqbal, A. M. Zaidi, and S. Murtaza, A new requirement prioritization model for market driven products using analytical hierarchical process, Proc. DSDE’10, IEEE, Feb. 2010, 142-149. [6]. K. C. Kang, S. G. Cohen, J. A. Hess, W. E. Novak, and A. S. Peterson, Feature- oriented domain analysis (FODA) feasibility study, Technical report, CMU/SEI TR-21, USA, Nov. 1990. [7]. K. C. Kang, S. Kim, J. Lee, K. Kim, G. J. Kim, and E. Shin, FORM: A feature- oriented reuse method with domain-specific
  • 13. Houda Kriouile. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 12, ( Part -3) December 2016, pp.33-45 www.ijera.com 45 | P a g e reference architectures, Annals of Software Engineering, vol. 5, 1998, 143-168. [8]. M. Erwig, and E. Walkingshaw, Variation programming with the choice calculus, Generative and Transformational Techniques in Software Engineering, Springer-Verlag Berlin Heidelberg, 2012, 55-100. [9]. I. Trummer, Cost-Optimal Provisioning of Cloud Applications, doctoral diss., University of Stuttgart, Faculty of computer science, Feb. 2010. [10]. Edsger W. Dijkstra, Springer-Verlag New York (Ed.), Selected Writings on Computing: A Personal Perspective, chapter EWD 447: On the role of scientific thought (1974), New York, USA, 1982, 60- 66. [11]. S. Creff, Une modélisation de la variabilité multidimensionnelle pour une évolution incrémentale des lignes de produits, doctoral diss., University of RENNES 1, Decembre 2013. [12]. IEEE, Ieee recommended practice for architectural description of software intensive systems. IEEE Std 1471-2000, pages i-23, 2000. [13]. P. Kruchten, The 4+1 view model of architecture. IEEE Software, vol. 12, November 1995, 42-50. [14]. C. Nentwich, W. Emmerich, A. Finkelstein, and E. Ellmer, Flexible consistency checking, ACM Trans. Softw. Eng. Methodol., 12(1), January 2003, 28-63. [15]. L. Debrauwer, Des vues aux contextes pour la structuration fonctionnelle de bases de données à objets en CROME, doctoral diss., Laboratoire d'Informatique Fondamentale de Lille I, Lille, décembre 1998. [16]. H. Tran-Nguyen, View-Based and Model- Driven Approach for Process-Driven, Service-Oriented Architectures, doctoral diss., Vienna University of Technology, 2009. [17]. E. Dikanski, and S. Abeck, A View-based Approach for Service Oriented Security Architecture Specification, Proc. the 6th International Conference on Internet and Web Applications and Services, 2011. [18]. NIST, Definiton of Cloud Computing - National Institute of Standards and Technology, Gaithersburg, MD, 2009. [19]. S. T. Ruehl, Mixed-Tenancy Systems A hybrid Approach between Single and Multi- Tenancy, doctoral diss., Department of Informatics, Clausthal University of Technology, June 2014. [20]. C. P. Bezemer, and A. Zaidman, Multi- tenant SaaS applications: maintenance dream or nightmare?, Proc. the 4th International Joint ERCIM/IWPSE Symposium on Software Evolution (IWPSE- EVOL), Antwerp, Belgium, 20-21 September 2010, 88-92. [21]. R. M. Karp, Reducibility among combinatorial problems, Tech. rep. Springer, 1972, 85-103. [22]. K. Zhang, X. Zhang, W. Sun, H. Liang, Y. Huang, L. Zeng, and X. Liu, A Policy- Driven Approach for Software-as-Services Customization, Proc. the 9th IEEE International Conference on ECommerce Technology and the 4th IEEE International Conference on Enterprise Computing, E- Commerce, and E-Services, 2007, 123-130. [23]. W. Sun, X. Zhang, C. J. Guo, P. Sun, and H. Su, Software as a Service: Configuration and Customization Perspectives, Proc. Congress on Services Part II, IEEE, Beijing, China, 2008, 18-25. [24]. R. Wang, Y. Zhang, S. Liu, L. Wu, and X. Meng, A Dependency-Aware Hierarchical Service Model for SaaS and Cloud Services, Proc. IEEE International Conference on Services Computing (SCC), July 2011, 480-487. [25]. C. Fehling, and R. Mietzner, Composite as a Service: Cloud Application Structures, Provisioning, and Management, It - Information Technology Special Issue: Cloud Computing, April 2011, 188-194. [26]. M. Zaremba, S. Bhiri, T. Vitvar, and M. Hauswirth, Matchmaking of IaaS cloud computing offers leveraging linked data, Proc. the 28th Annual ACM Symposium on Applied Computing (SAC), New York, USA, 2013, 383-388.