Forschungsthemen
[BA] Towards Parallel Role-based Programming
Introduction
Today's software developers have to deal with a tremendous increase in the complexity and distribution of modern software applications. He not only has to take multiple heterogeneous target platforms into account, but must also deal with concurrent execution and asynchronous communication between the software components. Above all future software systems must adapt themselves to changes in their immediate context and able to interact with other components in unforeseen ways.
An established approach to model such changes is to implement the application with roles, because they allow the dynamic reconfiguration of parts of the system. Due to the fact that Object-Oriented Programming Languages lack the notion of roles several applications implement them with the Role Object Pattern. While this allows dynamic changes of the systems structure and behaviour, it does not take concurrent and distributed executions of the roles and the core objects into account. More recently, however, several Object Oriented Programming Languages have introduced new means to foster concurrent execution for future applications without the tedious specification of threads. Consequently these languages may be appropriate to design a parallel incarnation of the Role Object Pattern. This, in turn, would give future software developers an important construct for the development of flexible, complex, and distributed applications.
Problem Definition
Current role-based applications are hard to parallelize due to the fluctuating nature of roles. Consequently, this thesis should determine which constructs of parallel programming languages permit the parallel execution of role-based applications.
Goal of the Thesis
As a result this thesis should strive for the following research goals:
- Investigating whether the Role Object Pattern can be executed in parallel by running different roles concurrently
- Gather the constraints for parallel execution of the Role Object Pattern preventing race conditions and aliasing
- Compare different parallel Object-Oriented Programming Languages on their applicability for the development of concurrent role-based applications, consider for instance:
- Go from Google Cooperation,
- Akka Toolkit from Typesafe Inc., as well as
- Task Parallel Library from Microsoft.
- Show the results of your comparison by implementing a small rolebased application with a parallel implementation of the Role Object Pattern using the most suitable implementation language (e.g. a Banking Application like in )
Betreuer: Dipl.-Inf. Thomas Kühn