Over the past decade, there has been a continued research interest in the field of ad hoc networking . Generally speaking, ad hoc networks enable a potentially wide range of devices to communicate with each other without having to rely on any kind of support or services provided by an IT infrastructure [], one can anticipate a vast potential for wide-spread deployment of ad hoc networking technology.
1.1 Service Placement in Ad Hoc Networks
When designing and building ad hoc networks, fundamental design decisions from traditional, Internet-style networks need to be reevaluated. This affects all aspects of networking, starting with the choices for signal modulation and ranging up to the special requirements on privacy in these networks. In this general context, service placement deals with the question of which nodes in an ad hoc network are best suited for offering any given kind of service to other nodes [].
1.1.1 Motivation
In ad hoc networks, the classical distinction between devices acting as either client or server is replaced by the paradigm of cooperation between a large number of potentially heterogeneous devices. These devices may differ in which hardware resources they incorporate, ranging from resource-constrained embedded devices employed in Wireless Sensor Networks (WSNs) to desktop-style hardware used in office mesh networks. Given the characteristics of communication over a wireless channel and the potential mobility of the devices, the physical topology of an ad hoc network is in a constant state of flux. In order to ensure that the network is operational at all times, it is thus necessary to continuously adapt the logical configuration of the network, e.g., neighborhood lists and routing paths, to the conditions in the physical world.
This adaptation is driven by both external (e.g., wireless connectivity, mobility, churn) and internal (e.g., communication patterns) factors. In the past decade, the focus of research has been on optimizing the routing of packets between the nodes of the ad hoc network, thus resulting in a great variety of reactive, proactive, and hybrid routing protocols. Some of these protocols already have or are currently undergoing the process of standardization [].
Taking a more application-centric view on ad hoc networks, the distinction between clients and servers still exists as part of the logical network structure whenever certain nodes request services provided by other nodes. Therefore, the question arises whether the performance of an ad hoc network can be optimized by carefully choosing exactly which of the nodes are to take the role of servers for a particular service. Key factors to take into account when answering this question are the connectivity between individual nodes, the service demand and request patterns of client nodes, and the suitability of services for being migrated between nodes.
The question of identifying the appropriate nodes in an ad hoc network to act as servers is referred to as the service placement problem whose goal it is to establish an optimal service configuration , i.e., a selection of nodes to host the instances of the service which is optimal given some service-specific metric.
1.1.2 Problem Statement
The problem of service placement in ad hoc networks can be stated as follows: Given a service to be placed, a physical network topology, and the service demand of the client nodes, adapt the number and location of service instances in the network over time such that the service demand is met at a minimal cost.
The cost function may include metrics such as network traffic, energy expenditure, or service-specific quality metrics. The choice of the cost function is mandated by the service placement policy . A placement policy states the goal that a service placement system aims to achieve. Goals, and as a consequence placement policies, vary depending on the exact type and area of application of the ad hoc network. A very fundamental placement policyand in fact the one that we will focus on in this workis the overall reduction of bandwidth required for service provisioning. Other goals may be pursued in more specialized application scenarios. For example, in an office mesh, the placement policy may aim at a reduction of service access time. Alternatively, in a WSN deployed in a hazardous environment, a regionally diverse placement of service instances may be preferable.
In order to adapt to region-specific service demand, it is advantageous if the service can be provided by multiple service instances each of which is hosted on a different node. As the term suggests, a service instance is an exact copy of the software component that provides the service, including both the executable binary and the application-level data. Each service instance is capable of providing the complete service on its own. In fact, there is no distinction between service instances except for which node of the ad hoc network they are hosted on.
The concept of service instances gives rise to a distinction between centralized and distributed services: For centralized services, it is technically infeasible to create multiple instances of the service and hence there is only a single service instance. In fact, this single service instance of a centralized service is identical with the server in a traditional client/server architecture. For distributed services, however, it is technically possible to create multiple instances of the service. These service instances jointly process the clients service requests and can be placed independently. However, they incur an additional overhead not present for centralized services, which consists of the acts of communication that are required to keep the global state of the service synchronized among all instances.
1.1.3 Terminology
Before proceeding, we give brief definitions for the terms that we have introduced informally in the previous section.
Service In this work, we use the term service in the same meaning as in the context of Service Oriented Architectures (SOAs) [, Sect. 3.1]:
A service is a mechanism to enable access to one or more capabilities, where the access is provided using a prescribed interface and is exercised consistent with constraints and policies as specified by the service description. A service is provided by an entitythe service providerfor use by others, but the eventual consumers of the service may not be known to the service provider and may demonstrate uses of the service beyond the scope originally conceived by the provider.