A Proposal for Cost-Effective Server Usage in CPS in the Presence of Dynamic Client Requests
Marisol García‐Valls · 2016
Distributed systems are continuously growing in scale, and so is the processing capacity requested from the servers in such systems. In an IoT context, such a variation in the requested processing capacity often comes from the also dynamic number of client nodes (possibly mobile and autonomous) that operate asynchronously. This results in servers that have to support a broad range of load conditions over time. In a real-time domain, over provisioning the server is the mainstream approach to guarantee service time to clients. However, as the average load is typically much lower than the worst case load, over dimensioning the server resources for the worst case threatens a cost-effective design. To avoid under utilization of server resources, this work introduces an approach to improve the cost-effective design of servers. There is an external coodinator that has global knowledge of the load conditions throughout the system, so that it controls the resources in the servers accordingly, a resource agent at a server is guided by the external coordinator node to adjust the server's thread pool size in order to support varying numbers of clients. An additional layer is designed to enable the interaction between the external coordination entity and the server. At the server side, this layer must exhibit acceptable temporal costs in order not to interfere with the server operation and its processing on behalf of client requests. This layer is validated for a specific implementation over a C++ environment based on Ice middleware and its remote method invocation model, the actual overhead introduced at network level is also analysed to validate the approach.