This paper describes our CUBE model concept for
the design of Web applications and how and to which
extent current technologies can support its novel re-
quirements. This paper is structured as follows: Sec-
tion 2 provides a background regarding the previously
mentioned main constraints. Section 3 discusses engi-
neering in light of present Web technologies. Section
4 provides extended discussions regarding our find-
ings and Section 5 gives concluding remarks high-
lighting future research directions.
2 CUBE MODEL APPROACH
MOTIVATIONS
This section describes how different techniques and
perceptions led us to our proposal, and how we ex-
tracted the best state-of-art practices and built them
into our CUBE model.
2.1 RESTful Principals and Constraints
We can assume that, while service-oriented comput-
ing becomes adopted every day, SOAP-based APIs
is more and more giving place for REST-based ap-
proaches. According to (Mahdi Bennara and Amghar,
2014) in 2014, 2125 SOAP-based APIs were devel-
oped, against 6833 REST-based ones.
To be defined as RESTful, the platform should fol-
low some principles, as described in (Pautasso, 2014),
which, in general, lead to high system performance,
reduced consumption, high interoperability and secu-
rity in all devices, as well as encapsulated legacy sys-
tems.
In addition, RESTful services should also respect
some constraints, such as: i) Stateless interaction, ii)
Resource linking, iii) Identification or addressability
of resources, iv) Uniform interface, v) Hypermedia as
a mechanism for decentralized resources and vi) Self-
describing messages (Mahdi Bennara and Amghar,
2014) (Pautasso, 2014) (Panziera and Paoli, 2013).
Thus, when all these principles and constraints
are put together as best practices to create a REST-
based application (API or Framework), another prob-
lem emerges: Which language can be used to support
a level 3 RESTful characteristic? What should be
the choice in order to support hypermedia controls?
These questions lead to the concept of maturity soft-
ware addressed in the next subsection.
2.2 Maturity Software
A level 3 RESTful characteristic relays in the ability
of a service to change the set of links that are given to
a client based on the current state of a resource (Pau-
tasso, 2014) (Lanthaler and Gtl, 2011). In this context
hypermedia support controls XML and JSON (Tuan-
Dat Trinh et al., 2015) are not able to achieve a real
Level 3. On the other hand Atom, XHTML or JSON-
L are able to do so (Pautasso, 2014).
However, what exactly does this mean? An API
to be defined as RESTful should be fully mature,
thus, making use of hypermedia in order to model
the relationship between resources. As put simply by
(Savas Parastatidis and Robinson, 2010) that hyper-
media drives systems to transform their application
state.
Still according to (Savas Parastatidis and Robin-
son, 2010), the hypermedia system is described by
participants as a transferring resource representation
that contains links according to an application proto-
col.
The maturity level of a service also affects the
quality attributes of the architecture in which the ser-
vice is embedded (Pautasso, 2014). That is why a
standardized and uniform interface was applied to
each resource in order to remove unnecessary vari-
ations and to enabling all services to interact with
all resources within the architecture, thus promot-
ing interoperability and serendipitous reuse (Vinoski,
2008), (Pautasso, 2014).
2.3 Instantiation Resources
In a scenario of multiple devices, the instantiation re-
source feature is significantly important. This is a
key feature of most RESTful Web Services, which en-
ables clients to create new resource identifiers and set
the corresponding state to an initial value (Pautasso,
2014).
Consequently, a resource can either be set by the
service or by the client. Thus, it is possible to as-
sume that the URI created by the service is unique,
while it is possible that multiple clients generate the
same identifier (Pautasso, 2014). This feature can be
used in order to provide a new set of services de-
livered by different servers to the same client. But,
in order to do this, the approach proposal described
by (Tommi Mikkonen and Pautasso, 2015) should be
modified for an inside perspective, where the services
are shared by the connected devices.
In this aspect, we allow for the use of POST, GET,
SET and DELETE to be managed by the API in or-
der to achieve the result expected by the client. Thus,
it seems necessary to establish a better appliance of
semantics concepts, not only in the Instantiation Re-
sources but also in the Link Header, which changes
significantly according to client behavior.
Diamond - A Cube Model Proposal based on a Centric Architecture Approach to Enhance Liquid Software Model Approaches
383