A Social-Based Service Discovery Protocol forMobile Ad Hoc Networks
Michele Girolami†‡, Paolo Barsocchi†, Stefano Chessa‡, Francesco Furfari††ISTI-CNR, Pisa Research Area, Pisa, Italy. Email: {michele.girolami, paolo.barsocchi, furfari}@isti.cnr.it
‡Computer Science Department, University of Pisa, Pisa, Italy. Email: {girolami, ste}@di.unipi.it
Abstract—This work proposes an efficient proactive servicediscovery protocol that leverages the social behavior and themobility of the people. The protocol is based on the conceptthat the service discovery performance is strongly affected by themobility of the users and by their behavior along the time. Indeed,people generally have significant contacts with others with similarinterests, hence they could be interested on similar services.We present simulation results that show that our protocolachieves increased efficiency in discovering services (comparedto traditional broadcast-based mechanisms) by efficiently usingbandwidth, thus decreasing the energy consumption.
I. INTRODUCTION
The last few years have seen research development in the
field of Pervasive Computing. These researches were focused
on network infrastructures (e.g. UMTS, WiFi networks), soft-
ware architectures (e.g. distributed middleware) as well as
service discovery protocols in Smart Environments (SE) [1].
The service discovery protocol is a core part of a SE. It is
used in order to announce and to discover the services that
are available. The kinds of services available in a SE differ
with respect to the type of environment. As an example in
a Smart Home the service providers offer services for home
automation, home security or tele-health care, while in an
international airport the service providers offer indoor localiza-
tion services or tourist assistance services. In these scenarios,
we focus on the problem of devising efficient strategies for
service discovery, and specifically on the optimization of the
service advertisements propagation among devices, especially
considering two important aspects of the SE in these scenarios
that are human mobility and device autonomy.
Mobility of humans is not random, rather they move ac-
cording to one or more goals (for example, the passengers
in a international airport move towards their departure gate
to check in there). When the goals of a group of people
match for a period of time, this group forms a temporary
community. The individuals of a community share goals and
possibly interests (for example the group may share interests
about flight connections, delays, whether forecast).
When the SEs do not provide a suitable infrastructure,
autonomous devices are essential to manage efficiently their
energy budget even without any guarantee about connectivity
and reliability.
This work was supported in part by part by the European Commission inthe framework of the FP7 project universAAL (contract N.247950)
Service discovery is an important and active area of research
in the field of MANETs [2] and [3]. Some pioneering discov-
ery protocols have been proposed starting from 1999 like Jini
[4], UPnP [5], SLP [6] and Bonjour [7]. These protocols are
mainly focused for administrated and infrastructured IP-based
networks. Some works [8], [9], [10] and [11] exploit the social
aspect of humans in SEs such as in the DTN or in the PSN
(Pocket Switched Network).
The Bubble Rap algorithm [8] implements a social-based
forwarding strategy for delay tolerant networks. The authors
take into account the centrality of the nodes in order to
establish a hierarchy in the forwarding decision. A message is
first forwarded up in the hierarchical ranking until it reaches a
node in the same community of the receiver. Then the message
is forwarded locally in the community until it reaches the des-
tination. The authors use k-Clique and the Weighted Network
Analysis (WNA) algorithms to detect communities. In [9] the
authors propose a socially inspired resource discovery service
for delay tolerant networks that exploits the Community-based
Mobility Model (CMM). The resources and the nodes are
classified with interests, and the search is performed by first
sending a query to the neighbors that have similar interests. If
the resource is not found, the query is sent to every node in the
transmission range. The work presented in [10] implements a
service discovery algorithm based on the Service Rings. A ring
groups nodes that are physically close to each other and that
offer similar services. Every ring can be accessed by means of
the ring SAP (service access point) that knows a summary of
the services provided by the nodes of the same ring. The search
queries are propagated only among the SAPs of the overlay
network instead of flooding the network. This can reduce the
overhead of the protocol, however the SAPs play a crucial
role in the network and they are supposed to provide enough
resources in order to act as ring manager.
The use of Received Signal Strength (RSS) in service
discovery has been proposed in the S3D algorithm [12]. S3D
uses the RSS in order to select the links with higher quality
in order to deliver the service query. The authors observe
that the selection of high quality links allows to reduce the
latency between queries and replies and increases the success
ratio. The GSD protocol (Group-Based Service Discovery)
[13] introduces the notion of service group to establish a rela-
tionship among the services and to match the queries with the
advertisements. GSD adopts a selective forwarding schema,
where the query propagation is achieved by forwarding only
978-1-4799-1004-5/13/$31.00 ©2013 IEEE
2013 12th Annual Mediterranean Ad Hoc Networking Workshop (MED-HOC-NET)
103
to those nodes that provide services belonging to the same
group of the query, or to nodes whose neighbors provide such
services.
In this paper we propose People Like Us (PLU), a novel
proactive service discovery protocol that exploits the notion
of user communities to share service advertisements among
peers. PLU is based on the observation that social relationships
of humans in the SE can strongly influence the performance
of a service discovery strategy. Humans generally only have
significant contacts with others like themselves. Under this
respect the homophily is the principle that a contact between
similar person occurs at a higher rate than among dissimilar
people [14]. Humans interact more with others (typify as
”people like us”) who have similar interests, therefore could
be interested on similar services. This feature can be leveraged
to inform the closest ”people like us” of existing services that
potentially could be of interest. In contrast with the state of
the art, the proposed protocol does not need a localization
service to detect if two nodes are close, rather PLU exploits the
RSS values that are available in all the wireless devices [15].
PLU comprises three phases: (i) finding neighborhoods (based
on RSS): during this phase the nodes detect the neighbors
that are stable along the time. (ii) Community detection: the
nodes exploit the neighborhood in order to build a community.
(iii) Services exchange: during this phase nodes of the same
community share their interests and compute the set of adver-
tisements that are of interest for the whole community or with
a member of community. The services exchange phase allows
to mesure the interest similarity among the nodes of the same
community and to select which advertisements exchange.
PLU has been evaluated by simulation using the Hu-
man Community-based Mobility Model (HCMM) [16]. The
HCMM model reproduces the human mobility inside a
bounded region, by taking into account the social relationship
among people and the spatial properties of the region. PLU
has been compared with respect to other meaningful strategies
for the propagation of the advertisements, by obtaining some
notable results in terms of propagation of advertisements and
protocol overhead.
II. SERVICE DISCOVERY MODEL
The connections among nodes in a SE are represented as
a connected-weighted and directed graph G = (V,E), where
V = {ni} is the node set, and E = {eij = (ni, nj) : ni, nj ∈V } is the edge set. The weight of the edges in E is given by
the RSS value between the nodes (hence it varies with time).
At a given time, the RSS values are measured by means of
the function τ : V × V −→ R that, given a pair of nodes ni
and nj , estimates the signal power strength of the messages
sent by nj and received by ni. The RSS value between a pair
of nodes provides an estimation of the proximity of the node
ni with respect to the node nj (as discussed in [15]). More
formally, the function τ is defined as follows:
τ(ni, nj) =
{x ∈ R if eij ∈ E0 if eij /∈ E
(1)
Note that the RSS value between a pair of nodes is, in general,
not symmetric (i.e. τ(ni, nj) �= τ(nj , ni)). This asymmetry
is often caused from physical conditions in the environment
such as obstacles or interference that reduce the signal power
strength among nodes.
Our purpose is to model the sets of nodes in G that are
well connected; such sets are also called communities. Before
defining a community, we recall some basic definitions from
the graph theory. Given a graph H = (V,E) a clique is a set of
nodes such that every pair of nodes in this set, is connected by
an edge. The cardinality k ∈ N of the clique is also called the
order of the clique. If a clique of order k cannot be extended
with k + 1 vertices, than it is defined as maximal clique of
order k.
A community of order k is a set of k nodes that are close to
each other (the RSS value among each pair of nodes is greater
than a specific threshold) for a time period. More formally:
Definition 1. Given the connection graph G = (V,E) andgiven a threshold Trss �= 0 for the function τ , a communityC ⊆ V is a maximal clique of order k if ∀ni, nj ∈C, τ(ni, nj) ≥ Trss and τ(nj , ni) ≥ Trss for at least a timeperiod t.
Definition 1 introduces two parameters: the RSS threshold
Trss and the time period t. The threshold Trss allows to
re-size the radius of the community: if Trss decreases, the
radius of the community increases therefore the nodes of a
community can be more distant from each other. Differently,
if Trss increases the radius of the community decreases and
only the nodes close to each other will be considered as a part
of the same community.
The parameter t is used to find stable communities over the
time. In our view, a community must be composed by nodes
that are close to each other for at least a time period t. This
allows to identify nodes that share a social relationship with
other nodes, since they keep in contact for a given period.
Depending on the value of t, this can detect short lasting
communities (for example people on the same bus), or long
lasting communities (for example students attending the same
classes).
The nodes of G can access a set of services along the
time. The service advertisements are represented by the set
S = {s1, . . . , sm}, |S| = m. Each node stores in its local
cache a subset Si ⊆ S of the advertisements that are of
interest for the node. An advertisement typically comprises a
number of fields, such as the service identifier, the pointer to
the service provider (for example the URI to the provider) and
a description of the features provided by the service. However,
the actual formalism used to describe services is out of the
scope of this paper and we will not discuss it.
Services are classified according to the topics in set T . A
topic is a category to which a set of advertisements belongs
to, and to which one ore more nodes are interested in. Given
a service si the function ts : S −→ T finds its topic. In a
similar way, given the node ni the function tn : V −→ {T}finds the set of topics to which ni is interested in. Note that
2013 12th Annual Mediterranean Ad Hoc Networking Workshop (MED-HOC-NET)
104
a node could be interested in more than one topic. Given a
community C, the topics that are in common is computed by
the function tc : C −→ {T} as:
tc(C) =⋂
ni∈C
tn(ni) (2)
readynode
activenode
silentnode
p
1-p
k
k
k
tableaccess
servicequery
r
1-r
Fig. 1. State transition during the service discovery process
We model the discovery process as a finite state machine
that represents the states of the nodes and their transitions, as
shown in Figure 1. A node in the state ready node becomes
an active node (with probability p). An active node accesses a
given service si ∈ S. If the node already knows si (with
probability r), the node moves to the state table access,
otherwise it moves to the state service query. The node in the
state table access accesses to the service si without submitting
any query in the system. The node in the state service querysubmits a service query in the network in order to find the
advertisements matching with si. The node can also moves
to the state silent node (with probability 1− p) if it does not
access any service. Finally, a node returns back to the status
ready node with a fixed probability (we assume k = 1).
The probability r that a node already knows the advertise-
ment si ∈ Si increases as the node exchanges the service
advertisements with other nodes in its communities. Also,
if the node joins the community C, it will share social
relationship with members of C, and the probability of sharing
similar topics and advertisements will become higher. In turn,
if r increases, the node reduces the probability to move to the
state service query, hence reducing the number of messages
exchanged.
The probability r can be computed as follows. Let CACi
be the probability that a node visits the community Ci (as
described in [16]), k = |Ci| be the number of nodes in the
community Ci and ujv be the probability that the node nv ∈Ci already knows the service advertisement sj . We first define
the inverse probability r = 1− r that a node, entering in Ci,
does not exchange the advertisement sj . It is given by:
r = CACi ×∏
v=1,k
(1− ujv) (3)
Fig. 2. The PLU protocol
where∏
v=1,k(1 − ujv) is the probability that a member of
Ci don’t know the advertisement sj . The probability r is thus
r = 1− r.
III. THE PLU PROTOCOL
The main goal of PLU is to proactively propagate the service
advertisements that are of interest for the community. The
PLU protocol is described with Figure 2. It flows across the
following states:
• Find tight neighborhood: every node sends via broadcast
a beacon message and collects the beacon replies. Than
the node filters the neighbors with the nodes whose RSS
is over a specific threshold ( Trss as described in Section
II). This state allows to detect the contacts that are stable
along the time.
• Detect community: every node detects the communities
of nodes to which it belongs to. According to Definition
1, the node will detect only the communities composed
by nodes in the neighborhood that form a maximal clique.
• Exchange advertisements: every node exchanges the ser-
vice advertisements with the nodes in the same com-
munity. Before exchanging the service advertisements
inside the community, the nodes share their interests.
This allows to exchange service advertisements that are
of interest for the whole community, by avoiding off-
topic advertisements. The nodes return back to the initial
state (Find tight neighborhood) after a fixed time (the
beaconing period).
The rest of this section describes the algorithms adopted in
order to implement the three states of the PLU protocol.
A. Find Tight Neighborhood
The algorithm for detecting the neighborhood is reported in
Algorithm 1.
The tight neighborhood Ni is a subset of the neighbors of
each node, by looking for nodes that satisfy three conditions:
1) the nodes Ni must be neighbors (and thus connected
with ni). More precisely Ni ⊂ Ni = {nj ∈ V | eij ∈E};
2) the nodes Ni must be well connected with ni: the RSS
value between ni and every node in Ni must be greater
than the threshold Trss;
3) the nodes Ni must satisfy the previous condition for a
time period t.
To build Ni, node ni broadcast beacon messages and
records the nodes that reply, and the RSS of their messages;
2013 12th Annual Mediterranean Ad Hoc Networking Workshop (MED-HOC-NET)
105
Algorithm 1 Find the neighborhood of ni
Ensure: ni ∈ V1: function FIND NEIGHBOURHOOD
2: repeat3: Ni ← recompute(Ni)4: Trss ← computeThreshold()
5: Ni = {nj ∈ Ni | τ(ni, nj) ≥ Trss}6: ∀nj ∈ Ni, counterj = counterj + 17: until t
8: Ni = {nj ∈ Ni | counterj ≥ t}9: return Ni
10: end function
these nodes form the neighbor set Ni. Then ni evaluates
the function computeThreshold to compute the threshold
Trss, and it defines Ni as the set of nodes in Ni that have
an RSS greater than Trss. Our current implementation of
computeThreshold sets the RSS threshold with a fixed value
(in the simulations we have used the values 90, 60, and 35
that correspond to a communication range of about 10, 50,
and 100 meters, respectively). However it is possible to vary
Trss according to some parameters, such as the density of the
SE that is given by the cardinality of the set Ni.
B. Detect Community
Detect community is used to detects the communities to
which the node ni belongs to, according to Definition 1. The
algorithm is shown in Algorithm 2. For each node ni it is
aimed at finding the maximal clique among its tight neighbors.
To this purpose, ni exchanges the set Ni with all its neighbors
(and receives set Nj for each neighbor nj), and it keeps in Ni
only its neighbors for which the property of tight neighborhood
is reciprocal (lines 1-6 Algorithm 2). Then ni invokes the
function maximalCliques (see for instance [17]) to compute
the maximal clique Cni in Ni.
Figure 3 shows an example of graph G and the communities
to which n1 belongs. The undirected lines stands for a double
connection (for example eij , eji ∈ E), while the directed lines
stands for a partial connection (for example only eij ∈ E).Given node n1 such that Ni = {0, 1, 2, 3}, Algorithm 2 detects
the communities for n1: C1 = {n0,n1} and C2 = {n1,n2,n3}.Note that n4 and n5 do not belong to C2 since e34, e35 ∈ Ebut e43, e53 /∈ E.
1
2
3
4
5
0
C1
C2
Fig. 3. Graph G and communities for node n1
Algorithm 2 Detect the communities for ni
Ensure: ni ∈ V and Ni �= ∅1: function DETECT COMMUNITY
2: for all nj ∈ Ni do3: if ni /∈ Nj then4: Ni = Ni − nj
5: end if6: end for7: Cni ← maximalCliques(Ni)8: return Cni
9: end function
C. Exchange Service Advertisements
Exchange service advertisements is used to let the nodes
exchange the known service advertisements with other nodes
in the same community. After this step, each node returns back
to the initial state (Find tight neighborhood) after a fixed time
(the beaconing period). The service exchange is realized by the
Exchange Service Advertisements (ESA) algorithm (shown in
Algorithm 3). For every community C to which ni belongs
to, the advertisements exchange is achieved in two steps:
1) multicast propagation: first (lines 3-6) ni retrieves the
topics of C (either from the cache or by computing them
with the function tc(C)). The cache structure allows to
recognize communities of nodes already visited. If a
node recognizes a community, it avoids to recompute
tje topics that are in common in the community. This
mechanism allows to reduce the message overhead for
retrieving the topics. Then ni builds the set of service
advertisements known to it that are not in the service
table of the members of C, and such that the topic of the
advertisements belongs to the topic of the community.
The set Si is sent in broadcast to the community only
once.
2) unicast propagation: ni computes the sub-topic with
every node nj in the community C (line 11), and it
builds the set of service advertisements that are not
in the service table of nj and such that the topic of
the advertisements belongs to the sub-topic (line 12).
The set ¯Si is sent in unicast to nj . This allows ni to
perform a fine-grained exchange with every member of
the community. The unicast propagation has the benefit
of sending only the service advertisements that are new
to the member of the community.
IV. SIMULATIONS AND RESULTS
We have evaluated PLU and compared it against other
strategies for the propagation of the advertisements by means
of simulation. In the evaluation we have considered two
metrics:
Gain - It is the ratio between the number of advertisements
that have been founded in the service table of a node without
submitting any query, with respect to the total number of
queries submitted by a node. The gain estimates the number
2013 12th Annual Mediterranean Ad Hoc Networking Workshop (MED-HOC-NET)
106
Algorithm 3 Exchange Service Advertisements for ni
Ensure: ni ∈ V1: function EXCHANGE SERVICE ADVS(Cni
)
2: for all C ∈ Cnido
3: if the topics of C are in cache then4: topic← getTopic(C)5: else6: topic← tc(C)7: end if8: Si = {si ∈ Si | si /∈ ⋃
j∈C Sj , t(si) ∈ topic}9: sendBCast(Si, C)
10: for all nj ∈ C do11: subTopic← tc(ni, nj)12:
¯Si = {si ∈ Si | si /∈ Sj , t(si) ∈ subTopic}13: sendUCast( ¯Si, nj)
14: end for15: end for16: end function
of queries that have been answered by only looking at the
service table without any further interaction. The gain is bound
between [0,1]. A gain equal to 0 implies that all the service
advertisements have been obtained by submitting a query in
the network (the worst case), while gain equal to 1 implies
that all the service advertisements have been answered by
accessing to the service table (the optimal case).
Recall - A service sj is of interest for the node ni if the
topic of sj matches with the topic of ni. The recall is the ratio
between the number of advertisements in the service table of
ni that are of interest for ni, with respect to the total number
of advertisements of interest for ni available in the SE. The
recall evaluates how PLU propagates the advertisements of
interest for the nodes, by avoiding to store advertisements that
are off-topic. The recall is bound between [0,1]. The value 0
for recall implies that none of the services of interest for ni
are in the service table Si (the worst case). A recall equal to
1 implies that all the services of interest of ni available in the
SE are in Si (the optimal case).
Cost - The energy consumed by a node during the execution
of the PLU protocol.
Next subsections present how we computed the the cost and
the simulation results that we obtained.
A. Cost Model of PLU
The cost model of PLU exploits the following parameters:
• min and mout are the unit cost for sending and receiving
a message (they vary according to the communication
protocol implemented by the nodes and to the used
wireless interfaces);
• σ is the function that, given a number of elements
(services or topics), computes the number of messages
that are required in order to deliver the elements (the
number of messages required varies according to the
communication protocol used);
• |Ni| is the average number of nodes in the neighborhood;
• |C| is the average number of nodes in a community;
• |Si| is the average number of advertisements in the
service table of a node;
• ¯|Si| and ¯|Si| is the average number of services sent in
broadcast and unicast;
Cost of Find Tight Neighborhood - The cost for this
algorithm is given by:
c1 = t · (mout + dr ·min) (4)
The cost is given by one beacon message (mout) and drincoming messages. Where dr is the average number of
nodes that reply to the beacon message sent by ni. t is
number of iterations used in order to check the stability of
the neighborhood.
Cost of Detect Community - The cost for detecting the
communities of the node ni is:
c2 = σ(|Ni|) ·mout + |Ni| · σ(|Ni|) ·min (5)
This cost accounts for sending the set Ni to the neighborhood
via broadcast, and receiving the set Ni from every node in the
neighborhood (line 3 in Algorithm 2).
Cost of Exchange Service Advertisements (ESA) - This cost
is the sum of three parts:
• τ - cost of the function tc• β - cost for sending the base advertisements of interest
for the whole community
• δ - cost of sending the delta advertisements of interest
only for one member of the community.
The total cost of ESA is thus: c3 = τ + β + δ, where τ is
evaluated as:
τ = σ(|topic|) ·mout + (|C| − 1) · σ(|tn(nj)|) ·min (6)
in which σ(|topic|)·mout is the cost for sending, via multicast,
the request for the topics to the nodes in the community (the
topics are computed by the function tn defined in Section II)
and (|C|−1)·σ(|tn(nj)|)·min is the cost for receiving |C|−1replies from the nodes in the community with their topics.
β is evaluated as:
β = σ(|Si|) ·mout + (|C| − 1) · σ(|Si|) ·min+
σ(|Si|) ·mout + (|C| − 1) · σ(|Si|) ·min
(7)
in which σ(|Si|) · mout is the cost for sending via mul-
ticast the advertisements to the nodes in the community,
(|C|−1) ·σ(|Si|) ·min is the cost for receiving |C|−1 replies
from the nodes in the community, σ( ¯|Si|) · mout is the cost
for sending via broadcast the set of services of interest for
the community and (|C| − 1) · σ( ¯|Si|) · min is the cost for
receiving |C|−1 messages with the sevices of interest for the
community from a node. Since the cost of sending/receiving
the service advertisements |Si| is lower with respect to the cost
of sending/receiving the services ¯|Si|, PLU has been designed
to discover first the services of interest for the community and
later to transmit them.
2013 12th Annual Mediterranean Ad Hoc Networking Workshop (MED-HOC-NET)
107
0 0.5 1 1.5 2 2.5 30
0.2
0.4
0.6
0.8
1
Time [h]
0 0.5 1 1.5 2 2.5 30
0.2
0.4
0.6
0.8
1
Time [h]
0 0.5 1 1.5 2 2.5 30
0.2
0.4
0.6
0.8
1
Time [h]
0 0.5 1 1.5 2 2.5 30
0.2
0.4
0.6
0.8
1
Time [h]
0 0.5 1 1.5 2 2.5 30
0.2
0.4
0.6
0.8
1
Time [h]
0 0.5 1 1.5 2 2.5 30
0.2
0.4
0.6
0.8
1
Time [h]
PLU gain PLU recall Flooding gain Flooding recall
TRSS
= 35
TRSS
= 60
TRSS
= 90
PLU−S PLU
Fig. 4. Comparison of gain and recall between PLU/PLU-S and the flooding-based strategy. The performance is given in a matrix fashion: three rows (onefor each Trss) and two columns (for each PLU protocol).
Finally, δ is evaluated as:
δ = (|C| − 1) · σ( ¯|Si|) ·mout + (|C| − 1) · σ( ¯|Si|) ·min (8)
where (|C| − 1) · σ( ¯|Si|) · mout is the cost for sending via
unicast the advertisements of interest for only one member of
the community, and (|C| − 1) · σ( ¯|Si|) · min is the cost for
receiving via unicast the advertisements of interest from the
members of the community from one node.
B. Simulation results
We have evaluated and compared PLU with respect to
two other strategies for the propagation the advertisements:
PLU-S and a flooding-based strategy. The PLU-S version is
a simplified version of PLU that differs with respect to the
implementation of Algorithm 3. In particular, PLU-S does not
implement the unicast propagation and uses only broadcast to
send the advertisements that are of interest for the whole com-
munity. With the flooding-based strategy a node propagates
its advertisements to the neighborhood without detecting the
communities and the topics of interest for the neighborhood.
The flooding strategy is an interesting benchmark for the
gain metric, since the flooding maximizes the propagation of
every type of advertisement in the network. The objective of
these simulations is twofold. First we show that PLU protocol
obtains values for the gain metric equal to that of flooding and
higher than that of PLU-S, and values for the recall metric
higher than those of flooding and PLU-S. Second, we show
that the cost of PLU protocol is lower than flooding and PLU-
S.
We have configured the simulator by using the HCMM
mobility model, with a SE comprising 100 nodes deployed in a
square area of side 1000 meters. The number of service topics
are 20 and the available services are 100. We have configured
the simulator with a t-period for community detection of 10
seconds, a b-period for beaconing of 300 seconds, values of
Trss equal to 90, 60 and 35, and a simulation time of 10000
seconds. Table I summarizes the parameters used during our
simulations.
The simulator executes 3 runs for each protocol (PLU, PLU-
S and flooding-based strategy) and, in each run, it computes
gain, recall metrics and cost in terms of number of messages
exchanged . The results that we obtained during the simula-
2013 12th Annual Mediterranean Ad Hoc Networking Workshop (MED-HOC-NET)
108
0 0.5 1 1.5 2 2.5 30
5
10
15
20
25
Time [h]
Cost [J
oule
]
0 0.5 1 1.5 2 2.5 30
5
10
15
20
25
Time [h]
Cost [J
oule
]
0 0.5 1 1.5 2 2.5 30
5
10
15
20
25
Time [h]
Cost [J
oule
]
0 0.5 1 1.5 2 2.5 30
5
10
15
20
25
Time [h]
Cost [J
oule
]
0 0.5 1 1.5 2 2.5 30
5
10
15
20
25
Time [h]
Cost [J
oule
]
0 0.5 1 1.5 2 2.5 30
5
10
15
20
25
Time [h]
Cost [J
oule
]
PLU / PLU−S
Flooding
TRSS
= 90
TRSS
= 60
PLU−S PLU
TRSS
= 35
Fig. 5. Comparison of the costs between PLU/PLU-S and the flooding-based strategy. The cost is given in a matrix fashion: three rows (one for each Trss)and two columns (for PLU and PLU-S protocols).
TABLE IPARAMETERS USED FOR THE SIMULATIONS
Parameters Values
wide 1000x1000 meters
mobile nodes 100
service topics 20
available services 100
t-period for community detection 10 seconds
b-period for beaconing 300 seconds
Trss 90, 60, 35
simulation time 10000 seconds
tions are reported in Figure 4 and Figure 5.
Figure 4 reports the gain and recall for Trss equal to 90, 60
and 35. By increasing or decreasing the threshold, PLU detects
bigger or smaller communities of nodes and this affects the
gain and recall for the PLU and PLU-S strategies.
As far as the PLU-S protocol is concerned, the flooding-
based strategy outperforms PLU-S protocol with respect to
the gain, but not with respect to the recall. The flooding
strategy has the advantage of maximizing the propagation of
the advertisements since the nodes propagate every type of
advertisements to every nodes that is nearby. At the same
time, the nodes propagate a huge number of advertisements
that are off-topic. The result is an high value for the gain
but a very low value for the recall metric then PLU-S.
Differently, PLU-S implements a more fine-grained selection
of the advertisements to exchange, and this causes a near-
optimal value for the recall and an acceptable value for gain.
As far as the PLU protocol is concerned, the gain value of
the PLU protocol is closer to the flooding than PLU-S and,
at the same time, the recall value of PLU is higher than that
of flooding. This behavior demonstrates that the selection of
the advertisements implemented with Algorithm 3 is able to
obtain good values of the gain and recall simultaneously.
Figure 5 reports the cost obtained according to the model
described in section IV-A. To evaluate the costs we have
assumed that nodes are equipped with a standard WiFi 802.11
network interface, with an maximum transfer unit (MTU)
equal to 1500 bytes, and that the description of a service
accounts for 280 bytes. Table II reports the parameters used
2013 12th Annual Mediterranean Ad Hoc Networking Workshop (MED-HOC-NET)
109
TABLE IIPARAMETERS USED FOR EVALUATING THE COSTS
Parameters Values
network interface WiFI 802.11
MTU payload 1500 byte
Description of a service 280 byte
in order to compute the cost for PLU, PLU-S and flooding.
In the simulation we modeled energy consumption of the
Samsung Omnia i900 [18] equipped with WiFi interface card
and Ethernet network protocol (with a maximum transfer unit-
MTU equal to 1500 bytes). We assume that every service can
be described with 280 byte, in a similar way to the UPnP
protocol (we considered the dimension of typical UPnP SSDP
Alive message of 300 Byte).
Figure 5 shows that PLU-S and PLU outperform the flood-
ing after a fixed time of the simulation. PLU-S and PLU
propagate a higher number of messages then the flooding only
during the initial phase of the simulation, but after a short
period of time the cost of PLU-S and PLU decreases since the
nodes already own the advertisements that are of interest. We
argue than PLU-S and PLU have been designed by considering
the social aspect of the SE, hence the tuning of an appropriate
threshold guarantees the benefits of detecting and exchanging
the advertisements of interest for the communities.
V. CONCLUSION
The PLU protocol aims at proactive service discovery in
Smart Environments by exploiting the social behavior of
people. By simulation, we have shown that this approach
allows energy savings of mobile terminals with respect to
the traditional broadcast-based mechanisms, while providing
the same standards of efficiency in discovering services and
avoiding to store services that are out of topic. Ongoing work
is about the definition of a dynamic threshold for the detection
of the communities and the use of Bloom filters to select
more efficiently the advertisements to be exchanged within
a community.
REFERENCES
[1] M. Girolami, F. Furfari, and S. Chessa, “A cost-based model for servicediscovery in smart environments,” in Ambient Intelligence, ser. LectureNotes in Computer Science, F. Patern, B. de Ruyter, P. Markopoulos,C. Santoro, E. van Loenen, and K. Luyten, Eds. Springer Berlin /Heidelberg, 2012, vol. 7683, pp. 397–402.
[2] C. Ververidis and G. Polyzos, “Service discovery for mobile ad hocnetworks: a survey of issues and techniques,” Communications SurveysTutorials, IEEE, vol. 10, no. 3, pp. 30 –45, quarter 2008.
[3] C. Campo, M. Munoz, J. C. Perea, A. Marin, and C. Garcia-Rubio,“Pdp and gsdl: A new service discovery middleware to supportspontaneous interactions in pervasive systems,” in Proceedings of theThird IEEE International Conference on Pervasive Computing andCommunications Workshops, ser. PERCOMW ’05. Washington, DC,USA: IEEE Computer Society, 2005, pp. 178–182. [Online]. Available:http://dx.doi.org/10.1109/PERCOMW.2005.61
[4] J. W. Arnold B. O Sullivan, R. W. Sheifler and A. Wollrath, “The jinispecification,” sun Microsystems Inc.
[5] M. Corporation, “Universal plug and play: Background,” 1999,http://www.upnp.org/resources/UPnPbkgnd.htm.
[6] E. Guttman, “Service location protocol version 2,” 1999, iETF RFC2608.
[7] A. Inc, “Bonjour technology white paper,” 2007.[8] P. Hui, J. Crowcroft, and E. Yoneki, “Bubble rap: Social-based forward-
ing in delay-tolerant networks,” Mobile Computing, IEEE Transactionson, vol. 10, no. 11, pp. 1576 –1589, nov. 2011.
[9] T. D. Nguyen and S. Rouvrais, “A socially inspired peer-to-peerresource discovery service for delay tolerant networks,” in Proceedingsof the 2007 OTM Confederated international conference on On themove to meaningful internet systems - Volume Part II, ser. OTM’07.Berlin, Heidelberg: Springer-Verlag, 2007, pp. 960–969. [Online].Available: http://dl.acm.org/citation.cfm?id=1780453.1780480
[10] M. Klein, B. Konig-Ries, and P. Obreiter, “Service rings - asemantic overlay for service discovery in ad hoc networks,” inProceedings of the 14th International Workshop on Database andExpert Systems Applications, ser. DEXA ’03. Washington, DC,USA: IEEE Computer Society, 2003, pp. 180–. [Online]. Available:http://dl.acm.org/citation.cfm?id=942790.942957
[11] C. Boldrini, M. Conti, and A. Passarella, “Contentplace: social-aware data dissemination in opportunistic networks,” in Proceedingsof the 11th international symposium on Modeling, analysis andsimulation of wireless and mobile systems, ser. MSWiM ’08. NewYork, NY, USA: ACM, 2008, pp. 203–210. [Online]. Available:http://doi.acm.org/10.1145/1454503.1454541
[12] J. Liu and V. Issarny, “Signal strength based service discovery (s3d) inmobile ad hoc networks,” in Personal, Indoor and Mobile Radio Com-munications, 2005. PIMRC 2005. IEEE 16th International Symposiumon, vol. 2, sept. 2005, pp. 811 –815 Vol. 2.
[13] D. Chakraborty, A. Joshi, Y. Yesha, and T. Finin, “Toward distributedservice discovery in pervasive computing environments,” Mobile Com-puting, IEEE Transactions on, vol. 5, no. 2, pp. 97 – 112, feb. 2006.
[14] M. McPherson, L. S. Lovin, and J. M. Cook, “Birds ofa Feather: Homophily in Social Networks,” Annual Review ofSociology, vol. 27, no. 1, pp. 415–444, 2001. [Online]. Available:http://dx.doi.org/10.1146/annurev.soc.27.1.415
[15] P. Barsocchi, S. Lenzi, S. Chessa, and F. Furfari, “Automatic virtualcalibration of range-based indoor localization systems,” WirelessCommunications and Mobile Computing, vol. 12, no. 17, pp. 1546–1557, 2012. [Online]. Available: http://dx.doi.org/10.1002/wcm.1085
[16] C. Boldrini and A. Passarella, “Hcmm: Modelling spatial and temporalproperties of human mobility driven by users social relationships,”Computer Communications, vol. 33, no. 9, pp. 1056–1074, 2010.
[17] E. A. Akkoyunlu, “The enumeration of maximal cliques of large graphs,”SIAM J. Comput., pp. 1–6, 1973.
[18] R. Friedman, A. Kogan, and Y. Krivolapov, “On power and throughputtradeoffs of wifi and bluetooth in smartphones,” in INFOCOM, 2011Proceedings IEEE, april 2011, pp. 900 –908.
2013 12th Annual Mediterranean Ad Hoc Networking Workshop (MED-HOC-NET)
110