Semantic Matching to Achieve Software Component Discovery
and Composition
Sofien Khemakhem
1
, Khalil Drira
2, 3
and Mohamed Jmaiel
1
1
University of Sfax, National School of Engineers, Laboratory ReDCAD, P.B.W. 3038 Sfax, Tunisia
2
CNRS, LAAS, 7 Avenue du Colonel Roche, F-31400 Toulouse, France
3
Universit
´
e de Toulouse, LAAS, F-31400 Toulouse, France
Keywords:
Ontology, Software Component, Discovery, Composition, Integration.
Abstract:
In CBSE, current approaches based on software component are in short of flexibility because of lacking se-
mantic. In this paper, we introduce an extended semantic discovery of software components in which non
functional properties of components are considered. We also introduce an ontology supported automatic com-
ponent composition method to realize the integration of the adequate component composite in the current
project.
1 INTRODUCTION
Since the middle of 1990’s, object-oriented program-
ming becomes a key component in software engineer-
ing. Many reserach in software development focus
on software reuse, (Khemakhem et al., 2011) while
the software composition becomes an important com-
ponent in software engineering. To resolve the dif-
ficulty of manually building a composite component,
there have been many studies on the automated com-
position of software components (Seog-Chan et al.,
2006). Previous works specify the semantic descrip-
tion of a component using service specification lan-
guages such as OWL-S (Chaari et al., 2013), WSMO
(de Bruijn et al., 2005), and SAWSDL (Akkiraju
et al., 2007) based on a domain ontology, which is
built by an ontological language such as OWL (Smith
et al., 2004). Likewise, a developer’s request is speci-
fied in terms of inputs, outputs, preconditions and ef-
fects. From these specifications, they automatically
build composite components using various AI (Ar-
tificial Intelligence) techniques. Previous methods
construct composite components, which take the in-
puts entered by a developer and return the outputs re-
quested, by repeatedly discovering and chaining ap-
propriate components. When two components are
chained, the preceding component should satisfy the
precondition of the following component. Generally,
two components with identical inputs, outputs, pre-
conditions, and effects are regard as identical com-
ponents. Therefore, if a composite software compo-
nent satisfies the inputs, outputs, preconditions, and
effects requested by a developer, it is regarded as sat-
isfying the user requirement. However, when compo-
nents or user requirements do not have pre-conditions
and effects, the conventional methods may generate
composite components, which differ from a devel-
oper’s needs. In general, two components with the
same IOPE (input, output, pre-condition and effect)
are considered to be identical each other (Chaari and
Fakhfakh, 2012). However, non-functional properties
(Junghans and Agarwal, 2010), which provide certain
information about component constraint to users, may
not need any preconditions and have no effects af-
ter execution. In previous works query is based on
IOPE, cannot compose correctly if the non-functional
aspect of the disred composite component is not spec-
ified. In several cases, the non-functional constraints
play a decisive role in the choice of the most power-
ful composite component. previous works have ex-
ponential time complexity in proportion to the num-
ber of available components, since they have to con-
sider every possible combination of available compo-
nents. In this paper we aim to define a unified and
a complete approach to ameliorate the reuse of soft-
ware components in the CBD. Our approach encom-
passes the functional and the non-functional aspect in
different stage: description, discovering, composition
and integration. To achieve our objective we develop
three ontologies. Two ontologies are used to discover
atomic and composite components which are the dis-
covery and the shared ontology. The third ontology
145
Khemakhem S., Drira K. and Jmaiel M..
Semantic Matching to Achieve Software Component Discovery and Composition.
DOI: 10.5220/0004369201450148
In Proceedings of the 9th International Conference on Web Information Systems and Technologies (WEBIST-2013), pages 145-148
ISBN: 978-989-8565-54-9
Copyright
c
2013 SCITEPRESS (Science and Technology Publications, Lda.)
is the integration ontology which describes the com-
ponent’s internal structure to facilitate its integration
in the current work after its selection. To improve
the integration process we also use, Output-Matching-
Service and Input-Output-convertor are service types
used in matching parameters. This paper is organized
as follows: Section 2 presents the discovery and the
integration ontology. We will devote section 3 to de-
tail the shared ontology for composite component dis-
covery. We explain in section 4 how mapping is done
between the discovery ontology and the shared ontol-
ogy. In conclusion, we will suggest some openings
and prospects related to this study.
2 THE DISCOVERY AND THE
INTEGRATION ONTOLOGY
We describe the semantics of components to express
knowledge about functional and non-functional as-
pects of a component. This knowledge comprises:
The structural aspects that specify the compo-
nent’s internal structure. The developer uses these
aspects to determine if interaction exists between
component operations and other components used
to build the current project.
The functional aspects that identify the function-
alities of the component is expected to provide
through many features. These features include
methods that are used to adapt the behavior of
the component to his context. The adaptation is
made by specializing and customizing. The other
kinds of features are used by the application spe-
cific part of a component-based software. Gen-
erally this type of information is specified by the
component’s methods.
The non functional aspect specifies the compo-
nent constraints related to communication or com-
putation. The non functional aspect includes
features such as performance, availability, reli-
ability, security, adaptability and dependability.
We distinguish static and dynamic categories of
non functional features. Static features, such as
security-related constraints, do not change during
component execution. Dynamic features, such as
performance-related properties, depend on the de-
ployment environment.
All these features represent different and comple-
mentary views of a component. The feature set used
to describe a component, depends on the developer
action: discovery and integration. The discovery of a
component is made by sending a query to the repos-
itory manager. Once a set of components has been
selected, additional features are specified to select a
component before integration. For the discovery ac-
tion, the query includes functional and/or non func-
tional features. For integration action, the structural
features have to be specified.
The underlying approach for SEC++ is based on
the following ontologies( see Figure 1): (Khemakhem
et al., 2010)
The discovery ontology that specifies functional
and non functional features.
The integration ontology that describes the prob-
lem solving method (PSMs) used to specify the
component’s structural features.
Figure 1: Discovery and integration ontologies.
3 THE SHARED ONTOLOGY
FOR COMPOSITE
COMPONENT DISCOVERY
This approach exploits the advantages of seman-
tic composition approaches, powered by ontologies
at both component discovery and integration levels.
Building on top of that, we introduce an ontology-
based semantic approach. First, the semantic com-
ponent specification provides a mechanism to enrich
atomic components with more semantics than the syn-
tactical method. Second, mapping atomic compo-
nents and other relevant concepts into a centralized
shared ontology offers a knowledge repository for
software components (see Figure 2). The objective
of semantic enhancement is to support ontological
heuristics in order to enable automated and dynamic
component composition. When our enhanced search
engine SEC++ receives a query from a consumer, it
first searches the discovery ontology. Our approach
enhances the discovery ontology with a shared on-
tology. This centralized ontology represents relevant
WEBIST2013-9thInternationalConferenceonWebInformationSystemsandTechnologies
146
components and concepts in a specific domain, con-
structed by mapping and integrating individual dis-
covery ontologies for software components. Here,
the ontological heuristics serves as guidelines to re-
spond to a developer request. After using ontologi-
cal heuristics on the shared ontology, SEC++ gener-
ates a number of alternative solutions to component
composition. These alternatives are then evaluated
by a decision engine using a set of criteria specified
by the developer. Such criteria may include QoS-
based optimization of component composition, busi-
ness rules and strategies. A selected optimal compo-
sition scheme is then executed.
As for the integration ontology, we employ prob-
lem solving method to develop a local ontology for
component. In the integration ontology we try to di-
vide the component process into tasks. Tasks are ei-
ther solved directly (by means of primitive methods),
or are decomposed into subtasks (by means of de-
composition methods). We use the Unified Problem-
Solving Method Language (UPML) to describe the
components of PSMs (task, method and adapter).
Similarly, the component model subclass is especially
beneficial for composition ( see Figure 1). The pro-
posed approach utilizes the component model class in
two ways. For base components, a component model
keeps information about composability, which speci-
fies when the component can be used in a composite
component. For composite components, a component
model maintains alternative composite solutions in-
crementally for reuse. This semantic enrichment pro-
vides a self-learning capability of component compo-
sition.
Integration
ontology
= Shared ontology
Software components
Discovery
ontology
Meta data
Ontological heuristic
Figure 2: An ontology-supported system for component
composition.
Local integration ontologies are consolidated in a
server by ontology mapping and integration. As a re-
sult, all relevant concepts and components in a do-
main are in the shared ontology, local discovery ontol-
ogy for a component is mapped into the shared ontol-
ogy, appearing as a node in the ontology tree. How to
organize all components into the repository depends
on domains and application requirements. For exam-
ple, for calculating Matrix we can maintain semantic
relationships (e.g., hierarchical and sibling relation-
ships) between Matrix operations. The shared on-
tology also represents other application-specific con-
cepts for mapping and integrating components. The
mapping and integration not only unite component
descriptions and concepts but also add more seman-
tics. Moreover, the shared ontology enables ontolog-
ical heuristics, thus facilitating dynamic component
composition. For example, we can study composabil-
ity of components based on some generic concepts.
As a simple example, when composing component
C2 that calculates the determinant of a real matrix by
receiving the output parameters of a component C1
that calculates the sum of two matrix which have a
natural type. At first glance, these two components
cannot be composed. However, the relationship be-
tween real and natural is revealed in the type ontol-
ogy: natural is included in real.
4 MAPPING THE DISCOVERY
ONTOLOGY INTO
INTEGRATION ONTOLOGY
In this section, we present a prototype system
for mapping a discovery ontology of mathemati-
cal service into integration ontology, which is de-
veloped based on the proposed ontology-supported
software component integration. Our prototype
system employs W3C-recommended standards (i.e.,
RDF+OWL) for semantic description and ontologi-
cal engineering. The software utilized for this task is
Prot
´
eg
´
e 3.4.4. At the discovery ontology description
level, the prototype system translates component de-
scriptions and then adds more semantics in the com-
ponent model class. The composability property of
the component model class can have values denoting
possible ways for component composition.
Taking the Linear system resolution component as
an example, its composability contains a list of possi-
ble parameter flows (from inputs to outputs), each of
which can be a part of an alternative path in a compos-
ite component (Complex Matrix Complex Ma-
trix), (Reel Matrix Real Matrix).
Another way to exploit composability is first to at-
tach composability to other properties with concrete
meanings, then associate composability with compo-
sition rules.
All individual discovery ontologies are mapped
together, appearing as nodes or subclasses in the
shared ontology. For example, the LSR component
is a subclass of the LS class (see Figure 3). The pro-
totype can extract some metadata from individual dis-
covery ontologies and map into the shared one. After
SemanticMatchingtoAchieveSoftwareComponentDiscoveryandComposition
147
Figure 3: mapping the discovery ontology individual in-
stances into shared ontology.
organizing those base Matrix Operation services into
a shared knowledge repository, the prototype adds
other concepts relevant to Matrix operations, either
domain-specific or generic, such as Type.
5 CONCLUSIONS
In this paper, we presented the latest version of
SEC: SEC++, which cover the whole set of on-
tologies. It is a persistent component for discov-
ering atomic and composite components. It deliv-
ers services and helps the developer to locate ap-
propriate components for integration into the cur-
rent work. To ensure the successfulness of this pro-
cess, we developed the discovery, the integration and
the shared ontologies. The ontological heuristics
in used to enable automated and dynamic compo-
nent composition. To improve the integration process
we have used Output-Matching-Service and Input-
Output-convertor service types used in matching pa-
rameters. In the future work, we plan to develop a
fuzzy search system that aims to discover component
which is most relevant to the user according to his/her
perception.
REFERENCES
Akkiraju, R., Bournez, C., Domingue, J., Farrell, J., Ferrari,
L., and Henocque, L. (2007). Semantic Annotations
for WSDL and XML Schema, W3C recommenda-
tion edition.
Chaari, T. and Fakhfakh, K. (2012). Semantic model-
ing and reasoning at runtime for autonomous sys-
tems engineering. In 9th International Conference on
Ubiquitous Intelligence and Computing & Autonomic
Trusted Computing(UIC/ATC).
Chaari, T., Tazi, S., Jmaiel, M., and Drira, K. (2013).
ODACE SLA: Ontology driven approach for auto-
matic establishment of service level agreements. IJS-
SOE, 1(3).
de Bruijn, J., Bussler, C., Domingue, J., Fensel, D., Hepp,
M., Keller, U., and Kife, M. (2005). Web Service Mod-
eling Ontology (WSMO), W3C recommendation edi-
tion.
Junghans, M. and Agarwal, S. (2010). Web service dis-
covery based on unified view on functional and non-
functional properties. In Proceedings of the 4th
IEEE International Conference on Semantic Comput-
ing (ICSC 2010). IEEE Computer Society.
Khemakhem, S., Drira, K., and Jmaiel, M. (2010). An in-
tegration ontology for components composition. In
International Journal of Web Portals, 2(3):35–42.
Khemakhem, S., Drira, K., and Jmaiel, M. (2011). Modern
Software Engineering Concepts and Practices: Ad-
vanced Approaches, chapter Description, classifica-
tion and discovery approaches for software compo-
nents: a comparative study. IGI publisher.
Seog-Chan, Lee, D., and Kumara, S. R. T. (2006). A com-
parative illustration of AI planning-based web ser-
vices composition. SIGecom Exch., 5(5):1–10.
Smith, M. K., Welty, C., and McGuinness, D. L. (2004).
OWL Web Ontology Language Guide, W3C recom-
mendation edition.
WEBIST2013-9thInternationalConferenceonWebInformationSystemsandTechnologies
148