Future Generation Computer Systems 34 (2014) 176–189
Contents lists available at ScienceDirect
Future Generation Computer Systems journal homepage: www.elsevier.com/locate/fgcs
An architecture for automatic service composition in MANET using a distributed service graph Unai Aguilera ∗ , Diego López-de-Ipiña Deusto Institute of Technology - DeustoTech, University of Deusto, Avda. Universidades 24, 48007 Bilbao, Spain
highlights • • • • •
We propose a service composition protocol for MANETS based on a distributed graph. A distributed graph is used to reduce the time needed to locate valid compositions. Graph is constructed an maintained during the network’s lifetime. Simulation shows that the graph effectively reduces service composition time. However, the graph maintenance process has a penalty in the network congestion.
article
info
Article history: Received 20 February 2013 Received in revised form 22 July 2013 Accepted 26 July 2013 Available online 1 November 2013 Keywords: Automatic service composition Mobile ad hoc networks Distributed service graph Semantic compatibility Integrated routing
abstract Mobile ad hoc networks (MANET) are wireless networks characterized by the dynamic nature of their members. The creation of these networks occurs in an unplanned manner and as a response to the distribution of services at each moment of its lifetime. The topology of a MANET can rapidly change and, therefore, these networks require mechanisms which allow participant devices to communicate with each other in spite of their mobility. A MANET can be applied in those situations where the deployment of a network without a fixed infrastructure is required. This research proposes a new protocol for the automatic composition of services in MANETs based on the construction and maintenance of a distributed service graph-DSG. This graph makes it possible to obtain the dependencies which exist among different services provided by the network devices, during a network’s lifetime, still responding to the changes which could arise. Later, this graph will be used during the composition process to reduce the time needed to locate valid solutions. Finally, the proposed architecture is fully implemented and evaluated using a network simulator, in order to gain knowledge about its advantages and limitations. © 2013 Elsevier B.V. All rights reserved.
1. Introduction Service composition is a paradigm that can provide great benefits to the user in those environments constituted by devices connected through mobile ad-hoc networks (MANETs). These networks, a particular kind of wireless networks, are composed of nodes that communicate among each other using neighbour broadcasting and performing collaborative routing of transmitted messages. The lack of a fixed communication infrastructure means that solutions must be adaptable to those topology changes that could arise at any moment. The dynamism of these networks arises from the fact that nodes may join or leave the network at any moment. Due the mobility of the network, it is not always possible to find compatible services on MANETs. In those cases, a solution based on
∗
Corresponding author. Tel.: +34 944139003x2977. E-mail addresses:
[email protected] (U. Aguilera),
[email protected] (D. López-de-Ipiña). 0167-739X/$ – see front matter © 2013 Elsevier B.V. All rights reserved. http://dx.doi.org/10.1016/j.future.2013.07.021
composing available services could be applied. The problem of service discovery and composition applied to mobile ad hoc networks has attracted a lot of attention in recent years. However, as will be explained in Section 8, current proposals are based on the idea of using a predefined work-flow that defines the participant services and their relationships. This work-flow is instantiated during the composition process using services that are available and accessible through the network. However, the creation of this workflow must be performed before the real composition process starts, requiring the user or application developer participation. In addition, there is a need to have knowledge about the service types that are accessible in the environment where the composition is performed. The application domains of these networks range from emergency situations to military operations, including all those circumstances where the deployment of a network without a fixed infrastructure is required. However, there are other scenarios suitable for mobile ad hoc network applications, such as mobile healthcare services in a hospital or inspections carried out in construction sites, as explained by [1].
U. Aguilera, D. López-de-Ipiña / Future Generation Computer Systems 34 (2014) 176–189
This research proposes an automatic service composition mechanism that is based on the specification of the characteristics of the required service. Our proposal does not need the abstract representation of the searched service as a work-flow, minimizing the user or developer interaction in the composition process. In addition, the solution is fully adequate for the dynamic characteristics of a mobile ad hoc network. The proposal is based on the construction and maintenance of a Distributed Service Graph (DSG), which is used during the service composition process in order to reduce solution search times. The idea of using a pre-calculated service graph is not new and was previously proposed [2]. However, this previous work was developed and evaluated for distributed networks with a fixed infrastructure. Therefore, the usage of a Distributed Service Graph, and its application to the particular characteristics of MANETs, is a new contribution of the present work. We propose a new process for the construction of the service graph that is based on the distributed detection of collisions among compatible service parameters by intermediate nodes. On the other hand, the composition process can benefit from the possibilities introduced by semantic technologies during service discovery. The discovery of available services is a fundamental part of the composition process, mainly on distributed and dynamic environments such as MANETs where there is not a lasting knowledge about the environment situation. The application of semantic technologies to the service discovery process has been proposed by various previous works [3–7]. However, existent solutions use the description of participant services as a whole, or they are based on the application of a service type classification. In addition, one of the problems that must be solved during service composition is compatibility among input/output parameters of connecting services [8,9]. This work proposes the usage of descriptions about services’ input and output parameters, which are more adequate when determining functional compatibility among services during the composition process, as it will shown in the following sections. In addition, the usage of input and output parameter information makes it possible to reuse descriptions for multiple different services using a single ontology, which is shared by all the nodes of the network. The composition process relies on the usage of a service protocol that has some resemblances with the work performed in [10]. That work proposes the dissemination of service information through the network and the routing of search messages using a mechanism similar to an electrical attracting force. However, our proposal distinguishes from it by finding all those services which are offering a particular parameter in some area and not only those with the highest attracting factor. There have been other previous proposals for service discovery in mobile ad hoc networks. For example, [11] uses a hybrid mechanism based on the ZRP routing protocol which performs service search by creating different zones in the network. On the other hand, the work proposed in [12] also performs discovery by disseminating information and without the usage of repositories for centralizing service registration. In addition, intermediate nodes store service advertisements from nodes and are able to answer search queries and, therefore, to reduce the number of propagated messages. However, none of the previous solutions applies the advantages of semantic descriptions in the way presented in our proposal, which is oriented to the functional composition of services. The rest of the paper is organized as follows. Section 2 presents the proposed architecture for automatic services composition in mobile ad hoc networks. Section 3 introduces the way that services are described in order to be used in the current proposal. Sections 4 and 5 summarize those functionalities related with parameter dissemination and service discovery. Section 6 presents the automatic composition protocol that uses the service discovery mechanisms to achieve its goals. The evaluation of the proposed solution is shown in Section 7 and the related work is summarized in
177
Fig. 1. Architecture for automatic composition in mobile ad hoc networks.
Section 8. Finally, Section 9 concludes the paper and presents some remaining issues that could lead to future research. 2. Architecture for automatic service composition In order to solve the composition problem, we propose the architecture depicted in Fig. 1. Each layer of the architecture provides a functionality that is used by the upper levels. Every node in the MANET implements the whole architecture in a fully distributed way, meaning that nodes work collaboratively to compose services. Applications which need to perform service discovery or composition can be constructed on top of the proposed architecture. The architecture is constructed on top of the MAC IEEE 802.11 standard and it does not rely on any functionality provided by a previous existent routing protocol for MANETs. The reason is that, after studying the current routing protocols for mobile ad hoc networks, none of them is oriented to the dissemination and search of resources in the way that is required by the distributed graph construction phase as proposed in this work. Parameters are disseminated taking into account the relationships stated by some domain dependent ontology and matched against each other in order to trigger the graph creation. Therefore, we present a solution that makes use of a service discovery mechanism based on input and output parameters, which is integrated with the route management process. As presented in Fig. 1, the architecture is divided into three main parts: network management, service management and distributed service graph controller. The bottom part of the architecture performs two different tasks: neighbour detection and reliable broadcast, which are explained below. 2.1. Neighbour detection This research uses the concept of periodic beacons as the mechanism for detecting the neighbours of a node. Therefore, nodes will broadcast special messages every fixed period. Every time a node receives a message, a beacon or any other type of message, directly
178
U. Aguilera, D. López-de-Ipiña / Future Generation Computer Systems 34 (2014) 176–189
Fig. 2. Neighbour tables maintained by network nodes.
from another node, it will conclude that the sending node is its neighbour. On the other hand, when a node does not hear any message from a current neighbour during a period of time, it means that the node is no longer a neighbour of the current node. In the proposed composition protocol, nodes do not have knowledge about the global topology of the MANET and, therefore, update messages need to be shared across the network. Each node is only notified about the appearance and disappearance of its direct neighbours and all processes are performed using this information. Nodes send beacon messages with a periodicity of Tb seconds. In order to reduce the quantity of messages sent by a node we apply a number of improvements. First, any message sent by a node can serve as a beacon message. Specific beacon messages are only sent when the node did not send any other type of message in a time Tb . The shared nature of the wireless medium means that any message can be potentially heard by one-hop neighbours. Every time a node receives a direct message from a one-hop neighbour, it will update its neighbour table. If the neighbour was not known before the reception of the message, the node will add a new entry containing the neighbour id and the reception timestamp. On the other hand, if the neighbour was already known, the reception time contained in the table will be updated with the new value. Fig. 2 shows an example of neighbour tables maintained by each node of the network. Tables contain an entry for each detected neighbour and the instant when this event occurred. The neighbour detection time is local to each node of the network and it is obtained using the inner clock without performing any global synchronization. The same figure also shows node 1 sending a beacon message, which is received by those nodes located at transmission distance, i.e. nodes 4 and 8. When a node does not hear any message from a known neighbour after a period T ≥ 2 · Tb , the neighbour is considered as not accessible and it is removed from the table. The specific value of Tb can be adjusted depending on the characteristics of the MANET. Small values result in a reduction of the quantity of obsolete information contained in the neighbour tables. However, it increments the number of transmitted messages during the network lifetime. In contrast, a greater value for the update period causes the tables to maintain inaccurate information about neighbour nodes but, in return, it reduces the number of broadcast messages. The selection of a correct value for the update period is related to the mobility of the network and it can be experimentally adjusted [13,14]. 2.2. Reliable broadcast Despite the medium access control performed by IEEE 802.11, it is not possible to guarantee the reception of all the messages sent in wireless medium. Phenomena such as interference, signal decay with distance, reflection, refraction or blocking have a significant
impact on signal transmission. There are also problems that cannot be correctly managed in a MANET developed using the IEEE 802.11, e.g. the hidden terminals problem. This problem refers to the situation produced when two nodes are not accessible to each other but can be heard from the same receiver. In those situations, the MAC layer cannot perform an efficient management of the transmission. The existence of hidden terminals considerably reduces the throughput of an ad hoc network due to the message collisions caused [15]. The service discovery protocol, explained in Section 4, is designed in a way that needs the use of reliable broadcasting because update messages are incremental. It supposes that previous messages were correctly received by neighbour nodes and new information is only sent when changes occur. A comparison of different techniques for information diffusion in MANETs can be found in [16]. A study of the usage of jittering and message broadcasting can be found in [17]. In our proposal, the reliable broadcast is performed through the usage of ACK messages. Every time a node wants to send a message to one-hop neighbour nodes, it will expect the reception of an acknowledgement message from receiver nodes indicating its correct reception. The sending node must add a list of expected receivers to the transmitted message. The list of receivers will depend on the type of message and action being performed, but the complete list can be obtained from the neighbour table maintained by each node. A message is marked as correctly sent if the sending node has received an ACK response from all the expected destinations. If a neighbour that is an expected destination disappears during the transmission of the message, it will be removed from the expected destination list. Messages which are not responded to by an ACK message are retransmitted, increasing the waiting time, until a correct reception occurs. 3. Service description Devices, which constitute the mobile ad hoc network, provide services that need to be described in order to take part in the composition and discovery processes. We define a service, in this research, as any functionality that a device can offer to other devices located in the same network. Our vision of a service is similar to a remote method that receives some input parameters performing some activity and then returns some output parameters as a result. It should be noted that the scope of this research does not cover the underlying technology necessary to provide the services (e.g. web services or REST). Our proposal is only focused on the composition process and it does not take into account how the functionality of the selected services is accessed after their selection. In this research, we describe the inputs and outputs (I/O) of a service, categorizing them according to a shared ontology of concepts. The definition of the type of an I/O parameter is based on the
U. Aguilera, D. López-de-Ipiña / Future Generation Computer Systems 34 (2014) 176–189
concept of Semantic Web Service, which are services semantically described using the technologies introduced by the Semantic Web. There exist other approaches for service description in the bibliography. Nevertheless, the application of semantic descriptions to the services’ input and output parameters is justified as follows. The usage of a Universally Unique Identifier (UUID) is adequate for those mechanisms of communication with a reduced capacity. In those cases, the size of the identifiers can be limited to a few bytes [18–20]. However, this approach is not flexible enough because it requires a priori knowledge of those identifiers that are only used to describe the services as a whole and not their functional characteristics. Another approach, which provides a greater expressiveness, when searching for services, is based on the usage of key–value pairs for the description of service attributes [21]. This solution has been previously used by technologies such as UPnP [22] and UDDI. The description of the service attributes can be expressed using any text format, although in the majority of cases specific languages for service description can be used, such as WSDL [23]. However, as explained in previous works [9,24], this approach also has a limited expressivity. Syntactic search, based on the comparison of strings or the usage of regular expressions, is not adequate in many cases because it only enables the usage of keywords combined with a classification system. The problem is that, frequently, searches do not return any result because the system is not able to recognize the similarities and differences among the concepts used. The usage of semantic web tries to minimize the previous problems by means of using technologies such as OWL [25] for the description of services and the performed searches. The main advantage of using semantics is that the service description is expressed in a language that can be processed to obtain the relation among the concepts used. Languages for the semantic annotation of web services, such as OWL-S or WSMO [26], describe the services inputs, outputs, precondition and effects, which are based on the application of ontologies. An ontology, according to [27], is a hierarchy of concepts with attributes and relations, defining an agreed terminology based on a vocabulary of classes and relationships in order to describe a specific domain. Ontologies have been previously applied to service discovery in grid and P2P networks [28]. All those nodes taking part in the MANET should have a copy of the ontology used to describe the inputs and outputs of the services. However, the mechanism for ontology distribution is not covered here and is left to future work. The specific usage of these relationships during service composition is explained in Section 6. 4. Service discovery based on parameters Service discovery is a fundamental aspect of performing composition, therefore, we propose a solution for service discovery on MANETs that is based on the categorization of the services’ inputs and outputs using an ontology of concepts. One of the problems that needs to be solved during service composition is the functional compatibility among service parameters. Therefore, this requires the existence of a mechanism which makes it possible to solve this problem. The proposed solution for service discovery on MANETs is divided into three main functionalities: parameter dissemination, service location based on previously disseminated information and, finally, route management. These three functionalities are part of the architecture previously shown on Fig. 1 and explained in the following sections. 4.1. Parameter dissemination Services located on nodes of the MANET are only known by the node that provides them. When a client node, which is located on
179
other node of the network, wants to access a service, it does not have any previous knowledge to localize it. The goal of the dissemination layer is to propagate information across the ad hoc network with the purpose of enabling service location. The dissemination of service information has been previously studied by the authors in [29], however, it will be summarized here to provide and overall vision of the whole process. The dissemination process works as follows. The dissemination process starts on those nodes that provide services and, using multiple hops across the ad hoc network, produces the propagation of the information about services to other nodes. The dissemination is carried out using Update Messages, which are generated as a response to those events produced during changes on the topology of the MANET. The dissemination is represented in Fig. 3, where the node that provides some services propagates its information hop-by-hop to other near nodes until a maximum distance is reached. The number contained in each node represents its unique identifier while the arrows indicate the direction of message transmissions. The number of the upper-right part of each box represents the message order. Fig. 3 shows that node 1 disseminates the contents of its parameter table to its neighbours, which update their tables and create new messages to propagate the information across the network. Each update message contains the distance to the node providing the parameter type. This distance is decremented in one unit from the previous hop. The dissemination process stops on node 5 when the maximum dissemination distance is reached and no more update messages are produced. Each node of the network maintains a table, known as the Parameter Table, which contains information about the type of the disseminated input/output parameters. Using this table, nodes can obtain the distance, in hops, where nodes that provide parameters of the corresponding type are located. The table maintains, for each known parameter type, a numeric value known as estimated distance, which will be represented as de . This value is used during the service search process to determine if the search message must continue its propagation across the network. The search propagation process is explained in Section 5. The greater the value for the indication de for a parameter, the nearer the node will be located to a node or nodes providing a service with the corresponding type of parameter. The value for the estimated distance is decremented in a unit each time it is propagated one hop across the network. The propagation of the parameter information is performed until the maximum dissemination distance Dd is reached. This value limits the distance to which the parameters are propagated from a node. Therefore, those parameters that belong to a service provided by some node, have a value of de = Dd in their corresponding entries of the parameter table of that node. On the other hand, nodes located at a distance of n hops of the provider have a value of de = Dd − n, until de = 1 and the dissemination process is stopped because the maximum distance was reached. Each disseminated parameter type is managed independently during the propagation, maintaining a value de for each one, which means that the dissemination of some parameters can be stopped by a node while others can continue their propagation across the network. 4.2. Update messages Nodes broadcast information about the parameter types by sending update messages to their neighbours. Update messages sent by a node can contain the whole parameter table of a node or a part of it, depending on the situation that occurs in the MANET. Because nodes can send differential changes of their parameter table to neighbour nodes, it is necessary to use the reliable broadcast explained in Section 2.2. The usage of incremental updates supposes that any prior information propagated to neighbour nodes was correctly received by them.
180
U. Aguilera, D. López-de-Ipiña / Future Generation Computer Systems 34 (2014) 176–189
Fig. 3. Parameter dissemination across the network using update messages.
Each update message contains the changes that receiving neighbour nodes must apply to their parameter tables. These changes are specified using two lists: additions and removals. When a node receives an update message from a neighbour, it processes the message’s lists and performs the required updates to its local parameter table. When a node receives an update message, it first processes the list of removals, which indicates the entries to remove from its table. Then it processes the list of additions, which contains the new entries to add to the receiver’s parameter table. Entry updates are represented as a removal continued by an addition of the same parameter. The modification of the parameter table of a node, after receiving an update message, can result in new messages, which are sent to the current node’s neighbours. Update messages are sent as a response to the events that can occur in a mobile ad hoc network providing services: neighbour detection, neighbour disappearance, new local service and local service removal. After one of those events occurs, the layer creates the corresponding update messages to propagate the changes to its neighbouring nodes. 5. Service search The goal of this layer is to locate services using the previously disseminated information. A node requiring to search for a service must describe the set of input and output parameter types of the required service using the corresponding domain ontology shared by the nodes of the network. The search process is initiated by the interested node by means of sending a search message to its neighbours. 5.1. Search propagation Whenever a search message is received by a node, it carries out a matching of all types contained in the message with the entries of its local parameter table. Search messages are propagated hop by hop across the network finding compatible parameters. If a match among all parameters included in a service description and some service provided by a node occurs, the service is said to be compatible with the search. When a compatible service is found, the provider node returns a response addressed to the node that started the search. The propagation of search and response messages creates the communication routes that allow the communication among nodes. Searches contain a TTL (Time-To-Live) which is decremented every time the message is transmitted to a neighbour; when it reaches zero, it is not further propagated across the network.
5.2. Search prune During search message propagation, we apply a prune process in order to reduce the number of propagated messages across the network. Search messages are propagated using flooding; however, the prune process is used in order to reduce the scope of the message propagation. Searches are only propagated to neighbours if the associated TTL, which is decremented after each hop, is greater than or equal to the distance for the searched parameters according to the current neighbour’s parameter table. The distance to a parameter is calculated as Dd − estimated distance. If the previous condition does not hold, it means that the search message is in a node such that, although it can contain information about the searched parameter, the source of the parameter cannot be reached with the current message TTL. For example, in Fig. 4 the search message is not propagated by node 3 because its TTL is lower than the distance calculated to the searched parameter and it could not be reached with the current TTL. If a parameter type does not have an entry in a table its distance is calculated as Dd , the maximum possible value. Fig. 4 shows an example of two different situations. The upper part of the figure represents the case where the search message is pruned by node 3 because the TTL for the parameter contained in the search message is lower than the distance in hops to the node that provides it. The search message has a TTL = 2, and, because there is not an entry in the node parameter it has a distance de = Dd = 3, meaning the message is discarded because the TTL = 2 ≥ de = 3. However, the bottom part of Fig. 4 shows an example of a search message propagated until it arrives to the node that is providing a service compatible with the contained description. After accepting the search message, the providing node returns a response message, which is shown in state two. The response message contains the whole description of the compatible service. The propagation of the message creates routes that allow the communication between participating nodes, as explained in Section 5.3. Searches performed by nodes are maintained until they are explicitly cancelled using a special message. Every time a node receives a search message, it is stored in a list of active searches. When nodes in the network move causing topology changes, active searches are checked and propagated to detect compatible services in the new situation. Search cancel messages indicate which descriptions of those contained in an active search must be cancelled. It should be noted that a search can group different service description; therefore, cancellations can be applied to a complete previous search or only to some services included in it. Each cancel message contains a list
U. Aguilera, D. López-de-Ipiña / Future Generation Computer Systems 34 (2014) 176–189
181
Fig. 4. Propagation of search message and application of pruning.
with the descriptions that need to be removed and the identifier of a previous search to be modified. These messages are propagated across the network until no modifications are produced in a node after the message is processed. When a node receives a cancel message, it removes the affected service descriptions from the corresponding active search. After the modification, if the affected active search is empty, the search is completely removed by the processing node. Searches can only be cancelled if the cancel messages are received from the same node that propagated the affected search. This avoids the erroneous cancellation of those searches that could also be correct due to the existence of multiple paths during cancel messages propagation. 5.3. Routing table Each node from the network maintains a routing table that stores discovered communication routes with other nodes. This table is updated as a result of the process of message propagation and other events that occur in the network. The routing protocol makes it possible to send two types of messages using communication routes: unicast messages, which are sent to a unique destination and multicast, which are those messages sent from one node to multiple destinations. The first type of message has been implemented using a multicast message limited to one destination. The communication messages support the inclusion of generic data that can be transmitted along with the message by upper layers. The multicast message propagation algorithm works in the following way. Whenever a node receives a communication message, it checks if the node’s identifier is contained in the destination list of the message. If the node is a destination for the message, it is accepted and propagated to its neighbours after removing itself from the destination list. In order to propagate the message, the node obtains the next hops to reach the remaining destinations from its routing table. If there is no route to the destination in the node’s routing table, the destination is invalid and the message is discarded. Multicast messages are dropped when the destination list is empty, meaning that no more valid destinations exist for the propagated message.
Communication routes are created as a response to message propagation being carried out during the service location process explained before. Inverse routes are created in intermediate nodes during the transmission of messages allowing communication with the sender of the message. However, the node which originated the message cannot communicate with intermediate nodes until those nodes send him a message which creates reverse routes. Disappearance of a neighbour means that some destinations cannot be reached any longer. When a node detects that a neighbour has disappeared it checks its routing table to remove those routes which have the disappeared neighbour as next hop. Then, the node propagates a route removal message to its neighbours indicating that the disappeared route is no longer valid. The message is propagated hop by hop until no more propagation of routing tables occurs. 6. Service composition using a distributed graph The proposed solution for service composition in mobile ad hoc networks is structured in three different functionalities: collision detection among input and output parameters of the services, which is based on the service dissemination explained previously; the construction and maintenance of a distributed graph of services and, finally, search the graph for solutions. 6.1. Distributed service graph The Distributed Service Graph (DSG) is defined as graph of services, the parameters of those services and the connections among them, which are distributed across the topology of the MANET. The GDS is formally defined as DSG = {S , C }
(1)
where S is the set of vertices of the graph constituted by all the available services in the network, while C is the set of connections among graph parameters. Each node of the network contains a part of the distributed graph, and each partial graph defines the connections with parameters of services provided by other nodes. The graph maintains references to the addresses of connected services, making it possible
182
U. Aguilera, D. López-de-Ipiña / Future Generation Computer Systems 34 (2014) 176–189
to navigate across the graph connections using the communication routes created by the service discovery functionality explained before. In this proposal, the DSG is a directed graph that allows only the communication from a service to its successors. Given two services Si and Sj , it is said that Sj is a successor of Si if some output parameter of the latter service is compatible with some input parameter of the former. 6.2. Parameter collisions The process of DGS creation starts with the dissemination of parameters explained in the previous sections of this paper. Nodes located on intermediate paths connecting nodes receive information about the types of near services. Every time a node knows new information about disseminated parameters it performs a process to check for possible collisions among those new entries added to its parameter table. A collision occurs when compatibility exists between an input and an output parameter provided by two different services, according to the used domain ontology. Let us suppose that POi represents an output parameter from service Si and PIj is an input parameter for service Sj :
• Equality: this occurs when POi and PIj have the same type and the output of one service can be used as the input for the other. It means that service Sj is a successor of Si . • Subsumption: this case appears when the type of the input parameter PIj is more general, a super type, of the type of parameter POi , creating also a successor relationship as in the previous case. The inverse relation has not been covered by this research and requires resolving some problems with incomplete information.
Fig. 5. Algorithm for parameter collision detection using disseminated information.
A collision occurs when equality or subsumption relations are detected between an input and an output parameter. Each collision is defined as a tuple of elements C = (T (POi ), T (PIj )),
(2)
where T (POi ) is the type of the output parameter and T (PIj ) the type of the input parameter. 6.3. Collision detection algorithm Collision detection among parameters is performed every time a node receives an update message sent by the dissemination layer explained before. When this event occurs, the node performs the following process, which is represented as an algorithm in Figs. 5 and 6. The process starts by detecting collisions among those parameters that have been added or changed as a result of processing the received update message, and those parameters that were already contained in the parameter table. Changed parameters only include those whose estimated distance has been modified after processing the update message and the new added value is greater than the previous one. Using the new and old values in the node’s parameter table, the algorithm checks the existence of some collision among the old inputs and the new outputs on one side, and the old outputs and the new inputs on the other. The process for detecting a collision consists of checking each parameter from one group with each parameter from the other and testing for any of the compatibility relationships explained before. After applying the previous process, a list containing new detected collisions is obtained. New detected collisions are checked against those ones previously detected by the node. Duplicated collisions are removed and only completely new ones are notified to the upper layer for the construction of the distributed graph.
Fig. 6. Algorithm for parameter compatibility detection.
Finally, when a node receives an update message, which produces the removal of some parameters from its parameter table, previously detected collisions are checked to know if they are affected. In the case that a parameter participating in a collision is removed from the node’s table, the affected parameter connection is also removed from the node. 6.4. Collision inhibition Due to the asynchronous nature of the mobile ad hoc network, it is possible that a collision can be detected by different nodes. In some cases, this is a convenient behaviour, because it makes it possible to create alternative routes to connect the same pair of services. However, there are other situations where it could be a problem because collisions can produce a multiplication of unnecessary messages. Those messages do not construct alternative routes and only result in a greater network congestion. These redundant collisions need to be avoided in order to reduce the number of broadcast messages during the graph construction process. It should be noted that, after detecting a collision, the parameter dissemination is not stopped in the detecting node. Therefore,
U. Aguilera, D. López-de-Ipiña / Future Generation Computer Systems 34 (2014) 176–189
Fig. 7. Search for compatible services as the result of detecting a collision and the reception of response messages.
neighbour nodes can detect the same collision again over the same network path. To solve the previous problem, detected parameter collisions are included into the update message propagated by the dissemination layer. All neighbour nodes receiving this update message will inhibit those collisions that are identical to those ones contained in the message. Finally, as was previously explained, collisions among new input and output parameters, which were added as a result of processing the same update message, are not taken into account. This avoids detecting collisions among those parameters that are directly provided by a neighbour node and whose collisions should be locally detected by that node. On the other hand, parameters added after registering a new service are always checked for collisions with other local services. This way, collisions among different services located in the same node are always detected. 6.5. Service connection management After a node detects some collisions among compatible input and output parameters, it must search for those nodes that are providing them in the network. This search is needed because the node detecting the collisions only knows which parameters are participating but does not know which are the services those parameters belong to. Therefore, the node detecting the collisions starts service searches using the functionality explained in Section 5. The search messages are configured to locate services providing the parameters participating in the detected collisions. The search message also contains a special code in its data section to indicate that the search has been generated by this layer and not by other application. Nodes providing services with the colliding parameters, and located at a distance determined by the TTL of the message, accept and respond to the message with the list of compatible services. Response messages, coming from nodes with compatible services, are received by the node that detected the collision and started the search. Nodes manage responses for each detected collision in an independent way. Whenever a node receives a response with a search started from a detected collision, it will notify other related services, creating connections among compatible ones. Fig. 7 shows node 1 detecting a collision between two compatible parameters, as a result of the dissemination process explained before. After detecting the collision, the node needs to locate the services which are providing the compatible parameters. The discovery of matching services is performed by propagating search messages, which will be responded by those nodes providing them, as shown in the right part of the figure. In Fig. 8 the search response messages are redirected, by the intermediate node which detected the collision, to the ancestor nodes. As shown by the second part of the figure, this process creates the edges of the distributed service graph. The process of response notification and the creation of DSG connections, which is applied independently for each detected parameter collision, works as follows:
183
Fig. 8. Distributed service graph (DSG) connections creation.
• When the node, which detected the collision, receives a response containing a service with a compatible input parameter, i.e. a successor service, it is notified to all those other nodes that have responded with services with compatible output parameters. • Whenever a new service with a compatible output parameter, i.e. an ancestor service, is received by the node that detected the collision, then the received service is notified with all those successor services that were received before. 6.6. Message routing using the distributed graph The existence of an edge in the DSG, between a service and its successor, implies the possibility of communication from the first one to the latter. However, those routes do not always allow the direct communication between nodes and can be divided into two parts: the first one establishing a communication between the ancestor service and the node that detected the collision, and a second one between this node and the successor service in the relationship. Indirect routes are created due to the process of service connection because services do not directly interchange their response message but require the aid of the node that detected the collision. Therefore, when a service wants to send a message to some successor, according to the distributed service graph, it is necessary to apply the following process: 1. The sender node checks its part of the distributed service graph to obtain the identifier of the intermediate node that detected the collision connecting with the successor. This process can be performed because this information is stored when updating the distributed service graph on a node. The node sends a forward message MF to the intermediate node using the routing functionality explained in Section 5.3. The message contains the service that originates the message and a set of destination services: MF = (Ssender , {Sd }, [data]).
(3)
2. When the intermediate node receives the forward message, it obtains the list of destination services and proceeds to resend the received message to those destinations using the information contained in its route table. This information was updated during the connection phase explained before. In the case that multiple routes exist to communicate with a remote service, the routing mechanism selects the shortest one. In addition, direct routes have preference over indirect ones, and the second type of route is only used when direct ones are not available. 6.7. Graph disconnection Node mobility can result in route disconnection disabling services to communicate with each other. The disappearance of a route connecting with a remote service is detected thanks to the functionality explained in Section 5.3. When a node detects that a
184
U. Aguilera, D. López-de-Ipiña / Future Generation Computer Systems 34 (2014) 176–189
route has disconnected, it obtains the list of remote services that were accessed through the disappeared route. If no other routes exist, which enable communication with affected remote services, it means that those services cannot be accessed any more. Nonaccessible services are removed from the part of the distributed graph maintained by the node. If the node is an intermediate node that contains collisions, the detected collisions must be tested against disappeared services to check if the removal invalidates some remote connection. The node sends a message to remotely connected services indicating them to disconnect the invalid services. On the other hand, when a local service is removed in a node, connected remote services need to be notified about this event. Therefore, when this situation occurs, the node that has unregistered some local service sends a message to remote connected nodes using the indirect route communication mechanism explained before. This message contains the list of the unique identifiers of those services that have been locally removed from the node. Finally, when a collision is removed from a node due to the reception of some update message that deletes participating parameters, it causes the cancellation of previously started searches. The search cancel process is performed according to the functionality explained in Section 4. 6.8. Composition search A composition search can be started by any node of the MANET at any moment during its lifetime. As explained before, this research only uses input and output parameter specifications as requirements during the composition process. The node that starts the composition search is the one that receives the responses and the one responsible for filtering them by means of applying other selection criteria apart from input/output compatibility. The composition search process is divided into two phases: creation of and registration of specification services and forward search using the distributed service graph to locate solutions that are compatible with the request specifications. 6.9. Specification services Nodes that need to perform a composition start the search by registering two special services, which define the requirements of the composed services. This specification is performed by means of creating two special services which describe the start and ending of the required composition and which are created using the provided description. A composition is specified by the user or application as a service CS which is defined as CS = {PI , PO }
(4)
PI = {p1 , p2 , . . . , pj } | p ∈ O
(5)
PO = {p1 , p2 , . . . , pk } | p ∈ O,
(6)
where PI and PO are the types of the input and output parameters, which describe the required composition. Using this description the specification services are created such as
• SSTART represents the starting service of a composition and it is built as a service with no inputs and which provides, as its output parameters, the inputs defined by description CE : SSTART = {{∅}, PI , CID }. (7) • SEND represents the final service of a composition and it is obtained as a service with no outputs and the outputs of the composition description as its inputs: SEND = {PO , {∅}, CID }.
(8)
Both services contain a unique identifier CID obtained from the composition specification, which makes it possible to determine if
Fig. 9. Connection of composition specification services with the distributed service graph.
two different specification services belong to the same composition search. After creation, specification services are registered as local services by the node that is starting the composition search. If compatible services exist near in the network, they connect their input and outputs with the specification services making it possible to start a search process by navigating the distributed service graph. Fig. 9 shows how specification services are connected to the distributed service graph when compatibility with available services exists in the network. 6.10. Composition search using a distributed service graph The search process supposes that SSTART and SEND services are already created and registered by the starting node. The composition search process starts from the SSTART service and tries to find some path across the connected graph that returns to the same starting node through the corresponding SEND of the search. The search starts by propagating a composition search message MCS defined such as MCS = (IDC , CI )
(9)
where IDC is the composition search identifier and CI a set, which is initially empty, used to store selected services. The search message is sent from the initial SSTART service to its successors. This means that the service needs to be connected before composition can be started. Therefore, the graph creation layer notifies events that indicate when services are connected to a successor. When a successor service receives a composition search message it checks if the receiver service is fully covered. A service is fully covered if it has received composition messages, corresponding to the same search, from different ancestor services and, in addition, the union of the received selected services contained on those messages satisfy all the inputs of the service. Each node maintains a table with all the received composition search messages in order to perform the previous process. The SSTART service is always fully covered because it has no input parameters. When a service is fully covered after the reception of a new composition search message, it causes the propagation of the composition search to its successors. The node creates a new message containing the union of all those received compositions that have caused to fully cover the service, and it also includes the currently covered service. The message is sent to the service’s successors in order to continue the composition search process. The composition search finishes when the message returns to the node that started the process through the corresponding SEND
U. Aguilera, D. López-de-Ipiña / Future Generation Computer Systems 34 (2014) 176–189
service and, in addition, the ending service is fully covered. Due to the possible existence of multiple paths connecting services in the distributed service graph, a message can be received multiple times; however, received copies of the same message are discarded. When the message is received through the final service of a composition, it contains the list of services that take part in a solution, which provides the required composed service. This list must be converted to a graph that represents the work-flow of the composed service. This process can be performed locally by the receiver node. Composition messages are sent without the usage of the reliable broadcast functionality explained in Section 2.2, meaning that propagation of these messages is more prone to collisions. However, it also increases the time required to perform a search through the distributed graph. Finally, composition searches support two different expiration mechanisms. The first one is the usage of a timer that produces the expiration of search messages after some period. This timer allows nodes searching for compositions to control the time a search is being propagated across the network. The second mechanism is the usage of a TTL, which limits the number of hops by which a composition message is transmitted across the network, and a TTLS controlling the length of services taking part in a solution for a composition request. 7. Evaluation The proposed architecture for automatic service composition in MANETs has been fully implemented and evaluated using the ns-2 network simulator extended with Agent-J. This extension enables the execution of Java code in each node of the network in order to simulate real implementations of the protocols. The implementation has been performed using Java SE 1.6 and the standard communication libraries provided by the language, such as UDP sockets, for broadcasting messages during the wireless communication among the nodes. All experiments have been performed by evaluating the same configuration 10 times with a random distribution of the nodes and services and obtaining the mean values of the measures. Evaluation has been performed by comparing the proposed solution with a search of composed services based on flooding. In flood-based search, those services that need to compose a service start the process by sending a message to all nodes in the network. The initial message contains the START service, obtained from the required service definition, and each time the composition message is received by a network node, the current service composition is checked against all the services provided by the node. If a local service is fully covered, the service is added to the received composition and the message is propagated again to the whole network. Message propagation finishes when the END service is covered in the node that started the composition or when all the network nodes have been explored, i.e. the same message cannot be received multiple times, and no new services can be added to the current composition. The proposed solution, Forward Graph Search (FGS), has been compared with the Flooding Based Search (FBS) by disseminating services, which create compositions of increasing lengths (3, 5, 7). Each scenario has been evaluated 10 times and average values have been calculated with obtained results. The configuration properties of the evaluation scenarios are summarized in Table 1. As shown in Fig. 10, the usage of a precomputed graph of service dependencies effectively reduces the composition search time compared to the flood-based search. The reason for this reduction is that in the proposed solution, composition search messages are forwarded using the shortest discovered paths and only through those routes that are known to reach successor services. On the
185
Table 1 Simulator parameters for composition protocol evaluation. Simulation parameter
Value
Nodes Simulation area Mobility model Node speed Pause time
30 300 × 300 m Random waypoint Uniform distr. [0, 5] m/s [0, 20, 50, 100] s
Propagation time Message tail MAC Transmission range Bandwidth UDP max. size
2-Ray Ground 5 max. (drop) IEEE 802.11 100 m 54 Mb/s 1500 bytes
Beacon period Dissemination distance Dd Search TTL
1000 s 5 hops 5 hops
Composition length Search frequency
[3, 5, 7] services 1.0 searches/s
other hand, flood search needs to explore all network nodes during composition search and, therefore, produces a greater congestion on the network, which increases the solution discovery time. The same figure shows that the reduction is explained from that fact that the proposed algorithm always uses the shortest path when searching for composed services compared to the reactive approach. Although the usage of the proposed solution has an impact on the number of broadcast messages and reduces the ratio of found compositions it could be adequate for those situations which require finding solutions more rapidly in order to select the more adequate one. In addition, the proposed solution can behave better if the network alternates periods of mobility with others that are less dynamic. This problem is shown in Fig. 11 and it can be explained by two different causes. First, the mobility of the nodes has an effect on the graph creation layer, producing an increase in the number of sent messages and the congestion of the network. The other cause is related to the usage of periodic beaconing for neighbour detection, which means that routes changes are not immediately detected, causing messages to be sent through invalid routes. Fig. 12 shows the effect that the number of nodes has in the composition protocol presented in this paper. It can be shown that the proposed protocol is faster due to the usage of a distributed service graph. On the other hand, the flooding-based solution increases the time needed to find a solution with the number of nodes constituting the network. The increase is due to the fact that messages need to be broadcast across the network a greater number of times because there is no knowledge about where to locate the services. On the other hand, as can be seen in Fig. 13, the proposed solution does not scale well with an increase of the number of nodes. For example, for a network of 60 nodes the ratio of discovered compositions drops to zero while the other approach, although reduced, still finds more than half of the available results for some service lengths. This reduction is caused by the increase in the number of transmitted messages and in the produced collisions of these messages. Finally, as shown by Fig. 14, the variation of the search frequency does not have an appreciable effect on any of the evaluated configurations. In the case of the flood-based solution, the propagation of messages is only produced when a search is performed and, because of the low overload of that approach, the congestion of the network does not rapidly increase. On the other hand, the proposed protocol strongly depends on the number of nodes and the mobility of the network, as shown by previous experiments. Therefore, changes in search frequency do not affect the network congestion. The previous figure also shows that the proposed solutions always perform composition through the shortest path available, independently of search frequency variation.
186
U. Aguilera, D. López-de-Ipiña / Future Generation Computer Systems 34 (2014) 176–189
Fig. 10. Effect of pause time on composition search time and composition hops for solutions of 3, 5, 7 services.
Fig. 11. Effect of pause time on protocol overload and found compositions ratio for solutions of 3, 5, 7 services.
Fig. 12. Effect of number of nodes on composition search time and composition hops for solutions of 3, 5, 7 services.
Fig. 13. Effect of number of nodes on protocol overload and found compositions ratio for solutions of 3, 5, 7 services.
U. Aguilera, D. López-de-Ipiña / Future Generation Computer Systems 34 (2014) 176–189
187
Fig. 14. Effect of search frequency on composition search time and composition hops for solutions of 3, 5, 7 services.
Fig. 15. Effect of search frequency on protocol overload and found compositions ratio for solutions of 3, 5, 7 services.
Previous reasons are also applied to the results represented in Fig. 15, which shows that composition protocol overload is slightly affected by the increase in search frequency. Furthermore, the same figure also shows that increasing the ratio of found compositions does not vary when the number of searches per second is increased. In the case of the flood-based protocol, it can be seen that overload is almost linearly increased because the protocol broadcasts messages only when searching. Energy is a scarce resource in mobile devices; transmissions and processing of messages results in energy consumption in each node. During the research presented in this paper, energy has not been directly measured. However, there are some aspects, such as the protocol overload presented in Figs. 11, 13 and 15, which could be used to estimate the energy consumption from the number of kB/s transmitted by the proposed protocol. 8. Related work The problem of dynamic service composition has attracted a lot of attention in application to wired infrastructures where it is possible to apply techniques that rely on the existence of central repositories of services [30]. However, these solutions cannot be directly applied to wireless mobile networks due to their lack of an infrastructure and the continuous changes in their topology. The application of dynamic service composition to mobile networks has been studied in [31] where the authors propose the usage of a Hierarchical Task Network to decompose the searched composed service into simpler parts. Their solution uses the decomposition to search the network for services that can fulfil the task. Another solution for service composition in mobile ad-hoc networks is presented in [32] which also provides a solution for the instantiation of service work-flows using available services on the network. This solution proposes the integration of a group-based service discovery protocol and a selective forwarding of services based on discovered paths.
In [33] the authors propose the usage of an overlay network, which is created taking into account the domain each service belongs to. The goal of this overlay network is to reduce the traffic through the network by limiting the number of nodes which participate in each composition instantiation. The solution supports different operations over the overlay network: construction, maintenance and repair thanks to the continuous monitoring of the situation. The composition search is performed by means of instantiating a pre-constructed work-flow graph using the available services and the discovered relationships among them. Another solution which is based in the instantiation of a service work-flow is proposed in [34] where a specification of the required service as an abstract graph is instantiated using the services of the network. A more complete solution which covers the service discovery, composition and substitution of broken compositions is presented in [5]. This solution uses, as the one being proposed in the present work, semantic technologies to detect compatible services. Other solutions for service composition in mobile ad hoc networks have been studied in recent years. In [35] fuzzy logic is applied to select which services, from those available in the network, must take part in the composition. Another solution is proposed in [36] where the usage of a Distributed Constraint Satisfaction Problem is applied to find which services can be connected to resolve some composition requirement. In [37] the authors study the composition in opportunistic networks by propagating composition services when connection among neighbour nodes exist. As can be seen, most of the current state of the art in service composition for mobile ad-hoc networks is based on the usage of a predefined work-flow which is instantiated using the available services on the network. However, the solution presented in this paper, does not need to rely on the definition of a previous abstract composition. The idea of performing dynamic service composition with the usage of a precomputed compatibility graph was first proposed
188
U. Aguilera, D. López-de-Ipiña / Future Generation Computer Systems 34 (2014) 176–189
in [2] but applied to a central repository of services which detects and creates an AND/OR graph with connections among registered services. In [38] the authors propose to use a pub/sub system to discover the relation among available services in a network and to use this precomputed graph to reduce the search time during composition. However, the solution is only applied to static networks. Our work uses the concepts provided by that proposal, applying and evaluating them to the particular characteristics of a wireless mobile network. Another approach to support collaboration in ad hoc networks is provided by [39]. This work presents a middle-ware for serviceoriented interoperation in mobile environments which defines a communication layer for managing notifications, commands, data or events among users. It also provides components for device discovery based on proximity and a shared repository. However, the work presented in the current paper differs from the previous one in the fact that it is oriented to the achievement of automatic composition using a service specification. On the other hand, the previous approach does not address the issue of composition problem solving but it provides a common middle-ware to cope with interoperability issues. 9. Conclusions and future work This work proposes a solution for dynamic composition of services in wireless mobile networks that is based on the creation and maintenance of a precomputed service dependency graph. The graph creation is based on the dissemination of parameter information across the network, the detection of collisions among disseminated parameters and the connection of compatible services. The usage of this precomputed graph makes it possible to reduce the composition search time (by up to 50%), as shown in Section 7 when comparing the solution with a flooding-based search. However, the creation and maintenance of the graph structure in a mobile network has its associated cost, caused by the increase of the required communication messages and related congestion. This congestion can reduce the number of found solutions (by up to 25%). However, the proposed protocol can be adequate for those situations where a node searching for the composition needs to obtain all the existent solutions quickly in order to select the best available solution, although it could reduce the space of obtainable ones due to possible network congestion. This could maximize the time that a user or an application is accessing some complex functionality during the network mobility. In addition, as the solution behaves better that the floodingbased search for more stable networks, this proposal would be more adequate for those networks that alternate dynamic periods with others that are more static. The graph-based composition protocol is more appropriate for networks with a small number of devices (up to 40 nodes) with low speeds (5 m/s). For the future, we plan to study whether the proposed protocol could be generalized to propagate any kind of information and not only that related with service parameters. We think that the dissemination and discovery protocol could be applied in any situation requiring resource search and the nodes provide some information about their particular resources according to an ontology. In addition, we are interested in examining if it could be possible to propagate different concept taxonomies through the mobile network avoiding the need to share a fixed common taxonomy by all the participant nodes. We also plan to study whether a bidirectional search could be applied to the graph when searching for composed services. The proposed solution for graph creation makes it possible not only to create forward connections among ancestor and successor services but also backward connections. The existence of bidirectional connections in the graph could make it possible to perform a composition search that will start from the START and END services at
the same time. This could probably reduce the composition search time due to the parallel nature of the wireless network. References [1] J. Rodríguez-Covili, S.F. Ochoa, J.A. Pino, V. Herskovic, J. Favela, D. Mejía, A.L. Morán, Towards a reference architecture for the design of mobile shared workspaces, Journal of Universal Computer Science 27 (2011) 109–118. [2] Z. Gu, J. Li, B. Xu, Automatic service composition based on enhanced service dependency graph, in: Proceedings of the 2008 IEEE International Conference on Web Services, IEEE Computer Society, 2008, pp. 246–253. [3] D. Chakraborty, A. Joshi, Y. Yesha, T. Finin, Toward distributed service discovery in pervasive computing environments, IEEE Transactions on Mobile Computing 5 (2) (2006) 97–112. [4] M. Klein, B. Konig-Ries, P. Obreiter, Service rings—a semantic overlay for service discovery in ad hoc networks, in: 14th International Workshop on Database and Expert Systems Applications, 2003. Proceedings, IEEE, 2003, pp. 180–185. [5] M. Ruta, G. Zacheo, L.A. Grieco, T. Di Noia, G. Boggia, E. Tinelli, P. Camarda, E. Di Sciascio, Semantic-based resource discovery, composition and substitution in IEEE 802.11 mobile ad hoc networks, Wireless Networks 16 (5) (2010) 1223–1251. [6] R. Said, Y. Mahéo, Toward a platform for service discovery and invocation in disconnected mobile ad hoc networks, in: IEEE/IFIP International Conference on Embedded and Ubiquitous Computing, 2008, EUC’08, IEEE, 2008, pp. 238–244. [7] N. Islam, Z.A. Shaikh, Towards a robust and scalable semantic service discovery scheme for mobile ad hoc network, Pakistan Journal of Engineering and Applied Sciences 10 (2012) 68–88. [8] S.B. Mokhtar, J. Liu, N. Georgantas, V. Issarny, QoS-aware dynamic service composition in ambient intelligence environments, in: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, ACM, 2005, pp. 317–320. [9] M. Paolucci, T. Kawamura, T. Payne, K. Sycara, Semantic matching of web services capabilities, in: The Semantic Web—ISWC 2002, in: Lecture Notes in Computer Science, vol. 2342, Springer, Berlin, Heidelberg, 2002, pp. 333–347. [10] V. Lenders, M. May, B. Plattner, Service discovery in mobile ad hoc networks: a field theoretic approach, Pervasive and Mobile Computing 1 (3) (2005) 343–370. [11] R. Moreno-Vozmediano, A hybrid mechanism for resource/service discovery in ad-hoc grids, Future Generation Computer Systems 25 (7) (2009) 717–727. http://dx.doi.org/10.1016/j.future.2008.02.002. [12] F. Palmieri, Scalable service discovery in ubiquitous and pervasive computing architectures: a percolation-driven approach, Future Generation Computer Systems 29 (3) (2013) 693–703. http://dx.doi.org/10.1016/j.future.2012.08. 004. [13] M. Heissenbüttel, T. Braun, M. Wälchli, T. Bernoulli, Evaluating the limitations of and alternatives in beaconing, Ad Hoc Networks 5 (5) (2007) 558–578. [14] V.C. Giruka, M. Singhal, Hello protocols for ad-hoc networks: overhead and accuracy tradeoffs, in: Proceedings of the Sixth IEEE International Symposium on World of Wireless Mobile and Multimedia Networks, WOWMOM ’05, IEEE Computer Society, 2005, pp. 354–361. [15] J. Li, C. Blake, D.S. De Couto, H.I. Lee, R. Morris, Capacity of ad hoc wireless networks, in: Proceedings of the 7th Annual International Conference on Mobile Computing and Networking, MobiCom ’01, ACM, 2001, pp. 61–69. [16] B. Williams, T. Camp, Comparison of broadcasting techniques for mobile ad hoc networks, in: Proceedings of the 3rd ACM International Symposium on Mobile Ad Hoc Networking & Computing, MobiHoc’02, ACM, 2002, pp. 194–205. [17] T. Clausen, B. Adamson, C. Dearlove, RFC 5148—jitter considerations in mobile ad hoc networks (MANETs), IETF—Network Working Group, 2008. [18] C.N. Ververidis, G.C. Polyzos, A routing layer based approach for energy efficient service discovery in mobile ad hoc networks, Wireless Communications and Mobile Computing 9 (5) (2009) 655–672. [19] D. Arias-Torres, J. García-Macías, Performance analysis of two approaches to service discovery in mobile ad hoc networks, in: Advanced Distributed Systems, in: Lecture Notes in Computer Science, vol. 3563, Springer, Berlin, Heidelberg, 2005, pp. 368–376. [20] F. Outay, F. Kaisser, V. Veque, R. Bouallegue, BF-SD-ZRP: a smart integrated scheme for service and route discovery in mobile ad hoc network, in: 2010 12th IEEE International Conference on High Performance Computing and Communications (HPCC), IEEE, 2010, pp. 404–412. [21] M.A. Serhani, Y. Gadallah, A service discovery protocol for emergency response operations using mobile ad hoc networks, in: 2010 Sixth Advanced International Conference on Telecommunications (AICT), IEEE, 2010, pp. 280–285. [22] UPnP Forum, UPnP device architecture 1.1, 2008. [23] D. Noh, H. Shin, SPIZ: an effective service discovery protocol for mobile ad hoc networks, EURASIP Journal on Wireless Communications and Networking 2007 (1) (2007) 13 pages. [24] U. Aguilera, J. Abaitua, J. Diaz, D. Bujan, D. Lopez de Ipina, A semantic matching algorithm for discovery in UDDI, in: International Conference on Semantic Computing, Vol. 1, ICSC 2007, IEEE Computer Society, Irvine, CA, USA, 2007, pp. 751–758. [25] W3C OWL Working Group, OWL 2 web ontology language document overview, 2009. [26] W3C Member Submission, Web service modeling ontology (WSMO), 2005. [27] P. Castells, Aplicaciones de técnicas de la web semántica, in: Workshop de Investigación en Entornos de Interacción Colectiva, COLINE’02, November 2002.
U. Aguilera, D. López-de-Ipiña / Future Generation Computer Systems 34 (2014) 176–189 [28] Y. Tao, H. Jin, S. Wu, X. Shi, Scalable DHT- and ontology-based information service for large-scale grids, Future Generation Computer Systems 26 (5) (2010) 729–739. http://dx.doi.org/10.1016/j.future.2009.06.001. [29] U. Aguilera, D. López-de-Ipiña, A parameter-based service discovery protocol for mobile ad-hoc networks, in: ADHOC-NOW 2012, in: LNCS, vol. 7363, Springer-Verlag, 2012, pp. 274–287. [30] J. Brønsted, K.M. Hansen, M. Ingstrup, Service composition issues in pervasive computing, IEEE Pervasive Computing 9 (1) (2010) 62–70. [31] P. Basu, W. Ke, T.D.C. Little, Scalable service composition in mobile ad hoc networks using hierarchical task graphs, in: Proc. 1st Annual Mediterranean Ad Hoc Networking Workshop, 2002. [32] D. Chakraborty, Y. Yesha, A. Joshi, A distributed service composition protocol for pervasive environments, in: IEEE Wireless Communications and Networking Conference, 2004. Vol. 4, WCNC 2004, IEEE, 2004, pp. 2575–2580. [33] J. Huang, Y. Bai, Z. Zhang, J. Kong, D. Qian, Service forest: enabling dynamic service composition in mobile ad hoc networks, in: Proceedings of the The 2007 International Conference on Intelligent Pervasive Computing, IEEE Computer Society, 2007, pp. 174–177. [34] Z. Hu, X. Tang, X. Wang, Y. Ji, A distributed algorithm for DAG-Form service composition over MANET, in: International Conference on Wireless Communications, Networking and Mobile Computing, 2007, WiCom 2007, 2007, pp. 1664–1667. [35] G. Prochart, R. Weiss, R. Schmid, G. Kaefer, Fuzzy-based support for service composition in mobile ad hoc networks, in: IEEE International Conference on Pervasive Services, 2007, pp. 379–384. [36] E. Karmouch, A. Nayak, Capability reconciliation for virtual device composition in mobile ad hoc networks, in: 2010 IEEE 6th International Conference on Wireless and Mobile Computing, Networking and Communications, WiMob, 2010, pp. 27–34. [37] U. Sadiq, M. Kumar, A. Passarella, M. Conti, Modeling and simulation of service composition in opportunistic networks, in: Proceedings of the 14th ACM International Conference on Modeling, Analysis and Simulation of Wireless and Mobile Systems, MSWiM’11, ACM, 2011, pp. 159–168.
189
[38] S. Hu, V. Muthusamy, G. Li, H. Jacobsen, Distributed automatic service composition in large-scale systems, in: Proceedings of the Second International Conference on Distributed Event-Based Systems, ACM, 2008, pp. 233–244. [39] A. Neyem, S.F. Ochoa, J.A. Pino, Integrating service-oriented mobile units to support collaboration in ad-hoc scenarios, Journal of Universal Computer Science 14 (2008) 88–122.
Unai Aguilera is a researcher and project manager at MORElab ‘‘Envisioning Future Internet’’ Research Group, DeustoTech-INTERNET Research Unit belonging to DeustoTech—Deusto Institute of Technology. He holds a B.Sc. in Computer Engineering and a Ph.D. in Computer Science from the University of Deusto. He is also a part-time lecturer at the University of Deusto.
Diego López-de-Ipiña is an Associate Professor/Reader at the University of Deusto, where he is the Principal Researcher at MORElab ‘‘Envisioning Future Internet’’ Research Group, DeustoTech-INTERNET Research Unit belonging to DeustoTech—Deusto Institute of Technology. He holds a B.Sc. in Computing from the Faculty of Engineering of the University of Deusto, an M.Sc. in Distributed Information Management Systems from University of Essex and a Ph.D. in Engineering from University of Cambridge.