In the modern electronic world, distributed computer applications allow people to perform collaborative work and conduct business transactions with partners residing in different places, countries, and even continents. Such applications have distinguishing requirements, including the organization of the devices involved in the system, abstraction of their differences, coordination of the processes involved, and many more. This makes their development different from that of local applications, and despite existing software engineering and development approaches, it is still a big challenge to keep planned budget and development time frames when carrying out a distributed software project.
In order to improve on that, distributed application development must be made more efficient by reducing the complexity of the development process. One of the most important ways of tackling complexity is abstraction, and so middleware layers are used in order to abstract the details of distributed systems. A particularly remarkable concept for middleware layers is the model of space-based computing, which provides a natural data-centered abstraction of the underlying distributed system. Current implementations of this model offer state-of-the-art application programming interfaces, allowing developers to use a virtual data space for communication and coordination of distributed processes in an object-oriented way. However, exactly these interfaces effectively counteract the original goal of reducing complexity through abstraction, because they force developers to map their distributional goals and intents to imperative instructions to the middle ware.
This thesis proposes a novel way of declaratively stating the distributional intents of space-based applications, replacing the need to explicitly formulate imperative algorithms. By employing the declarative source code attribution mechanism offered by the modern object-oriented .NET application platform, it enables programmers to directly specify their goals in the source code, leaving the tasks of interpreting and finding a way to achieve them to a decoupled environment. This allows developers to create better documented and more easily understandable space-based distributed software in less time and with better code quality features than before.
To make this possible, the thesis adopts notions from aspect-oriented programming. It regards the distributional intentions as cross-cutting concerns and employs the aspect-oriented concepts of aspects, join points, and pointcuts in order to implement the behavior backing the declarative goal specifications. It presents an easily adoptable light-weight aspect-oriented programming environment for .NET, which effectively allows to cleanly encapsulate and modularize the requirements of space-based applications and to reuse them in many application scenarios.
Based on the declarative model and the aspect-oriented framework, it defines a catalog of concerns common to space-based computing and gives aspect-oriented implementations of them in the form of a declaratively applicable distributed concern library. By means of analyzing and evaluating the implementations and comparing them to traditional ways of solving these concerns, it can be shown that this novel approach to space-based computing is highly advantageous; it leads to cleaner and more encapsulated solutions, reduced effort in development, and higher quality source code.