parameters, setting the trigger to the appropriate
value (before, after or instead_of), and choosing the
service type and the output parameter type.
Every extendable page controller has code for
looking for custom-services plugged into it,
associated to the tenant accessing the page. That is,
each extendable page searches for extension points
with non-null
ID_CustomService attached to it,
that belong to the tenant accessing the page, in each
of the possible triggering positions.
4.2 Validation
The proposed approach to the customization at the
business logic level has been tested, and is being
used in the development of a WMS application that
will be deployed with a SaaS deployment model.
In the WMS application, the user accesses the
application’s presentation layer through any browser
with a Silverlight plugin. The presentation layer
calls the WMS domain (shared) services, which are
a set of Windows Communication Foundation Rich
Internet Application services (WCF RIA services,
see for instance http://msdn.microsoft.com/en-
us/library/ee707344(v=vs.91).aspx) exposed as
SOAP/WSDL. These, in turn, access the WMS
database.
For customizing the WMS application business
logic, custom REST web-services must be put
available in another web server, and the WMS
application must be configured to plug those
services in the desired extension points, available in
the application.
After being deployed, we will further assess the
utility and usability of this approach with real
customers/tenants and real users in an industry
setting.
5 DISCUSSION
The proposed approach enables the tenant-based
customization of SaaS applications’ business logic.
It addresses customizations that could not have been
foreseen in a domain engineering analysis, and could
not be implemented as a feature variability point as
defended by SPLE (Clemens and Northrop, 2001).
The proposed approach makes use of common
knowledge technology, in what respects to
developers, since the custom-services may be
developed in any programming language and may be
deployed in any web-server. The only limitation, in
the experiences made, and in the WMS application
being developed, is that the custom services
communicate through REST and that the objects are
passed to and from the services with JSON format,
because this is what the SaaS application is
expecting.
Table 1: Surveyed approaches to SaaS applications’
business logic customization.
Pre-determined
variability scope
Full business
logic
customization
Comments
SPLE
Sales-force
Yaish et
al. (2012)
Addresses only
data and
presentation
layers’
customizability
Xiuwei et
al. (2012)
Chen et al.
(2010)
Our
Approach
Addressed through
customization of
variable features as
recommended by
SPLE.
(Not in the scope
of this paper)
Table 1 aims to compare our approach and the state
of the art approaches, referenced in section 2.3, by
classifying them according to two main aspects:
approaches that only address pre-determined
variability scope; and, approaches that enable a full
business logic customization. In the first category,
we can find the feature variability modelling and
product variants of SPLE (Clemens et al., 2001), the
point-and-click customization feature of Salesforce
(Salesforce, 2013), and the approaches by Xiuwei et
al. (2012) and Chen et al., 2010).
The approach by Yaish et al. (2012) only
addresses data layer and presentation layer
customizability. It doesn’t address business logic
customization at any degree.
As said before, our approach addresses
customizations that could not have been foreseen in
a domain engineering analysis, and so are outside
the limitations of a metadata framework. This way,
it assumes that pre-determined feature variability is
handled through SPLE or other appropriate
approach, but the focus of our approach is, however,
deep unforeseen customizations. This way it is only
comparable to the Salesforce code customization
feature, and the solution is the same, that is making
use of open-ended development environments for
the most common programming languages to create
the needed functionality. In addition, Salesforce also
allows creating new functionality using its own
proprietary language, Apex.
AnArchitecturalModelforCustomizingtheBusinessLogicofSaaSApplications
167