Energy Aware Software / Resource Substitution

Protecting the environment by saving energy and thus reducing carbon dioxide is one of today’s hottest topics and is of a rapidly growing importance in the computing domain. In addition, to ecological reasons here issues such as the up-time of mobile or embedded devices, battery charge cycles, etc. are key problems. Recent studies have shown that software has a major impact onto the energy consumption of the device it is executed on. Thus, intelligent selection and assembly of software components promises significant savings. However, this requires knowledge about how much energy a (software) component consumes. In other words, a classification scheme following the idea of the European Union energy label is required. The overall goal of this research is to establishing an energy classification scheme for software, using the ’big-O’ notation as its general metaphor.

In general, a resource is any physical or virtual entity of limited availability. Thereby resources are characterized by three main characteristics: utility, quantity, and use. This is especially true for mobile and embedded systems that are characterized by a scarcity of resources. Such systems typically depend on the resources that are provided by the device the system is executed on or the environment infrastructure. We focus on the resources CPU, RAM, hard disk, and network communication. Different techniques for handling data in mobile and embedded information systems have different resource consumptions characteristics (CPU or memory focused, etc.). Interestingly, it is possible to exchange or substitute resources by each other (i.e., saving memory by compressing data, reducing CPU cycles by delegating computation tasks to a server) in order to optimize the use of one.

First steps towards this goal were done already. We analyzed the energy consumptions of various sorting and join algorithms and were able to show, that adapting the algorithm's usage at runtime might increase the throughput. The next steps are:

  • Formalization of software based energy consumption
  • Energy based classification of algorithms, classes, and components
  • Formalization of energy consumption regarding resource substitution strategies
  • Energy based classification of resource substitution strategies

This research is part of the IMENCO project, which is a free (at the moment unfunded) cooperation between colleagues from different research institutes.

You may find a list of selected publications on this topic here.

(Context Aware) Mobile Data Management / Query Indexing

Our overall goal is this research area is a scalable and context aware mobile information system that is based on standard database technology.  Mobility implies the usage of wireless communications that is, compared to wired networks, slow, expensive, and energy intensive. Therefore, mobile clients use caching techniques (semantic caching), hoarding, or replication. All these approaches create redundant data and therefore, potentially lead to inconsistencies. Updates on the server as well as updates on the clients have to be synchronized. For replication this synchronization was considered in many publications. Considering caching techniques one can classify two different kinds of approaches: cache maintenance and cache invalidation. The first one is comparable to synchronization; the second one guarantees a consistent view on the global database by marking/invalidating outdated cache entries. However, both approaches are not trivial if the used query language is not restricted.

We focus on cache invalidation for semantic caches in combination with context aware queries.  The used context model allows the combination of the "context awareness" with predicate-based database queries. For conjunctive queries that include inequalities and self-joins some aspects of cache invalidation in combination with information systems with a large number of mobile clients were already researched.  The next steps on the way towards a scalable and context aware mobile information system that is based on standard database technology are:

  • Client side caching of context aware data (including replacement strategies)
  • Consistency in context aware mobile information systems
  • Cache invalidation
  • Synchronization / Cache maintenance

This also includes issues of context aware query processing. First ideas were already published in conference proceedings but it is a long way to a complete context aware database query approach.

You may find a list of selected publications on this topic here.