and Birbeck, 2008) allow annotating web resources
and publishing Linked Data (Berners-Lee, 2006),
which makes information machine processable. Still,
there are pieces of information which are either hid-
den behind search services (or, in general, any HTML
form) or hardly accessible, so long as information dis-
covery in the Web is performed through web spider-
ing. This makes that tasks such as getting a particu-
lar archive of posts in a web log is a tough task that
requires spidering techniques such as focused crawl-
ing (Chakrabarti et al., 1999). Therefore, by describ-
ing search services semantically, access to informa-
tion would be improved.
This paper attempts to reduce the effort of build-
ing service descriptions of image search services
through the use of lightweight semantics. We
define a vocabulary for the description of image
search services by using Microservices framework, a
lightweight approach to service description inspired
in aspect-oriented and feature-oriented programming
paradigms. Microservices enable automatic discov-
ery of service descriptions, as well as reusing feature
descriptions among different services. A vocabulary
for defining descriptions for image search services has
been defined and applied on a case study of building a
metasearcher that aggregates search results from dif-
ferent search services.
The article is structured as follows. First, the
fundamentals of the Microservices framework is pre-
sented in section 2. Then, section 3 presents a vocab-
ulary for describing image search services, obtained
from the analysis of popular image search services.
Section 4 describes how this vocabulary has been ap-
plied on a case study for building a metasearcher that
aggregates search results from different search ser-
vices. Then, section 5 describes related work. Finally,
section 6 draws out the main conclusions and future
work derived from this research.
2 MICROSERVICES
FRAMEWORK
We will use Microservices framework (Fern
´
andez-
Villamor et al., 2010), a lightweight RESTful feature-
oriented service description framework for describing
services in RESTful web applications. Microservices
framework attempts to simplify the process of defin-
ing service descriptions to favour automatic service
consumption in the Semantic Web. In this section, an
introduction of the motivation behind this framework
is given, followed by a description of it.
2.1 Feature-orientation
Microservices framework apply ideas inspired in mix-
ins, aspect-oriented and feature-oriented program-
ming paradigms to semantic service description.
These paradigms extend object-oriented program-
ming by allowing the modelling of secondary con-
cerns in an isolated way. Feature-Oriented Program-
ming (FOP) (Prehofer, 1997) is a composition model
that allows refining classes through the definition of
features, i.e., subclasses with core functionality. Mix-
ins (Bracha and Cook, 1990), or abstract subclasses,
are separate groups of methods that can be inserted
into a class to override the original behaviour, but
which cannot be instantiated on their own. There-
fore, mixins serve to implement features in FOP (Apel
et al., 2006). FOP can be seen as a generalization of
traditional class inheritance in Object-Oriented Pro-
gramming, and is used to develop the so-called soft-
ware product lines, i.e. programs that provide differ-
ent combinations of features (Lopez-Herrejon, 2005).
Aspect-Oriented Programming (AOP) (Elrad
et al., 2001) similarly proposes separating concerns
that cross-cut various classes or methods, with the
logging aspect as the most popular example of a
cross-cutting concern. Code from aspects is injected
into specified join points in classes. This way, by us-
ing AOP, logging commands can be inserted into ap-
propriate join points in a class without changing the
original code of the class.
AOP and FOP are different paradigms despite the
existing similarity between them, as pointed out in
(Lopez-Herrejon, 2005), so long as they propose dif-
ferent methods to combine code (code weaving vs.
modification of inheritance chains). Some efforts try
to combine the two approaches by introducing new
concepts such as Multi Mixins, Aspectual Mixins,
and Aspectual Mixin Layers (Apel et al., 2005).
Feature and aspect orientation have inspired
other modelling approaches, such as Feature-Oriented
Model Driven Development (Trujillo et al., 2007),
in which models are created by composing features.
Similarly, Role-oriented programming (Steimann,
2000) or Subject-oriented programming (Harrison
and Ossher, 1993) regard separation of object roles
and the so-called subjective perceptions, respectively.
In Microservices framework, the idea of sepa-
rating features and concerns is employed to enable
feature-oriented service modelling. A service de-
scription is a composition of features, allowing the
reuse of feature descriptions in a similar way as fea-
tures, aspects and abstract classes are reused in the
previously mentioned paradigms. This modelling ap-
proach is described in the following section.
ENASE 2010 - International Conference on Evaluation of Novel Approaches to Software Engineering
200