Literature Reviews
PART
Agile Architecting in Specific Domains
3
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
This page intentionally left blank
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
CHAPTER
Architecture-Centric Testing for Security: An Agile Perspective
10 Sarah Al-Azzani, Ahmad Al-Natour, and Rami Bahsoon
University of Birmingham, Birmingham, UK
CHAPTER CONTENTS
10.1 Introduction ................................................................................................ 245
10.2 Research Motivation .................................................................................... 246
10.3 Overview of Limitations in Current Post-Implementation Methods ................... 248
10.3.1 Functional Testing of Security Apparatuses ................................ 248
10.3.2 Penetration Testing .................................................................. 248
10.3.3 Threat Modeling ...................................................................... 249
10.3.4 Discussion .............................................................................. 250
10.4 Introducing Implied Scenarios ...................................................................... 251
10.4.1 Detecting Implied Scenarios ..................................................... 251
10.5 Approach .................................................................................................... 253
10.5.1 Stage 1: Implied Scenario Detection ......................................... 253
10.5.2 Stage 2: Review of Detected Implied Scenarios .......................... 253
10.5.3 Stage 3: Performing Live Security Testing .................................. 254
10.6 The Agility of the Approach .......................................................................... 254
10.7 Identity Management Case Study .................................................................. 255
10.7.1 Case Study Background ............................................................ 256
10.7.2 Approach and Results .............................................................. 256
10.8 Further Discussion ....................................................................................... 260
10.9 Agile Development, Architecture, and Security Testing .................................. 263
10.10 Related Work .............................................................................................. 264
10.11 Conclusion .................................................................................................. 265
10.1 INTRODUCTION The use of software system architecture in security testing can play a vital role in
developing secure systems [1]. Its abstraction unnecessarily hides details about
the implementation, allowing testers to focus their attention on design choices to
reveal design vulnerabilities. As for compositional security, executable architectures
allows developers to exercise the integration of system components before they are
245
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
built to iteratively refine ambiguous requirements, search for hidden behavior caused
by composing functional requirements, and generate test cases at early stages. Unfor-
tunately, the importance of architecture-level testing for security to defend against
design vulnerabilities that are believed to be the hardest type to find and correct
and are the most critical to address has been recognized only recently [2]. On the same
level, there is an increasing interest in recognizing the role of architecture in agile
development [3,4] and the possibilities of merging both approaches to achieve adap-
tation and anticipation of requirements without losing the speed of delivery.
In this chapter, we discuss the importance of architecture in agile development sys-
tems and present the application of incremental architecture-level testing for securing
systems developed using agile principles [5]. This approach uses the concept of
implied scenarios [6] that arise from the composition of requirement scenarios to
search for hidden vulnerabilities in the system. We show how the architecture can
be test-driven, incremental, and adaptive to new and incomplete requirements. We
stand by the argument that the architecture can be used to allow for co-processing
of design and testing and that it does not require detailed design but merely relies
on the functionality. Drawing on a nontrivial case study of identity management sys-
tems, we demonstrate how the integration of architecture and agile processes enables
software developers to focus on security as a nonfunctional requirement while strongly
calling for the participation of stakeholders to verify the correctness of requirements.
In the following sections, we discuss the motivation of the work by briefly
reviewing existing security testing methods, their drawbacks, and the need for
design-specific testing methods. We introduce the concept of the implied scenario
and its role in our approach. We then discuss the agility of the approach and its appli-
cation in a case study. Finally, we summarize the chapter by recalling the coexistence
of architecture and agile development.
10.2 RESEARCH MOTIVATION Security testing is fundamentally different from traditional testing because it empha-
sizes what an application should not do rather than what it should do. Therefore we
distinguish between positive requirements, such as disabling user accounts after
three unsuccessful login attempts, and negative requirements, such as the system pre-
vents unauthorized users from accessing system resources [7]. Unlike functional
testing, security testing focuses more on negative behavior (i.e., any undesirable
behavior that affects the security of the system, such as breaching confidentiality
of data). To apply the standard testing approach to negative requirements, one would
need to create every possible set of negative conditions that tests the requirement,
which is infeasible because one cannot reliably enumerate all the possible ways in
which a negative requirement can be tested. It is also challenging because it is
not always possible to map a requirement to a specific software artifact when the
requirement is not implemented in a specific place. Since negative requirement
testing creates a challenge for traditional testing, one needs to explore new testing
246 CHAPTER 10 Agile Architecture for Security Testing
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
methodologies that highlight the presence of negative behavior and how it manifests
in the system to guard against its occurrence.
The challenge in achieving compositional security is that security is a global
property, yet many big systems are built using smaller components; thus, most vul-
nerabilities arise from unexpected interactions between different system components
[8]. When components are put together, predicting the consequences of their com-
position is difficult [9]. These compositional consequences are referred to as implied
scenarios [10]; they occur when different functionalities are composed together.
Implied scenarios can model positive consequences or a design vulnerability that
combines several legitimate behaviors to produce emergent abusive behavior.
In general, a vulnerability is a weakness in the security system that might be exploited
to cause loss or harm [11]. Often, vulnerabilities are characterized by the result of
their exploitation with respect to security properties [12], such as breach of confiden-
tiality, loss of availability, and data tempering. Design vulnerabilities are a subtype
of vulnerabilities that are associated with design defects causing security violations;
avoiding design-level vulnerabilities is among the most important challenges faced today by software developers [13]. Their fundamental importance lies in the fact that
even the most secure implementation cannot defend against defective design. In a
recent case study, a design vulnerability allowed ciphered text to be accessible to
the user to provide a sense of data security. This was identified as a major design
vulnerability because it allowed the user to cryptanalyze the ciphered text to identify
the cryptographic key used during encryption. These design vulnerabilities cannot be
easily identified using implementation-level testing methods; they require a design-
specific testing methodology to be detected. Thus, the role of architecture manifests
itself such that as requirements are elicited, one can execute their composition to pre-
dict the consequences of the composition and search for incompatibilities between
requirements. We define architecture as “the selection of the structural elements and
their interfaces by which the system is composed together with their behavior as
specified in the collaboration among those elements, and the composition of these
elements into progressively larger subsystems” [14]. And since agile systems a are
built incrementally, applying iterative testing based on these requirements can speed
up deliveries by addressing compositional faults before the system is built. These
requirements can be documented in the agile development lifecycle to enhance
communication between team members and to verify the requirements with stake-
holders [3].
In this chapter, we try to answer the following questions:
• Why can’t current testing methodologies fulfill the role of security testing?
• Can we combine architecture with agile development such that both support each
other to reduce conflicts?
• How can implied scenarios be aligned with agile practices to architect secure
software systems?
a We refer to systems that are built using an agile methodology as “agile systems.”
24710.2 Research Motivation
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
10.3 OVERVIEW OF LIMITATIONS IN CURRENT POST-IMPLEMENTATION METHODS The overall goal of security testing is to reduce vulnerabilities within a software
system [15]. A vulnerability allows an attacker to violate the integrity of the system.
When an attack is successful, the security of a system is said to be compromised.
In past years, there was much focus on implementation vulnerabilities, such as
buffer-overflows, invalid inputs, and general code-level testing, while very little
attention was paid to design vulnerabilities [9]. We summarize the current state of
security testing to motivate the need for further research to address its limitations.
Current security testing approaches can be summarized under three main headings.
10.3.1 Functional testing of security apparatuses The most basic premise behind traditional functional testing is that it is meant to
validate that the software fulfills its requirements and it functions as intended. Func-
tional security testing tests the security mechanisms implemented in the system (such
as authorization check-points) to verify that it behaves as expected. This is largely
based on security software requirements. For example, testing for a requirement that
states “a login page must only verify correct passwords” may be tested with an incor-
rect password to increase confidence that the authorization mechanism behaves as
expected; however, this testing does not guarantee that an attacker cannot brute force
the system and succeed at logging in. Verifying the correct behavior of the system
does not guarantee the absence of undocumented behaviors; it only verifies that the
system behaves according to the specification.
Requirements-based testing is an example of functional testing [16], where test
cases are associated with requirements to ensure that all requirements are covered.
In security testing, the requirements are associated with the security properties of the
system, such as confidentiality and integrity of data. Functional testing is also done
via specification-based testing [17,18] where test cases are derived automatically
from specifications, such as interfaces. There is also code-based testing [19] that
aims to uncover code-based vulnerabilities, such as buffer-overflows.
A general problem associated with functional testing is that it addresses what the
program should do; in other words, it does not aim to investigate what the application
may still do beyond the requirements or specifications. In security testing, it is impor-
tant to test for situations that are not covered in the specifications. We believe that
testing functionality is significantly different from testing for security. This is
because security, unlike functionality, is not an externally observable property,
and hence, one cannot easily predict its results or consequences.
10.3.2 Penetration testing Penetration testing takes the form of black-box testing of the system using a prede-
fined set of test cases that represent known exploits. It is performed using either
248 CHAPTER 10 Agile Architecture for Security Testing
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
existing tools [20,21] or by hiring security experts that try to attack the system and
exploit any potential weaknesses in the system. Although this approach is attractive,
its main problem with respect to agile development is that it is not design-specific
testing; testers run the same set of test cases on different systems and rely on the fact
that developers often make similar mistakes and repeat them. In addition, penetration
testing—whether done by hiring a red-team or by using vulnerability-scanning
tools—addresses known attacks, but determined attackers often look for novel ways
of attacking a system. The system’s response to such attacks is observed and any
inappropriate behavior is noted. This process requires knowledge of both the desired
behavior and certain implementation details that are the source of vulnerabilities
[22]. Although redesigning a feature in agile development might not be expensive
to perform, patching a system is cheaper and is likely to be considered before rede-
sign. This step attempts to hide the symptoms of the problem as opposed to fixing it,
which may bring many issues into the system such as writing a vulnerable patch or
discovering new symptoms of the problem.
Security tools used in penetration testing, such ISS Scanner [23] and Cybercop
[24], are generally limited in scope. They mainly address network security attacks,
and are not flexible enough to allow testers to write custom attacks. Another problem
with existing tools is that they can only be used after the system is built. In addition,
most tools address IP networks; thus, a company wishing to test a different type of
networks is required to purchase different tools as required. Although these “bad-
ness-ometers” [25] are useful in displaying the negative state of the system, espe-
cially when the system configuration is well understood, they are not useful in
nonstandard applications, and hence should not be the only way of testing an appli-
cation. Other forms of security tools are static analysis tools that address code
vulnerabilities, such as buffer-overflow. Both are very limited in scope since
dynamic testing is also important, and both have high false-positive error rates.
10.3.3 Threat modeling Threat modeling [26–29] is a methodical review of a system design or architecture to
discover and correct design-level security problems. The review process determines
an adversary’s most likely courses of action in order to develop appropriate
responses. It requires a clear understanding of the assets to be protected, the threat’s
objectives, and any factors in the environment that could influence the threat’s capa-
bility or decisions. Such information might not be present during the initial design of
the agile system. This process results in a threat model that describes the potential
attacks on the system to be used to understand how attacks can manifest themselves,
and to evaluate critical decisions that will affect the security posture of the system
[28]. Its difficulty lies in the fact that a change made to the design requires reanalysis
of the system’s security status. Thus, in development cycles where requirements
might not be fully stated initially, constant changes might leave the models redun-
dant. Threat modeling addresses designing a secure system—not quite for the testing
phase, although the list of potential vulnerabilities may still be used as test cases.
24910.3 Overview of Limitations in Current Post-Implementation Methods
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
10.3.4 Discussion To summarize the common problems with respect to agile development is agile
development advocates testing first with a focus on implementation. Such tests
are likely to only reveal implementation vulnerabilities, and overlook design vulner-
abilities. Thus, one needs a testing methodology that tests the architecture design
while adapting to changes in the requirements iteratively. In addition, testing for
security cannot be fully automated; such attempts have failed, except in a few cases
[30]. One cannot replace human expertise, because hacking is a creative process, and
creativity cannot be easily automated. Moreover, each application has its own
design, and each design has its own weaknesses and needs to be tested individually,
while current methods use predetermined vulnerability databases to discover known
vulnerabilities in the system. However, security testing is motivated by addressing
undocumented assumptions and areas of particular complexity to determine how
software can be compromised [31]. Existing techniques fail to address implicit
assumptions, mainly because testers rely on the system specifications and code
[15]. Developers build a certain mental view of the software, which is limited
because the software is too complex for a human to carry a complete, detailed mental
picture of it. It is then the tester’s responsibility to violate these assumptions, and
thereby try to uncover vulnerabilities. Security testers must consider actions that are
outside the range of normal activity and might not even be regarded as legitimate tests
under other circumstances. Furthermore, all existing approaches rely on the tester’s
expertise to craft security test cases. This is often problematic because testers are
required to think like attackers, and because security test cases don’t often cause direct
security exploits, which presents an observability problem. Important test cases might
be missed because the application appeared to behave as it should, with disregard to the
additional behaviors that appears from the composition of the correct behavior.
Achieving security requires a tester to test like a detective, following clues to
insecure behavior and then exploring potential vulnerabilities [32]. This is because
attackers intentionally probe unspecified behaviors in the system. They attempt to
make the application behave in an unanticipated manner, and then determine the
attacks associated with that behavior. It is important to observe that detecting inse-
cure behavior will speed up the process of detecting vulnerabilities in a systematic
fashion. The remaining question to be addressed is, “How do we determine insecure
behavior in the system, while still maintaining observability of the problems asso-
ciated with the behavior, and also target implicit assumptions related to the design
of the system?” In this chapter, we try to move toward this goal using architecture-
level testing. We define vulnerability testing in our context as testing the system for
harmful additional behavior not directly specified in the system model.
The inherent characteristics of agile software development serve testing for secu-
rity well in that agility promotes flexibility through its support of decomposition and
incremental requirements. This is believed to assist testing for security in two ways:
1. It allows security testers to focus on emergent compositional behavior; it is crit- ical to gather understanding of all possible behaviors that can be triggered by
attackers.
250 CHAPTER 10 Agile Architecture for Security Testing
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
2. Testing partial design supports focusing on more problematic areas in the code, such as the meeting points of areas with high and low security status. Areas of
high security often require higher privileges, where an authorization point or
other security feature might be installed; a vulnerability might occur if confiden-
tial information flows into nonsecured areas. Thus, the process eases the detec-
tion of vulnerabilities through continuous inspection of partially-related code to
reveal potential threats in critical areas.
10.4 INTRODUCING IMPLIED SCENARIOS Since security testers are required to consider actions that are outside the range of
normal activity and specification, we discuss our vision of how testers can use
existing methods to look beyond the specifications. In this section, we introduce
the concept of implied scenarios and their role in detecting compositional security
flaws.
Scenarios define an ordered sequence of events; in software architecture, scenar-
ios have been employed in modeling architectural properties [33,34] and in identi-
fying component interactions [35]. Each scenario models a partial behavior between
components, and thus, the composition of all scenarios is likely to exhibit more
behaviors than described by the specified scenarios. These undocumented behaviors,
known as “implied scenarios,” may arise as a result of components having only local
views of the execution [10]. An implied scenario may be an acceptable scenario that
has been overlooked, indicating incomplete specifications. Alternatively, implied
scenarios may represent an unacceptable behavior that may present attackers with
the opportunity for a potential exploit. The notion of implied scenarios was first
introduced in [10] for a restricted scenario language. The work is limited to a set
of message sequence charts (MSCs) that specify a finite set of system behaviors. This
work has been extended in Ref. [36] to provide a more expressive scenario language
that allows for an infinite number of system behaviors. But then, how are implied
scenarios detected?
10.4.1 Detecting implied scenarios The extension provided in Ref. [36] introduced an algorithm that analyzes scenarios
modeled on MSC specifications. These scenarios consist of message events sent and
received between components, which are linked together according to a directed
graph (high-level MSC (hMSC)) that defines possible continuations/loops between
scenarios. With these two inputs, the algorithm performs the following steps:
1. Breaks down the continuation/loops of scenarios into several individual label transition systems (LTSs); one component model is synthesized at a time, repre-
senting its behavior across all scenarios. This is accomplished by (a) collecting
the component behavior in all MSCs, and (b) linking all its behavior according to
the hMSC.
25110.4 Introducing Implied Scenarios
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
2. Uses the collection of component LTS models, to compose an architecture LTS model in parallel by (a) mapping nodes to behavior and to their adjacent nodes,
and (b) then connecting nodes according to the hMSC. This architecture model
takes into account the behavior described by the MSC scenarios (thus preserving
the components structures and interfaces) and the global behavior described by
the hMSC. The joint behavior is the result of all LTSs executing asynchronously
while synchronizing on all shared messages. Thus, any of the LTSs can perform a
transition independently of the other LTSs, as long as the transition label is not
shared with the other LTSs [36]. Because non-shared transitions can be performed
independently across different LTSs, the notion of the architecture is weak
such that it allows for additional unspecified behaviors to emerge that are valid
paths in the hMSC along with exhibiting all traces specified by the MSCs.
3. Builds a new trace model that captures exactly the set of traces defined by the MSC semantics to compare how close the architecture model is to the global
behavior required. Then, any trace that is not specified in the trace model would
correspond to an implied scenario. This trace model is built using a coordinator
component that is responsible for allowing/disallowing components to move
from one MSC to another. This way, components can be guaranteed not to follow
different sequences of MSCs.
4. Compares whether the architecture model exhibits more traces than the trace model, given the traces of both models. This is done by (a) defining the trace
model as a safe property that accepts traces that behave correctly according to
the MSCs and hMSC specifications, and (b) checking whether the architecture
violates the property. Violations are then reported as implied scenario MSCs.
Impliedscenariosarisebecausethescenario-basedmodelingofthesystemdescribes
the desired global behavior, whereas in reality each component in concurrent state
models acts locally based on local information. These counter-example traces may cor-
respond directly to attack scenarios, where a security property is violated and which can
be discovered using automated verification techniques to identify scenarios where
security-related properties are violated. In contrast to previous approaches that mainly
address well-known vulnerabilities, our approach benefits from existing model-based
techniques to automatically seek out and identify vulnerabilities in the design itself.
For formal definition of implied scenarios, please see Ref. [36].
We introduced the application of implied scenario detection to determine
unspecified behavior in the architecture because implied scenarios can address the
following issues:
1. Relying on the architecture of the system allows us to address implicit assumptions made by designers regarding the behavior of system components. In the real
world, a designer might explicitly specify that an application performs scenarios
X, Y, and Z. As these scenarios are composed together, a fourth scenario,
W, might arise. Such unspecified scenarios, namely W, might result in a security
failure if exploited by an attacker. Thus, it is important to discover all possible
behaviors of the system and decide whether the behavior is legitimate or not.
252 CHAPTER 10 Agile Architecture for Security Testing
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
2. Existing tools for detecting implied scenarios allow us to observe the side effects of the implied scenario on the system, and determine how these scenarios can be trig-
gered by attackers (vulnerabilities), and more importantly how the execution of
these scenarios can affect the security of the system before building the system.
3. The detected implied scenarios can then be used as test cases to aid security testers in determining important test cases. Since implied scenarios allow us to explore
unspecified behaviors based on the assumptions made in the system architecture,
we believe such application in security testing will improve the process of detecting
threats and violations of security assumptions within the architecture.
10.5 APPROACH It is essential to acquire full knowledge of possible behaviors of a system to ensure
that the system behaves as securely as required, and that any additional behaviors do
not violate the desired global security behavior. Briefly, our notion of architecture
consists of the following:
• The component structure: which consists of a list of all components that appear in the modeled scenarios and their composed behavior
• The component interface: where, given a component c of some scenario, the interface of c is determined by the set of messages that are sent and received
by this component
Our proposal for using implied scenarios consists of three main stages.
10.5.1 Stage 1: implied scenario detection A prerequisite for detecting implied scenarios is modeling the high-level design of the
system in MSC specification language. These scenarios reflect the high-level desired
functionality/requirements. Once the requirement scenarios are determined, they are
fed into the Labelled Transition System Analyser - Message Sequence Chart
(LTSA-MSC) tool with a roadmap for continuation (hMSC). When the scenarios
are composed together to create the architecture model, we start collecting all detected
implied scenarios without regard to which of these scenarios are security threats. By
using this information, which is generated based on the system design, we provide
assurance on the security status of the system itself and the design choices, rather than
the security mechanisms implemented. At this stage, new requirements can be added
and removed, and only the hMSC needs to be changed; thus, adding and removing
requirements is a straight-forward task. The system then builds incrementally as
new requirements are added. In addition, models of new requirements and detected
implied scenarios can be used to verify behavior with the stakeholders.
10.5.2 Stage 2: review of detected implied scenarios The focus is on investigating the security breaches of the detected implied scenarios
against all categories of attacks. This is because an implied scenario may fall into
25310.5 Approach
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
several categories of attacks, and hence, may be exploited in different ways. We do
not impose restrictions on which classification scheme is used; however, we base our
classification scheme on Howard and Longstaff’s published scheme [37]. The aim of
their taxonomy is to define a common language for computer security incidents. This
taxonomy is also beneficial because it classifies a range of types of people who may
launch an attack or invoke a particular malicious behavior. It should be noted that
the purpose of categorizing vulnerabilities is to provide a checklist-based approach
whereby the tester can have reasonable confidence that all potential attack methods/
results have been considered. This in turn provides confidence in the completeness of
the vulnerability analysis process. It also helps us identify the types of attacks detect-
able using implied scenarios, and which architectures are more prone to certain
attacks. Ultimately, the result of the review is to ensure that all detected behaviors
are studied for any potential malicious use. At this stage, detected vulnerabilities
can be communicated across testers and developers in a readable scenario form as
generated by the tool in step 1.
Human involvement is needed primarily to evaluate the security of the detected
implied behaviors and to create test cases to exercise the system. Although it may be
possible to define security properties to fully automate the approach, we believe that
such a step is likely to neglect important implied scenarios that do not violate the
defined security properties.
10.5.3 Stage 3: performing live security testing Any malicious behaviors found in the review process are then used as test cases to
exercise the system’s resistance to these attacks. Because implied scenarios are in the
form of scenarios, performing a security test is relatively straight forward, and is no
different practically from common functional testing. Some calibration might be
needed to perform some of the tests. For example, in order to test whether a race
condition can take place on the system, we might need to perform an extra wait oper-
ation on one of components to allow an event to take place in a certain order; this
does not affect how the system behaves/resists the attack, but is required because race
conditions happen in extremely short time intervals. Testing can begin as soon as
vulnerable implied scenarios are detected, and as the architecture is refined, more
tested cases can be created.
10.6 THE AGILITY OF THE APPROACH For an approach to be consistent with agile principles, it must meet certain criteria to
be integrated in the agile development system. Contrary to what some believe,
requirements do not need to be gathered all up front in one phase; our approach
responds to changes by:
1. Supporting incremental elaboration of requirements by automatically searching for potential requirements; this supports customer collaboration to verify the
validity of detected behavior, as well as prediction of behavior to avoid costly
correction of integration problems.
254 CHAPTER 10 Agile Architecture for Security Testing
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
2. Reconstruction of architecture as new information becomes available to address requirement ambiguities, and to allow stakeholders to periodically see the
progress and make adjustments to the requirements as needed.
With respect to testing, our approach supports test-driven development where the
focus is on reusing and testing the integration of components built iteratively and
ensuring that when components are composed, a correct overall behavior can be
maintained. Figure 10.1 illustrates how the iterative process of our approach maps
to Scrum to produce a working increment of the developed software. The process
starts by first collecting related requirements to be implemented, then prioritizing
these requirements, then composing them incrementally while adding or removing
requirements as the system evolves to produce a working increment of the software.
Test cases can be derived from requirements regardless of the programming lan-
guage or technology utilized, which allows it to be used to test existing systems.
In addition, relying on requirement functionality and behavior helps in achieving
tractability between the code and the architecture, as well as ensuring consistent
understanding between team members.
Finally, the type of documentation required is lightweight, and is essential to
enumerate the requirements in scaled projects.
10.7 IDENTITY MANAGEMENT CASE STUDY In this section, we look at the practical application of implied-scenario-detection
algorithms on two identity-management models designed by a project funded by
Vodafone. The evaluation of the models was conducted as part of masters projects
in security, involving two students over a period of 2 months. During the 2 months,
the students were briefed for 1 h about the use of the LTSA-MSC tool used to detect
FIGURE 10.1
Mapping between the implied scenario detection approach and Scrum.
25510.7 Identity Management Case Study
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
implied scenarios, and how to create MSCs; they were not required to understand what
implied scenarios are, or how they are detected. The students modeled the system in
MSC using the LTSA-MSC tools and all generated implied scenarios were recorded
and evaluated. The use of sequence charts is believed to be one of the most widely used
models in the software industry [38], thus using such models does not introduce an
overhead on the industry to adopt the approach. Another prerequisite for the approach
is basic understanding about security properties, and how they are violated.
10.7.1 Case study background The case study aimed at evaluating two identity management models (device-based
and service-based) [39] implemented in an online bargain shop (OBS) for security
vulnerabilities. Retailers and wholesalers can subscribe to the OBS system in order
to advertise their online products, while buyers can sign up to OBS to browse offer-
ings and search for and buy products. The architecture uses temporary sessions
assigned for every user. The user will access the portal by providing a username
and password, which in turn will provide access to a third party web service (e.g.,
Amazon). Once the user enters the credentials, the portal will forward the request
for authentication to the session generator, which in turn will determine whether
the username and password are valid by comparing them with the values stored in
the user credential database. The desired communication is illustrated in Figure 10.2.
Device-based identity utilizes security credentials on the device to authenticate
with services and uses the identity provider (IdP) to distribute the public key for the
identity and maintains a list of attributes. It introduces a security token, which is sent
to the users’ device for authentication. Security credentials are stored in the device
and are used to identify the service and authenticate the device requesting the service;
thus, “each device maintains its own credentials for the user identity” [39]. The
desired behavior is illustrated in Figure 10.3.
10.7.2 Approach and results Each model contained four legitimate scenarios generated from the code with its
hMSC. We have applied our approach to both models and compared our results with
respect to the following security properties [12]: confidentiality, integrity, authenti-
cation, and availability. As new behaviors were detected using the LTSA-MSC tool,
the developers were involved to decide whether the behavior was positive or not (i.e.,
“Is it a design defect with potential security implications, or is it an undesirable infer-
ence?”). In cases where additional behaviors were positive, they were added to the
model supporting continuous refinement and addition of new requirements. Further
investigation was performed incrementally and iteratively to ensure that additional
behaviors do not cause integration errors.
The device-based model proved to be more vulnerable to security vulnerability
exploitation, since it had a total of three negative implied scenarios and violated the
confidentiality, integrity, and availability requirements. On the other hand, the
256 CHAPTER 10 Agile Architecture for Security Testing
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
User Portal
login
reqAuthentication
authenticate
returnSession
authenticationSuccessful
createSession
authenSession
authenSuccessful
redirect
forwardReq
reqSessionlnfo
sendSessionlnfo
verifySessionlnfo
veriSuccessful
reqUserPolicy
sendUserPolicyForVerification
reqUserCredentials
sendUserCredentials
allowAccess
SessionGe... UserCrede... SessionSt... WebService Policyand... PolicyRep...
FIGURE 10.2
Service-based identity management model for an online shopping system.
2 5 7
1 0 .7
Id e n tity
M a n a g e m e n t C a se
S tu d y
B a b
a r, M
. A ., B
ro w
n , A
. W ., &
M istrik, I. (E
d s.). (2
0 1 3 ). A
g ile
so ftw
a re
a rch
ite ctu
re : A
lig n in
g a
g ile
p ro
ce sse
s a n d so
ftw a re
a rch
ite ctu
re s. P
ro Q
u e st E
b o o k C
e n tra
l <
a o
n click=
w in
d o w
.o p e n ('h
ttp ://e
b o o kce
n tra
l.p ro
q u e st.co
m ','_
b la
n k') h
re f=
'h ttp
://e b o o kce
n tra
l.p ro
q u e st.co
m ' ta
rg e t=
'_ b la
n k' style
= 'cu
rso r: p
o in
te r;'>
h ttp
://e b o o kce
n tra
l.p ro
q u e st.co
m <
/a >
C re
a te
d fro
m h
a rrisb
u rg
-e b o o ks o
n 2
0 2 0 -1
1 -2
4 1
4 :0
1 :3
6 .
Copyright © 2013. Elsevier Science & Technology. All rights reserved.
User Device OBS Idp DataRepos... TrustRoot
use
access
reqAuthentication
accessWithToken
respond
provideToken
storelDofDevice
verifyRequest
verificationSuccessful
reqldentity
FIGURE 10.3
Device-based identity management model for a shopping system.
2 5 8
C H A P T E R 1 0
A g ile
A rc h ite c tu re
fo r S e c u rity
T e stin
g
B a b
a r, M
. A ., B
ro w
n , A
. W ., &
M istrik, I. (E
d s.). (2
0 1 3 ). A
g ile
so ftw
a re
a rch
ite ctu
re : A
lig n in
g a
g ile
p ro
ce sse
s a n d so
ftw a re
a rch
ite ctu
re s. P
ro Q
u e st E
b o o k C
e n tra
l <
a o
n click=
w in
d o w
.o p e n ('h
ttp ://e
b o o kce
n tra
l.p ro
q u e st.co
m ','_
b la
n k') h
re f=
'h ttp
://e b o o kce
n tra
l.p ro
q u e st.co
m ' ta
rg e t=
'_ b la
n k' style
= 'cu
rso r: p
o in
te r;'>
h ttp
://e b o o kce
n tra
l.p ro
q u e st.co
m <
/a >
C re
a te
d fro
m h
a rrisb
u rg
-e b o o ks o
n 2
0 2 0 -1
1 -2
4 1
4 :0
1 :3
6 .
Copyright © 2013. Elsevier Science & Technology. All rights reserved.
service-based model shows only one negative implied scenario which violated the
authentication requirement as presented in Table 10.1.
The implied scenarios found are as follows:
• Implied scenarios 1 and 2: Ambiguous behavior is exhibited when multiple login attempts are carried out instantly. This happens in both models. It indicates pos-
sibilities of brute force attack on the server until a successful login attempt is
made. The architecture does not guard against flooded requests of login attempts.
This could disrupt the availability of the service leading to a denial of service
attack, since no firewall is implemented to block such behavior. This can also
raise an alarm for how the system disposes credentials when the server fails to
respond. A common improper handling of exceptions can leave the credentials
floating in the memory.
• Implied scenario 3: Another possibility is masquerading attack, in which a user attempts to login, and once a successful confirmation is returned, the confirma-
tion is intercepted by an attacker that attempts to replay the confirmation to gain
access to the user’s account. This is modeled in Figure 10.3, where the first part of
the diagram models the legitimate behavior and the second part models the
attempt to access the server using replayed confirmation. Since the models do
not present encryption mechanisms, modification of the credentials may occur,
thus violating the integrity requirement of the model.
• Implied scenario 4: An application with an improper threading mechanism in concurrent applications may face problematic interleavings that return wrong
sessions to the wrong person, granting the user more privileges than they own.
• Implied scenarios 5 and 6: These model positive behaviors; one models a valid request of service after authentication is successful, and one models a login
attempt after authentication is successful (allowing for concurrent access from
different features, and re-verification of authorization).
The amount of effort required to accomplish the study involved learning to use
the tool and modeling the system, which the students reported no difficulty in learn-
ing; by the end of the 1 hour introduction to the tool, the students were able to use it
on their own. The process of modeling the actual identity management models was
Table 10.1 Comparison of Implied Scenario Detection in Service- and Device-Based Models
Total Implied Scenarios
Negative Implied Scenarios
Confidentiality Violation
Integrity Violation
Availability Violation
Authen- tication Violation
Device- based
4 3 Yes Yes Yes No
Service- based
2 1 No No No Yes
25910.7 Identity Management Case Study
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
also straightforward because the developer of the models was present to confirm that
the students’ models were correct before the evaluation took place. Finally, the num-
ber of acceptable implied scenarios were minimal (�2), so the effort required to eval- uate their potential security implication paid off in comparison with the negative
implied scenarios detected (�4) and acknowledged by the developer. It is also worth mentioning that implied scenarios are difficult to detect manually, and thus the time
required to detect them is significantly reduced using automated tools.
Now that we have an overview of potential design vulnerabilities, one can either
refine the code to reflect the architecture to make it more secure and to prevent prob-
lems from occurring (where possible), or one can create concrete test cases that test
the possible consequences of the execution, or increase/decrease the number of
requirements and reevaluate the outcome. This can take place concurrently with
the implementation process. We have looked into refining the service-based model,
for which we have proposed a hybrid model with two-factor authentication. In addi-
tion to securing the model, it aims to decentralize the task of identity management in
general and to distribute the burden of identity management by using both the trust
root (for device identity authentication), and the IdP (for user identity authentica-
tion). Moreover, the use of one-time password (OTP) will provide additional authen-
tication, and its use as an authentication configuration enables our model to support
single sign-on, which in itself reduces phishing attacks and password fatigue. As
Figure 10.5 shows, the IdP will verify the identity of the user and send an acknowl-
edgment back to the session generator. Once the OBS receives the redirect from the
portal, it will forward the request to access the service to the policy and access control
module, which will request the identity of the device from the IdP. The IdP then
sends the identity to the trust root for verification, which in turn will request an
OTP from the server. The server will compute the OTP (using either time-
synchronized functions or mathematical hash functions) and will send it to the device
so the user can log in using the OTP. When the user logs in to the service, the OTP
will be verified by the server and access will be granted.
10.8 FURTHER DISCUSSION We now report on the following criteria:
• Agility of the approach: The approach proved to be flexible in responding to changes involved in the requirements. Its benefits include (1) its support for con-
tinuous evolvement, (2) its ability to improve productivity, since it reduces staff effort and time required to perform integration checks as new requirements are
added, (3) its ability to produce better quality of product, since it targets inspect- ing hidden, potentially dangerous behaviors, and (4) its support for systematic
review of the system. However, once the scenarios are detected, human judgment
is required to determine how the insecure behavior might affect the security of the
system. This guided testing helps identify vulnerable areas for testers to examine.
260 CHAPTER 10 Agile Architecture for Security Testing
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
User
use
reqidentity
verifyRequest
verificationSuccessful
verifyRequest
verificationSuccessful
reqAuthentication
access
use
access
Device OBS Idp DataRepos... TrustRoot
FIGURE 10.4
Potential masquerading attack on the service-based identity management model.
2 6 1
1 0 .8
F u rth
e r D isc
u ssio
n
B a b
a r, M
. A ., B
ro w
n , A
. W ., &
M istrik, I. (E
d s.). (2
0 1 3 ). A
g ile
so ftw
a re
a rch
ite ctu
re : A
lig n in
g a
g ile
p ro
ce sse
s a n d so
ftw a re
a rch
ite ctu
re s. P
ro Q
u e st E
b o o k C
e n tra
l <
a o
n click=
w in
d o w
.o p e n ('h
ttp ://e
b o o kce
n tra
l.p ro
q u e st.co
m ','_
b la
n k') h
re f=
'h ttp
://e b o o kce
n tra
l.p ro
q u e st.co
m ' ta
rg e t=
'_ b la
n k' style
= 'cu
rso r: p
o in
te r;'>
h ttp
://e b o o kce
n tra
l.p ro
q u e st.co
m <
/a >
C re
a te
d fro
m h
a rrisb
u rg
-e b o o ks o
n 2
0 2 0 -1
1 -2
4 1
4 :0
1 :3
6 .
Copyright © 2013. Elsevier Science & Technology. All rights reserved.
User
use
login
authenReq
authenticate
authenReply
redirect
loginUsingOTP
sendOTP
forwardReq
reqidentity
verifyDeviceIdentity
verifyOTP
reqOTP
allowAccess
returnSession
Device Portal SessionGe.. Idp OBS TrustRoot ServerPolicy & Ac...
FIGURE 10.5
A hybrid model with two-factor authentication proposed to secure the service-based model.
2 6 2
C H A P T E R 1 0
A g ile
A rc h ite c tu re
fo r S e c u rity
T e stin
g
B a b
a r, M
. A ., B
ro w
n , A
. W ., &
M istrik, I. (E
d s.). (2
0 1 3 ). A
g ile
so ftw
a re
a rch
ite ctu
re : A
lig n in
g a
g ile
p ro
ce sse
s a n d so
ftw a re
a rch
ite ctu
re s. P
ro Q
u e st E
b o o k C
e n tra
l <
a o
n click=
w in
d o w
.o p e n ('h
ttp ://e
b o o kce
n tra
l.p ro
q u e st.co
m ','_
b la
n k') h
re f=
'h ttp
://e b o o kce
n tra
l.p ro
q u e st.co
m ' ta
rg e t=
'_ b la
n k' style
= 'cu
rso r: p
o in
te r;'>
h ttp
://e b o o kce
n tra
l.p ro
q u e st.co
m <
/a >
C re
a te
d fro
m h
a rrisb
u rg
-e b o o ks o
n 2
0 2 0 -1
1 -2
4 1
4 :0
1 :3
6 .
Copyright © 2013. Elsevier Science & Technology. All rights reserved.
We sped up this process by determining categories of attack results that might
occur if insecure behaviors are executed.
• Phases of application: Because we are working at the architectural level to address security testing, our approach can be integrated into the analysis, design,
implementation, or testing phase of the development cycle, as long as the global
and individual behaviors of components are identified. Because agile develop-
ment is test-driven, testing can begin as early as some of the requirements are
available. Our approach to security testing supports a highly iterative process;
for example, in cases of adaptation to new requirements, these requirements
can be added to the LTSA-MSC in the form of new behavioral scenarios. As these
new scenarios are added, the approach can be automatically reiterated to detect
new implied scenarios. The testers will only need to review new sets of detected
implied scenarios, which reduces the necessary time because reviews are not
repeated for implied scenarios that have already been detected.
• Generality and applicability of approach: We have specifically chosen to work on the architecture of the system because it offers an adequate level of generality.
Almost every system can be modeled in terms of components and interactions, and
every system has an architecture, whether it is modeled or not. We have also chosen
scenario-based specification because it is popular for modeling behaviors. Unified
Modelling Language (UML) 2.0 and MSC are among the most commonly used
scenario-based specifications, and many software engineers are familiar with these
modeling languages. Thus, we are not requiring additional training for testers. Fur-
thermore, the detection of implied scenarios has been applied to different types of
applications, including component-based systems [40], Java systems [41], and in
this example we have applied it successfully to an identity management system.
• Scalability: This approach supports breaking down the system into groups of requirements, either to perform detailed dynamic analysis for certain groups of
requirements (e.g., problematic areas) or for evolving the requirements for spe-
cific functionality or subsystems. Once a group of functionalities is determined,
our approach supports composing these functionalities incrementally to reach a
larger subsystem.
10.9 AGILE DEVELOPMENT, ARCHITECTURE, AND SECURITY TESTING Moving from implementation testing to architecture-level testing offers several
advantages, which we summarize as follows:
1. Identifying developer’s assumptions based on the code can be a difficult task for testers, since the assumptions are not abstracted from the code. Identifying
assumptions as discussed in Section 10.3.2 is critical for security testing.
2. Supports high-level view the system to address scalability and complexity of systems. For example, the use of code to test an object-oriented system, is
26310.9 Agile Development, Architecture, and Security Testing
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
complex and tedious task [42] especially for large applications. On an average
sized system, architecture can help scale its size especially on situations where
there is a large, distributed team.
3. Abstraction allows us to omit parts that are not necessarily important for security testing. This helps focus attention on components that are more vulnerable than
others. Abstraction is also useful for capturing attack patterns in the system, with-
out the need for an in-depth description of the attack.
4. Traditional software testing techniques consider only a static view of code, which is not sufficient for testing dynamic behavior of the system [43]. Testing the
live system is very expensive. Thus, using an executable architecture is a
cost-effective approach that allows us to experiment with the behavior of the
system.
5. Applications often contain third-party components. Since it may not be viable to modify the source of such components (either because the code was shipped in
binary form or because the license agreement is prohibitive), it is not obvious
how security vulnerabilities could be detected at coding level. Our approach
relies on the interfaces of components, and the safety of their integration.
6. Applications may be written in a variety of languages. In cases of code testing, there is no easy way to abstract security-related code behind a clean Application
programming interface (API) [44]. As a consequence, security-related code will
be scattered throughout the application, increasing the difficulty of detecting
vulnerabilities.
7. Architecture-level testing facilitates better communication between testers, developers, and stakeholders, since abstracted models are easier to read and
understand than large amounts of code.
8. The test process and test case generation can be planned at an early stage of the software development life cycle, allowing coding and testing to be carried out in
parallel, which fulfills the requirement of test-driven development.
These points highlight a promising use of the architecture for agile development.
Its use does not conflict with the principles of agile development as demonstrated by
our case study; iteration can be achieved, adapting to changing requirements, con-
tinuous integration, and test-driven.
10.10 RELATED WORK The closest work to ours is that produced by Ramakrishnan and Sekar [8]. In their
work, they create a model for each system component and then compose them to
show different interactions between these components. Then they verify this com-
posite model by searching for a scenario where a formally defined security property
is violated. The major difference in our approach is that we do not model each com-
ponent independently; instead, we model all interaction scenarios between these
components. We also do not formally define security properties, and instead study
all unspecified behaviors for potentially dangerous behaviors. Defining a security
264 CHAPTER 10 Agile Architecture for Security Testing
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
property for automation might restrict the results of the approach because automation
may lead to false positives and negatives, and thus overlook scenarios.
Another related work is that of Salas et al. [45]. In their work, they build three
models: (1) a specification model that reflects the desired behavior, (2) an implemen-
tation model that reflects low-level details of the system, with a particular focus on
security concerns, and (3) an attacker model that represents the intentions of an
attacker. The purpose of the first two models is to show nonconformance between
the specification and its implementation, and then the attacker’s model is compared
to the implementation model. The major difference between our work and theirs is
that we only use a single model that reflects the implementation model. We also do
not aim to verify the presence of previously identified threats (through other means
of threat-detection), but instead, we aim to provide the detect mechanism itself to
identify potential threats.
10.11 CONCLUSION We aim in this research to continue to push against the limitations of the state of the art
in securing our systems. We have presented the application of test-driven, architecture-
level security testing for agile development. The application is motivated to comple-
ment limitations in existing security testing techniques. We hypothesized that the
application of implied scenario detection [46] at the architecture level does not conflict
with the principles of agile development. We have demonstrated that the architecture
can be adaptive, iterative, and test-driven. We have also demonstrated that testing indi-
vidual functionalities does not help to identify compositional security violations, and
that the use of implied scenarios reveals inconsistencies in the composition of func-
tional scenarios. Using a case study, our results validated our hypothesis, and the
use of implied scenarios detected several threats that are likely to have been missed
using implementation-testing methods. We conclude that the use of architecture for
agile development is highly effective for guiding testers to evaluate security vulnera-
bilities. We have discussed the usefulness of incorporating the system architecture
along with the code. We have presented a real-world example in which our approach
detected four threats. In our future work, we intend to generate test cases and perform
live testing on a distributed system.
References [1] Shreyas D, Software Engineering and Security: Towards Architecting Secure
Software. Term paper for ICS 221-Seminar in Software Engineering, Irvine:
University of California; 2001. http://www.dsc.ufcg.edu.br/�jacques/cursos/map/ recursos/SoftwareEngineeringandSecurity.pdf
[2] McGraw G, Potter B. Software security testing. IEEE Secur Priv 2004;2(5):81–5.
[3] Falessi D, Cantone G, Sarcia’ SA, Calavaro G, Subiaco P, D’Amore C. Peaceful
coexistence: agile developer perspectives on software architecture. IEEE Softw
2010;27(2):23–5.
265References
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
[4] Abrahamsson P, Ali Babar M, Kruchten P. Agility and architecture: can they coexist?
IEEE Softw 2010;27(2):16–22.
[5] Ambler S. Agile modeling: effective practices for extreme programming and the unified
process. New York: Wiley; 2002.
[6] Uchitel S, Chatley R, Kramer J, Magee J. LTSA-MSC: tool support for behaviour model
elaboration using implied scenarios. In: Joint European conference on theory and prac-
tice of software (ETAPS 2003), Warsaw, Poland; 2003.
[7] Fink G, Bishop M. Property-based testing: a new approach to testing for assurance. ACM
SIGSOFT Softw Eng Notes 1997;22(4):74–80.
[8] Ramakrishnan C, Sekar R. Model-based vulnerability analysis of computer systems. In:
Second international workshop on verification, model checking, and abstract interpreta-
tion (VMCAI), Pisa, Italy; 1998.
[9] Wing J. A call to action look beyond the horizon. IEEE Secur Priv 2003;1(6):62–7.
[10] Alur R, Etessami K, Yannakakis M. Inference of message sequence charts. In: ICSE ’00:
proceedings of the 22nd international conference on software engineering. New York,
NY: ACM; 2000. p. 304–13.
[11] Pfleeger CP. Security in computing. Upper Saddle River, NJ: Prentice-Hall; 1997.
[12] Avizienis A, Randell B, Landwehr C. Basic concepts and taxonomy of dependable and
secure computing. IEEE Trans Dependable Secure Comput 2004;1(1):11–33.
[13] Rehman S, Mustafa K. Research on software design level security vulnerabilities. ACM
SIGSOFT Softw Eng Notes 2009;34(6):1–5.
[14] IBM. Rational unified process. URL: http://www-306.ibm.com/software/awdtools/rup/?
S_TACT¼105AGY59&S_CMP¼WIKI&ca¼dtl-08rupsite; 2007. [15] Michael CC, Radosevich W. Risk-based and functional security testing. Technical
report, Build security; 2005.
[16] Mogyorodi G. Requirements-based testing: an overview. In: TOOLS ’01: Proceedings of
the 39th international conference and exhibition on technology of object-oriented lan-
guages and systems (TOOLS39). Washington, DC: IEEE Computer Society; 2001.
[17] Stocks P, Carrington D. A framework for specification-based testing. IEEE Trans Softw
Eng 1996;22(11):777–93.
[18] Wimmel G,Jürjens J.Specification-basedtestgeneration for security-critical systems using
mutations. In: International conference on formal engineering methods (ICFEM); 2002.
[19] Antoniol G. Keynote paper: search based software testing for software security: breaking
code to make it safer. In: ICSTW ’09: proceedings of the IEEE international conference
on software testing, verification, and validation workshops. Washington, DC: IEEE
Computer Society; 2009.
[20] Lodderstedt T, Basin DA, Doser J. SecureUML: a UML-based modeling language for
model-driven security. In: UML ’02: proceedings of the 5th international conference
on the unified modeling language. London: Springer; 2002.
[21] Ahn G-J, Shin ME. Role-based authorization constraints specification using object con-
straint language. In: WETICE ’01: proceedings of the 10th IEEE international workshops
on enabling technologies. Washington, DC: IEEE Computer Society; 2001.
[22] Jacobson I, Booch G, Rumbaugh J. The unified software development process. Boston,
MA: Addison-Wesley Longman Publishing Co., Inc.; 1999.
[23] Internet security systems, internet scanner (ISS). Web. URL: http://www.iss.net/; 2003.
[24] Network associates, cybercop scanner. Web. URL: http://www.nss.co.uk/grouptests/va/
edition2/nai_cybercop_scanner/nai_cybercop_scanner.htm.
[25] McGraw G. Software security: building security. Boston, MA: Addison-Wesley Profes-
sional; 2006.
266 CHAPTER 10 Agile Architecture for Security Testing
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
[26] Whittle J, Wijesekera D, Hartong M. Executable misuse cases for modeling security con-
cerns. In: ICSE ’08: proceedings of the 30th international conference on software engi-
neering. New York, NY: ACM; 2008.
[27] Hernan S, Lambert S, Ostwald T, Shostack A. Threat modeling: uncover security design
flaws using the stride approach, MSDN Magazine 2006. http://msdn.microsoft.com/en-
us/magazine/cc163519.aspx.
[28] Swiderski F, Snyder W. Threat modeling. Redmond, WA: Microsoft Press; 2004.
[29] Schneier B. Attack Trees. Dr. Dobb’s Journal Dec 1999;24(12):21–9.
[30] Turpe S. Security testing: Turning practice into theory. In: IEEE international conference
on software testing verification and validation workshop, ICSTW ’08; 2008. p. 1–10.
[31] Howard M, LeBlanc DC. Writing secure code. Redmond, WA: Microsoft Press; 2002.
[32] Thompson HH. Why security testing is hard. IEEE Secur Priv 2003;1(4):83–6.
[33] Kazman R, Abowd G, Bass L, Clements P. Scenario-based analysis of software archi-
tecture. IEEE Softw 1996;13(6):47–55.
[34] Babar MA, Gorton I. Comparison of scenario-based software architecture evaluation
methods. In: Asia-Pacific software engineering conference; 2004. p. 600–7.
[35] OMG Unified Modeling Language™ (OMG UML), Infrastructure. Version 2.4.1, for- mal/2011-08-05, August 2011. Object Management Group. http://www.omg.org/spec/
UML/2.4.1/Infrastructure.
[36] Uchitel S, Kramer J, Magee J. Detecting implied scenarios in message sequence chart
specifications. ACM SIGSOFT Softw Eng Notes 2001;26(5):74–82.
[37] Howard JD, Longstaff TA. A Common Language for Computer Security Incidents.
Sandia National Laboratories; October 1998 [Sandia Report: SAND98-8667]. http://
infoserve.sandia.gov/sand_doc/1998/988667.pdf.
[38] Samuel P, Joseph AT. Test sequence generation from UML sequence diagrams. In: Soft-
ware engineering, artificial intelligence, networking, and parallel/distributed computing.
SNPD ’08. Ninth ACIS international conference; 2008.
[39] Staite C. Device based identity management. URL: http://www.cs.bham.ac.uk/cxs548/
papers/device-based.pdf; 2010.
[40] Rodrigues GN, Rosenblum DS, Uchitel S. Using scenarios to predict the reliability of
concurrent component-based software systems. In: FASE; 2005.
[41] de Sousa FC, Mendon N, Uchitel S, Kramer J. Detecting implied scenarios from execu-
tion traces. In: Reverse engineering, working conference; 2007.
[42] Kundu D, Samanta D. A novel approach to generate test cases from UML activity
diagrams. JOT 2009;8(3):65–83.
[43] Binder RV. Testing object-oriented systems: models, patterns, and tools. Boston, MA:
Addison-Wesley Longman Publishing Co., Inc.; 1999.
[44] Scott D, Sharp R. Abstracting application-level web security. In: WWW ’02: proceed-
ings of the 11th international conference on world wide web. New York, NY: ACM;
2002. p. 396–407.
[45] Salas PAP, Krishnan P, Ross KJ. Model-based security vulnerability testing. In:
ASWEC ’07: proceedings of the 2007 Australian software engineering conference.
Washington, DC: IEEE Computer Society; 2007. p. 284–96.
[46] Al-Azzani S, Bahsoon R. Semi-automated detection of architectural threats for security
testing. In: ESEC/FSE doctoral symposium ’09: proceedings of the doctoral symposium
for ESEC/FSE on doctoral symposium. New York, NY: ACM; 2009. p. 25–6.
267References
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
This page intentionally left blank
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
CHAPTER
Supporting Agile Software Development and Deployment in the Cloud: A Multitenant, Multitarget Architecture
11
Antonio Rico*, Manuel Noguera*, José Luis Garrido*, Kawtar Benghazi*, Lawrence Chung
{
*Universidad de Granada, Granada, Spain {University of Texas at Dallas, Richardson, TX, USA
CHAPTER CONTENTS
11.1 Introduction .................................................................................................. 269
11.2 Cloud Computing ........................................................................................... 271
11.3 Multitenancy Architectures ............................................................................ 272
11.4 Agility and Multitenancy Architectures ........................................................... 274
11.5 Multitenancy Monotarget: Agility Challenges .................................................. 275
11.6 Supporting Agility: Multitenancy Multitarget ................................................... 276
11.6.1 Functional Portfolio Management ................................................278
11.6.2 Multitarget Metadata (MT2 Metadata) ..........................................278
11.6.3 Business Process Reutilization ....................................................279
11.6.4 Multitarget Security ...................................................................281
11.7 Globalgest: A Real MT2 System ...................................................................... 281
11.8 Related Work ................................................................................................ 284
11.9 Conclusions and Future Work ......................................................................... 285
11.1 INTRODUCTION Cloud computing is enabling everyone to have access to high computational capa-
bilities. Computation is served as a commodity by cloud providers [1], whereas cloud
clients (Information Technology (IT) companies) are able to access these IT
269
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
resources on demand. This new paradigm, also known as Software as a Service
(SaaS), has changed the way in which software is distributed. In SaaS, applications
are no longer purchased (unlike its predecessor, software on premises) but con-
sumed; small- and medium-sized companies afford top-end applications, paying
software vendors (SaaS providers) for the use.
In this context, another paradigm—multitenancy (MT)—has become a key tech-
nology for the success of SaaS [2–4]. In MT, clients reduce the cost of software use
by sharing expenditures, whereas software vendors maximize sales profits by reach-
ing larger markets. MT architectures (MTAs) allow multiple customers (i.e., tenants)
to be aggregated into the same application. Tenants share not only the application,
but also capital and operational expenses [5].
Agility has been widely advocated in the past few years as a development phi-
losophy that improves efficiency in software construction [6]. Most agility methods
and techniques focus on the organization of the members in software teams and the
extensive adoption of demonstrated software engineering best practices, such as code
refactoring. Agilists consider software architecture something “evil” from the past, a bad habit that only carries tons of documentation, big up-front design, and you ain’t
gonna need it (YAGNI) [7].
However, in the cloud multitenant situation, where easy scalability is key, archi-
tectures supporting agility and rapid provisioning become critical. In SaaS, MT appli-
cations demand has to be supported by architectural styles that allow rapid subscription
configuration. MTAs need to provide an “administrative framework that improves
management efficiency for administering the system” [5]. Cloud SaaS architectures
should not be considered evil but as helpful tools and assets for agile teams.
According to Liu [8], “the adoption of SaaS is growing and evolving in the enter-
prise application markets.” SaaS includes all kinds of software applications: cus-
tomer relationship management (CRM), enterprise resource planning (ERP),
content management systems (CMSs), and document management systems (DMSs),
among others. In traditional SaaS MT systems, each MT application usually deploys
a single functionality and is shared among tenants with similar functional needs. In
this regard, we could call actual MT applications monotarget because they target a single area in the spectrum of potential clients.
We previously introduced a proposal for improving MTAs, called multitenancy
multitarget (MT 2 ) [9]. This novel architecture adds new components to an underlying
MT foundation to support multiple functionalities. In this chapter, we illustrate how
MT 2 fosters deployment (since just one system is needed to support multiple
services) and aim to support agility in development by avoiding unnecessary repli-
cations; customers in turn reduce learning effort because one application is needed to
cover all services. The applicability and benefits of the proposal are illustrated
through a real MT 2 system called Globalgest [10,11], which is currently in service.
This chapter is organized as follows. First, a definition of cloud computing and
its services is provided. Second, we go deeper into MT and explain the general model
of this architectural pattern. Third, we discuss agility in SaaS MT applications
and the recent discussion to combine traditional agile software development with
270 CHAPTER 11 MT2: A Multitenant Multitarget Architecture
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
architecture. Fourth, the proposal is introduced and is followed by the presentation of
a real MT 2 implementation (Globalgest). Finally, conclusions and future work are
summarized.
11.2 CLOUD COMPUTING The National Institute of Standards and Technology defines cloud computing as “a
model for enabling ubiquitous, convenient, on-demand network access to a shared
pool of configurable computing resources (e.g., networks, servers, storage, applica-
tions, and services) that can be rapidly provisioned and released with minimal
management effort or service provider interaction” [12].
In other words, cloud computing means the use of computer resources at different
levels over a cloud. A cloud is a datacenter providing computing infrastructure (hard- ware and software) and accessed over the Internet. This way, companies are able to
migrate their IT infrastructure, reducing capital and operational expenses. Depend-
ing on the organizations operating on the infrastructure, clouds can be classified into
private, community, public, or hybrid [12]. Services consumed by customers over a
cloud are called cloud services, and can be organized in three levels [4,12,13]:
– Software as a Service (SaaS): Consumption of software applications deployed in the cloud. Platform and infrastructure are transparent to users.
– Platform as a Service (PaaS): Capacity to deploy applications into the cloud. Cus- tomers do not control lower-level computing resources, such as operating systems
or network.
– Infrastructure as a Service (IaaS): Provision of storage, computing, network, and other primary computing resources.
Though this classification of cloud services seems to be agreed in literature, there is
still no common understanding on the definition of cloud computing. In Berkeley’s
definition [1,14], cloud computing is considered the sum of utility computing and SaaS, anddoesnot include private clouds. Utilitycomputing [15] refersto the use ofcomputer
resources on demand. This way, Berkeley considers IaaS a utility computing service,
whereas PaaS is halfway between cloud computing and utility computing.
In SaaS, companies are no longer owners of the applications, but subscribers to
them. According to Ref. [16], “The basic long-term vision of SaaS is centered around
separating software possession and ownership from its use.” Unlike its predecessor,
Software on Premises, applications are now installed in a cloud and accessed over the Internet; users are not owners of the software any more, but consumers of web
applications.
Previous attempts to migrate application provisioning to the cloud have failed. In
ASP (application service provider), applications were also deployed over a network
instead of being executed on local servers. However, in this model, clients would not
benefit from cost reduction since servers where private and used only by their owner
companies. SaaS, on the other hand, is focused on exploiting economies of scale by
27111.2 Cloud Computing
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
consolidating several customers onto the same operational system. Companies afford
top-quality enterprise applications, while providers maximize sales profits targeting
the market of small- and medium-sized companies. Among other reasons, ASP failed
because it did not even contemplate the possibility of serving different companies using
the same software instance [17] or the ability to provide customized applications [18].
11.3 MULTITENANCY ARCHITECTURES MT is an architectural pattern for SaaS applications that permits several customers
(tenants) to share the same instance of the software [19]. A tenant is an organizational
unit that pays for the use of the SaaS application on a regular basis (according to the
subscription contract). One tenant might consist of many end-users, therefore MT
applications might also be multi-users; we will call tenancy the set of users of one tenant that run the same customized version of the application instance. The number
of instances runningin a multitenant environment might be more than one, resulting in
a MT farm. This situation could occur not only because of performance issues (some
tenants might get greedy on computer resources), but also because of country
legislations stating the obligation to store data within country borders [20].
The multitenant model is considered an essential characteristic for cloud comput-
ing and its software delivery model [4,12]. Salesforce.com, one of the most popular
cloud providers, states [3]: “hosting models that do not offer the leverage of MT do
not belong in the same discussion as the value proposition implied by the term SaaS.”
Chong, in his article Architecture Strategies for Catching the Long Tail [2], believes three attributes are to be considered in a good SaaS application architecture: scalabil-
ity, configurability, and multitenant efficiency.
The use of metadata in multitenant applications lets tenants customize the system
within the tenancy in three different levels: database model, user interface, and busi-
ness logic. This way, MT seems to be transparent for customers giving the impres-
sion that they are running a dedicated instance of the application. Customization and
security rely on the model chosen to store data. Several authors have proposed
different approaches [5,21–23]. Though using different terminology, they all agree
that the distinction is given by the level of isolation on tenant’s data.
Basically, MTA models have two tiers: administrative and instance. The admin-
istrative tier [5] provides the functionalities responsible for rapid account manage-
ment, while the instance tier hosts the applications that tenants execute according to
subscription contracts defined at the administrative level. In Figure 11.1, the multi-
tenant master panel (MTMP) represents the administrative level to control a farm
with four application instances.
In a MT farm, the MTMP must ensure system performance is balanced and have
the capability to move or scale out tenants to (new) servers of the farm. This
component stores data in the administrative database.
Figure 11.2 details the instance level of the architecture. The lower level tiers
perform changes dictated by the business layer in both the multitenant database
272 CHAPTER 11 MT2: A Multitenant Multitarget Architecture
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
Application instance 2
Application instance 1
Administrative tier
Instance tier
Application instance 3
Multitenant master panel (MTMP)
Application instance 4
T3T42T41T33T32T31T23T22T21T13T12T11
Multitenant database(s)
Administrative database
FIGURE 11.1
Administrative and instance tiers in an MT environment.
L o
w e
r le v e
l tie rs
FIGURE 11.2
Multitenant architecture detailed: instance tier.
27311.3 Multitenancy Architectures
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
and file system. Intermediate layers, such as presentation or Service-Oriented Archi-
tecture (SOA) services, communicate with browsers and smart devices respectively
to produce end-users’ output. Metadata are responsible for system customization so
that tenants can get a specific user experience. This customization includes data
model extension, adaptation of the presentation layer to corporative image, and busi-
ness workflow personalization. Security services must be present in all multiuser sys-
tems. In multitenant environments, the complexity of this component increases;
systems must maintain privacy not only among end users, but also among different
tenants.
11.4 AGILITY AND MULTITENANT ARCHITECTURES The term agile has been long used in software development to refer to a set of methods following the guidelines established in The Agile Manifesto [24]. This man- ifesto states four basic values:
– Individuals and interactions over processes and tools
– Working software over comprehensive documentation
– Customer collaboration over contract negotiation
– Responding to change over following a plan
Agile software development is a philosophy that separates radically from tradi-
tional methods of development, like the waterfall model. Focused more on team
organizations, agile methodologies like Scrum [25] or Xtreme Programming [26]
have a reputation of paying little attention to software architecture [27]. Support
of teams through certain validated software assets, from development frameworks
to architectural designs that foster reuse and make development easier, seems to have
been disregarded so far.
The concept of architecture, involving big up-front design and YAGNI, has terror-
ized agile teams that fear to end up sunken under a massive pile of documentation.
Proponents of agility think that that architecture should emerge gradually in every
sprint; they embrace the change and prefer adaptive systems instead of the use of pre- defined architectures that limit the system evolution. However, as well as these claims,
agile methods strive to deliver working and valuable software early and often to clients.
If so, it would be worthy to start from a proven and supportive architecture rather than
starting from scratch. In cloud MT systems, other issues, such as rapid deployment, may
be complementary to agile philosophy; there should be a fast change to the system so as
to accommodate potential tenants in as short a period of time as possible. In this regard,
architecture should not be doomed as a forbidden non-agile malpractice.
Recently, prominent authors from the system and software engineering commu-
nities have claimed and advocated in favor of coexistence between agile and archi-
tecture [28–30]. According to Ref. [7], “certain classes of system, ignoring
architectural issues too long, ‘hit a wall’ and collapse by lack of an architectural
focus.” In Ref. [30], Madison talks about agile architecture as a combination of these
274 CHAPTER 11 MT2: A Multitenant Multitarget Architecture
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
two streams; this work gives the architect an essential role and indicates that this new
architectural direction should include a wide range of options instead of a closed
solution.
SaaS MTAs seek to leverage economies of scale due to software instance sharing
among tenants, whatever the kind of application deployed. Literature has not yet
covered how this architecture may support or even be Agile-compatible.
MTAs and other technologies, like software product line engineering (SPLE)
[31], may support agility with complementary issues (e.g., rapid deployment,
quality, and time-to-market). As seen in Figure 11.1, the MTMP component is
responsible for accounts creation; clients can be registered in the system and ready
to access the application within minutes. These two sides are not incompatible; they
just are different, and can be combined together.
According to Ref. [32], “Agility is the ability to rapidly and cost-effectively adapt
to market and environmental aspects.” This affirmation, originally applied to SPLE,
can be perfectly extended to SaaS MT applications. In SPLE, new modifications are
made to artifacts to cope with new requirements of the market; these artifacts are
used in the platform so that new versions of the products satisfy them. In MT, with
just one application instance (except in cases of a MT farm), propagation of change is
almost instantaneous. Moreover, changes are carried out over existing working
development projects rather than from scratch.
To sum up, MT not only tries to provide cost reduction for clients and maximi-
zation of provider profits, but also aims to support agility claims in different ways by:
• Deployment because clients are rapidly registered into the system.
• Maintenance and scalability when new requirements are needed.
• Development since changes are not made from scratch.
Architectures that aim to support agility are key in this new SaaS paradigm; with-
out the rapid and effective management or ease of upgrade that MTAs provide, SaaS
would be doomed to failure like ASP.
11.5 MULTITENANCY MONOTARGET: AGILITY CHALLENGES The market that SaaS applications serve on demand is vast. Companies willing to
change their traditional on-premises software will find their corresponding applica-
tion in the cloud. CRMs, ERPs, CMSs, DMSs or even vertical specialized [33] sys- tems, like a real estate CRM [34], are served on demand by SaaS providers and can be
subscribed to within minutes.
Traditionally, current multitenant applications deploy a single functionality or
are aimed to serve a specific line-of-business (LOB). A company needing a CRM will compare among those providers in the market serving CRM applications and
subscribe to the one that best fits its needs. If this same company would need a
CMS or ERP, it would probably end up subscribing to another SaaS vendor offering
those services on demand (see Figure 11.3a).
27511.5 Multitenancy Monotarget: Agility Challenges
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
With this model, where the market has different applications for different func-
tionalities, companies have to subscribe to as many applications as the services they
need. In traditional MT, tenants share not only application instances, but also the
functionality deployed. We could say that actual multitenancy is monotarget; ven- dors will have to develop new software applications if they want to target potential
clients from other LOBs or with different functional needs.
Many of these multitenant applications could share common lower development
components in their architecture. Database connectors, user authentication, or gen-
eral user interface components (graphics, style sheets, etc.) among others, might be
the same in any SaaS application whether it is for a CRM, CMS, or ERP. However, as
shown in Figure 11.3b, all these common components are to be replicated over all
these different implementations.
In terms of agility, replication means losing valuable time. During the develop-
ment process, programmers will have to duplicate and adapt/reconnect components
over implementations; vendors serving different applications will have to manage
different MTMPs with duplicated records of the same multisubscribed customers;
moreover, customers in turn will have bigger learning effort required as different
applications need to be learned and used.
11.6 SUPPORTING AGILITY: MULTITENANCY MULTITARGET MT
2 is a proposal to extend MTAs that allows multiple functionalities to be offered
in the same operational system. The main idea behind MT 2 is reusability of common
MT components. Several MT applications are grouped into a single MT 2 system
and used as assets to meta-generate customized service applications for clients. In
MT 2 , just one application instance is needed to manage different functionalities.
a b
FIGURE 11.3
(a) Subscriptions depend on functional needs. (b) Replication of common development
components.
276 CHAPTER 11 MT2: A Multitenant Multitarget Architecture
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
Subscription determines the service(s) and therefore the functionalities to be
deployed during execution time.
MT 2 achieves reusability (and thus supports agility) by removing useless repli-
cation of common features. In multitenancy monotarget, functionalities are deployed
in different applications; hence components are replicated. In multitarget, shared
components are reutilized among all functionalities; cloud agile teams could boost
deployment, since just one application is needed to host many functionalities.
This way, applications are distributed among tenants with different functional
needs and vendors can host tenants from heterogeneous market sectors. This multi-
functional situation seeks several benefits as follows:
– Companies are able to subscribe to only one SaaS MT 2 application, speeding
up the learning process (Figure 11.4a, Tenant 2).
– Vendors have a multitarget market (Figure 11.4a, Vendor 1), broadening the spec-
trum of potential customers and making subscriber’s management faster thanks to
the multitarget master panel (MTMP). – Developers in turn avoid unnecessary replications, and therefore reduce time-to-
market (see Figure 11.4b).
To this end, new components are added to the traditional MTA (Figure 11.2).
Figure 11.5 represents the model of MT 2 A with those new components with a thicker
edge. These components enhance traditional MTAs, giving the ability to execute dif-
ferent functionalities depending on a tenant’s contract. Applications therefore could
be completely different among tenants; this meta-application profile of MT 2 involves
changes in both administrative and instance tiers.
In addition to traditional MT duties, this multiservice profile implies new com-
mitments. These novel features try to support agility and are described in the next
subsections.
a b
MT2 system MT2 system
FIGURE 11.4
(a) MT2 systems allow tenants to subscribe to multiple functionalities while providers manage
one MT2MP. (b) Reusability of common resources in MT2.
27711.6 Supporting Agility: Multitenancy Multitarget
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
11.6.1 Functional portfolio management The set of functionalities deployed in an MT
2 system is called the functional port-
folio. The number of functionalities in the portfolio may differ depending on vendor. MT
2 systems seek scalability not only at the tenant level, but also at the functional
level. New MT 2 systems may deploy just a few features, but can increase the
portfolio over time. Previous MT 2 systems are supposed to have larger functional
portfolios, since new functionalities are added on customers’ demands and remain
on the portfolio, unless outdated. The MT 2 MP must support the creation, addition,
or deletion of functionalities in the portfolio.
11.6.2 Multitarget metadata (MT2 metadata) Multitarget metadata links tenants’ accounts not to only functionalities subscribed to
by tenants, but also to contractual features of this relationship. For instance, if a ten-
ant wants to subscribe to SMS functionality, we should at least set the number of text
Administrative tier
Instance tier
Smart device
Individual business processing (IBP)
Common business processing (CBP)
Query processor
File system Multitenant database
L o
w e r le
v e l tie
rs
MT2 master panel
FIGURE 11.5
MT2 architecture model.
278 CHAPTER 11 MT2: A Multitenant Multitarget Architecture
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
messages contracted; setting this parameter in other functionalities, such as client management, does not make sense. Every subscription to functionalities has its own conditions, and these are reflected in the multitarget metadata of each tenant.
Subscriptions to functionalities are defined by multitarget metadata. Figure 11.6
shows an example of an MT 2 system with four functionalities in the portfolio and two
tenants. In this case, Tenant 1 is subscribed to CMS and SMS, whereas Tenant 2 has
contracted CRM and SMS; as we see, relationship to SMS is present in both tenan-
cies using MT 2 metadata, but the number of text messages to be sent differs.
With this extension, vendors can have all their SaaS applications unified. To this
end, they need to configure an MT 2 system with a functional portfolio including all
previously deployed functionalities. Clients from different applications are to be
registered in the MT 2 MP, setting up a subscription linking the functionality from
the previous monotarget SaaS application. This centralization improves agility in
deployment; just one multitarget master panel is needed to control all clients and
applications (now as functionalities in the MT 2 system). MT
2 systems can be scaled
with tenants with changing functional needs; resource optimization is easier to
achieve with the consequent reduction of costs. Vendors and customers can leverage
this unification not only for an even more attractive price, but also because the new set
of functionalities offered could be deployed within minutes by means of the MT 2 MP.
11.6.3 Business process reutilization Reusability of common features along all functionalities is the main cause of this
MT 2 extension. In a multitarget environment, business layers are divided into:
– Common Business Processing (CBP): It includes those elements that are business- independent and reusable across all functionalities.
MT2 functional portfolio
Multitarget metadata
FIGURE 11.6
Multitarget metadata contains subscription details and contractual features for each tenant.
27911.6 Supporting Agility: Multitenancy Multitarget
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
– Individual Business Processing (IBP): It includes those elements that are business-dependent and which are specifically designed to support one
functionality.
During the execution timeline of their application instances, all tenants will
import CBP elements statically; however, IBP elements will be imported dynami-
cally depending on tenants’ subscriptions. In Figure 11.7, a tenant has a subscription
to functionalities F2 and F4. In this case, all CBP components are imported statically.
However, in the dynamic IBP selection for importation, just F2 and F4 components
will be included. Security services will check subscription and will confirm that only
these two functionalities are to be deployed during execution.
As mentioned above, CBP represents all those components reused in different
functionalities; agility in development is reached due to reusability. Features such
as privacy or system authentication are no longer to be developed in future function-
alities; they are already in the CBP layer. Furthermore, development effort is reduced
not only because of reutilization of CBP elements, but also for their extension. For
instance (see Figure 11.8), if a programmer needs to develop a specific feature and
MT2
instance execution
CBP import
CBP item Metadata security
Multitarget metadata
IBP import
FIGURE 11.7
Static and dynamic import in MT2.
FIGURE 11.8
Agility in development for extension of CBP classes.
280 CHAPTER 11 MT2: A Multitenant Multitarget Architecture
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
encapsulate it within a class; that class does not need to be developed from the begin-
ning; it can be coded by extending one existing class from the CBP layer.
11.6.4 Multitarget security MT
2 environments deploy different functionalities depending on tenants’ subscrip-
tions; tenants share applications, but functional deployment may differ. In this situ-
ation, security components become more complex in architecture, since end users are
allowed to execute those functionalities present in the subscription and not others.
Multitarget involves new guarantees for the security layer at two levels:
– Tenant level: Tenants should not deploy functionalities that are not included in subscription. Security must ensure that forbidden functionalities are not deployed.
– End-user level: MT applications are multiuser environments at instance level. Tenants end-users have different roles that determine their capabilities in the sys-
tem. In MT 2 , tenants may have a subscription to a certain functionality, but not all
the tenancy should have access to it. Admin users of the tenancy must have the
capability to decide for each user what functionalities to deploy from the tenant
portfolio. For instance, a company could have a subscription to accounting and
agenda functionalities; however, leaking of important financial data is not desir-
able, so accounting functionality could be hidden from certain users of the tenancy
for security reasons.
11.7 GLOBALGEST: A REAL MT2 SYSTEM Globalgest [10,11] is an example of a business-oriented application based on MT
2
architecture. It has been implemented by 21 companies and deploys more than
100 functionalities. Combinations of this portfolio allow Globalgest to serve busi-
nesses from different industries, such as a medical clinic or an IT company, by choos-
ing different functional subscriptions for them [35].
Globalgest is a single application that serves companies from different industries
without duplicating development efforts. MT 2 architecture allows Globalgest to deploy
andhostseveralfunctionalitiesconfiguringaclient’sfunctionalsubscriptionondemand.
Rapid provisioning is key in Globalgest; customers require a fast response that is
reached thanks to the administrative level of the architecture—the MT 2 master panel.
Setting up a new client account in Globalgest is easy and entails only a few steps.
Once logged into the system as an MT 2 administrator, a user will be able to access the
administrative level. As seen in Figures 11.9 and 11.10, this process is quite simple:
1. Open the MT2MP 2. Click on Insert new account 3. Fill in tenant details: Contact, billing, shipping
28111.7 Globalgest: A Real MT2 System
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
4. Set subscription details: 4.1 Expiration and method of payment 4.2 Create admin user for the tenancy 4.3 Set functionalities desired by the customer by just clicking on the
check fields
The agility with which this operation can be performed is very noticeable; tenants
can be registered within minutes. Steps 1-4.3 might be common to other monotarget
applications, but the main difference and benefit that MT 2 provides to Globalgest is
in Step 4.3. In this phase, clients are registered with a personalized service by choos-
ing the functionalities desired (Figure 11.10). In traditional MT, this possibility is not
FIGURE 11.9
MT2MP: inserting new account.
FIGURE 11.10
Functional selection in the MT2MP.
282 CHAPTER 11 MT2: A Multitenant Multitarget Architecture
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
present, because it is monofunctional; therefore, customers with different functional
requirements might be registered in as many MT applications as functional needs.
The major advantage of Globalgest against their MT competitors is multiservice,
and therefore the agility, in providing different services with just one software
instance. Subscribing to an ERP or a CRM can be a difficult decision. However, that
might not be the case for other, less important functionalities (CMS, for instance).
Clients can be registered with a set of these simpler functionalities and once they
get used to the interface and have passed the learning curve, they will more likely
step forward and upgrade their subscription to more complex functionalities. In con-
trast, for the Globalgest vendor this upgrade operation is just a click away thanks to
the MT 2 MP.
Furthermore, Globalgest has a functional portfolio that can increase its number of
functionalities with time. As these new features are incorporated into the system, ten-
ants can upgrade their subscription—either because these new functionalities com-
plement others already contracted, or because they are newly interested. In any case,
the Globalgest vendor is one step ahead of its competitors again.
As explained before, in Globalgest, functionalities do not need to be developed
from scratch. The MT 2 architecture allows developers to achieve agility in develop-
ment because common components over functionalities are reused and not repli-
cated. Programmed with PHP as its server language and MySQL as its database
engine, the CBP layer includes these main classes:
– SQLConnector.php: Database processing and query management – HTMLCreator.php: Creation of HTML data (tables, inputs, forms, dialogs, etc.) – Controller.php: Security and the tenant’s privacy – FileConnector.php: File system access – WSConnector.php: Responsible for SOA
During execution time in all functionalities, these classes are instantiated and
developers can make use of them instead of reprogramming. If new specific pro-
gramming is needed for the functionality, new IBP classes can be encoded; unlike
MT applications, these new classes can be encoded extending existing CBP classes.
Figure 11.11 shows a real example of how a CPB class (HTMLCreator) is extended for specific purposes in SMS functionality. In this example, a new popup
FIGURE 11.11
CBP class extension.
28311.7 Globalgest: A Real MT2 System
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
(Figure 11.12) will appear to the user when trying to text a person with no numbers on
its record.
Agility becomes especially critical when the company that owns the software
lacks human resources. For very small IT companies, MT’s support for agility is
not enough. MT 2 provides not only rapid deployment, but also agility for develop-
ment and eases the general management of the system. Multitarget applications like
Globalgest can serve dozens of tenants with just one system administrator.
11.8 RELATED WORK Some similarities can be seen to SPLE [31,36] due to reusability of common com-
ponents. However, SPLE involves obtaining personalized software products from
the platform, whereas MT 2 just uses the same components running in the same soft-
ware instance. In MT 2 ,reusability takes place during execution time, whereas SPLE
reuses the artifacts during development. Moreover, with MT 2 , services deployed for
a customer could change by just modifying the functional contract; in SPLE, a prod-
uct cannot be changed once it has been released from the platform.
Salesforce.com [37] is another SaaS platform offering different functionalities
that can be subscribed to piecewise. However, to the best of our knowledge, no
underlying architectural models of this multifunctional architecture or evidence of
their existence have been provided (i.e., it is not clear if Salesforce.com has a core
FIGURE 11.12
Popup generated when trying to use SMS functionality in Globalgest.
284 CHAPTER 11 MT2: A Multitenant Multitarget Architecture
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
architecture and, if so, how it evolves). The novelty of this approach is the extension
from traditional MTA to MT 2 A where the CBP elements are key for software reuse.
Fink and Markovich [33] explain three different verticalization strategies for IT
development companies. Horizontal strategies are general solutions suitable for
many sectors that potentially appeal to most or all market users. Vertical strategies
are tailored products designed specifically for one sector. Small and medium busi-
ness (SMB) companies choose this strategy due to its capacity limitations, whereas
large, specialized companies may develop many vertical solutions to different mar-
kets, adopting a multivertical strategy. MT 2 breaks this limitation to SMB compa-
nies, since with just one application instance they are able to manage not only
multiple customers, but also multiple targets. Contribution is for a cloud multitenant
environment, where sharing is key. A vertical solution could be better for just one
client and one project, but not for the SaaS model. MT 2 tries to go a step further
and use the same application for clients with different needs.
Zaidman [20] proposes an architecture model for MT SaaS applications to avoid
maintenance problems. It defines the key characteristics in MT and explains
opportunities in SaaS MT applications, like zero-downtime or security, but does
not consider coexistence of different business logics for the same system, which
MT 2 does.
Kr et al. [38] presented a backend customization approach for MT SaaS applica-
tions. Extensibility and customization of database models is well understood, and
there are many approaches. In contrast, personalization of user interfaces and espe-
cially business logic models is still a challenge. This approach is related to custom-
ization of the business logic, but within the same functionality for all tenants. It does
not consider multifunctionality.
Banks et al. [39] introduced a conceptual prototype, called Fractal, which is an
application for collaboration among tenants within an MT environment. It explores
the key requirements for creating a collaborating platform. In subsequent versions of
MT 2 , we will try to study possible controlled collaborations among tenants.
In Ref. [40], a framework for reengineering applications to support MT is
explained. It does not consider multiservice provisioning.
11.9 CONCLUSIONS AND FUTURE WORK Cloud computing and its new software delivery model (SaaS) are increasingly being
adopted for current software vendors. SaaS has become a common software distri-
bution formula for users [41]; according to Ref. [42], SaaS revenue is expected to
reach nearly 5 billion dollars. The adoption of SaaS is just a matter of time, if it
has not been already done.
MT is a key feature and an essential characteristic in cloud computing. MT archi-
tectures allow SaaS applications to aggregate users into the system on demand, ven-
dors leverage scalability to reduce the general cost of applications, and users afford
top-quality implementations: everybody wins.
28511.9 Conclusions and Future Work
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
There is a recent debate on the coexistence between agility and architecture, claim-
ing that these two cultures should not be considered opposite. In cloud environments,
architectures supporting claims such as the quick delivery of working software to cli-
ents should not be left separate from the agile movement.
Traditionally, applications aim to serve one single purpose, and therefore differ-
ent purposes involve different applications. MT applications are thereby monotarget,
because they target one line of business.
In this chapter, we have presented multitarget as an extension to MTAs. Thanks to
the reuse of common features, MT 2 allows traditional monotarget applications to
support multiple functionalities and deploy them selectively depending on subscrip-
tion contract. MT 2 A is an example of the fruitful combination of agility and archi-
tecture, in the sense that it makes possible a rapid delivery of working,
multifunctional software to clients by taking advantage of a consolidated and proven
(working) software architecture. MT 2 aims to support agility not only for deployment
due to unification, but also for development.
Although MT 2 is already implemented in Globalgest, the novelty of this approach
opens a big field for further study of this architecture. New challenges are to be over-
come and new benefits are to be found. The complexity of the architectural model
needs further study and detail—especially in the administrative tier. There are many
aspects to be considered when providing a multifunctional service; functionalities,
for instance, may be dependent on each other (appointments and agenda may be dependent to the entities involved, like clients or human resources). This dependency control should be reflected in the MT
2 architecture.
Benefits in terms of agility should be demonstrated with some empirical/
estimated data about development and deployment times and costs and more detailed
examples of code and specific pictures are also needed. Besides the benefits, the short-
comings of MT 2 , such as application centralization, need to be explained and solved.
The MT 2 MP can be considered in the range of meta-applications; new tenants can
be set up by means of this master panel giving out service-customized applications
on demand. We will further study the relationship between MT 2 and the world of
meta-applications.
The next step in MT 2 will be called MT
2.0 . The multitarget profile of MT
2
involves providing service to clients from different sectors and lines of business.
If these companies from different industries already cooperate daily in the real world,
why not do it via networking using multitarget systems? We will deepen the study of
networking among tenants; a collaboration that will be reflected by controlled data
sharing and interaction among users from different tenancies.
References [1] Ambrust M, Fox A, Griffith R, Joseph AD, Katz RH, Konwinski A, et al. Above the
clouds: A Berkeley view of cloud computing. Berkeley: Dept. Electrical Eng. and
Comput. Sciences, University of California; 2009, Rep. UCB/EECS. 28; 2009.
286 CHAPTER 11 MT2: A Multitenant Multitarget Architecture
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
[2] Chong F, Carraro G. Architecture strategies for catching the long tail: what is software as
a service? Most. 479069; 2006. p. 1–22.
[3] Coffee P. Busting Myths of On-Demand: Why Multi-Tenancy Matters; 2007. Salesforce.
com White Paper, http://wiki.apexdevnet.com/images/0/04/MythbustMultiT.PDF.
[4] Qaisar EJ. Introduction to cloud computing for developers: key concepts, the players and
their offerings. In: 2012 IEEE TCF information technology professional conference;
2012. p. 1–6.
[5] Jacobs D, Aulbach S. Ruminations on multi-tenant databases. Fachtagung fur
Datenbanksysteme in Business, Technologie und Web (BTW), Aachen, Germany, March
5–9, 2007.
[6] Block M. Evolving to agile: a story of agile adoption at a small SaaS company. In:
AGILE conference; 2011. p. 234–9.
[7] Kruchten P. Software architecture and agile software development: a clash of two cul-
tures? In: 2010 ACM/IEEE 32nd international conference on software engineering, Cape
Town, South Africa; 2010. p. 497–8.
[8] Liu S, Zhang Y, Meng X. Towards High Maturity in SaaS Applications Based on Vir-
tualization. Int. J. Inform. Syst. Service Sector 2011;3:39–53.
[9] Rico A, Noguera M, Garrido JL, Benghazi K, Chung L. Multi-Tenancy Multi-Target
(MT2): A SaaS Architecture for the Cloud. In: Advanced Information Systems Engineer-
ing Workshops; 2012. p. 214–27.
[10] RicoA.DesarrolloTIC.SEO,web,andsoftwaredevelopment,http://www.desarrollotic.com/.
[11] Rico, A. Software de Gestión ERP y CRM en la Nube - Globalgest ERP. (n.d.). Retrieved
July 14, 2013, from http://globalgest-saas.com/.
[12] Mell P, Grance T. The NIST definition of cloud computing (draft). NIST special publi-
cation 2011;800(145):7.
[13] Vaquero L, Rodero-Merino L. A break in the clouds: towards a cloud definition. ACM
SIGCOMM 2008;39(1):50–5.
[14] Armbrust M, Stoica I, Zaharia M, Fox A, Griffith R, Joseph AD, et al. A view of cloud
computing. Communications of the ACM 2010;53(4):50. http://dx.doi.org/10.1145/
1721654.1721672.
[15] Parkhill DF. Challenge of the computer utility. Reading, MA: Addison-Wesley Educa-
tional Publishers; 1966.
[16] Turner M, et al. Turning software into a service. Computer 2003;36(10):38–44.
[17] Liu G, et al. Software design on a SaaS platform. In: 2010 2nd International conference
on computer engineering and technology; 2010. p. V4-355–8.
[18] Papazoglou M. Service-oriented computing: concepts, characteristics and directions. In
Proceedings of the 7th International Conference on Properties and Applications of
Dielectric Materials (Cat. No.03CH37417). IEEE Comput. Soc; p. 3–12. http://dx.doi.
org/10.1109/WISE.2003.1254461
[19] Bezemer C, Zaidman A. Challenges of reengineering into multi-tenant SaaS applications:
challenges; 2010.
[20] Zaidman A. Multi-tenant SaaS applications: maintenance dream or nightmare? Position
paper.
[21] Aulbach S, et al. A comparison of flexible schemas for software as a service. ACME
2009;881–8.
[22] Aulbach S, Grust T, Jacobs D, Kemper A, Rittinger J. Multi-tenant databases for software
as a service: In: Proceedings of the 2008 ACM SIGMOD international conference on
Management of data - SIGMOD ‘08. New York, USA: ACM Press; 2008. p. 1195.
287References
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .
[23] Chong F, et al. Multi-tenant data architecture three approaches to managing multi-tenant
data architecture. 479086; June 2006. p. 1–18.
[24] Beck K, et al. Manifesto for agile software development, http://agilemanifesto.org/.
[25] Schwaber K, Beedle M. Agile software development with scrum. Englewood Cliffs, NJ:
Prentice Hall; 2001.
[26] Beck K. Embracing change with extreme programming. Computer 1999;32(10):70–7.
http://dx.doi.org/10.1109/2.796139.
[27] Hanssen GK, Fægri TE. Process fusion: an industrial case study on agile software product
line engineering. J Syst Softw 2008;81(6):843–54.
[28] Abrahamsson P, et al. Agility and architecture: can they coexist? IEEE Softw 2010;27
(2):16–22.
[29] Booch G. An architectural oxymoron. IEEE Softw 2010;27(5):96.
[30] Madison J. Agile architecture interactions. IEEE Softw 2010;27(2):41–8.
[31] Pohl K, et al. Software product line engineering: foundations, principles, and techniques.
Secaucus, NJ: Springer-Verlag New York Inc; 2005.
[32] Clements P, McGregor J. Better, faster, cheaper: pick any three. Bus Horiz 2012;55
(2):201–8.
[33] Fink L, Markovich S. Generic verticalization strategies in enterprise system markets: an
exploratory framework. J Inform Tech 2008;23(4):281–96.
[34] TIC D. NetPropertyAgent—SaaS real estate CRM, http://www.netpropertyagent.com/.
[35] Ortega AR, et al. Multi-tenancy multi-target (MT2): a SaaS architecture for the cloud. In:
CAiSE workshops; 2012. p. 214–27.
[36] Clements P, Northrop L. Software product lines. Boston: Addison-Wesley; 2002.
[37] SalesForce.com, http://www.salesforce.com/.
[38] Kr J, et al. Customizing enterprise software as a service applications: back-end extension
in a multi-tenancy environment. Work 2009;24(I):66–77.
[39] Banks D, Erickson J, Rhodes M. Multi-tenancy in cloud-based collaboration services.
Hewlett-Packard Development Company, LP; 2009. Retrieved from http://www.hpl.
hp.com/techreports/2009/HPL-2009-17.pdf.
[40] Almorsy M, Grundy J, Ibrahim AS. SMURF: Supporting Multi-tenancy Using Re-
aspects Framework. In: 2012 17th International Conference on Engineering of Complex
Computer Systems (ICECCS); 2012. p. 361–70.
[41] Benefield R. Agile deployment: lean service management and deployment strategies for
the SaaS enterprise; 2009. p. 1–5.
[42] A worlwide review of SaaS growth, http://www.vi.net/blog/2012/01/a-worlwide-review-
of-software-as-a-service-saas-growth/.
288 CHAPTER 11 MT2: A Multitenant Multitarget Architecture
Babar, M. A., Brown, A. W., & Mistrik, I. (Eds.). (2013). Agile software architecture : Aligning agile processes and software architectures. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank') href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a> Created from harrisburg-ebooks on 2020-11-24 14:01:36.
C o p yr
ig h t ©
2 0 1 3 . E
ls e vi
e r
S ci
e n ce
& T
e ch
n o lo
g y.
A ll
ri g h ts
r e
se rv
e d .