Treffer: Middleware for the Inspection of Complex Software Systems (Middleware voor de inspectie van complexe software systemen) ; Middleware for the Inspection of Complex Software Systems
Weitere Informationen
With the increasing impact of computers on society, we are faced with the obligation of maintaining increasingly complex software systems. Thiscomplexity makes it difficult to verify whether the actual behavior corresponds to the intended behavior. This creates an ever increasing need for inspection. However, this is far from trivial, as information about the run-time state and behavior is distributed over different machines and different infrastructural layers. In addition, multiple stakeholders (developers, performance engineers, operators, business owners) demand for different types of information. The central goal of thisthesis is to enable comprehension of complex software, by representing the running system in terms of the abstractions that the various stakeholders can understand. We specifically focus on the abstraction gap between the information present in the run-time environment and the information required by the stakeholders.We have addressed this problem through four research activities. We first investigate the particular abstraction gap created by aspect oriented programming languages in two ways: through a debugger (AODA) and through a run-time policy enforcement system (AOPS). This experience is then generalized to the domain of large scale distributed software systems, through two additional solutions: a framework to reconstruct higher-level abstractions just-in-time at runtime, based on the stakeholder at hand (QVTD) and an integrated and distributed monitoring architecture to support higher-level abstractions when inspecting large-scale distributed systems with multiple applications (MonArch). The following paragraphs briefly summarize each ofthese four independent results.AODA, the aspect oriented debugging architecture, provides a debugger for AspectJ-like languages. The compilation of AspectJ to Java produces run-time structures that are hard to understand. AODA restores the original AspectJ abstractions through atransformation, to allow more convenient debugging. AODA was applied toboth ...