Software development is getting more and more complex, especially within distributed and heterogeneous environments based on middleware enabling the interaction of distributed components. A major drawback during the overall software development process is the lack of on-line tools, i.e. tools applied as soon as there is a running prototype of an application. On-line tools can either be used for development tasks like debugging or visualisation of programs, or for deployment tasks like application management. For various middleware platforms, on-line tools have been developed, but most of them suffer from the drawbacks of being tailored to specific middleware, offering only a small set of tool functions, and not being extensible. The MIMO MIddleware MOnitor project proposes a solution to this problem. MIMO is based on a clear separation of tools, the monitoring system which collects data and controlls an observed application, and the applications. The MIMO core consists of a light-weight infrastructure that allows to integrate heterogeneous middleware in a flexible way, monitor applications simultaneously using several middleware platforms, and build interoperable development and deployment tools. This paper presents a methodology for developing on-line tools with MIMO. Based on the MIMO infrastructure, a systematic and efficient procedure for constructing on-line tools is established. The goal of our methodology is to establish a "rapid tool development" process, leading to an enhanced software development process by consequently and efficiently integrating on-line tools from the beginning. £ Research supported by German Science Foundation (DFG) SFB 342 (TP A1).
MotivationDeveloping and maintaining large distributed applications is one of the major challenges in computer science at the time. As systems are getting more and more complex and heterogeneous, middleware platforms enabling the interoperability of diverse components and abstracting from the details of execution environments are increasingly important for software development.In order to simplify the software development process, tools are applied during various development phases. Basically, tools are programs used to support the development and deployment of applications. This comprises software development tools like CASE tools or integrated development environments, as well as on-line tools applied to applications under development at runtime.Although a lot of work is done in the field of off-line tools concentrating on the analysis, design, and implementation phases, there is a considerable lack of on-line tools for heterogeneous middleware environments that support the test and deployment phases. Existing systems are not suited for usage within such environments because of several drawbacks: They are mostly built for working on applications within simple and homogenous scenarios, do not support interoperability of simultaneously applied tools, and show an inflexible architecture that inhibits their extensibility. Particularly, existing tools do not...