Aspect-Oriented Architectural Style for Distributed Interactive Simulations
- Author(s): Valadares, Arthur
- Advisor(s): Lopes, Cristina V
- et al.
Simulations are powerful computational tools to comprehend complex systems in a large number of scientific domains. Even with the advance of computational power, the capability to model the real-world in full detail is still far in the future. But at every step forward in computational power, more can be done with discrete simulations to predict and explain physical systems in domains where continuous mathematical representations are insufficient or unknown. The field of distributed simulations was born to leverage simulation capabilities past what a singular computer can perform. Furthermore, distributed simulation frameworks enables a collaborative development environment, where multiple developers can work in independent parts of the same problem – similarly to large software problems being solved by the collaborative effort of software developers working on semi-independent modules. Unfortunately, like in most distributed system applications, distributed simulations are very complex to design and develop. While there are supporting frameworks, like the High Level Architecture (HLA), there is room for improvement in reducing the technical knowledge required to develop for such frameworks.
The goal of this dissertation is to expand the expressiveness of distributed simulation frameworks while reducing the technical complexity to develop integrated distributed simulations independently. This dissertation presents a novel architecture for distributed interactive simulations (DIS) called Collaborative Aspect-oriented DIS (CADIS). The architecture is divided in two frameworks called PCC and spacetime. PCC (Predicate Collection Classes) is an object-oriented programming model for representing collections of objects. These collections of objects are called relational data types – types that are reclassified based on runtime values. Relational types allows the expressiveness of queries that are common to relational databases to be defined as abstract data types. Spacetime adds automatic synchronization and recalculation of PCC data types in discrete time distributed simulations. Through a simple push, update, and pull process, simulations operate with newly reclassified objects, and any modifications are automatically pushed to the server.
CADIS is evaluated in four different ways. First, a benchmark measures the performance impact of each individual relational operation, demonstrating the many performance improvements in the implementation required to reduce the data exchange between simulation and servers to an acceptable level. Second, a feasibility evaluation using a realistic urban simulation scenario is presented, demonstrating effectiveness in a real-world problem. Third, a case study using CADIS in a graduate course is presented, demonstrating how CADIS can be taught to developers with little simulation background in a small period of time. Finally, a parallel between HLA and CADIS is presented, by analyzing a converted urban simulation event routing system to HLA.
The architecture of CADIS provides two major contributions to the field of distributed simulations: a) it allows the development effort to be partitioned and split among independent groups of developers; b) thanks to relational data types in PCC, simulations can join at runtime with new data models without affecting existing simulations. Furthermore, existing simulations can handle and use new data models that are related to known ones. The larger impact of CADIS is creating a scalable service-oriented development environment, where simulations are providers of data types with specific features, allowing developers to add complexity to data models based off previous implementations.