Model driven architecture for sensornodes

Sensor nodes are small computational devices which cooperatively perform a common task. They impose special restrictions on the programs written for them because they are limited in memory, processing power, and battery capacity. These restrictions make the software development for sensor networks –communicating ensembles of sensor nodes– especially difficult.
Model driven engineering (MDE, parts of which are model driven design, MDD, and model driven architecture, MDA) is a general and formal method of software development. It prescribes an elaborate modelling phase to precede any programming process, and even allows at least partly for the automatic transformation of the developed models to program code.

Evolutionary algorithms (EA), a.k.a. genetic algorithms, are powerful, random-based methods for rapidly finding near-optimal elements in large spaces of possible solutions, especially in those cases in which the theoretical best solution is hard to be detected by analytical methods. They are modelled on the idea of Darwinian evolution, thereby simulating natural processes such as reproduction, selection, and fitness, in order to improve a population of solution candidates iteratively. They are typically applied to problems known as NP hard or NP complete.

In this project, we want to combine MDE with EA for two reasons: First, traditional software development is about to reach its limits and becomes cumbersome and error-prone when applied to really large scale systems. Here, models will help the software architect to adhere to clear structures and to keep the overview. They can, however, not solve additional problem of dealing with strict resource constraints as imposed by sensor networks. Here, EA are a possible solution: They can help the software architect in configuring the modules of her models and to fine-tune them for the target devices. Therefore, the modules are annotated with semantic concepts which help the optimization algorithms to combine them correctly.

  1. Objectives of this Project
    1. Development of a modelling language (Domain Specific Language, DSL) for sensor network applications,
    2. Model transformation on basis of semantic concepts,
    3. Utilization of evolutionary algorithms and simulation, in order to find optimal or near-optimal configurations for the platform specific models,
    4. Prototypic implementation of the project, and evaluation through an example application.
  2. Methodology:
    The project will focus on integrating evolutionary algorithms and model driven engineering. During the past 2 decades, systematic approaches for software design and construction have been established and became ever more important since. Currently, the pinnacle of this development is MDE, which prescribes a clear and elaborate engineering process – not only in pure software engineering, but also in the engineering of embedded software for particular hardware devices (for example in the automotive industry). This approach starts with a general model of the target application which is not bound to any hardware realisation or even programming language. This model is then step by step transformed to a more platform specific one, designed for a certain programming language and, finally, to program code. We do not only plan to combine this design approach with one of the most powerful optimization algorithms in order to tackle the challenges of the next epoch of distributed computing, but will also proceed according to MDE in the proposed project itself.
  3. Significance of the Proposed Activity
    We are currently facing a transition between two eras in computer science. The time of a one-to-one relation between users and computers is over; since the arising of mobile phones and we have now a one-to-n relation. Currently, “n” is still small and usually no more than two or three computing devices are used by a person. With applications like sensor networks, body area networks, ubiquitous computing, RFIDs, smart homes, etc., “n” will soon reach an area of dozens, hundreds, and maybe event thousands. Many of these devices will interact with each other using wireless communication. Thus they form distributed systems which surpass the capabilities of today’s software design and management methods. With this project, we will research a promising answer to these new challenges. This joint project of South African and German scientists will contribute to a new approach and new findings which will help both countries to attain technological leadership in this young research area.
  4. Mode of Co-Operation
    The proposed project has two main aspects, namely model-driven development (MDD) and genetic algorithms. Whilst the South African partner will focus more on MDD and Software Engineering, the German partner will be more involved in the genetic algorithms. Ideas and intermediate results will be continuously exchanged through email communication; moreover there will be regular visits and meetings –at least once per year– for intense cooperation during the visits. It is planned to have at least one German visit to South Africa, and at least one South African visit to Germany. On the German side, a PhD student (Thomas Weise) will continuously assist the German partner of the project; he might also be involved in the mutual visits.
  5. Anticipated Outputs of this Project
    1. A new software development approach combining different, well-researched technologies in order to tackle upcoming challenges in large scale distributed systems,
    2. A prototypical implementation of this approach which may be extended to an open-source or commercial software development system, and
    3. An example application which will substantiate the utility of this system but not only serves for evaluation purposes but instead will is part of another research activity running at the University of Kassel: the RoboCup Robotic Soccer Team which already successfully took part in the World Cup and German Open Tournaments.
  6. Scientific and Technological Background
    The German partner is an acknowledged expert in all research areas relevant to the proposed project. For many years he is strong propagator of the model driven architecture and development approaches. He was the leader of the corresponding work packages in the European IST project MADAM and has a similar role in the successor project MUSIC. Both projects focus on modelling distributed context-sensitive software systems which exhibit strong similarities to the sensor network platforms targeted by the proposed project. However, neither MUSIC nor MADAM follow an optimization approach which is a new trait inherent the proposed project. Evolutionary optimization of distributed systems became one of main research interests of Kurt Geihs during the last four years. He is the advisor of the DGPF (Distributed Genetic Programming Framework) project which applies Genetic Programming to evolve distributed algorithms. The results of this work have been published at multiple renowned international conferences. The proposed project also involves semantic annotation and matchmaking of semantic concepts. This is problem is also the centre of the ADDO and ADDOaction (DFG-funded) projects led by Kurt Geihs: Here, semantically annotated web services are composed with an award-winning (2006/2007/2008 Web Service Challenges) algorithm which also will become part of the proposed project.
    The South African partner has, not least through his cooperation with the University of Bordaux (France), experience in the modelling of distributed systems, which is also of relevance for the above-mentioned sensor networks. The South African partner’s experience in this field dates back to the year 2000. The South African partner is also experienced in Graph Transformation Systems, which can provide a uniform theoretical framework for both the modelling of networks (in the sensor part of the project) as well as in the MDD part of the project. The suitability of Graph Transformation formalisms for the purpose of Model Transformation in MDD is well known. The South African partner is currently also co-supervising an MSc-Student in the field of Model Driven Software Design.
  7. Possible Socio-Economic Benefits of the Project
    1. On one hand, that the prototypical application can be developed further in a joint venture of both contributing research communities and may even be spun off into a commercial project which then would help to finance further research.
    2. On the other hand, software development for large-scale distributed systems will be one of the biggest new problems that commercial software companies will face in the next years. Being able to provide a viable methodology to approach this challenge will, naturally, be a contribution of economical relevance.
    3. Since sensor networks such as body area networks and applications in smart homes are especially beneficial for elderly, disabled, or sick people, helping to further these technologies by lowering the costs of involved software development processes may also be considered as socially relevant.